@tscircuit/copper-pour-solver 0.0.1

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.
Files changed (44) hide show
  1. package/.github/workflows/.replit +9 -0
  2. package/.github/workflows/bun-formatcheck.yml +26 -0
  3. package/.github/workflows/bun-pver-release.yml +71 -0
  4. package/.github/workflows/bun-test.yml +31 -0
  5. package/.github/workflows/bun-typecheck.yml +26 -0
  6. package/README.md +37 -0
  7. package/biome.json +93 -0
  8. package/bun.lock +164 -0
  9. package/bunfig.toml +5 -0
  10. package/cosmos.config.json +5 -0
  11. package/dist/index.d.ts +57 -0
  12. package/dist/index.js +368 -0
  13. package/lib/circuit-json/convert-circuit-json-to-input-problem.ts +208 -0
  14. package/lib/circuit-json/convertCircuitJsonToInputProblem.ts +0 -0
  15. package/lib/index.ts +3 -0
  16. package/lib/solvers/CopperPourPipelineSolver.ts +51 -0
  17. package/lib/solvers/copper-pour/circle-to-polygon.ts +15 -0
  18. package/lib/solvers/copper-pour/generate-brep.ts +60 -0
  19. package/lib/solvers/copper-pour/get-board-polygon.ts +19 -0
  20. package/lib/solvers/copper-pour/process-obstacles.ts +116 -0
  21. package/lib/types.ts +46 -0
  22. package/package.json +28 -0
  23. package/site/Welcome.page.tsx +0 -0
  24. package/tests/__snapshots__/circuit-1.snap.svg +1 -0
  25. package/tests/__snapshots__/circuit-2.snap.svg +1 -0
  26. package/tests/__snapshots__/circuit-3.snap.svg +1 -0
  27. package/tests/__snapshots__/circuit-4.snap.svg +1 -0
  28. package/tests/__snapshots__/circuit-5.snap.svg +1 -0
  29. package/tests/__snapshots__/circuit-6.snap.svg +1 -0
  30. package/tests/assets/circuit-1.json +592 -0
  31. package/tests/assets/circuit-2.json +1424 -0
  32. package/tests/assets/circuit-3.json +1424 -0
  33. package/tests/assets/circuit-4.json +631 -0
  34. package/tests/assets/circuit-5.json +631 -0
  35. package/tests/assets/circuit-6.json +806 -0
  36. package/tests/circuit-1.test.ts +14 -0
  37. package/tests/circuit-2.test.ts +15 -0
  38. package/tests/circuit-3.test.ts +15 -0
  39. package/tests/circuit-4.test.ts +15 -0
  40. package/tests/circuit-5.test.ts +15 -0
  41. package/tests/circuit-6.test.ts +15 -0
  42. package/tests/fixtures/preload.ts +1 -0
  43. package/tests/utils/run-solver-and-render-to-svg.ts +64 -0
  44. package/tsconfig.json +34 -0
@@ -0,0 +1,19 @@
1
+ import type { InputPourRegion } from "lib/types"
2
+ import Flatten from "@flatten-js/core"
3
+
4
+ export const getBoardPolygon = (region: InputPourRegion): Flatten.Polygon => {
5
+ if (region.outline && region.outline.length > 0) {
6
+ return new Flatten.Polygon(
7
+ region.outline.map((p) => Flatten.point(p.x, p.y)),
8
+ )
9
+ }
10
+ const { bounds } = region
11
+ return new Flatten.Polygon(
12
+ new Flatten.Box(
13
+ bounds.minX,
14
+ bounds.minY,
15
+ bounds.maxX,
16
+ bounds.maxY,
17
+ ).toPoints(),
18
+ )
19
+ }
@@ -0,0 +1,116 @@
1
+ import Flatten from "@flatten-js/core"
2
+ import type {
3
+ InputCircularPad,
4
+ InputPad,
5
+ InputRectPad,
6
+ InputTracePad,
7
+ } from "lib/types"
8
+ import { circleToPolygon } from "./circle-to-polygon"
9
+
10
+ interface ProcessedObstacles {
11
+ polygonsToSubtract: Flatten.Polygon[]
12
+ }
13
+
14
+ const isRectPad = (pad: InputPad): pad is InputRectPad => pad.shape === "rect"
15
+ const isTracePad = (pad: InputPad): pad is InputTracePad =>
16
+ pad.shape === "trace"
17
+ const isCircularPad = (pad: InputPad): pad is InputCircularPad =>
18
+ pad.shape === "circle"
19
+
20
+ export const processObstaclesForPour = (
21
+ pads: InputPad[],
22
+ pourConnectivityKey: string,
23
+ margins: { padMargin: number; traceMargin: number },
24
+ ): ProcessedObstacles => {
25
+ const polygonsToSubtract: Flatten.Polygon[] = []
26
+
27
+ const { padMargin, traceMargin } = margins
28
+
29
+ for (const pad of pads) {
30
+ const isOnNet = pad.connectivityKey === pourConnectivityKey
31
+
32
+ if (isOnNet) {
33
+ continue
34
+ }
35
+
36
+ if (isCircularPad(pad)) {
37
+ const isHole = pad.connectivityKey.startsWith("hole:")
38
+ const margin = isHole ? 0 : padMargin
39
+ const circle = new Flatten.Circle(
40
+ new Flatten.Point(pad.x, pad.y),
41
+ pad.radius + margin,
42
+ )
43
+ polygonsToSubtract.push(circleToPolygon(circle))
44
+ continue
45
+ }
46
+
47
+ if (isRectPad(pad)) {
48
+ const { bounds } = pad
49
+ const b = new Flatten.Box(
50
+ bounds.minX - padMargin,
51
+ bounds.minY - padMargin,
52
+ bounds.maxX + padMargin,
53
+ bounds.maxY + padMargin,
54
+ )
55
+ polygonsToSubtract.push(new Flatten.Polygon(b.toPoints()))
56
+ continue
57
+ }
58
+
59
+ if (isTracePad(pad)) {
60
+ // Add circles for each vertex
61
+ for (const segment of pad.segments) {
62
+ const circle = new Flatten.Circle(
63
+ new Flatten.Point(segment.x, segment.y),
64
+ pad.width / 2 + traceMargin,
65
+ )
66
+ polygonsToSubtract.push(circleToPolygon(circle))
67
+ }
68
+
69
+ // Add rectangles for each segment
70
+ for (let i = 0; i < pad.segments.length - 1; i++) {
71
+ const p1 = pad.segments[i]
72
+ const p2 = pad.segments[i + 1]
73
+
74
+ if (!p1 || !p2) continue
75
+
76
+ const segmentLength = Math.hypot(p1.x - p2.x, p1.y - p2.y)
77
+ if (segmentLength === 0) continue
78
+
79
+ const enlargedWidth = pad.width + traceMargin * 2
80
+
81
+ const centerX = (p1.x + p2.x) / 2
82
+ const centerY = (p1.y + p2.y) / 2
83
+ const rotationDeg =
84
+ (Math.atan2(p2.y - p1.y, p2.x - p1.x) * 180) / Math.PI
85
+
86
+ const w2 = segmentLength / 2
87
+ const h2 = enlargedWidth / 2
88
+
89
+ const angleRad = (rotationDeg * Math.PI) / 180
90
+ const cosAngle = Math.cos(angleRad)
91
+ const sinAngle = Math.sin(angleRad)
92
+
93
+ const corners = [
94
+ { x: -w2, y: -h2 },
95
+ { x: w2, y: -h2 },
96
+ { x: w2, y: h2 },
97
+ { x: -w2, y: h2 },
98
+ ]
99
+
100
+ const rotatedCorners = corners.map((p) => ({
101
+ x: centerX + p.x * cosAngle - p.y * sinAngle,
102
+ y: centerY + p.x * sinAngle + p.y * cosAngle,
103
+ }))
104
+
105
+ polygonsToSubtract.push(
106
+ new Flatten.Polygon(
107
+ rotatedCorners.map((p) => Flatten.point(p.x, p.y)),
108
+ ),
109
+ )
110
+ }
111
+ continue
112
+ }
113
+ }
114
+
115
+ return { polygonsToSubtract }
116
+ }
package/lib/types.ts ADDED
@@ -0,0 +1,46 @@
1
+ import type { Bounds, Point } from "@tscircuit/math-utils"
2
+ import type { BRepShape } from "circuit-json"
3
+
4
+ export interface InputPourRegion {
5
+ shape: "rect"
6
+ layer: string
7
+ bounds: Bounds
8
+ outline?: Point[]
9
+ connectivityKey: string
10
+ padMargin: number
11
+ traceMargin: number
12
+ }
13
+
14
+ export interface BaseInputPad {
15
+ padId: string
16
+ connectivityKey: string
17
+ layer: string
18
+ }
19
+
20
+ export interface InputRectPad extends BaseInputPad {
21
+ shape: "rect"
22
+ bounds: Bounds
23
+ }
24
+
25
+ export interface InputCircularPad extends BaseInputPad {
26
+ shape: "circle"
27
+ x: number
28
+ y: number
29
+ radius: number
30
+ }
31
+
32
+ export interface InputTracePad extends BaseInputPad {
33
+ shape: "trace"
34
+ width: number
35
+ segments: Point[]
36
+ }
37
+
38
+ export type InputPad = InputRectPad | InputCircularPad | InputTracePad
39
+
40
+ export interface InputProblem {
41
+ regionsForPour: InputPourRegion[]
42
+ pads: InputPad[]
43
+ }
44
+ export interface PipelineOutput {
45
+ brep_shapes: BRepShape[]
46
+ }
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@tscircuit/copper-pour-solver",
3
+ "main": "dist/index.js",
4
+ "version": "0.0.1",
5
+ "scripts": {
6
+ "format": "biome format . --write",
7
+ "build": "tsup-node lib/index.ts --dts --format esm"
8
+ },
9
+ "type": "module",
10
+ "devDependencies": {
11
+ "@biomejs/biome": "^2.2.4",
12
+ "@flatten-js/core": "^1.6.6",
13
+ "@tscircuit/math-utils": "^0.0.25",
14
+ "@tscircuit/solver-utils": "^0.0.3",
15
+ "@types/bun": "latest",
16
+ "bun-match-svg": "^0.0.13",
17
+ "circuit-json": "^0.0.301",
18
+ "circuit-to-svg": "^0.0.262",
19
+ "react-cosmos": "^7.0.0",
20
+ "react-cosmos-plugin-vite": "^7.0.0",
21
+ "tscircuit": "^0.0.863",
22
+ "tsup": "^8.5.0",
23
+ "vite": "^7.1.5"
24
+ },
25
+ "peerDependencies": {
26
+ "typescript": "^5"
27
+ }
28
+ }
File without changes
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="800" height="600" data-software-used-string="@tscircuit/core@0.0.844"><style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="127.27272727272725" y="27.272727272727252" width="545.4545454545455" height="545.4545454545455" data-type="pcb_boundary" data-pcb-layer="global"/><path class="pcb-board" d="M 127.27272727272725 572.7272727272727 L 672.7272727272727 572.7272727272727 L 672.7272727272727 27.272727272727252 L 127.27272727272725 27.272727272727252 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="2.7272727272727275" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="224.77272727272728" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="274.5454545454545" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="497.5" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="547.2727272727273" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 288.52272727272725 300 L 511.47727272727275 300" stroke-width="4.363636363636364" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-copper-pour pcb-copper-pour-brep" d="M 127.27272727272725 572.7272727272727 L 127.27272727272725 27.272727272727252 L 672.7272727272727 27.272727272727252 L 672.7272727272727 572.7272727272727 L 127.27272727272725 572.7272727272727 Z M 313.4090909090909 307.6363636363636 L 486.5909090909091 307.6363636363636 L 486.5909090909091 330 L 536.3636363636364 330 L 536.3636363636364 270 L 486.5909090909091 270 L 486.5909090909091 292.3636363636364 L 313.4090909090909 292.3636363636364 L 313.4090909090909 270 L 263.6363636363636 270 L 213.86363636363635 270 L 213.86363636363635 330 L 263.6363636363636 330 L 313.4090909090909 330 L 313.4090909090909 307.6363636363636 Z" fill="rgb(200, 52, 52)" fill-rule="evenodd" fill-opacity="0.5" data-type="pcb_copper_pour" data-pcb-layer="top"/><path class="pcb-silkscreen pcb-silkscreen-top" d="M 288.52272727272725 270 L 219.3181818181818 270 L 219.3181818181818 330 L 288.52272727272725 330" fill="none" stroke="#f2eda1" stroke-width="2.7272727272727275" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_0" data-pcb-silkscreen-path-id="pcb_silkscreen_path_0" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10.90909090909091" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,263.6363636363636,256.3636363636364)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_0" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">R1</text><path class="pcb-silkscreen pcb-silkscreen-top" d="M 561.25 270 L 492.04545454545456 270 L 492.04545454545456 330 L 561.25 330" fill="none" stroke="#f2eda1" stroke-width="2.7272727272727275" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_1" data-pcb-silkscreen-path-id="pcb_silkscreen_path_1" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10.90909090909091" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,536.3636363636364,256.3636363636364)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_1" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">R2</text></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="800" height="600" data-software-used-string="@tscircuit/core@0.0.844"><style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="25" y="50" width="750" height="500" data-type="pcb_boundary" data-pcb-layer="global"/><path class="pcb-board" d="M 25 550 L 775 550 L 775 50 L 25 50 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="2.5" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="183.75" y="244.875" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="183.75" y="276.625" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="183.75" y="308.375" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="183.75" y="340.125" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="291.25" y="340.125" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="291.25" y="308.375" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="291.25" y="276.625" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="291.25" y="244.875" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="530.5" y="192" width="13.5" height="16" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="556" y="192" width="13.5" height="16" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="530.5" y="392" width="13.5" height="16" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="556" y="392" width="13.5" height="16" data-type="pcb_smtpad" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 562.75 400 L 562.75 200" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 562.75 200 L 562.75 200" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 562.75 400 L 550.0870163998582 412.6629836001419" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 550.0870163998582 412.6629836001419 L 263.0528406003259 412.6629836001419" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 263.0528406003259 412.6629836001419 L 261.2879836001419 412.6629836001419" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 261.2879836001419 412.6629836001419 L 196.25 347.625" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-copper-pour pcb-copper-pour-brep" d="M 25 550 L 25 50 L 775 50 L 775 550 L 25 550 Z M 213.75 348.3312139468195 L 213.75 335.125 L 178.75 335.125 L 178.75 360.125 L 191.95621394681947 360.125 L 252.89109057355162 421.05987662673215 L 254.6905870830341 422.53668524623464 L 256.74361784080645 423.63405304871344 L 258.97128602620035 424.3098088049303 L 261.28798360014184 424.5379836001419 L 263.0528406003259 424.53798360014184 L 550.0870163998582 424.5379836001419 L 552.4037139737997 424.3098088049303 L 554.6313821591935 423.63405304871344 L 556.6844129169658 422.53668524623464 L 558.4839094264483 421.05987662673215 L 566.5437860531805 413 L 574.5 413 L 574.5 401.2691462984511 L 574.625 400 L 574.625 200 L 574.5 198.73085370154865 L 574.5 187 L 551 187 L 551 198.73085370154888 L 550.875 200 L 550.875 395.0812139468195 L 549 396.9562139468195 L 549 387 L 525.5 387 L 525.5 400.78798360014196 L 266.20676965332245 400.7879836001419 L 213.75 348.3312139468195 Z M 286.25 360.125 L 321.25 360.125 L 321.25 335.125 L 286.25 335.125 L 286.25 360.125 Z M 286.25 264.875 L 321.25 264.875 L 321.25 239.875 L 286.25 239.875 L 286.25 264.875 Z M 286.25 328.375 L 321.25 328.375 L 321.25 303.375 L 286.25 303.375 L 286.25 328.375 Z M 286.25 296.625 L 321.25 296.625 L 321.25 271.625 L 286.25 271.625 L 286.25 296.625 Z M 178.75 296.625 L 213.75 296.625 L 213.75 271.625 L 178.75 271.625 L 178.75 296.625 Z M 178.75 328.375 L 213.75 328.375 L 213.75 303.375 L 178.75 303.375 L 178.75 328.375 Z M 525.5 213 L 549 213 L 549 187 L 525.5 187 L 525.5 213 Z" fill="rgb(200, 52, 52)" fill-rule="evenodd" fill-opacity="0.5" data-type="pcb_copper_pour" data-pcb-layer="top"/><path class="pcb-silkscreen pcb-silkscreen-top" d="M 211.25 363.0625 L 211.25 236.9375 L 237.08333333333334 236.9375 L 238.06655603839587 241.88049433471576 L 240.86653740967375 246.07096259032625 L 245.05700566528427 248.87094396160413 L 250 249.85416666666666 L 254.94299433471573 248.87094396160413 L 259.13346259032625 246.07096259032625 L 261.9334439616041 241.88049433471576 L 262.91666666666663 236.9375 L 288.75 236.9375 L 288.75 363.0625 L 211.25 363.0625 Z" fill="none" stroke="#f2eda1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_0" data-pcb-silkscreen-path-id="pcb_silkscreen_path_0" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="15.510416666666666" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,250,226.9375)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_0" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">U1</text><path class="pcb-silkscreen pcb-silkscreen-top" d="M 562.75 182 L 525.5 182 L 525.5 218 L 562.75 218" fill="none" stroke="#f2eda1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_1" data-pcb-silkscreen-path-id="pcb_silkscreen_path_1" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,550,169.5)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_1" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">R1</text><path class="pcb-silkscreen pcb-silkscreen-top" d="M 562.75 382 L 525.5 382 L 525.5 418 L 562.75 418" fill="none" stroke="#f2eda1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_2" data-pcb-silkscreen-path-id="pcb_silkscreen_path_2" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,550,369.5)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_2" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">C1</text></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="800" height="600" data-software-used-string="@tscircuit/core@0.0.844"><style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="25" y="50" width="750" height="500" data-type="pcb_boundary" data-pcb-layer="global"/><path class="pcb-board" d="M 25 550 L 775 550 L 775 50 L 25 50 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="2.5" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="183.75" y="244.875" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="183.75" y="276.625" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="183.75" y="308.375" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="183.75" y="340.125" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="291.25" y="340.125" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="291.25" y="308.375" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="291.25" y="276.625" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="291.25" y="244.875" width="25" height="15" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="530.5" y="192" width="13.5" height="16" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="556" y="192" width="13.5" height="16" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="530.5" y="392" width="13.5" height="16" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="556" y="392" width="13.5" height="16" data-type="pcb_smtpad" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 562.75 400 L 562.75 200" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 562.75 200 L 562.75 200" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 562.75 400 L 550.0870163998582 412.6629836001419" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 550.0870163998582 412.6629836001419 L 263.0528406003259 412.6629836001419" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 263.0528406003259 412.6629836001419 L 261.2879836001419 412.6629836001419" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 261.2879836001419 412.6629836001419 L 196.25 347.625" stroke-width="3.75" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-copper-pour pcb-copper-pour-brep" d="M 25 550 L 25 50 L 775 50 L 775 550 L 25 550 Z M 213.75 358.9378156646177 L 213.75 335.125 L 178.75 335.125 L 178.75 360.125 L 202.5628156646177 360.125 L 258.19439143245074 415.75657576783306 L 258.85736383068115 416.30066315396556 L 259.61374358354465 416.7049565548788 L 260.4344634413213 416.95391920190605 L 261.28798360014184 417.0379836001419 L 263.0528406003259 417.0379836001419 L 550.0870163998582 417.0379836001419 L 550.9405365586787 416.95391920190605 L 551.7612564164554 416.7049565548788 L 552.5176361693188 416.30066315396556 L 553.1806085675493 415.75657576783306 L 555.9371843353822 413 L 574.5 413 L 574.5 387 L 567.125 387 L 567.125 213 L 574.5 213 L 574.5 187 L 551 187 L 551 213 L 558.375 213 L 558.375 387 L 551 387 L 551 405.56281566461774 L 549 407.56281566461774 L 549 387 L 525.5 387 L 525.5 408.28798360014196 L 263.1001679355242 408.28798360014184 L 213.75 358.9378156646177 Z M 286.25 360.125 L 321.25 360.125 L 321.25 335.125 L 286.25 335.125 L 286.25 360.125 Z M 286.25 264.875 L 321.25 264.875 L 321.25 239.875 L 286.25 239.875 L 286.25 264.875 Z M 286.25 328.375 L 321.25 328.375 L 321.25 303.375 L 286.25 303.375 L 286.25 328.375 Z M 286.25 296.625 L 321.25 296.625 L 321.25 271.625 L 286.25 271.625 L 286.25 296.625 Z M 178.75 296.625 L 213.75 296.625 L 213.75 271.625 L 178.75 271.625 L 178.75 296.625 Z M 178.75 328.375 L 213.75 328.375 L 213.75 303.375 L 178.75 303.375 L 178.75 328.375 Z M 525.5 213 L 549 213 L 549 187 L 525.5 187 L 525.5 213 Z" fill="rgb(200, 52, 52)" fill-rule="evenodd" fill-opacity="0.5" data-type="pcb_copper_pour" data-pcb-layer="top"/><path class="pcb-silkscreen pcb-silkscreen-top" d="M 211.25 363.0625 L 211.25 236.9375 L 237.08333333333334 236.9375 L 238.06655603839587 241.88049433471576 L 240.86653740967375 246.07096259032625 L 245.05700566528427 248.87094396160413 L 250 249.85416666666666 L 254.94299433471573 248.87094396160413 L 259.13346259032625 246.07096259032625 L 261.9334439616041 241.88049433471576 L 262.91666666666663 236.9375 L 288.75 236.9375 L 288.75 363.0625 L 211.25 363.0625 Z" fill="none" stroke="#f2eda1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_0" data-pcb-silkscreen-path-id="pcb_silkscreen_path_0" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="15.510416666666666" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,250,226.9375)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_0" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">U1</text><path class="pcb-silkscreen pcb-silkscreen-top" d="M 562.75 182 L 525.5 182 L 525.5 218 L 562.75 218" fill="none" stroke="#f2eda1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_1" data-pcb-silkscreen-path-id="pcb_silkscreen_path_1" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,550,169.5)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_1" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">R1</text><path class="pcb-silkscreen pcb-silkscreen-top" d="M 562.75 382 L 525.5 382 L 525.5 418 L 562.75 418" fill="none" stroke="#f2eda1" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_2" data-pcb-silkscreen-path-id="pcb_silkscreen_path_2" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,550,369.5)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_2" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">C1</text></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="800" height="600" data-software-used-string="@tscircuit/core@0.0.844"><style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="127.27272727272725" y="27.272727272727252" width="545.4545454545455" height="545.4545454545455" data-type="pcb_boundary" data-pcb-layer="global"/><rect class="pcb-pad" fill="rgb(77, 127, 196)" x="547.2727272727273" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="bottom"/><rect class="pcb-pad" fill="rgb(77, 127, 196)" x="497.5" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="bottom"/><path class="pcb-silkscreen pcb-silkscreen-bottom" d="M 511.47727272727275 270 L 580.6818181818182 270 L 580.6818181818182 330 L 511.47727272727275 330" fill="none" stroke="#5da9e9" stroke-width="2.7272727272727275" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_1" data-pcb-silkscreen-path-id="pcb_silkscreen_path_1" data-type="pcb_silkscreen_path" data-pcb-layer="bottom"/><text x="0" y="0" dx="0" dy="0" fill="#5da9e9" font-family="Arial, sans-serif" font-size="10.90909090909091" text-anchor="middle" dominant-baseline="central" transform="matrix(-1,0,0,1,536.3636363636364,256.3636363636364)" class="pcb-silkscreen-text pcb-silkscreen-bottom" data-pcb-silkscreen-text-id="pcb_component_1" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="bottom">R2</text><path class="pcb-board" d="M 127.27272727272725 572.7272727272727 L 672.7272727272727 572.7272727272727 L 672.7272727272727 27.272727272727252 L 127.27272727272725 27.272727272727252 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="2.7272727272727275" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="224.77272727272728" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="274.5454545454545" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><path class="pcb-copper-pour pcb-copper-pour-brep" d="M 127.27272727272725 572.7272727272727 L 127.27272727272725 27.272727272727252 L 672.7272727272727 27.272727272727252 L 672.7272727272727 572.7272727272727 L 127.27272727272725 572.7272727272727 Z M 438.1818181818182 300 L 437.4481652517597 292.5510967957478 L 435.27540033224915 285.388450764242 L 431.7470215606426 278.7873183756152 L 426.99862255439547 273.00137744560453 L 421.2126816243848 268.2529784393574 L 414.611549235758 264.72459966775085 L 407.4489032042522 262.5518347482403 L 400 261.8181818181818 L 392.5510967957478 262.5518347482403 L 385.388450764242 264.72459966775085 L 378.7873183756152 268.2529784393574 L 373.00137744560453 273.00137744560453 L 368.2529784393574 278.7873183756152 L 364.72459966775085 285.388450764242 L 362.5518347482403 292.5510967957478 L 361.8181818181818 300 L 362.5518347482403 307.4489032042522 L 364.72459966775085 314.611549235758 L 368.2529784393574 321.2126816243848 L 373.00137744560453 326.99862255439547 L 378.7873183756152 331.7470215606426 L 385.388450764242 335.2754003322491 L 392.5510967957478 337.4481652517597 L 400 338.1818181818182 L 407.4489032042522 337.4481652517597 L 414.611549235758 335.27540033224915 L 421.2126816243848 331.7470215606426 L 426.99862255439547 326.99862255439547 L 431.7470215606426 321.2126816243848 L 435.2754003322491 314.611549235758 L 437.4481652517597 307.4489032042522 L 438.1818181818182 300 Z M 427.27272727272725 409.0909090909091 L 426.74868946554267 403.7702639450147 L 425.1967145230351 398.65408820822483 L 422.6764439718876 393.93899364491995 L 419.28473039599675 389.8061786949123 L 415.1519154459892 386.4144651190215 L 410.4368208826843 383.894194567874 L 405.3206451458944 382.34221962536645 L 400 381.8181818181818 L 394.6793548541056 382.34221962536645 L 389.5631791173157 383.894194567874 L 384.8480845540109 386.4144651190215 L 380.71526960400325 389.8061786949123 L 377.3235560281124 393.93899364491995 L 374.8032854769649 398.65408820822483 L 373.25131053445733 403.7702639450147 L 372.72727272727275 409.0909090909091 L 373.25131053445733 414.4115542368035 L 374.8032854769649 419.52772997359335 L 377.3235560281124 424.24282453689824 L 380.71526960400325 428.37563948690587 L 384.8480845540108 431.7673530627967 L 389.5631791173157 434.28762361394416 L 394.67935485410555 435.83959855645173 L 400 436.3636363636364 L 405.3206451458944 435.83959855645173 L 410.4368208826843 434.2876236139442 L 415.1519154459891 431.7673530627967 L 419.28473039599675 428.37563948690587 L 422.6764439718876 424.24282453689824 L 425.1967145230351 419.5277299735934 L 426.74868946554267 414.4115542368035 L 427.27272727272725 409.0909090909091 Z M 219.3181818181818 324.54545454545456 L 258.1818181818182 324.54545454545456 L 258.1818181818182 275.45454545454544 L 219.3181818181818 275.45454545454544 L 219.3181818181818 324.54545454545456 Z" fill="rgb(200, 52, 52)" fill-rule="evenodd" fill-opacity="0.5" data-type="pcb_copper_pour" data-pcb-layer="top"/><path class="pcb-silkscreen pcb-silkscreen-top" d="M 288.52272727272725 270 L 219.3181818181818 270 L 219.3181818181818 330 L 288.52272727272725 330" fill="none" stroke="#f2eda1" stroke-width="2.7272727272727275" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_0" data-pcb-silkscreen-path-id="pcb_silkscreen_path_0" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10.90909090909091" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,263.6363636363636,256.3636363636364)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_0" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">R1</text><g data-type="pcb_plated_hole" data-pcb-layer="through"><circle class="pcb-hole-outer" fill="rgb(200, 52, 52)" cx="400" cy="300" r="32.72727272727273" data-type="pcb_plated_hole" data-pcb-layer="top"/><circle class="pcb-hole-inner" fill="#FF26E2" cx="400" cy="300" r="16.363636363636363" data-type="pcb_plated_hole_drill" data-pcb-layer="drill"/></g><circle class="pcb-hole" cx="400" cy="409.0909090909091" r="27.272727272727273" fill="#FF26E2" data-type="pcb_hole" data-pcb-layer="drill"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="800" height="600" data-software-used-string="@tscircuit/core@0.0.844"><style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="127.27272727272725" y="27.272727272727252" width="545.4545454545455" height="545.4545454545455" data-type="pcb_boundary" data-pcb-layer="global"/><rect class="pcb-pad" fill="rgb(77, 127, 196)" x="547.2727272727273" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="bottom"/><rect class="pcb-pad" fill="rgb(77, 127, 196)" x="497.5" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="bottom"/><path class="pcb-copper-pour pcb-copper-pour-brep" d="M 127.27272727272725 572.7272727272727 L 127.27272727272725 27.272727272727252 L 672.7272727272727 27.272727272727252 L 672.7272727272727 572.7272727272727 L 127.27272727272725 572.7272727272727 Z M 443.6363636363636 300 L 442.79790314486826 291.48696776656897 L 440.31474323685615 283.3010865877052 L 436.2823103550202 275.7569352864174 L 430.8555686335948 269.1444313664052 L 424.24306471358267 263.7176896449798 L 416.6989134122948 259.68525676314385 L 408.51303223343103 257.20209685513174 L 400 256.3636363636364 L 391.48696776656897 257.20209685513174 L 383.3010865877052 259.68525676314385 L 375.7569352864174 263.7176896449798 L 369.1444313664052 269.1444313664052 L 363.7176896449798 275.7569352864174 L 359.68525676314385 283.3010865877052 L 357.20209685513174 291.4869677665689 L 356.3636363636364 300 L 357.20209685513174 308.51303223343103 L 359.68525676314385 316.6989134122948 L 363.7176896449798 324.2430647135826 L 369.1444313664052 330.8555686335948 L 375.7569352864174 336.2823103550202 L 383.30108658770513 340.31474323685615 L 391.4869677665689 342.79790314486826 L 400 343.6363636363636 L 408.51303223343103 342.79790314486826 L 416.6989134122948 340.31474323685615 L 424.2430647135826 336.2823103550202 L 430.85556863359477 330.8555686335948 L 436.2823103550202 324.2430647135826 L 440.31474323685615 316.69891341229487 L 442.79790314486826 308.5130322334311 L 443.6363636363636 300 Z M 536.3636363636364 330 L 586.1363636363636 330 L 586.1363636363636 270 L 536.3636363636364 270 L 536.3636363636364 330 Z M 427.27272727272725 409.0909090909091 L 426.74868946554267 403.7702639450147 L 425.1967145230351 398.65408820822483 L 422.6764439718876 393.93899364491995 L 419.28473039599675 389.8061786949123 L 415.1519154459892 386.4144651190215 L 410.4368208826843 383.894194567874 L 405.3206451458944 382.34221962536645 L 400 381.8181818181818 L 394.6793548541056 382.34221962536645 L 389.5631791173157 383.894194567874 L 384.8480845540109 386.4144651190215 L 380.71526960400325 389.8061786949123 L 377.3235560281124 393.93899364491995 L 374.8032854769649 398.65408820822483 L 373.25131053445733 403.7702639450147 L 372.72727272727275 409.0909090909091 L 373.25131053445733 414.4115542368035 L 374.8032854769649 419.52772997359335 L 377.3235560281124 424.24282453689824 L 380.71526960400325 428.37563948690587 L 384.8480845540108 431.7673530627967 L 389.5631791173157 434.28762361394416 L 394.67935485410555 435.83959855645173 L 400 436.3636363636364 L 405.3206451458944 435.83959855645173 L 410.4368208826843 434.2876236139442 L 415.1519154459891 431.7673530627967 L 419.28473039599675 428.37563948690587 L 422.6764439718876 424.24282453689824 L 425.1967145230351 419.5277299735934 L 426.74868946554267 414.4115542368035 L 427.27272727272725 409.0909090909091 Z" fill="rgb(77, 127, 196)" fill-rule="evenodd" fill-opacity="0.5" data-type="pcb_copper_pour" data-pcb-layer="bottom"/><path class="pcb-silkscreen pcb-silkscreen-bottom" d="M 511.47727272727275 270 L 580.6818181818182 270 L 580.6818181818182 330 L 511.47727272727275 330" fill="none" stroke="#5da9e9" stroke-width="2.7272727272727275" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_1" data-pcb-silkscreen-path-id="pcb_silkscreen_path_1" data-type="pcb_silkscreen_path" data-pcb-layer="bottom"/><text x="0" y="0" dx="0" dy="0" fill="#5da9e9" font-family="Arial, sans-serif" font-size="10.90909090909091" text-anchor="middle" dominant-baseline="central" transform="matrix(-1,0,0,1,536.3636363636364,256.3636363636364)" class="pcb-silkscreen-text pcb-silkscreen-bottom" data-pcb-silkscreen-text-id="pcb_component_1" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="bottom">R2</text><path class="pcb-board" d="M 127.27272727272725 572.7272727272727 L 672.7272727272727 572.7272727272727 L 672.7272727272727 27.272727272727252 L 127.27272727272725 27.272727272727252 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="2.7272727272727275" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="224.77272727272728" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="274.5454545454545" y="280.90909090909093" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><path class="pcb-silkscreen pcb-silkscreen-top" d="M 288.52272727272725 270 L 219.3181818181818 270 L 219.3181818181818 330 L 288.52272727272725 330" fill="none" stroke="#f2eda1" stroke-width="2.7272727272727275" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_0" data-pcb-silkscreen-path-id="pcb_silkscreen_path_0" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10.90909090909091" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,263.6363636363636,256.3636363636364)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_0" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">R1</text><g data-type="pcb_plated_hole" data-pcb-layer="through"><circle class="pcb-hole-outer" fill="rgb(200, 52, 52)" cx="400" cy="300" r="32.72727272727273" data-type="pcb_plated_hole" data-pcb-layer="top"/><circle class="pcb-hole-inner" fill="#FF26E2" cx="400" cy="300" r="16.363636363636363" data-type="pcb_plated_hole_drill" data-pcb-layer="drill"/></g><circle class="pcb-hole" cx="400" cy="409.0909090909091" r="27.272727272727273" fill="#FF26E2" data-type="pcb_hole" data-pcb-layer="drill"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="800" height="600" data-software-used-string="@tscircuit/core@0.0.844"><style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="127.27272727272725" y="27.272727272727252" width="545.4545454545455" height="545.4545454545455" data-type="pcb_boundary" data-pcb-layer="global"/><path class="pcb-board" d="M 127.27272727272725 572.7272727272727 L 672.7272727272727 572.7272727272727 L 672.7272727272727 27.272727272727252 L 400 27.272727272727252 L 400 300 L 127.27272727272725 300 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="2.7272727272727275" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="224.77272727272728" y="335.4545454545455" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="274.5454545454545" y="335.4545454545455" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="497.5" y="335.4545454545455" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="547.2727272727273" y="335.4545454545455" width="27.954545454545453" height="38.18181818181818" data-type="pcb_smtpad" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 511.47727272727275 354.54545454545456 L 561.25 354.54545454545456" stroke-width="4.090909090909091" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 561.25 354.54545454545456 L 561.25 354.54545454545456" stroke-width="4.090909090909091" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 511.47727272727275 354.54545454545456 L 288.52272727272725 354.54545454545456" stroke-width="4.090909090909091" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-trace" stroke="rgb(200, 52, 52)" fill="none" d="M 288.52272727272725 354.54545454545456 L 288.52272727272725 354.54545454545456" stroke-width="4.090909090909091" stroke-linecap="round" stroke-linejoin="round" shape-rendering="crispEdges" data-type="pcb_trace" data-pcb-layer="top"/><path class="pcb-copper-pour pcb-copper-pour-brep" d="M 127.27272727272725 572.7272727272727 L 127.27272727272725 300 L 400 300 L 400 27.272727272727252 L 672.7272727272727 27.272727272727252 L 672.7272727272727 572.7272727272727 L 127.27272727272725 572.7272727272727 Z M 307.95454545454544 362.0454545454545 L 492.04545454545456 362.04545454545456 L 492.04545454545456 379.0909090909091 L 530.909090909091 379.0909090909091 L 530.909090909091 362.04545454545456 L 541.8181818181818 362.04545454545456 L 541.8181818181818 379.0909090909091 L 580.6818181818182 379.0909090909091 L 580.6818181818182 330 L 541.8181818181818 330 L 541.8181818181818 347.04545454545456 L 530.909090909091 347.04545454545456 L 530.909090909091 330 L 492.04545454545456 330 L 492.04545454545456 347.04545454545456 L 307.95454545454544 347.04545454545456 L 307.95454545454544 330 L 269.09090909090907 330 L 269.09090909090907 379.0909090909091 L 307.95454545454544 379.0909090909091 L 307.95454545454544 362.0454545454545 Z" fill="rgb(200, 52, 52)" fill-rule="evenodd" fill-opacity="0.5" data-type="pcb_copper_pour" data-pcb-layer="top"/><path class="pcb-silkscreen pcb-silkscreen-top" d="M 288.52272727272725 324.54545454545456 L 219.3181818181818 324.54545454545456 L 219.3181818181818 384.54545454545456 L 288.52272727272725 384.54545454545456" fill="none" stroke="#f2eda1" stroke-width="2.7272727272727275" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_0" data-pcb-silkscreen-path-id="pcb_silkscreen_path_0" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10.90909090909091" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,263.6363636363636,310.9090909090909)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_0" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">R1</text><path class="pcb-silkscreen pcb-silkscreen-top" d="M 561.25 324.54545454545456 L 492.04545454545456 324.54545454545456 L 492.04545454545456 384.54545454545456 L 561.25 384.54545454545456" fill="none" stroke="#f2eda1" stroke-width="2.7272727272727275" stroke-linecap="round" stroke-linejoin="round" data-pcb-component-id="pcb_component_1" data-pcb-silkscreen-path-id="pcb_silkscreen_path_1" data-type="pcb_silkscreen_path" data-pcb-layer="top"/><text x="0" y="0" dx="0" dy="0" fill="#f2eda1" font-family="Arial, sans-serif" font-size="10.90909090909091" text-anchor="middle" dominant-baseline="central" transform="matrix(1,0,0,1,536.3636363636364,310.9090909090909)" class="pcb-silkscreen-text pcb-silkscreen-top" data-pcb-silkscreen-text-id="pcb_component_1" stroke="none" data-type="pcb_silkscreen_text" data-pcb-layer="top">R2</text></svg>