+1457 -425 +/-29 browse
1 | diff --git a/ATTRIBUTIONS.md b/ATTRIBUTIONS.md |
2 | index 1569333..c27faf8 100644 |
3 | --- a/ATTRIBUTIONS.md |
4 | +++ b/ATTRIBUTIONS.md |
5 | @@ -22,7 +22,6 @@ Inca style textile patterns are created by [@TrucomanX](https://openclipart.org/ |
6 | ##### CC BY-SA 4.0 |
7 | |
8 | * Most SVG icons come from [OpenMoji](https://openmoji.org) |
9 | - * [Ayllu moon emoji](https://openmoji.org/library/emoji-1F319/) by Vanessa Boutzikoudi. |
10 | * [Web Syndication Icon](https://openmoji.org/library/emoji-E381/) by Alexander Müller. |
11 | * [Balance Scale](https://openmoji.org/library/emoji-2696/) by Hilda Kalyoncu. |
12 | * [Classical Building](https://openmoji.org/library/emoji-1F3DB/) by Martin Wehl. |
13 | diff --git a/ayllu-shell/README.md b/ayllu-shell/README.md |
14 | new file mode 100644 |
15 | index 0000000..7eb6fcf |
16 | --- /dev/null |
17 | +++ b/ayllu-shell/README.md |
18 | @@ -0,0 +1,4 @@ |
19 | + # ayllu-shell |
20 | + |
21 | + Placeholder for a [Gitolite](https://gitolite.com/gitolite/overview.html) style |
22 | + restricted shell for Ayllu. |
23 | diff --git a/www/content/_index.md b/www/content/_index.md |
24 | index 2d0728d..ba7191f 100644 |
25 | --- a/www/content/_index.md |
26 | +++ b/www/content/_index.md |
27 | @@ -13,8 +13,8 @@ Ayllu is a lightweight code forge designed to enable individuals and |
28 | community projects to develop software in collaboration across open internet |
29 | standards. |
30 | |
31 | - <a href="https://ayllu-forge.org/projects/ayllu/refs"> |
32 | - <button> Latest Release: 0.2.1 </button> |
33 | + <a href="https://ayllu-forge.org/projects/ayllu"> |
34 | + <button> Source </button> |
35 | </a> |
36 | |
37 | </div> |
38 | diff --git a/www/content/docs/_index.md b/www/content/docs/_index.md |
39 | index 24a5d09..f15e505 100644 |
40 | --- a/www/content/docs/_index.md |
41 | +++ b/www/content/docs/_index.md |
42 | @@ -5,3 +5,6 @@ sort_by = "weight" |
43 | +++ |
44 | |
45 | # Documentation |
46 | + |
47 | + Welcome to the Ayllu documentation 📖, this is section serves as an |
48 | + authoritative reference on all things related to the Ayllu code forge! |
49 | diff --git a/www/content/docs/architecture.md b/www/content/docs/architecture.md |
50 | new file mode 100644 |
51 | index 0000000..5d449bc |
52 | --- /dev/null |
53 | +++ b/www/content/docs/architecture.md |
54 | @@ -0,0 +1,19 @@ |
55 | + +++ |
56 | + title = "Architecture" |
57 | + slug = "architecture" |
58 | + weight = 0 |
59 | + +++ |
60 | + |
61 | + **Ayllu is a new software project and it's design is evolving.** |
62 | + |
63 | + It's basic architecture is that of a single binary providing a web interface to |
64 | + browse and interact with Git repositories as well as an RPC server based on |
65 | + [Cap'n Proto](https://capnproto.org/) with an embedded client. The RPC server |
66 | + running in the core Ayllu binary is called the `job_server` and it provides an |
67 | + interface to interact with Ayllu for administrators. Much of the functionality |
68 | + of Ayllu is implemented via `RPC extensions` which are minimal binaries that |
69 | + are used to extend the core functionality of Ayllu. |
70 | + |
71 | + The current architecture of Ayllu is depicted below: |
72 | + |
73 | + <img class="diagram" src="/assets/architecture.svg" /> |
74 | diff --git a/www/content/docs/developers.md b/www/content/docs/developers.md |
75 | new file mode 100644 |
76 | index 0000000..d773077 |
77 | --- /dev/null |
78 | +++ b/www/content/docs/developers.md |
79 | @@ -0,0 +1,27 @@ |
80 | + +++ |
81 | + title = "Developers" |
82 | + slug = "developers" |
83 | + weight = 0 |
84 | + +++ |
85 | + |
86 | + # ayllu-forge.org |
87 | + |
88 | + The [Ayllu website](https://ayllu-forge.org) and project documentation are built |
89 | + together with [Zola](https://www.getzola.org/) which you must install. After |
90 | + which you can startup a local preview of the site with the following commands: |
91 | + |
92 | + ```sh |
93 | + cd www && zola serve |
94 | + ``` |
95 | + The generated content are hosted directly from Ayllu and you simply need to |
96 | + build and commit the generated code directly into the repository. |
97 | + |
98 | + ```sh |
99 | + cd www && zola build |
100 | + ``` |
101 | + |
102 | + ## Diagrams |
103 | + |
104 | + Diagrams are built with [nomnoml](https://www.nomnoml.com/) and their SVG |
105 | + content contain the source for generating the diagrams. Simply open one of the |
106 | + source SVGs up and copy-paste it to the editor of the nomnoml website. |
107 | diff --git a/www/content/docs/installation.md b/www/content/docs/installation.md |
108 | index c4d1b71..42a3d28 100644 |
109 | --- a/www/content/docs/installation.md |
110 | +++ b/www/content/docs/installation.md |
111 | @@ -4,6 +4,4 @@ slug = "installation" |
112 | weight = 0 |
113 | +++ |
114 | |
115 | - ### Installation |
116 | - |
117 | - #### From Source |
118 | + TODO |
119 | diff --git a/www/public/assets/architecture.svg b/www/public/assets/architecture.svg |
120 | new file mode 100644 |
121 | index 0000000..2de2a37 |
122 | --- /dev/null |
123 | +++ b/www/public/assets/architecture.svg |
124 | @@ -0,0 +1,598 @@ |
125 | + <svg version="1.1" baseProfile="full" width="1938.0" height="655.0" viewbox="0 0 1938 655" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"> |
126 | + <desc > |
127 | + [reverse_proxy] |
128 | + |
129 | + [reverse_proxy]<-->[Rudolfs (LFS API)] |
130 | + |
131 | + [reverse_proxy]<-->[ayllu-core | |
132 | + [axum http interface] |
133 | + [sites static hosting] |
134 | + [capnp-rpc-server (job_server)] |
135 | + [git repositories via libgit2] |
136 | + [<database> sqlite] |
137 | + ] |
138 | + |
139 | + [ayllu-core] <--> [ |
140 | + ayllu-mail| |
141 | + [capnp-rpc-server] |
142 | + [mailpot] |
143 | + [postfix] |
144 | + [<database> sqlite] |
145 | + ] <-- SMTP [<actor> contributor-2] |
146 | + |
147 | + [ayllu-core] <--> [ |
148 | + ayllu-xmpp | |
149 | + [capnp-rpc-server] |
150 | + [chat interface/bot] |
151 | + [<database> sqlite] |
152 | + ] <-- XMPP [<actor> contributor-2] |
153 | + |
154 | + [ayllu-core] <--> [ |
155 | + ayllu-build | |
156 | + [capnp-rpc-server] |
157 | + [<database> sqlite] |
158 | + ] |
159 | + |
160 | + [ayllu-core] <--> [ayllu-shell] <-- SSH [<actor> contributor] |
161 | + [ayllu-core] <--> [ayllu-cli] <-- [<actor> admin] |
162 | + |
163 | + |
164 | + [ayllu-build]<-->[ |
165 | + ayllu-builder-1 | |
166 | + [<package>qemu-x86_64| capnp-rpc-server | executor] |
167 | + ] |
168 | + |
169 | + [ayllu-build]<-->[ |
170 | + ayllu-builder-2 | |
171 | + [<package>qemu-aarch64| capnp-rpc-server | exectuor] |
172 | + ] |
173 | + |
174 | + [ayllu-build]<-->[ |
175 | + ayllu-builder-n | |
176 | + [<package>lxc| capnp-rpc-server | executor] |
177 | + ] --> [ayllu-core]</desc> |
178 | + <g stroke-width="1.0" text-align="left" font="12pt Helvetica, Arial, sans-serif" font-size="12pt" font-family="Helvetica" font-weight="normal" font-style="normal"> |
179 | + <g font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" stroke-width="3.0" stroke-linejoin="round" stroke-linecap="round" stroke="#33322E"> |
180 | + <g stroke="transparent" fill="transparent"> |
181 | + <rect x="0.0" y="0.0" height="655.0" width="1938.0" stroke="none"></rect> |
182 | + </g> |
183 | + <g transform="translate(8, 8)" fill="#33322E"> |
184 | + <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal"> |
185 | + <g stroke-dasharray="6 6"> |
186 | + <path d="M965.1 23.1 L713 51 L713 115.83333333333333 L713.0 115.8 " fill="none"></path> |
187 | + </g> |
188 | + <path d="M707.7 109.2 L713.0 115.8 L718.3 109.2 L713.0 122.5 Z"></path> |
189 | + <path d="M959.1 29.2 L965.1 23.1 L957.9 18.6 L971.8 22.4 Z"></path> |
190 | + <g stroke-dasharray="6 6"> |
191 | + <path d="M1103.4 23.1 L1355.5 51 L1355.5 64.33333333333333 L1355.5 64.3 " fill="none"></path> |
192 | + </g> |
193 | + <path d="M1350.2 57.7 L1355.5 64.3 L1360.8 57.7 L1355.5 71.0 Z"></path> |
194 | + <path d="M1110.6 18.6 L1103.4 23.1 L1109.4 29.2 L1096.8 22.4 Z"></path> |
195 | + <g stroke-dasharray="6 6"> |
196 | + <path d="M822.4 180.4 L261 225 L261 238.33333333333334 L261.0 238.3 " fill="none"></path> |
197 | + </g> |
198 | + <path d="M255.7 231.7 L261.0 238.3 L266.3 231.7 L261.0 245.0 Z"></path> |
199 | + <path d="M816.1 186.2 L822.4 180.4 L815.3 175.6 L829.0 179.9 Z"></path> |
200 | + <text x="758.0" y="489.4" stroke="none">SMTP</text> |
201 | + <g stroke-dasharray="6 6"> |
202 | + <path d="M261.0 385.7 L261 399 L750 497.4263494967978 L750.0 497.4 " fill="none"></path> |
203 | + </g> |
204 | + <path d="M266.3 392.3 L261.0 385.7 L255.7 392.3 L261.0 379.0 Z"></path> |
205 | + <g stroke-dasharray="6 6"> |
206 | + <path d="M926.9 206.0 L807.5 225 L807.5 238.33333333333334 L807.5 238.3 " fill="none"></path> |
207 | + </g> |
208 | + <path d="M802.2 231.7 L807.5 238.3 L812.8 231.7 L807.5 245.0 Z"></path> |
209 | + <path d="M921.1 212.4 L926.9 206.0 L919.5 201.8 L933.5 205.0 Z"></path> |
210 | + <text x="754.7" y="473.5" stroke="none">XMPP</text> |
211 | + <g stroke-dasharray="6 6"> |
212 | + <path d="M807.5 385.7 L807.5 399 L807.5 481.5 L807.5 481.5 " fill="none"></path> |
213 | + </g> |
214 | + <path d="M812.8 392.3 L807.5 385.7 L802.2 392.3 L807.5 379.0 Z"></path> |
215 | + <g stroke-dasharray="6 6"> |
216 | + <path d="M1276.2 209.5 L1259 225 L1259 238.33333333333334 L1259.0 238.3 " fill="none"></path> |
217 | + </g> |
218 | + <path d="M1253.7 231.7 L1259.0 238.3 L1264.3 231.7 L1259.0 245.0 Z"></path> |
219 | + <path d="M1274.9 217.9 L1276.2 209.5 L1267.7 210.0 L1281.2 205.0 Z"></path> |
220 | + <g stroke-dasharray="6 6"> |
221 | + <path d="M1595.6 206.8 L1659 225 L1659 289.8333333333333 L1659.0 289.8 " fill="none"></path> |
222 | + </g> |
223 | + <path d="M1653.7 283.2 L1659.0 289.8 L1664.3 283.2 L1659.0 296.5 Z"></path> |
224 | + <path d="M1603.5 203.5 L1595.6 206.8 L1600.6 213.8 L1589.2 205.0 Z"></path> |
225 | + <text x="1618.3" y="473.5" stroke="none">SSH</text> |
226 | + <g stroke-dasharray="6 6"> |
227 | + <path d="M1659.0 334.2 L1659 399 L1659 481.5 L1659.0 481.5 " fill="none"></path> |
228 | + </g> |
229 | + <path d="M1664.3 340.8 L1659.0 334.2 L1653.7 340.8 L1659.0 327.5 Z"></path> |
230 | + <g stroke-dasharray="6 6"> |
231 | + <path d="M1691.6 206.3 L1783.5 225 L1783.5 289.8333333333333 L1783.5 289.8 " fill="none"></path> |
232 | + </g> |
233 | + <path d="M1778.2 283.2 L1783.5 289.8 L1788.8 283.2 L1783.5 296.5 Z"></path> |
234 | + <path d="M1699.2 202.4 L1691.6 206.3 L1697.1 212.9 L1685.1 205.0 Z"></path> |
235 | + <g stroke-dasharray="6 6"> |
236 | + <path d="M1783.5 334.2 L1783.5 399 L1783.5 481.5 L1783.5 481.5 " fill="none"></path> |
237 | + </g> |
238 | + <path d="M1788.8 340.8 L1783.5 334.2 L1778.2 340.8 L1783.5 327.5 Z"></path> |
239 | + <g stroke-dasharray="6 6"> |
240 | + <path d="M1102.2 365.9 L1006 399 L1006 412.3333333333333 L1006.0 412.3 " fill="none"></path> |
241 | + </g> |
242 | + <path d="M1000.7 405.7 L1006.0 412.3 L1011.3 405.7 L1006.0 419.0 Z"></path> |
243 | + <path d="M1097.6 373.1 L1102.2 365.9 L1094.2 363.0 L1108.5 363.8 Z"></path> |
244 | + <g stroke-dasharray="6 6"> |
245 | + <path d="M1242.1 385.5 L1239 399 L1239 412.3333333333333 L1239.0 412.3 " fill="none"></path> |
246 | + </g> |
247 | + <path d="M1233.7 405.7 L1239.0 412.3 L1244.3 405.7 L1239.0 419.0 Z"></path> |
248 | + <path d="M1245.8 393.2 L1242.1 385.5 L1235.4 390.8 L1243.6 379.0 Z"></path> |
249 | + <g stroke-dasharray="6 6"> |
250 | + <path d="M1354.1 383.0 L1375.5 399 L1388.6489765726408 413.9884707045646 L1388.6 414.0 " fill="none"></path> |
251 | + </g> |
252 | + <path d="M1380.2 412.5 L1388.6 414.0 L1388.3 405.5 L1393.0 419.0 Z"></path> |
253 | + <path d="M1362.6 382.7 L1354.1 383.0 L1356.2 391.3 L1348.7 379.0 Z"></path> |
254 | + <g stroke-dasharray="6 6"> |
255 | + <path d="M1512.9 419.0 L1522 399 L1522 312 L1522 312 L1522 225 L1522 225 L1489.6328041618644 208.08741118367695 L1489.6 208.1 " fill="none"></path> |
256 | + </g> |
257 | + <path d="M1498.0 206.4 L1489.6 208.1 L1493.1 215.9 L1483.7 205.0 Z"></path> |
258 | + <g data-name="reverse_proxy"> |
259 | + <g fill="#eee8d5" stroke="#33322E" data-name="reverse_proxy"> |
260 | + <rect x="971.8" y="0.0" height="31.0" width="125.0" data-name="reverse_proxy"></rect> |
261 | + </g> |
262 | + <g transform="translate(971.75, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="reverse_proxy"> |
263 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="reverse_proxy"> |
264 | + <text x="54.5" y="13.5" stroke="none" text-anchor="middle" data-name="reverse_proxy">reverse_proxy</text> |
265 | + |
266 | + </g> |
267 | + </g> |
268 | + </g> |
269 | + <g data-name="Rudolfs (LFS API)"> |
270 | + <g fill="#eee8d5" stroke="#33322E" data-name="Rudolfs (LFS API)"> |
271 | + <rect x="637.0" y="122.5" height="31.0" width="152.0" data-name="Rudolfs (LFS API)"></rect> |
272 | + </g> |
273 | + <g transform="translate(637, 122.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Rudolfs (LFS API)"> |
274 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Rudolfs (LFS API)"> |
275 | + <text x="68.0" y="13.5" stroke="none" text-anchor="middle" data-name="Rudolfs (LFS API)">Rudolfs (LFS API)</text> |
276 | + |
277 | + </g> |
278 | + </g> |
279 | + </g> |
280 | + <g data-name="ayllu-core"> |
281 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-core"> |
282 | + <rect x="829.0" y="71.0" height="134.0" width="1053.0" data-name="ayllu-core"></rect> |
283 | + <path d="M829.0 102.0 L1882.0 102.0" fill="none" data-name="ayllu-core"></path> |
284 | + </g> |
285 | + <g transform="translate(829, 71)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-core"> |
286 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-core"> |
287 | + <text x="518.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-core">ayllu-core</text> |
288 | + |
289 | + </g> |
290 | + </g> |
291 | + <g transform="translate(829, 102)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-core"> |
292 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-core"> |
293 | + <g transform="translate(20, 20)" data-name="ayllu-core"> |
294 | + <g data-name="axum http interface"> |
295 | + <g fill="#fdf6e3" stroke="#33322E" data-name="axum http interface"> |
296 | + <rect x="0.0" y="8.0" height="31.0" width="164.0" data-name="axum http interface"></rect> |
297 | + </g> |
298 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="axum http interface"> |
299 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="axum http interface"> |
300 | + <text x="74.0" y="13.5" stroke="none" text-anchor="middle" data-name="axum http interface">axum http interface</text> |
301 | + |
302 | + </g> |
303 | + </g> |
304 | + </g> |
305 | + <g data-name="sites static hosting"> |
306 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sites static hosting"> |
307 | + <rect x="204.0" y="8.0" height="31.0" width="161.0" data-name="sites static hosting"></rect> |
308 | + </g> |
309 | + <g transform="translate(204, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sites static hosting"> |
310 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sites static hosting"> |
311 | + <text x="72.5" y="13.5" stroke="none" text-anchor="middle" data-name="sites static hosting">sites static hosting</text> |
312 | + |
313 | + </g> |
314 | + </g> |
315 | + </g> |
316 | + <g data-name="capnp-rpc-server (job_server)"> |
317 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server (job_server)"> |
318 | + <rect x="405.0" y="8.0" height="31.0" width="244.0" data-name="capnp-rpc-server (job_server)"></rect> |
319 | + </g> |
320 | + <g transform="translate(405, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server (job_server)"> |
321 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server (job_server)"> |
322 | + <text x="114.0" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server (job_server)">capnp-rpc-server (job_server)</text> |
323 | + |
324 | + </g> |
325 | + </g> |
326 | + </g> |
327 | + <g data-name="git repositories via libgit2"> |
328 | + <g fill="#fdf6e3" stroke="#33322E" data-name="git repositories via libgit2"> |
329 | + <rect x="689.0" y="8.0" height="31.0" width="210.0" data-name="git repositories via libgit2"></rect> |
330 | + </g> |
331 | + <g transform="translate(689, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="git repositories via libgit2"> |
332 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="git repositories via libgit2"> |
333 | + <text x="97.0" y="13.5" stroke="none" text-anchor="middle" data-name="git repositories via libgit2">git repositories via libgit2</text> |
334 | + |
335 | + </g> |
336 | + </g> |
337 | + </g> |
338 | + <g data-name="sqlite"> |
339 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
340 | + <rect x="939.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
341 | + <path d="M939.0 8.0 L939.0 39.0" fill="none" data-name="sqlite"></path> |
342 | + <path d="M997.0 8.0 L997.0 39.0" fill="none" data-name="sqlite"></path> |
343 | + <ellipse cx="968.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
344 | + <path d="M997.0 39.0 L997.0 39.3 L996.9 39.6 L996.7 39.9 L996.4 40.2 L996.1 40.5 L995.7 40.8 L995.3 41.1 L994.7 41.3 L994.1 41.6 L993.5 41.9 L992.7 42.1 L992.0 42.4 L991.1 42.6 L990.2 42.9 L989.3 43.1 L988.2 43.3 L987.2 43.5 L986.1 43.7 L984.9 43.9 L983.7 44.0 L982.5 44.2 L981.2 44.3 L979.9 44.5 L978.6 44.6 L977.2 44.7 L975.9 44.8 L974.5 44.8 L973.0 44.9 L971.6 45.0 L970.2 45.0 L968.7 45.0 L967.3 45.0 L965.8 45.0 L964.4 45.0 L963.0 44.9 L961.5 44.8 L960.1 44.8 L958.8 44.7 L957.4 44.6 L956.1 44.5 L954.8 44.3 L953.5 44.2 L952.3 44.0 L951.1 43.9 L949.9 43.7 L948.8 43.5 L947.8 43.3 L946.7 43.1 L945.8 42.9 L944.9 42.6 L944.0 42.4 L943.3 42.1 L942.5 41.9 L941.9 41.6 L941.3 41.3 L940.7 41.1 L940.3 40.8 L939.9 40.5 L939.6 40.2 L939.3 39.9 L939.1 39.6 L939.0 39.3 L939.0 39.0" data-name="sqlite"></path> |
345 | + </g> |
346 | + <g transform="translate(939, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
347 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
348 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
349 | + |
350 | + </g> |
351 | + </g> |
352 | + </g> |
353 | + </g> |
354 | + </g> |
355 | + </g> |
356 | + </g> |
357 | + <g data-name="ayllu-mail"> |
358 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-mail"> |
359 | + <rect x="0.0" y="245.0" height="134.0" width="522.0" data-name="ayllu-mail"></rect> |
360 | + <path d="M0.0 276.0 L522.0 276.0" fill="none" data-name="ayllu-mail"></path> |
361 | + </g> |
362 | + <g transform="translate(0, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-mail"> |
363 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-mail"> |
364 | + <text x="253.0" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-mail">ayllu-mail</text> |
365 | + |
366 | + </g> |
367 | + </g> |
368 | + <g transform="translate(0, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-mail"> |
369 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-mail"> |
370 | + <g transform="translate(20, 20)" data-name="ayllu-mail"> |
371 | + <g data-name="capnp-rpc-server"> |
372 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
373 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
374 | + </g> |
375 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
376 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
377 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
378 | + |
379 | + </g> |
380 | + </g> |
381 | + </g> |
382 | + <g data-name="mailpot"> |
383 | + <g fill="#fdf6e3" stroke="#33322E" data-name="mailpot"> |
384 | + <rect x="187.0" y="8.0" height="31.0" width="73.0" data-name="mailpot"></rect> |
385 | + </g> |
386 | + <g transform="translate(187, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="mailpot"> |
387 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="mailpot"> |
388 | + <text x="28.5" y="13.5" stroke="none" text-anchor="middle" data-name="mailpot">mailpot</text> |
389 | + |
390 | + </g> |
391 | + </g> |
392 | + </g> |
393 | + <g data-name="postfix"> |
394 | + <g fill="#fdf6e3" stroke="#33322E" data-name="postfix"> |
395 | + <rect x="300.0" y="8.0" height="31.0" width="68.0" data-name="postfix"></rect> |
396 | + </g> |
397 | + <g transform="translate(300, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="postfix"> |
398 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="postfix"> |
399 | + <text x="26.0" y="13.5" stroke="none" text-anchor="middle" data-name="postfix">postfix</text> |
400 | + |
401 | + </g> |
402 | + </g> |
403 | + </g> |
404 | + <g data-name="sqlite"> |
405 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
406 | + <rect x="408.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
407 | + <path d="M408.0 8.0 L408.0 39.0" fill="none" data-name="sqlite"></path> |
408 | + <path d="M466.0 8.0 L466.0 39.0" fill="none" data-name="sqlite"></path> |
409 | + <ellipse cx="437.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
410 | + <path d="M466.0 39.0 L466.0 39.3 L465.9 39.6 L465.7 39.9 L465.4 40.2 L465.1 40.5 L464.7 40.8 L464.3 41.1 L463.7 41.3 L463.1 41.6 L462.5 41.9 L461.7 42.1 L461.0 42.4 L460.1 42.6 L459.2 42.9 L458.3 43.1 L457.2 43.3 L456.2 43.5 L455.1 43.7 L453.9 43.9 L452.7 44.0 L451.5 44.2 L450.2 44.3 L448.9 44.5 L447.6 44.6 L446.2 44.7 L444.9 44.8 L443.5 44.8 L442.0 44.9 L440.6 45.0 L439.2 45.0 L437.7 45.0 L436.3 45.0 L434.8 45.0 L433.4 45.0 L432.0 44.9 L430.5 44.8 L429.1 44.8 L427.8 44.7 L426.4 44.6 L425.1 44.5 L423.8 44.3 L422.5 44.2 L421.3 44.0 L420.1 43.9 L418.9 43.7 L417.8 43.5 L416.8 43.3 L415.7 43.1 L414.8 42.9 L413.9 42.6 L413.0 42.4 L412.3 42.1 L411.5 41.9 L410.9 41.6 L410.3 41.3 L409.7 41.1 L409.3 40.8 L408.9 40.5 L408.6 40.2 L408.3 39.9 L408.1 39.6 L408.0 39.3 L408.0 39.0" data-name="sqlite"></path> |
411 | + </g> |
412 | + <g transform="translate(408, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
413 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
414 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
415 | + |
416 | + </g> |
417 | + </g> |
418 | + </g> |
419 | + </g> |
420 | + </g> |
421 | + </g> |
422 | + </g> |
423 | + <g data-name="contributor-2"> |
424 | + <g fill="#eee8d5" stroke="#33322E" data-name="contributor-2"> |
425 | + <circle r="4.0" cx="807.5" cy="493.5" data-name="contributor-2"></circle> |
426 | + <path d="M807.5 497.5 L807.5 505.5" fill="none" data-name="contributor-2"></path> |
427 | + <path d="M803.5 501.5 L811.5 501.5" fill="none" data-name="contributor-2"></path> |
428 | + <path d="M803.5 509.5 L807.5 505.5 L811.5 509.5" fill="none" data-name="contributor-2"></path> |
429 | + </g> |
430 | + <g transform="translate(750, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="contributor-2"> |
431 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="contributor-2"> |
432 | + <text x="49.5" y="13.5" stroke="none" text-anchor="middle" data-name="contributor-2">contributor-2</text> |
433 | + |
434 | + </g> |
435 | + </g> |
436 | + </g> |
437 | + <g data-name="ayllu-xmpp"> |
438 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-xmpp"> |
439 | + <rect x="562.0" y="245.0" height="134.0" width="491.0" data-name="ayllu-xmpp"></rect> |
440 | + <path d="M562.0 276.0 L1053.0 276.0" fill="none" data-name="ayllu-xmpp"></path> |
441 | + </g> |
442 | + <g transform="translate(562, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-xmpp"> |
443 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-xmpp"> |
444 | + <text x="237.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-xmpp">ayllu-xmpp</text> |
445 | + |
446 | + </g> |
447 | + </g> |
448 | + <g transform="translate(562, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-xmpp"> |
449 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-xmpp"> |
450 | + <g transform="translate(20, 20)" data-name="ayllu-xmpp"> |
451 | + <g data-name="capnp-rpc-server"> |
452 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
453 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
454 | + </g> |
455 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
456 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
457 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
458 | + |
459 | + </g> |
460 | + </g> |
461 | + </g> |
462 | + <g data-name="chat interface/bot"> |
463 | + <g fill="#fdf6e3" stroke="#33322E" data-name="chat interface/bot"> |
464 | + <rect x="187.0" y="8.0" height="31.0" width="150.0" data-name="chat interface/bot"></rect> |
465 | + </g> |
466 | + <g transform="translate(187, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="chat interface/bot"> |
467 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="chat interface/bot"> |
468 | + <text x="67.0" y="13.5" stroke="none" text-anchor="middle" data-name="chat interface/bot">chat interface/bot</text> |
469 | + |
470 | + </g> |
471 | + </g> |
472 | + </g> |
473 | + <g data-name="sqlite"> |
474 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
475 | + <rect x="377.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
476 | + <path d="M377.0 8.0 L377.0 39.0" fill="none" data-name="sqlite"></path> |
477 | + <path d="M435.0 8.0 L435.0 39.0" fill="none" data-name="sqlite"></path> |
478 | + <ellipse cx="406.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
479 | + <path d="M435.0 39.0 L435.0 39.3 L434.9 39.6 L434.7 39.9 L434.4 40.2 L434.1 40.5 L433.7 40.8 L433.3 41.1 L432.7 41.3 L432.1 41.6 L431.5 41.9 L430.7 42.1 L430.0 42.4 L429.1 42.6 L428.2 42.9 L427.3 43.1 L426.2 43.3 L425.2 43.5 L424.1 43.7 L422.9 43.9 L421.7 44.0 L420.5 44.2 L419.2 44.3 L417.9 44.5 L416.6 44.6 L415.2 44.7 L413.9 44.8 L412.5 44.8 L411.0 44.9 L409.6 45.0 L408.2 45.0 L406.7 45.0 L405.3 45.0 L403.8 45.0 L402.4 45.0 L401.0 44.9 L399.5 44.8 L398.1 44.8 L396.8 44.7 L395.4 44.6 L394.1 44.5 L392.8 44.3 L391.5 44.2 L390.3 44.0 L389.1 43.9 L387.9 43.7 L386.8 43.5 L385.8 43.3 L384.7 43.1 L383.8 42.9 L382.9 42.6 L382.0 42.4 L381.3 42.1 L380.5 41.9 L379.9 41.6 L379.3 41.3 L378.7 41.1 L378.3 40.8 L377.9 40.5 L377.6 40.2 L377.3 39.9 L377.1 39.6 L377.0 39.3 L377.0 39.0" data-name="sqlite"></path> |
480 | + </g> |
481 | + <g transform="translate(377, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
482 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
483 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
484 | + |
485 | + </g> |
486 | + </g> |
487 | + </g> |
488 | + </g> |
489 | + </g> |
490 | + </g> |
491 | + </g> |
492 | + <g data-name="ayllu-build"> |
493 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-build"> |
494 | + <rect x="1108.5" y="245.0" height="134.0" width="301.0" data-name="ayllu-build"></rect> |
495 | + <path d="M1108.5 276.0 L1409.5 276.0" fill="none" data-name="ayllu-build"></path> |
496 | + </g> |
497 | + <g transform="translate(1108.5, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-build"> |
498 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-build"> |
499 | + <text x="142.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-build">ayllu-build</text> |
500 | + |
501 | + </g> |
502 | + </g> |
503 | + <g transform="translate(1108.5, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-build"> |
504 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-build"> |
505 | + <g transform="translate(20, 20)" data-name="ayllu-build"> |
506 | + <g data-name="capnp-rpc-server"> |
507 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
508 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
509 | + </g> |
510 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
511 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
512 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
513 | + |
514 | + </g> |
515 | + </g> |
516 | + </g> |
517 | + <g data-name="sqlite"> |
518 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
519 | + <rect x="187.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
520 | + <path d="M187.0 8.0 L187.0 39.0" fill="none" data-name="sqlite"></path> |
521 | + <path d="M245.0 8.0 L245.0 39.0" fill="none" data-name="sqlite"></path> |
522 | + <ellipse cx="216.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
523 | + <path d="M245.0 39.0 L245.0 39.3 L244.9 39.6 L244.7 39.9 L244.4 40.2 L244.1 40.5 L243.7 40.8 L243.3 41.1 L242.7 41.3 L242.1 41.6 L241.5 41.9 L240.7 42.1 L240.0 42.4 L239.1 42.6 L238.2 42.9 L237.3 43.1 L236.2 43.3 L235.2 43.5 L234.1 43.7 L232.9 43.9 L231.7 44.0 L230.5 44.2 L229.2 44.3 L227.9 44.5 L226.6 44.6 L225.2 44.7 L223.9 44.8 L222.5 44.8 L221.0 44.9 L219.6 45.0 L218.2 45.0 L216.7 45.0 L215.3 45.0 L213.8 45.0 L212.4 45.0 L211.0 44.9 L209.5 44.8 L208.1 44.8 L206.8 44.7 L205.4 44.6 L204.1 44.5 L202.8 44.3 L201.5 44.2 L200.3 44.0 L199.1 43.9 L197.9 43.7 L196.8 43.5 L195.8 43.3 L194.7 43.1 L193.8 42.9 L192.9 42.6 L192.0 42.4 L191.3 42.1 L190.5 41.9 L189.9 41.6 L189.3 41.3 L188.7 41.1 L188.3 40.8 L187.9 40.5 L187.6 40.2 L187.3 39.9 L187.1 39.6 L187.0 39.3 L187.0 39.0" data-name="sqlite"></path> |
524 | + </g> |
525 | + <g transform="translate(187, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
526 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
527 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
528 | + |
529 | + </g> |
530 | + </g> |
531 | + </g> |
532 | + </g> |
533 | + </g> |
534 | + </g> |
535 | + </g> |
536 | + <g data-name="ayllu-shell"> |
537 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-shell"> |
538 | + <rect x="1612.0" y="296.5" height="31.0" width="94.0" data-name="ayllu-shell"></rect> |
539 | + </g> |
540 | + <g transform="translate(1612, 296.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-shell"> |
541 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-shell"> |
542 | + <text x="39.0" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-shell">ayllu-shell</text> |
543 | + |
544 | + </g> |
545 | + </g> |
546 | + </g> |
547 | + <g data-name="contributor"> |
548 | + <g fill="#eee8d5" stroke="#33322E" data-name="contributor"> |
549 | + <circle r="4.0" cx="1659.0" cy="493.5" data-name="contributor"></circle> |
550 | + <path d="M1659.0 497.5 L1659.0 505.5" fill="none" data-name="contributor"></path> |
551 | + <path d="M1655.0 501.5 L1663.0 501.5" fill="none" data-name="contributor"></path> |
552 | + <path d="M1655.0 509.5 L1659.0 505.5 L1663.0 509.5" fill="none" data-name="contributor"></path> |
553 | + </g> |
554 | + <g transform="translate(1608.5, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="contributor"> |
555 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="contributor"> |
556 | + <text x="42.5" y="13.5" stroke="none" text-anchor="middle" data-name="contributor">contributor</text> |
557 | + |
558 | + </g> |
559 | + </g> |
560 | + </g> |
561 | + <g data-name="ayllu-cli"> |
562 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-cli"> |
563 | + <rect x="1746.0" y="296.5" height="31.0" width="75.0" data-name="ayllu-cli"></rect> |
564 | + </g> |
565 | + <g transform="translate(1746, 296.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-cli"> |
566 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-cli"> |
567 | + <text x="29.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-cli">ayllu-cli</text> |
568 | + |
569 | + </g> |
570 | + </g> |
571 | + </g> |
572 | + <g data-name="admin"> |
573 | + <g fill="#eee8d5" stroke="#33322E" data-name="admin"> |
574 | + <circle r="4.0" cx="1783.5" cy="493.5" data-name="admin"></circle> |
575 | + <path d="M1783.5 497.5 L1783.5 505.5" fill="none" data-name="admin"></path> |
576 | + <path d="M1779.5 501.5 L1787.5 501.5" fill="none" data-name="admin"></path> |
577 | + <path d="M1779.5 509.5 L1783.5 505.5 L1787.5 509.5" fill="none" data-name="admin"></path> |
578 | + </g> |
579 | + <g transform="translate(1752, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="admin"> |
580 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="admin"> |
581 | + <text x="23.5" y="13.5" stroke="none" text-anchor="middle" data-name="admin">admin</text> |
582 | + |
583 | + </g> |
584 | + </g> |
585 | + </g> |
586 | + <g data-name="ayllu-builder-1"> |
587 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-1"> |
588 | + <rect x="909.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-1"></rect> |
589 | + <path d="M909.5 450.0 L1102.5 450.0" fill="none" data-name="ayllu-builder-1"></path> |
590 | + </g> |
591 | + <g transform="translate(909.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-1"> |
592 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-1"> |
593 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-1">ayllu-builder-1</text> |
594 | + |
595 | + </g> |
596 | + </g> |
597 | + <g transform="translate(909.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-1"> |
598 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-1"> |
599 | + <g transform="translate(20, 20)" data-name="ayllu-builder-1"> |
600 | + <g data-name="qemu-x86_64"> |
601 | + <g fill="#fdf6e3" stroke="#33322E" data-name="qemu-x86_64"> |
602 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="qemu-x86_64"></rect> |
603 | + <path d="M0.0 31.0 L0.0 0.0 L113.1 0.0 L113.1 31.0 Z" data-name="qemu-x86_64"></path> |
604 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="qemu-x86_64"></path> |
605 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="qemu-x86_64"></path> |
606 | + </g> |
607 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
608 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
609 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">qemu-x86_64</text> |
610 | + |
611 | + </g> |
612 | + </g> |
613 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
614 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
615 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">capnp-rpc-server</text> |
616 | + |
617 | + </g> |
618 | + </g> |
619 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
620 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
621 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">executor</text> |
622 | + |
623 | + </g> |
624 | + </g> |
625 | + </g> |
626 | + </g> |
627 | + </g> |
628 | + </g> |
629 | + </g> |
630 | + <g data-name="ayllu-builder-2"> |
631 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-2"> |
632 | + <rect x="1142.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-2"></rect> |
633 | + <path d="M1142.5 450.0 L1335.5 450.0" fill="none" data-name="ayllu-builder-2"></path> |
634 | + </g> |
635 | + <g transform="translate(1142.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-2"> |
636 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-2"> |
637 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-2">ayllu-builder-2</text> |
638 | + |
639 | + </g> |
640 | + </g> |
641 | + <g transform="translate(1142.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-2"> |
642 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-2"> |
643 | + <g transform="translate(20, 20)" data-name="ayllu-builder-2"> |
644 | + <g data-name="qemu-aarch64"> |
645 | + <g fill="#fdf6e3" stroke="#33322E" data-name="qemu-aarch64"> |
646 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="qemu-aarch64"></rect> |
647 | + <path d="M0.0 31.0 L0.0 0.0 L118.9 0.0 L118.9 31.0 Z" data-name="qemu-aarch64"></path> |
648 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="qemu-aarch64"></path> |
649 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="qemu-aarch64"></path> |
650 | + </g> |
651 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
652 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
653 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">qemu-aarch64</text> |
654 | + |
655 | + </g> |
656 | + </g> |
657 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
658 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
659 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">capnp-rpc-server</text> |
660 | + |
661 | + </g> |
662 | + </g> |
663 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
664 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
665 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">exectuor</text> |
666 | + |
667 | + </g> |
668 | + </g> |
669 | + </g> |
670 | + </g> |
671 | + </g> |
672 | + </g> |
673 | + </g> |
674 | + <g data-name="ayllu-builder-n"> |
675 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-n"> |
676 | + <rect x="1375.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-n"></rect> |
677 | + <path d="M1375.5 450.0 L1568.5 450.0" fill="none" data-name="ayllu-builder-n"></path> |
678 | + </g> |
679 | + <g transform="translate(1375.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-n"> |
680 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-n"> |
681 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-n">ayllu-builder-n</text> |
682 | + |
683 | + </g> |
684 | + </g> |
685 | + <g transform="translate(1375.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-n"> |
686 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-n"> |
687 | + <g transform="translate(20, 20)" data-name="ayllu-builder-n"> |
688 | + <g data-name="lxc"> |
689 | + <g fill="#fdf6e3" stroke="#33322E" data-name="lxc"> |
690 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="lxc"></rect> |
691 | + <path d="M0.0 31.0 L0.0 0.0 L35.2 0.0 L35.2 31.0 Z" data-name="lxc"></path> |
692 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="lxc"></path> |
693 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="lxc"></path> |
694 | + </g> |
695 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
696 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
697 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">lxc</text> |
698 | + |
699 | + </g> |
700 | + </g> |
701 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
702 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
703 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">capnp-rpc-server</text> |
704 | + |
705 | + </g> |
706 | + </g> |
707 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
708 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
709 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">executor</text> |
710 | + |
711 | + </g> |
712 | + </g> |
713 | + </g> |
714 | + </g> |
715 | + </g> |
716 | + </g> |
717 | + </g> |
718 | + </g> |
719 | + </g> |
720 | + </g> |
721 | + </g> |
722 | + </svg> |
723 | \ No newline at end of file |
724 | diff --git a/www/public/assets/computer.png b/www/public/assets/computer.png |
725 | deleted file mode 100644 |
726 | index dbe2651..0000000 |
727 | Binary files a/www/public/assets/computer.png and /dev/null differ |
728 | diff --git a/www/public/assets/crescent.png b/www/public/assets/crescent.png |
729 | deleted file mode 100644 |
730 | index c46dc91..0000000 |
731 | Binary files a/www/public/assets/crescent.png and /dev/null differ |
732 | diff --git a/www/public/assets/crescent.svg b/www/public/assets/crescent.svg |
733 | deleted file mode 100644 |
734 | index 51596eb..0000000 |
735 | --- a/www/public/assets/crescent.svg |
736 | +++ /dev/null |
737 | @@ -1,12 +0,0 @@ |
738 | - <svg id="emoji" viewBox="0 0 72 72" xmlns="http://www.w3.org/2000/svg"> |
739 | - <g id="color"> |
740 | - <path fill="#FCEA2B" stroke="none" d="M7.3634,42.4095c4.5525,6.1703,11.874,10.1726,20.1303,10.1726c13.8071,0,25-11.1929,25-25 c0-8.5226-4.2646-16.0492-10.7763-20.5621c13.0383,2.8385,22.7812,14.4426,22.7812,28.3317c0,16.0163-12.9837,29-29,29 C21.9109,64.3517,10.5097,55.0229,7.3634,42.4095z"/> |
741 | - <path fill="#F1B31C" stroke="none" d="M45.8373,9.2108c8.25,4.25,16.1946,11.8724,16.1946,24.6742c0,15.4494-12.5242,27.9735-27.9735,27.9735 c-9.2431,0-19.7524-4.8353-24.294-15.5436c0,0,4.3805,18.6568,25.7189,18.665c19.327,0.0074,28.0419-20.6218,28.0419-20.6218 C70.033,12.3815,45.8373,9.2108,45.8373,9.2108z"/> |
742 | - </g> |
743 | - <g id="hair"/> |
744 | - <g id="skin"/> |
745 | - <g id="skin-shadow"/> |
746 | - <g id="line"> |
747 | - <path fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2" d="M7.3634,42.4095c4.5525,6.1703,11.874,10.1726,20.1303,10.1726c13.8071,0,25-11.1929,25-25 c0-8.5226-4.2646-16.0492-10.7763-20.5621c13.0383,2.8385,22.7812,14.4426,22.7812,28.3317c0,16.0163-12.9837,29-29,29 C21.9109,64.3517,10.5097,55.0229,7.3634,42.4095z"/> |
748 | - </g> |
749 | - </svg> |
750 | diff --git a/www/public/assets/crescent_logo.png b/www/public/assets/crescent_logo.png |
751 | deleted file mode 100644 |
752 | index c3aef0d..0000000 |
753 | Binary files a/www/public/assets/crescent_logo.png and /dev/null differ |
754 | diff --git a/www/public/assets/crescent_logo.svg b/www/public/assets/crescent_logo.svg |
755 | deleted file mode 100644 |
756 | index b766584..0000000 |
757 | --- a/www/public/assets/crescent_logo.svg |
758 | +++ /dev/null |
759 | @@ -1,192 +0,0 @@ |
760 | - <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
761 | - <svg |
762 | - id="emoji" |
763 | - viewBox="0 0 75 80" |
764 | - version="1.1" |
765 | - sodipodi:docname="ayllu_logo.svg" |
766 | - width="75" |
767 | - height="80" |
768 | - inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" |
769 | - inkscape:export-filename="ayllu_logo.png" |
770 | - inkscape:export-xdpi="92.290512" |
771 | - inkscape:export-ydpi="92.290512" |
772 | - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
773 | - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
774 | - xmlns="http://www.w3.org/2000/svg" |
775 | - xmlns:svg="http://www.w3.org/2000/svg" |
776 | - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
777 | - xmlns:cc="http://creativecommons.org/ns#" |
778 | - xmlns:dc="http://purl.org/dc/elements/1.1/"> |
779 | - <title |
780 | - id="title8">Ayllu Logo</title> |
781 | - <defs |
782 | - id="defs3"> |
783 | - <pattern |
784 | - patternUnits="userSpaceOnUse" |
785 | - width="100" |
786 | - height="100" |
787 | - id="Gingham" |
788 | - preserveAspectRatio="xMidYMid" |
789 | - patternTransform="scale(0.5,0.5)" |
790 | - style="fill:#0000ff"> |
791 | - <rect |
792 | - style="fill-opacity:0.5;stroke:none" |
793 | - id="rect3" |
794 | - width="50" |
795 | - height="50" |
796 | - x="50" |
797 | - y="0" /> |
798 | - <rect |
799 | - style="stroke:none" |
800 | - id="rect4" |
801 | - width="50" |
802 | - height="50" |
803 | - x="50" |
804 | - y="50" /> |
805 | - <rect |
806 | - style="fill-opacity:0.5;stroke:none" |
807 | - id="rect5" |
808 | - width="50" |
809 | - height="50" |
810 | - x="0" |
811 | - y="50" /> |
812 | - </pattern> |
813 | - </defs> |
814 | - <sodipodi:namedview |
815 | - id="namedview3" |
816 | - pagecolor="#ffffff" |
817 | - bordercolor="#999999" |
818 | - borderopacity="1" |
819 | - inkscape:showpageshadow="0" |
820 | - inkscape:pageopacity="0" |
821 | - inkscape:pagecheckerboard="0" |
822 | - inkscape:deskcolor="#d1d1d1" |
823 | - inkscape:zoom="8.25" |
824 | - inkscape:cx="5.1515152" |
825 | - inkscape:cy="36.424242" |
826 | - inkscape:window-width="3826" |
827 | - inkscape:window-height="1029" |
828 | - inkscape:window-x="0" |
829 | - inkscape:window-y="0" |
830 | - inkscape:window-maximized="1" |
831 | - inkscape:current-layer="emoji" |
832 | - showgrid="true"> |
833 | - <inkscape:grid |
834 | - id="grid8" |
835 | - units="px" |
836 | - originx="0" |
837 | - originy="0" |
838 | - spacingx="1" |
839 | - spacingy="1" |
840 | - empcolor="#0099e5" |
841 | - empopacity="0.30196078" |
842 | - color="#0099e5" |
843 | - opacity="0.14901961" |
844 | - empspacing="5" |
845 | - dotted="false" |
846 | - gridanglex="30" |
847 | - gridanglez="30" |
848 | - visible="true" /> |
849 | - </sodipodi:namedview> |
850 | - <g |
851 | - inkscape:groupmode="layer" |
852 | - id="layer7" |
853 | - inkscape:label="bg"> |
854 | - <rect |
855 | - style="fill:#000000;fill-opacity:1;stroke-width:3.26929" |
856 | - id="rect14" |
857 | - width="74.891571" |
858 | - height="79.840912" |
859 | - x="0.029829545" |
860 | - y="0.18181819" |
861 | - rx="4.2495718" |
862 | - ry="4.1789107" /> |
863 | - </g> |
864 | - <g |
865 | - inkscape:groupmode="layer" |
866 | - id="layer1" |
867 | - inkscape:label="bg 1"> |
868 | - <g |
869 | - inkscape:groupmode="layer" |
870 | - id="layer7-3" |
871 | - inkscape:label="bg" |
872 | - transform="translate(0.10227227,0.03882594)"> |
873 | - <rect |
874 | - style="fill:#fcea2b;fill-opacity:1;stroke-width:3.10583" |
875 | - id="rect14-6" |
876 | - width="71.146996" |
877 | - height="75.848869" |
878 | - x="1.9021188" |
879 | - y="2.1778409" |
880 | - rx="4.0370932" |
881 | - ry="3.9699652" /> |
882 | - </g> |
883 | - </g> |
884 | - <g |
885 | - inkscape:groupmode="layer" |
886 | - id="layer4" |
887 | - inkscape:label="text" |
888 | - transform="translate(-1.2556819,-2.7045453)" |
889 | - style="display:inline" /> |
890 | - <g |
891 | - id="g8" |
892 | - transform="matrix(1.0086293,0,0,0.99990106,-0.07783972,3.322434)"> |
893 | - <g |
894 | - id="color" |
895 | - transform="translate(1.3252841,0.98390174)" |
896 | - style="display:inline" |
897 | - inkscape:label="moon-shade"> |
898 | - <path |
899 | - fill="#fcea2b" |
900 | - stroke="none" |
901 | - d="m 7.3634,42.4095 c 4.5525,6.1703 11.874,10.1726 20.1303,10.1726 13.8071,0 25,-11.1929 25,-25 0,-8.5226 -4.2646,-16.0492 -10.7763,-20.5621 13.0383,2.8385 22.7812,14.4426 22.7812,28.3317 0,16.0163 -12.9837,29 -29,29 -13.5877,0 -24.9889,-9.3288 -28.1352,-21.9422 z" |
902 | - id="path1" /> |
903 | - <path |
904 | - fill="#f1b31c" |
905 | - stroke="none" |
906 | - d="m 45.8373,9.2108 c 8.25,4.25 16.1946,11.8724 16.1946,24.6742 0,15.4494 -12.5242,27.9735 -27.9735,27.9735 -9.2431,0 -19.7524,-4.8353 -24.294,-15.5436 0,0 4.3805,18.6568 25.7189,18.665 C 54.8103,64.9873 63.5252,44.3581 63.5252,44.3581 70.033,12.3815 45.8373,9.2108 45.8373,9.2108 Z" |
907 | - id="path2" /> |
908 | - </g> |
909 | - <g |
910 | - id="line" |
911 | - transform="translate(1.3252841,0.98390174)" |
912 | - inkscape:label="moon-line"> |
913 | - <path |
914 | - fill="none" |
915 | - stroke="#000000" |
916 | - stroke-linecap="round" |
917 | - stroke-linejoin="round" |
918 | - stroke-miterlimit="10" |
919 | - stroke-width="2" |
920 | - d="m 7.3634,42.4095 c 4.5525,6.1703 11.874,10.1726 20.1303,10.1726 13.8071,0 25,-11.1929 25,-25 0,-8.5226 -4.2646,-16.0492 -10.7763,-20.5621 13.0383,2.8385 22.7812,14.4426 22.7812,28.3317 0,16.0163 -12.9837,29 -29,29 -13.5877,0 -24.9889,-9.3288 -28.1352,-21.9422 z" |
921 | - id="path3" /> |
922 | - </g> |
923 | - </g> |
924 | - <metadata |
925 | - id="metadata8"> |
926 | - <rdf:RDF> |
927 | - <cc:Work |
928 | - rdf:about=""> |
929 | - <dc:title>Ayllu Logo</dc:title> |
930 | - <cc:license |
931 | - rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> |
932 | - <dc:description>Originally created by Vanessa Boutzikoudi @ https://openmoji.org/library/emoji-1F319/</dc:description> |
933 | - </cc:Work> |
934 | - <cc:License |
935 | - rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> |
936 | - <cc:permits |
937 | - rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
938 | - <cc:permits |
939 | - rdf:resource="http://creativecommons.org/ns#Distribution" /> |
940 | - <cc:requires |
941 | - rdf:resource="http://creativecommons.org/ns#Notice" /> |
942 | - <cc:requires |
943 | - rdf:resource="http://creativecommons.org/ns#Attribution" /> |
944 | - <cc:permits |
945 | - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
946 | - <cc:requires |
947 | - rdf:resource="http://creativecommons.org/ns#ShareAlike" /> |
948 | - </cc:License> |
949 | - </rdf:RDF> |
950 | - </metadata> |
951 | - </svg> |
952 | diff --git a/www/public/docs/architecture/index.html b/www/public/docs/architecture/index.html |
953 | new file mode 100644 |
954 | index 0000000..0e4ba41 |
955 | --- /dev/null |
956 | +++ b/www/public/docs/architecture/index.html |
957 | @@ -0,0 +1,76 @@ |
958 | + <!doctype html> |
959 | + <html lang="en"> |
960 | + <head> |
961 | + <meta charset="utf-8" /> |
962 | + <link rel="stylesheet" href="/main.css" /> |
963 | + <link href="/assets/ayllu_logo.svg" rel="icon" type="image/svg+xml" /> |
964 | + <link |
965 | + href="/assets/ayllu_logo.png" |
966 | + rel="icon" |
967 | + sizes="any" |
968 | + type="image/png" |
969 | + /> |
970 | + <title>Ayllu</title> |
971 | + </head> |
972 | + <nav> |
973 | + <ul> |
974 | + <li> |
975 | + <a href="/"> |
976 | + <img class="logo" src="/assets/ayllu_logo.png" /> |
977 | + </a> |
978 | + </li> |
979 | + </ul> |
980 | + <ul> |
981 | + <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
982 | + <li><a href="/docs">docs</a></li> |
983 | + </ul> |
984 | + </nav> |
985 | + <body class="container"> |
986 | + <div class="wrapper"> |
987 | + <main class="page-body"> |
988 | + |
989 | + |
990 | + <div class="documentation"> |
991 | + <div class="side-panel"> |
992 | + |
993 | + <ul> |
994 | + |
995 | + <li class="active"> |
996 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
997 | + </li> |
998 | + |
999 | + <li class=""> |
1000 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
1001 | + </li> |
1002 | + |
1003 | + <li class=""> |
1004 | + <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
1005 | + </li> |
1006 | + |
1007 | + <li class=""> |
1008 | + <a href="https://ayllu-forge.org/docs/faq/">FAQ</a> |
1009 | + </li> |
1010 | + |
1011 | + </ul> |
1012 | + </div> |
1013 | + <div class="doc-content"> |
1014 | + <h1>Architecture</h1> |
1015 | + <p><strong>Ayllu is a new software project and it's design is evolving.</strong> </p> |
1016 | + <p>It's basic architecture is that of a single binary providing a web interface to |
1017 | + browse and interact with Git repositories as well as an RPC server based on |
1018 | + <a href="https://capnproto.org/">Cap'n Proto</a> with an embedded client. The RPC server |
1019 | + running in the core Ayllu binary is called the <code>job_server</code> and it provides an |
1020 | + interface to interact with Ayllu for administrators. Much of the functionality |
1021 | + of Ayllu is implemented via <code>RPC extensions</code> which are minimal binaries that |
1022 | + are used to extend the core functionality of Ayllu.</p> |
1023 | + <p>The current architecture of Ayllu is depicted below:</p> |
1024 | + <img class="diagram" src="/assets/architecture.svg" /> |
1025 | + |
1026 | + </div> |
1027 | + </div> |
1028 | + |
1029 | + </main> |
1030 | + <footer class="page-footer"> 2023, <a href="/projects/ayllu/blob/main/ATTRIBUTIONS.md">attributions</a> </footer> |
1031 | + </div> |
1032 | + </body> |
1033 | + </html> |
1034 | diff --git a/www/public/docs/developers/index.html b/www/public/docs/developers/index.html |
1035 | new file mode 100644 |
1036 | index 0000000..413d217 |
1037 | --- /dev/null |
1038 | +++ b/www/public/docs/developers/index.html |
1039 | @@ -0,0 +1,80 @@ |
1040 | + <!doctype html> |
1041 | + <html lang="en"> |
1042 | + <head> |
1043 | + <meta charset="utf-8" /> |
1044 | + <link rel="stylesheet" href="/main.css" /> |
1045 | + <link href="/assets/ayllu_logo.svg" rel="icon" type="image/svg+xml" /> |
1046 | + <link |
1047 | + href="/assets/ayllu_logo.png" |
1048 | + rel="icon" |
1049 | + sizes="any" |
1050 | + type="image/png" |
1051 | + /> |
1052 | + <title>Ayllu</title> |
1053 | + </head> |
1054 | + <nav> |
1055 | + <ul> |
1056 | + <li> |
1057 | + <a href="/"> |
1058 | + <img class="logo" src="/assets/ayllu_logo.png" /> |
1059 | + </a> |
1060 | + </li> |
1061 | + </ul> |
1062 | + <ul> |
1063 | + <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
1064 | + <li><a href="/docs">docs</a></li> |
1065 | + </ul> |
1066 | + </nav> |
1067 | + <body class="container"> |
1068 | + <div class="wrapper"> |
1069 | + <main class="page-body"> |
1070 | + |
1071 | + |
1072 | + <div class="documentation"> |
1073 | + <div class="side-panel"> |
1074 | + |
1075 | + <ul> |
1076 | + |
1077 | + <li class=""> |
1078 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
1079 | + </li> |
1080 | + |
1081 | + <li class="active"> |
1082 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
1083 | + </li> |
1084 | + |
1085 | + <li class=""> |
1086 | + <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
1087 | + </li> |
1088 | + |
1089 | + <li class=""> |
1090 | + <a href="https://ayllu-forge.org/docs/faq/">FAQ</a> |
1091 | + </li> |
1092 | + |
1093 | + </ul> |
1094 | + </div> |
1095 | + <div class="doc-content"> |
1096 | + <h1>Developers</h1> |
1097 | + <h1 id="ayllu-forge-org">ayllu-forge.org</h1> |
1098 | + <p>The <a href="https://ayllu-forge.org">Ayllu website</a> and project documentation are built |
1099 | + together with <a href="https://www.getzola.org/">Zola</a> which you must install. After |
1100 | + which you can startup a local preview of the site with the following commands:</p> |
1101 | + <pre data-lang="sh" class="language-sh "><code class="language-sh" data-lang="sh">cd www && zola serve |
1102 | + </code></pre> |
1103 | + <p>The generated content are hosted directly from Ayllu and you simply need to |
1104 | + build and commit the generated code directly into the repository.</p> |
1105 | + <pre data-lang="sh" class="language-sh "><code class="language-sh" data-lang="sh">cd www && zola build |
1106 | + </code></pre> |
1107 | + <h2 id="diagrams">Diagrams</h2> |
1108 | + <p>Diagrams are built with <a href="https://www.nomnoml.com/">nomnoml</a> and their SVG |
1109 | + content contain the source for generating the diagrams. Simply open one of the |
1110 | + source SVGs up and copy-paste it to the editor of the nomnoml website.</p> |
1111 | + |
1112 | + </div> |
1113 | + </div> |
1114 | + |
1115 | + </main> |
1116 | + <footer class="page-footer"> 2023, <a href="/projects/ayllu/blob/main/ATTRIBUTIONS.md">attributions</a> </footer> |
1117 | + </div> |
1118 | + </body> |
1119 | + </html> |
1120 | diff --git a/www/public/docs/faq/index.html b/www/public/docs/faq/index.html |
1121 | index a97f054..cc95153 100644 |
1122 | --- a/www/public/docs/faq/index.html |
1123 | +++ b/www/public/docs/faq/index.html |
1124 | @@ -22,7 +22,7 @@ |
1125 | </ul> |
1126 | <ul> |
1127 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
1128 | - <!--<li><a href="/docs">docs</a></li> --> |
1129 | + <li><a href="/docs">docs</a></li> |
1130 | </ul> |
1131 | </nav> |
1132 | <body class="container"> |
1133 | @@ -36,6 +36,14 @@ |
1134 | <ul> |
1135 | |
1136 | <li class=""> |
1137 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
1138 | + </li> |
1139 | + |
1140 | + <li class=""> |
1141 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
1142 | + </li> |
1143 | + |
1144 | + <li class=""> |
1145 | <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
1146 | </li> |
1147 | |
1148 | @@ -48,7 +56,9 @@ |
1149 | <div class="doc-content"> |
1150 | <h1>FAQ</h1> |
1151 | <h5 id="what-does-ayllu-mean">What Does "Ayllu" Mean?</h5> |
1152 | - <p>The name <a href="https://en.wikipedia.org/wiki/Ayllu">Ayllu</a> [IPA] <em>/ˈajʎu/</em>, or <em>eye-joo</em> is the Quechua word for the traditional form of community in the Andes particularly around in Bolivia and Peru.</p> |
1153 | + <p>The name <a href="https://en.wikipedia.org/wiki/Ayllu">Ayllu</a> <em>/ˈajʎu/</em>, <em>eye-joo</em> is |
1154 | + the Quechua word for the traditional form of a community in the Andes region |
1155 | + of South America, particularly in Bolivia and Peru.</p> |
1156 | <h5 id="do-you-provide-hosting">Do You Provide Hosting?</h5> |
1157 | <p>Not currently. If there was enough interest the project might offer hosted |
1158 | environments as a way to sustain it's development.</p> |
1159 | diff --git a/www/public/docs/index.html b/www/public/docs/index.html |
1160 | index fa44605..6566d04 100644 |
1161 | --- a/www/public/docs/index.html |
1162 | +++ b/www/public/docs/index.html |
1163 | @@ -22,7 +22,7 @@ |
1164 | </ul> |
1165 | <ul> |
1166 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
1167 | - <!--<li><a href="/docs">docs</a></li> --> |
1168 | + <li><a href="/docs">docs</a></li> |
1169 | </ul> |
1170 | </nav> |
1171 | <body class="container"> |
1172 | @@ -35,6 +35,14 @@ |
1173 | <ul> |
1174 | |
1175 | <li class=""> |
1176 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
1177 | + </li> |
1178 | + |
1179 | + <li class=""> |
1180 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
1181 | + </li> |
1182 | + |
1183 | + <li class=""> |
1184 | <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
1185 | </li> |
1186 | |
1187 | @@ -46,6 +54,8 @@ |
1188 | </div> |
1189 | <div class="doc-content"> |
1190 | <h1 id="documentation">Documentation</h1> |
1191 | + <p>Welcome to the Ayllu documentation 📖, this is section serves as an |
1192 | + authoritative reference on all things related to the Ayllu code forge!</p> |
1193 | |
1194 | </div> |
1195 | </div> |
1196 | diff --git a/www/public/docs/installation/index.html b/www/public/docs/installation/index.html |
1197 | index 78a9587..b563e6b 100644 |
1198 | --- a/www/public/docs/installation/index.html |
1199 | +++ b/www/public/docs/installation/index.html |
1200 | @@ -22,7 +22,7 @@ |
1201 | </ul> |
1202 | <ul> |
1203 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
1204 | - <!--<li><a href="/docs">docs</a></li> --> |
1205 | + <li><a href="/docs">docs</a></li> |
1206 | </ul> |
1207 | </nav> |
1208 | <body class="container"> |
1209 | @@ -35,6 +35,14 @@ |
1210 | |
1211 | <ul> |
1212 | |
1213 | + <li class=""> |
1214 | + <a href="https://ayllu-forge.org/docs/architecture/">Architecture</a> |
1215 | + </li> |
1216 | + |
1217 | + <li class=""> |
1218 | + <a href="https://ayllu-forge.org/docs/developers/">Developers</a> |
1219 | + </li> |
1220 | + |
1221 | <li class="active"> |
1222 | <a href="https://ayllu-forge.org/docs/installation/">Installation</a> |
1223 | </li> |
1224 | @@ -47,8 +55,7 @@ |
1225 | </div> |
1226 | <div class="doc-content"> |
1227 | <h1>Installation</h1> |
1228 | - <h3 id="installation">Installation</h3> |
1229 | - <h4 id="from-source">From Source</h4> |
1230 | + <p>TODO</p> |
1231 | |
1232 | </div> |
1233 | </div> |
1234 | diff --git a/www/public/index.html b/www/public/index.html |
1235 | index 696b663..70e52f1 100644 |
1236 | --- a/www/public/index.html |
1237 | +++ b/www/public/index.html |
1238 | @@ -22,7 +22,7 @@ |
1239 | </ul> |
1240 | <ul> |
1241 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
1242 | - <!--<li><a href="/docs">docs</a></li> --> |
1243 | + <li><a href="/docs">docs</a></li> |
1244 | </ul> |
1245 | </nav> |
1246 | <body class="container"> |
1247 | @@ -35,8 +35,8 @@ |
1248 | <p>Ayllu is a lightweight code forge designed to enable individuals and |
1249 | community projects to develop software in collaboration across open internet |
1250 | standards.</p> |
1251 | - <a href="https://ayllu-forge.org/projects/ayllu/refs"> |
1252 | - <button> Latest Release: 0.2.1 </button> |
1253 | + <a href="https://ayllu-forge.org/projects/ayllu"> |
1254 | + <button> Source </button> |
1255 | </a> |
1256 | </div> |
1257 | <figure> |
1258 | diff --git a/www/public/main.css b/www/public/main.css |
1259 | index bc04568..e6248c3 100644 |
1260 | --- a/www/public/main.css |
1261 | +++ b/www/public/main.css |
1262 | @@ -4,4 +4,4 @@ |
1263 | * |
1264 | * Slim version example |
1265 | * You can export only the modules you need |
1266 | - */:root{--font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu", "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--line-height: 1.5;--font-weight: 400;--font-size: 16px;--border-radius: 0.25rem;--border-width: 1px;--outline-width: 3px;--spacing: 1rem;--typography-spacing-vertical: 1.5rem;--block-spacing-vertical: calc(var(--spacing) * 2);--block-spacing-horizontal: var(--spacing);--grid-spacing-vertical: 0;--grid-spacing-horizontal: var(--spacing);--form-element-spacing-vertical: 0.75rem;--form-element-spacing-horizontal: 1rem;--nav-element-spacing-vertical: 1rem;--nav-element-spacing-horizontal: 0.5rem;--nav-link-spacing-vertical: 0.5rem;--nav-link-spacing-horizontal: 0.5rem;--form-label-font-weight: var(--font-weight);--transition: 0.2s ease-in-out;--modal-overlay-backdrop-filter: blur(0.25rem)}@media (min-width: 576px){:root{--font-size: 17px}}@media (min-width: 768px){:root{--font-size: 18px}}@media (min-width: 1220px){:root{--font-size: 19px}}@media (min-width: 1700px){:root{--font-size: 20px}}a{--text-decoration: none}a.secondary,a.contrast{--text-decoration: underline}small{--font-size: 0.875em}h1,h2,h3,h4,h5,h6{--font-weight: 700}h1{--font-size: 2rem;--typography-spacing-vertical: 3rem}h2{--font-size: 1.75rem;--typography-spacing-vertical: 2.625rem}h3{--font-size: 1.5rem;--typography-spacing-vertical: 2.25rem}h4{--font-size: 1.25rem;--typography-spacing-vertical: 1.874rem}h5{--font-size: 1.125rem;--typography-spacing-vertical: 1.6875rem}[type=checkbox],[type=radio]{--border-width: 2px}[type=checkbox][role=switch]{--border-width: 3px}thead th,thead td,tfoot th,tfoot td{--border-width: 3px}:not(thead,tfoot)>*>td{--font-size: 0.875em}pre,code,kbd,samp{--font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace", "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}kbd{--font-weight: bolder}[data-theme=light],:root:not([data-theme=dark]){--background-color: #fff;--color: #415462;--h1-color: #1b2832;--h2-color: #24333e;--h3-color: #2c3d49;--h4-color: #374956;--h5-color: #415462;--h6-color: #4d606d;--muted-color: #73828c;--muted-border-color: #edf0f3;--primary: #1095c1;--primary-hover: #08769b;--primary-focus: rgba(16,149,193,.125);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #415462;--secondary-focus: rgba(89,107,120,.125);--secondary-inverse: #fff;--contrast: #1b2832;--contrast-hover: #000;--contrast-focus: rgba(89,107,120,.125);--contrast-inverse: #fff;--mark-background-color: #fff2ca;--mark-color: #543a26;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: transparent;--form-element-border-color: #a2afb9;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: transparent;--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #d5dce2;--form-element-disabled-border-color: #a2afb9;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #c62828;--form-element-invalid-active-border-color: #d32f2f;--form-element-invalid-focus-color: rgba(211,47,47,.125);--form-element-valid-border-color: #388e3c;--form-element-valid-active-border-color: #43a047;--form-element-valid-focus-color: rgba(67,160,71,.125);--switch-background-color: #bbc6ce;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #d5dce2;--range-active-border-color: #bbc6ce;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: #f6f8f9;--code-background-color: #edf0f3;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #b34d80;--code-property-color: #3d888f;--code-value-color: #986;--code-comment-color: #a2afb9;--accordion-border-color: var(--muted-border-color);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: var(--background-color);--card-border-color: var(--muted-border-color);--card-box-shadow: .0145rem .029rem .174rem rgba(27,40,50,.01698), .0335rem .067rem .402rem rgba(27,40,50,.024), .0625rem .125rem .75rem rgba(27,40,50,.03), .1125rem .225rem 1.35rem rgba(27,40,50,.036), .2085rem .417rem 2.502rem rgba(27,40,50,.04302), .5rem 1rem 6rem rgba(27,40,50,.06), 0 0 0 0.0625rem rgba(27,40,50,.015);--card-sectionning-background-color: #fbfbfc;--dropdown-background-color: #fbfbfc;--dropdown-border-color: #e1e6eb;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: #edf0f3;--modal-overlay-background-color: rgba(213,220,226,.7);--progress-background-color: #d5dce2;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(198, 40, 40)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(56, 142, 60)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:light}@media only screen and (prefers-color-scheme: dark){:root:not([data-theme]){--background-color: #11191f;--color: #bbc6ce;--h1-color: #edf0f3;--h2-color: #e1e6eb;--h3-color: #d5dce2;--h4-color: #c8d1d8;--h5-color: #bbc6ce;--h6-color: #afbbc4;--muted-color: #73828c;--muted-border-color: #1f2d38;--primary: #1095c1;--primary-hover: #1ab3e6;--primary-focus: rgba(16,149,193,.25);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #73828c;--secondary-focus: rgba(115,130,140,.25);--secondary-inverse: #fff;--contrast: #edf0f3;--contrast-hover: #fff;--contrast-focus: rgba(115,130,140,.25);--contrast-inverse: #000;--mark-background-color: #d1c284;--mark-color: #11191f;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: #11191f;--form-element-border-color: #374956;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: var(--form-element-background-color);--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #2c3d49;--form-element-disabled-border-color: #415462;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #b71c1c;--form-element-invalid-active-border-color: #c62828;--form-element-invalid-focus-color: rgba(198,40,40,.25);--form-element-valid-border-color: #2e7d32;--form-element-valid-active-border-color: #388e3c;--form-element-valid-focus-color: rgba(56,142,60,.25);--switch-background-color: #374956;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #24333e;--range-active-border-color: #2c3d49;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: rgba(115,130,140,.05);--code-background-color: #18232c;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #a65980;--code-property-color: #599fa6;--code-value-color: #8c8473;--code-comment-color: #4d606d;--accordion-border-color: var(--muted-border-color);--accordion-active-summary-color: var(--primary);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: #141e26;--card-border-color: var(--card-background-color);--card-box-shadow: .0145rem .029rem .174rem rgba(0,0,0,.01698), .0335rem .067rem .402rem rgba(0,0,0,.024), .0625rem .125rem .75rem rgba(0,0,0,.03), .1125rem .225rem 1.35rem rgba(0,0,0,.036), .2085rem .417rem 2.502rem rgba(0,0,0,.04302), .5rem 1rem 6rem rgba(0,0,0,.06), 0 0 0 0.0625rem rgba(0,0,0,.015);--card-sectionning-background-color: #18232c;--dropdown-background-color: #1b2832;--dropdown-border-color: #24333e;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: rgba(36,51,62,.75);--modal-overlay-background-color: rgba(36,51,62,.8);--progress-background-color: #24333e;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:dark}}[data-theme=dark]{--background-color: #11191f;--color: #bbc6ce;--h1-color: #edf0f3;--h2-color: #e1e6eb;--h3-color: #d5dce2;--h4-color: #c8d1d8;--h5-color: #bbc6ce;--h6-color: #afbbc4;--muted-color: #73828c;--muted-border-color: #1f2d38;--primary: #1095c1;--primary-hover: #1ab3e6;--primary-focus: rgba(16,149,193,.25);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #73828c;--secondary-focus: rgba(115,130,140,.25);--secondary-inverse: #fff;--contrast: #edf0f3;--contrast-hover: #fff;--contrast-focus: rgba(115,130,140,.25);--contrast-inverse: #000;--mark-background-color: #d1c284;--mark-color: #11191f;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: #11191f;--form-element-border-color: #374956;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: var(--form-element-background-color);--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #2c3d49;--form-element-disabled-border-color: #415462;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #b71c1c;--form-element-invalid-active-border-color: #c62828;--form-element-invalid-focus-color: rgba(198,40,40,.25);--form-element-valid-border-color: #2e7d32;--form-element-valid-active-border-color: #388e3c;--form-element-valid-focus-color: rgba(56,142,60,.25);--switch-background-color: #374956;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #24333e;--range-active-border-color: #2c3d49;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: rgba(115,130,140,.05);--code-background-color: #18232c;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #a65980;--code-property-color: #599fa6;--code-value-color: #8c8473;--code-comment-color: #4d606d;--accordion-border-color: var(--muted-border-color);--accordion-active-summary-color: var(--primary);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: #141e26;--card-border-color: var(--card-background-color);--card-box-shadow: .0145rem .029rem .174rem rgba(0,0,0,.01698), .0335rem .067rem .402rem rgba(0,0,0,.024), .0625rem .125rem .75rem rgba(0,0,0,.03), .1125rem .225rem 1.35rem rgba(0,0,0,.036), .2085rem .417rem 2.502rem rgba(0,0,0,.04302), .5rem 1rem 6rem rgba(0,0,0,.06), 0 0 0 0.0625rem rgba(0,0,0,.015);--card-sectionning-background-color: #18232c;--dropdown-background-color: #1b2832;--dropdown-border-color: #24333e;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: rgba(36,51,62,.75);--modal-overlay-background-color: rgba(36,51,62,.8);--progress-background-color: #24333e;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:dark}progress,[type=checkbox],[type=radio],[type=range]{accent-color:var(--primary)}*,*::before,*::after{box-sizing:border-box;background-repeat:no-repeat}::before,::after{text-decoration:inherit;vertical-align:inherit}:where(:root){-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--background-color);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);line-height:var(--line-height);font-family:var(--font-family);text-rendering:optimizeLegibility;overflow-wrap:break-word;cursor:default;tab-size:4}main{display:block}body{width:100%;margin:0}body>header,body>main,body>footer{width:100%;margin-right:auto;margin-left:auto;padding:var(--block-spacing-vertical) 0}.container,.container-fluid{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--spacing);padding-left:var(--spacing)}@media (min-width: 576px){.container{max-width:510px;padding-right:0;padding-left:0}}@media (min-width: 768px){.container{max-width:740px}}@media (min-width: 1220px){.container{max-width:1200px}}@media (min-width: 1700px){.container{max-width:1630px}}section{margin-bottom:var(--block-spacing-vertical)}.grid{grid-column-gap:var(--grid-spacing-horizontal);grid-row-gap:var(--grid-spacing-vertical);display:grid;grid-template-columns:1fr;margin:0}@media (min-width: 1220px){.grid{grid-template-columns:repeat(auto-fit, minmax(0%, 1fr))}}.grid>*{min-width:0}figure{display:block;margin:0;padding:0;overflow-x:auto}figure figcaption{padding:calc(var(--spacing)*.5) 0;color:var(--muted-color)}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,figure,form,ol,p,pre,table,ul{margin-top:0;margin-bottom:var(--typography-spacing-vertical);color:var(--color);font-style:normal;font-weight:var(--font-weight);font-size:var(--font-size)}a,[role=link]{--color: var(--primary);--background-color: transparent;outline:none;background-color:var(--background-color);color:var(--color);text-decoration:var(--text-decoration)}a:is([aria-current],:hover,:active,:focus),[role=link]:is([aria-current],:hover,:active,:focus){--color: var(--primary-hover);--text-decoration: underline}a:focus,[role=link]:focus{--background-color: var(--primary-focus)}a.secondary,[role=link].secondary{--color: var(--secondary)}a.secondary:is([aria-current],:hover,:active,:focus),[role=link].secondary:is([aria-current],:hover,:active,:focus){--color: var(--secondary-hover)}a.secondary:focus,[role=link].secondary:focus{--background-color: var(--secondary-focus)}a.contrast,[role=link].contrast{--color: var(--contrast)}a.contrast:is([aria-current],:hover,:active,:focus),[role=link].contrast:is([aria-current],:hover,:active,:focus){--color: var(--contrast-hover)}a.contrast:focus,[role=link].contrast:focus{--background-color: var(--contrast-focus)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--typography-spacing-vertical);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);font-family:var(--font-family)}h1{--color: var(--h1-color)}h2{--color: var(--h2-color)}h3{--color: var(--h3-color)}h4{--color: var(--h4-color)}h5{--color: var(--h5-color)}h6{--color: var(--h6-color)}:where(address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--typography-spacing-vertical)}hgroup,.headings{margin-bottom:var(--typography-spacing-vertical)}hgroup>*,.headings>*{margin-bottom:0}hgroup>*:last-child,.headings>*:last-child{--color: var(--muted-color);--font-weight: unset;font-size:1rem;font-family:unset}p{margin-bottom:var(--typography-spacing-vertical)}small{font-size:var(--font-size)}:where(dl,ol,ul){padding-right:0;padding-left:var(--spacing);padding-inline-start:var(--spacing);padding-inline-end:0}:where(dl,ol,ul) li{margin-bottom:calc(var(--typography-spacing-vertical)*.25)}:where(dl,ol,ul) :is(dl,ol,ul){margin:0;margin-top:calc(var(--typography-spacing-vertical)*.25)}ul li{list-style:square}mark{padding:.125rem .25rem;background-color:var(--mark-background-color);color:var(--mark-color);vertical-align:baseline}blockquote{display:block;margin:var(--typography-spacing-vertical) 0;padding:var(--spacing);border-right:none;border-left:.25rem solid var(--blockquote-border-color);border-inline-start:.25rem solid var(--blockquote-border-color);border-inline-end:none}blockquote footer{margin-top:calc(var(--typography-spacing-vertical)*.5);color:var(--blockquote-footer-color)}abbr[title]{border-bottom:1px dotted;text-decoration:none;cursor:help}ins{color:var(--ins-color);text-decoration:none}del{color:var(--del-color)}::selection{background-color:var(--primary-focus)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}:where(iframe){border-style:none}img{max-width:100%;height:auto;border-style:none}:where(svg:not([fill])){fill:currentColor}svg:not(:root){overflow:hidden}button{margin:0;overflow:visible;font-family:inherit;text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button{display:block;width:100%;margin-bottom:var(--spacing)}[role=button]{display:inline-block;text-decoration:none}button,input[type=submit],input[type=button],input[type=reset],[role=button]{--background-color: var(--primary);--border-color: var(--primary);--color: var(--primary-inverse);--box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));padding:var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);outline:none;background-color:var(--background-color);box-shadow:var(--box-shadow);color:var(--color);font-weight:var(--font-weight);font-size:1rem;line-height:var(--line-height);text-align:center;cursor:pointer}button:is([aria-current],:hover,:active,:focus),input[type=submit]:is([aria-current],:hover,:active,:focus),input[type=button]:is([aria-current],:hover,:active,:focus),input[type=reset]:is([aria-current],:hover,:active,:focus),[role=button]:is([aria-current],:hover,:active,:focus){--background-color: var(--primary-hover);--border-color: var(--primary-hover);--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));--color: var(--primary-inverse)}button:focus,input[type=submit]:focus,input[type=button]:focus,input[type=reset]:focus,[role=button]:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--primary-focus)}:is(button,input[type=submit],input[type=button],[role=button]).secondary,input[type=reset]{--background-color: var(--secondary);--border-color: var(--secondary);--color: var(--secondary-inverse);cursor:pointer}:is(button,input[type=submit],input[type=button],[role=button]).secondary:is([aria-current],:hover,:active,:focus),input[type=reset]:is([aria-current],:hover,:active,:focus){--background-color: var(--secondary-hover);--border-color: var(--secondary-hover);--color: var(--secondary-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).secondary:focus,input[type=reset]:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--secondary-focus)}:is(button,input[type=submit],input[type=button],[role=button]).contrast{--background-color: var(--contrast);--border-color: var(--contrast);--color: var(--contrast-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).contrast:is([aria-current],:hover,:active,:focus){--background-color: var(--contrast-hover);--border-color: var(--contrast-hover);--color: var(--contrast-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).contrast:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--contrast-focus)}:is(button,input[type=submit],input[type=button],[role=button]).outline,input[type=reset].outline{--background-color: transparent;--color: var(--primary)}:is(button,input[type=submit],input[type=button],[role=button]).outline:is([aria-current],:hover,:active,:focus),input[type=reset].outline:is([aria-current],:hover,:active,:focus){--background-color: transparent;--color: var(--primary-hover)}:is(button,input[type=submit],input[type=button],[role=button]).outline.secondary,input[type=reset].outline{--color: var(--secondary)}:is(button,input[type=submit],input[type=button],[role=button]).outline.secondary:is([aria-current],:hover,:active,:focus),input[type=reset].outline:is([aria-current],:hover,:active,:focus){--color: var(--secondary-hover)}:is(button,input[type=submit],input[type=button],[role=button]).outline.contrast{--color: var(--contrast)}:is(button,input[type=submit],input[type=button],[role=button]).outline.contrast:is([aria-current],:hover,:active,:focus){--color: var(--contrast-hover)}:where(button,[type=submit],[type=button],[type=reset],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]),a[role=button]:not([href]){opacity:.5;pointer-events:none}input,optgroup,select,textarea{margin:0;font-size:1rem;line-height:var(--line-height);font-family:inherit;letter-spacing:inherit}input{overflow:visible}select{text-transform:none}legend{max-width:100%;padding:0;color:inherit;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{padding:0;border-style:none}:-moz-focusring{outline:none}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{padding:0;border-width:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem*var(--line-height) + var(--form-element-spacing-vertical)*2 + var(--border-width)*2)}fieldset{margin:0;margin-bottom:var(--spacing);padding:0;border:0}label,fieldset legend{display:block;margin-bottom:calc(var(--spacing)*.25);font-weight:var(--form-label-font-weight, var(--font-weight))}input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{appearance:none;padding:var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal)}input,select,textarea{--background-color: var(--form-element-background-color);--border-color: var(--form-element-border-color);--color: var(--form-element-color);--box-shadow: none;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);outline:none;background-color:var(--background-color);box-shadow:var(--box-shadow);color:var(--color);font-weight:var(--font-weight)}input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus),:where(select,textarea):is(:active,:focus){--background-color: var(--form-element-active-background-color)}input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus),:where(select,textarea):is(:active,:focus){--border-color: var(--form-element-active-border-color)}input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus,select:focus,textarea:focus{--box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color)}input:not([type=submit],[type=button],[type=reset])[disabled],select[disabled],textarea[disabled],:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea){--background-color: var(--form-element-disabled-background-color);--border-color: var(--form-element-disabled-border-color);opacity:var(--form-element-disabled-opacity);pointer-events:none}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid]{padding-right:calc(var(--form-element-spacing-horizontal) + 1.5rem);padding-left:var(--form-element-spacing-horizontal);padding-inline-start:var(--form-element-spacing-horizontal);padding-inline-end:calc(var(--form-element-spacing-horizontal) + 1.5rem);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid=false]{background-image:var(--icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid=true]{background-image:var(--icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--border-color: var(--form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--border-color: var(--form-element-valid-active-border-color);--box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color)}:where(input,select,textarea)[aria-invalid=true]{--border-color: var(--form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--border-color: var(--form-element-invalid-active-border-color);--box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color)}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:center left .75rem}input::placeholder,input::-webkit-input-placeholder,textarea::placeholder,textarea::-webkit-input-placeholder,select:invalid{color:var(--form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--spacing)}select::-ms-expand{border:0;background-color:rgba(0,0,0,0)}select:not([multiple],[size]){padding-right:calc(var(--form-element-spacing-horizontal) + 1.5rem);padding-left:var(--form-element-spacing-horizontal);padding-inline-start:var(--form-element-spacing-horizontal);padding-inline-end:calc(var(--form-element-spacing-horizontal) + 1.5rem);background-image:var(--icon-chevron);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}[dir=rtl] select:not([multiple],[size]){background-position:center left .75rem}:where(input,select,textarea,.grid)+small{display:block;width:100%;margin-top:calc(var(--spacing)*-.75);margin-bottom:var(--spacing);color:var(--muted-color)}label>:where(input,select,textarea){margin-top:calc(var(--spacing)*.25)}:where(table){width:100%;border-collapse:collapse;border-spacing:0;text-indent:0}th,td{padding:calc(var(--spacing)/2) var(--spacing);border-bottom:var(--border-width) solid var(--table-border-color);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);text-align:left;text-align:start}tfoot th,tfoot td{border-top:var(--border-width) solid var(--table-border-color);border-bottom:0}table[role=grid] tbody tr:nth-child(odd){background-color:var(--table-row-stripped-background-color)}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0, 0, 0, 0);position:absolute}a,area,button,input,label,select,summary,textarea,[tabindex]{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}:where(nav li)::before{float:left;content:""}nav,nav ul{display:flex}nav{justify-content:space-between}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--nav-element-spacing-horizontal)*-1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--nav-element-spacing-horizontal)*-1)}nav li{display:inline-block;margin:0;padding:var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal)}nav li>*{--spacing: 0}nav :where(a,[role=link]){display:inline-block;margin:calc(var(--nav-link-spacing-vertical)*-1) calc(var(--nav-link-spacing-horizontal)*-1);padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);border-radius:var(--border-radius);text-decoration:none}nav :where(a,[role=link]):is([aria-current],:hover,:active,:focus){text-decoration:none}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li:not(:last-child) ::after{position:absolute;width:calc(var(--nav-link-spacing-horizontal)*2);margin-inline-start:calc(var(--nav-link-spacing-horizontal)/2);content:"/";color:var(--muted-color);text-align:center}nav[aria-label=breadcrumb] a[aria-current]{background-color:rgba(0,0,0,0);color:inherit;text-decoration:none;pointer-events:none}nav [role=button]{margin-right:inherit;margin-left:inherit;padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal)}aside nav,aside ol,aside ul,aside li{display:block}aside li{padding:calc(var(--nav-element-spacing-vertical)*.5) var(--nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after{content:"\\"}.night{display:none}h1,h2,h3,h4,h5,h6{margin-bottom:.5em}a>button{color:#fff;text-decoration:underline}figure{overflow:clip}.blurb>button{margin-top:20px}@media (min-width: 1220px){.blurb{margin-right:6em;margin-left:6em}}img.screenshot{border:double 3px;border-radius:4px;max-width:500px;margin:.5em}img.logo{max-width:72px}html,body{box-sizing:border-box;height:100%}body>footer{margin:0px;padding:0px}.wrapper{min-height:100%;display:flex;flex-direction:column;box-sizing:border-box}.page-body{flex-grow:1}.page-footer{flex-grow:0;flex-shrink:0}footer{text-align:center;font-size:.8em}figure{text-align:center}.active{text-decoration:underline}.documentation{display:flex}.documentation .side-panel{margin-right:3em;min-width:200px;font-size:10px}.documentation .side-panel ul>li{list-style:none;font-weight:bold}.home-header{display:grid;grid-template-columns:50% 40%;grid-column-gap:20px;grid-row-gap:20px;justify-items:stretch;align-items:stretch}@media (max-width: 1220px){.home-header{grid-template-columns:none}}.home-wrapper{display:grid;grid-template-columns:33% 33% 33%;grid-column-gap:20px;grid-row-gap:20px;justify-items:stretch;align-items:stretch}@media (min-width: 1220px){.home-wrapper{margin-right:10em;margin-left:10em}}@media (max-width: 768px){.home-wrapper{grid-template-columns:none}}@media (prefers-color-scheme: dark){img.logo{filter:drop-shadow(0px 0px 30px #fff)}.day{display:none}.night{display:initial}figure{filter:drop-shadow(0px 0px 30px #fff)}} |
1267 | \ No newline at end of file |
1268 | + */:root{--font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu", "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--line-height: 1.5;--font-weight: 400;--font-size: 16px;--border-radius: 0.25rem;--border-width: 1px;--outline-width: 3px;--spacing: 1rem;--typography-spacing-vertical: 1.5rem;--block-spacing-vertical: calc(var(--spacing) * 2);--block-spacing-horizontal: var(--spacing);--grid-spacing-vertical: 0;--grid-spacing-horizontal: var(--spacing);--form-element-spacing-vertical: 0.75rem;--form-element-spacing-horizontal: 1rem;--nav-element-spacing-vertical: 1rem;--nav-element-spacing-horizontal: 0.5rem;--nav-link-spacing-vertical: 0.5rem;--nav-link-spacing-horizontal: 0.5rem;--form-label-font-weight: var(--font-weight);--transition: 0.2s ease-in-out;--modal-overlay-backdrop-filter: blur(0.25rem)}@media (min-width: 576px){:root{--font-size: 17px}}@media (min-width: 768px){:root{--font-size: 18px}}@media (min-width: 1220px){:root{--font-size: 19px}}@media (min-width: 1700px){:root{--font-size: 20px}}a{--text-decoration: none}a.secondary,a.contrast{--text-decoration: underline}small{--font-size: 0.875em}h1,h2,h3,h4,h5,h6{--font-weight: 700}h1{--font-size: 2rem;--typography-spacing-vertical: 3rem}h2{--font-size: 1.75rem;--typography-spacing-vertical: 2.625rem}h3{--font-size: 1.5rem;--typography-spacing-vertical: 2.25rem}h4{--font-size: 1.25rem;--typography-spacing-vertical: 1.874rem}h5{--font-size: 1.125rem;--typography-spacing-vertical: 1.6875rem}[type=checkbox],[type=radio]{--border-width: 2px}[type=checkbox][role=switch]{--border-width: 3px}thead th,thead td,tfoot th,tfoot td{--border-width: 3px}:not(thead,tfoot)>*>td{--font-size: 0.875em}pre,code,kbd,samp{--font-family: "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace", "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}kbd{--font-weight: bolder}[data-theme=light],:root:not([data-theme=dark]){--background-color: #fff;--color: #415462;--h1-color: #1b2832;--h2-color: #24333e;--h3-color: #2c3d49;--h4-color: #374956;--h5-color: #415462;--h6-color: #4d606d;--muted-color: #73828c;--muted-border-color: #edf0f3;--primary: #1095c1;--primary-hover: #08769b;--primary-focus: rgba(16,149,193,.125);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #415462;--secondary-focus: rgba(89,107,120,.125);--secondary-inverse: #fff;--contrast: #1b2832;--contrast-hover: #000;--contrast-focus: rgba(89,107,120,.125);--contrast-inverse: #fff;--mark-background-color: #fff2ca;--mark-color: #543a26;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: transparent;--form-element-border-color: #a2afb9;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: transparent;--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #d5dce2;--form-element-disabled-border-color: #a2afb9;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #c62828;--form-element-invalid-active-border-color: #d32f2f;--form-element-invalid-focus-color: rgba(211,47,47,.125);--form-element-valid-border-color: #388e3c;--form-element-valid-active-border-color: #43a047;--form-element-valid-focus-color: rgba(67,160,71,.125);--switch-background-color: #bbc6ce;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #d5dce2;--range-active-border-color: #bbc6ce;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: #f6f8f9;--code-background-color: #edf0f3;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #b34d80;--code-property-color: #3d888f;--code-value-color: #986;--code-comment-color: #a2afb9;--accordion-border-color: var(--muted-border-color);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: var(--background-color);--card-border-color: var(--muted-border-color);--card-box-shadow: .0145rem .029rem .174rem rgba(27,40,50,.01698), .0335rem .067rem .402rem rgba(27,40,50,.024), .0625rem .125rem .75rem rgba(27,40,50,.03), .1125rem .225rem 1.35rem rgba(27,40,50,.036), .2085rem .417rem 2.502rem rgba(27,40,50,.04302), .5rem 1rem 6rem rgba(27,40,50,.06), 0 0 0 0.0625rem rgba(27,40,50,.015);--card-sectionning-background-color: #fbfbfc;--dropdown-background-color: #fbfbfc;--dropdown-border-color: #e1e6eb;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: #edf0f3;--modal-overlay-background-color: rgba(213,220,226,.7);--progress-background-color: #d5dce2;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(198, 40, 40)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(56, 142, 60)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:light}@media only screen and (prefers-color-scheme: dark){:root:not([data-theme]){--background-color: #11191f;--color: #bbc6ce;--h1-color: #edf0f3;--h2-color: #e1e6eb;--h3-color: #d5dce2;--h4-color: #c8d1d8;--h5-color: #bbc6ce;--h6-color: #afbbc4;--muted-color: #73828c;--muted-border-color: #1f2d38;--primary: #1095c1;--primary-hover: #1ab3e6;--primary-focus: rgba(16,149,193,.25);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #73828c;--secondary-focus: rgba(115,130,140,.25);--secondary-inverse: #fff;--contrast: #edf0f3;--contrast-hover: #fff;--contrast-focus: rgba(115,130,140,.25);--contrast-inverse: #000;--mark-background-color: #d1c284;--mark-color: #11191f;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: #11191f;--form-element-border-color: #374956;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: var(--form-element-background-color);--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #2c3d49;--form-element-disabled-border-color: #415462;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #b71c1c;--form-element-invalid-active-border-color: #c62828;--form-element-invalid-focus-color: rgba(198,40,40,.25);--form-element-valid-border-color: #2e7d32;--form-element-valid-active-border-color: #388e3c;--form-element-valid-focus-color: rgba(56,142,60,.25);--switch-background-color: #374956;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #24333e;--range-active-border-color: #2c3d49;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: rgba(115,130,140,.05);--code-background-color: #18232c;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #a65980;--code-property-color: #599fa6;--code-value-color: #8c8473;--code-comment-color: #4d606d;--accordion-border-color: var(--muted-border-color);--accordion-active-summary-color: var(--primary);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: #141e26;--card-border-color: var(--card-background-color);--card-box-shadow: .0145rem .029rem .174rem rgba(0,0,0,.01698), .0335rem .067rem .402rem rgba(0,0,0,.024), .0625rem .125rem .75rem rgba(0,0,0,.03), .1125rem .225rem 1.35rem rgba(0,0,0,.036), .2085rem .417rem 2.502rem rgba(0,0,0,.04302), .5rem 1rem 6rem rgba(0,0,0,.06), 0 0 0 0.0625rem rgba(0,0,0,.015);--card-sectionning-background-color: #18232c;--dropdown-background-color: #1b2832;--dropdown-border-color: #24333e;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: rgba(36,51,62,.75);--modal-overlay-background-color: rgba(36,51,62,.8);--progress-background-color: #24333e;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:dark}}[data-theme=dark]{--background-color: #11191f;--color: #bbc6ce;--h1-color: #edf0f3;--h2-color: #e1e6eb;--h3-color: #d5dce2;--h4-color: #c8d1d8;--h5-color: #bbc6ce;--h6-color: #afbbc4;--muted-color: #73828c;--muted-border-color: #1f2d38;--primary: #1095c1;--primary-hover: #1ab3e6;--primary-focus: rgba(16,149,193,.25);--primary-inverse: #fff;--secondary: #596b78;--secondary-hover: #73828c;--secondary-focus: rgba(115,130,140,.25);--secondary-inverse: #fff;--contrast: #edf0f3;--contrast-hover: #fff;--contrast-focus: rgba(115,130,140,.25);--contrast-inverse: #000;--mark-background-color: #d1c284;--mark-color: #11191f;--ins-color: #388e3c;--del-color: #c62828;--blockquote-border-color: var(--muted-border-color);--blockquote-footer-color: var(--muted-color);--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);--form-element-background-color: #11191f;--form-element-border-color: #374956;--form-element-color: var(--color);--form-element-placeholder-color: var(--muted-color);--form-element-active-background-color: var(--form-element-background-color);--form-element-active-border-color: var(--primary);--form-element-focus-color: var(--primary-focus);--form-element-disabled-background-color: #2c3d49;--form-element-disabled-border-color: #415462;--form-element-disabled-opacity: 0.5;--form-element-invalid-border-color: #b71c1c;--form-element-invalid-active-border-color: #c62828;--form-element-invalid-focus-color: rgba(198,40,40,.25);--form-element-valid-border-color: #2e7d32;--form-element-valid-active-border-color: #388e3c;--form-element-valid-focus-color: rgba(56,142,60,.25);--switch-background-color: #374956;--switch-color: var(--primary-inverse);--switch-checked-background-color: var(--primary);--range-border-color: #24333e;--range-active-border-color: #2c3d49;--range-thumb-border-color: var(--background-color);--range-thumb-color: var(--secondary);--range-thumb-hover-color: var(--secondary-hover);--range-thumb-active-color: var(--primary);--table-border-color: var(--muted-border-color);--table-row-stripped-background-color: rgba(115,130,140,.05);--code-background-color: #18232c;--code-color: var(--muted-color);--code-kbd-background-color: var(--contrast);--code-kbd-color: var(--contrast-inverse);--code-tag-color: #a65980;--code-property-color: #599fa6;--code-value-color: #8c8473;--code-comment-color: #4d606d;--accordion-border-color: var(--muted-border-color);--accordion-active-summary-color: var(--primary);--accordion-close-summary-color: var(--color);--accordion-open-summary-color: var(--muted-color);--card-background-color: #141e26;--card-border-color: var(--card-background-color);--card-box-shadow: .0145rem .029rem .174rem rgba(0,0,0,.01698), .0335rem .067rem .402rem rgba(0,0,0,.024), .0625rem .125rem .75rem rgba(0,0,0,.03), .1125rem .225rem 1.35rem rgba(0,0,0,.036), .2085rem .417rem 2.502rem rgba(0,0,0,.04302), .5rem 1rem 6rem rgba(0,0,0,.06), 0 0 0 0.0625rem rgba(0,0,0,.015);--card-sectionning-background-color: #18232c;--dropdown-background-color: #1b2832;--dropdown-border-color: #24333e;--dropdown-box-shadow: var(--card-box-shadow);--dropdown-color: var(--color);--dropdown-hover-background-color: rgba(36,51,62,.75);--modal-overlay-background-color: rgba(36,51,62,.8);--progress-background-color: #24333e;--progress-color: var(--primary);--loading-spinner-opacity: 0.5;--tooltip-background-color: var(--contrast);--tooltip-color: var(--contrast-inverse);--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");color-scheme:dark}progress,[type=checkbox],[type=radio],[type=range]{accent-color:var(--primary)}*,*::before,*::after{box-sizing:border-box;background-repeat:no-repeat}::before,::after{text-decoration:inherit;vertical-align:inherit}:where(:root){-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--background-color);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);line-height:var(--line-height);font-family:var(--font-family);text-rendering:optimizeLegibility;overflow-wrap:break-word;cursor:default;tab-size:4}main{display:block}body{width:100%;margin:0}body>header,body>main,body>footer{width:100%;margin-right:auto;margin-left:auto;padding:var(--block-spacing-vertical) 0}.container,.container-fluid{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--spacing);padding-left:var(--spacing)}@media (min-width: 576px){.container{max-width:510px;padding-right:0;padding-left:0}}@media (min-width: 768px){.container{max-width:740px}}@media (min-width: 1220px){.container{max-width:1200px}}@media (min-width: 1700px){.container{max-width:1630px}}section{margin-bottom:var(--block-spacing-vertical)}.grid{grid-column-gap:var(--grid-spacing-horizontal);grid-row-gap:var(--grid-spacing-vertical);display:grid;grid-template-columns:1fr;margin:0}@media (min-width: 1220px){.grid{grid-template-columns:repeat(auto-fit, minmax(0%, 1fr))}}.grid>*{min-width:0}figure{display:block;margin:0;padding:0;overflow-x:auto}figure figcaption{padding:calc(var(--spacing)*.5) 0;color:var(--muted-color)}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,figure,form,ol,p,pre,table,ul{margin-top:0;margin-bottom:var(--typography-spacing-vertical);color:var(--color);font-style:normal;font-weight:var(--font-weight);font-size:var(--font-size)}a,[role=link]{--color: var(--primary);--background-color: transparent;outline:none;background-color:var(--background-color);color:var(--color);text-decoration:var(--text-decoration)}a:is([aria-current],:hover,:active,:focus),[role=link]:is([aria-current],:hover,:active,:focus){--color: var(--primary-hover);--text-decoration: underline}a:focus,[role=link]:focus{--background-color: var(--primary-focus)}a.secondary,[role=link].secondary{--color: var(--secondary)}a.secondary:is([aria-current],:hover,:active,:focus),[role=link].secondary:is([aria-current],:hover,:active,:focus){--color: var(--secondary-hover)}a.secondary:focus,[role=link].secondary:focus{--background-color: var(--secondary-focus)}a.contrast,[role=link].contrast{--color: var(--contrast)}a.contrast:is([aria-current],:hover,:active,:focus),[role=link].contrast:is([aria-current],:hover,:active,:focus){--color: var(--contrast-hover)}a.contrast:focus,[role=link].contrast:focus{--background-color: var(--contrast-focus)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--typography-spacing-vertical);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);font-family:var(--font-family)}h1{--color: var(--h1-color)}h2{--color: var(--h2-color)}h3{--color: var(--h3-color)}h4{--color: var(--h4-color)}h5{--color: var(--h5-color)}h6{--color: var(--h6-color)}:where(address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--typography-spacing-vertical)}hgroup,.headings{margin-bottom:var(--typography-spacing-vertical)}hgroup>*,.headings>*{margin-bottom:0}hgroup>*:last-child,.headings>*:last-child{--color: var(--muted-color);--font-weight: unset;font-size:1rem;font-family:unset}p{margin-bottom:var(--typography-spacing-vertical)}small{font-size:var(--font-size)}:where(dl,ol,ul){padding-right:0;padding-left:var(--spacing);padding-inline-start:var(--spacing);padding-inline-end:0}:where(dl,ol,ul) li{margin-bottom:calc(var(--typography-spacing-vertical)*.25)}:where(dl,ol,ul) :is(dl,ol,ul){margin:0;margin-top:calc(var(--typography-spacing-vertical)*.25)}ul li{list-style:square}mark{padding:.125rem .25rem;background-color:var(--mark-background-color);color:var(--mark-color);vertical-align:baseline}blockquote{display:block;margin:var(--typography-spacing-vertical) 0;padding:var(--spacing);border-right:none;border-left:.25rem solid var(--blockquote-border-color);border-inline-start:.25rem solid var(--blockquote-border-color);border-inline-end:none}blockquote footer{margin-top:calc(var(--typography-spacing-vertical)*.5);color:var(--blockquote-footer-color)}abbr[title]{border-bottom:1px dotted;text-decoration:none;cursor:help}ins{color:var(--ins-color);text-decoration:none}del{color:var(--del-color)}::selection{background-color:var(--primary-focus)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}:where(iframe){border-style:none}img{max-width:100%;height:auto;border-style:none}:where(svg:not([fill])){fill:currentColor}svg:not(:root){overflow:hidden}button{margin:0;overflow:visible;font-family:inherit;text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button{display:block;width:100%;margin-bottom:var(--spacing)}[role=button]{display:inline-block;text-decoration:none}button,input[type=submit],input[type=button],input[type=reset],[role=button]{--background-color: var(--primary);--border-color: var(--primary);--color: var(--primary-inverse);--box-shadow: var(--button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));padding:var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);outline:none;background-color:var(--background-color);box-shadow:var(--box-shadow);color:var(--color);font-weight:var(--font-weight);font-size:1rem;line-height:var(--line-height);text-align:center;cursor:pointer}button:is([aria-current],:hover,:active,:focus),input[type=submit]:is([aria-current],:hover,:active,:focus),input[type=button]:is([aria-current],:hover,:active,:focus),input[type=reset]:is([aria-current],:hover,:active,:focus),[role=button]:is([aria-current],:hover,:active,:focus){--background-color: var(--primary-hover);--border-color: var(--primary-hover);--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));--color: var(--primary-inverse)}button:focus,input[type=submit]:focus,input[type=button]:focus,input[type=reset]:focus,[role=button]:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--primary-focus)}:is(button,input[type=submit],input[type=button],[role=button]).secondary,input[type=reset]{--background-color: var(--secondary);--border-color: var(--secondary);--color: var(--secondary-inverse);cursor:pointer}:is(button,input[type=submit],input[type=button],[role=button]).secondary:is([aria-current],:hover,:active,:focus),input[type=reset]:is([aria-current],:hover,:active,:focus){--background-color: var(--secondary-hover);--border-color: var(--secondary-hover);--color: var(--secondary-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).secondary:focus,input[type=reset]:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--secondary-focus)}:is(button,input[type=submit],input[type=button],[role=button]).contrast{--background-color: var(--contrast);--border-color: var(--contrast);--color: var(--contrast-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).contrast:is([aria-current],:hover,:active,:focus){--background-color: var(--contrast-hover);--border-color: var(--contrast-hover);--color: var(--contrast-inverse)}:is(button,input[type=submit],input[type=button],[role=button]).contrast:focus{--box-shadow: var(--button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--contrast-focus)}:is(button,input[type=submit],input[type=button],[role=button]).outline,input[type=reset].outline{--background-color: transparent;--color: var(--primary)}:is(button,input[type=submit],input[type=button],[role=button]).outline:is([aria-current],:hover,:active,:focus),input[type=reset].outline:is([aria-current],:hover,:active,:focus){--background-color: transparent;--color: var(--primary-hover)}:is(button,input[type=submit],input[type=button],[role=button]).outline.secondary,input[type=reset].outline{--color: var(--secondary)}:is(button,input[type=submit],input[type=button],[role=button]).outline.secondary:is([aria-current],:hover,:active,:focus),input[type=reset].outline:is([aria-current],:hover,:active,:focus){--color: var(--secondary-hover)}:is(button,input[type=submit],input[type=button],[role=button]).outline.contrast{--color: var(--contrast)}:is(button,input[type=submit],input[type=button],[role=button]).outline.contrast:is([aria-current],:hover,:active,:focus){--color: var(--contrast-hover)}:where(button,[type=submit],[type=button],[type=reset],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]),a[role=button]:not([href]){opacity:.5;pointer-events:none}input,optgroup,select,textarea{margin:0;font-size:1rem;line-height:var(--line-height);font-family:inherit;letter-spacing:inherit}input{overflow:visible}select{text-transform:none}legend{max-width:100%;padding:0;color:inherit;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{padding:0;border-style:none}:-moz-focusring{outline:none}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{padding:0;border-width:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem*var(--line-height) + var(--form-element-spacing-vertical)*2 + var(--border-width)*2)}fieldset{margin:0;margin-bottom:var(--spacing);padding:0;border:0}label,fieldset legend{display:block;margin-bottom:calc(var(--spacing)*.25);font-weight:var(--form-label-font-weight, var(--font-weight))}input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{appearance:none;padding:var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal)}input,select,textarea{--background-color: var(--form-element-background-color);--border-color: var(--form-element-border-color);--color: var(--form-element-color);--box-shadow: none;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);outline:none;background-color:var(--background-color);box-shadow:var(--box-shadow);color:var(--color);font-weight:var(--font-weight)}input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus),:where(select,textarea):is(:active,:focus){--background-color: var(--form-element-active-background-color)}input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus),:where(select,textarea):is(:active,:focus){--border-color: var(--form-element-active-border-color)}input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus,select:focus,textarea:focus{--box-shadow: 0 0 0 var(--outline-width) var(--form-element-focus-color)}input:not([type=submit],[type=button],[type=reset])[disabled],select[disabled],textarea[disabled],:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea){--background-color: var(--form-element-disabled-background-color);--border-color: var(--form-element-disabled-border-color);opacity:var(--form-element-disabled-opacity);pointer-events:none}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid]{padding-right:calc(var(--form-element-spacing-horizontal) + 1.5rem);padding-left:var(--form-element-spacing-horizontal);padding-inline-start:var(--form-element-spacing-horizontal);padding-inline-end:calc(var(--form-element-spacing-horizontal) + 1.5rem);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid=false]{background-image:var(--icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week])[aria-invalid=true]{background-image:var(--icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--border-color: var(--form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--border-color: var(--form-element-valid-active-border-color);--box-shadow: 0 0 0 var(--outline-width) var(--form-element-valid-focus-color)}:where(input,select,textarea)[aria-invalid=true]{--border-color: var(--form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--border-color: var(--form-element-invalid-active-border-color);--box-shadow: 0 0 0 var(--outline-width) var(--form-element-invalid-focus-color)}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:center left .75rem}input::placeholder,input::-webkit-input-placeholder,textarea::placeholder,textarea::-webkit-input-placeholder,select:invalid{color:var(--form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--spacing)}select::-ms-expand{border:0;background-color:rgba(0,0,0,0)}select:not([multiple],[size]){padding-right:calc(var(--form-element-spacing-horizontal) + 1.5rem);padding-left:var(--form-element-spacing-horizontal);padding-inline-start:var(--form-element-spacing-horizontal);padding-inline-end:calc(var(--form-element-spacing-horizontal) + 1.5rem);background-image:var(--icon-chevron);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}[dir=rtl] select:not([multiple],[size]){background-position:center left .75rem}:where(input,select,textarea,.grid)+small{display:block;width:100%;margin-top:calc(var(--spacing)*-.75);margin-bottom:var(--spacing);color:var(--muted-color)}label>:where(input,select,textarea){margin-top:calc(var(--spacing)*.25)}:where(table){width:100%;border-collapse:collapse;border-spacing:0;text-indent:0}th,td{padding:calc(var(--spacing)/2) var(--spacing);border-bottom:var(--border-width) solid var(--table-border-color);color:var(--color);font-weight:var(--font-weight);font-size:var(--font-size);text-align:left;text-align:start}tfoot th,tfoot td{border-top:var(--border-width) solid var(--table-border-color);border-bottom:0}table[role=grid] tbody tr:nth-child(odd){background-color:var(--table-row-stripped-background-color)}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0, 0, 0, 0);position:absolute}a,area,button,input,label,select,summary,textarea,[tabindex]{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}:where(nav li)::before{float:left;content:""}nav,nav ul{display:flex}nav{justify-content:space-between}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--nav-element-spacing-horizontal)*-1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--nav-element-spacing-horizontal)*-1)}nav li{display:inline-block;margin:0;padding:var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal)}nav li>*{--spacing: 0}nav :where(a,[role=link]){display:inline-block;margin:calc(var(--nav-link-spacing-vertical)*-1) calc(var(--nav-link-spacing-horizontal)*-1);padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);border-radius:var(--border-radius);text-decoration:none}nav :where(a,[role=link]):is([aria-current],:hover,:active,:focus){text-decoration:none}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li:not(:last-child) ::after{position:absolute;width:calc(var(--nav-link-spacing-horizontal)*2);margin-inline-start:calc(var(--nav-link-spacing-horizontal)/2);content:"/";color:var(--muted-color);text-align:center}nav[aria-label=breadcrumb] a[aria-current]{background-color:rgba(0,0,0,0);color:inherit;text-decoration:none;pointer-events:none}nav [role=button]{margin-right:inherit;margin-left:inherit;padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal)}aside nav,aside ol,aside ul,aside li{display:block}aside li{padding:calc(var(--nav-element-spacing-vertical)*.5) var(--nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) ::after{content:"\\"}.night{display:none}h1,h2,h3,h4,h5,h6{margin-bottom:.5em}a>button{color:#fff;text-decoration:underline}figure{overflow:clip}.blurb>button{margin-top:20px}@media (min-width: 1220px){.blurb{margin-right:6em;margin-left:6em}}img.screenshot{border:double 3px;border-radius:4px;max-width:500px;margin:.5em}img.logo{max-width:72px}html,body{box-sizing:border-box;height:100%}body>footer{margin:0px;padding:0px}.wrapper{min-height:100%;display:flex;flex-direction:column;box-sizing:border-box}.page-body{flex-grow:1}.page-footer{flex-grow:0;flex-shrink:0}footer{text-align:center;font-size:.8em}figure{text-align:center}.active{text-decoration:underline}.documentation{display:flex}.documentation .side-panel{margin-right:3em;min-width:200px;font-size:10px}.documentation .side-panel ul>li{list-style:none;font-weight:bold}.home-header{display:grid;grid-template-columns:50% 40%;grid-column-gap:20px;grid-row-gap:20px;justify-items:stretch;align-items:stretch}@media (max-width: 1220px){.home-header{grid-template-columns:none}}.home-wrapper{display:grid;grid-template-columns:33% 33% 33%;grid-column-gap:20px;grid-row-gap:20px;justify-items:stretch;align-items:stretch}@media (min-width: 1220px){.home-wrapper{margin-right:10em;margin-left:10em}}@media (max-width: 768px){.home-wrapper{grid-template-columns:none}}@media (prefers-color-scheme: dark){.diagram{background:grey}img.logo{filter:drop-shadow(0px 0px 30px #fff)}.day{display:none}.night{display:initial}figure{filter:drop-shadow(0px 0px 30px #fff)}} |
1269 | \ No newline at end of file |
1270 | diff --git a/www/public/sitemap.xml b/www/public/sitemap.xml |
1271 | index 4459071..1a013c7 100644 |
1272 | --- a/www/public/sitemap.xml |
1273 | +++ b/www/public/sitemap.xml |
1274 | @@ -7,6 +7,12 @@ |
1275 | <loc>https://ayllu-forge.org/docs/</loc> |
1276 | </url> |
1277 | <url> |
1278 | + <loc>https://ayllu-forge.org/docs/architecture/</loc> |
1279 | + </url> |
1280 | + <url> |
1281 | + <loc>https://ayllu-forge.org/docs/developers/</loc> |
1282 | + </url> |
1283 | + <url> |
1284 | <loc>https://ayllu-forge.org/docs/faq/</loc> |
1285 | </url> |
1286 | <url> |
1287 | diff --git a/www/sass/main.scss b/www/sass/main.scss |
1288 | index ef717ca..7496248 100644 |
1289 | --- a/www/sass/main.scss |
1290 | +++ b/www/sass/main.scss |
1291 | @@ -160,6 +160,11 @@ figure { |
1292 | } |
1293 | |
1294 | @media (prefers-color-scheme: dark) { |
1295 | + |
1296 | + .diagram { |
1297 | + background: grey; |
1298 | + } |
1299 | + |
1300 | img.logo { |
1301 | filter: drop-shadow(0px 0px 30px #fff); |
1302 | } |
1303 | diff --git a/www/static/assets/architecture.svg b/www/static/assets/architecture.svg |
1304 | new file mode 100644 |
1305 | index 0000000..2de2a37 |
1306 | --- /dev/null |
1307 | +++ b/www/static/assets/architecture.svg |
1308 | @@ -0,0 +1,598 @@ |
1309 | + <svg version="1.1" baseProfile="full" width="1938.0" height="655.0" viewbox="0 0 1938 655" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"> |
1310 | + <desc > |
1311 | + [reverse_proxy] |
1312 | + |
1313 | + [reverse_proxy]<-->[Rudolfs (LFS API)] |
1314 | + |
1315 | + [reverse_proxy]<-->[ayllu-core | |
1316 | + [axum http interface] |
1317 | + [sites static hosting] |
1318 | + [capnp-rpc-server (job_server)] |
1319 | + [git repositories via libgit2] |
1320 | + [<database> sqlite] |
1321 | + ] |
1322 | + |
1323 | + [ayllu-core] <--> [ |
1324 | + ayllu-mail| |
1325 | + [capnp-rpc-server] |
1326 | + [mailpot] |
1327 | + [postfix] |
1328 | + [<database> sqlite] |
1329 | + ] <-- SMTP [<actor> contributor-2] |
1330 | + |
1331 | + [ayllu-core] <--> [ |
1332 | + ayllu-xmpp | |
1333 | + [capnp-rpc-server] |
1334 | + [chat interface/bot] |
1335 | + [<database> sqlite] |
1336 | + ] <-- XMPP [<actor> contributor-2] |
1337 | + |
1338 | + [ayllu-core] <--> [ |
1339 | + ayllu-build | |
1340 | + [capnp-rpc-server] |
1341 | + [<database> sqlite] |
1342 | + ] |
1343 | + |
1344 | + [ayllu-core] <--> [ayllu-shell] <-- SSH [<actor> contributor] |
1345 | + [ayllu-core] <--> [ayllu-cli] <-- [<actor> admin] |
1346 | + |
1347 | + |
1348 | + [ayllu-build]<-->[ |
1349 | + ayllu-builder-1 | |
1350 | + [<package>qemu-x86_64| capnp-rpc-server | executor] |
1351 | + ] |
1352 | + |
1353 | + [ayllu-build]<-->[ |
1354 | + ayllu-builder-2 | |
1355 | + [<package>qemu-aarch64| capnp-rpc-server | exectuor] |
1356 | + ] |
1357 | + |
1358 | + [ayllu-build]<-->[ |
1359 | + ayllu-builder-n | |
1360 | + [<package>lxc| capnp-rpc-server | executor] |
1361 | + ] --> [ayllu-core]</desc> |
1362 | + <g stroke-width="1.0" text-align="left" font="12pt Helvetica, Arial, sans-serif" font-size="12pt" font-family="Helvetica" font-weight="normal" font-style="normal"> |
1363 | + <g font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" stroke-width="3.0" stroke-linejoin="round" stroke-linecap="round" stroke="#33322E"> |
1364 | + <g stroke="transparent" fill="transparent"> |
1365 | + <rect x="0.0" y="0.0" height="655.0" width="1938.0" stroke="none"></rect> |
1366 | + </g> |
1367 | + <g transform="translate(8, 8)" fill="#33322E"> |
1368 | + <g transform="translate(20, 20)" fill="#33322E" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal"> |
1369 | + <g stroke-dasharray="6 6"> |
1370 | + <path d="M965.1 23.1 L713 51 L713 115.83333333333333 L713.0 115.8 " fill="none"></path> |
1371 | + </g> |
1372 | + <path d="M707.7 109.2 L713.0 115.8 L718.3 109.2 L713.0 122.5 Z"></path> |
1373 | + <path d="M959.1 29.2 L965.1 23.1 L957.9 18.6 L971.8 22.4 Z"></path> |
1374 | + <g stroke-dasharray="6 6"> |
1375 | + <path d="M1103.4 23.1 L1355.5 51 L1355.5 64.33333333333333 L1355.5 64.3 " fill="none"></path> |
1376 | + </g> |
1377 | + <path d="M1350.2 57.7 L1355.5 64.3 L1360.8 57.7 L1355.5 71.0 Z"></path> |
1378 | + <path d="M1110.6 18.6 L1103.4 23.1 L1109.4 29.2 L1096.8 22.4 Z"></path> |
1379 | + <g stroke-dasharray="6 6"> |
1380 | + <path d="M822.4 180.4 L261 225 L261 238.33333333333334 L261.0 238.3 " fill="none"></path> |
1381 | + </g> |
1382 | + <path d="M255.7 231.7 L261.0 238.3 L266.3 231.7 L261.0 245.0 Z"></path> |
1383 | + <path d="M816.1 186.2 L822.4 180.4 L815.3 175.6 L829.0 179.9 Z"></path> |
1384 | + <text x="758.0" y="489.4" stroke="none">SMTP</text> |
1385 | + <g stroke-dasharray="6 6"> |
1386 | + <path d="M261.0 385.7 L261 399 L750 497.4263494967978 L750.0 497.4 " fill="none"></path> |
1387 | + </g> |
1388 | + <path d="M266.3 392.3 L261.0 385.7 L255.7 392.3 L261.0 379.0 Z"></path> |
1389 | + <g stroke-dasharray="6 6"> |
1390 | + <path d="M926.9 206.0 L807.5 225 L807.5 238.33333333333334 L807.5 238.3 " fill="none"></path> |
1391 | + </g> |
1392 | + <path d="M802.2 231.7 L807.5 238.3 L812.8 231.7 L807.5 245.0 Z"></path> |
1393 | + <path d="M921.1 212.4 L926.9 206.0 L919.5 201.8 L933.5 205.0 Z"></path> |
1394 | + <text x="754.7" y="473.5" stroke="none">XMPP</text> |
1395 | + <g stroke-dasharray="6 6"> |
1396 | + <path d="M807.5 385.7 L807.5 399 L807.5 481.5 L807.5 481.5 " fill="none"></path> |
1397 | + </g> |
1398 | + <path d="M812.8 392.3 L807.5 385.7 L802.2 392.3 L807.5 379.0 Z"></path> |
1399 | + <g stroke-dasharray="6 6"> |
1400 | + <path d="M1276.2 209.5 L1259 225 L1259 238.33333333333334 L1259.0 238.3 " fill="none"></path> |
1401 | + </g> |
1402 | + <path d="M1253.7 231.7 L1259.0 238.3 L1264.3 231.7 L1259.0 245.0 Z"></path> |
1403 | + <path d="M1274.9 217.9 L1276.2 209.5 L1267.7 210.0 L1281.2 205.0 Z"></path> |
1404 | + <g stroke-dasharray="6 6"> |
1405 | + <path d="M1595.6 206.8 L1659 225 L1659 289.8333333333333 L1659.0 289.8 " fill="none"></path> |
1406 | + </g> |
1407 | + <path d="M1653.7 283.2 L1659.0 289.8 L1664.3 283.2 L1659.0 296.5 Z"></path> |
1408 | + <path d="M1603.5 203.5 L1595.6 206.8 L1600.6 213.8 L1589.2 205.0 Z"></path> |
1409 | + <text x="1618.3" y="473.5" stroke="none">SSH</text> |
1410 | + <g stroke-dasharray="6 6"> |
1411 | + <path d="M1659.0 334.2 L1659 399 L1659 481.5 L1659.0 481.5 " fill="none"></path> |
1412 | + </g> |
1413 | + <path d="M1664.3 340.8 L1659.0 334.2 L1653.7 340.8 L1659.0 327.5 Z"></path> |
1414 | + <g stroke-dasharray="6 6"> |
1415 | + <path d="M1691.6 206.3 L1783.5 225 L1783.5 289.8333333333333 L1783.5 289.8 " fill="none"></path> |
1416 | + </g> |
1417 | + <path d="M1778.2 283.2 L1783.5 289.8 L1788.8 283.2 L1783.5 296.5 Z"></path> |
1418 | + <path d="M1699.2 202.4 L1691.6 206.3 L1697.1 212.9 L1685.1 205.0 Z"></path> |
1419 | + <g stroke-dasharray="6 6"> |
1420 | + <path d="M1783.5 334.2 L1783.5 399 L1783.5 481.5 L1783.5 481.5 " fill="none"></path> |
1421 | + </g> |
1422 | + <path d="M1788.8 340.8 L1783.5 334.2 L1778.2 340.8 L1783.5 327.5 Z"></path> |
1423 | + <g stroke-dasharray="6 6"> |
1424 | + <path d="M1102.2 365.9 L1006 399 L1006 412.3333333333333 L1006.0 412.3 " fill="none"></path> |
1425 | + </g> |
1426 | + <path d="M1000.7 405.7 L1006.0 412.3 L1011.3 405.7 L1006.0 419.0 Z"></path> |
1427 | + <path d="M1097.6 373.1 L1102.2 365.9 L1094.2 363.0 L1108.5 363.8 Z"></path> |
1428 | + <g stroke-dasharray="6 6"> |
1429 | + <path d="M1242.1 385.5 L1239 399 L1239 412.3333333333333 L1239.0 412.3 " fill="none"></path> |
1430 | + </g> |
1431 | + <path d="M1233.7 405.7 L1239.0 412.3 L1244.3 405.7 L1239.0 419.0 Z"></path> |
1432 | + <path d="M1245.8 393.2 L1242.1 385.5 L1235.4 390.8 L1243.6 379.0 Z"></path> |
1433 | + <g stroke-dasharray="6 6"> |
1434 | + <path d="M1354.1 383.0 L1375.5 399 L1388.6489765726408 413.9884707045646 L1388.6 414.0 " fill="none"></path> |
1435 | + </g> |
1436 | + <path d="M1380.2 412.5 L1388.6 414.0 L1388.3 405.5 L1393.0 419.0 Z"></path> |
1437 | + <path d="M1362.6 382.7 L1354.1 383.0 L1356.2 391.3 L1348.7 379.0 Z"></path> |
1438 | + <g stroke-dasharray="6 6"> |
1439 | + <path d="M1512.9 419.0 L1522 399 L1522 312 L1522 312 L1522 225 L1522 225 L1489.6328041618644 208.08741118367695 L1489.6 208.1 " fill="none"></path> |
1440 | + </g> |
1441 | + <path d="M1498.0 206.4 L1489.6 208.1 L1493.1 215.9 L1483.7 205.0 Z"></path> |
1442 | + <g data-name="reverse_proxy"> |
1443 | + <g fill="#eee8d5" stroke="#33322E" data-name="reverse_proxy"> |
1444 | + <rect x="971.8" y="0.0" height="31.0" width="125.0" data-name="reverse_proxy"></rect> |
1445 | + </g> |
1446 | + <g transform="translate(971.75, 0)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="reverse_proxy"> |
1447 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="reverse_proxy"> |
1448 | + <text x="54.5" y="13.5" stroke="none" text-anchor="middle" data-name="reverse_proxy">reverse_proxy</text> |
1449 | + |
1450 | + </g> |
1451 | + </g> |
1452 | + </g> |
1453 | + <g data-name="Rudolfs (LFS API)"> |
1454 | + <g fill="#eee8d5" stroke="#33322E" data-name="Rudolfs (LFS API)"> |
1455 | + <rect x="637.0" y="122.5" height="31.0" width="152.0" data-name="Rudolfs (LFS API)"></rect> |
1456 | + </g> |
1457 | + <g transform="translate(637, 122.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="Rudolfs (LFS API)"> |
1458 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="Rudolfs (LFS API)"> |
1459 | + <text x="68.0" y="13.5" stroke="none" text-anchor="middle" data-name="Rudolfs (LFS API)">Rudolfs (LFS API)</text> |
1460 | + |
1461 | + </g> |
1462 | + </g> |
1463 | + </g> |
1464 | + <g data-name="ayllu-core"> |
1465 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-core"> |
1466 | + <rect x="829.0" y="71.0" height="134.0" width="1053.0" data-name="ayllu-core"></rect> |
1467 | + <path d="M829.0 102.0 L1882.0 102.0" fill="none" data-name="ayllu-core"></path> |
1468 | + </g> |
1469 | + <g transform="translate(829, 71)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-core"> |
1470 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-core"> |
1471 | + <text x="518.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-core">ayllu-core</text> |
1472 | + |
1473 | + </g> |
1474 | + </g> |
1475 | + <g transform="translate(829, 102)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-core"> |
1476 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-core"> |
1477 | + <g transform="translate(20, 20)" data-name="ayllu-core"> |
1478 | + <g data-name="axum http interface"> |
1479 | + <g fill="#fdf6e3" stroke="#33322E" data-name="axum http interface"> |
1480 | + <rect x="0.0" y="8.0" height="31.0" width="164.0" data-name="axum http interface"></rect> |
1481 | + </g> |
1482 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="axum http interface"> |
1483 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="axum http interface"> |
1484 | + <text x="74.0" y="13.5" stroke="none" text-anchor="middle" data-name="axum http interface">axum http interface</text> |
1485 | + |
1486 | + </g> |
1487 | + </g> |
1488 | + </g> |
1489 | + <g data-name="sites static hosting"> |
1490 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sites static hosting"> |
1491 | + <rect x="204.0" y="8.0" height="31.0" width="161.0" data-name="sites static hosting"></rect> |
1492 | + </g> |
1493 | + <g transform="translate(204, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sites static hosting"> |
1494 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sites static hosting"> |
1495 | + <text x="72.5" y="13.5" stroke="none" text-anchor="middle" data-name="sites static hosting">sites static hosting</text> |
1496 | + |
1497 | + </g> |
1498 | + </g> |
1499 | + </g> |
1500 | + <g data-name="capnp-rpc-server (job_server)"> |
1501 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server (job_server)"> |
1502 | + <rect x="405.0" y="8.0" height="31.0" width="244.0" data-name="capnp-rpc-server (job_server)"></rect> |
1503 | + </g> |
1504 | + <g transform="translate(405, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server (job_server)"> |
1505 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server (job_server)"> |
1506 | + <text x="114.0" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server (job_server)">capnp-rpc-server (job_server)</text> |
1507 | + |
1508 | + </g> |
1509 | + </g> |
1510 | + </g> |
1511 | + <g data-name="git repositories via libgit2"> |
1512 | + <g fill="#fdf6e3" stroke="#33322E" data-name="git repositories via libgit2"> |
1513 | + <rect x="689.0" y="8.0" height="31.0" width="210.0" data-name="git repositories via libgit2"></rect> |
1514 | + </g> |
1515 | + <g transform="translate(689, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="git repositories via libgit2"> |
1516 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="git repositories via libgit2"> |
1517 | + <text x="97.0" y="13.5" stroke="none" text-anchor="middle" data-name="git repositories via libgit2">git repositories via libgit2</text> |
1518 | + |
1519 | + </g> |
1520 | + </g> |
1521 | + </g> |
1522 | + <g data-name="sqlite"> |
1523 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
1524 | + <rect x="939.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
1525 | + <path d="M939.0 8.0 L939.0 39.0" fill="none" data-name="sqlite"></path> |
1526 | + <path d="M997.0 8.0 L997.0 39.0" fill="none" data-name="sqlite"></path> |
1527 | + <ellipse cx="968.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
1528 | + <path d="M997.0 39.0 L997.0 39.3 L996.9 39.6 L996.7 39.9 L996.4 40.2 L996.1 40.5 L995.7 40.8 L995.3 41.1 L994.7 41.3 L994.1 41.6 L993.5 41.9 L992.7 42.1 L992.0 42.4 L991.1 42.6 L990.2 42.9 L989.3 43.1 L988.2 43.3 L987.2 43.5 L986.1 43.7 L984.9 43.9 L983.7 44.0 L982.5 44.2 L981.2 44.3 L979.9 44.5 L978.6 44.6 L977.2 44.7 L975.9 44.8 L974.5 44.8 L973.0 44.9 L971.6 45.0 L970.2 45.0 L968.7 45.0 L967.3 45.0 L965.8 45.0 L964.4 45.0 L963.0 44.9 L961.5 44.8 L960.1 44.8 L958.8 44.7 L957.4 44.6 L956.1 44.5 L954.8 44.3 L953.5 44.2 L952.3 44.0 L951.1 43.9 L949.9 43.7 L948.8 43.5 L947.8 43.3 L946.7 43.1 L945.8 42.9 L944.9 42.6 L944.0 42.4 L943.3 42.1 L942.5 41.9 L941.9 41.6 L941.3 41.3 L940.7 41.1 L940.3 40.8 L939.9 40.5 L939.6 40.2 L939.3 39.9 L939.1 39.6 L939.0 39.3 L939.0 39.0" data-name="sqlite"></path> |
1529 | + </g> |
1530 | + <g transform="translate(939, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
1531 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
1532 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
1533 | + |
1534 | + </g> |
1535 | + </g> |
1536 | + </g> |
1537 | + </g> |
1538 | + </g> |
1539 | + </g> |
1540 | + </g> |
1541 | + <g data-name="ayllu-mail"> |
1542 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-mail"> |
1543 | + <rect x="0.0" y="245.0" height="134.0" width="522.0" data-name="ayllu-mail"></rect> |
1544 | + <path d="M0.0 276.0 L522.0 276.0" fill="none" data-name="ayllu-mail"></path> |
1545 | + </g> |
1546 | + <g transform="translate(0, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-mail"> |
1547 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-mail"> |
1548 | + <text x="253.0" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-mail">ayllu-mail</text> |
1549 | + |
1550 | + </g> |
1551 | + </g> |
1552 | + <g transform="translate(0, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-mail"> |
1553 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-mail"> |
1554 | + <g transform="translate(20, 20)" data-name="ayllu-mail"> |
1555 | + <g data-name="capnp-rpc-server"> |
1556 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
1557 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
1558 | + </g> |
1559 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
1560 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
1561 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
1562 | + |
1563 | + </g> |
1564 | + </g> |
1565 | + </g> |
1566 | + <g data-name="mailpot"> |
1567 | + <g fill="#fdf6e3" stroke="#33322E" data-name="mailpot"> |
1568 | + <rect x="187.0" y="8.0" height="31.0" width="73.0" data-name="mailpot"></rect> |
1569 | + </g> |
1570 | + <g transform="translate(187, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="mailpot"> |
1571 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="mailpot"> |
1572 | + <text x="28.5" y="13.5" stroke="none" text-anchor="middle" data-name="mailpot">mailpot</text> |
1573 | + |
1574 | + </g> |
1575 | + </g> |
1576 | + </g> |
1577 | + <g data-name="postfix"> |
1578 | + <g fill="#fdf6e3" stroke="#33322E" data-name="postfix"> |
1579 | + <rect x="300.0" y="8.0" height="31.0" width="68.0" data-name="postfix"></rect> |
1580 | + </g> |
1581 | + <g transform="translate(300, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="postfix"> |
1582 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="postfix"> |
1583 | + <text x="26.0" y="13.5" stroke="none" text-anchor="middle" data-name="postfix">postfix</text> |
1584 | + |
1585 | + </g> |
1586 | + </g> |
1587 | + </g> |
1588 | + <g data-name="sqlite"> |
1589 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
1590 | + <rect x="408.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
1591 | + <path d="M408.0 8.0 L408.0 39.0" fill="none" data-name="sqlite"></path> |
1592 | + <path d="M466.0 8.0 L466.0 39.0" fill="none" data-name="sqlite"></path> |
1593 | + <ellipse cx="437.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
1594 | + <path d="M466.0 39.0 L466.0 39.3 L465.9 39.6 L465.7 39.9 L465.4 40.2 L465.1 40.5 L464.7 40.8 L464.3 41.1 L463.7 41.3 L463.1 41.6 L462.5 41.9 L461.7 42.1 L461.0 42.4 L460.1 42.6 L459.2 42.9 L458.3 43.1 L457.2 43.3 L456.2 43.5 L455.1 43.7 L453.9 43.9 L452.7 44.0 L451.5 44.2 L450.2 44.3 L448.9 44.5 L447.6 44.6 L446.2 44.7 L444.9 44.8 L443.5 44.8 L442.0 44.9 L440.6 45.0 L439.2 45.0 L437.7 45.0 L436.3 45.0 L434.8 45.0 L433.4 45.0 L432.0 44.9 L430.5 44.8 L429.1 44.8 L427.8 44.7 L426.4 44.6 L425.1 44.5 L423.8 44.3 L422.5 44.2 L421.3 44.0 L420.1 43.9 L418.9 43.7 L417.8 43.5 L416.8 43.3 L415.7 43.1 L414.8 42.9 L413.9 42.6 L413.0 42.4 L412.3 42.1 L411.5 41.9 L410.9 41.6 L410.3 41.3 L409.7 41.1 L409.3 40.8 L408.9 40.5 L408.6 40.2 L408.3 39.9 L408.1 39.6 L408.0 39.3 L408.0 39.0" data-name="sqlite"></path> |
1595 | + </g> |
1596 | + <g transform="translate(408, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
1597 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
1598 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
1599 | + |
1600 | + </g> |
1601 | + </g> |
1602 | + </g> |
1603 | + </g> |
1604 | + </g> |
1605 | + </g> |
1606 | + </g> |
1607 | + <g data-name="contributor-2"> |
1608 | + <g fill="#eee8d5" stroke="#33322E" data-name="contributor-2"> |
1609 | + <circle r="4.0" cx="807.5" cy="493.5" data-name="contributor-2"></circle> |
1610 | + <path d="M807.5 497.5 L807.5 505.5" fill="none" data-name="contributor-2"></path> |
1611 | + <path d="M803.5 501.5 L811.5 501.5" fill="none" data-name="contributor-2"></path> |
1612 | + <path d="M803.5 509.5 L807.5 505.5 L811.5 509.5" fill="none" data-name="contributor-2"></path> |
1613 | + </g> |
1614 | + <g transform="translate(750, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="contributor-2"> |
1615 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="contributor-2"> |
1616 | + <text x="49.5" y="13.5" stroke="none" text-anchor="middle" data-name="contributor-2">contributor-2</text> |
1617 | + |
1618 | + </g> |
1619 | + </g> |
1620 | + </g> |
1621 | + <g data-name="ayllu-xmpp"> |
1622 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-xmpp"> |
1623 | + <rect x="562.0" y="245.0" height="134.0" width="491.0" data-name="ayllu-xmpp"></rect> |
1624 | + <path d="M562.0 276.0 L1053.0 276.0" fill="none" data-name="ayllu-xmpp"></path> |
1625 | + </g> |
1626 | + <g transform="translate(562, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-xmpp"> |
1627 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-xmpp"> |
1628 | + <text x="237.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-xmpp">ayllu-xmpp</text> |
1629 | + |
1630 | + </g> |
1631 | + </g> |
1632 | + <g transform="translate(562, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-xmpp"> |
1633 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-xmpp"> |
1634 | + <g transform="translate(20, 20)" data-name="ayllu-xmpp"> |
1635 | + <g data-name="capnp-rpc-server"> |
1636 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
1637 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
1638 | + </g> |
1639 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
1640 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
1641 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
1642 | + |
1643 | + </g> |
1644 | + </g> |
1645 | + </g> |
1646 | + <g data-name="chat interface/bot"> |
1647 | + <g fill="#fdf6e3" stroke="#33322E" data-name="chat interface/bot"> |
1648 | + <rect x="187.0" y="8.0" height="31.0" width="150.0" data-name="chat interface/bot"></rect> |
1649 | + </g> |
1650 | + <g transform="translate(187, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="chat interface/bot"> |
1651 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="chat interface/bot"> |
1652 | + <text x="67.0" y="13.5" stroke="none" text-anchor="middle" data-name="chat interface/bot">chat interface/bot</text> |
1653 | + |
1654 | + </g> |
1655 | + </g> |
1656 | + </g> |
1657 | + <g data-name="sqlite"> |
1658 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
1659 | + <rect x="377.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
1660 | + <path d="M377.0 8.0 L377.0 39.0" fill="none" data-name="sqlite"></path> |
1661 | + <path d="M435.0 8.0 L435.0 39.0" fill="none" data-name="sqlite"></path> |
1662 | + <ellipse cx="406.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
1663 | + <path d="M435.0 39.0 L435.0 39.3 L434.9 39.6 L434.7 39.9 L434.4 40.2 L434.1 40.5 L433.7 40.8 L433.3 41.1 L432.7 41.3 L432.1 41.6 L431.5 41.9 L430.7 42.1 L430.0 42.4 L429.1 42.6 L428.2 42.9 L427.3 43.1 L426.2 43.3 L425.2 43.5 L424.1 43.7 L422.9 43.9 L421.7 44.0 L420.5 44.2 L419.2 44.3 L417.9 44.5 L416.6 44.6 L415.2 44.7 L413.9 44.8 L412.5 44.8 L411.0 44.9 L409.6 45.0 L408.2 45.0 L406.7 45.0 L405.3 45.0 L403.8 45.0 L402.4 45.0 L401.0 44.9 L399.5 44.8 L398.1 44.8 L396.8 44.7 L395.4 44.6 L394.1 44.5 L392.8 44.3 L391.5 44.2 L390.3 44.0 L389.1 43.9 L387.9 43.7 L386.8 43.5 L385.8 43.3 L384.7 43.1 L383.8 42.9 L382.9 42.6 L382.0 42.4 L381.3 42.1 L380.5 41.9 L379.9 41.6 L379.3 41.3 L378.7 41.1 L378.3 40.8 L377.9 40.5 L377.6 40.2 L377.3 39.9 L377.1 39.6 L377.0 39.3 L377.0 39.0" data-name="sqlite"></path> |
1664 | + </g> |
1665 | + <g transform="translate(377, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
1666 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
1667 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
1668 | + |
1669 | + </g> |
1670 | + </g> |
1671 | + </g> |
1672 | + </g> |
1673 | + </g> |
1674 | + </g> |
1675 | + </g> |
1676 | + <g data-name="ayllu-build"> |
1677 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-build"> |
1678 | + <rect x="1108.5" y="245.0" height="134.0" width="301.0" data-name="ayllu-build"></rect> |
1679 | + <path d="M1108.5 276.0 L1409.5 276.0" fill="none" data-name="ayllu-build"></path> |
1680 | + </g> |
1681 | + <g transform="translate(1108.5, 245)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-build"> |
1682 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-build"> |
1683 | + <text x="142.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-build">ayllu-build</text> |
1684 | + |
1685 | + </g> |
1686 | + </g> |
1687 | + <g transform="translate(1108.5, 276)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-build"> |
1688 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-build"> |
1689 | + <g transform="translate(20, 20)" data-name="ayllu-build"> |
1690 | + <g data-name="capnp-rpc-server"> |
1691 | + <g fill="#fdf6e3" stroke="#33322E" data-name="capnp-rpc-server"> |
1692 | + <rect x="0.0" y="8.0" height="31.0" width="147.0" data-name="capnp-rpc-server"></rect> |
1693 | + </g> |
1694 | + <g transform="translate(0, 8)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="capnp-rpc-server"> |
1695 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="capnp-rpc-server"> |
1696 | + <text x="65.5" y="13.5" stroke="none" text-anchor="middle" data-name="capnp-rpc-server">capnp-rpc-server</text> |
1697 | + |
1698 | + </g> |
1699 | + </g> |
1700 | + </g> |
1701 | + <g data-name="sqlite"> |
1702 | + <g fill="#fdf6e3" stroke="#33322E" data-name="sqlite"> |
1703 | + <rect x="187.0" y="8.0" height="31.0" width="58.0" stroke="none" data-name="sqlite"></rect> |
1704 | + <path d="M187.0 8.0 L187.0 39.0" fill="none" data-name="sqlite"></path> |
1705 | + <path d="M245.0 8.0 L245.0 39.0" fill="none" data-name="sqlite"></path> |
1706 | + <ellipse cx="216.0" cy="8.0" rx="29.0" ry="6.0" data-name="sqlite"></ellipse> |
1707 | + <path d="M245.0 39.0 L245.0 39.3 L244.9 39.6 L244.7 39.9 L244.4 40.2 L244.1 40.5 L243.7 40.8 L243.3 41.1 L242.7 41.3 L242.1 41.6 L241.5 41.9 L240.7 42.1 L240.0 42.4 L239.1 42.6 L238.2 42.9 L237.3 43.1 L236.2 43.3 L235.2 43.5 L234.1 43.7 L232.9 43.9 L231.7 44.0 L230.5 44.2 L229.2 44.3 L227.9 44.5 L226.6 44.6 L225.2 44.7 L223.9 44.8 L222.5 44.8 L221.0 44.9 L219.6 45.0 L218.2 45.0 L216.7 45.0 L215.3 45.0 L213.8 45.0 L212.4 45.0 L211.0 44.9 L209.5 44.8 L208.1 44.8 L206.8 44.7 L205.4 44.6 L204.1 44.5 L202.8 44.3 L201.5 44.2 L200.3 44.0 L199.1 43.9 L197.9 43.7 L196.8 43.5 L195.8 43.3 L194.7 43.1 L193.8 42.9 L192.9 42.6 L192.0 42.4 L191.3 42.1 L190.5 41.9 L189.9 41.6 L189.3 41.3 L188.7 41.1 L188.3 40.8 L187.9 40.5 L187.6 40.2 L187.3 39.9 L187.1 39.6 L187.0 39.3 L187.0 39.0" data-name="sqlite"></path> |
1708 | + </g> |
1709 | + <g transform="translate(187, 12)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="sqlite"> |
1710 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="sqlite"> |
1711 | + <text x="21.0" y="13.5" stroke="none" text-anchor="middle" data-name="sqlite">sqlite</text> |
1712 | + |
1713 | + </g> |
1714 | + </g> |
1715 | + </g> |
1716 | + </g> |
1717 | + </g> |
1718 | + </g> |
1719 | + </g> |
1720 | + <g data-name="ayllu-shell"> |
1721 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-shell"> |
1722 | + <rect x="1612.0" y="296.5" height="31.0" width="94.0" data-name="ayllu-shell"></rect> |
1723 | + </g> |
1724 | + <g transform="translate(1612, 296.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-shell"> |
1725 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-shell"> |
1726 | + <text x="39.0" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-shell">ayllu-shell</text> |
1727 | + |
1728 | + </g> |
1729 | + </g> |
1730 | + </g> |
1731 | + <g data-name="contributor"> |
1732 | + <g fill="#eee8d5" stroke="#33322E" data-name="contributor"> |
1733 | + <circle r="4.0" cx="1659.0" cy="493.5" data-name="contributor"></circle> |
1734 | + <path d="M1659.0 497.5 L1659.0 505.5" fill="none" data-name="contributor"></path> |
1735 | + <path d="M1655.0 501.5 L1663.0 501.5" fill="none" data-name="contributor"></path> |
1736 | + <path d="M1655.0 509.5 L1659.0 505.5 L1663.0 509.5" fill="none" data-name="contributor"></path> |
1737 | + </g> |
1738 | + <g transform="translate(1608.5, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="contributor"> |
1739 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="contributor"> |
1740 | + <text x="42.5" y="13.5" stroke="none" text-anchor="middle" data-name="contributor">contributor</text> |
1741 | + |
1742 | + </g> |
1743 | + </g> |
1744 | + </g> |
1745 | + <g data-name="ayllu-cli"> |
1746 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-cli"> |
1747 | + <rect x="1746.0" y="296.5" height="31.0" width="75.0" data-name="ayllu-cli"></rect> |
1748 | + </g> |
1749 | + <g transform="translate(1746, 296.5)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-cli"> |
1750 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-cli"> |
1751 | + <text x="29.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-cli">ayllu-cli</text> |
1752 | + |
1753 | + </g> |
1754 | + </g> |
1755 | + </g> |
1756 | + <g data-name="admin"> |
1757 | + <g fill="#eee8d5" stroke="#33322E" data-name="admin"> |
1758 | + <circle r="4.0" cx="1783.5" cy="493.5" data-name="admin"></circle> |
1759 | + <path d="M1783.5 497.5 L1783.5 505.5" fill="none" data-name="admin"></path> |
1760 | + <path d="M1779.5 501.5 L1787.5 501.5" fill="none" data-name="admin"></path> |
1761 | + <path d="M1779.5 509.5 L1783.5 505.5 L1787.5 509.5" fill="none" data-name="admin"></path> |
1762 | + </g> |
1763 | + <g transform="translate(1752, 505.5)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="admin"> |
1764 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="admin"> |
1765 | + <text x="23.5" y="13.5" stroke="none" text-anchor="middle" data-name="admin">admin</text> |
1766 | + |
1767 | + </g> |
1768 | + </g> |
1769 | + </g> |
1770 | + <g data-name="ayllu-builder-1"> |
1771 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-1"> |
1772 | + <rect x="909.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-1"></rect> |
1773 | + <path d="M909.5 450.0 L1102.5 450.0" fill="none" data-name="ayllu-builder-1"></path> |
1774 | + </g> |
1775 | + <g transform="translate(909.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-1"> |
1776 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-1"> |
1777 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-1">ayllu-builder-1</text> |
1778 | + |
1779 | + </g> |
1780 | + </g> |
1781 | + <g transform="translate(909.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-1"> |
1782 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-1"> |
1783 | + <g transform="translate(20, 20)" data-name="ayllu-builder-1"> |
1784 | + <g data-name="qemu-x86_64"> |
1785 | + <g fill="#fdf6e3" stroke="#33322E" data-name="qemu-x86_64"> |
1786 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="qemu-x86_64"></rect> |
1787 | + <path d="M0.0 31.0 L0.0 0.0 L113.1 0.0 L113.1 31.0 Z" data-name="qemu-x86_64"></path> |
1788 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="qemu-x86_64"></path> |
1789 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="qemu-x86_64"></path> |
1790 | + </g> |
1791 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
1792 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
1793 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">qemu-x86_64</text> |
1794 | + |
1795 | + </g> |
1796 | + </g> |
1797 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
1798 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
1799 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">capnp-rpc-server</text> |
1800 | + |
1801 | + </g> |
1802 | + </g> |
1803 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-x86_64"> |
1804 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-x86_64"> |
1805 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-x86_64">executor</text> |
1806 | + |
1807 | + </g> |
1808 | + </g> |
1809 | + </g> |
1810 | + </g> |
1811 | + </g> |
1812 | + </g> |
1813 | + </g> |
1814 | + <g data-name="ayllu-builder-2"> |
1815 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-2"> |
1816 | + <rect x="1142.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-2"></rect> |
1817 | + <path d="M1142.5 450.0 L1335.5 450.0" fill="none" data-name="ayllu-builder-2"></path> |
1818 | + </g> |
1819 | + <g transform="translate(1142.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-2"> |
1820 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-2"> |
1821 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-2">ayllu-builder-2</text> |
1822 | + |
1823 | + </g> |
1824 | + </g> |
1825 | + <g transform="translate(1142.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-2"> |
1826 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-2"> |
1827 | + <g transform="translate(20, 20)" data-name="ayllu-builder-2"> |
1828 | + <g data-name="qemu-aarch64"> |
1829 | + <g fill="#fdf6e3" stroke="#33322E" data-name="qemu-aarch64"> |
1830 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="qemu-aarch64"></rect> |
1831 | + <path d="M0.0 31.0 L0.0 0.0 L118.9 0.0 L118.9 31.0 Z" data-name="qemu-aarch64"></path> |
1832 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="qemu-aarch64"></path> |
1833 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="qemu-aarch64"></path> |
1834 | + </g> |
1835 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
1836 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
1837 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">qemu-aarch64</text> |
1838 | + |
1839 | + </g> |
1840 | + </g> |
1841 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
1842 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
1843 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">capnp-rpc-server</text> |
1844 | + |
1845 | + </g> |
1846 | + </g> |
1847 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="qemu-aarch64"> |
1848 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="qemu-aarch64"> |
1849 | + <text x="0.0" y="13.5" stroke="none" data-name="qemu-aarch64">exectuor</text> |
1850 | + |
1851 | + </g> |
1852 | + </g> |
1853 | + </g> |
1854 | + </g> |
1855 | + </g> |
1856 | + </g> |
1857 | + </g> |
1858 | + <g data-name="ayllu-builder-n"> |
1859 | + <g fill="#eee8d5" stroke="#33322E" data-name="ayllu-builder-n"> |
1860 | + <rect x="1375.5" y="419.0" height="180.0" width="193.0" data-name="ayllu-builder-n"></rect> |
1861 | + <path d="M1375.5 450.0 L1568.5 450.0" fill="none" data-name="ayllu-builder-n"></path> |
1862 | + </g> |
1863 | + <g transform="translate(1375.5, 419)" font-family="Helvetica" font-size="12pt" font-weight="bold" font-style="normal" data-name="ayllu-builder-n"> |
1864 | + <g transform="translate(8, 8)" fill="#33322E" text-align="center" data-name="ayllu-builder-n"> |
1865 | + <text x="88.5" y="13.5" stroke="none" text-anchor="middle" data-name="ayllu-builder-n">ayllu-builder-n</text> |
1866 | + |
1867 | + </g> |
1868 | + </g> |
1869 | + <g transform="translate(1375.5, 450)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="ayllu-builder-n"> |
1870 | + <g transform="translate(8, 8)" fill="#33322E" data-name="ayllu-builder-n"> |
1871 | + <g transform="translate(20, 20)" data-name="ayllu-builder-n"> |
1872 | + <g data-name="lxc"> |
1873 | + <g fill="#fdf6e3" stroke="#33322E" data-name="lxc"> |
1874 | + <rect x="0.0" y="31.0" height="62.0" width="137.0" data-name="lxc"></rect> |
1875 | + <path d="M0.0 31.0 L0.0 0.0 L35.2 0.0 L35.2 31.0 Z" data-name="lxc"></path> |
1876 | + <path d="M0.0 31.0 L137.0 31.0" fill="none" data-name="lxc"></path> |
1877 | + <path d="M0.0 62.0 L137.0 62.0" fill="none" data-name="lxc"></path> |
1878 | + </g> |
1879 | + <g transform="translate(0, 0)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
1880 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
1881 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">lxc</text> |
1882 | + |
1883 | + </g> |
1884 | + </g> |
1885 | + <g transform="translate(0, 31)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
1886 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
1887 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">capnp-rpc-server</text> |
1888 | + |
1889 | + </g> |
1890 | + </g> |
1891 | + <g transform="translate(0, 62)" font-family="Helvetica" font-size="12pt" font-weight="normal" font-style="normal" data-name="lxc"> |
1892 | + <g transform="translate(8, 8)" fill="#33322E" text-align="left" data-name="lxc"> |
1893 | + <text x="0.0" y="13.5" stroke="none" data-name="lxc">executor</text> |
1894 | + |
1895 | + </g> |
1896 | + </g> |
1897 | + </g> |
1898 | + </g> |
1899 | + </g> |
1900 | + </g> |
1901 | + </g> |
1902 | + </g> |
1903 | + </g> |
1904 | + </g> |
1905 | + </g> |
1906 | + </svg> |
1907 | \ No newline at end of file |
1908 | diff --git a/www/static/assets/computer.png b/www/static/assets/computer.png |
1909 | deleted file mode 100644 |
1910 | index dbe2651..0000000 |
1911 | Binary files a/www/static/assets/computer.png and /dev/null differ |
1912 | diff --git a/www/static/assets/crescent.png b/www/static/assets/crescent.png |
1913 | deleted file mode 100644 |
1914 | index c46dc91..0000000 |
1915 | Binary files a/www/static/assets/crescent.png and /dev/null differ |
1916 | diff --git a/www/static/assets/crescent.svg b/www/static/assets/crescent.svg |
1917 | deleted file mode 100644 |
1918 | index 51596eb..0000000 |
1919 | --- a/www/static/assets/crescent.svg |
1920 | +++ /dev/null |
1921 | @@ -1,12 +0,0 @@ |
1922 | - <svg id="emoji" viewBox="0 0 72 72" xmlns="http://www.w3.org/2000/svg"> |
1923 | - <g id="color"> |
1924 | - <path fill="#FCEA2B" stroke="none" d="M7.3634,42.4095c4.5525,6.1703,11.874,10.1726,20.1303,10.1726c13.8071,0,25-11.1929,25-25 c0-8.5226-4.2646-16.0492-10.7763-20.5621c13.0383,2.8385,22.7812,14.4426,22.7812,28.3317c0,16.0163-12.9837,29-29,29 C21.9109,64.3517,10.5097,55.0229,7.3634,42.4095z"/> |
1925 | - <path fill="#F1B31C" stroke="none" d="M45.8373,9.2108c8.25,4.25,16.1946,11.8724,16.1946,24.6742c0,15.4494-12.5242,27.9735-27.9735,27.9735 c-9.2431,0-19.7524-4.8353-24.294-15.5436c0,0,4.3805,18.6568,25.7189,18.665c19.327,0.0074,28.0419-20.6218,28.0419-20.6218 C70.033,12.3815,45.8373,9.2108,45.8373,9.2108z"/> |
1926 | - </g> |
1927 | - <g id="hair"/> |
1928 | - <g id="skin"/> |
1929 | - <g id="skin-shadow"/> |
1930 | - <g id="line"> |
1931 | - <path fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2" d="M7.3634,42.4095c4.5525,6.1703,11.874,10.1726,20.1303,10.1726c13.8071,0,25-11.1929,25-25 c0-8.5226-4.2646-16.0492-10.7763-20.5621c13.0383,2.8385,22.7812,14.4426,22.7812,28.3317c0,16.0163-12.9837,29-29,29 C21.9109,64.3517,10.5097,55.0229,7.3634,42.4095z"/> |
1932 | - </g> |
1933 | - </svg> |
1934 | diff --git a/www/static/assets/crescent_logo.png b/www/static/assets/crescent_logo.png |
1935 | deleted file mode 100644 |
1936 | index c3aef0d..0000000 |
1937 | Binary files a/www/static/assets/crescent_logo.png and /dev/null differ |
1938 | diff --git a/www/static/assets/crescent_logo.svg b/www/static/assets/crescent_logo.svg |
1939 | deleted file mode 100644 |
1940 | index b766584..0000000 |
1941 | --- a/www/static/assets/crescent_logo.svg |
1942 | +++ /dev/null |
1943 | @@ -1,192 +0,0 @@ |
1944 | - <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
1945 | - <svg |
1946 | - id="emoji" |
1947 | - viewBox="0 0 75 80" |
1948 | - version="1.1" |
1949 | - sodipodi:docname="ayllu_logo.svg" |
1950 | - width="75" |
1951 | - height="80" |
1952 | - inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" |
1953 | - inkscape:export-filename="ayllu_logo.png" |
1954 | - inkscape:export-xdpi="92.290512" |
1955 | - inkscape:export-ydpi="92.290512" |
1956 | - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
1957 | - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
1958 | - xmlns="http://www.w3.org/2000/svg" |
1959 | - xmlns:svg="http://www.w3.org/2000/svg" |
1960 | - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
1961 | - xmlns:cc="http://creativecommons.org/ns#" |
1962 | - xmlns:dc="http://purl.org/dc/elements/1.1/"> |
1963 | - <title |
1964 | - id="title8">Ayllu Logo</title> |
1965 | - <defs |
1966 | - id="defs3"> |
1967 | - <pattern |
1968 | - patternUnits="userSpaceOnUse" |
1969 | - width="100" |
1970 | - height="100" |
1971 | - id="Gingham" |
1972 | - preserveAspectRatio="xMidYMid" |
1973 | - patternTransform="scale(0.5,0.5)" |
1974 | - style="fill:#0000ff"> |
1975 | - <rect |
1976 | - style="fill-opacity:0.5;stroke:none" |
1977 | - id="rect3" |
1978 | - width="50" |
1979 | - height="50" |
1980 | - x="50" |
1981 | - y="0" /> |
1982 | - <rect |
1983 | - style="stroke:none" |
1984 | - id="rect4" |
1985 | - width="50" |
1986 | - height="50" |
1987 | - x="50" |
1988 | - y="50" /> |
1989 | - <rect |
1990 | - style="fill-opacity:0.5;stroke:none" |
1991 | - id="rect5" |
1992 | - width="50" |
1993 | - height="50" |
1994 | - x="0" |
1995 | - y="50" /> |
1996 | - </pattern> |
1997 | - </defs> |
1998 | - <sodipodi:namedview |
1999 | - id="namedview3" |
2000 | - pagecolor="#ffffff" |
2001 | - bordercolor="#999999" |
2002 | - borderopacity="1" |
2003 | - inkscape:showpageshadow="0" |
2004 | - inkscape:pageopacity="0" |
2005 | - inkscape:pagecheckerboard="0" |
2006 | - inkscape:deskcolor="#d1d1d1" |
2007 | - inkscape:zoom="8.25" |
2008 | - inkscape:cx="5.1515152" |
2009 | - inkscape:cy="36.424242" |
2010 | - inkscape:window-width="3826" |
2011 | - inkscape:window-height="1029" |
2012 | - inkscape:window-x="0" |
2013 | - inkscape:window-y="0" |
2014 | - inkscape:window-maximized="1" |
2015 | - inkscape:current-layer="emoji" |
2016 | - showgrid="true"> |
2017 | - <inkscape:grid |
2018 | - id="grid8" |
2019 | - units="px" |
2020 | - originx="0" |
2021 | - originy="0" |
2022 | - spacingx="1" |
2023 | - spacingy="1" |
2024 | - empcolor="#0099e5" |
2025 | - empopacity="0.30196078" |
2026 | - color="#0099e5" |
2027 | - opacity="0.14901961" |
2028 | - empspacing="5" |
2029 | - dotted="false" |
2030 | - gridanglex="30" |
2031 | - gridanglez="30" |
2032 | - visible="true" /> |
2033 | - </sodipodi:namedview> |
2034 | - <g |
2035 | - inkscape:groupmode="layer" |
2036 | - id="layer7" |
2037 | - inkscape:label="bg"> |
2038 | - <rect |
2039 | - style="fill:#000000;fill-opacity:1;stroke-width:3.26929" |
2040 | - id="rect14" |
2041 | - width="74.891571" |
2042 | - height="79.840912" |
2043 | - x="0.029829545" |
2044 | - y="0.18181819" |
2045 | - rx="4.2495718" |
2046 | - ry="4.1789107" /> |
2047 | - </g> |
2048 | - <g |
2049 | - inkscape:groupmode="layer" |
2050 | - id="layer1" |
2051 | - inkscape:label="bg 1"> |
2052 | - <g |
2053 | - inkscape:groupmode="layer" |
2054 | - id="layer7-3" |
2055 | - inkscape:label="bg" |
2056 | - transform="translate(0.10227227,0.03882594)"> |
2057 | - <rect |
2058 | - style="fill:#fcea2b;fill-opacity:1;stroke-width:3.10583" |
2059 | - id="rect14-6" |
2060 | - width="71.146996" |
2061 | - height="75.848869" |
2062 | - x="1.9021188" |
2063 | - y="2.1778409" |
2064 | - rx="4.0370932" |
2065 | - ry="3.9699652" /> |
2066 | - </g> |
2067 | - </g> |
2068 | - <g |
2069 | - inkscape:groupmode="layer" |
2070 | - id="layer4" |
2071 | - inkscape:label="text" |
2072 | - transform="translate(-1.2556819,-2.7045453)" |
2073 | - style="display:inline" /> |
2074 | - <g |
2075 | - id="g8" |
2076 | - transform="matrix(1.0086293,0,0,0.99990106,-0.07783972,3.322434)"> |
2077 | - <g |
2078 | - id="color" |
2079 | - transform="translate(1.3252841,0.98390174)" |
2080 | - style="display:inline" |
2081 | - inkscape:label="moon-shade"> |
2082 | - <path |
2083 | - fill="#fcea2b" |
2084 | - stroke="none" |
2085 | - d="m 7.3634,42.4095 c 4.5525,6.1703 11.874,10.1726 20.1303,10.1726 13.8071,0 25,-11.1929 25,-25 0,-8.5226 -4.2646,-16.0492 -10.7763,-20.5621 13.0383,2.8385 22.7812,14.4426 22.7812,28.3317 0,16.0163 -12.9837,29 -29,29 -13.5877,0 -24.9889,-9.3288 -28.1352,-21.9422 z" |
2086 | - id="path1" /> |
2087 | - <path |
2088 | - fill="#f1b31c" |
2089 | - stroke="none" |
2090 | - d="m 45.8373,9.2108 c 8.25,4.25 16.1946,11.8724 16.1946,24.6742 0,15.4494 -12.5242,27.9735 -27.9735,27.9735 -9.2431,0 -19.7524,-4.8353 -24.294,-15.5436 0,0 4.3805,18.6568 25.7189,18.665 C 54.8103,64.9873 63.5252,44.3581 63.5252,44.3581 70.033,12.3815 45.8373,9.2108 45.8373,9.2108 Z" |
2091 | - id="path2" /> |
2092 | - </g> |
2093 | - <g |
2094 | - id="line" |
2095 | - transform="translate(1.3252841,0.98390174)" |
2096 | - inkscape:label="moon-line"> |
2097 | - <path |
2098 | - fill="none" |
2099 | - stroke="#000000" |
2100 | - stroke-linecap="round" |
2101 | - stroke-linejoin="round" |
2102 | - stroke-miterlimit="10" |
2103 | - stroke-width="2" |
2104 | - d="m 7.3634,42.4095 c 4.5525,6.1703 11.874,10.1726 20.1303,10.1726 13.8071,0 25,-11.1929 25,-25 0,-8.5226 -4.2646,-16.0492 -10.7763,-20.5621 13.0383,2.8385 22.7812,14.4426 22.7812,28.3317 0,16.0163 -12.9837,29 -29,29 -13.5877,0 -24.9889,-9.3288 -28.1352,-21.9422 z" |
2105 | - id="path3" /> |
2106 | - </g> |
2107 | - </g> |
2108 | - <metadata |
2109 | - id="metadata8"> |
2110 | - <rdf:RDF> |
2111 | - <cc:Work |
2112 | - rdf:about=""> |
2113 | - <dc:title>Ayllu Logo</dc:title> |
2114 | - <cc:license |
2115 | - rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> |
2116 | - <dc:description>Originally created by Vanessa Boutzikoudi @ https://openmoji.org/library/emoji-1F319/</dc:description> |
2117 | - </cc:Work> |
2118 | - <cc:License |
2119 | - rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> |
2120 | - <cc:permits |
2121 | - rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
2122 | - <cc:permits |
2123 | - rdf:resource="http://creativecommons.org/ns#Distribution" /> |
2124 | - <cc:requires |
2125 | - rdf:resource="http://creativecommons.org/ns#Notice" /> |
2126 | - <cc:requires |
2127 | - rdf:resource="http://creativecommons.org/ns#Attribution" /> |
2128 | - <cc:permits |
2129 | - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
2130 | - <cc:requires |
2131 | - rdf:resource="http://creativecommons.org/ns#ShareAlike" /> |
2132 | - </cc:License> |
2133 | - </rdf:RDF> |
2134 | - </metadata> |
2135 | - </svg> |
2136 | diff --git a/www/templates/base.html b/www/templates/base.html |
2137 | index 865d7d8..d77b7ef 100644 |
2138 | --- a/www/templates/base.html |
2139 | +++ b/www/templates/base.html |
2140 | @@ -22,7 +22,7 @@ |
2141 | </ul> |
2142 | <ul> |
2143 | <li><a href="https://ayllu-forge.org/browse">browse</a></li> |
2144 | - <!--<li><a href="/docs">docs</a></li> --> |
2145 | + <li><a href="/docs">docs</a></li> |
2146 | </ul> |
2147 | </nav> |
2148 | <body class="container"> |