1 Star 0 Fork 43

zhongtao/src-iSulad

forked from src-openEuler/iSulad 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0037-add-cgroup-v2-doc.patch 57.31 KB
一键复制 编辑 原始数据 按行查看 历史
jake 提交于 2024-04-02 11:50 . upgrade from upstream
From 2cbce684b973bf4e250f41d750253b5b8abde32d Mon Sep 17 00:00:00 2001
From: zhongtao <[email protected]>
Date: Tue, 20 Feb 2024 19:22:11 +0800
Subject: [PATCH 37/43] add cgroup v2 doc
Signed-off-by: zhongtao <[email protected]>
---
docs/design/README_zh.md | 2 +
.../detailed/Container/cgroup_v2_design_zh.md | 193 ++++++++++++++++++
docs/images/cgroup_v2_module.svg | 16 ++
3 files changed, 211 insertions(+)
create mode 100644 docs/design/detailed/Container/cgroup_v2_design_zh.md
create mode 100644 docs/images/cgroup_v2_module.svg
diff --git a/docs/design/README_zh.md b/docs/design/README_zh.md
index f2c187a1..b7ec3ddb 100644
--- a/docs/design/README_zh.md
+++ b/docs/design/README_zh.md
@@ -18,6 +18,8 @@
- 查看 restart 模块的设计文档: [restart_manager_design](./detailed/Container/restart_manager_design.md)。
+- 查看 cgroup v2 的设计文档: [cgroup_v2_design](./detailed/Container/cgroup_v2_design_zh.md)。
+
## CRI
- 查看 CRI的启动程序的重构文档: [cri_cni_refactor](./detailed/CRI/cri_cni_refactor_zh.md) 。
diff --git a/docs/design/detailed/Container/cgroup_v2_design_zh.md b/docs/design/detailed/Container/cgroup_v2_design_zh.md
new file mode 100644
index 00000000..e1ce81d0
--- /dev/null
+++ b/docs/design/detailed/Container/cgroup_v2_design_zh.md
@@ -0,0 +1,193 @@
+| Author | zhongtao |
+| ------ | --------------------- |
+| Date | 2024-02-19 |
+| Email | [email protected] |
+# 方案目标
+
+cgroup是linux中用于限制进程组资源的功能。cgroup目前包括两个版本,cgroup v1和cgroup v2。cgroup v2的目标是取代cgroup v1,出于兼容性的考虑,cgroup v1并没有在内核中删除,并且大概率会长期存在。该需求的目的为使得iSulad支持cgroup v2.
+
+## 与cgroup v1差异
+无论是cgroup v1还是cgroup v2,iSulad提供给用户使用的接口都是一致的。不过由于有部分cgroup v1支持的功能在cgroup v2中被去掉了或者实现方式有所变化,因此部分接口在cgroup v2中不可用或者含义发生变化。iSulad支持限制如下资源:
+
+|资源|功能|和cgroup v1的差异|
+|---|---|---|
+|devices|限制对应的设备是否可以在容器中访问以及访问权限|devcies子系统不再使用往cgroup文件里写值的方式进行限制,而是采用ebpf的方式进行限制|
+|memory|限制容器的内存资源|不支持swappiness,不支持kmem相关参数,不支持oom_control|
+|cpu/cpuset|限制容器的cpu资源|不支持rt_*相关(实时线程)的限制|
+|blkio/io|限制容器的块设备io|不仅限制块设备的IO,也能限制buffer IO|
+|hugetlb|限制大页内存的使用|无差异|
+|pids|限制容器使用的pid|无差异|
+|files|限制容器使用的fd|无差异|
+|freeze|暂停容器|无差异|
+
+## 使用方式
+
+使用的示例如下:
+
+1. 以限制内存资源为例,假设我们需要限制单个容器最多使用10M内存,则可以在运行容器时加上-m 10m参数进行限制:
+
+ ```sh
+ [root@openEuler iSulad]# isula run -tid -m 10m busybox sh
+ 000c0c6eb609179062b19a3d2de4d7c38a42c887f55e2a7759ed9df851277163
+ ```
+
+ -m 10m表示限制容器内最多只能使用10m内存,可以通过isula stats命令查看资源的限制情况:
+
+ ```sh
+ [root@openEuler iSulad]# isula stats --no-stream 000c0c6eb6
+ CONTAINER CPU % MEM USAGE / LIMIT MEM % BLOCK I / O PIDS
+ 000c0c6eb609 0.00 104.00 KiB / 10.00 MiB 1.02 0.00 B / 0.00 B 1
+ ```
+
+ 可以动态更新资源的限制:
+ ```sh
+ [root@openEuler iSulad]# isula update -m 20m 000c0c6eb6
+ 000c0c6eb6
+ [root@openEuler iSulad]# isula stats --no-stream 000c0c6eb6
+ CONTAINER CPU % MEM USAGE / LIMIT MEM % BLOCK I / O PIDS
+ 000c0c6eb609 0.00 104.00 KiB / 20.00 MiB 0.51 0.00 B / 0.00 B 1
+ ```
+
+2. 假设我们要将设备/dev/sda挂载到容器中成为/dev/sdx并限制为只读设备,则可以这么配置:
+
+```sh
+ [root@openEuler iSulad]# isula run -ti --rm --device=/dev/sda:/dev/sdx:wm busybox fdisk /dev/sdx
+ fdisk: can't open '/dev/sdx'
+ [root@openEuler iSulad]#
+```
+
+挂载设备到容器的语法为`--device=$host:$container:rwm $host`指定设备在主机上的绝对路径,$container指定设备在容器内的绝对路径,r表示可读,w表示可写,m表示可以创建node 上述命令中rwm三个参数缺少r参数,也就是说允许写和创建node但是不允许读(即只读)。
+
+3. 使用cri的PodSandboxStats接口与ContainerStats接口获取容器的资源使用状况:
+
+```sh
+[root@openEuler ~]# crictl statsp c3
+ POD POD ID CPU % MEM
+ test-sandbox c32556d3bb139 0.00 196.6kB
+[root@openEuler ~]# crictl statsp --output json c3
+......
+ "linux": {
+ "cpu": {
+ "timestamp": "1708499622485777700",
+ "usageCoreNanoSeconds": {
+ "value": "180973"
+ },
+ "usageNanoCores": null
+ },
+ "memory": {
+ "timestamp": "1708499622485777700",
+ "workingSetBytes": {
+ "value": "196608"
+ },
+ "availableBytes": {
+ "value": "0"
+ },
+ "usageBytes": {
+ "value": "4386816"
+ },
+ "rssBytes": {
+ "value": "176128"
+ },
+ "pageFaults": {
+ "value": "1193"
+ },
+ "majorPageFaults": {
+ "value": "6"
+ }
+ },
+ "network": null,
+ "process": {
+ "timestamp": "1708499622485777700",
+ "processCount": {
+ "value": "2"
+ }
+ },
+.....
+
+[root@openEuler ~]# crictl stats 01
+CONTAINER CPU % MEM DISK INODES
+01a726f61c5c3 0.01 3.801MB 16.4kB 8
+[root@openEuler ~]#
+```
+
+# 总体设计
+
+在原有只支持cgroup v1的基础上,对cgroup模块进行了重构,重构后的架构图如下:
+
+![cgroup_v2_module](../../../images/cgroup_v2_module.svg)
+
+主要功能为以下两种:
+
+1. iSulad在资源控制参数设置和更新过程中,负责参数的合法校验,用于拦截非法请求,真正的cgroup操作由容器运行时完成。
+
+2. iSulad在获得sandbox资源使用信息时,直接读取sandbox cgroup文件信息。
+
+# 接口描述
+由于无论是cgroup v1还是cgroup v2,iSulad提供给用户使用的接口都是一致的。
+无新增接口。
+
+```c
+int verify_container_settings(const oci_runtime_spec *container, const sysinfo_t *sysinfo);
+
+int verify_host_config_settings(host_config *hostconfig, const sysinfo_t *sysinfo, bool update);
+
+
+typedef struct {
+ int (*get_cgroup_info)(cgroup_mem_info_t *meminfo, cgroup_cpu_info_t *cpuinfo,
+ cgroup_hugetlb_info_t *hugetlbinfo, cgroup_blkio_info_t *blkioinfo,
+ cgroup_cpuset_info_t *cpusetinfo, cgroup_pids_info_t *pidsinfo,
+ cgroup_files_info_t *filesinfo, bool quiet);
+ int (*get_cgroup_metrics)(const char *cgroup_path, cgroup_metrics_t *cgroup_metrics);
+
+ int (*common_find_cgroup_mnt_and_root)(const char *subsystem, char **mountpoint, char **root);
+
+ char *(*sysinfo_cgroup_controller_cpurt_mnt_path)(void);
+} cgroup_ops;
+
+int cgroup_v2_ops_init(cgroup_ops *ops)
+{
+ if (ops == NULL) {
+ return -1;
+ }
+ ops->get_cgroup_info = common_get_cgroup_info_v2;
+ ops->get_cgroup_metrics = common_get_cgroup_v2_metrics;
+ ops->common_find_cgroup_mnt_and_root = common_find_cgroup_v2_mnt_and_root;
+ return 0;
+}
+```
+
+# 详细设计
+
+```mermaid
+sequenceDiagram
+ participant isula
+ participant kubelet
+ participant isulad
+ participant runc
+ participant cgroup
+
+ isula->>isulad: request
+ kubelet->>isulad:request
+ alt run/create/update
+ isulad->>isulad:verify request option
+ isulad->>runc:run/create/update request
+ runc ->> cgroup:write cgroup file
+ else stats
+ par container stats
+ isulad->>runc:container stats request
+ runc ->> cgroup:read cgroup file
+ runc ->> isulad:container stats info
+ and sandbox stats
+ isulad ->> cgroup: read cgroup file
+ end
+ end
+ isulad ->> isula:response
+ isulad ->> kubelet:response
+```
+
+# 使用限制
+
+1. 只支持cgroup 挂载点在/sys/fs/cgroup
+2. cgroup v1与cgrooup v2混用场景不支持
+3. 该需求只涉及cgroup v2对runc容器运行时的支持
+
diff --git a/docs/images/cgroup_v2_module.svg b/docs/images/cgroup_v2_module.svg
new file mode 100644
index 00000000..59e7939b
--- /dev/null
+++ b/docs/images/cgroup_v2_module.svg
@@ -0,0 +1,16 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1060.0000000000007 754.5203469732791" width="1060.0000000000007" height="754.5203469732791">
+ <!-- svg-source:excalidraw -->
+
+ <defs>
+ <style class="style-fonts">
+ @font-face {
+ font-family: "Virgil";
+ src: url("https://excalidraw.com/Virgil.woff2");
+ }
+ @font-face {
+ font-family: "Cascadia";
+ src: url("https://excalidraw.com/Cascadia.woff2");
+ }
+ </style>
+ </defs>
+ <rect x="0" y="0" width="1060.0000000000007" height="754.5203469732791" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(374.51277982271654 10) rotate(0 98 27)"><path d="M0 0 C76.18 0, 152.36 0, 196 0 M0 0 C53.42 0, 106.84 0, 196 0 M196 0 C196 10.9, 196 21.81, 196 54 M196 0 C196 13.47, 196 26.95, 196 54 M196 54 C120.92 54, 45.83 54, 0 54 M196 54 C128.59 54, 61.18 54, 0 54 M0 54 C0 35.38, 0 16.75, 0 0 M0 54 C0 42.69, 0 31.39, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(456.95125638521654 25.5) rotate(0 15.5615234375 11.5)"><text x="15.5615234375" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">CLI</text></g><g stroke-linecap="round" transform="translate(644.5127798227165 11) rotate(0 98 27)"><path d="M0 0 C41.14 0, 82.28 0, 196 0 M0 0 C77.31 0, 154.62 0, 196 0 M196 0 C196 11.1, 196 22.21, 196 54 M196 0 C196 10.93, 196 21.86, 196 54 M196 54 C135.62 54, 75.24 54, 0 54 M196 54 C135.82 54, 75.63 54, 0 54 M0 54 C0 39.1, 0 24.21, 0 0 M0 54 C0 32.96, 0 11.92, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(725.2911001352165 26.5) rotate(0 17.2216796875 11.5)"><text x="17.2216796875" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">CRI</text></g><g stroke-linecap="round"><g transform="translate(481.84615384615404 66.66668701171875) rotate(0 0 0)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(481.84615384615404 66.66668701171875) rotate(0 0 0)"><path d="MNaN NaN CNaN NaN, NaN NaN, NaN NaN MNaN NaN CNaN NaN, NaN NaN, NaN NaN" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(481.84615384615404 66.66668701171875) rotate(0 0 0)"><path d="MNaN NaN CNaN NaN, NaN NaN, NaN NaN MNaN NaN CNaN NaN, NaN NaN, NaN NaN" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(474.4873658176107 65) rotate(0 -0.1998750712791164 41.22263106766279)"><path d="M0 0 C-0.15 30.41, -0.29 60.82, -0.4 82.45 M0 0 C-0.09 19.52, -0.19 39.04, -0.4 82.45" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(474.4873658176107 65) rotate(0 -0.1998750712791164 41.22263106766279)"><path d="M-10.52 54.21 C-6.79 64.62, -3.06 75.04, -0.4 82.45 M-10.52 54.21 C-8.13 60.89, -5.73 67.58, -0.4 82.45" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(474.4873658176107 65) rotate(0 -0.1998750712791164 41.22263106766279)"><path d="M10 54.3 C6.16 64.68, 2.33 75.06, -0.4 82.45 M10 54.3 C7.54 60.97, 5.07 67.63, -0.4 82.45" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(731.846153846154 66.66668701171875) rotate(0 0.33331298828125 39.666656494140625)"><path d="M0 0 C0.21 25.34, 0.43 50.69, 0.67 79.33 M0 0 C0.15 18.11, 0.3 36.21, 0.67 79.33" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(731.846153846154 66.66668701171875) rotate(0 0.33331298828125 39.666656494140625)"><path d="M-9.83 51.23 C-6.48 60.21, -3.12 69.18, 0.67 79.33 M-9.83 51.23 C-7.43 57.64, -5.04 64.06, 0.67 79.33" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(731.846153846154 66.66668701171875) rotate(0 0.33331298828125 39.666656494140625)"><path d="M10.69 51.06 C7.49 60.09, 4.29 69.12, 0.67 79.33 M10.69 51.06 C8.4 57.51, 6.11 63.96, 0.67 79.33" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(623.846153846154 147.83334350585938) rotate(0 114 26.5)"><path d="M0 0 C65.21 0, 130.41 0, 228 0 M0 0 C55.16 0, 110.32 0, 228 0 M228 0 C228 11.04, 228 22.08, 228 53 M228 0 C228 18.15, 228 36.3, 228 53 M228 53 C142.95 53, 57.9 53, 0 53 M228 53 C141.49 53, 54.97 53, 0 53 M0 53 C0 38.91, 0 24.82, 0 0 M0 53 C0 37.05, 0 21.09, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(685.048302283654 162.83334350585938) rotate(0 52.7978515625 11.5)"><text x="52.7978515625" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">CRI module</text></g><g stroke-linecap="round" transform="translate(368.84615384615404 244.00006103515625) rotate(0 249 29)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.26 6.4 C1.23 4.69, 2.71 2.98, 4.99 0.36 M-0.26 6.4 C1.06 4.88, 2.38 3.36, 4.99 0.36 M0.13 12.04 C2.65 9.15, 5.17 6.25, 10.63 -0.03 M0.13 12.04 C4.18 7.38, 8.23 2.73, 10.63 -0.03 M-0.13 18.44 C5.78 11.65, 11.68 4.85, 15.62 0.33 M-0.13 18.44 C4.65 12.94, 9.43 7.45, 15.62 0.33 M0.27 24.08 C6.61 16.78, 12.95 9.49, 21.26 -0.07 M0.27 24.08 C7.35 15.93, 14.44 7.78, 21.26 -0.07 M0 30.48 C10.35 18.58, 20.7 6.67, 26.25 0.29 M0 30.48 C7.06 22.36, 14.12 14.24, 26.25 0.29 M-0.26 36.88 C10.79 24.17, 21.84 11.46, 31.89 -0.1 M-0.26 36.88 C6.72 28.85, 13.7 20.82, 31.89 -0.1 M0.14 42.52 C8.28 33.16, 16.42 23.79, 36.88 0.26 M0.14 42.52 C8.6 32.78, 17.07 23.04, 36.88 0.26 M-0.12 48.92 C10 37.27, 20.13 25.62, 42.52 -0.14 M-0.12 48.92 C15.94 30.44, 32.01 11.95, 42.52 -0.14 M0.27 54.56 C19.08 32.92, 37.89 11.29, 47.51 0.22 M0.27 54.56 C16.07 36.39, 31.87 18.21, 47.51 0.22 M1.32 59.45 C15.2 43.48, 29.08 27.52, 53.15 -0.17 M1.32 59.45 C15.97 42.6, 30.61 25.76, 53.15 -0.17 M6.96 59.05 C18.55 45.73, 30.13 32.4, 58.14 0.19 M6.96 59.05 C21.89 41.88, 36.82 24.71, 58.14 0.19 M11.95 59.42 C23.87 45.71, 35.78 32, 63.78 -0.21 M11.95 59.42 C23.08 46.61, 34.21 33.81, 63.78 -0.21 M17.59 59.02 C31.37 43.17, 45.15 27.32, 68.77 0.15 M17.59 59.02 C31.77 42.72, 45.94 26.41, 68.77 0.15 M22.58 59.38 C39.68 39.72, 56.77 20.05, 74.41 -0.24 M22.58 59.38 C41.62 37.47, 60.67 15.57, 74.41 -0.24 M28.23 58.99 C41.06 44.22, 53.9 29.45, 79.4 0.12 M28.23 58.99 C39.94 45.51, 51.66 32.03, 79.4 0.12 M33.21 59.35 C47.97 42.37, 62.73 25.39, 85.04 -0.28 M33.21 59.35 C51.3 38.53, 69.4 17.72, 85.04 -0.28 M38.86 58.95 C57.09 37.97, 75.33 17, 90.03 0.08 M38.86 58.95 C56.79 38.32, 74.73 17.68, 90.03 0.08 M43.84 59.31 C55.38 46.04, 66.92 32.77, 95.67 -0.31 M43.84 59.31 C58.46 42.5, 73.08 25.68, 95.67 -0.31 M49.49 58.92 C66.46 39.39, 83.43 19.87, 100.66 0.05 M49.49 58.92 C60.16 46.63, 70.84 34.35, 100.66 0.05 M54.47 59.28 C74.29 36.48, 94.11 13.68, 106.3 -0.34 M54.47 59.28 C70.16 41.23, 85.86 23.17, 106.3 -0.34 M59.46 59.64 C79.34 36.76, 99.23 13.89, 111.29 0.02 M59.46 59.64 C71.6 45.67, 83.75 31.7, 111.29 0.02 M65.1 59.24 C76.05 46.65, 86.99 34.06, 116.27 0.38 M65.1 59.24 C78.5 43.83, 91.89 28.42, 116.27 0.38 M70.09 59.6 C84.61 42.9, 99.13 26.19, 121.92 -0.02 M70.09 59.6 C81.62 46.34, 93.15 33.07, 121.92 -0.02 M75.73 59.21 C89.96 42.85, 104.18 26.48, 126.91 0.34 M75.73 59.21 C87.18 46.04, 98.62 32.88, 126.91 0.34 M80.72 59.57 C93.68 44.66, 106.64 29.75, 132.55 -0.05 M80.72 59.57 C92.76 45.71, 104.81 31.86, 132.55 -0.05 M86.36 59.17 C104.09 38.78, 121.81 18.39, 137.54 0.31 M86.36 59.17 C105.14 37.57, 123.92 15.97, 137.54 0.31 M91.35 59.53 C106.02 42.66, 120.69 25.79, 143.18 -0.09 M91.35 59.53 C106.23 42.42, 121.11 25.3, 143.18 -0.09 M96.99 59.14 C112.44 41.37, 127.88 23.61, 148.17 0.27 M96.99 59.14 C111.55 42.39, 126.11 25.64, 148.17 0.27 M101.98 59.5 C113.88 45.81, 125.79 32.11, 153.81 -0.12 M101.98 59.5 C116.17 43.17, 130.36 26.85, 153.81 -0.12 M107.62 59.1 C119.8 45.1, 131.97 31.09, 158.8 0.24 M107.62 59.1 C122.1 42.45, 136.58 25.79, 158.8 0.24 M112.61 59.46 C128.24 41.48, 143.88 23.49, 164.44 -0.16 M112.61 59.46 C125.25 44.92, 137.89 30.38, 164.44 -0.16 M118.25 59.07 C136.64 37.92, 155.02 16.78, 169.43 0.2 M118.25 59.07 C132.75 42.4, 147.24 25.72, 169.43 0.2 M123.24 59.43 C142.49 37.28, 161.75 15.13, 175.07 -0.19 M123.24 59.43 C139.45 40.78, 155.66 22.14, 175.07 -0.19 M128.88 59.04 C143.28 42.48, 157.67 25.92, 180.06 0.17 M128.88 59.04 C145.27 40.19, 161.65 21.34, 180.06 0.17 M133.87 59.4 C148 43.14, 162.13 26.88, 185.7 -0.23 M133.87 59.4 C152.51 37.95, 171.15 16.5, 185.7 -0.23 M139.51 59 C156.42 39.55, 173.33 20.1, 190.69 0.13 M139.51 59 C151.93 44.71, 164.35 30.43, 190.69 0.13 M144.5 59.36 C160.02 41.5, 175.55 23.64, 196.33 -0.26 M144.5 59.36 C161.51 39.79, 178.53 20.22, 196.33 -0.26 M150.14 58.97 C162.64 44.59, 175.13 30.22, 201.32 0.1 M150.14 58.97 C161.09 46.38, 172.03 33.79, 201.32 0.1 M155.13 59.33 C171.07 40.99, 187.01 22.66, 206.96 -0.3 M155.13 59.33 C172.03 39.89, 188.92 20.46, 206.96 -0.3 M160.77 58.93 C174.63 42.99, 188.49 27.05, 211.95 0.06 M160.77 58.93 C171.56 46.53, 182.34 34.12, 211.95 0.06 M165.76 59.29 C176.79 46.6, 187.82 33.91, 217.59 -0.33 M165.76 59.29 C182.58 39.95, 199.39 20.6, 217.59 -0.33 M170.75 59.65 C184.71 43.59, 198.68 27.52, 222.58 0.03 M170.75 59.65 C187.56 40.31, 204.38 20.97, 222.58 0.03 M176.39 59.26 C191.56 41.8, 206.74 24.35, 228.22 -0.36 M176.39 59.26 C189.83 43.79, 203.28 28.33, 228.22 -0.36 M181.38 59.62 C192.29 47.07, 203.19 34.52, 233.21 0 M181.38 59.62 C194.86 44.11, 208.35 28.59, 233.21 0 M187.02 59.22 C201.63 42.42, 216.23 25.62, 238.19 0.36 M187.02 59.22 C203.93 39.77, 220.84 20.32, 238.19 0.36 M192.01 59.58 C206.25 43.19, 220.5 26.81, 243.84 -0.04 M192.01 59.58 C204.3 45.44, 216.6 31.29, 243.84 -0.04 M197.65 59.19 C212.49 42.12, 227.32 25.06, 248.82 0.32 M197.65 59.19 C213.08 41.44, 228.51 23.69, 248.82 0.32 M202.64 59.55 C221.03 38.4, 239.41 17.24, 254.47 -0.07 M202.64 59.55 C217.61 42.32, 232.59 25.1, 254.47 -0.07 M208.28 59.15 C221.91 43.48, 235.53 27.8, 259.45 0.29 M208.28 59.15 C218.53 47.36, 228.79 35.57, 259.45 0.29 M213.27 59.51 C231.57 38.46, 249.88 17.4, 265.1 -0.11 M213.27 59.51 C232.06 37.9, 250.85 16.28, 265.1 -0.11 M218.91 59.12 C236.08 39.37, 253.25 19.62, 270.08 0.25 M218.91 59.12 C230.11 46.23, 241.32 33.34, 270.08 0.25 M223.9 59.48 C238.62 42.55, 253.34 25.61, 275.73 -0.14 M223.9 59.48 C235.29 46.38, 246.68 33.27, 275.73 -0.14 M229.54 59.09 C243.84 42.63, 258.14 26.18, 280.71 0.22 M229.54 59.09 C240.45 46.53, 251.36 33.98, 280.71 0.22 M234.53 59.45 C253.82 37.26, 273.1 15.07, 286.36 -0.18 M234.53 59.45 C251.94 39.42, 269.35 19.39, 286.36 -0.18 M240.17 59.05 C252.51 44.86, 264.84 30.67, 291.34 0.18 M240.17 59.05 C250.57 47.08, 260.98 35.12, 291.34 0.18 M245.16 59.41 C263.48 38.34, 281.79 17.27, 296.99 -0.21 M245.16 59.41 C255.55 47.45, 265.95 35.49, 296.99 -0.21 M250.8 59.02 C262.26 45.83, 273.73 32.64, 301.97 0.15 M250.8 59.02 C264.78 42.93, 278.76 26.85, 301.97 0.15 M255.79 59.38 C275.2 37.04, 294.62 14.71, 307.62 -0.25 M255.79 59.38 C267.06 46.41, 278.33 33.44, 307.62 -0.25 M261.43 58.98 C281.55 35.84, 301.66 12.7, 312.6 0.11 M261.43 58.98 C275.31 43.02, 289.18 27.05, 312.6 0.11 M266.42 59.34 C281.62 41.86, 296.82 24.37, 318.25 -0.28 M266.42 59.34 C277 47.16, 287.59 34.99, 318.25 -0.28 M272.06 58.95 C291.2 36.93, 310.33 14.92, 323.23 0.08 M272.06 58.95 C287.89 40.73, 303.73 22.52, 323.23 0.08 M277.05 59.31 C296.65 36.76, 316.25 14.21, 328.88 -0.31 M277.05 59.31 C292.22 41.86, 307.39 24.41, 328.88 -0.31 M282.69 58.91 C300.76 38.12, 318.83 17.34, 333.86 0.05 M282.69 58.91 C296.21 43.36, 309.73 27.81, 333.86 0.05 M287.68 59.27 C298.51 46.82, 309.33 34.36, 339.51 -0.35 M287.68 59.27 C299.53 45.64, 311.37 32.01, 339.51 -0.35 M292.67 59.63 C312.27 37.08, 331.87 14.53, 344.49 0.01 M292.67 59.63 C306.96 43.18, 321.26 26.74, 344.49 0.01 M298.31 59.24 C317.54 37.11, 336.77 14.99, 349.48 0.37 M298.31 59.24 C312.22 43.23, 326.13 27.23, 349.48 0.37 M303.3 59.6 C316.65 44.23, 330.01 28.87, 355.12 -0.02 M303.3 59.6 C316.2 44.76, 329.1 29.92, 355.12 -0.02 M308.94 59.2 C328.41 36.8, 347.88 14.41, 360.11 0.34 M308.94 59.2 C324.11 41.75, 339.28 24.3, 360.11 0.34 M313.93 59.56 C327.45 44, 340.98 28.45, 365.75 -0.06 M313.93 59.56 C332.16 38.59, 350.39 17.62, 365.75 -0.06 M319.57 59.17 C336.72 39.43, 353.88 19.7, 370.74 0.3 M319.57 59.17 C334.43 42.07, 349.29 24.98, 370.74 0.3 M324.56 59.53 C335.87 46.51, 347.19 33.49, 376.38 -0.09 M324.56 59.53 C340.98 40.63, 357.41 21.73, 376.38 -0.09 M330.2 59.13 C343.68 43.63, 357.16 28.12, 381.37 0.27 M330.2 59.13 C343.28 44.08, 356.37 29.03, 381.37 0.27 M335.19 59.5 C346.65 46.31, 358.11 33.13, 387.01 -0.13 M335.19 59.5 C352.87 39.16, 370.55 18.82, 387.01 -0.13 M340.83 59.1 C361.26 35.6, 381.68 12.1, 392 0.23 M340.83 59.1 C356.62 40.93, 372.41 22.77, 392 0.23 M345.82 59.46 C362.48 40.29, 379.15 21.12, 397.64 -0.16 M345.82 59.46 C365.77 36.51, 385.72 13.56, 397.64 -0.16 M351.46 59.07 C366.19 42.12, 380.92 25.18, 402.63 0.2 M351.46 59.07 C370.86 36.74, 390.27 14.42, 402.63 0.2 M356.45 59.43 C368.51 45.55, 380.57 31.67, 408.27 -0.2 M356.45 59.43 C370.6 43.14, 384.76 26.86, 408.27 -0.2 M362.09 59.03 C376.7 42.23, 391.3 25.43, 413.26 0.16 M362.09 59.03 C378.05 40.67, 394 22.32, 413.26 0.16 M367.08 59.39 C378.94 45.75, 390.8 32.1, 418.9 -0.23 M367.08 59.39 C387.52 35.87, 407.97 12.35, 418.9 -0.23 M372.72 59 C385.98 43.75, 399.24 28.49, 423.89 0.13 M372.72 59 C391.39 37.52, 410.05 16.05, 423.89 0.13 M377.71 59.36 C390.4 44.76, 403.09 30.16, 429.53 -0.26 M377.71 59.36 C388.17 47.32, 398.63 35.29, 429.53 -0.26 M383.35 58.96 C398.02 42.08, 412.7 25.2, 434.52 0.1 M383.35 58.96 C399.24 40.69, 415.12 22.41, 434.52 0.1 M388.34 59.32 C407.86 36.86, 427.39 14.39, 440.16 -0.3 M388.34 59.32 C404.51 40.71, 420.69 22.1, 440.16 -0.3 M393.98 58.93 C412.27 37.89, 430.56 16.84, 445.15 0.06 M393.98 58.93 C411.14 39.19, 428.3 19.45, 445.15 0.06 M398.97 59.29 C418.74 36.54, 438.51 13.8, 450.79 -0.33 M398.97 59.29 C409.66 46.99, 420.35 34.69, 450.79 -0.33 M403.95 59.65 C418 43.49, 432.04 27.34, 455.78 0.03 M403.95 59.65 C421.57 39.39, 439.18 19.13, 455.78 0.03 M409.6 59.25 C429.13 36.79, 448.66 14.32, 461.42 -0.37 M409.6 59.25 C426.67 39.61, 443.75 19.96, 461.42 -0.37 M414.58 59.61 C432.11 39.45, 449.64 19.29, 466.41 -0.01 M414.58 59.61 C426.95 45.39, 439.32 31.16, 466.41 -0.01 M420.23 59.22 C437.71 39.11, 455.19 19, 471.4 0.35 M420.23 59.22 C440.22 36.22, 460.22 13.22, 471.4 0.35 M425.21 59.58 C439.77 42.84, 454.32 26.09, 477.04 -0.04 M425.21 59.58 C438.7 44.06, 452.19 28.54, 477.04 -0.04 M430.86 59.18 C441.89 46.49, 452.92 33.8, 482.03 0.32 M430.86 59.18 C444.33 43.69, 457.79 28.2, 482.03 0.32 M435.84 59.54 C453.03 39.78, 470.21 20.01, 487.67 -0.08 M435.84 59.54 C448.67 44.78, 461.5 30.03, 487.67 -0.08 M441.49 59.15 C461.92 35.64, 482.36 12.13, 492.66 0.28 M441.49 59.15 C456.03 42.42, 470.57 25.7, 492.66 0.28 M446.47 59.51 C463.79 39.59, 481.1 19.68, 498.3 -0.11 M446.47 59.51 C464.99 38.21, 483.5 16.92, 498.3 -0.11 M452.12 59.12 C463.81 45.67, 475.49 32.22, 498.04 6.29 M452.12 59.12 C468.41 40.37, 484.71 21.62, 498.04 6.29 M457.1 59.48 C467.14 47.93, 477.18 36.38, 498.44 11.93 M457.1 59.48 C471.98 42.36, 486.86 25.24, 498.44 11.93 M462.75 59.08 C469.96 50.78, 477.18 42.48, 498.17 18.33 M462.75 59.08 C471.27 49.27, 479.8 39.46, 498.17 18.33 M467.73 59.44 C474.48 51.68, 481.22 43.93, 497.91 24.72 M467.73 59.44 C478.02 47.61, 488.31 35.77, 497.91 24.72 M473.38 59.05 C479.12 52.45, 484.85 45.84, 498.31 30.37 M473.38 59.05 C480.13 51.27, 486.89 43.5, 498.31 30.37 M478.36 59.41 C485.3 51.43, 492.23 43.45, 498.05 36.77 M478.36 59.41 C486.21 50.38, 494.06 41.35, 498.05 36.77 M484.01 59.01 C489.47 52.73, 494.93 46.44, 498.44 42.41 M484.01 59.01 C487.46 55.04, 490.92 51.06, 498.44 42.41 M488.99 59.37 C491.9 56.02, 494.81 52.68, 498.18 48.81 M488.99 59.37 C492.18 55.71, 495.36 52.05, 498.18 48.81 M494.64 58.98 C495.47 58.02, 496.3 57.06, 497.92 55.2 M494.64 58.98 C495.63 57.83, 496.63 56.69, 497.92 55.2" stroke="#b2f2bb" stroke-width="0.5" fill="none"></path><path d="M0 0 C128.04 0, 256.08 0, 498 0 M0 0 C193.36 0, 386.71 0, 498 0 M498 0 C498 15.46, 498 30.92, 498 58 M498 0 C498 16.09, 498 32.18, 498 58 M498 58 C391.86 58, 285.72 58, 0 58 M498 58 C384.43 58, 270.86 58, 0 58 M0 58 C0 46.4, 0 34.79, 0 0 M0 58 C0 35.14, 0 12.29, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(558.378380408654 261.50006103515625) rotate(0 59.4677734375 11.5)"><text x="59.4677734375" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">verify module</text></g><g stroke-linecap="round"><g transform="translate(731.1794668344353 200.66668701171875) rotate(0 -0.6252581550315597 20.66668701171875)"><path d="M0 0 C-0.26 8.47, -0.51 16.94, -1.25 41.33 M0 0 C-0.41 13.51, -0.82 27.03, -1.25 41.33" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(731.1794668344353 200.66668701171875) rotate(0 -0.6252581550315597 20.66668701171875)"><path d="M-7.73 21.7 C-6.4 25.72, -5.08 29.74, -1.25 41.33 M-7.73 21.7 C-5.61 28.12, -3.49 34.54, -1.25 41.33" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(731.1794668344353 200.66668701171875) rotate(0 -0.6252581550315597 20.66668701171875)"><path d="M6.41 22.13 C4.84 26.06, 3.27 30, -1.25 41.33 M6.41 22.13 C3.9 28.41, 1.4 34.68, -1.25 41.33" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(71.64100529597363 395.3846670297477) rotate(0 284.48724130483777 93.35896888146038)"><path d="M0 0 C0 0, 0 0, 0 0 M0 0 C0 0, 0 0, 0 0 M-0.26 6.4 C1.58 4.28, 3.42 2.16, 4.99 0.36 M-0.26 6.4 C1.6 4.26, 3.45 2.12, 4.99 0.36 M0.13 12.04 C2.5 9.32, 4.86 6.6, 10.63 -0.03 M0.13 12.04 C3.79 7.83, 7.45 3.62, 10.63 -0.03 M-0.13 18.44 C3.77 13.95, 7.67 9.46, 15.62 0.33 M-0.13 18.44 C5.26 12.24, 10.66 6.03, 15.62 0.33 M0.27 24.08 C7.63 15.61, 14.99 7.15, 21.26 -0.07 M0.27 24.08 C5.42 18.15, 10.58 12.22, 21.26 -0.07 M0 30.48 C7.43 21.94, 14.86 13.39, 26.25 0.29 M0 30.48 C6.83 22.63, 13.65 14.78, 26.25 0.29 M-0.26 36.88 C11.62 23.22, 23.49 9.56, 31.89 -0.1 M-0.26 36.88 C11.63 23.21, 23.51 9.53, 31.89 -0.1 M0.14 42.52 C13.72 26.9, 27.3 11.28, 36.88 0.26 M0.14 42.52 C12.31 28.52, 24.49 14.51, 36.88 0.26 M-0.12 48.92 C10.02 37.25, 20.16 25.59, 42.52 -0.14 M-0.12 48.92 C15.45 31.01, 31.02 13.09, 42.52 -0.14 M0.27 54.56 C18.31 33.82, 36.34 13.07, 47.51 0.22 M0.27 54.56 C16.58 35.8, 32.89 17.04, 47.51 0.22 M0.01 60.96 C11.85 47.34, 23.69 33.72, 53.15 -0.17 M0.01 60.96 C15.44 43.21, 30.87 25.46, 53.15 -0.17 M-0.25 67.36 C14.61 50.26, 29.47 33.17, 58.14 0.19 M-0.25 67.36 C20.45 43.55, 41.14 19.74, 58.14 0.19 M0.14 73 C13.03 58.18, 25.92 43.35, 63.78 -0.21 M0.14 73 C20.35 49.75, 40.56 26.5, 63.78 -0.21 M-0.12 79.4 C19.43 56.91, 38.97 34.43, 68.77 0.15 M-0.12 79.4 C25.79 49.6, 51.69 19.8, 68.77 0.15 M0.28 85.04 C27.39 53.85, 54.51 22.65, 74.41 -0.24 M0.28 85.04 C17.58 65.14, 34.88 45.23, 74.41 -0.24 M0.01 91.44 C17.98 70.77, 35.95 50.09, 79.4 0.12 M0.01 91.44 C23.11 64.87, 46.2 38.31, 79.4 0.12 M-0.25 97.84 C26.41 67.17, 53.07 36.5, 85.04 -0.28 M-0.25 97.84 C28.6 64.65, 57.45 31.46, 85.04 -0.28 M0.15 103.48 C18.15 82.77, 36.15 62.06, 90.03 0.08 M0.15 103.48 C31.08 67.9, 62.01 32.32, 90.03 0.08 M-0.11 109.88 C33.76 70.91, 67.63 31.94, 95.67 -0.31 M-0.11 109.88 C33.1 71.67, 66.31 33.46, 95.67 -0.31 M0.28 115.52 C38.85 71.15, 77.43 26.77, 100.66 0.05 M0.28 115.52 C24.85 87.26, 49.42 59, 100.66 0.05 M0.02 121.92 C22.42 96.15, 44.82 70.38, 106.3 -0.34 M0.02 121.92 C30.58 86.76, 61.14 51.61, 106.3 -0.34 M-0.24 128.32 C35.23 87.51, 70.7 46.71, 111.29 0.02 M-0.24 128.32 C29.43 94.19, 59.09 60.06, 111.29 0.02 M0.15 133.96 C36.92 91.66, 73.69 49.36, 116.27 0.38 M0.15 133.96 C23.76 106.81, 47.36 79.65, 116.27 0.38 M-0.11 140.36 C24.57 111.97, 49.25 83.58, 121.92 -0.02 M-0.11 140.36 C42 91.91, 84.12 43.47, 121.92 -0.02 M0.29 146 C40.16 100.13, 80.03 54.26, 126.91 0.34 M0.29 146 C32.03 109.48, 63.78 72.96, 126.91 0.34 M0.02 152.4 C52.83 91.65, 105.64 30.9, 132.55 -0.05 M0.02 152.4 C50.83 93.96, 101.63 35.52, 132.55 -0.05 M-0.24 158.8 C49.37 101.73, 98.98 44.66, 137.54 0.31 M-0.24 158.8 C27.42 126.98, 55.08 95.16, 137.54 0.31 M0.16 164.44 C47.25 110.26, 94.35 56.08, 143.18 -0.09 M0.16 164.44 C49.65 107.5, 99.15 50.56, 143.18 -0.09 M-0.1 170.84 C32.17 133.71, 64.45 96.57, 148.17 0.27 M-0.1 170.84 C50.05 113.15, 100.2 55.45, 148.17 0.27 M0.29 176.48 C58.34 109.7, 116.39 42.92, 153.81 -0.12 M0.29 176.48 C55.97 112.42, 111.66 48.37, 153.81 -0.12 M0.03 182.88 C57.85 116.36, 115.67 49.85, 158.8 0.24 M0.03 182.88 C57.52 116.74, 115.01 50.61, 158.8 0.24 M1.08 187.77 C64.7 114.58, 128.32 41.39, 164.44 -0.16 M1.08 187.77 C38.12 145.15, 75.16 102.54, 164.44 -0.16 M6.72 187.37 C53.41 133.66, 100.1 79.96, 169.43 0.2 M6.72 187.37 C53.15 133.96, 99.59 80.54, 169.43 0.2 M11.71 187.73 C71.91 118.47, 132.12 49.22, 175.07 -0.19 M11.71 187.73 C60.02 132.16, 108.33 76.58, 175.07 -0.19 M17.35 187.34 C79.87 115.41, 142.4 43.49, 180.06 0.17 M17.35 187.34 C71.88 124.61, 126.41 61.88, 180.06 0.17 M22.34 187.7 C84.7 115.96, 147.06 44.23, 185.7 -0.23 M22.34 187.7 C86.25 114.17, 150.17 40.65, 185.7 -0.23 M27.33 188.06 C70.69 138.18, 114.05 88.3, 190.69 0.13 M27.33 188.06 C68.58 140.6, 109.83 93.15, 190.69 0.13 M32.97 187.66 C74.82 139.51, 116.68 91.37, 196.33 -0.26 M32.97 187.66 C81.81 131.48, 130.65 75.29, 196.33 -0.26 M37.96 188.02 C78.89 140.93, 119.83 93.84, 201.32 0.1 M37.96 188.02 C102.11 114.22, 166.27 40.42, 201.32 0.1 M43.6 187.63 C89.37 134.98, 135.13 82.33, 206.96 -0.3 M43.6 187.63 C87.49 137.14, 131.37 86.66, 206.96 -0.3 M48.59 187.99 C92.84 137.08, 137.1 86.17, 211.95 0.06 M48.59 187.99 C85.34 145.7, 122.1 103.42, 211.95 0.06 M54.23 187.59 C103.67 130.72, 153.11 73.84, 217.59 -0.33 M54.23 187.59 C105.54 128.57, 156.84 69.55, 217.59 -0.33 M59.22 187.95 C119.4 118.72, 179.59 49.48, 222.58 0.03 M59.22 187.95 C97.23 144.22, 135.25 100.49, 222.58 0.03 M64.86 187.56 C103.05 143.63, 141.23 99.7, 228.22 -0.36 M64.86 187.56 C116 128.72, 167.15 69.89, 228.22 -0.36 M69.85 187.92 C134.56 113.47, 199.28 39.03, 233.21 0 M69.85 187.92 C104.68 147.85, 139.5 107.79, 233.21 0 M75.49 187.52 C131.53 123.06, 187.57 58.6, 238.19 0.36 M75.49 187.52 C125.54 129.95, 175.59 72.38, 238.19 0.36 M80.48 187.88 C132.43 128.12, 184.39 68.35, 243.84 -0.04 M80.48 187.88 C142.22 116.86, 203.96 45.84, 243.84 -0.04 M86.12 187.49 C145.76 118.88, 205.4 50.27, 248.82 0.32 M86.12 187.49 C119.25 149.38, 152.38 111.27, 248.82 0.32 M91.11 187.85 C141.58 129.79, 192.05 71.73, 254.47 -0.07 M91.11 187.85 C132.35 140.41, 173.58 92.97, 254.47 -0.07 M96.75 187.45 C160.69 113.9, 224.64 40.34, 259.45 0.29 M96.75 187.45 C140.87 136.7, 185 85.94, 259.45 0.29 M101.74 187.82 C143.35 139.95, 184.96 92.08, 265.1 -0.11 M101.74 187.82 C163.21 117.1, 224.67 46.39, 265.1 -0.11 M107.38 187.42 C168.81 116.75, 230.25 46.08, 270.08 0.25 M107.38 187.42 C147.14 141.68, 186.91 95.94, 270.08 0.25 M112.37 187.78 C153.55 140.41, 194.72 93.04, 275.73 -0.14 M112.37 187.78 C145.54 149.62, 178.72 111.45, 275.73 -0.14 M118.01 187.39 C156.24 143.41, 194.47 99.43, 280.71 0.22 M118.01 187.39 C154.04 145.94, 190.06 104.5, 280.71 0.22 M123 187.75 C173.43 129.73, 223.86 71.71, 286.36 -0.18 M123 187.75 C155.76 150.06, 188.53 112.36, 286.36 -0.18 M128.64 187.35 C184.1 123.56, 239.55 59.76, 291.34 0.18 M128.64 187.35 C187.94 119.13, 247.25 50.91, 291.34 0.18 M133.63 187.71 C173.37 141.99, 213.11 96.27, 296.99 -0.21 M133.63 187.71 C190.88 121.85, 248.14 55.98, 296.99 -0.21 M138.61 188.07 C176.48 144.51, 214.35 100.95, 301.97 0.15 M138.61 188.07 C203.94 112.92, 269.27 37.77, 301.97 0.15 M144.26 187.68 C207.21 115.26, 270.15 42.85, 307.62 -0.25 M144.26 187.68 C184.88 140.95, 225.5 94.22, 307.62 -0.25 M149.24 188.04 C199.13 130.65, 249.02 73.26, 312.6 0.11 M149.24 188.04 C201.19 128.28, 253.14 68.52, 312.6 0.11 M154.89 187.64 C199.87 135.89, 244.86 84.15, 318.25 -0.28 M154.89 187.64 C188.37 149.12, 221.86 110.6, 318.25 -0.28 M159.87 188 C212.16 127.86, 264.44 67.72, 323.23 0.08 M159.87 188 C204.51 136.66, 249.14 85.31, 323.23 0.08 M165.52 187.61 C225.12 119.05, 284.71 50.49, 328.88 -0.31 M165.52 187.61 C221.62 123.07, 277.72 58.54, 328.88 -0.31 M170.51 187.97 C218.73 132.49, 266.95 77.02, 333.86 0.05 M170.51 187.97 C216.91 134.59, 263.31 81.21, 333.86 0.05 M176.15 187.57 C227.78 128.17, 279.42 68.77, 339.51 -0.35 M176.15 187.57 C225.47 130.83, 274.8 74.09, 339.51 -0.35 M181.14 187.93 C215.64 148.24, 250.14 108.55, 344.49 0.01 M181.14 187.93 C235.53 125.36, 289.93 62.78, 344.49 0.01 M186.78 187.54 C235.99 130.93, 285.2 74.31, 349.48 0.37 M186.78 187.54 C240.9 125.27, 295.03 63.01, 349.48 0.37 M191.77 187.9 C242.3 129.77, 292.83 71.63, 355.12 -0.02 M191.77 187.9 C235.33 137.78, 278.9 87.66, 355.12 -0.02 M197.41 187.5 C247.56 129.81, 297.71 72.12, 360.11 0.34 M197.41 187.5 C230.23 149.75, 263.05 111.99, 360.11 0.34 M202.4 187.86 C266.4 114.23, 330.41 40.6, 365.75 -0.06 M202.4 187.86 C250.72 132.27, 299.05 76.68, 365.75 -0.06 M208.04 187.47 C245.22 144.69, 282.41 101.92, 370.74 0.3 M208.04 187.47 C255.11 133.32, 302.18 79.18, 370.74 0.3 M213.03 187.83 C265.6 127.35, 318.17 66.87, 376.38 -0.09 M213.03 187.83 C261.23 132.37, 309.44 76.92, 376.38 -0.09 M218.67 187.44 C278.8 118.27, 338.92 49.1, 381.37 0.27 M218.67 187.44 C265.8 133.22, 312.92 79.01, 381.37 0.27 M223.66 187.8 C276.49 127.02, 329.32 66.24, 387.01 -0.13 M223.66 187.8 C273.21 130.79, 322.76 73.79, 387.01 -0.13 M229.3 187.4 C285.97 122.21, 342.64 57.01, 392 0.23 M229.3 187.4 C279.92 129.17, 330.54 70.94, 392 0.23 M234.29 187.76 C280.3 134.83, 326.31 81.9, 397.64 -0.16 M234.29 187.76 C270.77 145.79, 307.25 103.82, 397.64 -0.16 M239.93 187.37 C303.84 113.84, 367.76 40.31, 402.63 0.2 M239.93 187.37 C301.12 116.97, 362.31 46.58, 402.63 0.2 M244.92 187.73 C284.53 142.15, 324.15 96.58, 408.27 -0.2 M244.92 187.73 C297.53 127.2, 350.14 66.68, 408.27 -0.2 M250.56 187.33 C289.94 142.03, 329.33 96.72, 413.26 0.16 M250.56 187.33 C302.79 127.25, 355.02 67.16, 413.26 0.16 M255.55 187.69 C306.66 128.89, 357.77 70.09, 418.9 -0.23 M255.55 187.69 C309.53 125.58, 363.52 63.48, 418.9 -0.23 M260.53 188.05 C300.7 141.85, 340.86 95.65, 423.89 0.13 M260.53 188.05 C308.95 132.35, 357.37 76.65, 423.89 0.13 M266.18 187.66 C325.09 119.89, 384 52.12, 429.53 -0.26 M266.18 187.66 C322.32 123.07, 378.46 58.49, 429.53 -0.26 M271.16 188.02 C314.46 138.21, 357.76 88.4, 434.52 0.1 M271.16 188.02 C314.75 137.87, 358.34 87.73, 434.52 0.1 M276.81 187.62 C328.19 128.52, 379.57 69.41, 440.16 -0.3 M276.81 187.62 C329.19 127.36, 381.58 67.09, 440.16 -0.3 M281.79 187.98 C342.46 118.19, 403.13 48.4, 445.15 0.06 M281.79 187.98 C332.59 129.55, 383.38 71.12, 445.15 0.06 M287.44 187.59 C330.61 137.92, 373.79 88.25, 450.79 -0.33 M287.44 187.59 C350.28 115.29, 413.13 42.99, 450.79 -0.33 M292.42 187.95 C349.2 122.63, 405.98 57.32, 455.78 0.03 M292.42 187.95 C344.93 127.55, 397.43 67.15, 455.78 0.03 M298.07 187.55 C356.97 119.79, 415.88 52.03, 461.42 -0.37 M298.07 187.55 C350.83 126.85, 403.6 66.15, 461.42 -0.37 M303.05 187.91 C366.31 115.15, 429.56 42.39, 466.41 -0.01 M303.05 187.91 C352.88 130.59, 402.71 73.27, 466.41 -0.01 M308.7 187.52 C359.95 128.56, 411.21 69.6, 471.4 0.35 M308.7 187.52 C355.37 133.83, 402.04 80.14, 471.4 0.35 M313.68 187.88 C378.19 113.67, 442.69 39.47, 477.04 -0.04 M313.68 187.88 C359.85 134.77, 406.01 81.67, 477.04 -0.04 M319.33 187.49 C368.16 131.31, 416.99 75.14, 482.03 0.32 M319.33 187.49 C366.77 132.91, 414.21 78.33, 482.03 0.32 M324.31 187.85 C371.05 134.09, 417.78 80.33, 487.67 -0.08 M324.31 187.85 C387.86 114.74, 451.42 41.63, 487.67 -0.08 M329.96 187.45 C370.53 140.78, 411.09 94.11, 492.66 0.28 M329.96 187.45 C381.47 128.19, 432.99 68.92, 492.66 0.28 M334.94 187.81 C381.87 133.83, 428.79 79.85, 498.3 -0.11 M334.94 187.81 C395.92 117.67, 456.89 47.52, 498.3 -0.11 M340.59 187.42 C398.69 120.58, 456.79 53.73, 503.29 0.25 M340.59 187.42 C374.02 148.96, 407.45 110.49, 503.29 0.25 M345.57 187.78 C384.09 143.47, 422.6 99.17, 508.93 -0.15 M345.57 187.78 C394.3 131.72, 443.04 75.66, 508.93 -0.15 M351.22 187.38 C412.85 116.49, 474.47 45.59, 513.92 0.21 M351.22 187.38 C410.71 118.94, 470.21 50.49, 513.92 0.21 M356.2 187.74 C401.94 135.13, 447.67 82.52, 519.56 -0.18 M356.2 187.74 C395.61 142.41, 435.02 97.07, 519.56 -0.18 M361.85 187.35 C415.64 125.47, 469.43 63.58, 524.55 0.18 M361.85 187.35 C405.59 137.03, 449.33 86.71, 524.55 0.18 M366.83 187.71 C428.76 116.47, 490.68 45.24, 530.19 -0.22 M366.83 187.71 C431.07 113.82, 495.3 39.92, 530.19 -0.22 M371.82 188.07 C435.51 114.8, 499.19 41.54, 535.18 0.14 M371.82 188.07 C429.09 122.18, 486.37 56.3, 535.18 0.14 M377.46 187.67 C410.67 149.47, 443.88 111.27, 540.82 -0.25 M377.46 187.67 C436.17 120.13, 494.89 52.6, 540.82 -0.25 M382.45 188.03 C446.92 113.87, 511.39 39.71, 545.81 0.11 M382.45 188.03 C433.21 129.64, 483.97 71.25, 545.81 0.11 M388.09 187.64 C426.28 143.71, 464.46 99.79, 551.45 -0.28 M388.09 187.64 C430.42 138.95, 472.74 90.26, 551.45 -0.28 M393.08 188 C449.29 123.33, 505.5 58.67, 556.44 0.08 M393.08 188 C427.87 147.97, 462.67 107.95, 556.44 0.08 M398.72 187.6 C441.6 138.28, 484.48 88.95, 562.08 -0.32 M398.72 187.6 C435.57 145.21, 472.42 102.82, 562.08 -0.32 M403.71 187.96 C452.43 131.92, 501.15 75.88, 567.07 0.04 M403.71 187.96 C466.64 115.57, 529.58 43.17, 567.07 0.04 M409.35 187.57 C456.57 133.25, 503.79 78.94, 570.74 1.91 M409.35 187.57 C458.78 130.71, 508.21 73.84, 570.74 1.91 M414.34 187.93 C457.93 137.78, 501.53 87.63, 571.14 7.55 M414.34 187.93 C464.43 130.31, 514.52 72.69, 571.14 7.55 M419.98 187.53 C455.88 146.25, 491.77 104.96, 570.88 13.95 M419.98 187.53 C474.7 124.59, 529.42 61.64, 570.88 13.95 M424.97 187.89 C478.19 126.68, 531.4 65.46, 570.62 20.35 M424.97 187.89 C479.08 125.65, 533.19 63.4, 570.62 20.35 M430.61 187.5 C461.96 151.44, 493.32 115.37, 571.01 25.99 M430.61 187.5 C482.58 127.72, 534.55 67.94, 571.01 25.99 M435.6 187.86 C463.06 156.28, 490.51 124.69, 570.75 32.39 M435.6 187.86 C470.95 147.2, 506.3 106.53, 570.75 32.39 M441.24 187.47 C478.22 144.93, 515.2 102.39, 571.14 38.03 M441.24 187.47 C482.61 139.88, 523.97 92.3, 571.14 38.03 M446.23 187.83 C483.02 145.51, 519.81 103.19, 570.88 44.43 M446.23 187.83 C492.81 134.25, 539.38 80.67, 570.88 44.43 M451.87 187.43 C483.79 150.72, 515.7 114.01, 570.62 50.83 M451.87 187.43 C488.81 144.94, 525.75 102.45, 570.62 50.83 M456.86 187.79 C491.8 147.6, 526.73 107.42, 571.02 56.47 M456.86 187.79 C486.08 154.18, 515.3 120.57, 571.02 56.47 M462.5 187.4 C498.57 145.91, 534.64 104.42, 570.75 62.87 M462.5 187.4 C491.27 154.3, 520.04 121.2, 570.75 62.87 M467.49 187.76 C504.96 144.65, 542.43 101.54, 571.15 68.51 M467.49 187.76 C500.74 149.51, 533.98 111.27, 571.15 68.51 M473.13 187.36 C497.25 159.63, 521.36 131.89, 570.89 74.91 M473.13 187.36 C494.09 163.26, 515.04 139.16, 570.89 74.91 M478.12 187.72 C510.33 150.67, 542.53 113.63, 570.63 81.31 M478.12 187.72 C509.96 151.09, 541.81 114.46, 570.63 81.31 M483.76 187.33 C508.95 158.35, 534.14 129.37, 571.02 86.95 M483.76 187.33 C501.44 167, 519.11 146.66, 571.02 86.95 M488.75 187.69 C506.26 167.55, 523.77 147.4, 570.76 93.35 M488.75 187.69 C518.83 153.08, 548.92 118.48, 570.76 93.35 M493.74 188.05 C520.82 156.9, 547.9 125.75, 571.15 98.99 M493.74 188.05 C523.96 153.29, 554.18 118.52, 571.15 98.99 M499.38 187.65 C518.41 165.77, 537.43 143.88, 570.89 105.39 M499.38 187.65 C527.48 155.33, 555.58 123, 570.89 105.39 M504.37 188.01 C519.7 170.37, 535.04 152.73, 570.63 111.79 M504.37 188.01 C527.67 161.21, 550.97 134.41, 570.63 111.79 M510.01 187.62 C526.8 168.3, 543.59 148.99, 571.03 117.43 M510.01 187.62 C527.77 167.19, 545.53 146.76, 571.03 117.43 M515 187.98 C534.29 165.79, 553.58 143.59, 570.76 123.83 M515 187.98 C535.88 163.96, 556.76 139.94, 570.76 123.83 M520.64 187.58 C539.4 166.01, 558.15 144.44, 571.16 129.47 M520.64 187.58 C535.48 170.51, 550.32 153.44, 571.16 129.47 M525.63 187.94 C535.44 176.66, 545.25 165.37, 570.9 135.87 M525.63 187.94 C541.96 169.15, 558.3 150.36, 570.9 135.87 M531.27 187.55 C544.87 171.9, 558.48 156.26, 570.64 142.27 M531.27 187.55 C542.99 174.07, 554.7 160.6, 570.64 142.27 M536.26 187.91 C549.4 172.79, 562.54 157.68, 571.03 147.91 M536.26 187.91 C547.63 174.83, 559 161.75, 571.03 147.91 M541.9 187.52 C552.01 175.88, 562.13 164.25, 570.77 154.31 M541.9 187.52 C552.39 175.45, 562.88 163.39, 570.77 154.31 M546.89 187.88 C553.56 180.2, 560.23 172.53, 571.16 159.95 M546.89 187.88 C554.25 179.41, 561.6 170.95, 571.16 159.95 M552.53 187.48 C559.85 179.06, 567.18 170.63, 570.9 166.35 M552.53 187.48 C556.49 182.93, 560.45 178.37, 570.9 166.35 M557.52 187.84 C562.29 182.36, 567.06 176.87, 570.64 172.75 M557.52 187.84 C560.58 184.32, 563.64 180.8, 570.64 172.75 M563.16 187.45 C565.25 185.05, 567.33 182.65, 571.04 178.39 M563.16 187.45 C565.86 184.34, 568.56 181.23, 571.04 178.39" stroke="#b2f2bb" stroke-width="0.5" fill="none"></path><path d="M0 0 C121.22 0, 242.44 0, 568.97 0 M0 0 C164.3 0, 328.6 0, 568.97 0 M568.97 0 C568.97 60.43, 568.97 120.86, 568.97 186.72 M568.97 0 C568.97 53.24, 568.97 106.47, 568.97 186.72 M568.97 186.72 C349.73 186.72, 130.49 186.72, 0 186.72 M568.97 186.72 C381.6 186.72, 194.22 186.72, 0 186.72 M0 186.72 C0 123.26, 0 59.81, 0 0 M0 186.72 C0 124.43, 0 62.13, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(91.08545878266341 410.62101028311974) rotate(0 66.15234375 11.5)"><text x="0" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">cgroup module</text></g><g stroke-linecap="round" transform="translate(109.21805279071555 154.46154315655042) rotate(0 102.5 30)"><path d="M0 0 C76.31 0, 152.62 0, 205 0 M0 0 C60.02 0, 120.04 0, 205 0 M205 0 C205 17.63, 205 35.25, 205 60 M205 0 C205 17.11, 205 34.22, 205 60 M205 60 C150.16 60, 95.33 60, 0 60 M205 60 C142.29 60, 79.57 60, 0 60 M0 60 C0 47.33, 0 34.67, 0 0 M0 60 C0 42.71, 0 25.43, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(144.18875591571555 172.96154315655042) rotate(0 67.529296875 11.5)"><text x="67.529296875" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">isulad-&gt; main.c</text></g><g mask="url(#mask-Z2IlJidp5B5mEt1LY22zf)" stroke-linecap="round"><g transform="translate(208.85173473177133 216.65387197641223) rotate(0 -0.33793531837079627 90.40968941641856)"><path d="M0 0 C-0.14 36.52, -0.27 73.03, -0.68 180.82 M0 0 C-0.17 45.12, -0.34 90.24, -0.68 180.82" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(208.85173473177133 216.65387197641223) rotate(0 -0.33793531837079627 90.40968941641856)"><path d="M-10.83 152.59 C-8.78 158.29, -6.73 163.99, -0.68 180.82 M-10.83 152.59 C-8.3 159.63, -5.76 166.68, -0.68 180.82" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(208.85173473177133 216.65387197641223) rotate(0 -0.33793531837079627 90.40968941641856)"><path d="M9.69 152.67 C7.6 158.35, 5.5 164.04, -0.68 180.82 M9.69 152.67 C7.1 159.69, 4.52 166.72, -0.68 180.82" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask id="mask-Z2IlJidp5B5mEt1LY22zf"><rect x="0" y="0" fill="#fff" width="309.5276053685129" height="497.47325080924935"></rect><rect x="137.90833066340053" y="295.5635613928308" fill="#000" width="141.2109375" height="23" opacity="1"></rect></mask><g transform="translate(137.90833066340053 295.5635613928308) rotate(0 70.60546875 11.5)"><text x="70.60546875" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">cgroup_ops_init</text></g><g stroke-linecap="round" transform="translate(101.82307753274779 508.3165004206021) rotate(0 98 29)"><path d="M0 0 C40.3 0, 80.6 0, 196 0 M0 0 C39.68 0, 79.35 0, 196 0 M196 0 C196 17.87, 196 35.74, 196 58 M196 0 C196 17.81, 196 35.62, 196 58 M196 58 C141.93 58, 87.86 58, 0 58 M196 58 C119.63 58, 43.26 58, 0 58 M0 58 C0 38.27, 0 18.53, 0 0 M0 58 C0 42.53, 0 27.07, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(117.54768690774779 525.8165004206021) rotate(0 82.275390625 11.5)"><text x="82.275390625" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">cgroup_v1 module</text></g><g stroke-linecap="round" transform="translate(401.20519080528857 506.23076923076917) rotate(0 98 25)"><path d="M0 0 C48.4 0, 96.8 0, 196 0 M0 0 C52.22 0, 104.43 0, 196 0 M196 0 C196 18.17, 196 36.34, 196 50 M196 0 C196 15.98, 196 31.95, 196 50 M196 50 C119.73 50, 43.45 50, 0 50 M196 50 C123.78 50, 51.57 50, 0 50 M0 50 C0 34.31, 0 18.63, 0 0 M0 50 C0 37.76, 0 25.51, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(416.92980018028857 519.7307692307692) rotate(0 82.275390625 11.5)"><text x="82.275390625" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">cgroup_v2 module</text></g><g stroke-linecap="round"><g transform="translate(566.2947696692333 305.8498554667045) rotate(0 -98.53129481428007 54.070998441748415)"><path d="M0 0 C-72.92 40.02, -145.84 80.03, -197.06 108.14 M0 0 C-70.73 38.81, -141.45 77.62, -197.06 108.14" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(566.2947696692333 305.8498554667045) rotate(0 -98.53129481428007 54.070998441748415)"><path d="M-177.28 85.58 C-184.6 93.93, -191.92 102.28, -197.06 108.14 M-177.28 85.58 C-184.38 93.68, -191.48 101.78, -197.06 108.14" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(566.2947696692333 305.8498554667045) rotate(0 -98.53129481428007 54.070998441748415)"><path d="M-167.41 103.57 C-178.38 105.26, -189.35 106.95, -197.06 108.14 M-167.41 103.57 C-178.05 105.21, -188.7 106.85, -197.06 108.14" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(688.0098845775594 305.6465550352888) rotate(0 65.41268960241374 43.93665881792563)"><path d="M0 0 C29.75 19.98, 59.5 39.97, 130.83 87.87 M0 0 C42.07 28.26, 84.15 56.52, 130.83 87.87" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(688.0098845775594 305.6465550352888) rotate(0 65.41268960241374 43.93665881792563)"><path d="M101.7 80.67 C108.33 82.31, 114.95 83.95, 130.83 87.87 M101.7 80.67 C111.07 82.99, 120.43 85.3, 130.83 87.87" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(688.0098845775594 305.6465550352888) rotate(0 65.41268960241374 43.93665881792563)"><path d="M113.14 63.64 C117.17 69.15, 121.19 74.66, 130.83 87.87 M113.14 63.64 C118.83 71.43, 124.52 79.23, 130.83 87.87" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(734.6924015925484 398.69230769230774) rotate(0 123 30)"><path d="M0 0 C51.23 0, 102.47 0, 246 0 M0 0 C84.24 0, 168.48 0, 246 0 M246 0 C246 22.38, 246 44.76, 246 60 M246 0 C246 22.77, 246 45.53, 246 60 M246 60 C180.6 60, 115.2 60, 0 60 M246 60 C171.95 60, 97.91 60, 0 60 M0 60 C0 38.56, 0 17.11, 0 0 M0 60 C0 43.32, 0 26.65, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(788.7715031550484 417.19230769230774) rotate(0 68.9208984375 11.5)"><text x="68.9208984375" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">runtime module</text></g><g stroke-linecap="round"><g transform="translate(847.9580239569957 463.60901384450085) rotate(0 3.7916014027637033 104.80790931965728)"><path d="M0 0 C2.02 55.88, 4.04 111.75, 7.58 209.62 M0 0 C2.1 58.15, 4.21 116.29, 7.58 209.62" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(847.9580239569957 463.60901384450085) rotate(0 3.7916014027637033 104.80790931965728)"><path d="M-3.69 181.81 C-0.68 189.23, 2.32 196.64, 7.58 209.62 M-3.69 181.81 C-0.56 189.53, 2.56 197.24, 7.58 209.62" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(847.9580239569957 463.60901384450085) rotate(0 3.7916014027637033 104.80790931965728)"><path d="M16.82 181.07 C14.36 188.68, 11.89 196.29, 7.58 209.62 M16.82 181.07 C14.26 188.99, 11.69 196.91, 7.58 209.62" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(741.141995638666 683.0577882873695) rotate(0 123 29.5)"><path d="M0 0 C61.28 0, 122.55 0, 246 0 M0 0 C67 0, 134.01 0, 246 0 M246 0 C246 21.57, 246 43.14, 246 59 M246 0 C246 13.82, 246 27.63, 246 59 M246 59 C169.83 59, 93.66 59, 0 59 M246 59 C150.65 59, 55.31 59, 0 59 M0 59 C0 42.6, 0 26.21, 0 0 M0 59 C0 36.92, 0 14.83, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(844.688870638666 701.0577882873695) rotate(0 19.453125 11.5)"><text x="19.453125" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">runc</text></g><g stroke-linecap="round" transform="translate(360.61538461538487 150.39745154747584) rotate(0 114 26.5)"><path d="M0 0 C73.79 0, 147.58 0, 228 0 M0 0 C65.01 0, 130.01 0, 228 0 M228 0 C228 20.42, 228 40.85, 228 53 M228 0 C228 17.45, 228 34.91, 228 53 M228 53 C150.52 53, 73.03 53, 0 53 M228 53 C151.94 53, 75.87 53, 0 53 M0 53 C0 39.84, 0 26.68, 0 0 M0 53 C0 34.52, 0 16.05, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(418.47280649038487 165.39745154747584) rotate(0 56.142578125 11.5)"><text x="56.142578125" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">isula module</text></g><g stroke-linecap="round" transform="translate(10 107.66668231670661) rotate(0 520.0000000000003 250.25641808143044)"><path d="M0 0 C319.44 0, 638.88 0, 1040 0 M1040 0 C1040 153.69, 1040 307.37, 1040 500.51 M1040 500.51 C742.63 500.51, 445.26 500.51, 0 500.51 M0 500.51 C0 340.73, 0 180.94, 0 0" stroke="#1e1e1e" stroke-width="1.5" fill="none" stroke-dasharray="8 9"></path></g><g stroke-linecap="round"><g transform="translate(472.56413386418296 205.10259540264417) rotate(0 0 20.512812687800476)"><path d="M0 0 C0 12.05, 0 24.11, 0 41.03 M0 0 C0 11.7, 0 23.4, 0 41.03" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(472.56413386418296 205.10259540264417) rotate(0 0 20.512812687800476)"><path d="M-7.02 21.75 C-4.95 27.41, -2.89 33.08, 0 41.03 M-7.02 21.75 C-5.01 27.25, -3.01 32.74, 0 41.03" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(472.56413386418296 205.10259540264417) rotate(0 0 20.512812687800476)"><path d="M7.02 21.75 C4.95 27.41, 2.89 33.08, 0 41.03 M7.02 21.75 C5.01 27.25, 3.01 32.74, 0 41.03" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(257.0740559895836 417.0356324459415) rotate(0 98 29)"><path d="M0 0 C65.48 0, 130.97 0, 196 0 M0 0 C63.94 0, 127.88 0, 196 0 M196 0 C196 15.77, 196 31.53, 196 58 M196 0 C196 12.32, 196 24.64, 196 58 M196 58 C147.67 58, 99.34 58, 0 58 M196 58 C123.95 58, 51.9 58, 0 58 M0 58 C0 36.42, 0 14.84, 0 0 M0 58 C0 35.7, 0 13.39, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(267.2517903645836 434.5356324459415) rotate(0 87.822265625 11.5)"><text x="87.822265625" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">common cgroup api</text></g><g stroke-linecap="round"><g transform="translate(302.04162786372365 476.17288734790225) rotate(0 -36.3238555368913 12.234823288057385)"><path d="M0 0 C-21.71 7.31, -43.41 14.62, -72.65 24.47 M0 0 C-24.16 8.14, -48.31 16.27, -72.65 24.47" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(302.04162786372365 476.17288734790225) rotate(0 -36.3238555368913 12.234823288057385)"><path d="M-49.21 5.75 C-56.21 11.34, -63.21 16.94, -72.65 24.47 M-49.21 5.75 C-57 11.97, -64.8 18.2, -72.65 24.47" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(302.04162786372365 476.17288734790225) rotate(0 -36.3238555368913 12.234823288057385)"><path d="M-42.66 25.19 C-51.62 24.98, -60.58 24.76, -72.65 24.47 M-42.66 25.19 C-52.63 24.95, -62.6 24.71, -72.65 24.47" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(396.4073802806717 477.44310314906653) rotate(0 37.92595757378467 10.962953920717581)"><path d="M0 0 C18.86 5.45, 37.71 10.9, 75.85 21.93 M0 0 C16.62 4.8, 33.23 9.61, 75.85 21.93" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(396.4073802806717 477.44310314906653) rotate(0 37.92595757378467 10.962953920717581)"><path d="M45.92 23.95 C53.36 23.45, 60.8 22.95, 75.85 21.93 M45.92 23.95 C52.48 23.51, 59.03 23.07, 75.85 21.93" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(396.4073802806717 477.44310314906653) rotate(0 37.92595757378467 10.962953920717581)"><path d="M51.62 4.24 C57.64 8.64, 63.67 13.03, 75.85 21.93 M51.62 4.24 C56.93 8.11, 62.24 11.99, 75.85 21.93" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(279.5661335676041 685.5203469732791) rotate(0 123 29.5)"><path d="M0 0 C51.97 0, 103.94 0, 246 0 M0 0 C79.29 0, 158.58 0, 246 0 M246 0 C246 14.61, 246 29.22, 246 59 M246 0 C246 14.91, 246 29.81, 246 59 M246 59 C161.48 59, 76.96 59, 0 59 M246 59 C190.09 59, 134.19 59, 0 59 M0 59 C0 43.43, 0 27.85, 0 0 M0 59 C0 38.7, 0 18.4, 0 0" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(356.4284382551041 703.5203469732791) rotate(0 46.1376953125 11.5)"><text x="46.1376953125" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">cgroup file</text></g><g mask="url(#mask-EYY2S4Db98XZJRcvHx1vQ)" stroke-linecap="round"><g transform="translate(371.8052665912037 581.8665635115902) rotate(0 0.8604642600295591 49.47556254594039)"><path d="M0 0 C0.53 30.21, 1.05 60.42, 1.72 98.95 M0 0 C0.61 35.09, 1.22 70.19, 1.72 98.95" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(371.8052665912037 581.8665635115902) rotate(0 0.8604642600295591 49.47556254594039)"><path d="M-9.03 70.94 C-5.75 79.49, -2.47 88.04, 1.72 98.95 M-9.03 70.94 C-5.22 80.88, -1.4 90.81, 1.72 98.95" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(371.8052665912037 581.8665635115902) rotate(0 0.8604642600295591 49.47556254594039)"><path d="M11.49 70.59 C8.51 79.25, 5.53 87.91, 1.72 98.95 M11.49 70.59 C8.03 80.65, 4.56 90.71, 1.72 98.95" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask id="mask-EYY2S4Db98XZJRcvHx1vQ"><rect x="0" y="0" fill="#fff" width="473.52619511126284" height="780.817688603471"></rect><rect x="328.75948085123326" y="619.8421260575307" fill="#000" width="87.8125" height="23" opacity="1"></rect></mask><g transform="translate(328.75948085123326 619.8421260575305) rotate(0 43.906249999999986 11.499999999999972)"><text x="43.90625" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">read/write</text></g><g mask="url(#mask-sovtxKH081DyUEeId5jis)" stroke-linecap="round"><g transform="translate(740.141995638666 718.2353652610261) rotate(0 -106.78793103553097 0.6813763689311543)"><path d="M0 0 C-54.68 0.35, -109.36 0.7, -213.58 1.36 M0 0 C-56.56 0.36, -113.12 0.72, -213.58 1.36" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(740.141995638666 718.2353652610261) rotate(0 -106.78793103553097 0.6813763689311543)"><path d="M-185.45 -9.08 C-192.65 -6.4, -199.85 -3.73, -213.58 1.36 M-185.45 -9.08 C-192.9 -6.31, -200.35 -3.55, -213.58 1.36" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(740.141995638666 718.2353652610261) rotate(0 -106.78793103553097 0.6813763689311543)"><path d="M-185.32 11.44 C-192.55 8.86, -199.79 6.28, -213.58 1.36 M-185.32 11.44 C-192.8 8.77, -200.29 6.1, -213.58 1.36" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask id="mask-sovtxKH081DyUEeId5jis"><rect x="0" y="0" fill="#fff" width="1053.717857709728" height="819.5981179988885"></rect><rect x="589.447814603135" y="707.4167416299572" fill="#000" width="87.8125" height="23" opacity="1"></rect></mask><g transform="translate(589.447814603135 707.4167416299572) rotate(0 43.90625 11.500000000000028)"><text x="43.90625" y="0" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">read/write</text></g></svg>
\ No newline at end of file
--
2.34.1
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/taotao-sauce/src-iSulad.git
[email protected]:taotao-sauce/src-iSulad.git
taotao-sauce
src-iSulad
src-iSulad
master

搜索帮助