lycheex-system 1.2.1 → 1.3.0
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/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +113 -144
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,oBAAoB,CACyC;gBAEzD,MAAM,GAAE,YAAiB;IAQrC;;OAEG;YACW,aAAa;IAiC3B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAqCrC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKjD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAuC3C;;OAEG;IACG,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA4D3D;;OAEG;YACW,2BAA2B;IAoFzC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAoB1C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IA6B3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IA0C1C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IA6B5C;;OAEG;YACW,sBAAsB;IAwBpC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IA6B5C;;OAEG;YACW,cAAc;IAqD5B;;OAEG;YACW,cAAc;IA4D5B;;OAEG;YACW,gBAAgB;IAQ9B;;OAEG;YACW,iBAAiB;CAKhC;AAMD,eAAe,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -40,7 +40,7 @@ exports.SystemConfigClient = void 0;
|
|
|
40
40
|
/**
|
|
41
41
|
* 系统配置客户端 - 设备管理和配置验证
|
|
42
42
|
*/
|
|
43
|
-
const { machineId } = require(
|
|
43
|
+
const { machineId } = require("node-machine-id");
|
|
44
44
|
const si = __importStar(require("systeminformation"));
|
|
45
45
|
const fs = __importStar(require("fs"));
|
|
46
46
|
const path = __importStar(require("path"));
|
|
@@ -52,35 +52,37 @@ class SystemConfigClient {
|
|
|
52
52
|
constructor(config = {}) {
|
|
53
53
|
this.serverPublicKey = null;
|
|
54
54
|
this.serverUrl = null;
|
|
55
|
-
this.defaultDecryptionKey =
|
|
55
|
+
this.defaultDecryptionKey = "RAU9ZYEIZSG67RSMGGHF8DL069GGXUT8MOUO0FDEZHK94XP74MZD1386JPWRE7T7";
|
|
56
56
|
this.config = config;
|
|
57
|
-
this.configFilePath =
|
|
58
|
-
|
|
57
|
+
this.configFilePath =
|
|
58
|
+
config.configFilePath || path.join(process.cwd(), "License");
|
|
59
|
+
this.publicKeyPath =
|
|
60
|
+
config.publicKeyPath || path.join(process.cwd(), ".public_key.pem");
|
|
59
61
|
}
|
|
60
62
|
/**
|
|
61
63
|
* 读取和解析.env文件
|
|
62
64
|
*/
|
|
63
65
|
async loadEnvConfig() {
|
|
64
|
-
const envPath = this.config.envPath || path.join(process.cwd(),
|
|
66
|
+
const envPath = this.config.envPath || path.join(process.cwd(), ".env");
|
|
65
67
|
try {
|
|
66
|
-
const envContent = await fs.promises.readFile(envPath,
|
|
68
|
+
const envContent = await fs.promises.readFile(envPath, "utf8");
|
|
67
69
|
const envConfig = {};
|
|
68
|
-
envContent.split(
|
|
70
|
+
envContent.split("\n").forEach((line) => {
|
|
69
71
|
const trimmedLine = line.trim();
|
|
70
|
-
if (trimmedLine && !trimmedLine.startsWith(
|
|
71
|
-
const [key, ...valueParts] = trimmedLine.split(
|
|
72
|
+
if (trimmedLine && !trimmedLine.startsWith("#")) {
|
|
73
|
+
const [key, ...valueParts] = trimmedLine.split("=");
|
|
72
74
|
if (key && valueParts.length > 0) {
|
|
73
|
-
envConfig[key.trim()] = valueParts.join(
|
|
75
|
+
envConfig[key.trim()] = valueParts.join("=").trim();
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
});
|
|
77
79
|
return {
|
|
78
80
|
activationCode: envConfig.ACTIVATION_CODE,
|
|
79
|
-
activationServer: envConfig.ACTIVATION_SERVER
|
|
81
|
+
activationServer: envConfig.ACTIVATION_SERVER,
|
|
80
82
|
};
|
|
81
83
|
}
|
|
82
84
|
catch (error) {
|
|
83
|
-
console.warn(
|
|
85
|
+
console.warn("Failed to read .env file:", error instanceof Error ? error.message : "Unknown error");
|
|
84
86
|
return {};
|
|
85
87
|
}
|
|
86
88
|
}
|
|
@@ -99,16 +101,16 @@ class SystemConfigClient {
|
|
|
99
101
|
// 从.env文件读取加密的服务器URL
|
|
100
102
|
const envConfig = await this.loadEnvConfig();
|
|
101
103
|
if (!envConfig.activationServer) {
|
|
102
|
-
throw new Error(
|
|
104
|
+
throw new Error("ACTIVATION_SERVER not found in .env file and no serverUrl provided in config");
|
|
103
105
|
}
|
|
104
106
|
try {
|
|
105
107
|
const decryptionKey = this.config.decryptionKey || this.defaultDecryptionKey;
|
|
106
108
|
this.serverUrl = device_utils_1.CryptoUtils.decrypt(envConfig.activationServer, decryptionKey);
|
|
107
|
-
console.log(
|
|
109
|
+
console.log("🔓 Decrypted server URL successfully");
|
|
108
110
|
return this.serverUrl;
|
|
109
111
|
}
|
|
110
112
|
catch (error) {
|
|
111
|
-
throw new Error(`Failed to decrypt ACTIVATION_SERVER: ${error instanceof Error ? error.message :
|
|
113
|
+
throw new Error(`Failed to decrypt ACTIVATION_SERVER: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
112
114
|
}
|
|
113
115
|
}
|
|
114
116
|
/**
|
|
@@ -127,7 +129,7 @@ class SystemConfigClient {
|
|
|
127
129
|
}
|
|
128
130
|
// 尝试从本地文件读取
|
|
129
131
|
try {
|
|
130
|
-
const publicKey = await fs.promises.readFile(this.publicKeyPath,
|
|
132
|
+
const publicKey = await fs.promises.readFile(this.publicKeyPath, "utf8");
|
|
131
133
|
this.serverPublicKey = publicKey;
|
|
132
134
|
return publicKey;
|
|
133
135
|
}
|
|
@@ -137,16 +139,16 @@ class SystemConfigClient {
|
|
|
137
139
|
try {
|
|
138
140
|
const serverUrl = await this.getServerUrl();
|
|
139
141
|
const response = await axios_1.default.get(`${serverUrl}/api/public-key`, {
|
|
140
|
-
timeout: this.config.timeout || 30000
|
|
142
|
+
timeout: this.config.timeout || 30000,
|
|
141
143
|
});
|
|
142
144
|
if (response.data.success) {
|
|
143
145
|
this.serverPublicKey = response.data.publicKey;
|
|
144
146
|
// 保存到本地文件
|
|
145
|
-
await fs.promises.writeFile(this.publicKeyPath, this.serverPublicKey,
|
|
147
|
+
await fs.promises.writeFile(this.publicKeyPath, this.serverPublicKey, "utf8");
|
|
146
148
|
return this.serverPublicKey;
|
|
147
149
|
}
|
|
148
150
|
else {
|
|
149
|
-
throw new Error(
|
|
151
|
+
throw new Error("Failed to get public key from server");
|
|
150
152
|
}
|
|
151
153
|
}
|
|
152
154
|
catch (error) {
|
|
@@ -163,7 +165,7 @@ class SystemConfigClient {
|
|
|
163
165
|
if (!envConfigCode) {
|
|
164
166
|
return {
|
|
165
167
|
success: false,
|
|
166
|
-
error:
|
|
168
|
+
error: "Config code not provided and ACTIVATION_CODE not found in .env file",
|
|
167
169
|
};
|
|
168
170
|
}
|
|
169
171
|
configCode = envConfigCode;
|
|
@@ -176,9 +178,9 @@ class SystemConfigClient {
|
|
|
176
178
|
const response = await axios_1.default.post(`${serverUrl}/api/activate`, {
|
|
177
179
|
licenseCode: configCode,
|
|
178
180
|
machineCode,
|
|
179
|
-
machineInfo
|
|
181
|
+
machineInfo,
|
|
180
182
|
}, {
|
|
181
|
-
timeout: this.config.timeout || 30000
|
|
183
|
+
timeout: this.config.timeout || 30000,
|
|
182
184
|
});
|
|
183
185
|
if (response.data.success) {
|
|
184
186
|
// 验证并保存配置文件
|
|
@@ -188,20 +190,20 @@ class SystemConfigClient {
|
|
|
188
190
|
return {
|
|
189
191
|
success: true,
|
|
190
192
|
configId: response.data.data.activationId,
|
|
191
|
-
expiresAt: new Date(response.data.data.expiresAt)
|
|
193
|
+
expiresAt: new Date(response.data.data.expiresAt),
|
|
192
194
|
};
|
|
193
195
|
}
|
|
194
196
|
else {
|
|
195
197
|
return {
|
|
196
198
|
success: false,
|
|
197
|
-
error: response.data.message
|
|
199
|
+
error: response.data.message,
|
|
198
200
|
};
|
|
199
201
|
}
|
|
200
202
|
}
|
|
201
203
|
catch (error) {
|
|
202
204
|
return {
|
|
203
205
|
success: false,
|
|
204
|
-
error: error.message ||
|
|
206
|
+
error: error.message || "Activation failed",
|
|
205
207
|
};
|
|
206
208
|
}
|
|
207
209
|
}
|
|
@@ -209,58 +211,61 @@ class SystemConfigClient {
|
|
|
209
211
|
* 验证License文件并提取数据
|
|
210
212
|
*/
|
|
211
213
|
async verifyAndExtractLicenseData(licenseFile) {
|
|
212
|
-
if (licenseFile.header?.version !==
|
|
213
|
-
throw new Error(
|
|
214
|
+
if (licenseFile.header?.version !== "2.0") {
|
|
215
|
+
throw new Error("Unsupported license file version");
|
|
214
216
|
}
|
|
215
217
|
const { payload, signature, integrity } = licenseFile;
|
|
216
218
|
if (!payload || !signature) {
|
|
217
|
-
throw new Error(
|
|
219
|
+
throw new Error("Invalid license file structure");
|
|
218
220
|
}
|
|
219
221
|
// 第一层验证:文件完整性验证
|
|
220
222
|
if (integrity && this.serverPublicKey) {
|
|
221
|
-
console.log(
|
|
223
|
+
console.log("🔍 Performing file integrity verification...");
|
|
222
224
|
// 重建基础license文件进行哈希计算
|
|
223
225
|
const baseLicense = {
|
|
224
226
|
header: licenseFile.header,
|
|
225
227
|
payload: licenseFile.payload,
|
|
226
|
-
signature: licenseFile.signature
|
|
228
|
+
signature: licenseFile.signature,
|
|
227
229
|
};
|
|
228
230
|
const licenseString = JSON.stringify(baseLicense, null, 2);
|
|
229
|
-
const calculatedHash = crypto
|
|
231
|
+
const calculatedHash = crypto
|
|
232
|
+
.createHash("sha256")
|
|
233
|
+
.update(licenseString, "utf8")
|
|
234
|
+
.digest("hex");
|
|
230
235
|
if (calculatedHash !== integrity.fileHash) {
|
|
231
|
-
throw new Error(
|
|
236
|
+
throw new Error("File integrity check failed: hash mismatch");
|
|
232
237
|
}
|
|
233
238
|
// 验证完整性签名
|
|
234
239
|
const integrityData = {
|
|
235
240
|
fileHash: integrity.fileHash,
|
|
236
241
|
timestamp: licenseFile.header.timestamp,
|
|
237
|
-
version: licenseFile.header.version
|
|
242
|
+
version: licenseFile.header.version,
|
|
238
243
|
};
|
|
239
|
-
const integrityValid = crypto.verify(
|
|
244
|
+
const integrityValid = crypto.verify("sha256", Buffer.from(JSON.stringify(integrityData)), {
|
|
240
245
|
key: this.serverPublicKey,
|
|
241
|
-
padding: crypto.constants.RSA_PKCS1_PSS_PADDING
|
|
242
|
-
}, Buffer.from(integrity.signature,
|
|
246
|
+
padding: crypto.constants.RSA_PKCS1_PSS_PADDING,
|
|
247
|
+
}, Buffer.from(integrity.signature, "base64"));
|
|
243
248
|
if (!integrityValid) {
|
|
244
|
-
throw new Error(
|
|
249
|
+
throw new Error("File integrity signature verification failed");
|
|
245
250
|
}
|
|
246
|
-
console.log(
|
|
251
|
+
console.log("✅ File integrity verification passed");
|
|
247
252
|
}
|
|
248
253
|
// Base64解码
|
|
249
|
-
const decodedPayload = Buffer.from(payload,
|
|
254
|
+
const decodedPayload = Buffer.from(payload, "base64").toString("utf8");
|
|
250
255
|
const licenseData = JSON.parse(decodedPayload);
|
|
251
256
|
// 第二层验证:RSA签名验证(对原始payload数据)
|
|
252
257
|
if (this.serverPublicKey) {
|
|
253
|
-
console.log(
|
|
254
|
-
const isValid = crypto.verify(
|
|
258
|
+
console.log("🔍 Performing RSA signature verification...");
|
|
259
|
+
const isValid = crypto.verify("sha256", Buffer.from(decodedPayload), {
|
|
255
260
|
key: this.serverPublicKey,
|
|
256
|
-
padding: crypto.constants.RSA_PKCS1_PSS_PADDING
|
|
257
|
-
}, Buffer.from(signature,
|
|
261
|
+
padding: crypto.constants.RSA_PKCS1_PSS_PADDING,
|
|
262
|
+
}, Buffer.from(signature, "base64"));
|
|
258
263
|
if (!isValid) {
|
|
259
|
-
throw new Error(
|
|
264
|
+
throw new Error("RSA signature verification failed");
|
|
260
265
|
}
|
|
261
|
-
console.log(
|
|
266
|
+
console.log("✅ RSA signature verification passed");
|
|
262
267
|
}
|
|
263
|
-
console.log(
|
|
268
|
+
console.log("🛡️ All security verifications passed");
|
|
264
269
|
return licenseData;
|
|
265
270
|
}
|
|
266
271
|
/**
|
|
@@ -281,7 +286,7 @@ class SystemConfigClient {
|
|
|
281
286
|
catch (error) {
|
|
282
287
|
return {
|
|
283
288
|
valid: false,
|
|
284
|
-
error: error.message ||
|
|
289
|
+
error: error.message || "Validation failed",
|
|
285
290
|
};
|
|
286
291
|
}
|
|
287
292
|
}
|
|
@@ -291,22 +296,22 @@ class SystemConfigClient {
|
|
|
291
296
|
async checkOffline() {
|
|
292
297
|
const configFile = await this.readConfigFile();
|
|
293
298
|
if (!configFile) {
|
|
294
|
-
return { valid: false, error:
|
|
299
|
+
return { valid: false, error: "Config file not found" };
|
|
295
300
|
}
|
|
296
301
|
const configData = await this.decryptConfigFile(configFile);
|
|
297
302
|
const currentMachineCode = await this.generateMachineCode();
|
|
298
303
|
if (configData.machineCode !== currentMachineCode) {
|
|
299
|
-
return { valid: false, error:
|
|
304
|
+
return { valid: false, error: "Machine code mismatch" };
|
|
300
305
|
}
|
|
301
306
|
const expiresAt = new Date(configData.expiresAt);
|
|
302
307
|
if (new Date() > expiresAt) {
|
|
303
|
-
return { valid: false, error:
|
|
308
|
+
return { valid: false, error: "Config expired" };
|
|
304
309
|
}
|
|
305
310
|
const remainingDays = Math.ceil((expiresAt.getTime() - new Date().getTime()) / (1000 * 60 * 60 * 24));
|
|
306
311
|
return {
|
|
307
312
|
valid: true,
|
|
308
313
|
expiresAt,
|
|
309
|
-
remainingDays
|
|
314
|
+
remainingDays,
|
|
310
315
|
};
|
|
311
316
|
}
|
|
312
317
|
/**
|
|
@@ -316,68 +321,38 @@ class SystemConfigClient {
|
|
|
316
321
|
try {
|
|
317
322
|
const configFile = await this.readConfigFile();
|
|
318
323
|
if (!configFile) {
|
|
319
|
-
return { valid: false, error:
|
|
324
|
+
return { valid: false, error: "Config file not found" };
|
|
320
325
|
}
|
|
321
326
|
const configData = await this.decryptConfigFile(configFile);
|
|
322
327
|
const machineCode = await this.generateMachineCode();
|
|
323
328
|
const serverUrl = await this.getServerUrl();
|
|
324
329
|
const response = await axios_1.default.post(`${serverUrl}/api/validate`, {
|
|
325
330
|
activationId: configData.activationId,
|
|
326
|
-
machineCode
|
|
331
|
+
machineCode,
|
|
327
332
|
}, {
|
|
328
|
-
timeout: this.config.timeout || 30000
|
|
333
|
+
timeout: this.config.timeout || 30000,
|
|
329
334
|
});
|
|
330
335
|
if (response.data.success && response.data.data.valid) {
|
|
331
336
|
return {
|
|
332
337
|
valid: true,
|
|
333
338
|
expiresAt: new Date(response.data.data.expiresAt),
|
|
334
|
-
remainingDays: response.data.data.remainingDays
|
|
339
|
+
remainingDays: response.data.data.remainingDays,
|
|
335
340
|
};
|
|
336
341
|
}
|
|
337
342
|
else {
|
|
338
343
|
return {
|
|
339
344
|
valid: false,
|
|
340
|
-
error: response.data.message ||
|
|
345
|
+
error: response.data.message || "Online check failed",
|
|
341
346
|
};
|
|
342
347
|
}
|
|
343
348
|
}
|
|
344
349
|
catch (error) {
|
|
345
350
|
return {
|
|
346
351
|
valid: false,
|
|
347
|
-
error: error.message ||
|
|
352
|
+
error: error.message || "Online check failed",
|
|
348
353
|
};
|
|
349
354
|
}
|
|
350
355
|
}
|
|
351
|
-
/**
|
|
352
|
-
* 停用配置
|
|
353
|
-
*/
|
|
354
|
-
async disable(reason) {
|
|
355
|
-
try {
|
|
356
|
-
const configFile = await this.readConfigFile();
|
|
357
|
-
if (!configFile) {
|
|
358
|
-
return { success: false, error: 'Config file not found' };
|
|
359
|
-
}
|
|
360
|
-
const configData = await this.decryptConfigFile(configFile);
|
|
361
|
-
const machineCode = await this.generateMachineCode();
|
|
362
|
-
const serverUrl = await this.getServerUrl();
|
|
363
|
-
const response = await axios_1.default.post(`${serverUrl}/api/deactivate`, {
|
|
364
|
-
activationId: configData.activationId,
|
|
365
|
-
machineCode,
|
|
366
|
-
reason
|
|
367
|
-
});
|
|
368
|
-
if (response.data.success) {
|
|
369
|
-
// 删除本地配置文件
|
|
370
|
-
await this.removeConfigFile();
|
|
371
|
-
return { success: true };
|
|
372
|
-
}
|
|
373
|
-
else {
|
|
374
|
-
return { success: false, error: response.data.message };
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
catch (error) {
|
|
378
|
-
return { success: false, error: error.message || 'Disable failed' };
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
356
|
/**
|
|
382
357
|
* 生成机器码 - 包含实例唯一性防止批量部署
|
|
383
358
|
*/
|
|
@@ -387,16 +362,17 @@ class SystemConfigClient {
|
|
|
387
362
|
const combinedData = {
|
|
388
363
|
hardware: hardwareFingerprint,
|
|
389
364
|
instance: instanceIdentity,
|
|
390
|
-
timestamp: this.getInstallationTimestamp()
|
|
365
|
+
timestamp: this.getInstallationTimestamp(),
|
|
391
366
|
};
|
|
392
367
|
const dataString = JSON.stringify(combinedData, Object.keys(combinedData).sort());
|
|
393
|
-
const machineCode = crypto
|
|
368
|
+
const machineCode = crypto
|
|
369
|
+
.createHash("sha256")
|
|
394
370
|
.update(dataString)
|
|
395
|
-
.digest(
|
|
371
|
+
.digest("hex")
|
|
396
372
|
.substring(0, 32);
|
|
397
|
-
console.log(
|
|
373
|
+
console.log("🔧 Machine code generated:");
|
|
398
374
|
console.log(`📁 Directory: ${instanceIdentity.workingDirectory}`);
|
|
399
|
-
console.log(`🐳 Container: ${instanceIdentity.containerId ||
|
|
375
|
+
console.log(`🐳 Container: ${instanceIdentity.containerId || "host"}`);
|
|
400
376
|
console.log(`🔖 Instance: ${instanceIdentity.instanceName}`);
|
|
401
377
|
console.log(`🆔 Code: ${machineCode}`);
|
|
402
378
|
return machineCode;
|
|
@@ -409,18 +385,19 @@ class SystemConfigClient {
|
|
|
409
385
|
const [cpu, osInfo, system] = await Promise.all([
|
|
410
386
|
si.cpu(),
|
|
411
387
|
si.osInfo(),
|
|
412
|
-
si.system()
|
|
388
|
+
si.system(),
|
|
413
389
|
]);
|
|
414
390
|
const hardwareInfo = {
|
|
415
391
|
machineId: deviceId,
|
|
416
392
|
cpu: `${cpu.manufacturer}-${cpu.brand}-${cpu.cores}`,
|
|
417
393
|
os: `${osInfo.platform}-${osInfo.arch}-${osInfo.distro}`,
|
|
418
394
|
system: `${system.manufacturer}-${system.model}`,
|
|
419
|
-
networkInterfaces: this.getNetworkFingerprint()
|
|
395
|
+
networkInterfaces: this.getNetworkFingerprint(),
|
|
420
396
|
};
|
|
421
|
-
return crypto
|
|
397
|
+
return crypto
|
|
398
|
+
.createHash("sha256")
|
|
422
399
|
.update(JSON.stringify(hardwareInfo))
|
|
423
|
-
.digest(
|
|
400
|
+
.digest("hex")
|
|
424
401
|
.substring(0, 16);
|
|
425
402
|
}
|
|
426
403
|
/**
|
|
@@ -430,12 +407,12 @@ class SystemConfigClient {
|
|
|
430
407
|
const identity = {
|
|
431
408
|
workingDirectory: process.cwd(),
|
|
432
409
|
containerId: this.getContainerId(),
|
|
433
|
-
instanceName: this.config.instanceId || process.env.INSTANCE_ID ||
|
|
434
|
-
listenPort: parseInt(process.env.PORT ||
|
|
410
|
+
instanceName: this.config.instanceId || process.env.INSTANCE_ID || "default",
|
|
411
|
+
listenPort: parseInt(process.env.PORT || "") || undefined,
|
|
435
412
|
};
|
|
436
413
|
// 生成实例UUID
|
|
437
|
-
const instanceData = `${identity.workingDirectory}-${identity.containerId ||
|
|
438
|
-
const namespace =
|
|
414
|
+
const instanceData = `${identity.workingDirectory}-${identity.containerId || "host"}-${identity.instanceName}`;
|
|
415
|
+
const namespace = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
|
|
439
416
|
identity.instanceUUID = (0, uuid_1.v5)(instanceData, namespace);
|
|
440
417
|
return identity;
|
|
441
418
|
}
|
|
@@ -448,16 +425,16 @@ class SystemConfigClient {
|
|
|
448
425
|
return process.env.CONTAINER_ID;
|
|
449
426
|
}
|
|
450
427
|
// 检查 /.dockerenv 文件
|
|
451
|
-
if (fs.existsSync(
|
|
452
|
-
const os = require(
|
|
428
|
+
if (fs.existsSync("/.dockerenv")) {
|
|
429
|
+
const os = require("os");
|
|
453
430
|
const hostname = os.hostname();
|
|
454
431
|
if (hostname.length === 12 && /^[a-f0-9]+$/.test(hostname)) {
|
|
455
432
|
return hostname;
|
|
456
433
|
}
|
|
457
434
|
}
|
|
458
435
|
// 读取 /proc/self/cgroup (Linux)
|
|
459
|
-
if (fs.existsSync(
|
|
460
|
-
const cgroup = fs.readFileSync(
|
|
436
|
+
if (fs.existsSync("/proc/self/cgroup")) {
|
|
437
|
+
const cgroup = fs.readFileSync("/proc/self/cgroup", "utf8");
|
|
461
438
|
const containerMatch = cgroup.match(/\/docker\/([a-f0-9]{64})/);
|
|
462
439
|
if (containerMatch) {
|
|
463
440
|
return containerMatch[1].substring(0, 12);
|
|
@@ -469,32 +446,32 @@ class SystemConfigClient {
|
|
|
469
446
|
* 获取网络接口指纹
|
|
470
447
|
*/
|
|
471
448
|
getNetworkFingerprint() {
|
|
472
|
-
const os = require(
|
|
449
|
+
const os = require("os");
|
|
473
450
|
const interfaces = os.networkInterfaces();
|
|
474
451
|
const macs = [];
|
|
475
452
|
Object.values(interfaces).forEach((iface) => {
|
|
476
453
|
if (iface) {
|
|
477
454
|
iface.forEach((config) => {
|
|
478
|
-
if (config.mac && config.mac !==
|
|
455
|
+
if (config.mac && config.mac !== "00:00:00:00:00:00") {
|
|
479
456
|
macs.push(config.mac);
|
|
480
457
|
}
|
|
481
458
|
});
|
|
482
459
|
}
|
|
483
460
|
});
|
|
484
|
-
return macs.sort().join(
|
|
461
|
+
return macs.sort().join("-");
|
|
485
462
|
}
|
|
486
463
|
/**
|
|
487
464
|
* 获取首次安装时间戳(持久化)
|
|
488
465
|
*/
|
|
489
466
|
getInstallationTimestamp() {
|
|
490
|
-
const os = require(
|
|
491
|
-
const timestampFile = path.join(os.tmpdir(),
|
|
467
|
+
const os = require("os");
|
|
468
|
+
const timestampFile = path.join(os.tmpdir(), ".lycheex-install-time");
|
|
492
469
|
if (fs.existsSync(timestampFile)) {
|
|
493
|
-
const timestamp = fs.readFileSync(timestampFile,
|
|
470
|
+
const timestamp = fs.readFileSync(timestampFile, "utf8");
|
|
494
471
|
return parseInt(timestamp);
|
|
495
472
|
}
|
|
496
473
|
const now = Date.now();
|
|
497
|
-
fs.writeFileSync(timestampFile, now.toString(),
|
|
474
|
+
fs.writeFileSync(timestampFile, now.toString(), "utf8");
|
|
498
475
|
return now;
|
|
499
476
|
}
|
|
500
477
|
/**
|
|
@@ -505,7 +482,7 @@ class SystemConfigClient {
|
|
|
505
482
|
const [cpu, osInfo, mem] = await Promise.all([
|
|
506
483
|
si.cpu(),
|
|
507
484
|
si.osInfo(),
|
|
508
|
-
si.mem()
|
|
485
|
+
si.mem(),
|
|
509
486
|
]);
|
|
510
487
|
return {
|
|
511
488
|
os: `${osInfo.platform} ${osInfo.release}`,
|
|
@@ -513,18 +490,18 @@ class SystemConfigClient {
|
|
|
513
490
|
memory: `${Math.round(mem.total / 1024 / 1024 / 1024)}GB`,
|
|
514
491
|
platform: osInfo.platform,
|
|
515
492
|
arch: osInfo.arch,
|
|
516
|
-
nodeVersion: process.version
|
|
493
|
+
nodeVersion: process.version,
|
|
517
494
|
};
|
|
518
495
|
}
|
|
519
496
|
catch (error) {
|
|
520
|
-
const os = require(
|
|
497
|
+
const os = require("os");
|
|
521
498
|
return {
|
|
522
499
|
os: `${os.platform()} ${os.release()}`,
|
|
523
500
|
cpu: os.cpus()[0].model,
|
|
524
501
|
memory: `${Math.round(os.totalmem() / 1024 / 1024 / 1024)}GB`,
|
|
525
502
|
platform: os.platform(),
|
|
526
503
|
arch: os.arch(),
|
|
527
|
-
nodeVersion: process.version
|
|
504
|
+
nodeVersion: process.version,
|
|
528
505
|
};
|
|
529
506
|
}
|
|
530
507
|
}
|
|
@@ -537,40 +514,41 @@ class SystemConfigClient {
|
|
|
537
514
|
const machineCode = await this.generateMachineCode();
|
|
538
515
|
// 生成加密密钥(结合机器码和默认密钥)
|
|
539
516
|
const keyMaterial = `${this.defaultDecryptionKey}-${machineCode}`;
|
|
540
|
-
const encryptionKey = crypto
|
|
517
|
+
const encryptionKey = crypto
|
|
518
|
+
.createHash("sha256")
|
|
541
519
|
.update(keyMaterial)
|
|
542
520
|
.digest();
|
|
543
521
|
// 生成随机初始化向量
|
|
544
522
|
const iv = crypto.randomBytes(16);
|
|
545
523
|
// 创建加密器
|
|
546
|
-
const cipher = crypto.createCipheriv(
|
|
524
|
+
const cipher = crypto.createCipheriv("aes-256-cbc", encryptionKey, iv);
|
|
547
525
|
// 加密数据
|
|
548
526
|
const jsonData = JSON.stringify(configFile);
|
|
549
527
|
const encrypted = Buffer.concat([
|
|
550
|
-
cipher.update(jsonData,
|
|
551
|
-
cipher.final()
|
|
528
|
+
cipher.update(jsonData, "utf8"),
|
|
529
|
+
cipher.final(),
|
|
552
530
|
]);
|
|
553
531
|
// 生成HMAC用于完整性验证
|
|
554
|
-
const hmac = crypto.createHmac(
|
|
532
|
+
const hmac = crypto.createHmac("sha256", encryptionKey);
|
|
555
533
|
hmac.update(encrypted);
|
|
556
534
|
const authTag = hmac.digest();
|
|
557
535
|
// 组合最终的加密文件格式
|
|
558
536
|
// [魔术字节(4)] [版本(1)] [IV(16)] [认证标签(32)] [加密数据]
|
|
559
|
-
const magicBytes = Buffer.from(
|
|
537
|
+
const magicBytes = Buffer.from("SYCF", "utf8"); // System Config File
|
|
560
538
|
const version = Buffer.from([0x01]); // 版本1
|
|
561
539
|
const encryptedFile = Buffer.concat([
|
|
562
540
|
magicBytes,
|
|
563
541
|
version,
|
|
564
542
|
iv,
|
|
565
543
|
authTag,
|
|
566
|
-
encrypted
|
|
544
|
+
encrypted,
|
|
567
545
|
]);
|
|
568
546
|
// 保存为二进制文件
|
|
569
547
|
await fs.promises.writeFile(this.configFilePath, encryptedFile);
|
|
570
|
-
console.log(
|
|
548
|
+
console.log("🔐 配置文件已加密保存");
|
|
571
549
|
}
|
|
572
550
|
catch (error) {
|
|
573
|
-
console.error(
|
|
551
|
+
console.error("保存加密配置文件失败:", error);
|
|
574
552
|
throw error;
|
|
575
553
|
}
|
|
576
554
|
}
|
|
@@ -582,14 +560,14 @@ class SystemConfigClient {
|
|
|
582
560
|
// 读取二进制文件
|
|
583
561
|
const encryptedFile = await fs.promises.readFile(this.configFilePath);
|
|
584
562
|
// 验证文件格式
|
|
585
|
-
const magicBytes = encryptedFile.slice(0, 4).toString(
|
|
586
|
-
if (magicBytes !==
|
|
587
|
-
throw new Error(
|
|
563
|
+
const magicBytes = encryptedFile.slice(0, 4).toString("utf8");
|
|
564
|
+
if (magicBytes !== "SYCF") {
|
|
565
|
+
throw new Error("Invalid config file format");
|
|
588
566
|
}
|
|
589
567
|
// 读取版本
|
|
590
568
|
const version = encryptedFile[4];
|
|
591
569
|
if (version !== 0x01) {
|
|
592
|
-
throw new Error(
|
|
570
|
+
throw new Error("Unsupported config file version");
|
|
593
571
|
}
|
|
594
572
|
// 提取各部分
|
|
595
573
|
const iv = encryptedFile.slice(5, 21);
|
|
@@ -599,37 +577,28 @@ class SystemConfigClient {
|
|
|
599
577
|
const machineCode = await this.generateMachineCode();
|
|
600
578
|
// 生成解密密钥
|
|
601
579
|
const keyMaterial = `${this.defaultDecryptionKey}-${machineCode}`;
|
|
602
|
-
const decryptionKey = crypto
|
|
580
|
+
const decryptionKey = crypto
|
|
581
|
+
.createHash("sha256")
|
|
603
582
|
.update(keyMaterial)
|
|
604
583
|
.digest();
|
|
605
584
|
// 验证HMAC
|
|
606
|
-
const hmac = crypto.createHmac(
|
|
585
|
+
const hmac = crypto.createHmac("sha256", decryptionKey);
|
|
607
586
|
hmac.update(encrypted);
|
|
608
587
|
const calculatedTag = hmac.digest();
|
|
609
588
|
if (!authTag.equals(calculatedTag)) {
|
|
610
|
-
throw new Error(
|
|
589
|
+
throw new Error("Config file integrity check failed");
|
|
611
590
|
}
|
|
612
591
|
// 解密数据
|
|
613
|
-
const decipher = crypto.createDecipheriv(
|
|
592
|
+
const decipher = crypto.createDecipheriv("aes-256-cbc", decryptionKey, iv);
|
|
614
593
|
const decrypted = Buffer.concat([
|
|
615
594
|
decipher.update(encrypted),
|
|
616
|
-
decipher.final()
|
|
595
|
+
decipher.final(),
|
|
617
596
|
]);
|
|
618
597
|
// 解析JSON
|
|
619
|
-
const jsonData = decrypted.toString(
|
|
598
|
+
const jsonData = decrypted.toString("utf8");
|
|
620
599
|
return JSON.parse(jsonData);
|
|
621
600
|
}
|
|
622
601
|
catch (error) {
|
|
623
|
-
// 如果是新格式解密失败,尝试读取旧格式(向后兼容)
|
|
624
|
-
if (error.message === 'Invalid config file format') {
|
|
625
|
-
try {
|
|
626
|
-
const data = await fs.promises.readFile(this.configFilePath, 'utf8');
|
|
627
|
-
return JSON.parse(data);
|
|
628
|
-
}
|
|
629
|
-
catch {
|
|
630
|
-
return null;
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
602
|
return null;
|
|
634
603
|
}
|
|
635
604
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACjD,sDAAwC;AACxC,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AACjC,kDAA0B;AAC1B,+BAAkD;AAClD,iDAA6C;AAmC7C,MAAa,kBAAkB;IAS7B,YAAY,SAAuB,EAAE;QAL7B,oBAAe,GAAkB,IAAI,CAAC;QACtC,cAAS,GAAkB,IAAI,CAAC;QAChC,yBAAoB,GAC1B,kEAAkE,CAAC;QAGnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc;YACjB,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa;YAChB,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa;QAIzB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAExE,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAQ,EAAE,CAAC;YAE1B,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChC,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChD,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACpD,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACtD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,cAAc,EAAE,SAAS,CAAC,eAAe;gBACzC,gBAAgB,EAAE,SAAS,CAAC,iBAAiB;aAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,2BAA2B,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACzD,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACvC,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,qBAAqB;QACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,aAAa,GACjB,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB,CAAC;YACzD,IAAI,CAAC,SAAS,GAAG,0BAAW,CAAC,OAAO,CAClC,SAAS,CAAC,gBAAgB,EAC1B,aAAa,CACd,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,wCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,YAAY;QACZ,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAe;QACjB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,SAAS,iBAAiB,EAAE;gBAC9D,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK;aACtC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBAE/C,UAAU;gBACV,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAgB,EACrB,MAAM,CACP,CAAC;gBAEF,OAAO,IAAI,CAAC,eAAgB,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,UAAmB;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACrD,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EACH,qEAAqE;qBACxE,CAAC;gBACJ,CAAC;gBACD,UAAU,GAAG,aAAa,CAAC;YAC7B,CAAC;YAED,YAAY;YACZ,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEhC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAE5C,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,GAAG,SAAS,eAAe,EAC3B;gBACE,WAAW,EAAE,UAAU;gBACvB,WAAW;gBACX,WAAW;aACZ,EACD;gBACE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK;aACtC,CACF,CAAC;YAEF,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1B,YAAY;gBACZ,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;gBACnD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACzD,WAAW,CACZ,CAAC;gBACF,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBAExC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;oBACzC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;iBAClD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO;iBAC7B,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,mBAAmB;aAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,2BAA2B,CAAC,WAAgB;QACxD,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;QACtD,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,gBAAgB;QAChB,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAE5D,sBAAsB;YACtB,MAAM,WAAW,GAAG;gBAClB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,SAAS,EAAE,WAAW,CAAC,SAAS;aACjC,CAAC;YAEF,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3D,MAAM,cAAc,GAAG,MAAM;iBAC1B,UAAU,CAAC,QAAQ,CAAC;iBACpB,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC;iBAC7B,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjB,IAAI,cAAc,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YAED,UAAU;YACV,MAAM,aAAa,GAAG;gBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS;gBACvC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO;aACpC,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EAC1C;gBACE,GAAG,EAAE,IAAI,CAAC,eAAe;gBACzB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB;aAChD,EACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAC3C,CAAC;YAEF,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;QAED,WAAW;QACX,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAE/C,8BAA8B;QAC9B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAE3D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAC3B;gBACE,GAAG,EAAE,IAAI,CAAC,eAAe;gBACzB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,qBAAqB;aAChD,EACD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CACjC,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,UAAU;YACV,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;gBACxB,SAAS;gBACT,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,OAAO;gBAC3C,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,gBAAgB;YAChB,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,mBAAmB;aAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE5D,IAAI,UAAU,CAAC,WAAW,KAAK,kBAAkB,EAAE,CAAC;YAClD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,IAAI,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;QACnD,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CACrE,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,IAAI;YACX,SAAS;YACT,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;YAC1D,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAErD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,GAAG,SAAS,eAAe,EAC3B;gBACE,YAAY,EAAE,UAAU,CAAC,YAAY;gBACrC,WAAW;aACZ,EACD;gBACE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK;aACtC,CACF,CAAC;YAEF,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACtD,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjD,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;iBAChD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,qBAAqB;iBACtD,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,qBAAqB;aAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEpD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,IAAI,CAAC,wBAAwB,EAAE;SAC3C,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAC/B,YAAY,EACZ,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CACjC,CAAC;QACF,MAAM,WAAW,GAAG,MAAM;aACvB,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CAAC,UAAU,CAAC;aAClB,MAAM,CAAC,KAAK,CAAC;aACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEpB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,iBAAiB,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,iBAAiB,gBAAgB,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,gBAAgB,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC;QAEvC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB;QAClC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,EAAE,CAAC,GAAG,EAAE;YACR,EAAE,CAAC,MAAM,EAAE;YACX,EAAE,CAAC,MAAM,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG;YACnB,SAAS,EAAE,QAAQ;YACnB,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE;YACpD,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;YACxD,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE;YAChD,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE;SAChD,CAAC;QAEF,OAAO,MAAM;aACV,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;aACpC,MAAM,CAAC,KAAK,CAAC;aACb,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,MAAM,QAAQ,GAAQ;YACpB,gBAAgB,EAAE,OAAO,CAAC,GAAG,EAAE;YAC/B,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;YAClC,YAAY,EACV,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,SAAS;YAChE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,SAAS;SAC1D,CAAC;QAEF,WAAW;QACX,MAAM,YAAY,GAAG,GAAG,QAAQ,CAAC,gBAAgB,IAC/C,QAAQ,CAAC,WAAW,IAAI,MAC1B,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,sCAAsC,CAAC;QACzD,QAAQ,CAAC,YAAY,GAAG,IAAA,SAAM,EAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAExD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,WAAW;QACX,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAClC,CAAC;QAED,oBAAoB;QACpB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAChE,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;oBAC5B,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,mBAAmB,EAAE,CAAC;wBACrD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAEtE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzD,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3C,EAAE,CAAC,GAAG,EAAE;gBACR,EAAE,CAAC,MAAM,EAAE;gBACX,EAAE,CAAC,GAAG,EAAE;aACT,CAAC,CAAC;YAEH,OAAO;gBACL,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE;gBAC1C,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,KAAK,EAAE;gBACvC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI;gBACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,OAAO,CAAC,OAAO;aAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;gBACL,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gBACtC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;gBACvB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI;gBAC7D,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;gBACvB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACf,WAAW,EAAE,OAAO,CAAC,OAAO;aAC7B,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,UAAe;QAC1C,IAAI,CAAC;YACH,kBAAkB;YAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAErD,qBAAqB;YACrB,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,oBAAoB,IAAI,WAAW,EAAE,CAAC;YAClE,MAAM,aAAa,GAAG,MAAM;iBACzB,UAAU,CAAC,QAAQ,CAAC;iBACpB,MAAM,CAAC,WAAW,CAAC;iBACnB,MAAM,EAAE,CAAC;YAEZ,YAAY;YACZ,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAElC,QAAQ;YACR,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;YAEvE,OAAO;YACP,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAC/B,MAAM,CAAC,KAAK,EAAE;aACf,CAAC,CAAC;YAEH,gBAAgB;YAChB,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAE9B,cAAc;YACd,+CAA+C;YAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB;YACrE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;YAE3C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;gBAClC,UAAU;gBACV,OAAO;gBACP,EAAE;gBACF,OAAO;gBACP,SAAS;aACV,CAAC,CAAC;YAEH,WAAW;YACX,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;YAEhE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,UAAU;YACV,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEtE,SAAS;YACT,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,OAAO;YACP,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YAED,QAAQ;YACR,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE1C,kBAAkB;YAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAErD,SAAS;YACT,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,oBAAoB,IAAI,WAAW,EAAE,CAAC;YAClE,MAAM,aAAa,GAAG,MAAM;iBACzB,UAAU,CAAC,QAAQ,CAAC;iBACpB,MAAM,CAAC,WAAW,CAAC;iBACnB,MAAM,EAAE,CAAC;YAEZ,SAAS;YACT,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAEpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YAED,OAAO;YACP,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CACtC,aAAa,EACb,aAAa,EACb,EAAE,CACH,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1B,QAAQ,CAAC,KAAK,EAAE;aACjB,CAAC,CAAC;YAEH,SAAS;YACT,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,UAAe;QAC7C,sDAAsD;QACtD,4BAA4B;QAC5B,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAxsBD,gDAwsBC;AAED,OAAO;AACP,mCAAmC;AAEnC,OAAO;AACP,kBAAe,kBAAkB,CAAC"}
|