easyeda-mcp-pro 1.3.0 → 1.5.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/README.md +18 -16
- package/dist/bridge/manager.js +32 -7
- package/dist/bridge/manager.js.map +1 -1
- package/dist/bridge/types.d.ts +1 -0
- package/dist/bridge/types.js +1 -0
- package/dist/bridge/types.js.map +1 -1
- package/dist/cli/auto-setup.js +4 -11
- package/dist/cli/auto-setup.js.map +1 -1
- package/dist/cli/client-definitions.d.ts +1 -0
- package/dist/cli/client-definitions.js +1 -1
- package/dist/cli/client-definitions.js.map +1 -1
- package/dist/config/profiles.js +3 -3
- package/dist/config/version.d.ts +1 -1
- package/dist/config/version.js +1 -1
- package/dist/layout/index.d.ts +0 -5
- package/dist/layout/index.js +0 -5
- package/dist/layout/index.js.map +1 -1
- package/dist/package-build-manifest.json +136 -211
- package/dist/remote/gateway.d.ts +5 -1
- package/dist/remote/gateway.js +79 -3
- package/dist/remote/gateway.js.map +1 -1
- package/dist/schematic-engine/index.d.ts +0 -1
- package/dist/schematic-engine/index.js +0 -1
- package/dist/schematic-engine/index.js.map +1 -1
- package/dist/schematic-model/normalization-plan.d.ts +5 -0
- package/dist/schematic-model/normalization-plan.js +12 -11
- package/dist/schematic-model/normalization-plan.js.map +1 -1
- package/dist/server/transports/http.js +1 -1
- package/dist/server/transports/http.js.map +1 -1
- package/dist/storage/database.d.ts +7 -33
- package/dist/storage/database.js +7 -155
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/types.d.ts +0 -17
- package/dist/tools/L1_catalog.js +1 -2
- package/dist/tools/L1_catalog.js.map +1 -1
- package/dist/tools/L1_pcb_read.js +109 -12
- package/dist/tools/L1_pcb_read.js.map +1 -1
- package/dist/tools/L1_pcb_write.js +105 -18
- package/dist/tools/L1_pcb_write.js.map +1 -1
- package/dist/tools/L1_schematic_read.js +2 -14
- package/dist/tools/L1_schematic_read.js.map +1 -1
- package/dist/tools/L2_workflows.js +45 -74
- package/dist/tools/L2_workflows.js.map +1 -1
- package/dist/tools/pcb-zone-preview.d.ts +40 -0
- package/dist/tools/pcb-zone-preview.js +76 -0
- package/dist/tools/pcb-zone-preview.js.map +1 -0
- package/dist/tools/types.d.ts +1 -1
- package/dist/vendors/base-http-client.d.ts +0 -10
- package/dist/vendors/base-http-client.js +2 -12
- package/dist/vendors/base-http-client.js.map +1 -1
- package/dist/workflows/schematic-layout-qa-geometry-rules.js +1 -8
- package/dist/workflows/schematic-layout-qa-geometry-rules.js.map +1 -1
- package/dist/workflows/schematic-layout-qa-issue.d.ts +2 -0
- package/dist/workflows/schematic-layout-qa-issue.js +9 -0
- package/dist/workflows/schematic-layout-qa-issue.js.map +1 -0
- package/dist/workflows/schematic-layout-qa-topology-rules.js +1 -8
- package/dist/workflows/schematic-layout-qa-topology-rules.js.map +1 -1
- package/dist/workflows/schematic-layout-qa.js +1 -8
- package/dist/workflows/schematic-layout-qa.js.map +1 -1
- package/easyeda-bridge-extension.checksums.json +8 -8
- package/easyeda-bridge-extension.eext +0 -0
- package/package.json +4 -4
- package/dist/layout/block-detector.d.ts +0 -3
- package/dist/layout/block-detector.js +0 -252
- package/dist/layout/block-detector.js.map +0 -1
- package/dist/layout/geometry.d.ts +0 -20
- package/dist/layout/geometry.js +0 -150
- package/dist/layout/geometry.js.map +0 -1
- package/dist/layout/graph.d.ts +0 -5
- package/dist/layout/graph.js +0 -185
- package/dist/layout/graph.js.map +0 -1
- package/dist/layout/operations.d.ts +0 -7
- package/dist/layout/operations.js +0 -170
- package/dist/layout/operations.js.map +0 -1
- package/dist/layout/types.d.ts +0 -281
- package/dist/layout/types.js +0 -2
- package/dist/layout/types.js.map +0 -1
- package/dist/schematic-engine/errors.d.ts +0 -22
- package/dist/schematic-engine/errors.js +0 -83
- package/dist/schematic-engine/errors.js.map +0 -1
- package/dist/schematic-model/model-validator.d.ts +0 -8
- package/dist/schematic-model/model-validator.js +0 -180
- package/dist/schematic-model/model-validator.js.map +0 -1
package/dist/storage/database.js
CHANGED
|
@@ -2,7 +2,6 @@ import { DatabaseSync } from 'node:sqlite';
|
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as fs from 'node:fs';
|
|
4
4
|
import { getLogger } from '../utils/logger.js';
|
|
5
|
-
import { getGlobalMetricsCollector } from '../observability/index.js';
|
|
6
5
|
function rowToVerifiedDeviceRecord(row) {
|
|
7
6
|
return {
|
|
8
7
|
lcscId: row.lcsc_id,
|
|
@@ -17,10 +16,10 @@ function rowToVerifiedDeviceRecord(row) {
|
|
|
17
16
|
/**
|
|
18
17
|
* SQLite-backed persistent storage for the MCP server.
|
|
19
18
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
19
|
+
* Stores verified catalog devices. Retains legacy cache/artifact tables for
|
|
20
|
+
* compatibility with existing databases. Uses WAL mode and foreign keys for safety.
|
|
21
|
+
* Read operations fail safely; persistence methods report failure explicitly
|
|
22
|
+
* so a write error cannot be mistaken for a committed cache entry.
|
|
24
23
|
*/
|
|
25
24
|
export class Storage {
|
|
26
25
|
db;
|
|
@@ -91,138 +90,7 @@ export class Storage {
|
|
|
91
90
|
this.initialized = true;
|
|
92
91
|
logger.info({ path: this.config.SQLITE_PATH }, 'storage initialized');
|
|
93
92
|
}
|
|
94
|
-
/**
|
|
95
|
-
cacheGet(key) {
|
|
96
|
-
try {
|
|
97
|
-
const row = this.db
|
|
98
|
-
.prepare(`SELECT value FROM cache WHERE key = ? AND (expires_at IS NULL OR expires_at > datetime('now'))`)
|
|
99
|
-
.get(key);
|
|
100
|
-
const value = row?.value ?? null;
|
|
101
|
-
getGlobalMetricsCollector().recordCache(value === null ? 'miss' : 'hit');
|
|
102
|
-
return value;
|
|
103
|
-
}
|
|
104
|
-
catch (err) {
|
|
105
|
-
getLogger().error({ err, key }, 'cacheGet failed');
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Store a value in the cache.
|
|
111
|
-
* @param ttlSec Time-to-live in seconds. 0 means never expire.
|
|
112
|
-
*/
|
|
113
|
-
cacheSet(key, value, ttlSec = 0) {
|
|
114
|
-
try {
|
|
115
|
-
const expiresAt = ttlSec > 0 ? new Date(Date.now() + ttlSec * 1000).toISOString() : null;
|
|
116
|
-
this.db
|
|
117
|
-
.prepare(`INSERT OR REPLACE INTO cache (key, value, ttl, expires_at) VALUES (?, ?, ?, ?)`)
|
|
118
|
-
.run(key, value, ttlSec, expiresAt);
|
|
119
|
-
getGlobalMetricsCollector().recordCache('write');
|
|
120
|
-
}
|
|
121
|
-
catch (err) {
|
|
122
|
-
getLogger().error({ err, key }, 'cacheSet failed');
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/** Remove a single cache entry by key. */
|
|
126
|
-
cacheDelete(key) {
|
|
127
|
-
try {
|
|
128
|
-
this.db.prepare('DELETE FROM cache WHERE key = ?').run(key);
|
|
129
|
-
getGlobalMetricsCollector().recordCache('delete');
|
|
130
|
-
}
|
|
131
|
-
catch (err) {
|
|
132
|
-
getLogger().error({ err, key }, 'cacheDelete failed');
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/** Remove all cache entries. */
|
|
136
|
-
cacheClear() {
|
|
137
|
-
try {
|
|
138
|
-
this.db.prepare('DELETE FROM cache').run();
|
|
139
|
-
getGlobalMetricsCollector().recordCache('delete');
|
|
140
|
-
}
|
|
141
|
-
catch (err) {
|
|
142
|
-
getLogger().error({ err }, 'cacheClear failed');
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/** Look up a project cache entry by its hash. Returns `null` if not found. */
|
|
146
|
-
getProjectCache(hash) {
|
|
147
|
-
try {
|
|
148
|
-
const row = this.db
|
|
149
|
-
.prepare('SELECT * FROM project_cache WHERE project_hash = ?')
|
|
150
|
-
.get(hash);
|
|
151
|
-
if (!row)
|
|
152
|
-
return null;
|
|
153
|
-
return {
|
|
154
|
-
projectHash: row.project_hash,
|
|
155
|
-
projectName: row.project_name,
|
|
156
|
-
schematicSnapshot: row.schematic_snapshot ?? null,
|
|
157
|
-
boardSnapshot: row.board_snapshot ?? null,
|
|
158
|
-
bomSnapshot: row.bom_snapshot ?? null,
|
|
159
|
-
lastSyncedAt: row.last_synced_at,
|
|
160
|
-
easyedaVersion: row.easyeda_version ?? null,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
catch (err) {
|
|
164
|
-
getLogger().error({ err, hash }, 'getProjectCache failed');
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/** Insert or replace a project cache entry. */
|
|
169
|
-
upsertProjectCache(cache) {
|
|
170
|
-
try {
|
|
171
|
-
this.db
|
|
172
|
-
.prepare(`
|
|
173
|
-
INSERT OR REPLACE INTO project_cache
|
|
174
|
-
(project_hash, project_name, schematic_snapshot, board_snapshot, bom_snapshot, last_synced_at, easyeda_version)
|
|
175
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
176
|
-
`)
|
|
177
|
-
.run(cache.projectHash, cache.projectName, cache.schematicSnapshot, cache.boardSnapshot, cache.bomSnapshot, cache.lastSyncedAt, cache.easyedaVersion);
|
|
178
|
-
}
|
|
179
|
-
catch (err) {
|
|
180
|
-
getLogger().error({ err, projectHash: cache.projectHash }, 'upsertProjectCache failed');
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
/** Store a new artifact record (gerber, bom, pdf, etc.). */
|
|
184
|
-
insertArtifact(artifact) {
|
|
185
|
-
try {
|
|
186
|
-
this.db
|
|
187
|
-
.prepare(`
|
|
188
|
-
INSERT INTO artifacts (id, project_hash, type, file_path, created_at, metadata)
|
|
189
|
-
VALUES (?, ?, ?, ?, ?, ?)
|
|
190
|
-
`)
|
|
191
|
-
.run(artifact.id, artifact.projectHash, artifact.type, artifact.filePath, artifact.createdAt, artifact.metadata);
|
|
192
|
-
}
|
|
193
|
-
catch (err) {
|
|
194
|
-
getLogger().error({ err, artifactId: artifact.id }, 'insertArtifact failed');
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* List artifact records for a project, optionally filtered by type.
|
|
199
|
-
* Results are ordered by creation date descending.
|
|
200
|
-
*/
|
|
201
|
-
getArtifacts(projectHash, type) {
|
|
202
|
-
try {
|
|
203
|
-
let query = 'SELECT * FROM artifacts WHERE project_hash = ?';
|
|
204
|
-
const params = [projectHash];
|
|
205
|
-
if (type) {
|
|
206
|
-
query += ' AND type = ?';
|
|
207
|
-
params.push(type);
|
|
208
|
-
}
|
|
209
|
-
query += ' ORDER BY created_at DESC';
|
|
210
|
-
const rows = this.db.prepare(query).all(...params);
|
|
211
|
-
return rows.map((r) => ({
|
|
212
|
-
id: r.id,
|
|
213
|
-
projectHash: r.project_hash,
|
|
214
|
-
type: r.type,
|
|
215
|
-
filePath: r.file_path,
|
|
216
|
-
createdAt: r.created_at,
|
|
217
|
-
metadata: r.metadata ?? null,
|
|
218
|
-
}));
|
|
219
|
-
}
|
|
220
|
-
catch (err) {
|
|
221
|
-
getLogger().error({ err, projectHash, type }, 'getArtifacts failed');
|
|
222
|
-
return [];
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
/** Insert or replace a verified-device cache entry, keyed by LCSC id. */
|
|
93
|
+
/** Insert or replace a verified-device cache entry, keyed by LCSC id. Returns true only on commit. */
|
|
226
94
|
upsertVerifiedDevice(record) {
|
|
227
95
|
try {
|
|
228
96
|
const existing = this.db
|
|
@@ -240,9 +108,11 @@ export class Storage {
|
|
|
240
108
|
updated_at = excluded.updated_at
|
|
241
109
|
`)
|
|
242
110
|
.run(record.lcscId, record.entryJson, record.status, record.errorCount, record.warningCount, existing?.created_at ?? null);
|
|
111
|
+
return true;
|
|
243
112
|
}
|
|
244
113
|
catch (err) {
|
|
245
114
|
getLogger().error({ err, lcscId: record.lcscId }, 'upsertVerifiedDevice failed');
|
|
115
|
+
return false;
|
|
246
116
|
}
|
|
247
117
|
}
|
|
248
118
|
/** Look up a cached verified-device entry by LCSC id. Returns `null` if not found. */
|
|
@@ -278,24 +148,6 @@ export class Storage {
|
|
|
278
148
|
return [];
|
|
279
149
|
}
|
|
280
150
|
}
|
|
281
|
-
/** Remove a cached verified-device entry by LCSC id. */
|
|
282
|
-
deleteVerifiedDevice(lcscId) {
|
|
283
|
-
try {
|
|
284
|
-
this.db.prepare('DELETE FROM verified_devices WHERE lcsc_id = ?').run(lcscId);
|
|
285
|
-
}
|
|
286
|
-
catch (err) {
|
|
287
|
-
getLogger().error({ err, lcscId }, 'deleteVerifiedDevice failed');
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
/** Reclaim storage by running VACUUM. */
|
|
291
|
-
vacuum() {
|
|
292
|
-
try {
|
|
293
|
-
this.db.exec('VACUUM');
|
|
294
|
-
}
|
|
295
|
-
catch (err) {
|
|
296
|
-
getLogger().error({ err }, 'vacuum failed');
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
151
|
/** Close the database connection. */
|
|
300
152
|
close() {
|
|
301
153
|
this.db.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { Storage } from './database.js';
|
|
2
|
-
export type {
|
|
2
|
+
export type { VerifiedDeviceRecord } from './types.js';
|
package/dist/storage/types.d.ts
CHANGED
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
export interface ProjectCache {
|
|
2
|
-
projectHash: string;
|
|
3
|
-
projectName: string;
|
|
4
|
-
schematicSnapshot: string | null;
|
|
5
|
-
boardSnapshot: string | null;
|
|
6
|
-
bomSnapshot: string | null;
|
|
7
|
-
lastSyncedAt: string;
|
|
8
|
-
easyedaVersion: string | null;
|
|
9
|
-
}
|
|
10
|
-
export interface ArtifactRecord {
|
|
11
|
-
id: string;
|
|
12
|
-
projectHash: string;
|
|
13
|
-
type: 'gerber' | 'bom' | 'pdf' | 'pick-place' | 'netlist' | 'schematic' | 'board';
|
|
14
|
-
filePath: string;
|
|
15
|
-
createdAt: string;
|
|
16
|
-
metadata: string | null;
|
|
17
|
-
}
|
|
18
1
|
/**
|
|
19
2
|
* A device ingested and cached locally by the catalog verification pipeline
|
|
20
3
|
* (`easyeda_catalog_verify_device`). `entryJson` is a JSON-serialized
|
package/dist/tools/L1_catalog.js
CHANGED
|
@@ -99,14 +99,13 @@ function registerCatalogTools(registry, _config) {
|
|
|
99
99
|
const result = await ingestDeviceFromLcsc(ctx, lcscId);
|
|
100
100
|
let cached = false;
|
|
101
101
|
if (ctx.storage) {
|
|
102
|
-
ctx.storage.upsertVerifiedDevice({
|
|
102
|
+
cached = ctx.storage.upsertVerifiedDevice({
|
|
103
103
|
lcscId: result.entry.lcsc ?? lcscId,
|
|
104
104
|
entryJson: JSON.stringify(result.entry),
|
|
105
105
|
status: result.status,
|
|
106
106
|
errorCount: result.validation.errors.length,
|
|
107
107
|
warningCount: result.validation.warnings.length,
|
|
108
108
|
});
|
|
109
|
-
cached = true;
|
|
110
109
|
}
|
|
111
110
|
return {
|
|
112
111
|
lcsc_id: result.entry.lcsc ?? lcscId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"L1_catalog.js","sourceRoot":"","sources":["../../src/tools/L1_catalog.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"L1_catalog.js","sourceRoot":"","sources":["../../src/tools/L1_catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC/C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;CAC5B,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,KAAkB;IACxC,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;QACxC,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAA4B;IAQnD,IAAI,OAAiD,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAgB,CAAC;QAC1D,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;QAClF,oCAAoC;QACpC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO;KACf,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAqD,EACrD,OAAkB;IAElB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,oDAAoD;QAC3D,WAAW,EACT,yFAAyF;YACzF,2FAA2F;YAC3F,wFAAwF;YACxF,gCAAgC;QAClC,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,UAAU,CAAC;QAC1D,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SACzC,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACrD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;YAClB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC;YAC7C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC;YAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;gBACnB,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;gBAClE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;aACzD,CAAC;YACF,KAAK,EAAE,wBAAwB;YAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;YACnD,MAAM,EAAE,MAAM,EAAE,GAAG,MAA4B,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACvD,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC;wBACxC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM;wBACnC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;wBACvC,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM;wBAC3C,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM;qBAChD,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM;oBACpC,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;oBAC9B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;oBAChC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;oBACpC,UAAU,EAAE;wBACV,uBAAuB,EAAE,MAAM,CAAC,UAAU,CAAC,qBAAqB;wBAChE,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc;qBAClD;oBACD,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;oBACnC,MAAM;iBACP,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,MAAM;oBACf,MAAM,EAAE,YAAqB;oBAC7B,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,GAAG,YAAY,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;oBACrF,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE;wBACV,uBAAuB,EAAE,YAAqB;wBAC9C,eAAe,EAAE,aAAsB;qBACxC;oBACD,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,KAAK;oBACb,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,yFAAyF;YACzF,yFAAyF;YACzF,mCAAmC;QACrC,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;SACjE,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;gBACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;gBAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,KAAK,EAAE,wBAAwB,CAAC,QAAQ,EAAE;aAC3C,CAAC,CACH;YACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;YACrC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;YACnD,MAAM,EAAE,MAAM,EAAE,GAAG,MAA4D,CAAC;YAChF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,+BAA+B;iBACvC,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import { pcbZoneRectangleSchema } from './pcb-zone-preview.js';
|
|
1
2
|
import { z } from 'zod';
|
|
2
3
|
const pcbListInputSchema = z.object({
|
|
3
|
-
projectId: z
|
|
4
|
+
projectId: z
|
|
5
|
+
.string()
|
|
6
|
+
.min(1)
|
|
7
|
+
.refine((id) => id === id.trim(), {
|
|
8
|
+
message: 'projectId must be an exact native project UUID without surrounding whitespace.',
|
|
9
|
+
})
|
|
10
|
+
.describe('Exact focused EasyEDA project UUID.'),
|
|
4
11
|
limit: z.coerce.number().int().min(1).max(200).default(100),
|
|
5
12
|
offset: z.coerce.number().int().min(0).default(0),
|
|
6
13
|
});
|
|
@@ -47,7 +54,8 @@ function rectangleSourcePoints(source) {
|
|
|
47
54
|
if (rotation !== 0 || round !== 0 || width < 0 || height < 0)
|
|
48
55
|
return [];
|
|
49
56
|
const right = x + width;
|
|
50
|
-
|
|
57
|
+
// Native R rectangles extend downward from y toward negative Y.
|
|
58
|
+
const bottom = y - height;
|
|
51
59
|
return [
|
|
52
60
|
{ x: x, y: y },
|
|
53
61
|
{ x: right, y: y },
|
|
@@ -170,7 +178,7 @@ function makePcbListHandler(bridgeMethod, listKey, mapItem) {
|
|
|
170
178
|
return async (ctx, params) => {
|
|
171
179
|
const { projectId, limit, offset } = pcbListInputSchema.parse(params);
|
|
172
180
|
try {
|
|
173
|
-
const result = await ctx.bridge.call(bridgeMethod, { limit, offset });
|
|
181
|
+
const result = await ctx.bridge.call(bridgeMethod, { projectId, limit, offset });
|
|
174
182
|
const items = result?.items ?? [];
|
|
175
183
|
return {
|
|
176
184
|
project_id: projectId,
|
|
@@ -219,12 +227,105 @@ function registerPcbListTool(registry, opts) {
|
|
|
219
227
|
});
|
|
220
228
|
}
|
|
221
229
|
function registerPcbReadTools(registry, _config) {
|
|
230
|
+
registry.register({
|
|
231
|
+
name: 'easyeda_pcb_zone_preflight',
|
|
232
|
+
title: 'Inspect native PCB zone safety prerequisites (read-only)',
|
|
233
|
+
description: 'Verify the live EasyEDA Pro version, focused PCB, exact net membership, supported copper layer and native zone capabilities. ' +
|
|
234
|
+
'This is a read-only diagnostic and never authorizes zone writes or validates the complete board outline.',
|
|
235
|
+
profile: 'full',
|
|
236
|
+
evidence: ['runtime-probe', 'pro-api-types'],
|
|
237
|
+
risk: 'low',
|
|
238
|
+
confirmWrite: false,
|
|
239
|
+
sideEffect: 'read-only',
|
|
240
|
+
group: 'board',
|
|
241
|
+
version: '1.0.0',
|
|
242
|
+
annotations: { readOnlyHint: true, idempotentHint: true },
|
|
243
|
+
inputSchema: z
|
|
244
|
+
.object({
|
|
245
|
+
netName: z.string().trim().min(1).max(128),
|
|
246
|
+
layer: z.union([z.literal(1), z.literal(2)]),
|
|
247
|
+
rectangle: pcbZoneRectangleSchema
|
|
248
|
+
.optional()
|
|
249
|
+
.describe('Optional native R rectangle: x is the left X anchor, y is the top Y anchor, ' +
|
|
250
|
+
'width is positive and extends to x + width, height is positive and extends ' +
|
|
251
|
+
'DOWN to y - height (native negative-Y). Native coordinates, not millimetres; ' +
|
|
252
|
+
'the rectangle must stay within the +/-1,000,000 native coordinate limits. ' +
|
|
253
|
+
'An intersection is a read-only diagnostic, never permission to write.'),
|
|
254
|
+
})
|
|
255
|
+
.strict(),
|
|
256
|
+
outputSchema: z.object({
|
|
257
|
+
runtimeVersion: z.string().nullable(),
|
|
258
|
+
runtimeVerified: z.boolean(),
|
|
259
|
+
activePcb: z.boolean(),
|
|
260
|
+
nativeCapabilities: z.boolean(),
|
|
261
|
+
netVerified: z.boolean(),
|
|
262
|
+
layerVerified: z.boolean(),
|
|
263
|
+
boardGeometry: z
|
|
264
|
+
.object({
|
|
265
|
+
status: z.enum([
|
|
266
|
+
'intersection-confirmed',
|
|
267
|
+
'outside-board',
|
|
268
|
+
'unsupported-outline',
|
|
269
|
+
'unavailable',
|
|
270
|
+
]),
|
|
271
|
+
intersectionVerified: z.boolean(),
|
|
272
|
+
outline: pcbZoneRectangleSchema.nullable(),
|
|
273
|
+
})
|
|
274
|
+
.nullable()
|
|
275
|
+
.optional()
|
|
276
|
+
.describe('Null when no rectangle is supplied or there is no active PCB; otherwise ' +
|
|
277
|
+
'status is intersection-confirmed (one unrotated rectangular board frame ' +
|
|
278
|
+
'overlaps the candidate), outside-board (no overlap), unsupported-outline ' +
|
|
279
|
+
'(complex/multiple/rotated frame or additional regions), or unavailable ' +
|
|
280
|
+
'(identity/native inspection cannot be verified). intersectionVerified is ' +
|
|
281
|
+
'true only for the single-rectangle overlap case, NOT a clearance, ' +
|
|
282
|
+
'keepout, board-hole, DRC, or apply authorization. outline is the native ' +
|
|
283
|
+
'board rectangle {x, y, width, height} or null when unverified. ' +
|
|
284
|
+
'readyToApply always stays false.'),
|
|
285
|
+
readyToApply: z.literal(false),
|
|
286
|
+
blockers: z.array(z.string()),
|
|
287
|
+
not_available: z.boolean().optional(),
|
|
288
|
+
error: z.string().optional(),
|
|
289
|
+
}),
|
|
290
|
+
handler: async (ctx, input) => {
|
|
291
|
+
const parsed = z
|
|
292
|
+
.object({
|
|
293
|
+
netName: z.string().trim().min(1).max(128),
|
|
294
|
+
layer: z.union([z.literal(1), z.literal(2)]),
|
|
295
|
+
rectangle: pcbZoneRectangleSchema
|
|
296
|
+
.optional()
|
|
297
|
+
.describe('Optional native R rectangle: x is the left X anchor, y is the top Y anchor, ' +
|
|
298
|
+
'width is positive and extends to x + width, height is positive and extends ' +
|
|
299
|
+
'DOWN to y - height (native negative-Y). Native coordinates, not millimetres; ' +
|
|
300
|
+
'the rectangle must stay within the +/-1,000,000 native coordinate limits. ' +
|
|
301
|
+
'An intersection is a read-only diagnostic, never permission to write.'),
|
|
302
|
+
})
|
|
303
|
+
.strict()
|
|
304
|
+
.parse(input);
|
|
305
|
+
try {
|
|
306
|
+
return await ctx.bridge.call('pcb.zonePreflight', parsed);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
return {
|
|
310
|
+
runtimeVersion: null,
|
|
311
|
+
runtimeVerified: false,
|
|
312
|
+
activePcb: false,
|
|
313
|
+
nativeCapabilities: false,
|
|
314
|
+
netVerified: false,
|
|
315
|
+
layerVerified: false,
|
|
316
|
+
boardGeometry: null,
|
|
317
|
+
readyToApply: false,
|
|
318
|
+
blockers: ['runtime-preflight-unavailable'],
|
|
319
|
+
not_available: true,
|
|
320
|
+
error: error instanceof Error ? error.message : String(error),
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
});
|
|
222
325
|
registerPcbListTool(registry, {
|
|
223
326
|
name: 'easyeda_pcb_components',
|
|
224
327
|
title: 'List PCB components',
|
|
225
|
-
description: 'List components
|
|
226
|
-
'identity, position/rotation/layer. Requires a focused PCB tab in EasyEDA Pro — returns ' +
|
|
227
|
-
'an empty list (not an error) if none is active.',
|
|
328
|
+
description: 'List native PCB components, designators, footprints and positions. Requires exact active project UUID and a focused PCB document; mismatched or missing focus returns not_available, not a successful empty list.',
|
|
228
329
|
bridgeMethod: 'pcb.listComponents',
|
|
229
330
|
listKey: 'components',
|
|
230
331
|
itemSchema: z.object({
|
|
@@ -283,9 +384,7 @@ function registerPcbReadTools(registry, _config) {
|
|
|
283
384
|
registerPcbListTool(registry, {
|
|
284
385
|
name: 'easyeda_pcb_tracks',
|
|
285
386
|
title: 'List PCB tracks',
|
|
286
|
-
description: 'List copper track segments
|
|
287
|
-
'coordinates, width. A multi-point track drawn by add_track appears as several consecutive ' +
|
|
288
|
-
'segments sharing one net. Returns an empty list (not an error) if no PCB tab is focused.',
|
|
387
|
+
description: 'List native copper track segments and net/layer geometry. Requires exact active project UUID and focused PCB; mismatched or missing focus returns not_available, not a successful empty list.',
|
|
289
388
|
bridgeMethod: 'pcb.listTracks',
|
|
290
389
|
listKey: 'tracks',
|
|
291
390
|
itemSchema: z.object({
|
|
@@ -303,9 +402,7 @@ function registerPcbReadTools(registry, _config) {
|
|
|
303
402
|
registerPcbListTool(registry, {
|
|
304
403
|
name: 'easyeda_pcb_vias',
|
|
305
404
|
title: 'List PCB vias',
|
|
306
|
-
description: 'List vias
|
|
307
|
-
'(native unit, same scale as x/y — not independently verified against a known physical ' +
|
|
308
|
-
'dimension). Requires a focused PCB tab — returns an empty list (not an error) if none is active.',
|
|
405
|
+
description: 'List native PCB vias, nets and dimensions. Requires exact active project UUID and focused PCB; mismatched or missing focus returns not_available, not a successful empty list. Units follow native PCB coordinate scale.',
|
|
309
406
|
bridgeMethod: 'pcb.listVias',
|
|
310
407
|
listKey: 'vias',
|
|
311
408
|
itemSchema: z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"L1_pcb_read.js","sourceRoot":"","sources":["../../src/tools/L1_pcb_read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpF,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC1C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,MAAM,EAAE,eAAe;CACxB,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC1C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,MAAM,EAAE,eAAe;CACxB,CAAC,CAAC;AAIH,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAiB;IAC3C,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3F,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACnE,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,wBAAwB,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAiB;IAC9C,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpF,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACzD,IAAI,QAAQ,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,IAAK,MAAiB,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChG,MAAM,KAAK,GAAI,CAAY,GAAI,KAAgB,CAAC;IAChD,MAAM,MAAM,GAAI,CAAY,GAAI,MAAiB,CAAC;IAClD,OAAO;QACL,EAAE,CAAC,EAAE,CAAW,EAAE,CAAC,EAAE,CAAW,EAAE;QAClC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAW,EAAE;QAC5B,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE;QACvB,EAAE,CAAC,EAAE,CAAW,EAAE,CAAC,EAAE,MAAM,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAiB;IACzC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;IAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChE,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,MAAiB;IACrC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC5D,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,MAAkB;IACrC,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;KACrC,CAAC,EACF,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,CACrE,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,MAA6B,CAAC;IAClC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,SAAS;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClC,YAAY,IAAI,CAAC,CAAC;QAClB,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;QAC5B,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,GAAG,MAAM;YACb,CAAC,CAAC;gBACE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;gBAC/C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;gBAC/C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;gBAC/C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;aAChD;YACH,CAAC,CAAC,aAAa,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,CAAC,CAAC,CAAC;QACvF,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,MAAM,CAAC,MAAM;gBACzB,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;gBACxC,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,SAAS,EAAE,gBAAgB,GAAG,UAAU;QACxC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,IAA6B,EAAE,UAAmC;IACrF,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA6B;IACtD,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,OAAO,WAAW,CAAC,IAAI,EAAE;QACvB,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QACzE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,GAAG;QACH,OAAO,EAAE,CAAC,GAAG;QACb,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACrE,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;QACzC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA6B;IACxD,OAAO,WAAW,CAAC,IAAI,EAAE;QACvB,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QACzE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QACvF,UAAU,EAAE,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QACtE,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;QACzC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;uDAGuD;AACvD,SAAS,kBAAkB,CACzB,YAAoB,EACpB,OAAe,EACf,OAAoE;IAEpE,OAAO,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;QACjD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAGlC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;YAClC,OAAO;gBACL,UAAU,EAAE,SAAS;gBACrB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC/C,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM;aACrC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,UAAU,EAAE,SAAS;gBACrB,CAAC,OAAO,CAAC,EAAE,EAAE;gBACb,KAAK,EAAE,CAAC;gBACR,aAAa,EAAE,IAAI;gBACnB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;qCAEqC;AACrC,SAAS,mBAAmB,CAC1B,QAAqD,EACrD,IAQC;IAED,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3B,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;SACrB;QACD,WAAW,EAAE,kBAAkB;QAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;YACrC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,CAAC;QACF,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KAC3E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAqD,EACrD,OAAkB;IAElB,mBAAmB,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,sFAAsF;YACtF,yFAAyF;YACzF,iDAAiD;QACnD,YAAY,EAAE,oBAAoB;QAClC,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACpC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACxB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;KACH,CAAC,CAAC;IAEH,mBAAmB,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,2FAA2F;YAC3F,sFAAsF;YACtF,kGAAkG;QACpG,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE;SACrC,CAAC;KACH,CAAC,CAAC;IAEH,mBAAmB,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACT,yFAAyF;YACzF,mGAAmG;YACnG,2CAA2C;QAC7C,YAAY,EAAE,iBAAiB;QAC/B,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;YACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE;SACrC,CAAC;KACH,CAAC,CAAC;IAEH,mBAAmB,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,0FAA0F;YAC1F,4FAA4F;YAC5F,0FAA0F;QAC5F,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;KACH,CAAC,CAAC;IAEH,mBAAmB,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,sFAAsF;YACtF,wFAAwF;YACxF,kGAAkG;QACpG,YAAY,EAAE,cAAc;QAC5B,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACxB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"L1_pcb_read.js","sourceRoot":"","sources":["../../src/tools/L1_pcb_read.ts"],"names":[],"mappings":"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"}
|