@pluve/logger-sdk 0.0.8 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,208 +1,146 @@
1
- # @pluve/logger-sdk 使用说明
1
+ # Logger SDK v2 说明文档
2
2
 
3
3
  ## 概览
4
4
 
5
- - 轻量级前端日志采集 SDK,支持浏览器与微信小程序
6
- - 传输优先级:Beacon(页面卸载可靠)→ Image(像素降级);小程序使用 wx.request
7
- - 支持:批量上报(默认关闭)、重试与指数退避、持久化队列、自动卸载刷新
8
- - 会话锁定:init 时生成并锁定 sessionId,destroy 前所有日志使用同一会话
5
+ - 跨环境支持:浏览器与微信小程序
6
+ - 采集与采样:开关、日志等级白名单、分级/来源/路径采样率
7
+ - 传输适配:Beacon、像素图 Image、微信 `wx.request`
8
+ - 批量与队列:批量阈值与定时器、队列持久化(localforage)
9
+ - 重试策略:可配置最大次数与指数退避
10
+ - 压缩能力:可选 gzip 压缩,优先使用浏览器 CompressionStream,回退 fflate.gzipSync
9
11
 
10
- ## 安装与引入
11
-
12
- - 安装:`yarn add @pluve/logger-sdk`
13
- - ESM:`import { LoggerSDK } from '@pluve/logger-sdk'`
14
- - UMD:构建后全局为 `LoggerSDK`
15
-
16
- ## 快速开始(单例 + init)
12
+ ## 快速开始
17
13
 
18
14
  ```ts
19
- import { LoggerSDK } from '@pluve/logger-sdk';
15
+ import { LoggerSDK } from './core/loggerSDK';
20
16
 
21
17
  const sdk = LoggerSDK.getInstance();
18
+
22
19
  sdk.init({
23
- endpoint: '/api/log',
24
- appId: 'web-shop',
25
- env: 'prod', // prod/stage/dev
20
+ // endpoint: 'https://logger.yfpharmacy.com/log', // 实际使用以 config 中 API 为准
21
+ appId: 'fe-vue-pc-seed-frontend',
22
+ env: 'develop',
23
+ logStage: 'develop',
26
24
  debug: true,
27
- // enableBatch: true, // 默认 false,如需开启批量
25
+ // 采集与性能
26
+ enableGzip: true,
27
+ enableBatch: true,
28
+ batchSize: 10,
29
+ batchInterval: 15000,
30
+ maxPixelUrlLen: 8192,
31
+ // 重试
32
+ enableRetry: true,
33
+ maxRetries: 3,
34
+ retryDelay: 1000,
35
+ retryBackoff: true,
36
+ // 身份与鉴权
37
+ userId: 'u-001',
38
+ storeCode: 's-001',
39
+ token: '<token>',
40
+ // 采样率(可选)
41
+ sampleRate: 1,
28
42
  });
29
43
 
30
- // 可选:设置用户与店铺编码,后续上报自动携带
31
- sdk.identify('user_123');
32
- sdk.setStoreCode('STORE_001');
33
-
34
- // 记录错误(推荐传入 Error,提高定位能力)
35
- await sdk.track({
36
- message: 'TypeError: Cannot read property',
37
- error: new Error('TypeError: Cannot read property'),
38
- traceId: 'trace-abc-123', // 可选
39
- logLevel: 'error', // 可选,默认 'info'
40
- });
41
-
42
- // 记录普通信息
43
- await sdk.track({
44
- message: 'User clicked submit',
45
- logLevel: 'info',
46
- });
47
- ```
48
-
49
- ## 事件数据结构(实际实现)
50
-
51
- ```ts
52
- {
53
- // 唯一日志标识:由 appId + UUID + 时间戳组成(非纯 v4)
54
- logId: "web-shop24f8d7ef-1ed4-41fc-8aa8-c1c01cfa5b291767079629320",
55
- traceId: "trace-123456", // 可选
56
- appId: "web-shop",
57
- stage: "prod", // prod/stage/dev
58
- level: "error", // info/warn/error/fatal
59
- message: "TypeError: ...",
60
- stack: "...", // 可选
61
- url: "https://...", // 当前页面
62
- userId: "123", // 可选(建议脱敏)
63
- frontendId: "session_xxx", // init 时锁定的会话标识(同 sessionId)
64
- tags: { // 环境标签(init 时收集)
65
- platform: "browser",
66
- browser: "Chrome",
67
- os: "macOS",
68
- screenWidth: 1920,
69
- screenHeight: 1080,
70
- language: "zh-CN"
71
- }
72
- }
73
- ```
74
-
75
- ## API 与行为
76
-
77
- ### 单例与初始化
78
-
79
- - `LoggerSDK.getInstance(): LoggerSDK` 获取全局唯一实例
80
- - `init(options: SDKOptions)` 初始化、锁定 `sessionId`、收集环境标签
81
- - `new LoggerSDK(options?: SDKOptions)` 构造时传入 options 会自动 init
82
-
83
- ### SDKOptions(实际默认值)
84
-
85
- ```ts
86
- interface SDKOptions {
87
- endpoint: string; // 必填
88
- appId: string; // 必填
89
- env?: 'prod' | 'stage' | 'dev'; // 默认 'dev'
90
- debug?: boolean; // 默认 false
91
- pixelParam?: string; // 默认 'data'
92
- maxPixelUrlLen?: number; // 默认 4096
93
- enableGzip?: boolean; // 默认 true(传输适配器内部处理)
94
- enableBatch?: boolean; // 默认 false(需显式开启)
95
- batchSize?: number; // 默认 10
96
- batchInterval?: number; // 默认 5000 ms
97
- maxQueueSize?: number; // 默认 100
98
- enableStorage?: boolean; // 默认 true(队列持久化)
99
- storagePrefix?: string; // 默认 'logger_sdk'
100
- enableRetry?: boolean; // 默认 true
101
- maxRetries?: number; // 默认 3
102
- retryDelay?: number; // 默认 1000 ms
103
- retryBackoff?: boolean; // 默认 true(指数退避 + 0-30% 抖动,上限 30s)
104
- }
105
- ```
106
-
107
- ### 事件上报
108
-
109
- - `track(options: TrackOptions)`
110
- - `message: string`(必填)
111
- - `error?: Error`(推荐在错误场景传入)
112
- - `traceId?: string`
113
- - `logLevel?: 'info' | 'warn' | 'error' | 'fatal'`(默认 'info')
114
- - `logId` 由 `appId + UUID + now()` 组成,保证唯一
115
- - `identify(userId: string)` 设置用户标识(自动随事件上报)
116
- - `setStoreCode(storeCode: string)` 设置店铺编码(自动随事件上报)
117
- - `flush()` 在批量开启时立即上报队列内容
118
- - `destroy()` 停止定时器与重试,刷新队列,清理单例并重置会话锁定
119
-
120
- ### 自动采集
121
-
122
- - 浏览器:visibilitychange/pagehide/beforeunload 触发 `flush()`,确保卸载时尽量发送
123
- - 微信小程序:建议在 App 生命周期中调用(SDK 内部识别环境)
124
-
125
- ## 传输适配器
126
-
127
- - 默认选择:
128
- - 小程序:`wx.request`
129
- - 浏览器:`navigator.sendBeacon` → 降级到 Image 像素
130
- - Content-Type:
131
- - Beacon:`application/json`;启用 gzip 时为 `application/json; charset=utf-8`
132
- - 小程序:`application/json`;启用 gzip 时为 `application/json; charset=utf-8`
133
- - Image:通过 query 拼接,受 URL 长度限制(默认 4096)
134
-
135
- ## 重试策略(实际实现)
136
-
137
- - 启用时对单事件与批量发送采用统一重试
138
- - 指数退避:`baseDelay * (2 ** (attempt - 1))`
139
- - 抖动:`delay * [0, 0.3]`,最大不超过 30000ms
140
- - 防重复:同一 taskId 重试中会拒绝重复执行
141
-
142
- ## 场景示例
143
-
144
- ```ts
145
- // 错误监控(浏览器)
146
- window.addEventListener('error', (event) => {
147
- sdk.track({
148
- message: event.message,
149
- error: event.error,
150
- logLevel: 'error',
151
- traceId: `err-${Date.now()}`,
152
- });
153
- });
154
-
155
- // Promise 未捕获
156
- window.addEventListener('unhandledrejection', (event) => {
157
- sdk.track({
158
- message: 'Unhandled Promise Rejection',
159
- error: new Error(String(event.reason)),
160
- logLevel: 'error',
161
- });
162
- });
163
-
164
- // 页面浏览
44
+ // 业务日志
165
45
  sdk.track({
166
- message: `Pageview: ${document.title}`,
167
- logLevel: 'info',
168
- traceId: `pv-${Date.now()}`,
46
+ message: '用户点击了购买按钮',
47
+ traceId: 'trace-xyz',
48
+ logLevel: 'INFO',
169
49
  });
50
+
51
+ // 动态设置
52
+ sdk.identify('u-002');
53
+ sdk.setStoreCode('s-002');
54
+ sdk.setStage('testing');
170
55
  ```
171
56
 
172
- ## 最佳实践与安全
173
-
174
- - 初始化后统一设置用户与店铺信息(`identify`/`setStoreCode`)
175
- - userId/message/stack/tags 建议在业务侧脱敏与裁剪
176
- - 避免在 tags 中上传 cookie/localStorage 原始值、账户/手机号/身份证等敏感信息
177
-
178
- ## 迁移指南(多实例 单例 + init
179
-
180
- - 统一在应用入口:`LoggerSDK.getInstance().init(opts)`
181
- - 其他模块直接使用该单例进行 `track/trace/flush`
182
- - 会话边界:登出/身份切换/子应用卸载时调用 `destroy()`,随后重新 `init()`
183
-
184
- ## 发布与类型构建
185
-
186
- - 多产物发布
187
- - ESM:dist/esm(现代浏览器与打包器)
188
- - CJS:dist/cjs(Node/工具链)
189
- - UMD(压缩):dist/umd/logger-sdk.min.js(CDN/script 标签,全局 `LoggerSDK`)
190
- - 包入口与导出
191
- - main 指向 CJS,module 指向 ESM,browser 指向 ESM
192
- - exports 同时声明 import/require/default,现代打包器自动选择
193
- - unpkg/jsdelivr 指向 UMD 压缩产物
194
- - tsconfig 策略
195
- - tsconfig.base.json:通用编译选项(target、module、lib、skipLibCheck 等)
196
- - tsconfig.json:仅类型检查(noEmit: true)
197
- - tsconfig.types.json:仅声明构建(emitDeclarationOnly,declarationDir: dist/types
198
- - 脚本
199
- - 类型检查:`yarn typecheck`
200
- - 声明构建:`yarn build-types`
201
- - 代码产物:`yarn build`
202
- - 使用建议
203
- - CDN:`https://unpkg.com/@pluve/logger-sdk/dist/umd/logger-sdk.min.js`,全局变量 `LoggerSDK`
204
- - 打包器:优先使用 ESM(import { LoggerSDK } from '@pluve/logger-sdk'
205
-
206
- ## 其他
207
-
208
- 生成 mermaid 图:`yarn generate-mermaid`
57
+ ## 配置项(节选)
58
+
59
+ - enableGzip:是否启用 gzip 压缩(默认 true)
60
+ - enableBatch:是否启用批量上报(默认需显式开启)
61
+ - batchSize:批量阈值(默认 10)
62
+ - batchInterval:批量定时器间隔(默认 15000ms)
63
+ - maxPixelUrlLen:像素图 URL 最大长度(默认 8192
64
+ - enableStorage:队列持久化开关(默认 true)
65
+ - enableRetry/maxRetries/retryDelay/retryBackoff:重试相关配置
66
+ - sampleRate/levelSampleRate/sourceSampleRate/pathSampleRate:采样配置
67
+
68
+ 详细定义参考类型文件:[sdkOptions.ts](src/pages/logger-sdk-tester/logger-sdk-v2/types/sdkOptions.ts).
69
+
70
+ ## 压缩实现
71
+
72
+ - gzipCompress(data)
73
+ - 浏览器支持 CompressionStream 时,流式 gzip 压缩,再转 Base64 字符串
74
+ - 不支持时,回退到 fflate.gzipSync(默认压缩级别),转 Base64
75
+ - 返回值为 Base64 字符串,适用于传输(像素图 URL/JSON 体)
76
+ - 代码参考:[compression.ts](src/pages/logger-sdk-tester/logger-sdk-v2/compress/compression.ts).
77
+ - 备注:当前默认压缩级别,无级别可调参数暴露;如需级别控制可在 fflate 路径引入配置。
78
+
79
+ ## 传输适配
80
+
81
+ - TransportAdapter 根据环境选择传输器:
82
+ - 微信:WechatTransport(wx.request POST,支持 gzip
83
+ - 浏览器:优先 BeaconTransport(sendBeacon Blob),否则 PixelImageTransport(Image GET)
84
+ - WechatTransport
85
+ - 请求体字符串化 safeStringify
86
+ - enableGzip 时使用 gzipCompress 生成 Base64,Content-Type 设为 `application/json; charset=utf-8`
87
+ - PixelImageTransport
88
+ - 字符串化 items,enableGzip 时压缩为 Base64,URL 参数附带 `gzip=1`
89
+ - 构造像素上报 URL(含 appId、appStage、items、cacheBuster
90
+ - URL 超长打印警告
91
+ - BeaconTransport
92
+ - 使用 Blob 指定 Content-Type,通过 `navigator.sendBeacon` 发送
93
+
94
+ 代码参考:
95
+
96
+ - 适配器选择:[transportAdapter.ts](src/pages/logger-sdk-tester/logger-sdk-v2/transport/transportAdapter.ts)
97
+ - WeChat:[wechatTransport.ts](src/pages/logger-sdk-tester/logger-sdk-v2/transport/wechatTransport.ts)
98
+ - Pixel Image:[pixelImageTransport.ts](src/pages/logger-sdk-tester/logger-sdk-v2/transport/pixelImageTransport.ts)
99
+ - Beacon:[beaconTransport.ts](src/pages/logger-sdk-tester/logger-sdk-v2/transport/beaconTransport.ts)
100
+
101
+ ## 批量与队列
102
+
103
+ - 启用批量后,事件入队,当队列大小达到 batchSize 或定时器触发时 flush
104
+ - flush:按 appId|stage 分组与分块(最多 200/块),批量发送成功后出队
105
+ - 队列持久化:localforage 存储,页面刷新/卸载可恢复
106
+ - 页面事件触发 flush:visibilitychange(hidden)、pagehide、beforeunload
107
+ - 代码参考:
108
+ - [queueManager.ts](src/pages/logger-sdk-tester/logger-sdk-v2/core/queueManager.ts)
109
+ - [loggerSDK.ts(flush/sendBatch)](src/pages/logger-sdk-tester/logger-sdk-v2/core/loggerSDK.ts#L452-L485)
110
+
111
+ ## 重试策略
112
+
113
+ - 单个事件 sendEvent 与批量 sendBatch 均支持 executeWithRetry
114
+ - 可配置最大次数、基础延迟、指数退避
115
+ - 代码参考:[retryManager.ts](src/pages/logger-sdk-tester/logger-sdk-v2/core/retryManager.ts)
116
+
117
+ ## 采样与开关
118
+
119
+ - 后端注册返回:
120
+ - collectSwitch:采集开关(0 关闭)
121
+ - collectLogLevel:采集日志等级白名单
122
+ - samplingRate:全局采样率
123
+ - 前端 shouldSend:
124
+ - 综合 level/source/path/global 采样率
125
+ - 基于 seed 哈希概率决定是否发送
126
+ - 参考:
127
+ - [loggerSDK.ts(shouldSend)](src/pages/logger-sdk-tester/logger-sdk-v2/core/loggerSDK.ts#L348-L411)
128
+ - [api.ts](src/pages/logger-sdk-tester/logger-sdk-v2/types/api.ts)
129
+
130
+ ## 数据格式
131
+
132
+ - LogEvent:标准化日志格式(logId/seq/appId/stage/level/traceId/frontendId/url/location/message/throwable/userId/storeCode/tags)
133
+ - 类型参考:[logEvent.ts](src/pages/logger-sdk-tester/logger-sdk-v2/types/logEvent.ts)
134
+ - ReportData:上报批次(appId/appStage/items[])
135
+
136
+ ## 限制与注意
137
+
138
+ - Beacon:浏览器与网络环境兼容性依赖,失败仅打印不抛出
139
+ - 像素图:URL 长度受限;压缩可显著降低长度但 Base64 会比二进制略增
140
+ - 压缩:CompressionStream 不提供压缩级别参数;fflate 同步压缩适合小批量数据
141
+ - 安全:不要在日志中包含敏感数据(token、密码、隐私信息等)
142
+
143
+ ## 流程图
144
+
145
+ - 完整 Mermaid 流程图见文件:
146
+ - [logger-sdk.mermaid](src/pages/logger-sdk-tester/logger-sdk-v2/logger-sdk.mermaid)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pluve/logger-sdk",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "description": "logger sdk",
5
5
  "keywords": [
6
6
  "logger"
@@ -11,18 +11,26 @@
11
11
  "main": "dist/cjs/index.js",
12
12
  "module": "dist/esm/index.js",
13
13
  "browser": "dist/esm/index.js",
14
- "types": "dist/index.d.ts",
14
+ "types": "dist/types/index.d.ts",
15
15
  "exports": {
16
16
  ".": {
17
+ "types": "./dist/types/index.d.ts",
17
18
  "import": "./dist/esm/index.js",
18
19
  "require": "./dist/cjs/index.js",
19
20
  "default": "./dist/esm/index.js"
20
21
  }
21
22
  },
23
+ "typesVersions": {
24
+ "*": {
25
+ "index": ["dist/types/index.d.ts"],
26
+ "*": ["dist/types/*"]
27
+ }
28
+ },
22
29
  "unpkg": "dist/umd/logger-sdk.min.js",
23
30
  "jsdelivr": "dist/umd/logger-sdk.min.js",
24
31
  "directories": {
25
- "dist": "dist"
32
+ "dist": "dist",
33
+ "types": "dist/types"
26
34
  },
27
35
  "files": [
28
36
  "dist/*"
@@ -39,7 +47,7 @@
39
47
  "init-install": "yarn install",
40
48
  "build-types": "tsc -p tsconfig.types.json",
41
49
  "typecheck": "tsc -p tsconfig.json",
42
- "build": "father build",
50
+ "build": "yarn build-types && father build",
43
51
  "test": "vitest run",
44
52
  "test:watch": "vitest",
45
53
  "test:coverage": "vitest run --coverage",
@@ -1,84 +0,0 @@
1
- flowchart TD
2
- A[初始化 SDK] --> B[设置选项(批量/重试/gzip/自动采集)]
3
- B --> C{启用批量?}
4
- C -->|是| D[创建队列管理器并加载存储]
5
- C -->|否| E[跳过队列管理器]
6
- B --> F{启用重试?}
7
- F -->|是| G[创建重试管理器]
8
- F -->|否| H[跳过重试管理器]
9
- B --> I[选择传输适配器]
10
- I --> J{运行环境}
11
- J -->|微信小程序| K[WechatTransport]
12
- J -->|浏览器| L{支持 Beacon?}
13
- L -->|是| M[BeaconTransport]
14
- L -->|否| N[PixelImageTransport]
15
- B --> O[生成会话ID]
16
- B --> P[收集环境标签]
17
- B --> Q[注册 SDK]
18
- Q --> R[接收初始化数据: 开关/等级/采样率]
19
- R --> S{启用批量?}
20
- S -->|是| T[启动批量定时器]
21
- R --> U[挂载卸载/可见性事件处理]
22
- U --> V{enableAutoCapture?}
23
- V -->|是| V1[按 autoCapture: 注册 js/promise/resource/wechat]
24
- V -->|否| V2[跳过自动采集]
25
-
26
- subgraph 采集与上报
27
- W[调用 track 或自动采集] --> X{已初始化且未关闭?}
28
- X -->|否| X1[跳过]
29
- X -->|是| X2{3秒去重窗口?}
30
- X2 -->|重复| X3[跳过]
31
- X2 -->|非重复| Y{shouldSend 采样?}
32
- Y -->|否| Y1[采样丢弃]
33
- Y -->|是| Z[构建 LogEvent]
34
- Z --> AA{启用批量?}
35
- AA -->|是| AB[enqueue 入队]
36
- AB --> AC{队列达到批量阈值?}
37
- AC -->|是| AD[flush 刷新]
38
- AC -->|否| AE[等待定时器/下一次触发]
39
- AA -->|否| AF[sendEvent 直接发送]
40
- end
41
-
42
- subgraph 批量刷新
43
- AD --> AG[peek 读取待发事件]
44
- AG --> AH[sendBatch 批量发送]
45
- AH --> AI[按 appId & stage 分组并分块]
46
- AI --> AJ[transporter.send(并发收集)]
47
- AJ --> AK[dequeue 成功后出队]
48
- end
49
-
50
- subgraph 传输细节
51
- K --> K1[字符串化; 启用 gzip 时压缩成 Base64; wx.request POST]
52
- M --> M1{启用 gzip? 且满足批量条件}
53
- M1 -->|是| M2[压缩 items 为 Base64 字符串; 替换 body 为 「...payload, items: Base64」; 设置 Content-Type]
54
- M1 -->|否| M3[直接 JSON body; Blob 包裹; sendBeacon POST]
55
- N --> N1[字符串化 items; gzip: Base64 / btoa / encodeURIComponent 回退; Image GET]
56
- end
57
-
58
- subgraph 压缩流程
59
- C1[gzipCompress(data)] --> C2{支持 CompressionStream?}
60
- C2 -->|是| C3[CompressionStream('gzip') 流式压缩后 Base64]
61
- C2 -->|否| C4[fflate.gzipSync + Base64.fromUint8Array]
62
- end
63
-
64
- subgraph 定时与卸载
65
- T --> T1[setInterval 周期性 flush]
66
- U --> U1[visibilitychange/pagehide/beforeunload 触发 flush]
67
- V1 --> U2[销毁时统一 off(js/promise/resource/wechat)]
68
- end
69
-
70
- subgraph 重试策略
71
- AF --> R1{启用重试?}
72
- R1 -->|是| R2[executeWithRetry(event.logId, sendFn)]
73
- R1 -->|否| R3[直接 sendFn]
74
- AH --> R4{启用重试?}
75
- R4 -->|是| R5[executeWithRetry(batchId, sendFn)]
76
- R4 -->|否| R6[直接 sendFn]
77
- end
78
-
79
- subgraph 存储兼容
80
- D --> D1{环境}
81
- D1 -->|浏览器| D2[动态 import localforage 使用 IndexedDB; 失败回退 localStorage]
82
- D2 --> D2a[如解析失败: 回退 globalThis.localforage]
83
- D1 -->|微信小程序| D3[使用 wx.storage 同步 API]
84
- end
@@ -1 +0,0 @@
1
- <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 5231.60546875 3178.265625" style="max-width: 5231.61px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span,#my-svg p{color:#333;}#my-svg .label text,#my-svg span,#my-svg p{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .flowchart-label text{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .node .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:#e8e8e8;text-align:center;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span,#my-svg p{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"><g id="存储兼容" class="cluster default flowchart-label"><rect height="1070.859375" width="787.55078125" y="1032.65625" x="0" ry="0" rx="0" style=""/><g transform="translate(361.775390625, 1032.65625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">存储兼容</span></div></foreignObject></g></g><g id="重试策略" class="cluster default flowchart-label"><rect height="280.875" width="1034.93359375" y="2769.390625" x="3861.875" ry="0" rx="0" style=""/><g transform="translate(4347.341796875, 2769.390625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">重试策略</span></div></foreignObject></g></g><g id="定时与卸载" class="cluster default flowchart-label"><rect height="1081.78125" width="684.515625" y="1304.609375" x="1281.078125" ry="0" rx="0" style=""/><g transform="translate(1583.3359375, 1304.609375)" class="cluster-label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">定时与卸载</span></div></foreignObject></g></g><g id="传输细节" class="cluster default flowchart-label"><rect height="838.640625" width="1557.00390625" y="1547.75" x="2228.734375" ry="0" rx="0" style=""/><g transform="translate(2975.236328125, 1547.75)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">传输细节</span></div></foreignObject></g></g><g id="批量刷新" class="cluster default flowchart-label"><rect height="591.875" width="298.796875" y="2570.390625" x="4916.80859375" ry="0" rx="0" style=""/><g transform="translate(5034.20703125, 2570.390625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">批量刷新</span></div></foreignObject></g></g><g id="采集与上报" class="cluster default flowchart-label"><rect height="2520.390625" width="1314.90625" y="0" x="3836.46484375" ry="0" rx="0" style=""/><g transform="translate(4453.91796875, 0)" class="cluster-label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">采集与上报</span></div></foreignObject></g></g></g><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-B" id="L-A-B-0" d="M2406.23,284.258L2406.23,325.467C2406.23,366.677,2406.23,449.096,2406.23,505.996C2406.23,562.895,2406.23,594.274,2406.23,609.964L2406.23,625.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-C" id="L-B-C-0" d="M2259.59,660.185L1990.397,679.886C1721.204,699.587,1182.819,738.989,913.701,765.922C644.582,792.856,644.731,807.321,644.805,814.554L644.879,821.786"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-D" id="L-C-D-0" d="M613.211,917.238L598.665,930.475C584.119,943.711,555.026,970.184,540.48,989.42C525.934,1008.656,525.934,1020.656,525.934,1041.436C525.934,1062.215,525.934,1091.774,525.934,1106.553L525.934,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-E" id="L-C-E-0" d="M686.911,906.984L720.101,921.929C753.291,936.874,819.671,966.765,852.861,987.711C886.051,1008.656,886.051,1020.656,886.051,1041.436C886.051,1062.215,886.051,1091.774,886.051,1106.553L886.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-F" id="L-B-F-0" d="M2259.59,665.096L2082.577,683.978C1905.565,702.861,1551.54,740.626,1374.602,766.741C1197.664,792.856,1197.813,807.321,1197.887,814.554L1197.961,821.786"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-F LE-G" id="L-F-G-0" d="M1164.378,915.324L1147.49,928.879C1130.603,942.435,1096.827,969.545,1079.939,989.101C1063.051,1008.656,1063.051,1020.656,1063.051,1041.436C1063.051,1062.215,1063.051,1091.774,1063.051,1106.553L1063.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-F LE-H" id="L-F-H-0" d="M1215.105,931.871L1219.263,942.669C1223.421,953.466,1231.736,975.061,1235.893,991.859C1240.051,1008.656,1240.051,1020.656,1240.051,1041.436C1240.051,1062.215,1240.051,1091.774,1240.051,1106.553L1240.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-I" id="L-B-I-0" d="M2507.669,667.953L2608.594,686.359C2709.519,704.766,2911.369,741.578,3012.294,774.207C3113.219,806.835,3113.219,835.279,3113.219,849.501L3113.219,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-I LE-J" id="L-I-J-0" d="M3113.219,906.023L3113.219,921.129C3113.219,936.234,3113.219,966.445,3113.219,987.551C3113.219,1008.656,3113.219,1020.656,3113.294,1034.936C3113.369,1049.215,3113.52,1065.774,3113.595,1074.054L3113.671,1082.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-J LE-K" id="L-J-K-0" d="M3065.049,1154.964L2965.735,1173.905C2866.421,1192.845,2667.793,1230.727,2568.478,1255.668C2469.164,1280.609,2469.164,1292.609,2469.164,1314.954C2469.164,1337.299,2469.164,1369.99,2469.164,1404.513C2469.164,1439.036,2469.164,1475.393,2469.164,1499.572C2469.164,1523.75,2469.164,1535.75,2469.164,1558.295C2469.164,1580.84,2469.164,1613.93,2469.164,1630.475L2469.164,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-J LE-L" id="L-J-L-0" d="M3147.309,1170.043L3169.946,1186.471C3192.583,1202.898,3237.858,1235.754,3260.495,1258.182C3283.133,1280.609,3283.133,1292.609,3283.199,1301.976C3283.265,1311.343,3283.397,1318.077,3283.463,1321.444L3283.529,1324.81"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-L LE-M" id="L-L-M-0" d="M3231.295,1423.913L3194.046,1438.552C3156.797,1453.192,3082.299,1482.471,3045.05,1503.11C3007.801,1523.75,3007.801,1535.75,3007.801,1558.295C3007.801,1580.84,3007.801,1613.93,3007.801,1630.475L3007.801,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-L LE-N" id="L-L-N-0" d="M3329.255,1430.627L3351.784,1444.148C3374.312,1457.668,3419.369,1484.709,3441.897,1504.23C3464.426,1523.75,3464.426,1535.75,3464.426,1558.295C3464.426,1580.84,3464.426,1613.93,3464.426,1630.475L3464.426,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-O" id="L-B-O-0" d="M2552.871,665.374L2726.365,684.21C2899.858,703.046,3246.845,740.718,3420.339,773.777C3593.832,806.835,3593.832,835.279,3593.832,849.501L3593.832,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-P" id="L-B-P-0" d="M2552.871,663.566L2751.72,682.703C2950.569,701.841,3348.267,740.116,3547.116,773.475C3745.965,806.835,3745.965,835.279,3745.965,849.501L3745.965,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-Q" id="L-B-Q-0" d="M2274.309,667.953L2143.057,686.359C2011.804,704.766,1749.298,741.578,1618.046,774.207C1486.793,806.835,1486.793,835.279,1486.793,849.501L1486.793,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Q LE-R" id="L-Q-R-0" d="M1486.793,906.023L1486.793,921.129C1486.793,936.234,1486.793,966.445,1486.793,987.551C1486.793,1008.656,1486.793,1020.656,1486.793,1041.436C1486.793,1062.215,1486.793,1091.774,1486.793,1106.553L1486.793,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R LE-S" id="L-R-S-0" d="M1441.598,1163.633L1398.855,1181.129C1356.112,1198.625,1270.626,1233.617,1227.883,1257.113C1185.141,1280.609,1185.141,1292.609,1185.212,1303.998C1185.284,1315.387,1185.427,1326.165,1185.499,1331.554L1185.57,1336.943"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-S LE-T" id="L-S-T-0" d="M1226.566,1423.192L1256.838,1437.951C1287.109,1452.711,1347.652,1482.231,1377.924,1502.99C1408.195,1523.75,1408.195,1535.75,1408.195,1558.045C1408.195,1580.34,1408.195,1612.93,1408.195,1629.225L1408.195,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R LE-U" id="L-R-U-0" d="M1528.432,1163.633L1567.812,1181.129C1607.192,1198.625,1685.951,1233.617,1725.331,1257.113C1764.711,1280.609,1764.711,1292.609,1764.711,1310.988C1764.711,1329.366,1764.711,1354.123,1764.711,1366.501L1764.711,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-U LE-V" id="L-U-V-0" d="M1782.064,1421.18L1796.223,1436.275C1810.383,1451.37,1838.701,1481.56,1852.86,1502.655C1867.02,1523.75,1867.02,1535.75,1894.148,1556.118C1921.276,1576.487,1975.533,1605.223,2002.661,1619.592L2029.79,1633.96"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V LE-V1" id="L-V-V1-0" d="M2027.259,1695.986L1979.458,1713.637C1931.657,1731.288,1836.055,1766.589,1788.254,1806.325C1740.453,1846.061,1740.453,1890.232,1740.453,1912.318L1740.453,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V LE-V2" id="L-V-V2-0" d="M2097.664,1766.391L2097.581,1772.307C2097.497,1778.224,2097.331,1790.057,2097.247,1818.059C2097.164,1846.061,2097.164,1890.232,2097.164,1912.318L2097.164,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-W LE-X" id="L-W-X-0" d="M4446.039,284.258L4446.039,325.467C4446.039,366.677,4446.039,449.096,4446.105,493.673C4446.171,538.249,4446.303,544.983,4446.369,548.35L4446.435,551.717"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X LE-X1" id="L-X-X1-0" d="M4372.172,668.523L4298.424,686.834C4224.676,705.146,4077.18,741.768,4003.432,774.302C3929.684,806.835,3929.684,835.279,3929.684,849.501L3929.684,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X LE-X2" id="L-X-X2-0" d="M4480.229,709.201L4486.75,720.733C4493.271,732.264,4506.313,755.327,4512.906,772.059C4519.498,788.791,4519.64,799.191,4519.712,804.391L4519.783,809.591"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X2 LE-X3" id="L-X2-X3-0" d="M4459.483,900.783L4383.402,916.762C4307.322,932.741,4155.161,964.699,4079.08,986.677C4003,1008.656,4003,1020.656,4003,1041.436C4003,1062.215,4003,1091.774,4003,1106.553L4003,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X2 LE-Y" id="L-X2-Y-0" d="M4550.898,930.114L4559.056,941.204C4567.213,952.295,4583.529,974.475,4591.686,991.566C4599.844,1008.656,4599.844,1020.656,4599.91,1030.023C4599.976,1039.39,4600.108,1046.124,4600.174,1049.49L4600.24,1052.857"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Y LE-Y1" id="L-Y-Y1-0" d="M4529.962,1162.728L4456.883,1180.375C4383.804,1198.022,4237.646,1233.316,4164.567,1256.962C4091.488,1280.609,4091.488,1292.609,4091.488,1310.988C4091.488,1329.366,4091.488,1354.123,4091.488,1366.501L4091.488,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Y LE-Z" id="L-Y-Z-0" d="M4601.561,1231.892L4601.565,1238.012C4601.569,1244.131,4601.578,1256.37,4601.582,1268.49C4601.586,1280.609,4601.586,1292.609,4601.586,1310.988C4601.586,1329.366,4601.586,1354.123,4601.586,1366.501L4601.586,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Z LE-AA" id="L-Z-AA-0" d="M4601.586,1421.18L4601.586,1436.275C4601.586,1451.37,4601.586,1481.56,4601.586,1502.655C4601.586,1523.75,4601.586,1535.75,4601.662,1551.055C4601.738,1566.361,4601.89,1584.972,4601.966,1594.277L4602.043,1603.583"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AA LE-AB" id="L-AA-AB-0" d="M4646.429,1686.414L4697.998,1705.66C4749.567,1724.907,4852.706,1763.399,4904.275,1804.73C4955.844,1846.061,4955.844,1890.232,4955.844,1912.318L4955.844,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AB LE-AC" id="L-AB-AC-0" d="M4955.844,1976.703L4955.844,1997.839C4955.844,2018.974,4955.844,2061.245,4955.844,2088.38C4955.844,2115.516,4955.844,2127.516,4955.915,2138.716C4955.986,2149.916,4956.129,2160.316,4956.2,2165.516L4956.271,2170.716"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AC LE-AD" id="L-AC-AD-0" d="M4997.184,2321.051L5005.703,2331.941C5014.221,2342.831,5031.259,2364.611,5039.778,2381.501C5048.297,2398.391,5048.297,2410.391,5048.297,2421.507C5048.297,2432.624,5048.297,2442.857,5048.297,2447.974L5048.297,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AC LE-AE" id="L-AC-AE-0" d="M4891.788,2297.335L4857.754,2312.177C4823.721,2327.02,4755.653,2356.705,4721.62,2377.548C4687.586,2398.391,4687.586,2410.391,4687.586,2421.507C4687.586,2432.624,4687.586,2442.857,4687.586,2447.974L4687.586,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AA LE-AF" id="L-AA-AF-0" d="M4555.857,1684.529L4494.032,1704.089C4432.207,1723.649,4308.556,1762.77,4246.731,1808.382C4184.906,1853.995,4184.906,1906.099,4184.906,1956.37C4184.906,2006.641,4184.906,2055.078,4184.906,2085.297C4184.906,2115.516,4184.906,2127.516,4184.906,2155.005C4184.906,2182.495,4184.906,2225.474,4184.906,2266.62C4184.906,2307.766,4184.906,2347.078,4184.906,2372.734C4184.906,2398.391,4184.906,2410.391,4184.906,2421.507C4184.906,2432.624,4184.906,2442.857,4184.906,2447.974L4184.906,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AD LE-AG" id="L-AD-AG-0" d="M5048.297,2495.391L5048.297,2499.557C5048.297,2503.724,5048.297,2512.057,5048.297,2520.391C5048.297,2528.724,5048.297,2537.057,5048.297,2545.391C5048.297,2553.724,5048.297,2562.057,5048.297,2569.507C5048.297,2576.957,5048.297,2583.524,5048.297,2586.807L5048.297,2590.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AG LE-AH" id="L-AG-AH-0" d="M5048.297,2632.391L5048.297,2636.557C5048.297,2640.724,5048.297,2649.057,5048.297,2656.507C5048.297,2663.957,5048.297,2670.524,5048.297,2673.807L5048.297,2677.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AH LE-AI" id="L-AH-AI-0" d="M5055.914,2719.391L5057.629,2723.557C5059.345,2727.724,5062.776,2736.057,5064.491,2744.391C5066.207,2752.724,5066.207,2761.057,5066.207,2775.58C5066.207,2790.103,5066.207,2810.816,5066.207,2821.172L5066.207,2831.528"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AI LE-AJ" id="L-AI-AJ-0" d="M5066.207,2873.828L5066.207,2886.901C5066.207,2899.974,5066.207,2926.12,5066.207,2944.309C5066.207,2962.499,5066.207,2972.732,5066.207,2977.849L5066.207,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AJ LE-AK" id="L-AJ-AK-0" d="M5066.207,3025.266L5066.207,3029.432C5066.207,3033.599,5066.207,3041.932,5066.207,3050.266C5066.207,3058.599,5066.207,3066.932,5066.207,3074.382C5066.207,3081.832,5066.207,3088.399,5066.207,3091.682L5066.207,3094.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-K LE-K1" id="L-K-K1-0" d="M2469.164,1686.32L2469.164,1705.582C2469.164,1724.844,2469.164,1763.367,2469.164,1804.714C2469.164,1846.061,2469.164,1890.232,2469.164,1912.318L2469.164,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M LE-M1" id="L-M-M1-0" d="M3007.801,1686.32L3007.801,1705.582C3007.801,1724.844,3007.801,1763.367,3007.872,1787.829C3007.943,1812.291,3008.086,1822.691,3008.157,1827.891L3008.228,1833.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M1 LE-M2" id="L-M1-M2-0" d="M2928.896,1999.611L2895.037,2016.929C2861.178,2034.246,2793.46,2068.881,2759.601,2092.198C2725.742,2115.516,2725.742,2127.516,2725.742,2151.039C2725.742,2174.561,2725.742,2209.607,2725.742,2227.13L2725.742,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M1 LE-M3" id="L-M1-M3-0" d="M3088.063,1999.253L3122.325,2016.63C3156.586,2034.007,3225.11,2068.761,3259.371,2092.139C3293.633,2115.516,3293.633,2127.516,3293.633,2151.039C3293.633,2174.561,3293.633,2209.607,3293.633,2227.13L3293.633,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-N LE-N1" id="L-N-N1-0" d="M3464.426,1686.32L3464.426,1705.582C3464.426,1724.844,3464.426,1763.367,3464.426,1804.714C3464.426,1846.061,3464.426,1890.232,3464.426,1912.318L3464.426,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-T LE-T1" id="L-T-T1-0" d="M1408.195,1687.82L1408.195,1706.832C1408.195,1725.844,1408.195,1763.867,1408.195,1804.964C1408.195,1846.061,1408.195,1890.232,1408.195,1912.318L1408.195,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-U LE-U1" id="L-U-U1-0" d="M1758.169,1421.18L1752.832,1436.275C1747.494,1451.37,1736.82,1481.56,1731.482,1502.655C1726.145,1523.75,1726.145,1535.75,1726.145,1558.045C1726.145,1580.34,1726.145,1612.93,1726.145,1629.225L1726.145,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V1 LE-U2" id="L-V1-U2-0" d="M1740.453,1976.703L1740.453,1997.839C1740.453,2018.974,1740.453,2061.245,1740.453,2088.38C1740.453,2115.516,1740.453,2127.516,1740.453,2151.039C1740.453,2174.561,1740.453,2209.607,1740.453,2227.13L1740.453,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AF LE-R1" id="L-AF-R1-0" d="M4184.906,2495.391L4184.906,2499.557C4184.906,2503.724,4184.906,2512.057,4184.906,2520.391C4184.906,2528.724,4184.906,2537.057,4184.906,2545.391C4184.906,2553.724,4184.906,2562.057,4184.906,2573.474C4184.906,2584.891,4184.906,2599.391,4184.906,2613.891C4184.906,2628.391,4184.906,2642.891,4184.906,2657.391C4184.906,2671.891,4184.906,2686.391,4184.906,2700.891C4184.906,2715.391,4184.906,2729.891,4184.906,2741.307C4184.906,2752.724,4184.906,2761.057,4184.972,2768.591C4185.038,2776.124,4185.17,2782.858,4185.236,2786.225L4185.302,2789.592"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R1 LE-R2" id="L-R1-R2-0" d="M4150.539,2881.898L4134.659,2893.626C4118.779,2905.354,4087.018,2928.81,4071.138,2945.654C4055.258,2962.499,4055.258,2972.732,4055.258,2977.849L4055.258,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R1 LE-R3" id="L-R1-R3-0" d="M4220.274,2881.898L4235.987,2893.626C4251.701,2905.354,4283.128,2928.81,4298.841,2945.654C4314.555,2962.499,4314.555,2972.732,4314.555,2977.849L4314.555,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AH LE-R4" id="L-AH-R4-0" d="M5020.781,2719.391L5014.584,2723.557C5008.387,2727.724,4995.992,2736.057,4989.795,2744.391C4983.598,2752.724,4983.598,2761.057,4942.337,2777.127C4901.075,2793.197,4818.553,2817.003,4777.292,2828.906L4736.031,2840.809"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R4 LE-R5" id="L-R4-R5-0" d="M4649.492,2882.707L4634.613,2894.3C4619.734,2905.893,4589.977,2929.079,4575.098,2945.789C4560.219,2962.499,4560.219,2972.732,4560.219,2977.849L4560.219,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R4 LE-R6" id="L-R4-R6-0" d="M4717.61,2882.707L4732.322,2894.3C4747.034,2905.893,4776.458,2929.079,4791.171,2945.789C4805.883,2962.499,4805.883,2972.732,4805.883,2977.849L4805.883,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D LE-D1" id="L-D-D1-0" d="M525.934,1163.633L525.934,1181.129C525.934,1198.625,525.934,1233.617,525.934,1257.113C525.934,1280.609,525.934,1292.609,526.009,1307.154C526.085,1321.7,526.236,1338.79,526.311,1347.335L526.387,1355.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D1 LE-D2" id="L-D1-D2-0" d="M496.978,1415.724L459.12,1431.729C421.261,1447.733,345.545,1479.741,307.686,1501.746C269.828,1523.75,269.828,1535.75,269.828,1558.045C269.828,1580.34,269.828,1612.93,269.828,1629.225L269.828,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D2 LE-D2a" id="L-D2-D2a-0" d="M269.828,1687.82L269.828,1706.832C269.828,1725.844,269.828,1763.867,269.828,1804.964C269.828,1846.061,269.828,1890.232,269.828,1912.318L269.828,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D1 LE-D3" id="L-D1-D3-0" d="M548.959,1422.655L566.147,1437.504C583.334,1452.353,617.71,1482.052,634.898,1502.901C652.086,1523.75,652.086,1535.75,652.086,1558.045C652.086,1580.34,652.086,1612.93,652.086,1629.225L652.086,1645.52"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(525.93359375, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(886.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1063.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(1240.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(2469.1640625, 1402.6796875)" class="edgeLabel"><g transform="translate(-40, -11)" class="label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">微信小程序</span></div></foreignObject></g></g><g transform="translate(3283.1328125, 1268.609375)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">浏览器</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1740.453125, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(3929.68359375, 778.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4519.35546875, 778.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4003, 996.65625)" class="edgeLabel"><g transform="translate(-16, -11)" class="label"><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">重复</span></div></foreignObject></g></g><g transform="translate(4599.84375, 996.65625)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">非重复</span></div></foreignObject></g></g><g transform="translate(4091.48828125, 1268.609375)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1268.609375)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4955.84375, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(5048.296875, 2422.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4687.5859375, 2422.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(2725.7421875, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(3293.6328125, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4055.2578125, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4314.5546875, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4560.21875, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4805.8828125, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(269.828125, 1511.75)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">浏览器</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(652.0859375, 1511.75)" class="edgeLabel"><g transform="translate(-40, -11)" class="label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">微信小程序</span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(525.93359375, 1402.6796875)" data-id="D1" data-node="true" id="flowchart-D1-117" class="node default default flowchart-label"><polygon style="" transform="translate(-42,42)" class="label-container" points="42,0 84,-42 42,-84 0,-42"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">环境</span></div></foreignObject></g></g><g transform="translate(525.93359375, 1145.1328125)" data-id="D" data-node="true" id="flowchart-D-5" class="node default default flowchart-label"><rect height="37" width="207" y="-18.5" x="-103.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-96, -11)" style="" class="label"><rect/><foreignObject height="22" width="192"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">创建队列管理器并加载存储</span></div></foreignObject></g></g><g transform="translate(269.828125, 1669.3203125)" data-id="D2" data-node="true" id="flowchart-D2-119" class="node default default flowchart-label"><rect height="37" width="469.65625" y="-18.5" x="-234.828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-227.328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="454.65625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">动态 import localforage 使用 IndexedDB; 失败回退 localStorage</span></div></foreignObject></g></g><g transform="translate(269.828125, 1958.203125)" data-id="D2a" data-node="true" id="flowchart-D2a-121" class="node default default flowchart-label"><rect height="37" width="301.078125" y="-18.5" x="-150.5390625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-143.0390625, -11)" style="" class="label"><rect/><foreignObject height="22" width="286.078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">如解析失败: 回退 globalThis.localforage</span></div></foreignObject></g></g><g transform="translate(652.0859375, 1669.3203125)" data-id="D3" data-node="true" id="flowchart-D3-123" class="node default default flowchart-label"><rect height="37" width="194.859375" y="-18.5" x="-97.4296875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-89.9296875, -11)" style="" class="label"><rect/><foreignObject height="22" width="179.859375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">使用 wx.storage 同步 API</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2855.328125)" data-id="R1" data-node="true" id="flowchart-R1-105" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(4055.2578125, 3006.765625)" data-id="R2" data-node="true" id="flowchart-R2-107" class="node default default flowchart-label"><rect height="37" width="316.765625" y="-18.5" x="-158.3828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-150.8828125, -11)" style="" class="label"><rect/><foreignObject height="22" width="301.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">executeWithRetry(event.logId, sendFn)</span></div></foreignObject></g></g><g transform="translate(4314.5546875, 3006.765625)" data-id="R3" data-node="true" id="flowchart-R3-109" class="node default default flowchart-label"><rect height="37" width="101.828125" y="-18.5" x="-50.9140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-43.4140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="86.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 sendFn</span></div></foreignObject></g></g><g transform="translate(4683.05078125, 2855.328125)" data-id="R4" data-node="true" id="flowchart-R4-111" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(4560.21875, 3006.765625)" data-id="R5" data-node="true" id="flowchart-R5-113" class="node default default flowchart-label"><rect height="37" width="289.5" y="-18.5" x="-144.75" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-137.25, -11)" style="" class="label"><rect/><foreignObject height="22" width="274.5"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">executeWithRetry(batchId, sendFn)</span></div></foreignObject></g></g><g transform="translate(4805.8828125, 3006.765625)" data-id="R6" data-node="true" id="flowchart-R6-115" class="node default default flowchart-label"><rect height="37" width="101.828125" y="-18.5" x="-50.9140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-43.4140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="86.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 sendFn</span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1958.203125)" data-id="T1" data-node="true" id="flowchart-T1-99" class="node default default flowchart-label"><rect height="37" width="184.234375" y="-18.5" x="-92.1171875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-84.6171875, -11)" style="" class="label"><rect/><foreignObject height="22" width="169.234375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">setInterval 周期性 flush</span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1669.3203125)" data-id="T" data-node="true" id="flowchart-T-37" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启动批量定时器</span></div></foreignObject></g></g><g transform="translate(1726.14453125, 1669.3203125)" data-id="U1" data-node="true" id="flowchart-U1-101" class="node default default flowchart-label"><rect height="37" width="379.234375" y="-18.5" x="-189.6171875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-182.1171875, -11)" style="" class="label"><rect/><foreignObject height="22" width="364.234375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">visibilitychange/pagehide/beforeunload 触发 flush</span></div></foreignObject></g></g><g transform="translate(1764.7109375, 1402.6796875)" data-id="U" data-node="true" id="flowchart-U-39" class="node default default flowchart-label"><rect height="37" width="199.390625" y="-18.5" x="-99.6953125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-92.1953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="184.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">挂载卸载/可见性事件处理</span></div></foreignObject></g></g><g transform="translate(1740.453125, 2268.453125)" data-id="U2" data-node="true" id="flowchart-U2-103" class="node default default flowchart-label"><rect height="37" width="360.1875" y="-18.5" x="-180.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-172.59375, -11)" style="" class="label"><rect/><foreignObject height="22" width="345.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">销毁时统一 off(js/promise/resource/wechat)</span></div></foreignObject></g></g><g transform="translate(1740.453125, 1958.203125)" data-id="V1" data-node="true" id="flowchart-V1-43" class="node default default flowchart-label"><rect height="37" width="380.28125" y="-18.5" x="-190.140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-182.640625, -11)" style="" class="label"><rect/><foreignObject height="22" width="365.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">按 autoCapture: 注册 js/promise/resource/wechat</span></div></foreignObject></g></g><g transform="translate(1514.16015625, 17)" class="root"><g class="clusters"><g id="压缩流程" class="cluster default flowchart-label"><rect height="481.515625" width="787.296875" y="8" x="8" ry="0" rx="0" style=""/><g transform="translate(369.6484375, 8)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">压缩流程</span></div></foreignObject></g></g></g><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C1 LE-C2" id="L-C1-C2-0" d="M415.379,70L415.379,74.167C415.379,78.333,415.379,86.667,415.445,94.2C415.511,101.734,415.643,108.467,415.709,111.834L415.775,115.201"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C2 LE-C3" id="L-C2-C3-0" d="M350.514,290.651L329.354,307.462C308.194,324.273,265.875,357.894,244.715,379.822C223.555,401.749,223.555,411.982,223.555,417.099L223.555,422.216"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C2 LE-C4" id="L-C2-C4-0" d="M481.243,290.651L502.237,307.462C523.23,324.273,565.217,357.894,586.21,380.072C607.203,402.249,607.203,412.982,607.203,418.349L607.203,423.716"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(223.5546875, 391.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(607.203125, 391.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(415.37890625, 237.7578125)" data-id="C2" data-node="true" id="flowchart-C2-93" class="node default default flowchart-label"><polygon style="" transform="translate(-117.7578125,117.7578125)" class="label-container" points="117.7578125,0 235.515625,-117.7578125 117.7578125,-235.515625 0,-117.7578125"/><g transform="translate(-91.7578125, -11)" style="" class="label"><rect/><foreignObject height="22" width="183.515625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">支持 CompressionStream?</span></div></foreignObject></g></g><g transform="translate(415.37890625, 51.5)" data-id="C1" data-node="true" id="flowchart-C1-92" class="node default default flowchart-label"><rect height="37" width="176.421875" y="-18.5" x="-88.2109375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-80.7109375, -11)" style="" class="label"><rect/><foreignObject height="22" width="161.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">gzipCompress(data)</span></div></foreignObject></g></g><g transform="translate(223.5546875, 446.015625)" data-id="C3" data-node="true" id="flowchart-C3-95" class="node default default flowchart-label"><rect height="37" width="361.109375" y="-18.5" x="-180.5546875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-173.0546875, -11)" style="" class="label"><rect/><foreignObject height="22" width="346.109375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">CompressionStream('gzip') 流式压缩后 Base64</span></div></foreignObject></g></g><g transform="translate(607.203125, 446.015625)" data-id="C4" data-node="true" id="flowchart-C4-97" class="node default default flowchart-label"><rect height="34" width="306.1875" y="-17" x="-153.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-145.59375, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="291.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">fflate.gzipSync + Base64.fromUint8Array</span></div></foreignObject></g></g></g></g><g transform="translate(2469.1640625, 1958.203125)" data-id="K1" data-node="true" id="flowchart-K1-83" class="node default default flowchart-label"><rect height="37" width="410.859375" y="-18.5" x="-205.4296875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-197.9296875, -11)" style="" class="label"><rect/><foreignObject height="22" width="395.859375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">字符串化; 启用 gzip 时压缩成 Base64; wx.request POST</span></div></foreignObject></g></g><g transform="translate(2469.1640625, 1669.3203125)" data-id="K" data-node="true" id="flowchart-K-19" class="node default default flowchart-label"><rect height="34" width="135.484375" y="-17" x="-67.7421875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-60.2421875, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="120.484375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">WechatTransport</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1958.203125)" data-id="M1" data-node="true" id="flowchart-M1-85" class="node default default flowchart-label"><polygon style="" transform="translate(-120.3125,120.3125)" class="label-container" points="120.3125,0 240.625,-120.3125 120.3125,-240.625 0,-120.3125"/><g transform="translate(-94.3125, -11)" style="" class="label"><rect/><foreignObject height="22" width="188.625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用 gzip? 且满足批量条件</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1669.3203125)" data-id="M" data-node="true" id="flowchart-M-23" class="node default default flowchart-label"><rect height="34" width="133.875" y="-17" x="-66.9375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-59.4375, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="118.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">BeaconTransport</span></div></foreignObject></g></g><g transform="translate(2725.7421875, 2268.453125)" data-id="M2" data-node="true" id="flowchart-M2-87" class="node default default flowchart-label"><rect height="37" width="685.6875" y="-18.5" x="-342.84375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-335.34375, -11)" style="" class="label"><rect/><foreignObject height="22" width="670.6875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">压缩 items 为 Base64 字符串; 替换 body 为 「...payload, items: Base64」; 设置 Content-Type</span></div></foreignObject></g></g><g transform="translate(3293.6328125, 2268.453125)" data-id="M3" data-node="true" id="flowchart-M3-89" class="node default default flowchart-label"><rect height="37" width="342.546875" y="-18.5" x="-171.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-163.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="327.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 JSON body; Blob 包裹; sendBeacon POST</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1958.203125)" data-id="N1" data-node="true" id="flowchart-N1-91" class="node default default flowchart-label"><rect height="37" width="572.625" y="-18.5" x="-286.3125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-278.8125, -11)" style="" class="label"><rect/><foreignObject height="22" width="557.625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">字符串化 items; gzip: Base64 / btoa / encodeURIComponent 回退; Image GET</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1669.3203125)" data-id="N" data-node="true" id="flowchart-N-25" class="node default default flowchart-label"><rect height="34" width="159.53125" y="-17" x="-79.765625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.265625, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="144.53125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PixelImageTransport</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2613.890625)" data-id="AG" data-node="true" id="flowchart-AG-73" class="node default default flowchart-label"><rect height="37" width="150.265625" y="-18.5" x="-75.1328125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-67.6328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="135.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">peek 读取待发事件</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2700.890625)" data-id="AH" data-node="true" id="flowchart-AH-75" class="node default default flowchart-label"><rect height="37" width="157.15625" y="-18.5" x="-78.578125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-71.078125, -11)" style="" class="label"><rect/><foreignObject height="22" width="142.15625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">sendBatch 批量发送</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 2855.328125)" data-id="AI" data-node="true" id="flowchart-AI-77" class="node default default flowchart-label"><rect height="37" width="219.171875" y="-18.5" x="-109.5859375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-102.0859375, -11)" style="" class="label"><rect/><foreignObject height="22" width="204.171875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">按 appId &amp; stage 分组并分块</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 3006.765625)" data-id="AJ" data-node="true" id="flowchart-AJ-79" class="node default default flowchart-label"><rect height="37" width="228.796875" y="-18.5" x="-114.3984375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-106.8984375, -11)" style="" class="label"><rect/><foreignObject height="22" width="213.796875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">transporter.send(并发收集)</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 3118.765625)" data-id="AK" data-node="true" id="flowchart-AK-81" class="node default default flowchart-label"><rect height="37" width="161.3125" y="-18.5" x="-80.65625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-73.15625, -11)" style="" class="label"><rect/><foreignObject height="22" width="146.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">dequeue 成功后出队</span></div></foreignObject></g></g><g transform="translate(4446.0390625, 649.453125)" data-id="X" data-node="true" id="flowchart-X-47" class="node default default flowchart-label"><polygon style="" transform="translate(-92.9375,92.9375)" class="label-container" points="92.9375,0 185.875,-92.9375 92.9375,-185.875 0,-92.9375"/><g transform="translate(-66.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="133.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">已初始化且未关闭?</span></div></foreignObject></g></g><g transform="translate(4446.0390625, 265.7578125)" data-id="W" data-node="true" id="flowchart-W-46" class="node default default flowchart-label"><rect height="37" width="173.609375" y="-18.5" x="-86.8046875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-79.3046875, -11)" style="" class="label"><rect/><foreignObject height="22" width="158.609375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">调用 track 或自动采集</span></div></foreignObject></g></g><g transform="translate(3929.68359375, 887.5234375)" data-id="X1" data-node="true" id="flowchart-X1-49" class="node default default flowchart-label"><rect height="37" width="47" y="-18.5" x="-23.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过</span></div></foreignObject></g></g><g transform="translate(4519.35546875, 887.5234375)" data-id="X2" data-node="true" id="flowchart-X2-51" class="node default default flowchart-label"><polygon style="" transform="translate(-73.1328125,73.1328125)" class="label-container" points="73.1328125,0 146.265625,-73.1328125 73.1328125,-146.265625 0,-73.1328125"/><g transform="translate(-47.1328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="94.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">3秒去重窗口?</span></div></foreignObject></g></g><g transform="translate(4003, 1145.1328125)" data-id="X3" data-node="true" id="flowchart-X3-53" class="node default default flowchart-label"><rect height="37" width="47" y="-18.5" x="-23.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过</span></div></foreignObject></g></g><g transform="translate(4599.84375, 1145.1328125)" data-id="Y" data-node="true" id="flowchart-Y-55" class="node default default flowchart-label"><polygon style="" transform="translate(-87.4765625,87.4765625)" class="label-container" points="87.4765625,0 174.953125,-87.4765625 87.4765625,-174.953125 0,-87.4765625"/><g transform="translate(-61.4765625, -11)" style="" class="label"><rect/><foreignObject height="22" width="122.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">shouldSend 采样?</span></div></foreignObject></g></g><g transform="translate(4091.48828125, 1402.6796875)" data-id="Y1" data-node="true" id="flowchart-Y1-57" class="node default default flowchart-label"><rect height="37" width="79" y="-18.5" x="-39.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-32, -11)" style="" class="label"><rect/><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">采样丢弃</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1402.6796875)" data-id="Z" data-node="true" id="flowchart-Z-59" class="node default default flowchart-label"><rect height="37" width="116.765625" y="-18.5" x="-58.3828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-50.8828125, -11)" style="" class="label"><rect/><foreignObject height="22" width="101.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">构建 LogEvent</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1669.3203125)" data-id="AA" data-node="true" id="flowchart-AA-61" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(4955.84375, 1958.203125)" data-id="AB" data-node="true" id="flowchart-AB-63" class="node default default flowchart-label"><rect height="37" width="113.140625" y="-18.5" x="-56.5703125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-49.0703125, -11)" style="" class="label"><rect/><foreignObject height="22" width="98.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">enqueue 入队</span></div></foreignObject></g></g><g transform="translate(4955.84375, 2268.453125)" data-id="AC" data-node="true" id="flowchart-AC-65" class="node default default flowchart-label"><polygon style="" transform="translate(-92.9375,92.9375)" class="label-container" points="92.9375,0 185.875,-92.9375 92.9375,-185.875 0,-92.9375"/><g transform="translate(-66.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="133.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">队列达到批量阈值?</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2476.890625)" data-id="AD" data-node="true" id="flowchart-AD-67" class="node default default flowchart-label"><rect height="37" width="86.421875" y="-18.5" x="-43.2109375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-35.7109375, -11)" style="" class="label"><rect/><foreignObject height="22" width="71.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">flush 刷新</span></div></foreignObject></g></g><g transform="translate(4687.5859375, 2476.890625)" data-id="AE" data-node="true" id="flowchart-AE-69" class="node default default flowchart-label"><rect height="37" width="183.390625" y="-18.5" x="-91.6953125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-84.1953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="168.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">等待定时器/下一次触发</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2476.890625)" data-id="AF" data-node="true" id="flowchart-AF-71" class="node default default flowchart-label"><rect height="37" width="156.90625" y="-18.5" x="-78.453125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-70.953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="141.90625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">sendEvent 直接发送</span></div></foreignObject></g></g><g transform="translate(2406.23046875, 265.7578125)" data-id="A" data-node="true" id="flowchart-A-0" class="node default default flowchart-label"><rect height="37" width="94.546875" y="-18.5" x="-47.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-39.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="79.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">初始化 SDK</span></div></foreignObject></g></g><g transform="translate(2406.23046875, 649.453125)" data-id="B" data-node="true" id="flowchart-B-1" class="node default default flowchart-label"><rect height="37" width="293.28125" y="-18.5" x="-146.640625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-139.140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="278.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">设置选项(批量/重试/gzip/自动采集)</span></div></foreignObject></g></g><g transform="translate(644.43359375, 887.5234375)" data-id="C" data-node="true" id="flowchart-C-3" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(886.05078125, 1145.1328125)" data-id="E" data-node="true" id="flowchart-E-7" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过队列管理器</span></div></foreignObject></g></g><g transform="translate(1197.515625, 887.5234375)" data-id="F" data-node="true" id="flowchart-F-9" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(1063.05078125, 1145.1328125)" data-id="G" data-node="true" id="flowchart-G-11" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">创建重试管理器</span></div></foreignObject></g></g><g transform="translate(1240.05078125, 1145.1328125)" data-id="H" data-node="true" id="flowchart-H-13" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过重试管理器</span></div></foreignObject></g></g><g transform="translate(3113.21875, 887.5234375)" data-id="I" data-node="true" id="flowchart-I-15" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">选择传输适配器</span></div></foreignObject></g></g><g transform="translate(3113.21875, 1145.1328125)" data-id="J" data-node="true" id="flowchart-J-17" class="node default default flowchart-label"><polygon style="" transform="translate(-58,58)" class="label-container" points="58,0 116,-58 58,-116 0,-58"/><g transform="translate(-32, -11)" style="" class="label"><rect/><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">运行环境</span></div></foreignObject></g></g><g transform="translate(3283.1328125, 1402.6796875)" data-id="L" data-node="true" id="flowchart-L-21" class="node default default flowchart-label"><polygon style="" transform="translate(-73.0703125,73.0703125)" class="label-container" points="73.0703125,0 146.140625,-73.0703125 73.0703125,-146.140625 0,-73.0703125"/><g transform="translate(-47.0703125, -11)" style="" class="label"><rect/><foreignObject height="22" width="94.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">支持 Beacon?</span></div></foreignObject></g></g><g transform="translate(3593.83203125, 887.5234375)" data-id="O" data-node="true" id="flowchart-O-27" class="node default default flowchart-label"><rect height="37" width="93.265625" y="-18.5" x="-46.6328125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-39.1328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="78.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">生成会话ID</span></div></foreignObject></g></g><g transform="translate(3745.96484375, 887.5234375)" data-id="P" data-node="true" id="flowchart-P-29" class="node default default flowchart-label"><rect height="37" width="111" y="-18.5" x="-55.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48, -11)" style="" class="label"><rect/><foreignObject height="22" width="96"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">收集环境标签</span></div></foreignObject></g></g><g transform="translate(1486.79296875, 887.5234375)" data-id="Q" data-node="true" id="flowchart-Q-31" class="node default default flowchart-label"><rect height="37" width="78.546875" y="-18.5" x="-39.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-31.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="63.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">注册 SDK</span></div></foreignObject></g></g><g transform="translate(1486.79296875, 1145.1328125)" data-id="R" data-node="true" id="flowchart-R-33" class="node default default flowchart-label"><rect height="37" width="266.484375" y="-18.5" x="-133.2421875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-125.7421875, -11)" style="" class="label"><rect/><foreignObject height="22" width="251.484375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">接收初始化数据: 开关/等级/采样率</span></div></foreignObject></g></g><g transform="translate(1185.140625, 1402.6796875)" data-id="S" data-node="true" id="flowchart-S-35" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1669.3203125)" data-id="V" data-node="true" id="flowchart-V-41" class="node default default flowchart-label"><polygon style="" transform="translate(-96.5703125,96.5703125)" class="label-container" points="96.5703125,0 193.140625,-96.5703125 96.5703125,-193.140625 0,-96.5703125"/><g transform="translate(-72.0703125, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="144.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">enableAutoCapture?</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1958.203125)" data-id="V2" data-node="true" id="flowchart-V2-45" class="node default default flowchart-label"><rect height="37" width="111" y="-18.5" x="-55.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48, -11)" style="" class="label"><rect/><foreignObject height="22" width="96"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过自动采集</span></div></foreignObject></g></g></g></g></g></svg>
@@ -1,84 +0,0 @@
1
- flowchart TD
2
- A[初始化 SDK] --> B[设置选项(批量/重试/gzip/自动采集)]
3
- B --> C{启用批量?}
4
- C -->|是| D[创建队列管理器并加载存储]
5
- C -->|否| E[跳过队列管理器]
6
- B --> F{启用重试?}
7
- F -->|是| G[创建重试管理器]
8
- F -->|否| H[跳过重试管理器]
9
- B --> I[选择传输适配器]
10
- I --> J{运行环境}
11
- J -->|微信小程序| K[WechatTransport]
12
- J -->|浏览器| L{支持 Beacon?}
13
- L -->|是| M[BeaconTransport]
14
- L -->|否| N[PixelImageTransport]
15
- B --> O[生成会话ID]
16
- B --> P[收集环境标签]
17
- B --> Q[注册 SDK]
18
- Q --> R[接收初始化数据: 开关/等级/采样率]
19
- R --> S{启用批量?}
20
- S -->|是| T[启动批量定时器]
21
- R --> U[挂载卸载/可见性事件处理]
22
- U --> V{enableAutoCapture?}
23
- V -->|是| V1[按 autoCapture: 注册 js/promise/resource/wechat]
24
- V -->|否| V2[跳过自动采集]
25
-
26
- subgraph 采集与上报
27
- W[调用 track 或自动采集] --> X{已初始化且未关闭?}
28
- X -->|否| X1[跳过]
29
- X -->|是| X2{3秒去重窗口?}
30
- X2 -->|重复| X3[跳过]
31
- X2 -->|非重复| Y{shouldSend 采样?}
32
- Y -->|否| Y1[采样丢弃]
33
- Y -->|是| Z[构建 LogEvent]
34
- Z --> AA{启用批量?}
35
- AA -->|是| AB[enqueue 入队]
36
- AB --> AC{队列达到批量阈值?}
37
- AC -->|是| AD[flush 刷新]
38
- AC -->|否| AE[等待定时器/下一次触发]
39
- AA -->|否| AF[sendEvent 直接发送]
40
- end
41
-
42
- subgraph 批量刷新
43
- AD --> AG[peek 读取待发事件]
44
- AG --> AH[sendBatch 批量发送]
45
- AH --> AI[按 appId & stage 分组并分块]
46
- AI --> AJ[transporter.send(并发收集)]
47
- AJ --> AK[dequeue 成功后出队]
48
- end
49
-
50
- subgraph 传输细节
51
- K --> K1[字符串化; 启用 gzip 时压缩成 Base64; wx.request POST]
52
- M --> M1{启用 gzip? 且满足批量条件}
53
- M1 -->|是| M2[压缩 items 为 Base64 字符串; 替换 body 为 「...payload, items: Base64」; 设置 Content-Type]
54
- M1 -->|否| M3[直接 JSON body; Blob 包裹; sendBeacon POST]
55
- N --> N1[字符串化 items; gzip: Base64 / btoa / encodeURIComponent 回退; Image GET]
56
- end
57
-
58
- subgraph 压缩流程
59
- C1[gzipCompress(data)] --> C2{支持 CompressionStream?}
60
- C2 -->|是| C3[CompressionStream('gzip') 流式压缩后 Base64]
61
- C2 -->|否| C4[fflate.gzipSync + Base64.fromUint8Array]
62
- end
63
-
64
- subgraph 定时与卸载
65
- T --> T1[setInterval 周期性 flush]
66
- U --> U1[visibilitychange/pagehide/beforeunload 触发 flush]
67
- V1 --> U2[销毁时统一 off(js/promise/resource/wechat)]
68
- end
69
-
70
- subgraph 重试策略
71
- AF --> R1{启用重试?}
72
- R1 -->|是| R2[executeWithRetry(event.logId, sendFn)]
73
- R1 -->|否| R3[直接 sendFn]
74
- AH --> R4{启用重试?}
75
- R4 -->|是| R5[executeWithRetry(batchId, sendFn)]
76
- R4 -->|否| R6[直接 sendFn]
77
- end
78
-
79
- subgraph 存储兼容
80
- D --> D1{环境}
81
- D1 -->|浏览器| D2[动态 import localforage 使用 IndexedDB; 失败回退 localStorage]
82
- D2 --> D2a[如解析失败: 回退 globalThis.localforage]
83
- D1 -->|微信小程序| D3[使用 wx.storage 同步 API]
84
- end
@@ -1 +0,0 @@
1
- <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 5231.60546875 3178.265625" style="max-width: 5231.61px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span,#my-svg p{color:#333;}#my-svg .label text,#my-svg span,#my-svg p{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .flowchart-label text{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .node .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:#e8e8e8;text-align:center;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span,#my-svg p{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"><g id="存储兼容" class="cluster default flowchart-label"><rect height="1070.859375" width="787.55078125" y="1032.65625" x="0" ry="0" rx="0" style=""/><g transform="translate(361.775390625, 1032.65625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">存储兼容</span></div></foreignObject></g></g><g id="重试策略" class="cluster default flowchart-label"><rect height="280.875" width="1034.93359375" y="2769.390625" x="3861.875" ry="0" rx="0" style=""/><g transform="translate(4347.341796875, 2769.390625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">重试策略</span></div></foreignObject></g></g><g id="定时与卸载" class="cluster default flowchart-label"><rect height="1081.78125" width="684.515625" y="1304.609375" x="1281.078125" ry="0" rx="0" style=""/><g transform="translate(1583.3359375, 1304.609375)" class="cluster-label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">定时与卸载</span></div></foreignObject></g></g><g id="传输细节" class="cluster default flowchart-label"><rect height="838.640625" width="1557.00390625" y="1547.75" x="2228.734375" ry="0" rx="0" style=""/><g transform="translate(2975.236328125, 1547.75)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">传输细节</span></div></foreignObject></g></g><g id="批量刷新" class="cluster default flowchart-label"><rect height="591.875" width="298.796875" y="2570.390625" x="4916.80859375" ry="0" rx="0" style=""/><g transform="translate(5034.20703125, 2570.390625)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">批量刷新</span></div></foreignObject></g></g><g id="采集与上报" class="cluster default flowchart-label"><rect height="2520.390625" width="1314.90625" y="0" x="3836.46484375" ry="0" rx="0" style=""/><g transform="translate(4453.91796875, 0)" class="cluster-label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">采集与上报</span></div></foreignObject></g></g></g><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-B" id="L-A-B-0" d="M2406.23,284.258L2406.23,325.467C2406.23,366.677,2406.23,449.096,2406.23,505.996C2406.23,562.895,2406.23,594.274,2406.23,609.964L2406.23,625.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-C" id="L-B-C-0" d="M2259.59,660.185L1990.397,679.886C1721.204,699.587,1182.819,738.989,913.701,765.922C644.582,792.856,644.731,807.321,644.805,814.554L644.879,821.786"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-D" id="L-C-D-0" d="M613.211,917.238L598.665,930.475C584.119,943.711,555.026,970.184,540.48,989.42C525.934,1008.656,525.934,1020.656,525.934,1041.436C525.934,1062.215,525.934,1091.774,525.934,1106.553L525.934,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C LE-E" id="L-C-E-0" d="M686.911,906.984L720.101,921.929C753.291,936.874,819.671,966.765,852.861,987.711C886.051,1008.656,886.051,1020.656,886.051,1041.436C886.051,1062.215,886.051,1091.774,886.051,1106.553L886.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-F" id="L-B-F-0" d="M2259.59,665.096L2082.577,683.978C1905.565,702.861,1551.54,740.626,1374.602,766.741C1197.664,792.856,1197.813,807.321,1197.887,814.554L1197.961,821.786"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-F LE-G" id="L-F-G-0" d="M1164.378,915.324L1147.49,928.879C1130.603,942.435,1096.827,969.545,1079.939,989.101C1063.051,1008.656,1063.051,1020.656,1063.051,1041.436C1063.051,1062.215,1063.051,1091.774,1063.051,1106.553L1063.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-F LE-H" id="L-F-H-0" d="M1215.105,931.871L1219.263,942.669C1223.421,953.466,1231.736,975.061,1235.893,991.859C1240.051,1008.656,1240.051,1020.656,1240.051,1041.436C1240.051,1062.215,1240.051,1091.774,1240.051,1106.553L1240.051,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-I" id="L-B-I-0" d="M2507.669,667.953L2608.594,686.359C2709.519,704.766,2911.369,741.578,3012.294,774.207C3113.219,806.835,3113.219,835.279,3113.219,849.501L3113.219,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-I LE-J" id="L-I-J-0" d="M3113.219,906.023L3113.219,921.129C3113.219,936.234,3113.219,966.445,3113.219,987.551C3113.219,1008.656,3113.219,1020.656,3113.294,1034.936C3113.369,1049.215,3113.52,1065.774,3113.595,1074.054L3113.671,1082.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-J LE-K" id="L-J-K-0" d="M3065.049,1154.964L2965.735,1173.905C2866.421,1192.845,2667.793,1230.727,2568.478,1255.668C2469.164,1280.609,2469.164,1292.609,2469.164,1314.954C2469.164,1337.299,2469.164,1369.99,2469.164,1404.513C2469.164,1439.036,2469.164,1475.393,2469.164,1499.572C2469.164,1523.75,2469.164,1535.75,2469.164,1558.295C2469.164,1580.84,2469.164,1613.93,2469.164,1630.475L2469.164,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-J LE-L" id="L-J-L-0" d="M3147.309,1170.043L3169.946,1186.471C3192.583,1202.898,3237.858,1235.754,3260.495,1258.182C3283.133,1280.609,3283.133,1292.609,3283.199,1301.976C3283.265,1311.343,3283.397,1318.077,3283.463,1321.444L3283.529,1324.81"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-L LE-M" id="L-L-M-0" d="M3231.295,1423.913L3194.046,1438.552C3156.797,1453.192,3082.299,1482.471,3045.05,1503.11C3007.801,1523.75,3007.801,1535.75,3007.801,1558.295C3007.801,1580.84,3007.801,1613.93,3007.801,1630.475L3007.801,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-L LE-N" id="L-L-N-0" d="M3329.255,1430.627L3351.784,1444.148C3374.312,1457.668,3419.369,1484.709,3441.897,1504.23C3464.426,1523.75,3464.426,1535.75,3464.426,1558.295C3464.426,1580.84,3464.426,1613.93,3464.426,1630.475L3464.426,1647.02"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-O" id="L-B-O-0" d="M2552.871,665.374L2726.365,684.21C2899.858,703.046,3246.845,740.718,3420.339,773.777C3593.832,806.835,3593.832,835.279,3593.832,849.501L3593.832,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-P" id="L-B-P-0" d="M2552.871,663.566L2751.72,682.703C2950.569,701.841,3348.267,740.116,3547.116,773.475C3745.965,806.835,3745.965,835.279,3745.965,849.501L3745.965,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-Q" id="L-B-Q-0" d="M2274.309,667.953L2143.057,686.359C2011.804,704.766,1749.298,741.578,1618.046,774.207C1486.793,806.835,1486.793,835.279,1486.793,849.501L1486.793,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Q LE-R" id="L-Q-R-0" d="M1486.793,906.023L1486.793,921.129C1486.793,936.234,1486.793,966.445,1486.793,987.551C1486.793,1008.656,1486.793,1020.656,1486.793,1041.436C1486.793,1062.215,1486.793,1091.774,1486.793,1106.553L1486.793,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R LE-S" id="L-R-S-0" d="M1441.598,1163.633L1398.855,1181.129C1356.112,1198.625,1270.626,1233.617,1227.883,1257.113C1185.141,1280.609,1185.141,1292.609,1185.212,1303.998C1185.284,1315.387,1185.427,1326.165,1185.499,1331.554L1185.57,1336.943"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-S LE-T" id="L-S-T-0" d="M1226.566,1423.192L1256.838,1437.951C1287.109,1452.711,1347.652,1482.231,1377.924,1502.99C1408.195,1523.75,1408.195,1535.75,1408.195,1558.045C1408.195,1580.34,1408.195,1612.93,1408.195,1629.225L1408.195,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R LE-U" id="L-R-U-0" d="M1528.432,1163.633L1567.812,1181.129C1607.192,1198.625,1685.951,1233.617,1725.331,1257.113C1764.711,1280.609,1764.711,1292.609,1764.711,1310.988C1764.711,1329.366,1764.711,1354.123,1764.711,1366.501L1764.711,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-U LE-V" id="L-U-V-0" d="M1782.064,1421.18L1796.223,1436.275C1810.383,1451.37,1838.701,1481.56,1852.86,1502.655C1867.02,1523.75,1867.02,1535.75,1894.148,1556.118C1921.276,1576.487,1975.533,1605.223,2002.661,1619.592L2029.79,1633.96"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V LE-V1" id="L-V-V1-0" d="M2027.259,1695.986L1979.458,1713.637C1931.657,1731.288,1836.055,1766.589,1788.254,1806.325C1740.453,1846.061,1740.453,1890.232,1740.453,1912.318L1740.453,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V LE-V2" id="L-V-V2-0" d="M2097.664,1766.391L2097.581,1772.307C2097.497,1778.224,2097.331,1790.057,2097.247,1818.059C2097.164,1846.061,2097.164,1890.232,2097.164,1912.318L2097.164,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-W LE-X" id="L-W-X-0" d="M4446.039,284.258L4446.039,325.467C4446.039,366.677,4446.039,449.096,4446.105,493.673C4446.171,538.249,4446.303,544.983,4446.369,548.35L4446.435,551.717"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X LE-X1" id="L-X-X1-0" d="M4372.172,668.523L4298.424,686.834C4224.676,705.146,4077.18,741.768,4003.432,774.302C3929.684,806.835,3929.684,835.279,3929.684,849.501L3929.684,863.723"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X LE-X2" id="L-X-X2-0" d="M4480.229,709.201L4486.75,720.733C4493.271,732.264,4506.313,755.327,4512.906,772.059C4519.498,788.791,4519.64,799.191,4519.712,804.391L4519.783,809.591"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X2 LE-X3" id="L-X2-X3-0" d="M4459.483,900.783L4383.402,916.762C4307.322,932.741,4155.161,964.699,4079.08,986.677C4003,1008.656,4003,1020.656,4003,1041.436C4003,1062.215,4003,1091.774,4003,1106.553L4003,1121.333"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-X2 LE-Y" id="L-X2-Y-0" d="M4550.898,930.114L4559.056,941.204C4567.213,952.295,4583.529,974.475,4591.686,991.566C4599.844,1008.656,4599.844,1020.656,4599.91,1030.023C4599.976,1039.39,4600.108,1046.124,4600.174,1049.49L4600.24,1052.857"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Y LE-Y1" id="L-Y-Y1-0" d="M4529.962,1162.728L4456.883,1180.375C4383.804,1198.022,4237.646,1233.316,4164.567,1256.962C4091.488,1280.609,4091.488,1292.609,4091.488,1310.988C4091.488,1329.366,4091.488,1354.123,4091.488,1366.501L4091.488,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Y LE-Z" id="L-Y-Z-0" d="M4601.561,1231.892L4601.565,1238.012C4601.569,1244.131,4601.578,1256.37,4601.582,1268.49C4601.586,1280.609,4601.586,1292.609,4601.586,1310.988C4601.586,1329.366,4601.586,1354.123,4601.586,1366.501L4601.586,1378.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Z LE-AA" id="L-Z-AA-0" d="M4601.586,1421.18L4601.586,1436.275C4601.586,1451.37,4601.586,1481.56,4601.586,1502.655C4601.586,1523.75,4601.586,1535.75,4601.662,1551.055C4601.738,1566.361,4601.89,1584.972,4601.966,1594.277L4602.043,1603.583"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AA LE-AB" id="L-AA-AB-0" d="M4646.429,1686.414L4697.998,1705.66C4749.567,1724.907,4852.706,1763.399,4904.275,1804.73C4955.844,1846.061,4955.844,1890.232,4955.844,1912.318L4955.844,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AB LE-AC" id="L-AB-AC-0" d="M4955.844,1976.703L4955.844,1997.839C4955.844,2018.974,4955.844,2061.245,4955.844,2088.38C4955.844,2115.516,4955.844,2127.516,4955.915,2138.716C4955.986,2149.916,4956.129,2160.316,4956.2,2165.516L4956.271,2170.716"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AC LE-AD" id="L-AC-AD-0" d="M4997.184,2321.051L5005.703,2331.941C5014.221,2342.831,5031.259,2364.611,5039.778,2381.501C5048.297,2398.391,5048.297,2410.391,5048.297,2421.507C5048.297,2432.624,5048.297,2442.857,5048.297,2447.974L5048.297,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AC LE-AE" id="L-AC-AE-0" d="M4891.788,2297.335L4857.754,2312.177C4823.721,2327.02,4755.653,2356.705,4721.62,2377.548C4687.586,2398.391,4687.586,2410.391,4687.586,2421.507C4687.586,2432.624,4687.586,2442.857,4687.586,2447.974L4687.586,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AA LE-AF" id="L-AA-AF-0" d="M4555.857,1684.529L4494.032,1704.089C4432.207,1723.649,4308.556,1762.77,4246.731,1808.382C4184.906,1853.995,4184.906,1906.099,4184.906,1956.37C4184.906,2006.641,4184.906,2055.078,4184.906,2085.297C4184.906,2115.516,4184.906,2127.516,4184.906,2155.005C4184.906,2182.495,4184.906,2225.474,4184.906,2266.62C4184.906,2307.766,4184.906,2347.078,4184.906,2372.734C4184.906,2398.391,4184.906,2410.391,4184.906,2421.507C4184.906,2432.624,4184.906,2442.857,4184.906,2447.974L4184.906,2453.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AD LE-AG" id="L-AD-AG-0" d="M5048.297,2495.391L5048.297,2499.557C5048.297,2503.724,5048.297,2512.057,5048.297,2520.391C5048.297,2528.724,5048.297,2537.057,5048.297,2545.391C5048.297,2553.724,5048.297,2562.057,5048.297,2569.507C5048.297,2576.957,5048.297,2583.524,5048.297,2586.807L5048.297,2590.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AG LE-AH" id="L-AG-AH-0" d="M5048.297,2632.391L5048.297,2636.557C5048.297,2640.724,5048.297,2649.057,5048.297,2656.507C5048.297,2663.957,5048.297,2670.524,5048.297,2673.807L5048.297,2677.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AH LE-AI" id="L-AH-AI-0" d="M5055.914,2719.391L5057.629,2723.557C5059.345,2727.724,5062.776,2736.057,5064.491,2744.391C5066.207,2752.724,5066.207,2761.057,5066.207,2775.58C5066.207,2790.103,5066.207,2810.816,5066.207,2821.172L5066.207,2831.528"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AI LE-AJ" id="L-AI-AJ-0" d="M5066.207,2873.828L5066.207,2886.901C5066.207,2899.974,5066.207,2926.12,5066.207,2944.309C5066.207,2962.499,5066.207,2972.732,5066.207,2977.849L5066.207,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AJ LE-AK" id="L-AJ-AK-0" d="M5066.207,3025.266L5066.207,3029.432C5066.207,3033.599,5066.207,3041.932,5066.207,3050.266C5066.207,3058.599,5066.207,3066.932,5066.207,3074.382C5066.207,3081.832,5066.207,3088.399,5066.207,3091.682L5066.207,3094.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-K LE-K1" id="L-K-K1-0" d="M2469.164,1686.32L2469.164,1705.582C2469.164,1724.844,2469.164,1763.367,2469.164,1804.714C2469.164,1846.061,2469.164,1890.232,2469.164,1912.318L2469.164,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M LE-M1" id="L-M-M1-0" d="M3007.801,1686.32L3007.801,1705.582C3007.801,1724.844,3007.801,1763.367,3007.872,1787.829C3007.943,1812.291,3008.086,1822.691,3008.157,1827.891L3008.228,1833.091"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M1 LE-M2" id="L-M1-M2-0" d="M2928.896,1999.611L2895.037,2016.929C2861.178,2034.246,2793.46,2068.881,2759.601,2092.198C2725.742,2115.516,2725.742,2127.516,2725.742,2151.039C2725.742,2174.561,2725.742,2209.607,2725.742,2227.13L2725.742,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-M1 LE-M3" id="L-M1-M3-0" d="M3088.063,1999.253L3122.325,2016.63C3156.586,2034.007,3225.11,2068.761,3259.371,2092.139C3293.633,2115.516,3293.633,2127.516,3293.633,2151.039C3293.633,2174.561,3293.633,2209.607,3293.633,2227.13L3293.633,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-N LE-N1" id="L-N-N1-0" d="M3464.426,1686.32L3464.426,1705.582C3464.426,1724.844,3464.426,1763.367,3464.426,1804.714C3464.426,1846.061,3464.426,1890.232,3464.426,1912.318L3464.426,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-T LE-T1" id="L-T-T1-0" d="M1408.195,1687.82L1408.195,1706.832C1408.195,1725.844,1408.195,1763.867,1408.195,1804.964C1408.195,1846.061,1408.195,1890.232,1408.195,1912.318L1408.195,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-U LE-U1" id="L-U-U1-0" d="M1758.169,1421.18L1752.832,1436.275C1747.494,1451.37,1736.82,1481.56,1731.482,1502.655C1726.145,1523.75,1726.145,1535.75,1726.145,1558.045C1726.145,1580.34,1726.145,1612.93,1726.145,1629.225L1726.145,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-V1 LE-U2" id="L-V1-U2-0" d="M1740.453,1976.703L1740.453,1997.839C1740.453,2018.974,1740.453,2061.245,1740.453,2088.38C1740.453,2115.516,1740.453,2127.516,1740.453,2151.039C1740.453,2174.561,1740.453,2209.607,1740.453,2227.13L1740.453,2244.653"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AF LE-R1" id="L-AF-R1-0" d="M4184.906,2495.391L4184.906,2499.557C4184.906,2503.724,4184.906,2512.057,4184.906,2520.391C4184.906,2528.724,4184.906,2537.057,4184.906,2545.391C4184.906,2553.724,4184.906,2562.057,4184.906,2573.474C4184.906,2584.891,4184.906,2599.391,4184.906,2613.891C4184.906,2628.391,4184.906,2642.891,4184.906,2657.391C4184.906,2671.891,4184.906,2686.391,4184.906,2700.891C4184.906,2715.391,4184.906,2729.891,4184.906,2741.307C4184.906,2752.724,4184.906,2761.057,4184.972,2768.591C4185.038,2776.124,4185.17,2782.858,4185.236,2786.225L4185.302,2789.592"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R1 LE-R2" id="L-R1-R2-0" d="M4150.539,2881.898L4134.659,2893.626C4118.779,2905.354,4087.018,2928.81,4071.138,2945.654C4055.258,2962.499,4055.258,2972.732,4055.258,2977.849L4055.258,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R1 LE-R3" id="L-R1-R3-0" d="M4220.274,2881.898L4235.987,2893.626C4251.701,2905.354,4283.128,2928.81,4298.841,2945.654C4314.555,2962.499,4314.555,2972.732,4314.555,2977.849L4314.555,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-AH LE-R4" id="L-AH-R4-0" d="M5020.781,2719.391L5014.584,2723.557C5008.387,2727.724,4995.992,2736.057,4989.795,2744.391C4983.598,2752.724,4983.598,2761.057,4942.337,2777.127C4901.075,2793.197,4818.553,2817.003,4777.292,2828.906L4736.031,2840.809"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R4 LE-R5" id="L-R4-R5-0" d="M4649.492,2882.707L4634.613,2894.3C4619.734,2905.893,4589.977,2929.079,4575.098,2945.789C4560.219,2962.499,4560.219,2972.732,4560.219,2977.849L4560.219,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-R4 LE-R6" id="L-R4-R6-0" d="M4717.61,2882.707L4732.322,2894.3C4747.034,2905.893,4776.458,2929.079,4791.171,2945.789C4805.883,2962.499,4805.883,2972.732,4805.883,2977.849L4805.883,2982.966"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D LE-D1" id="L-D-D1-0" d="M525.934,1163.633L525.934,1181.129C525.934,1198.625,525.934,1233.617,525.934,1257.113C525.934,1280.609,525.934,1292.609,526.009,1307.154C526.085,1321.7,526.236,1338.79,526.311,1347.335L526.387,1355.88"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D1 LE-D2" id="L-D1-D2-0" d="M496.978,1415.724L459.12,1431.729C421.261,1447.733,345.545,1479.741,307.686,1501.746C269.828,1523.75,269.828,1535.75,269.828,1558.045C269.828,1580.34,269.828,1612.93,269.828,1629.225L269.828,1645.52"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D2 LE-D2a" id="L-D2-D2a-0" d="M269.828,1687.82L269.828,1706.832C269.828,1725.844,269.828,1763.867,269.828,1804.964C269.828,1846.061,269.828,1890.232,269.828,1912.318L269.828,1934.403"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D1 LE-D3" id="L-D1-D3-0" d="M548.959,1422.655L566.147,1437.504C583.334,1452.353,617.71,1482.052,634.898,1502.901C652.086,1523.75,652.086,1535.75,652.086,1558.045C652.086,1580.34,652.086,1612.93,652.086,1629.225L652.086,1645.52"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(525.93359375, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(886.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1063.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(1240.05078125, 996.65625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(2469.1640625, 1402.6796875)" class="edgeLabel"><g transform="translate(-40, -11)" class="label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">微信小程序</span></div></foreignObject></g></g><g transform="translate(3283.1328125, 1268.609375)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">浏览器</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1511.75)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(1740.453125, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(3929.68359375, 778.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4519.35546875, 778.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4003, 996.65625)" class="edgeLabel"><g transform="translate(-16, -11)" class="label"><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">重复</span></div></foreignObject></g></g><g transform="translate(4599.84375, 996.65625)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">非重复</span></div></foreignObject></g></g><g transform="translate(4091.48828125, 1268.609375)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1268.609375)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4955.84375, 1801.890625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(5048.296875, 2422.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4687.5859375, 2422.390625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(2725.7421875, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(3293.6328125, 2139.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4055.2578125, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4314.5546875, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(4560.21875, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(4805.8828125, 2952.265625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(269.828125, 1511.75)" class="edgeLabel"><g transform="translate(-24, -11)" class="label"><foreignObject height="22" width="48"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">浏览器</span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(652.0859375, 1511.75)" class="edgeLabel"><g transform="translate(-40, -11)" class="label"><foreignObject height="22" width="80"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">微信小程序</span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(525.93359375, 1402.6796875)" data-id="D1" data-node="true" id="flowchart-D1-117" class="node default default flowchart-label"><polygon style="" transform="translate(-42,42)" class="label-container" points="42,0 84,-42 42,-84 0,-42"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">环境</span></div></foreignObject></g></g><g transform="translate(525.93359375, 1145.1328125)" data-id="D" data-node="true" id="flowchart-D-5" class="node default default flowchart-label"><rect height="37" width="207" y="-18.5" x="-103.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-96, -11)" style="" class="label"><rect/><foreignObject height="22" width="192"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">创建队列管理器并加载存储</span></div></foreignObject></g></g><g transform="translate(269.828125, 1669.3203125)" data-id="D2" data-node="true" id="flowchart-D2-119" class="node default default flowchart-label"><rect height="37" width="469.65625" y="-18.5" x="-234.828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-227.328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="454.65625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">动态 import localforage 使用 IndexedDB; 失败回退 localStorage</span></div></foreignObject></g></g><g transform="translate(269.828125, 1958.203125)" data-id="D2a" data-node="true" id="flowchart-D2a-121" class="node default default flowchart-label"><rect height="37" width="301.078125" y="-18.5" x="-150.5390625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-143.0390625, -11)" style="" class="label"><rect/><foreignObject height="22" width="286.078125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">如解析失败: 回退 globalThis.localforage</span></div></foreignObject></g></g><g transform="translate(652.0859375, 1669.3203125)" data-id="D3" data-node="true" id="flowchart-D3-123" class="node default default flowchart-label"><rect height="37" width="194.859375" y="-18.5" x="-97.4296875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-89.9296875, -11)" style="" class="label"><rect/><foreignObject height="22" width="179.859375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">使用 wx.storage 同步 API</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2855.328125)" data-id="R1" data-node="true" id="flowchart-R1-105" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(4055.2578125, 3006.765625)" data-id="R2" data-node="true" id="flowchart-R2-107" class="node default default flowchart-label"><rect height="37" width="316.765625" y="-18.5" x="-158.3828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-150.8828125, -11)" style="" class="label"><rect/><foreignObject height="22" width="301.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">executeWithRetry(event.logId, sendFn)</span></div></foreignObject></g></g><g transform="translate(4314.5546875, 3006.765625)" data-id="R3" data-node="true" id="flowchart-R3-109" class="node default default flowchart-label"><rect height="37" width="101.828125" y="-18.5" x="-50.9140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-43.4140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="86.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 sendFn</span></div></foreignObject></g></g><g transform="translate(4683.05078125, 2855.328125)" data-id="R4" data-node="true" id="flowchart-R4-111" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(4560.21875, 3006.765625)" data-id="R5" data-node="true" id="flowchart-R5-113" class="node default default flowchart-label"><rect height="37" width="289.5" y="-18.5" x="-144.75" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-137.25, -11)" style="" class="label"><rect/><foreignObject height="22" width="274.5"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">executeWithRetry(batchId, sendFn)</span></div></foreignObject></g></g><g transform="translate(4805.8828125, 3006.765625)" data-id="R6" data-node="true" id="flowchart-R6-115" class="node default default flowchart-label"><rect height="37" width="101.828125" y="-18.5" x="-50.9140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-43.4140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="86.828125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 sendFn</span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1958.203125)" data-id="T1" data-node="true" id="flowchart-T1-99" class="node default default flowchart-label"><rect height="37" width="184.234375" y="-18.5" x="-92.1171875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-84.6171875, -11)" style="" class="label"><rect/><foreignObject height="22" width="169.234375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">setInterval 周期性 flush</span></div></foreignObject></g></g><g transform="translate(1408.1953125, 1669.3203125)" data-id="T" data-node="true" id="flowchart-T-37" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启动批量定时器</span></div></foreignObject></g></g><g transform="translate(1726.14453125, 1669.3203125)" data-id="U1" data-node="true" id="flowchart-U1-101" class="node default default flowchart-label"><rect height="37" width="379.234375" y="-18.5" x="-189.6171875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-182.1171875, -11)" style="" class="label"><rect/><foreignObject height="22" width="364.234375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">visibilitychange/pagehide/beforeunload 触发 flush</span></div></foreignObject></g></g><g transform="translate(1764.7109375, 1402.6796875)" data-id="U" data-node="true" id="flowchart-U-39" class="node default default flowchart-label"><rect height="37" width="199.390625" y="-18.5" x="-99.6953125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-92.1953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="184.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">挂载卸载/可见性事件处理</span></div></foreignObject></g></g><g transform="translate(1740.453125, 2268.453125)" data-id="U2" data-node="true" id="flowchart-U2-103" class="node default default flowchart-label"><rect height="37" width="360.1875" y="-18.5" x="-180.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-172.59375, -11)" style="" class="label"><rect/><foreignObject height="22" width="345.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">销毁时统一 off(js/promise/resource/wechat)</span></div></foreignObject></g></g><g transform="translate(1740.453125, 1958.203125)" data-id="V1" data-node="true" id="flowchart-V1-43" class="node default default flowchart-label"><rect height="37" width="380.28125" y="-18.5" x="-190.140625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-182.640625, -11)" style="" class="label"><rect/><foreignObject height="22" width="365.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">按 autoCapture: 注册 js/promise/resource/wechat</span></div></foreignObject></g></g><g transform="translate(1514.16015625, 17)" class="root"><g class="clusters"><g id="压缩流程" class="cluster default flowchart-label"><rect height="481.515625" width="787.296875" y="8" x="8" ry="0" rx="0" style=""/><g transform="translate(369.6484375, 8)" class="cluster-label"><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">压缩流程</span></div></foreignObject></g></g></g><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C1 LE-C2" id="L-C1-C2-0" d="M415.379,70L415.379,74.167C415.379,78.333,415.379,86.667,415.445,94.2C415.511,101.734,415.643,108.467,415.709,111.834L415.775,115.201"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C2 LE-C3" id="L-C2-C3-0" d="M350.514,290.651L329.354,307.462C308.194,324.273,265.875,357.894,244.715,379.822C223.555,401.749,223.555,411.982,223.555,417.099L223.555,422.216"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-C2 LE-C4" id="L-C2-C4-0" d="M481.243,290.651L502.237,307.462C523.23,324.273,565.217,357.894,586.21,380.072C607.203,402.249,607.203,412.982,607.203,418.349L607.203,423.716"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g transform="translate(223.5546875, 391.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">是</span></div></foreignObject></g></g><g transform="translate(607.203125, 391.515625)" class="edgeLabel"><g transform="translate(-8, -11)" class="label"><foreignObject height="22" width="16"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel">否</span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(415.37890625, 237.7578125)" data-id="C2" data-node="true" id="flowchart-C2-93" class="node default default flowchart-label"><polygon style="" transform="translate(-117.7578125,117.7578125)" class="label-container" points="117.7578125,0 235.515625,-117.7578125 117.7578125,-235.515625 0,-117.7578125"/><g transform="translate(-91.7578125, -11)" style="" class="label"><rect/><foreignObject height="22" width="183.515625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">支持 CompressionStream?</span></div></foreignObject></g></g><g transform="translate(415.37890625, 51.5)" data-id="C1" data-node="true" id="flowchart-C1-92" class="node default default flowchart-label"><rect height="37" width="176.421875" y="-18.5" x="-88.2109375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-80.7109375, -11)" style="" class="label"><rect/><foreignObject height="22" width="161.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">gzipCompress(data)</span></div></foreignObject></g></g><g transform="translate(223.5546875, 446.015625)" data-id="C3" data-node="true" id="flowchart-C3-95" class="node default default flowchart-label"><rect height="37" width="361.109375" y="-18.5" x="-180.5546875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-173.0546875, -11)" style="" class="label"><rect/><foreignObject height="22" width="346.109375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">CompressionStream('gzip') 流式压缩后 Base64</span></div></foreignObject></g></g><g transform="translate(607.203125, 446.015625)" data-id="C4" data-node="true" id="flowchart-C4-97" class="node default default flowchart-label"><rect height="34" width="306.1875" y="-17" x="-153.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-145.59375, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="291.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">fflate.gzipSync + Base64.fromUint8Array</span></div></foreignObject></g></g></g></g><g transform="translate(2469.1640625, 1958.203125)" data-id="K1" data-node="true" id="flowchart-K1-83" class="node default default flowchart-label"><rect height="37" width="410.859375" y="-18.5" x="-205.4296875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-197.9296875, -11)" style="" class="label"><rect/><foreignObject height="22" width="395.859375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">字符串化; 启用 gzip 时压缩成 Base64; wx.request POST</span></div></foreignObject></g></g><g transform="translate(2469.1640625, 1669.3203125)" data-id="K" data-node="true" id="flowchart-K-19" class="node default default flowchart-label"><rect height="34" width="135.484375" y="-17" x="-67.7421875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-60.2421875, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="120.484375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">WechatTransport</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1958.203125)" data-id="M1" data-node="true" id="flowchart-M1-85" class="node default default flowchart-label"><polygon style="" transform="translate(-120.3125,120.3125)" class="label-container" points="120.3125,0 240.625,-120.3125 120.3125,-240.625 0,-120.3125"/><g transform="translate(-94.3125, -11)" style="" class="label"><rect/><foreignObject height="22" width="188.625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用 gzip? 且满足批量条件</span></div></foreignObject></g></g><g transform="translate(3007.80078125, 1669.3203125)" data-id="M" data-node="true" id="flowchart-M-23" class="node default default flowchart-label"><rect height="34" width="133.875" y="-17" x="-66.9375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-59.4375, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="118.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">BeaconTransport</span></div></foreignObject></g></g><g transform="translate(2725.7421875, 2268.453125)" data-id="M2" data-node="true" id="flowchart-M2-87" class="node default default flowchart-label"><rect height="37" width="685.6875" y="-18.5" x="-342.84375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-335.34375, -11)" style="" class="label"><rect/><foreignObject height="22" width="670.6875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">压缩 items 为 Base64 字符串; 替换 body 为 「...payload, items: Base64」; 设置 Content-Type</span></div></foreignObject></g></g><g transform="translate(3293.6328125, 2268.453125)" data-id="M3" data-node="true" id="flowchart-M3-89" class="node default default flowchart-label"><rect height="37" width="342.546875" y="-18.5" x="-171.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-163.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="327.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">直接 JSON body; Blob 包裹; sendBeacon POST</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1958.203125)" data-id="N1" data-node="true" id="flowchart-N1-91" class="node default default flowchart-label"><rect height="37" width="572.625" y="-18.5" x="-286.3125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-278.8125, -11)" style="" class="label"><rect/><foreignObject height="22" width="557.625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">字符串化 items; gzip: Base64 / btoa / encodeURIComponent 回退; Image GET</span></div></foreignObject></g></g><g transform="translate(3464.42578125, 1669.3203125)" data-id="N" data-node="true" id="flowchart-N-25" class="node default default flowchart-label"><rect height="34" width="159.53125" y="-17" x="-79.765625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.265625, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="144.53125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PixelImageTransport</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2613.890625)" data-id="AG" data-node="true" id="flowchart-AG-73" class="node default default flowchart-label"><rect height="37" width="150.265625" y="-18.5" x="-75.1328125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-67.6328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="135.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">peek 读取待发事件</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2700.890625)" data-id="AH" data-node="true" id="flowchart-AH-75" class="node default default flowchart-label"><rect height="37" width="157.15625" y="-18.5" x="-78.578125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-71.078125, -11)" style="" class="label"><rect/><foreignObject height="22" width="142.15625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">sendBatch 批量发送</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 2855.328125)" data-id="AI" data-node="true" id="flowchart-AI-77" class="node default default flowchart-label"><rect height="37" width="219.171875" y="-18.5" x="-109.5859375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-102.0859375, -11)" style="" class="label"><rect/><foreignObject height="22" width="204.171875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">按 appId &amp; stage 分组并分块</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 3006.765625)" data-id="AJ" data-node="true" id="flowchart-AJ-79" class="node default default flowchart-label"><rect height="37" width="228.796875" y="-18.5" x="-114.3984375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-106.8984375, -11)" style="" class="label"><rect/><foreignObject height="22" width="213.796875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">transporter.send(并发收集)</span></div></foreignObject></g></g><g transform="translate(5066.20703125, 3118.765625)" data-id="AK" data-node="true" id="flowchart-AK-81" class="node default default flowchart-label"><rect height="37" width="161.3125" y="-18.5" x="-80.65625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-73.15625, -11)" style="" class="label"><rect/><foreignObject height="22" width="146.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">dequeue 成功后出队</span></div></foreignObject></g></g><g transform="translate(4446.0390625, 649.453125)" data-id="X" data-node="true" id="flowchart-X-47" class="node default default flowchart-label"><polygon style="" transform="translate(-92.9375,92.9375)" class="label-container" points="92.9375,0 185.875,-92.9375 92.9375,-185.875 0,-92.9375"/><g transform="translate(-66.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="133.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">已初始化且未关闭?</span></div></foreignObject></g></g><g transform="translate(4446.0390625, 265.7578125)" data-id="W" data-node="true" id="flowchart-W-46" class="node default default flowchart-label"><rect height="37" width="173.609375" y="-18.5" x="-86.8046875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-79.3046875, -11)" style="" class="label"><rect/><foreignObject height="22" width="158.609375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">调用 track 或自动采集</span></div></foreignObject></g></g><g transform="translate(3929.68359375, 887.5234375)" data-id="X1" data-node="true" id="flowchart-X1-49" class="node default default flowchart-label"><rect height="37" width="47" y="-18.5" x="-23.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过</span></div></foreignObject></g></g><g transform="translate(4519.35546875, 887.5234375)" data-id="X2" data-node="true" id="flowchart-X2-51" class="node default default flowchart-label"><polygon style="" transform="translate(-73.1328125,73.1328125)" class="label-container" points="73.1328125,0 146.265625,-73.1328125 73.1328125,-146.265625 0,-73.1328125"/><g transform="translate(-47.1328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="94.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">3秒去重窗口?</span></div></foreignObject></g></g><g transform="translate(4003, 1145.1328125)" data-id="X3" data-node="true" id="flowchart-X3-53" class="node default default flowchart-label"><rect height="37" width="47" y="-18.5" x="-23.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-16, -11)" style="" class="label"><rect/><foreignObject height="22" width="32"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过</span></div></foreignObject></g></g><g transform="translate(4599.84375, 1145.1328125)" data-id="Y" data-node="true" id="flowchart-Y-55" class="node default default flowchart-label"><polygon style="" transform="translate(-87.4765625,87.4765625)" class="label-container" points="87.4765625,0 174.953125,-87.4765625 87.4765625,-174.953125 0,-87.4765625"/><g transform="translate(-61.4765625, -11)" style="" class="label"><rect/><foreignObject height="22" width="122.953125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">shouldSend 采样?</span></div></foreignObject></g></g><g transform="translate(4091.48828125, 1402.6796875)" data-id="Y1" data-node="true" id="flowchart-Y1-57" class="node default default flowchart-label"><rect height="37" width="79" y="-18.5" x="-39.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-32, -11)" style="" class="label"><rect/><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">采样丢弃</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1402.6796875)" data-id="Z" data-node="true" id="flowchart-Z-59" class="node default default flowchart-label"><rect height="37" width="116.765625" y="-18.5" x="-58.3828125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-50.8828125, -11)" style="" class="label"><rect/><foreignObject height="22" width="101.765625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">构建 LogEvent</span></div></foreignObject></g></g><g transform="translate(4601.5859375, 1669.3203125)" data-id="AA" data-node="true" id="flowchart-AA-61" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(4955.84375, 1958.203125)" data-id="AB" data-node="true" id="flowchart-AB-63" class="node default default flowchart-label"><rect height="37" width="113.140625" y="-18.5" x="-56.5703125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-49.0703125, -11)" style="" class="label"><rect/><foreignObject height="22" width="98.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">enqueue 入队</span></div></foreignObject></g></g><g transform="translate(4955.84375, 2268.453125)" data-id="AC" data-node="true" id="flowchart-AC-65" class="node default default flowchart-label"><polygon style="" transform="translate(-92.9375,92.9375)" class="label-container" points="92.9375,0 185.875,-92.9375 92.9375,-185.875 0,-92.9375"/><g transform="translate(-66.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="133.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">队列达到批量阈值?</span></div></foreignObject></g></g><g transform="translate(5048.296875, 2476.890625)" data-id="AD" data-node="true" id="flowchart-AD-67" class="node default default flowchart-label"><rect height="37" width="86.421875" y="-18.5" x="-43.2109375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-35.7109375, -11)" style="" class="label"><rect/><foreignObject height="22" width="71.421875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">flush 刷新</span></div></foreignObject></g></g><g transform="translate(4687.5859375, 2476.890625)" data-id="AE" data-node="true" id="flowchart-AE-69" class="node default default flowchart-label"><rect height="37" width="183.390625" y="-18.5" x="-91.6953125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-84.1953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="168.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">等待定时器/下一次触发</span></div></foreignObject></g></g><g transform="translate(4184.90625, 2476.890625)" data-id="AF" data-node="true" id="flowchart-AF-71" class="node default default flowchart-label"><rect height="37" width="156.90625" y="-18.5" x="-78.453125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-70.953125, -11)" style="" class="label"><rect/><foreignObject height="22" width="141.90625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">sendEvent 直接发送</span></div></foreignObject></g></g><g transform="translate(2406.23046875, 265.7578125)" data-id="A" data-node="true" id="flowchart-A-0" class="node default default flowchart-label"><rect height="37" width="94.546875" y="-18.5" x="-47.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-39.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="79.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">初始化 SDK</span></div></foreignObject></g></g><g transform="translate(2406.23046875, 649.453125)" data-id="B" data-node="true" id="flowchart-B-1" class="node default default flowchart-label"><rect height="37" width="293.28125" y="-18.5" x="-146.640625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-139.140625, -11)" style="" class="label"><rect/><foreignObject height="22" width="278.28125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">设置选项(批量/重试/gzip/自动采集)</span></div></foreignObject></g></g><g transform="translate(644.43359375, 887.5234375)" data-id="C" data-node="true" id="flowchart-C-3" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(886.05078125, 1145.1328125)" data-id="E" data-node="true" id="flowchart-E-7" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过队列管理器</span></div></foreignObject></g></g><g transform="translate(1197.515625, 887.5234375)" data-id="F" data-node="true" id="flowchart-F-9" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用重试?</span></div></foreignObject></g></g><g transform="translate(1063.05078125, 1145.1328125)" data-id="G" data-node="true" id="flowchart-G-11" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">创建重试管理器</span></div></foreignObject></g></g><g transform="translate(1240.05078125, 1145.1328125)" data-id="H" data-node="true" id="flowchart-H-13" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过重试管理器</span></div></foreignObject></g></g><g transform="translate(3113.21875, 887.5234375)" data-id="I" data-node="true" id="flowchart-I-15" class="node default default flowchart-label"><rect height="37" width="127" y="-18.5" x="-63.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-56, -11)" style="" class="label"><rect/><foreignObject height="22" width="112"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">选择传输适配器</span></div></foreignObject></g></g><g transform="translate(3113.21875, 1145.1328125)" data-id="J" data-node="true" id="flowchart-J-17" class="node default default flowchart-label"><polygon style="" transform="translate(-58,58)" class="label-container" points="58,0 116,-58 58,-116 0,-58"/><g transform="translate(-32, -11)" style="" class="label"><rect/><foreignObject height="22" width="64"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">运行环境</span></div></foreignObject></g></g><g transform="translate(3283.1328125, 1402.6796875)" data-id="L" data-node="true" id="flowchart-L-21" class="node default default flowchart-label"><polygon style="" transform="translate(-73.0703125,73.0703125)" class="label-container" points="73.0703125,0 146.140625,-73.0703125 73.0703125,-146.140625 0,-73.0703125"/><g transform="translate(-47.0703125, -11)" style="" class="label"><rect/><foreignObject height="22" width="94.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">支持 Beacon?</span></div></foreignObject></g></g><g transform="translate(3593.83203125, 887.5234375)" data-id="O" data-node="true" id="flowchart-O-27" class="node default default flowchart-label"><rect height="37" width="93.265625" y="-18.5" x="-46.6328125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-39.1328125, -11)" style="" class="label"><rect/><foreignObject height="22" width="78.265625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">生成会话ID</span></div></foreignObject></g></g><g transform="translate(3745.96484375, 887.5234375)" data-id="P" data-node="true" id="flowchart-P-29" class="node default default flowchart-label"><rect height="37" width="111" y="-18.5" x="-55.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48, -11)" style="" class="label"><rect/><foreignObject height="22" width="96"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">收集环境标签</span></div></foreignObject></g></g><g transform="translate(1486.79296875, 887.5234375)" data-id="Q" data-node="true" id="flowchart-Q-31" class="node default default flowchart-label"><rect height="37" width="78.546875" y="-18.5" x="-39.2734375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-31.7734375, -11)" style="" class="label"><rect/><foreignObject height="22" width="63.546875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">注册 SDK</span></div></foreignObject></g></g><g transform="translate(1486.79296875, 1145.1328125)" data-id="R" data-node="true" id="flowchart-R-33" class="node default default flowchart-label"><rect height="37" width="266.484375" y="-18.5" x="-133.2421875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-125.7421875, -11)" style="" class="label"><rect/><foreignObject height="22" width="251.484375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">接收初始化数据: 开关/等级/采样率</span></div></foreignObject></g></g><g transform="translate(1185.140625, 1402.6796875)" data-id="S" data-node="true" id="flowchart-S-35" class="node default default flowchart-label"><polygon style="" transform="translate(-60.9375,60.9375)" class="label-container" points="60.9375,0 121.875,-60.9375 60.9375,-121.875 0,-60.9375"/><g transform="translate(-34.9375, -11)" style="" class="label"><rect/><foreignObject height="22" width="69.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">启用批量?</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1669.3203125)" data-id="V" data-node="true" id="flowchart-V-41" class="node default default flowchart-label"><polygon style="" transform="translate(-96.5703125,96.5703125)" class="label-container" points="96.5703125,0 193.140625,-96.5703125 96.5703125,-193.140625 0,-96.5703125"/><g transform="translate(-72.0703125, -9.5)" style="" class="label"><rect/><foreignObject height="19" width="144.140625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">enableAutoCapture?</span></div></foreignObject></g></g><g transform="translate(2097.1640625, 1958.203125)" data-id="V2" data-node="true" id="flowchart-V2-45" class="node default default flowchart-label"><rect height="37" width="111" y="-18.5" x="-55.5" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-48, -11)" style="" class="label"><rect/><foreignObject height="22" width="96"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">跳过自动采集</span></div></foreignObject></g></g></g></g></g></svg>