@tscircuit/schematic-trace-solver 0.0.148 → 0.0.150
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/.agents/skills/schematic-trace-visualization/SKILL.md +7 -2
- package/dist/index.d.ts +31 -2
- package/dist/index.js +127 -46
- package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +115 -6
- package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +17 -1
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +2 -0
- package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +2 -0
- package/lib/types/InputProblem.ts +27 -1
- package/package.json +8 -1
- package/site/examples/example51.page.tsx +4 -0
- package/tests/assets/example51.json +5102 -0
- package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +751 -5
- package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +660 -5
- package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +44 -5
- package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +394 -5
- package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +170 -5
- package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +79 -5
- package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +219 -5
- package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +65 -5
- package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +142 -5
- package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +100 -5
- package/tests/bug-reports/bug-report-20260708T053736Z/__snapshots__/bug-report-20260708T053736Z.snap.svg +23 -5
- package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +58 -5
- package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +86 -5
- package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +226 -5
- package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +191 -5
- package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +30 -5
- package/tests/bug-reports/bug-report-20260717T042845Z/__snapshots__/bug-report-20260717T042845Z.snap.svg +37 -5
- package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +580 -2
- package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +44 -5
- package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +107 -5
- package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +114 -5
- package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +121 -5
- package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +51 -5
- package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +212 -5
- package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +569 -5
- package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +37 -5
- package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +289 -5
- package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +289 -5
- package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +149 -5
- package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +93 -5
- package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +79 -5
- package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +244 -2
- package/tests/examples/__snapshots__/example01.snap.svg +44 -5
- package/tests/examples/__snapshots__/example02.snap.svg +51 -5
- package/tests/examples/__snapshots__/example03.snap.svg +86 -5
- package/tests/examples/__snapshots__/example04.snap.svg +30 -5
- package/tests/examples/__snapshots__/example05.snap.svg +30 -5
- package/tests/examples/__snapshots__/example06.snap.svg +30 -5
- package/tests/examples/__snapshots__/example07.snap.svg +58 -5
- package/tests/examples/__snapshots__/example08.snap.svg +37 -5
- package/tests/examples/__snapshots__/example09.snap.svg +149 -5
- package/tests/examples/__snapshots__/example10.snap.svg +65 -5
- package/tests/examples/__snapshots__/example11.snap.svg +51 -5
- package/tests/examples/__snapshots__/example12.snap.svg +51 -5
- package/tests/examples/__snapshots__/example13.snap.svg +72 -5
- package/tests/examples/__snapshots__/example14.snap.svg +79 -5
- package/tests/examples/__snapshots__/example15.snap.svg +86 -5
- package/tests/examples/__snapshots__/example16.snap.svg +51 -5
- package/tests/examples/__snapshots__/example17.snap.svg +51 -5
- package/tests/examples/__snapshots__/example18.snap.svg +58 -5
- package/tests/examples/__snapshots__/example19.snap.svg +44 -5
- package/tests/examples/__snapshots__/example20.snap.svg +44 -5
- package/tests/examples/__snapshots__/example21.snap.svg +72 -5
- package/tests/examples/__snapshots__/example22.snap.svg +51 -5
- package/tests/examples/__snapshots__/example23.snap.svg +51 -5
- package/tests/examples/__snapshots__/example24.snap.svg +51 -5
- package/tests/examples/__snapshots__/example25.snap.svg +86 -5
- package/tests/examples/__snapshots__/example26.snap.svg +51 -5
- package/tests/examples/__snapshots__/example27.snap.svg +72 -5
- package/tests/examples/__snapshots__/example28.snap.svg +44 -5
- package/tests/examples/__snapshots__/example29.snap.svg +324 -5
- package/tests/examples/__snapshots__/example30.snap.svg +107 -5
- package/tests/examples/__snapshots__/example31.snap.svg +37 -5
- package/tests/examples/__snapshots__/example32.snap.svg +149 -5
- package/tests/examples/__snapshots__/example33.snap.svg +93 -5
- package/tests/examples/__snapshots__/example34.snap.svg +51 -5
- package/tests/examples/__snapshots__/example35.snap.svg +58 -5
- package/tests/examples/__snapshots__/example36.snap.svg +44 -5
- package/tests/examples/__snapshots__/example37.snap.svg +72 -5
- package/tests/examples/__snapshots__/example38.snap.svg +30 -5
- package/tests/examples/__snapshots__/example39.snap.svg +37 -5
- package/tests/examples/__snapshots__/example40.snap.svg +100 -5
- package/tests/examples/__snapshots__/example41.snap.svg +44 -5
- package/tests/examples/__snapshots__/example42.snap.svg +65 -5
- package/tests/examples/__snapshots__/example43.snap.svg +58 -5
- package/tests/examples/__snapshots__/example44.snap.svg +107 -5
- package/tests/examples/__snapshots__/example45.snap.svg +51 -5
- package/tests/examples/__snapshots__/example46.snap.svg +93 -5
- package/tests/examples/__snapshots__/example47.snap.svg +93 -5
- package/tests/examples/__snapshots__/example48.snap.svg +65 -5
- package/tests/examples/__snapshots__/example49.snap.svg +177 -5
- package/tests/examples/__snapshots__/example50.snap.svg +93 -5
- package/tests/examples/__snapshots__/example51.snap.svg +952 -0
- package/tests/examples/example51.test.ts +12 -0
- package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +219 -0
- package/tests/fixtures/convertSolverOutputToCircuitJson.ts +1058 -0
- package/tests/fixtures/matcher.ts +45 -8
- package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +762 -2
- package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +111 -2
- package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +167 -2
- package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +65 -5
- package/tests/repros/__snapshots__/manufacturePartNumber-text-box.snap.svg +30 -5
- package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +79 -5
- package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +65 -5
- package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +149 -5
- package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +55 -2
- package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +160 -2
- package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +135 -5
- package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +69 -2
- package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +86 -5
- package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +260 -0
- package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +335 -2
- package/tests/repros/__snapshots__/repro-ground-label-on-lower-rail-end.snap.svg +48 -2
- package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +149 -5
- package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +72 -5
- package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +100 -5
- package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +90 -2
- package/tests/repros/__snapshots__/repro-power-group-rail-labels.snap.svg +37 -5
- package/tests/repros/__snapshots__/repro-rectifier-trace-overlap.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +237 -2
- package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +72 -5
- package/tests/repros/__snapshots__/repro-rp2040-v3v3-label-placement.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-rp2040-zero-crystal-fallback-netlabels.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +79 -5
- package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +27 -2
- package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1150 -5
- package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro-type-c-vbus-led-ground-label.snap.svg +44 -5
- package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +685 -2
- package/tests/repros/__snapshots__/repro-vcc-pin1-detour.snap.svg +27 -2
- package/tests/repros/__snapshots__/repro129-host-custom-symbol-passives.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +100 -5
- package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +107 -5
- package/tests/repros/__snapshots__/repro47-endpoint-obstacle-detour.snap.svg +51 -5
- package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +104 -2
- package/tests/repros/__snapshots__/repro5-escape-padded-text-obstacles.snap.svg +30 -5
- package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +65 -5
- package/tests/repros/__snapshots__/repro84-stacked-gnd-label-orientation.snap.svg +27 -2
- package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +58 -5
- package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +37 -5
- package/tests/repros/assets/repro-core-tb67s579ftg-inline-label-routing.input.json +900 -0
- package/tests/repros/repro-core-tb67s579ftg-inline-label-routing.test.ts +40 -0
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/fallback-net-label-width.snap.svg +25 -7
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-anchored-label-clearance.snap.svg +34 -2
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-port-stub.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-two-pin-net.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label01.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +23 -5
- package/tests/solvers/InlineNetLabelSolver/__snapshots__/terminal-stub-trace-clearance.snap.svg +71 -0
- package/tests/solvers/InlineNetLabelSolver/fallback-net-label-width.test.ts +10 -1
- package/tests/solvers/InlineNetLabelSolver/terminal-stub-trace-clearance.test.ts +102 -0
- package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.snap.svg +23 -5
- package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_repro47-short-opposing-pins.snap.svg +20 -2
- package/tests/solvers/TraceCleanupSolver/__snapshots__/TraceCleanupSolver.snap.svg +44 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +79 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +44 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +23 -5
- package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/SingleOverlapSolver.snap.svg +30 -5
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-1.7899999999999998,0.41527232500000005 -1.7900000000000003,-1.2547276749999998" data-type="line" data-label="" points="190.54205075718113,355.27127403412317 190.5420507571811,473.73416457412725" fill="none" stroke="hsl(296, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.64945535,1.2547276749999998 0.6100000000000005,0.215272325" data-type="line" data-label="" points="434.52278287950537,295.72378466869156 360.7881209943128,369.45844655388413" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.215272325 1.3100000000000005,0.21527232500000038" data-type="line" data-label="" points="360.7881209943128,369.45844655388413 410.4432248134762,369.45844655388413" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -2.0149999999999997,3.5597276749999995" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 174.58148167245005,132.21662137844635" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 190.5420507571811,551.7636134328127" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 190.5420507571811,551.7636134328127" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7900000000000003,-2.3547276750000004 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="190.5420507571811,551.7636134328127 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 -1.7899999999999998,0.21527232500000004" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 190.54205075718113,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 2.4100000000000006,0.21527232500000038" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 488.4726736721616,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 2.4100000000000006,0.21527232500000038" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 488.4726736721616,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.4100000000000006,0.21527232500000038 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="488.4726736721616,369.45844655388413 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.415272325 -0.18999999999999995,4.3547276749999995" data-type="line" data-label="" points="360.7881209943128,355.27127403412317 304.0394309152689,75.82261061239649" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 0.6100000000000005,0.6152723250000001" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 360.7881209943128,341.0841015143622" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 1.64945535,2.354727675" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 434.52278287950537,217.69433581000618" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.6152723250000001 1.64945535,2.354727675" data-type="line" data-label="" points="360.7881209943128,341.0841015143622 434.52278287950537,217.69433581000618" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.6152723250000001 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="360.7881209943128,341.0841015143622 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.64945535,2.354727675 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="434.52278287950537,217.69433581000618 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.4152723250000001 -2.09,0.4152723250000001 -2.09,-0.41972767499999986 -1.7900000000000003,-0.41972767499999986 -1.7900000000000003,-1.2547276749999998" data-type="line" data-label="" points="190.54205075718113,355.27127403412317 169.26129197753966,355.27127403412317 169.26129197753966,414.5027193041252 190.5420507571811,414.5027193041252 190.5420507571811,473.73416457412725" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.3100000000000005,0.21527232500000038 1.1100000000000005,0.21527232500000038 1.1100000000000005,0.7350000000000001 1.64945535,0.7350000000000001 1.64945535,1.2547276749999998" data-type="line" data-label="" points="410.4432248134762,369.45844655388413 396.25605229371524,369.45844655388413 396.25605229371524,332.5911156112878 434.52278287950537,332.5911156112878 434.52278287950537,295.72378466869156" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.215272325 1.3100000000000005,0.21527232500000038" data-type="line" data-label="" points="360.7881209943128,369.45844655388413 410.4432248134762,369.45844655388413" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 -1.8899999999999997,0.21527232500000004 -1.8899999999999997,0.015272324999999976 -1.7899999999999998,0.015272324999999976" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 183.44846449730065,369.45844655388413 183.44846449730065,383.6456190736451 190.54205075718113,383.6456190736451" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.610000000000001,0.015272324999999753 0.7100000000000005,0.015272324999999753 0.7100000000000005,-2.5547276750000005 -1.7900000000000003,-2.5547276750000005 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="360.78812099431286,383.64561907364515 367.8817072541933,383.64561907364515 367.8817072541933,565.9507859525736 190.5420507571811,565.9507859525736 190.5420507571811,551.7636134328127" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -2.0149999999999997,3.3597276749999994 -1.1025,3.3597276749999994 -1.1025,4.154727674999999 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 174.58148167245005,146.40379389820734 239.31045629385943,146.40379389820734 239.31045629385943,90.00978313215751 304.0394309152689,90.00978313215751" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.410000000000001,0.21527232500000082 2.610000000000001,0.21527232500000082 2.610000000000001,4.859727674999999 -2.0149999999999997,4.859727674999999 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="488.4726736721616,369.4584465538841 502.6598461919226,369.4584465538841 502.6598461919226,40.00000000000006 174.58148167245005,40.00000000000006 174.58148167245005,54.18717251976102" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 -1.9899999999999998,0.6152723250000001 -1.9899999999999998,1.015272325 0.8100000000000007,1.015272325 0.8100000000000007,0.6152723250000001 0.6100000000000005,0.6152723250000001" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 176.35487823742017,341.0841015143622 176.35487823742017,312.7097564748403 374.97529351407377,312.7097564748403 374.97529351407377,341.0841015143622 360.7881209943128,341.0841015143622" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-0.5899999999999996" data-y="0.315272325" x="190.54205075718113" y="326.89692899460124" width="170.24607023713168" height="70.93586259880487" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="1.88195535" data-y="1.8047276749999999" x="420.7289248903029" y="217.6943358100062" width="60.57289208684921" height="78.02944885868538" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="1.8600000000000005" data-y="0.21527232500000035" x="410.44322481347626" y="341.8320953579147" width="78.02944885868538" height="55.25270239193884" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-1.8774999999999997" data-y="4.109727674999999" x="144.788419380952" y="54.18717251976102" width="79.0934867976674" height="78.02944885868533" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-1.6525000000000003" data-y="-1.804727675" x="160.74898846568306" y="473.7341645741272" width="79.09348679766742" height="78.02944885868544" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="0.9100000000000001" data-y="4.3547276749999995" x="304.0394309152689" y="47.448265572874504" width="156.0588977173707" height="56.74869007904397" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
2
|
+
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="-1.7899999999999998,0.41527232500000005 -1.7900000000000003,-1.2547276749999998" data-type="line" data-label="" points="190.54205075718113,355.27127403412317 190.5420507571811,473.73416457412725" fill="none" stroke="hsl(296, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.64945535,1.2547276749999998 0.6100000000000005,0.215272325" data-type="line" data-label="" points="434.52278287950537,295.72378466869156 360.7881209943128,369.45844655388413" fill="none" stroke="hsl(248, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.215272325 1.3100000000000005,0.21527232500000038" data-type="line" data-label="" points="360.7881209943128,369.45844655388413 410.4432248134762,369.45844655388413" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -2.0149999999999997,3.5597276749999995" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 174.58148167245005,132.21662137844635" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 190.5420507571811,551.7636134328127" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.015272324999999976 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="360.7881209943128,383.6456190736451 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 190.5420507571811,551.7636134328127" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7900000000000003,-2.3547276750000004 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="190.5420507571811,551.7636134328127 304.0394309152689,90.00978313215751" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 -1.7899999999999998,0.21527232500000004" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 190.54205075718113,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 2.4100000000000006,0.21527232500000038" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 488.4726736721616,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.015272324999999976 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="190.54205075718113,383.6456190736451 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 2.4100000000000006,0.21527232500000038" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 488.4726736721616,369.45844655388413" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="2.4100000000000006,0.21527232500000038 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="488.4726736721616,369.45844655388413 174.58148167245005,54.18717251976102" fill="none" stroke="hsl(234, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.415272325 -0.18999999999999995,4.3547276749999995" data-type="line" data-label="" points="360.7881209943128,355.27127403412317 304.0394309152689,75.82261061239649" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 0.6100000000000005,0.6152723250000001" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 360.7881209943128,341.0841015143622" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 1.64945535,2.354727675" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 434.52278287950537,217.69433581000618" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.6152723250000001 1.64945535,2.354727675" data-type="line" data-label="" points="360.7881209943128,341.0841015143622 434.52278287950537,217.69433581000618" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.6100000000000005,0.6152723250000001 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="360.7881209943128,341.0841015143622 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.64945535,2.354727675 -0.18999999999999995,4.554727675" data-type="line" data-label="" points="434.52278287950537,217.69433581000618 304.0394309152689,61.635438092635525" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.7899999999999998,0.4152723250000001 -2.09,0.4152723250000001 -2.09,-0.41972767499999986 -1.7900000000000003,-0.41972767499999986 -1.7900000000000003,-1.2547276749999998" data-type="line" data-label="" points="190.54205075718113,355.27127403412317 169.26129197753966,355.27127403412317 169.26129197753966,414.5027193041252 190.5420507571811,414.5027193041252 190.5420507571811,473.73416457412725" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.3100000000000005,0.21527232500000038 1.1100000000000005,0.21527232500000038 1.1100000000000005,0.7350000000000001 1.64945535,0.7350000000000001 1.64945535,1.2547276749999998" data-type="line" data-label="" points="410.4432248134762,369.45844655388413 396.25605229371524,369.45844655388413 396.25605229371524,332.5911156112878 434.52278287950537,332.5911156112878 434.52278287950537,295.72378466869156" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.6100000000000005,0.215272325 1.3100000000000005,0.21527232500000038" data-type="line" data-label="" points="360.7881209943128,369.45844655388413 410.4432248134762,369.45844655388413" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7899999999999998,0.21527232500000004 -1.8899999999999997,0.21527232500000004 -1.8899999999999997,0.015272324999999976 -1.7899999999999998,0.015272324999999976" data-type="line" data-label="" points="190.54205075718113,369.45844655388413 183.44846449730065,369.45844655388413 183.44846449730065,383.6456190736451 190.54205075718113,383.6456190736451" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.610000000000001,0.015272324999999753 0.7100000000000005,0.015272324999999753 0.7100000000000005,-2.5547276750000005 -1.7900000000000003,-2.5547276750000005 -1.7900000000000003,-2.3547276750000004" data-type="line" data-label="" points="360.78812099431286,383.64561907364515 367.8817072541933,383.64561907364515 367.8817072541933,565.9507859525736 190.5420507571811,565.9507859525736 190.5420507571811,551.7636134328127" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.0149999999999997,3.5597276749999995 -2.0149999999999997,3.3597276749999994 -1.1025,3.3597276749999994 -1.1025,4.154727674999999 -0.18999999999999995,4.154727674999999" data-type="line" data-label="" points="174.58148167245005,132.21662137844635 174.58148167245005,146.40379389820734 239.31045629385943,146.40379389820734 239.31045629385943,90.00978313215751 304.0394309152689,90.00978313215751" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.410000000000001,0.21527232500000082 2.610000000000001,0.21527232500000082 2.610000000000001,4.859727674999999 -2.0149999999999997,4.859727674999999 -2.0149999999999997,4.659727674999999" data-type="line" data-label="" points="488.4726736721616,369.4584465538841 502.6598461919226,369.4584465538841 502.6598461919226,40.00000000000006 174.58148167245005,40.00000000000006 174.58148167245005,54.18717251976102" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.7899999999999998,0.6152723250000001 -1.9899999999999998,0.6152723250000001 -1.9899999999999998,1.015272325 0.8100000000000007,1.015272325 0.8100000000000007,0.6152723250000001 0.6100000000000005,0.6152723250000001" data-type="line" data-label="" points="190.54205075718113,341.0841015143622 176.35487823742017,341.0841015143622 176.35487823742017,312.7097564748403 374.97529351407377,312.7097564748403 374.97529351407377,341.0841015143622 360.7881209943128,341.0841015143622" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="-0.5899999999999996" data-y="0.315272325" x="190.54205075718113" y="326.89692899460124" width="170.24607023713168" height="70.93586259880487" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="1.88195535" data-y="1.8047276749999999" x="420.7289248903029" y="217.6943358100062" width="60.57289208684921" height="78.02944885868538" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="1.8600000000000005" data-y="0.21527232500000035" x="410.44322481347626" y="341.8320953579147" width="78.02944885868538" height="55.25270239193884" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="-1.8774999999999997" data-y="4.109727674999999" x="144.788419380952" y="54.18717251976102" width="79.0934867976674" height="78.02944885868533" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_4" data-x="-1.6525000000000003" data-y="-1.804727675" x="160.74898846568306" y="473.7341645741272" width="79.09348679766742" height="78.02944885868544" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="schematic_component_5" data-x="0.9100000000000001" data-y="4.3547276749999995" x="304.0394309152689" y="47.448265572874504" width="156.0588977173707" height="56.74869007904397" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
2
4
|
globalConnNetId: connectivity_net2" data-x="-1.7900000000000003" data-y="-2.7947276750000007" x="183.44846449730062" y="565.9507859525736" width="14.187172519760992" height="34.0492140474264" fill="#00000066" stroke="#000000" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
3
5
|
globalConnNetId: connectivity_net2" data-x="-2.0149999999999997" data-y="3.119727674999999" x="167.48789541256957" y="146.4037938982073" width="14.187172519760992" height="34.049214047426375" fill="#00000066" stroke="#000000" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: NODE
|
|
4
6
|
globalConnNetId: connectivity_net3" data-x="2.510000000000001" data-y="-0.08472767499999917" x="488.4726736721616" y="369.4584465538841" width="14.18717251976102" height="42.56151755928295" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.014097241696428573"/></g><g><rect data-type="rect" data-label="netId: OUT
|
|
@@ -47,7 +49,7 @@ orientation: y-" data-x="0.9100000000000006" data-y="0.215272325" cx="382.068879
|
|
|
47
49
|
const h = svg.getElementById('crosshair-h');
|
|
48
50
|
const v = svg.getElementById('crosshair-v');
|
|
49
51
|
const coords = svg.getElementById('coordinates');
|
|
50
|
-
|
|
52
|
+
|
|
51
53
|
crosshair.style.display = 'block';
|
|
52
54
|
h.setAttribute('x1', '0');
|
|
53
55
|
h.setAttribute('x2', '640');
|
|
@@ -66,13 +68,13 @@ orientation: y-" data-x="0.9100000000000006" data-y="0.215272325" cx="382.068879
|
|
|
66
68
|
// y' = (y - ty) / sy
|
|
67
69
|
const sx = matrix.a;
|
|
68
70
|
const sy = matrix.d;
|
|
69
|
-
const tx = matrix.e;
|
|
71
|
+
const tx = matrix.e;
|
|
70
72
|
const ty = matrix.f;
|
|
71
73
|
const realPoint = {
|
|
72
74
|
x: (x - tx) / sx,
|
|
73
75
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
74
76
|
}
|
|
75
|
-
|
|
77
|
+
|
|
76
78
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
77
79
|
coords.setAttribute('x', (x + 5).toString());
|
|
78
80
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -80,4 +82,90 @@ orientation: y-" data-x="0.9100000000000006" data-y="0.215272325" cx="382.068879
|
|
|
80
82
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
81
83
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
82
84
|
});
|
|
83
|
-
]]></script
|
|
85
|
+
]]></script>
|
|
86
|
+
</g>
|
|
87
|
+
<g transform="translate(1216, 200)">
|
|
88
|
+
<style>
|
|
89
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
90
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
91
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
92
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
93
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
94
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
95
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
96
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
97
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
98
|
+
|
|
99
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 444.07812071500297 444.99706524399335 L 417.348655694713 444.99706524399335 L 417.348655694713 519.3940762171338 L 444.0781207150029 519.3940762171338 L 444.0781207150029 593.7910871902743" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 444.07812071500297 444.99706524399335 L 417.348655694713 444.99706524399335 L 417.348655694713 519.3940762171338 L 444.0781207150029 519.3940762171338 L 444.0781207150029 593.7910871902743" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 720.282592591333 462.8167085908533 L 702.462949244473 462.8167085908533 L 702.462949244473 416.5098995608895 L 750.5274589372506 416.5098995608895 L 750.5274589372506 370.2030905309257" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 720.282592591333 462.8167085908533 L 702.462949244473 462.8167085908533 L 702.462949244473 416.5098995608895 L 750.5274589372506 416.5098995608895 L 750.5274589372506 370.2030905309257" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 657.913840877323 462.81670859085335 L 720.282592591333 462.8167085908533" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 657.913840877323 462.81670859085335 L 720.282592591333 462.8167085908533" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 444.07812071500297 462.81670859085335 L 435.168299041573 462.81670859085335 L 435.168299041573 480.63635193771336 L 444.07812071500297 480.63635193771336" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 444.07812071500297 462.81670859085335 L 435.168299041573 462.81670859085335 L 435.168299041573 480.63635193771336 L 444.07812071500297 480.63635193771336" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"><path d="M 657.9138408773231 480.63635193771336 L 666.8236625507529 480.63635193771336 L 666.8236625507529 709.6187689448643 L 444.0781207150029 709.6187689448643 L 444.0781207150029 691.7991255980044" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 657.9138408773231 480.63635193771336 L 666.8236625507529 480.63635193771336 L 666.8236625507529 709.6187689448643 L 444.0781207150029 709.6187689448643 L 444.0781207150029 691.7991255980044" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"><path d="M 424.0310219497855 164.83170095836425 L 424.0310219497855 182.65134430522426 L 505.3331447198342 182.65134430522426 L 505.3331447198342 111.81826200145576 L 586.635267489883 111.81826200145576" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 424.0310219497855 164.83170095836425 L 424.0310219497855 182.65134430522426 L 505.3331447198342 182.65134430522426 L 505.3331447198342 111.81826200145576 L 586.635267489883 111.81826200145576" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_6__stack1"><path d="M 818.2906309990631 462.81670859085324 L 836.110274345923 462.81670859085324 L 836.110274345923 49.00401920377425 L 424.0310219497855 49.00401920377425 L 424.0310219497855 66.82366255063425" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 818.2906309990631 462.81670859085324 L 836.110274345923 462.81670859085324 L 836.110274345923 49.00401920377425 L 424.0310219497855 49.00401920377425 L 424.0310219497855 66.82366255063425" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_7__stack1"><path d="M 444.07812071500297 427.17742189713334 L 426.25847736814296 427.17742189713334 L 426.25847736814296 391.53813520341333 L 675.733484224183 391.53813520341333 L 675.733484224183 427.17742189713334 L 657.913840877323 427.17742189713334" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="14.255714677488px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 444.07812071500297 427.17742189713334 L 426.25847736814296 427.17742189713334 L 426.25847736814296 391.53813520341333 L 675.733484224183 391.53813520341333 L 675.733484224183 427.17742189713334 L 657.913840877323 427.17742189713334" stroke="rgb(0, 150, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><circle cx="720.282592591333" cy="462.8167085908533" r="2.6729465020289997" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_4__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_5__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_6__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_7__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="479.717407408723" y="409.35777855027334" width="142.55714677487998" height="89.09821673429997" stroke-width="1.781964334686px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="479.717407408723" y="409.35777855027334" width="142.55714677487998" height="89.09821673429997" fill="transparent"/><text class="sch-text" x="550.9959807961629" y="453.9068869174233" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="16.037679012174px" transform="rotate(0, 550.9959807961629, 453.9068869174233)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="480.63635193771336" x2="657.913840877323" y2="480.63635193771336" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="656.131876542637" y="478.85438760302736" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="640.094197530463" y="478.85438760302736" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="479.717407408723" y1="480.63635193771336" x2="444.07812071500297" y2="480.63635193771336" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="442.296156380317" y="478.85438760302736" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="461.897764061863" y="478.85438760302736" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="444.99706524399335" x2="656.131876542637" y2="444.99706524399335" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="657.913840877323" cy="444.99706524399335" r="1.781964334686" stroke-width="1.781964334686px"/><rect x="656.131876542637" y="443.21510090930735" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="640.094197530463" y="443.21510090930735" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="479.717407408723" y1="427.17742189713334" x2="444.07812071500297" y2="427.17742189713334" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><rect x="442.296156380317" y="425.39545756244735" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="461.897764061863" y="425.39545756244735" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="479.717407408723" y1="444.99706524399335" x2="444.07812071500297" y2="444.99706524399335" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="442.296156380317" y="443.21510090930735" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="461.897764061863" y="443.21510090930735" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="479.717407408723" y1="462.81670859085335" x2="444.07812071500297" y2="462.81670859085335" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><rect x="442.296156380317" y="461.03474425616736" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="461.897764061863" y="461.03474425616736" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="462.81670859085335" x2="657.913840877323" y2="462.81670859085335" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><rect x="656.131876542637" y="461.03474425616736" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="640.094197530463" y="461.03474425616736" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="427.17742189713334" x2="657.913840877323" y2="427.17742189713334" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="656.131876542637" y="425.39545756244735" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="640.094197530463" y="425.39545756244735" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">8</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component-overlay sch-component-overlay" x="737.4629874175001" y="272.19505212319564" width="26.128943039500882" height="98.00803840773006" fill="transparent"/><path class="sch-component-symbol-path" d="M 750.5274589372506 272.19505212319564 L 750.5274589372506 288.5329921257643" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 750.5274589372506 353.86515052835705 L 750.5274589372506 370.2030905309257" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 763.591930457001 288.5329921257643 L 763.591930457001 353.86515052835705 L 737.4629874175001 353.86515052835705 L 737.4629874175001 288.5329921257643 L 763.591930457001 288.5329921257643" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="776.6629358459786" y="295.0635944183327" stroke="rgb(245, 241, 237)" stroke-width="1.781964334686px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="16.037679012174px">R1</text><text class="sch-component-text" x="776.6629358459786" y="347.33454823578865" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="16.037679012174px"></text><circle class="component-pin sch-component-pin" cx="750.5274589372506" cy="272.19505212319564" r="1.781964334686px" stroke-width="1.781964334686px" fill="none" stroke="rgb(132, 0, 0)"/></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component-overlay sch-component-overlay" x="720.282592591333" y="449.7522370711029" width="98.00803840773006" height="26.12894303950077" fill="transparent"/><path class="sch-component-symbol-path" d="M 720.282592591333 462.8167085908533 L 736.6205325939017 462.8167085908533" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 801.9526909964944 462.8167085908533 L 818.2906309990631 462.8167085908533" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 736.6205325939017 449.7522370711029 L 801.9526909964944 449.7522370711029 L 801.9526909964944 475.8811801106037 L 736.6205325939017 475.8811801106037 L 736.6205325939017 449.7522370711029" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="769.286611795198" y="436.6812316821253" stroke="rgb(245, 241, 237)" stroke-width="1.781964334686px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="16.037679012174px">R2</text><text class="sch-component-text" x="769.286611795198" y="488.9521854995813" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="16.037679012174px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_3__stack1"><rect class="component-overlay sch-component-overlay" x="397.89227810644394" y="66.82366255063424" width="52.277487686683116" height="98.00803840772996" fill="transparent"/><path class="sch-component-symbol-path" d="M 424.0310219497855 164.8317009583642 L 424.0310219497855 125.62848559527222" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 424.0310219497855 106.02687791372622 L 424.0310219497855 66.82366255063424" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 450.16976579312706 125.62848559527222 L 397.89227810644394 125.62848559527222" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 450.16976579312706 106.02687791372622 L 397.89227810644394 106.02687791372622" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="442.81589597793374" y="83.15833561858923" stroke="rgb(245, 241, 237)" stroke-width="1.781964334686px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="ideographic" font-size="16.037679012174px">C1</text><text class="sch-component-text" x="442.81589597793374" y="148.4970278904092" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="hanging" font-size="16.037679012174px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_4__stack1"><rect class="component-overlay sch-component-overlay" x="417.9393768716613" y="593.7910871902743" width="52.27748768668323" height="98.00803840773006" fill="transparent"/><path class="sch-component-symbol-path" d="M 444.0781207150029 691.7991255980044 L 444.0781207150029 652.5959102349124" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 444.0781207150029 632.9943025533663 L 444.0781207150029 593.7910871902743" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 470.2168645583445 652.5959102349124 L 417.9393768716613 652.5959102349124" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 470.2168645583445 632.9943025533663 L 417.9393768716613 632.9943025533663" stroke="rgb(132, 0, 0)" fill="none" stroke-width="1.781964334686px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="462.86299474315115" y="610.1257602582293" stroke="rgb(245, 241, 237)" stroke-width="1.781964334686px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="ideographic" font-size="16.037679012174px">C2</text><text class="sch-component-text" x="462.86299474315115" y="675.4644525300494" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="hanging" font-size="16.037679012174px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_5__stack1"><rect class="component chip sch-component-body" x="622.274554183603" y="58.35933196087569" width="124.73750342801998" height="71.27857338744008" stroke-width="1.781964334686px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="622.274554183603" y="58.35933196087569" width="124.73750342801998" height="71.27857338744008" fill="transparent"/><text class="sch-text" x="684.643305897613" y="93.99861865459576" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="16.037679012174px" transform="rotate(0, 684.643305897613, 93.99861865459576)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="76.1789753077357" x2="588.417231824569" y2="76.1789753077357" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_5_0__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="586.635267489883" cy="76.1789753077357" r="1.781964334686" stroke-width="1.781964334686px"/><rect x="584.853303155197" y="74.3970109730497" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="604.454910836743" y="74.39701097304976" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="93.99861865459576" x2="588.417231824569" y2="93.99861865459576" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_5_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="586.635267489883" cy="93.99861865459576" r="1.781964334686" stroke-width="1.781964334686px"/><rect x="584.853303155197" y="92.21665431990976" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="604.454910836743" y="92.21665431990976" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="622.274554183603" y1="111.81826200145576" x2="586.635267489883" y2="111.81826200145576" stroke-width="1.781964334686px"/><g class="sch-port" data-schematic-port-id="source_port_5_2__stack1"><rect x="584.853303155197" y="110.03629766676977" width="3.563928669372" height="3.563928669372" opacity="0"/></g><text class="pin-number sch-pin-number" x="604.454910836743" y="110.03629766676977" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="13.364732510144998px" transform="">3</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="657.913840877323" cy="480.63635193771336" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="444.07812071500297" cy="480.63635193771336" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="657.913840877323" cy="444.99706524399335" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="444.07812071500297" cy="427.17742189713334" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="444.07812071500297" cy="444.99706524399335" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="444.07812071500297" cy="462.81670859085335" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="657.913840877323" cy="462.81670859085335" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="657.913840877323" cy="427.17742189713334" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="750.5274589372506" cy="294.4696063067707" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="750.5274589372506" cy="392.4776447145007" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="742.557146774908" cy="462.8167085908533" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="840.5651851826381" cy="462.8167085908533" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="424.0310219497855" cy="89.09821673420925" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="424.0310219497855" cy="187.10625514193924" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="444.0781207150029" cy="616.0656413738493" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_1__stack1"><circle cx="444.0781207150029" cy="714.0736797815794" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_0__stack1"><circle cx="586.635267489883" cy="76.1789753077357" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_1__stack1"><circle cx="586.635267489883" cy="93.99861865459576" r="3.563928669372" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_2__stack1"><circle cx="586.635267489883" cy="111.81826200145576" r="3.563928669372" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
100
|
+
M 444.0781207150029,709.6187689448643
|
|
101
|
+
L 452.9879423884329,714.4300726485166
|
|
102
|
+
L 452.98794238843294,755.4508916329883
|
|
103
|
+
L 435.16829904157294,755.4508916329883
|
|
104
|
+
L 435.16829904157294,714.4300726485166
|
|
105
|
+
Z
|
|
106
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="444.0781207150029" y="717.6376084509513" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(90 444.0781207150029 717.6376084509513)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
|
|
107
|
+
M 424.0310219497855,182.65134430522426
|
|
108
|
+
L 432.94084362321547,187.46264800887644
|
|
109
|
+
L 432.9408436232155,228.48346699334817
|
|
110
|
+
L 415.1212002763555,228.48346699334817
|
|
111
|
+
L 415.1212002763555,187.46264800887644
|
|
112
|
+
Z
|
|
113
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="424.0310219497855" y="190.67018381131126" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(90 424.0310219497855 190.67018381131126)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
|
|
114
|
+
M 827.200452672493,462.81670859085324
|
|
115
|
+
L 836.110274345923,467.6280122945054
|
|
116
|
+
L 836.110274345923,519.1149018046996
|
|
117
|
+
L 818.2906309990631,519.1149018046996
|
|
118
|
+
L 818.2906309990631,467.6280122945054
|
|
119
|
+
Z
|
|
120
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="827.200452672493" y="470.8355480969402" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(90 827.200452672493 470.8355480969402)">XXXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
|
|
121
|
+
M 657.913840877323,444.99706524399335
|
|
122
|
+
L 662.7251445809752,436.0872435705634
|
|
123
|
+
L 703.7459635654469,436.0872435705634
|
|
124
|
+
L 703.7459635654469,453.9068869174233
|
|
125
|
+
L 662.7251445809752,453.9068869174233
|
|
126
|
+
Z
|
|
127
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="665.93268038341" y="444.99706524399335" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
|
|
128
|
+
M 586.635267489883,93.99861865459576
|
|
129
|
+
L 581.8239637862307,102.90844032802576
|
|
130
|
+
L 540.803144801759,102.90844032802576
|
|
131
|
+
L 540.803144801759,85.08879698116576
|
|
132
|
+
L 581.8239637862307,85.08879698116576
|
|
133
|
+
Z
|
|
134
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="578.6164279837959" y="93.99861865459576" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
|
|
135
|
+
M 426.25847736814296,391.53813520341333
|
|
136
|
+
L 417.348655694713,386.72683149976115
|
|
137
|
+
L 417.348655694713,345.70601251528944
|
|
138
|
+
L 435.168299041573,345.70601251528944
|
|
139
|
+
L 435.16829904157294,386.72683149976115
|
|
140
|
+
Z
|
|
141
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" x="426.25847736814296" y="383.51929569732636" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(-90 426.25847736814296 383.51929569732636)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" d="
|
|
142
|
+
M 750.5274589372506,272.1950521231957
|
|
143
|
+
L 741.6176372638206,267.3837484195435
|
|
144
|
+
L 741.6176372638206,226.36292943507178
|
|
145
|
+
L 759.4372806106805,226.36292943507178
|
|
146
|
+
L 759.4372806106805,267.3837484195435
|
|
147
|
+
Z
|
|
148
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" x="750.5274589372506" y="264.1762126171087" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(-90 750.5274589372506 264.1762126171087)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" d="
|
|
149
|
+
M 586.635267489883,76.1789753077357
|
|
150
|
+
L 581.8239637862307,85.0887969811657
|
|
151
|
+
L 540.803144801759,85.0887969811657
|
|
152
|
+
L 540.803144801759,67.2691536343057
|
|
153
|
+
L 581.8239637862307,67.2691536343057
|
|
154
|
+
Z
|
|
155
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" x="578.6164279837959" y="76.1789753077357" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" d="
|
|
156
|
+
M 417.348655694713,444.99706524399335
|
|
157
|
+
L 412.5373519910608,453.9068869174233
|
|
158
|
+
L 381.9826035323115,453.9068869174233
|
|
159
|
+
L 381.9826035323115,436.0872435705633
|
|
160
|
+
L 412.5373519910608,436.0872435705634
|
|
161
|
+
Z
|
|
162
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" x="409.329816188626" y="444.99706524399335" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" d="
|
|
163
|
+
M 684.643305897613,462.81670859085335
|
|
164
|
+
L 693.553127571043,467.62801229450554
|
|
165
|
+
L 693.553127571043,498.18276075325485
|
|
166
|
+
L 675.733484224183,498.18276075325485
|
|
167
|
+
L 675.733484224183,467.62801229450554
|
|
168
|
+
Z
|
|
169
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="1.781964334686px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" x="684.643305897613" y="470.83554809694033" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="16.037679012174px" transform="rotate(90 684.643305897613 470.83554809694033)">XX</text>
|
|
170
|
+
</g>
|
|
171
|
+
</svg>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
<svg width="
|
|
1
|
+
<svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
|
|
2
|
+
<g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
|
|
3
|
+
<rect width="100%" height="100%" fill="white"/><g><polyline data-points="1.2000000000000002,-0.30000000000000004 1.6,2.1049999999999995" data-type="line" data-label="" points="308.80000000000007,477.08 353.6,207.72000000000003" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.09999999999999998 1.6,2.3049999999999997" data-type="line" data-label="" points="308.80000000000007,432.28 353.6,185.32" fill="none" stroke="hsl(158, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.6,2.505" data-type="line" data-label="" points="308.80000000000007,409.87999999999994 353.6,162.91999999999996" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,-0.30000000000000004 1.3010000000000002,-0.30000000000000004 1.3010000000000002,-0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,477.08 320.1120000000001,477.08 320.1120000000001,499.592" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,2.1049999999999995 1.499,2.1049999999999995 1.499,1.9039999999999997" data-type="line" data-label="" points="353.6,207.72000000000003 342.288,207.72000000000003 342.288,230.232" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.3010000000000002,0.30000000000000004 1.3010000000000002,0.5010000000000001" data-type="line" data-label="" points="308.80000000000007,409.87999999999994 320.1120000000001,409.87999999999994 320.1120000000001,387.36799999999994" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,2.505 1.499,2.505 1.499,2.706" data-type="line" data-label="" points="353.6,162.91999999999996 342.288,162.91999999999996 342.288,140.40799999999996" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="40" y="387.47999999999996" width="268.80000000000007" height="112" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.7" data-y="2.3049999999999997" x="353.6000000000001" y="140.51999999999998" width="246.39999999999998" height="89.6" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
2
4
|
globalConnNetId: connectivity_net0" data-x="1.3010000000000002" data-y="-0.7410000000000001" x="308.91200000000003" y="499.592" width="22.400000000000034" height="53.75999999999999" fill="#00000066" stroke="#000000" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: GND
|
|
3
5
|
globalConnNetId: connectivity_net0" data-x="1.499" data-y="1.6639999999999997" x="331.08799999999997" y="230.23199999999997" width="22.400000000000034" height="53.75999999999996" fill="#00000066" stroke="#000000" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: OUT
|
|
4
6
|
globalConnNetId: connectivity_net1" data-x="1.441" data-y="0.09999999999999998" x="308.91200000000003" y="421.08" width="53.75999999999999" height="22.399999999999977" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.008928571428571428"/></g><g><rect data-type="rect" data-label="netId: OUT
|
|
@@ -31,7 +33,7 @@ orientation: y+" data-x="1.499" data-y="2.706" cx="342.288" cy="140.407999999999
|
|
|
31
33
|
const h = svg.getElementById('crosshair-h');
|
|
32
34
|
const v = svg.getElementById('crosshair-v');
|
|
33
35
|
const coords = svg.getElementById('coordinates');
|
|
34
|
-
|
|
36
|
+
|
|
35
37
|
crosshair.style.display = 'block';
|
|
36
38
|
h.setAttribute('x1', '0');
|
|
37
39
|
h.setAttribute('x2', '640');
|
|
@@ -50,13 +52,13 @@ orientation: y+" data-x="1.499" data-y="2.706" cx="342.288" cy="140.407999999999
|
|
|
50
52
|
// y' = (y - ty) / sy
|
|
51
53
|
const sx = matrix.a;
|
|
52
54
|
const sy = matrix.d;
|
|
53
|
-
const tx = matrix.e;
|
|
55
|
+
const tx = matrix.e;
|
|
54
56
|
const ty = matrix.f;
|
|
55
57
|
const realPoint = {
|
|
56
58
|
x: (x - tx) / sx,
|
|
57
59
|
y: (y - ty) / sy // Flip y back since we used negative scale
|
|
58
60
|
}
|
|
59
|
-
|
|
61
|
+
|
|
60
62
|
coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
|
|
61
63
|
coords.setAttribute('x', (x + 5).toString());
|
|
62
64
|
coords.setAttribute('y', (y - 5).toString());
|
|
@@ -64,4 +66,62 @@ orientation: y+" data-x="1.499" data-y="2.706" cx="342.288" cy="140.407999999999
|
|
|
64
66
|
document.currentScript.parentElement.addEventListener('mouseleave', () => {
|
|
65
67
|
document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
|
|
66
68
|
});
|
|
67
|
-
]]></script
|
|
69
|
+
]]></script>
|
|
70
|
+
</g>
|
|
71
|
+
<g transform="translate(1216, 200)">
|
|
72
|
+
<style>
|
|
73
|
+
.boundary { fill: rgb(245, 241, 237); }
|
|
74
|
+
.schematic-boundary { fill: none; stroke: #fff; }
|
|
75
|
+
.component { fill: none; stroke: rgb(132, 0, 0); }
|
|
76
|
+
.chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
|
|
77
|
+
.component-pin { fill: none; stroke: rgb(132, 0, 0); }
|
|
78
|
+
.text { font-family: sans-serif; fill: rgb(0, 150, 0); }
|
|
79
|
+
.pin-number { fill: rgb(169, 0, 0); }
|
|
80
|
+
.port-label { fill: rgb(0, 100, 100); }
|
|
81
|
+
.component-name { fill: rgb(0, 100, 100); }
|
|
82
|
+
|
|
83
|
+
</style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 622.91913365676 614.2938996905899 L 638.3513503189683 614.2938996905899 L 638.3513503189683 645.0055387906283" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="24.447075900528px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 622.91913365676 614.2938996905899 L 638.3513503189683 614.2938996905899 L 638.3513503189683 645.0055387906283" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.055884487566px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 684.03682340808 246.82379006077855 L 668.6046067458717 246.82379006077855 L 668.6046067458717 277.5354291608168" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="24.447075900528px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 684.03682340808 246.82379006077855 L 668.6046067458717 246.82379006077855 L 668.6046067458717 277.5354291608168" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.055884487566px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"><path d="M 622.91913365676 522.61736506361 L 638.3513503189683 522.61736506361 L 638.3513503189683 491.9057259635716" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="24.447075900528px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 622.91913365676 522.61736506361 L 638.3513503189683 522.61736506361 L 638.3513503189683 491.9057259635716" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.055884487566px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"><path d="M 684.03682340808 185.70610030945852 L 668.6046067458717 185.70610030945852 L 668.6046067458717 154.9944612094202" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="24.447075900528px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 684.03682340808 185.70610030945852 L 668.6046067458717 185.70610030945852 L 668.6046067458717 154.9944612094202" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.055884487566px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_2__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_3__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="317.33068490016" y="492.05852018794997" width="244.47075900528" height="152.7942243783" stroke-width="3.055884487566px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="317.33068490016" y="492.05852018794997" width="244.47075900528" height="152.7942243783" fill="transparent"/><text class="sch-text" x="439.5660644028" y="568.4556323771" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="27.502960388093996px" transform="rotate(0, 439.5660644028, 568.4556323771)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="561.80144390544" y1="614.2938996905899" x2="622.91913365676" y2="614.2938996905899" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="619.863249169194" y="611.2380152030239" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="592.3602887811" y="611.2380152030239" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="317.33068490016" y1="614.2938996905899" x2="259.26887963640604" y2="614.2938996905899" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="256.21299514884004" cy="614.2938996905899" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="253.15711066127403" y="611.2380152030239" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="286.77184002449997" y="611.2380152030239" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="561.80144390544" y1="553.1762099392699" x2="619.863249169194" y2="553.1762099392699" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="622.91913365676" cy="553.1762099392699" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="619.863249169194" y="550.1203254517039" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="592.3602887811" y="550.1203254517039" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="317.33068490016" y1="522.61736506361" x2="259.26887963640604" y2="522.61736506361" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="256.21299514884004" cy="522.61736506361" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="253.15711066127403" y="519.561480576044" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="286.77184002449997" y="519.561480576044" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="317.33068490016" y1="553.1762099392699" x2="259.26887963640604" y2="553.1762099392699" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="256.21299514884004" cy="553.1762099392699" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="253.15711066127403" y="550.1203254517039" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="286.77184002449997" y="550.1203254517039" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="317.33068490016" y1="583.73505481493" x2="259.26887963640604" y2="583.73505481493" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="256.21299514884004" cy="583.73505481493" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="253.15711066127403" y="580.679170327364" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="286.77184002449997" y="580.679170327364" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="561.80144390544" y1="583.73505481493" x2="619.863249169194" y2="583.73505481493" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="622.91913365676" cy="583.73505481493" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="619.863249169194" y="580.679170327364" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="592.3602887811" y="580.679170327364" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="561.80144390544" y1="522.61736506361" x2="622.91913365676" y2="522.61736506361" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="619.863249169194" y="519.561480576044" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="592.3602887811" y="519.561480576044" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">8</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="745.1545131594" y="155.14725543379853" width="213.91191412962007" height="122.23537950264" stroke-width="3.055884487566px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="745.1545131594" y="155.14725543379853" width="213.91191412962007" height="122.23537950264" fill="transparent"/><text class="sch-text" x="852.1104702242101" y="216.2649451851185" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="27.502960388093996px" transform="rotate(0, 852.1104702242101, 216.2649451851185)">J1</text><line class="component-pin sch-component-pin sch-port-line" x1="745.1545131594" y1="185.70610030945852" x2="684.03682340808" y2="185.70610030945852" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="680.980938920514" y="182.65021582189252" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="714.59566828374" y="182.65021582189252" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="745.1545131594" y1="216.2649451851185" x2="687.0927078956461" y2="216.2649451851185" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="684.03682340808" cy="216.2649451851185" r="3.055884487566" stroke-width="3.055884487566px"/><rect x="680.980938920514" y="213.2090606975525" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="714.59566828374" y="213.20906069755256" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="745.1545131594" y1="246.82379006077855" x2="684.03682340808" y2="246.82379006077855" stroke-width="3.055884487566px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="680.980938920514" y="243.76790557321254" width="6.111768975132" height="6.111768975132" opacity="0"/></g><text class="pin-number sch-pin-number" x="714.59566828374" y="243.76790557321254" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="22.919133656744997px" transform="">3</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="622.91913365676" cy="614.2938996905899" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="256.21299514884004" cy="614.2938996905899" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="622.91913365676" cy="553.1762099392699" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="256.21299514884004" cy="522.61736506361" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="256.21299514884004" cy="553.1762099392699" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="256.21299514884004" cy="583.73505481493" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="622.91913365676" cy="583.73505481493" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="622.91913365676" cy="522.61736506361" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="684.03682340808" cy="185.70610030945852" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="684.03682340808" cy="216.2649451851185" r="6.111768975132" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="684.03682340808" cy="246.82379006077855" r="6.111768975132" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
|
|
84
|
+
M 638.3513503189683,645.0055387906283
|
|
85
|
+
L 653.6307727567984,653.2564269070565
|
|
86
|
+
L 653.6307727567984,723.6028878108258
|
|
87
|
+
L 623.0719278811383,723.6028878108258
|
|
88
|
+
L 623.0719278811383,653.2564269070565
|
|
89
|
+
Z
|
|
90
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="638.3513503189683" y="658.7570189846753" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="rotate(90 638.3513503189683 658.7570189846753)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
|
|
91
|
+
M 668.6046067458717,277.5354291608168
|
|
92
|
+
L 683.8840291837017,285.786317277245
|
|
93
|
+
L 683.8840291837017,356.1327781810143
|
|
94
|
+
L 653.3251843080417,356.1327781810143
|
|
95
|
+
L 653.3251843080417,285.786317277245
|
|
96
|
+
Z
|
|
97
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="668.6046067458717" y="291.28690935486384" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="rotate(90 668.6046067458717 291.28690935486384)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
|
|
98
|
+
M 622.91913365676,553.1762099392699
|
|
99
|
+
L 631.1700217731882,537.8967875014399
|
|
100
|
+
L 701.5164826769575,537.8967875014399
|
|
101
|
+
L 701.5164826769575,568.4556323771
|
|
102
|
+
L 631.1700217731882,568.4556323771
|
|
103
|
+
Z
|
|
104
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="636.670613850807" y="553.1762099392699" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
|
|
105
|
+
M 684.03682340808,216.2649451851185
|
|
106
|
+
L 675.7859352916518,231.5443676229485
|
|
107
|
+
L 605.4394743878825,231.5443676229485
|
|
108
|
+
L 605.4394743878825,200.98552274728848
|
|
109
|
+
L 675.7859352916518,200.9855227472885
|
|
110
|
+
Z
|
|
111
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="670.285343214033" y="216.2649451851185" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
|
|
112
|
+
M 638.3513503189683,491.9057259635716
|
|
113
|
+
L 623.0719278811383,483.6548378471434
|
|
114
|
+
L 623.0719278811383,413.3083769433741
|
|
115
|
+
L 653.6307727567984,413.3083769433741
|
|
116
|
+
L 653.6307727567984,483.6548378471434
|
|
117
|
+
Z
|
|
118
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="638.3513503189683" y="478.1542457695246" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="rotate(-90 638.3513503189683 478.1542457695246)">XXX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
|
|
119
|
+
M 668.6046067458717,154.9944612094202
|
|
120
|
+
L 653.3251843080417,146.743573092992
|
|
121
|
+
L 653.3251843080417,76.39711218922268
|
|
122
|
+
L 683.8840291837017,76.39711218922268
|
|
123
|
+
L 683.8840291837017,146.743573092992
|
|
124
|
+
Z
|
|
125
|
+
" fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.055884487566px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" x="668.6046067458717" y="141.2429810153732" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="27.502960388093996px" transform="rotate(-90 668.6046067458717 141.2429810153732)">XXX</text>
|
|
126
|
+
</g>
|
|
127
|
+
</svg>
|