@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.
Files changed (164) hide show
  1. package/.agents/skills/schematic-trace-visualization/SKILL.md +7 -2
  2. package/dist/index.d.ts +31 -2
  3. package/dist/index.js +127 -46
  4. package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +115 -6
  5. package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +17 -1
  6. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +2 -0
  7. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +2 -0
  8. package/lib/types/InputProblem.ts +27 -1
  9. package/package.json +8 -1
  10. package/site/examples/example51.page.tsx +4 -0
  11. package/tests/assets/example51.json +5102 -0
  12. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +751 -5
  13. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +660 -5
  14. package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +44 -5
  15. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +394 -5
  16. package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +170 -5
  17. package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +79 -5
  18. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +219 -5
  19. package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +65 -5
  20. package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +142 -5
  21. package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +100 -5
  22. package/tests/bug-reports/bug-report-20260708T053736Z/__snapshots__/bug-report-20260708T053736Z.snap.svg +23 -5
  23. package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +58 -5
  24. package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +86 -5
  25. package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +226 -5
  26. package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +191 -5
  27. package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +30 -5
  28. package/tests/bug-reports/bug-report-20260717T042845Z/__snapshots__/bug-report-20260717T042845Z.snap.svg +37 -5
  29. package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +580 -2
  30. package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +44 -5
  31. package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +107 -5
  32. package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +114 -5
  33. package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +121 -5
  34. package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +51 -5
  35. package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +212 -5
  36. package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +569 -5
  37. package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +37 -5
  38. package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +289 -5
  39. package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +289 -5
  40. package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +149 -5
  41. package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +93 -5
  42. package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +79 -5
  43. package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +244 -2
  44. package/tests/examples/__snapshots__/example01.snap.svg +44 -5
  45. package/tests/examples/__snapshots__/example02.snap.svg +51 -5
  46. package/tests/examples/__snapshots__/example03.snap.svg +86 -5
  47. package/tests/examples/__snapshots__/example04.snap.svg +30 -5
  48. package/tests/examples/__snapshots__/example05.snap.svg +30 -5
  49. package/tests/examples/__snapshots__/example06.snap.svg +30 -5
  50. package/tests/examples/__snapshots__/example07.snap.svg +58 -5
  51. package/tests/examples/__snapshots__/example08.snap.svg +37 -5
  52. package/tests/examples/__snapshots__/example09.snap.svg +149 -5
  53. package/tests/examples/__snapshots__/example10.snap.svg +65 -5
  54. package/tests/examples/__snapshots__/example11.snap.svg +51 -5
  55. package/tests/examples/__snapshots__/example12.snap.svg +51 -5
  56. package/tests/examples/__snapshots__/example13.snap.svg +72 -5
  57. package/tests/examples/__snapshots__/example14.snap.svg +79 -5
  58. package/tests/examples/__snapshots__/example15.snap.svg +86 -5
  59. package/tests/examples/__snapshots__/example16.snap.svg +51 -5
  60. package/tests/examples/__snapshots__/example17.snap.svg +51 -5
  61. package/tests/examples/__snapshots__/example18.snap.svg +58 -5
  62. package/tests/examples/__snapshots__/example19.snap.svg +44 -5
  63. package/tests/examples/__snapshots__/example20.snap.svg +44 -5
  64. package/tests/examples/__snapshots__/example21.snap.svg +72 -5
  65. package/tests/examples/__snapshots__/example22.snap.svg +51 -5
  66. package/tests/examples/__snapshots__/example23.snap.svg +51 -5
  67. package/tests/examples/__snapshots__/example24.snap.svg +51 -5
  68. package/tests/examples/__snapshots__/example25.snap.svg +86 -5
  69. package/tests/examples/__snapshots__/example26.snap.svg +51 -5
  70. package/tests/examples/__snapshots__/example27.snap.svg +72 -5
  71. package/tests/examples/__snapshots__/example28.snap.svg +44 -5
  72. package/tests/examples/__snapshots__/example29.snap.svg +324 -5
  73. package/tests/examples/__snapshots__/example30.snap.svg +107 -5
  74. package/tests/examples/__snapshots__/example31.snap.svg +37 -5
  75. package/tests/examples/__snapshots__/example32.snap.svg +149 -5
  76. package/tests/examples/__snapshots__/example33.snap.svg +93 -5
  77. package/tests/examples/__snapshots__/example34.snap.svg +51 -5
  78. package/tests/examples/__snapshots__/example35.snap.svg +58 -5
  79. package/tests/examples/__snapshots__/example36.snap.svg +44 -5
  80. package/tests/examples/__snapshots__/example37.snap.svg +72 -5
  81. package/tests/examples/__snapshots__/example38.snap.svg +30 -5
  82. package/tests/examples/__snapshots__/example39.snap.svg +37 -5
  83. package/tests/examples/__snapshots__/example40.snap.svg +100 -5
  84. package/tests/examples/__snapshots__/example41.snap.svg +44 -5
  85. package/tests/examples/__snapshots__/example42.snap.svg +65 -5
  86. package/tests/examples/__snapshots__/example43.snap.svg +58 -5
  87. package/tests/examples/__snapshots__/example44.snap.svg +107 -5
  88. package/tests/examples/__snapshots__/example45.snap.svg +51 -5
  89. package/tests/examples/__snapshots__/example46.snap.svg +93 -5
  90. package/tests/examples/__snapshots__/example47.snap.svg +93 -5
  91. package/tests/examples/__snapshots__/example48.snap.svg +65 -5
  92. package/tests/examples/__snapshots__/example49.snap.svg +177 -5
  93. package/tests/examples/__snapshots__/example50.snap.svg +93 -5
  94. package/tests/examples/__snapshots__/example51.snap.svg +952 -0
  95. package/tests/examples/example51.test.ts +12 -0
  96. package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +219 -0
  97. package/tests/fixtures/convertSolverOutputToCircuitJson.ts +1058 -0
  98. package/tests/fixtures/matcher.ts +45 -8
  99. package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +762 -2
  100. package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +111 -2
  101. package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +167 -2
  102. package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +65 -5
  103. package/tests/repros/__snapshots__/manufacturePartNumber-text-box.snap.svg +30 -5
  104. package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +79 -5
  105. package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +65 -5
  106. package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +149 -5
  107. package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +55 -2
  108. package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +160 -2
  109. package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +135 -5
  110. package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +69 -2
  111. package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +86 -5
  112. package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +44 -5
  113. package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +44 -5
  114. package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +260 -0
  115. package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +335 -2
  116. package/tests/repros/__snapshots__/repro-ground-label-on-lower-rail-end.snap.svg +48 -2
  117. package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +149 -5
  118. package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +72 -5
  119. package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +100 -5
  120. package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +51 -5
  121. package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +90 -2
  122. package/tests/repros/__snapshots__/repro-power-group-rail-labels.snap.svg +37 -5
  123. package/tests/repros/__snapshots__/repro-rectifier-trace-overlap.snap.svg +44 -5
  124. package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +237 -2
  125. package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +72 -5
  126. package/tests/repros/__snapshots__/repro-rp2040-v3v3-label-placement.snap.svg +51 -5
  127. package/tests/repros/__snapshots__/repro-rp2040-zero-crystal-fallback-netlabels.snap.svg +30 -5
  128. package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +79 -5
  129. package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +27 -2
  130. package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1150 -5
  131. package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +51 -5
  132. package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +30 -5
  133. package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +30 -5
  134. package/tests/repros/__snapshots__/repro-type-c-vbus-led-ground-label.snap.svg +44 -5
  135. package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +685 -2
  136. package/tests/repros/__snapshots__/repro-vcc-pin1-detour.snap.svg +27 -2
  137. package/tests/repros/__snapshots__/repro129-host-custom-symbol-passives.snap.svg +51 -5
  138. package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +100 -5
  139. package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +107 -5
  140. package/tests/repros/__snapshots__/repro47-endpoint-obstacle-detour.snap.svg +51 -5
  141. package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +104 -2
  142. package/tests/repros/__snapshots__/repro5-escape-padded-text-obstacles.snap.svg +30 -5
  143. package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +65 -5
  144. package/tests/repros/__snapshots__/repro84-stacked-gnd-label-orientation.snap.svg +27 -2
  145. package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +58 -5
  146. package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +37 -5
  147. package/tests/repros/assets/repro-core-tb67s579ftg-inline-label-routing.input.json +900 -0
  148. package/tests/repros/repro-core-tb67s579ftg-inline-label-routing.test.ts +40 -0
  149. package/tests/solvers/InlineNetLabelSolver/__snapshots__/fallback-net-label-width.snap.svg +25 -7
  150. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-anchored-label-clearance.snap.svg +34 -2
  151. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-port-stub.snap.svg +23 -5
  152. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-two-pin-net.snap.svg +23 -5
  153. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label01.snap.svg +23 -5
  154. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +23 -5
  155. package/tests/solvers/InlineNetLabelSolver/__snapshots__/terminal-stub-trace-clearance.snap.svg +71 -0
  156. package/tests/solvers/InlineNetLabelSolver/fallback-net-label-width.test.ts +10 -1
  157. package/tests/solvers/InlineNetLabelSolver/terminal-stub-trace-clearance.test.ts +102 -0
  158. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.snap.svg +23 -5
  159. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_repro47-short-opposing-pins.snap.svg +20 -2
  160. package/tests/solvers/TraceCleanupSolver/__snapshots__/TraceCleanupSolver.snap.svg +44 -5
  161. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +79 -5
  162. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +44 -5
  163. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +23 -5
  164. 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="-2.6,2.2 -0.5,2" data-type="line" data-label="" points="83.70731707317071,231.76585365853663 198.4390243902439,242.69268292682932" fill="none" stroke="hsl(0, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.5,2 2.45,1" data-type="line" data-label="" points="253.0731707317073,242.69268292682932 359.609756097561,297.3268292682927" fill="none" stroke="hsl(304, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.5,2 2.45,-1" data-type="line" data-label="" points="253.0731707317073,242.69268292682932 359.609756097561,406.59512195121954" fill="none" stroke="hsl(304, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="3.55,1 5.45,1" data-type="line" data-label="" points="419.7073170731707,297.3268292682927 523.5121951219512,297.3268292682927" fill="none" stroke="hsl(312, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="3.55,-1 5.45,-1" data-type="line" data-label="" points="419.7073170731707,406.59512195121954 523.5121951219512,406.59512195121954" fill="none" stroke="hsl(320, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-2.6,1.8 6.55,1" data-type="line" data-label="" points="83.70731707317071,253.61951219512198 583.6097560975609,297.3268292682927" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.6,1.8 6.55,-1" data-type="line" data-label="" points="83.70731707317071,253.61951219512198 583.6097560975609,406.59512195121954" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="6.55,1 6.55,-1" data-type="line" data-label="" points="583.6097560975609,297.3268292682927 583.6097560975609,406.59512195121954" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.6,2.2 -1.55,2.2 -1.55,2 -0.5,2" data-type="line" data-label="" points="83.70731707317071,231.76585365853663 141.0731707317073,231.76585365853663 141.0731707317073,242.69268292682932 198.4390243902439,242.69268292682932" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.45,-1 2.25,-1 2.25,1 2.45,1" data-type="line" data-label="" points="359.609756097561,406.59512195121954 348.6829268292683,406.59512195121954 348.6829268292683,297.3268292682927 359.609756097561,297.3268292682927" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.5,2 2.25,2 2.25,1 2.45,1" data-type="line" data-label="" points="253.0731707317073,242.69268292682932 348.6829268292683,242.69268292682932 348.6829268292683,297.3268292682927 359.609756097561,297.3268292682927" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.55,1 5.45,1" data-type="line" data-label="" points="419.7073170731707,297.3268292682927 523.5121951219512,297.3268292682927" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.55,-1 5.45,-1" data-type="line" data-label="" points="419.7073170731707,406.59512195121954 523.5121951219512,406.59512195121954" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.55,-1 6.75,-1 6.75,1 6.55,1" data-type="line" data-label="" points="583.6097560975609,406.59512195121954 594.5365853658536,406.59512195121954 594.5365853658536,297.3268292682927 583.6097560975609,297.3268292682927" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.6,1.8 -2.499,1.8 -2.499,1.5990000000000002" data-type="line" data-label="" points="83.70731707317071,253.61951219512198 89.22536585365853,253.61951219512198 89.22536585365853,264.6009756097561" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="BT1" data-x="-3" data-y="2" x="40" y="220.83902439024396" width="43.707317073170714" height="43.707317073170714" fill="hsl(199, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="SW1" data-x="0" data-y="2" x="198.4390243902439" y="220.83902439024396" width="54.634146341463406" height="43.707317073170714" fill="hsl(69, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="R1" data-x="3" data-y="1" x="359.609756097561" y="286.7029272195123" width="60.097560975609724" height="21.24780409756096" fill="hsl(71, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="R2" data-x="3" data-y="-1" x="359.609756097561" y="395.9712199024391" width="60.097560975609724" height="21.24780409756096" fill="hsl(72, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="D1" data-x="6" data-y="1" x="523.5121951219512" y="286.7029272195123" width="60.09756097560967" height="21.24780409756096" fill="hsl(357, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="D2" data-x="6" data-y="-1" x="523.5121951219512" y="395.9712199024391" width="60.09756097560967" height="21.24780409756096" fill="hsl(358, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="netId: BT1.plus to SW1.in
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="-2.6,2.2 -0.5,2" data-type="line" data-label="" points="83.70731707317071,231.76585365853663 198.4390243902439,242.69268292682932" fill="none" stroke="hsl(0, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.5,2 2.45,1" data-type="line" data-label="" points="253.0731707317073,242.69268292682932 359.609756097561,297.3268292682927" fill="none" stroke="hsl(304, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="0.5,2 2.45,-1" data-type="line" data-label="" points="253.0731707317073,242.69268292682932 359.609756097561,406.59512195121954" fill="none" stroke="hsl(304, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="3.55,1 5.45,1" data-type="line" data-label="" points="419.7073170731707,297.3268292682927 523.5121951219512,297.3268292682927" fill="none" stroke="hsl(312, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="3.55,-1 5.45,-1" data-type="line" data-label="" points="419.7073170731707,406.59512195121954 523.5121951219512,406.59512195121954" fill="none" stroke="hsl(320, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-2.6,1.8 6.55,1" data-type="line" data-label="" points="83.70731707317071,253.61951219512198 583.6097560975609,297.3268292682927" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.6,1.8 6.55,-1" data-type="line" data-label="" points="83.70731707317071,253.61951219512198 583.6097560975609,406.59512195121954" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="6.55,1 6.55,-1" data-type="line" data-label="" points="583.6097560975609,297.3268292682927 583.6097560975609,406.59512195121954" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.6,2.2 -1.55,2.2 -1.55,2 -0.5,2" data-type="line" data-label="" points="83.70731707317071,231.76585365853663 141.0731707317073,231.76585365853663 141.0731707317073,242.69268292682932 198.4390243902439,242.69268292682932" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="2.45,-1 2.25,-1 2.25,1 2.45,1" data-type="line" data-label="" points="359.609756097561,406.59512195121954 348.6829268292683,406.59512195121954 348.6829268292683,297.3268292682927 359.609756097561,297.3268292682927" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.5,2 2.25,2 2.25,1 2.45,1" data-type="line" data-label="" points="253.0731707317073,242.69268292682932 348.6829268292683,242.69268292682932 348.6829268292683,297.3268292682927 359.609756097561,297.3268292682927" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.55,1 5.45,1" data-type="line" data-label="" points="419.7073170731707,297.3268292682927 523.5121951219512,297.3268292682927" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.55,-1 5.45,-1" data-type="line" data-label="" points="419.7073170731707,406.59512195121954 523.5121951219512,406.59512195121954" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="6.55,-1 6.75,-1 6.75,1 6.55,1" data-type="line" data-label="" points="583.6097560975609,406.59512195121954 594.5365853658536,406.59512195121954 594.5365853658536,297.3268292682927 583.6097560975609,297.3268292682927" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.6,1.8 -2.499,1.8 -2.499,1.5990000000000002" data-type="line" data-label="" points="83.70731707317071,253.61951219512198 89.22536585365853,253.61951219512198 89.22536585365853,264.6009756097561" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="BT1" data-x="-3" data-y="2" x="40" y="220.83902439024396" width="43.707317073170714" height="43.707317073170714" fill="hsl(199, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="SW1" data-x="0" data-y="2" x="198.4390243902439" y="220.83902439024396" width="54.634146341463406" height="43.707317073170714" fill="hsl(69, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="R1" data-x="3" data-y="1" x="359.609756097561" y="286.7029272195123" width="60.097560975609724" height="21.24780409756096" fill="hsl(71, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="R2" data-x="3" data-y="-1" x="359.609756097561" y="395.9712199024391" width="60.097560975609724" height="21.24780409756096" fill="hsl(72, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="D1" data-x="6" data-y="1" x="523.5121951219512" y="286.7029272195123" width="60.09756097560967" height="21.24780409756096" fill="hsl(357, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="D2" data-x="6" data-y="-1" x="523.5121951219512" y="395.9712199024391" width="60.09756097560967" height="21.24780409756096" fill="hsl(358, 100%, 50%, 0.8)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="netId: BT1.plus to SW1.in
2
4
  globalConnNetId: connectivity_net0" data-x="-2.075" data-y="2.4250000000000003" x="106.92682926829266" y="207.18048780487806" width="10.926829268292693" height="24.585365853658573" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="netId: GND
3
5
  globalConnNetId: connectivity_net4" data-x="-2.499" data-y="1.3590000000000002" x="83.76195121951218" y="264.6009756097561" width="10.926829268292693" height="26.224390243902462" fill="#00000066" stroke="#000000" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="netId: GND
4
6
  globalConnNetId: connectivity_net4" data-x="6.75" data-y="-1.24" x="589.0731707317073" y="406.59512195121954" width="10.92682926829275" height="26.224390243902462" fill="#00000066" stroke="#000000" stroke-width="0.01830357142857143"/></g><g><rect data-type="rect" data-label="netId: SW1.out to R2.left
@@ -32,7 +34,7 @@ orientation: y+" data-x="4.5" data-y="-1" cx="471.609756097561" cy="406.59512195
32
34
  const h = svg.getElementById('crosshair-h');
33
35
  const v = svg.getElementById('crosshair-v');
34
36
  const coords = svg.getElementById('coordinates');
35
-
37
+
36
38
  crosshair.style.display = 'block';
37
39
  h.setAttribute('x1', '0');
38
40
  h.setAttribute('x2', '640');
@@ -51,13 +53,13 @@ orientation: y+" data-x="4.5" data-y="-1" cx="471.609756097561" cy="406.59512195
51
53
  // y' = (y - ty) / sy
52
54
  const sx = matrix.a;
53
55
  const sy = matrix.d;
54
- const tx = matrix.e;
56
+ const tx = matrix.e;
55
57
  const ty = matrix.f;
56
58
  const realPoint = {
57
59
  x: (x - tx) / sx,
58
60
  y: (y - ty) / sy // Flip y back since we used negative scale
59
61
  }
60
-
62
+
61
63
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
62
64
  coords.setAttribute('x', (x + 5).toString());
63
65
  coords.setAttribute('y', (y - 5).toString());
@@ -65,4 +67,62 @@ orientation: y+" data-x="4.5" data-y="-1" cx="471.609756097561" cy="406.59512195
65
67
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
66
68
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
67
69
  });
68
- ]]></script></svg>
70
+ ]]></script>
71
+ </g>
72
+ <g transform="translate(1216, 200)">
73
+ <style>
74
+ .boundary { fill: rgb(245, 241, 237); }
75
+ .schematic-boundary { fill: none; stroke: #fff; }
76
+ .component { fill: none; stroke: rgb(132, 0, 0); }
77
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
78
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
79
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
80
+ .pin-number { fill: rgb(169, 0, 0); }
81
+ .port-label { fill: rgb(0, 100, 100); }
82
+ .component-name { fill: rgb(0, 100, 100); }
83
+
84
+ </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 78.87323943669998 209.6995305165 L 197.1830985916 209.6995305165 L 197.1830985916 232.23474178410004 L 315.4929577465 232.23474178410004" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.02816901408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 78.87323943669998 209.6995305165 L 197.1830985916 209.6995305165 L 197.1830985916 232.23474178410004 L 315.4929577465 232.23474178410004" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.25352112676px" 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 647.8873239436 570.2629107981 L 625.3521126759999 570.2629107981 L 625.3521126759999 344.9107981221 L 647.8873239436 344.9107981221" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.02816901408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 647.8873239436 570.2629107981 L 625.3521126759999 570.2629107981 L 625.3521126759999 344.9107981221 L 647.8873239436 344.9107981221" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.25352112676px" 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 428.16901408449996 232.23474178410004 L 625.3521126759999 232.23474178410004 L 625.3521126759999 344.9107981221 L 647.8873239436 344.9107981221" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.02816901408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 428.16901408449996 232.23474178410004 L 625.3521126759999 232.23474178410004 L 625.3521126759999 344.9107981221 L 647.8873239436 344.9107981221" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.25352112676px" 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 771.8309859153999 344.9107981221 L 985.9154929576 344.9107981221" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.02816901408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 771.8309859153999 344.9107981221 L 985.9154929576 344.9107981221" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.25352112676px" 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 771.8309859153999 570.2629107981 L 985.9154929576 570.2629107981" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.02816901408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 771.8309859153999 570.2629107981 L 985.9154929576 570.2629107981" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.25352112676px" 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 1109.8591549294 570.2629107981 L 1132.394366197 570.2629107981 L 1132.394366197 344.9107981221 L 1109.8591549294 344.9107981221" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.02816901408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 1109.8591549294 570.2629107981 L 1132.394366197 570.2629107981 L 1132.394366197 344.9107981221 L 1109.8591549294 344.9107981221" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.25352112676px" 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 78.87323943669998 254.76995305170004 L 90.253521126838 254.76995305170004 L 90.253521126838 277.417840375638" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="18.02816901408px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 78.87323943669998 254.76995305170004 L 90.253521126838 254.76995305170004 L 90.253521126838 277.417840375638" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.25352112676px" 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="625.3521126759999" cy="344.9107981221" r="3.38028169014" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/><circle cx="647.8873239436" cy="344.9107981221" r="3.38028169014" 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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component-overlay sch-component-overlay" x="72.11267605641997" y="209.6995305165" width="13.971830985912007" height="45.07042253520004" fill="transparent"/><path class="sch-component-symbol-path" d="M 86.08450704233198 229.53051643198802 L 72.11267605641997 229.53051643198802" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 83.38028169021997 233.136150234804 L 74.81690140853198 233.136150234804" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 78.87323943669998 229.53051643198802 L 78.87323943669998 209.6995305165" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 78.87323943669998 254.76995305170004 L 78.87323943669998 233.58685446015602" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="91.49295774655599" y="223.22065727706" stroke="rgb(245, 241, 237)" stroke-width="2.25352112676px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="20.28169014084px">BT1</text><text class="sch-component-text" x="91.49295774655599" y="241.24882629114003" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="start" dominant-baseline="middle" font-size="20.28169014084px"></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="315.4929577465" y="211.4786261428895" width="112.67605633799997" height="22.23869532986842" fill="transparent"/><path class="sch-component-symbol-path" d="M 315.4929577465 232.23474178410004 L 354.04002965160527 233.71732147275793" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 361.45292809489473 230.75216209544215 L 386.6567828020789 211.4786261428895" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 389.6219421793947 233.71732147275793 L 428.16901408449996 232.23474178410004" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="371.8309859155" y="195.17024956765266" stroke="rgb(245, 241, 237)" stroke-width="2.25352112676px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="20.28169014084px">SW1</text><text class="sch-component-text" x="371.8309859155" y="269.2992340005474" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="20.28169014084px"></text><circle class="sch-component-symbol-circle" cx="386.6567828020789" cy="232.23474178410004" r="2.25352112676px" stroke-width="2.25352112676px" fill="none" stroke="rgb(132, 0, 0)"/><circle class="sch-component-symbol-circle" cx="357.00518902892105" cy="232.23474178410004" r="2.25352112676px" stroke-width="2.25352112676px" 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="647.8873239436" y="328.3891079812591" width="123.94366197179988" height="33.043380281681834" fill="transparent"/><path class="sch-component-symbol-path" d="M 647.8873239436 344.9107981221 L 668.548732394299 344.9107981221" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 751.1695774647009 344.9107981221 L 771.8309859153999 344.9107981221" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 668.548732394299 328.3891079812591 L 751.1695774647009 328.3891079812591 L 751.1695774647009 361.4324882629409 L 668.548732394299 361.4324882629409 L 668.548732394299 328.3891079812591" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="709.8591549294999" y="311.85915492962" stroke="rgb(245, 241, 237)" stroke-width="2.25352112676px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="20.28169014084px">R1</text><text class="sch-component-text" x="709.8591549294999" y="377.96244131458" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="20.28169014084px"></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="647.8873239436" y="553.7412206572591" width="123.94366197179988" height="33.04338028168195" fill="transparent"/><path class="sch-component-symbol-path" d="M 647.8873239436 570.2629107981 L 668.548732394299 570.2629107981" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 751.1695774647009 570.2629107981 L 771.8309859153999 570.2629107981" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 668.548732394299 553.7412206572591 L 751.1695774647009 553.7412206572591 L 751.1695774647009 586.784600938941 L 668.548732394299 586.784600938941 L 668.548732394299 553.7412206572591" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="709.8591549294999" y="537.21126760562" stroke="rgb(245, 241, 237)" stroke-width="2.25352112676px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="20.28169014084px">R2</text><text class="sch-component-text" x="709.8591549294999" y="603.3145539905801" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="20.28169014084px"></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="985.9154929576" y="328.226074395127" width="123.94366197179988" height="32.17768147344805" fill="transparent"/><path class="sch-component-symbol-path" d="M 1064.572047670473 344.91079812210006 L 1033.586132177523 360.40375586857505" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1033.586132177523 328.226074395127 L 1064.572047670473 344.91079812210006" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1033.586132177523 360.40375586857505 L 1033.586132177523 328.226074395127" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1064.572047670473 328.226074395127 L 1064.572047670473 360.40375586857505" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1033.586132177523 344.91079812210006 L 985.9154929576 344.91079812210006" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1109.8591549294 344.91079812210006 L 1065.763813650971 344.91079812210006" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="1046.6955579630019" y="317.5001805706443" stroke="rgb(245, 241, 237)" stroke-width="2.25352112676px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="20.28169014084px">D1</text><text class="sch-component-text" x="1047.8873239435" y="381.8555435175404" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="20.28169014084px"></text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_5__stack1"><rect class="component-overlay sch-component-overlay" x="985.9154929576" y="553.578187071127" width="123.94366197179988" height="32.17768147344805" fill="transparent"/><path class="sch-component-symbol-path" d="M 1064.572047670473 570.2629107981 L 1033.586132177523 585.755868544575" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1033.586132177523 553.578187071127 L 1064.572047670473 570.2629107981" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1033.586132177523 585.755868544575 L 1033.586132177523 553.578187071127" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1064.572047670473 553.578187071127 L 1064.572047670473 585.755868544575" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1033.586132177523 570.2629107981 L 985.9154929576 570.2629107981" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><path class="sch-component-symbol-path" d="M 1109.8591549294 570.2629107981 L 1065.763813650971 570.2629107981" stroke="rgb(132, 0, 0)" fill="none" stroke-width="2.25352112676px" stroke-linecap="round"/><text class="sch-component-name sch-component-text" x="1046.6955579630019" y="542.8522932466443" stroke="rgb(245, 241, 237)" stroke-width="2.25352112676px" paint-order="stroke" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="ideographic" font-size="20.28169014084px">D2</text><text class="sch-component-text" x="1047.8873239435" y="607.2076561935404" fill="rgb(15, 15, 15)" font-family="sans-serif" text-anchor="middle" dominant-baseline="hanging" font-size="20.28169014084px"></text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="78.87323943669998" cy="173.86854460101603" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="78.87323943669998" cy="218.93896713621606" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="329.01408450706" cy="232.23474178410004" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="441.69014084506" cy="232.23474178410004" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="676.0563380281001" cy="344.9107981221" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="799.9999999999" cy="344.9107981221" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_0__stack1"><circle cx="676.0563380281001" cy="570.2629107981" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_3_1__stack1"><circle cx="799.9999999999" cy="570.2629107981" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_0__stack1"><circle cx="989.2957746477398" cy="345.17081979057235" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_4_1__stack1"><circle cx="1113.23943661954" cy="345.17081979057235" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_0__stack1"><circle cx="989.2957746477398" cy="570.5229324665723" r="4.50704225352" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_5_1__stack1"><circle cx="1113.23943661954" cy="570.5229324665723" r="4.50704225352" 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="
85
+ M 138.02816901414997,209.6995305165
86
+ L 126.76056338034996,203.615023474248
87
+ L 126.76056338034996,164.9746478874032
88
+ L 149.29577464794997,164.9746478874032
89
+ L 149.29577464794997,203.615023474248
90
+ Z
91
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.25352112676px"/><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="138.02816901414997" y="199.55868544608" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="20.28169014084px" transform="rotate(-90 138.02816901414997 199.55868544608)">XX</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="
92
+ M 90.253521126838,277.417840375638
93
+ L 101.521126760638,283.50234741788995
94
+ L 101.521126760638,335.3784037559052
95
+ L 78.985915493038,335.3784037559052
96
+ L 78.985915493038,283.50234741789
97
+ Z
98
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.25352112676px"/><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="90.253521126838" y="287.558685446058" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="20.28169014084px" transform="rotate(90 90.253521126838 287.558685446058)">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="
99
+ M 1132.394366197,570.2629107981
100
+ L 1143.6619718308,576.347417840352
101
+ L 1143.6619718308,628.2234741783673
102
+ L 1121.1267605632,628.2234741783673
103
+ L 1121.1267605632,576.347417840352
104
+ Z
105
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.25352112676px"/><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="1132.394366197" y="580.4037558685201" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="20.28169014084px" transform="rotate(90 1132.394366197 580.4037558685201)">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="
106
+ M 625.3521126759999,570.2629107981
107
+ L 636.6197183098,576.347417840352
108
+ L 636.6197183098,614.9877934271968
109
+ L 614.0845070421999,614.9877934271968
110
+ L 614.0845070421999,576.347417840352
111
+ Z
112
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.25352112676px"/><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="625.3521126759999" y="580.4037558685201" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="20.28169014084px" transform="rotate(90 625.3521126759999 580.4037558685201)">XX</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="
113
+ M 878.8732394365,344.9107981221
114
+ L 867.6056338026999,338.826291079848
115
+ L 867.6056338026999,300.1859154930032
116
+ L 890.1408450703,300.1859154930032
117
+ L 890.1408450703,338.82629107984803
118
+ Z
119
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.25352112676px"/><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="878.8732394365" y="334.76995305168" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="20.28169014084px" transform="rotate(-90 878.8732394365 334.76995305168)">XX</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="
120
+ M 878.8732394365,570.2629107981
121
+ L 867.6056338026999,564.1784037558481
122
+ L 867.6056338026999,525.5380281690033
123
+ L 890.1408450703,525.5380281690033
124
+ L 890.1408450703,564.1784037558481
125
+ Z
126
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.25352112676px"/><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="878.8732394365" y="560.12206572768" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="20.28169014084px" transform="rotate(-90 878.8732394365 560.12206572768)">XX</text>
127
+ </g>
128
+ </svg>
@@ -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.05,-0.1 1.05,0.1" data-type="line" data-label="" points="359.5652173913043,313.9130434782609 359.5652173913043,283.47826086956525" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.05,-0.1 2.5300000000000002,-0.1 2.5300000000000002,0.1 1.05,0.1" data-type="line" data-label="" points="359.5652173913043,313.9130434782609 584.7826086956521,313.9130434782609 584.7826086956521,283.47826086956525 359.5652173913043,283.47826086956525" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="U1" data-x="0" data-y="0" x="40.00000000000006" y="253.04347826086962" width="319.56521739130426" height="91.30434782608691" fill="hsl(164, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006571428571428573"/></g><g><rect data-type="rect" data-label="SOMETHING_THAT_IS_LONG" data-x="0.79" data-y="-0.43" x="100.86956521739137" y="350.4347826086956" width="438.26086956521726" height="27.39130434782612" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.006571428571428573"/></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.05,-0.1 1.05,0.1" data-type="line" data-label="" points="359.5652173913043,313.9130434782609 359.5652173913043,283.47826086956525" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.05,-0.1 2.5300000000000002,-0.1 2.5300000000000002,0.1 1.05,0.1" data-type="line" data-label="" points="359.5652173913043,313.9130434782609 584.7826086956521,313.9130434782609 584.7826086956521,283.47826086956525 359.5652173913043,283.47826086956525" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="U1" data-x="0" data-y="0" x="40.00000000000006" y="253.04347826086962" width="319.56521739130426" height="91.30434782608691" fill="hsl(164, 100%, 50%, 0.8)" stroke="black" stroke-width="0.006571428571428573"/></g><g><rect data-type="rect" data-label="SOMETHING_THAT_IS_LONG" data-x="0.79" data-y="-0.43" x="100.86956521739137" y="350.4347826086956" width="438.26086956521726" height="27.39130434782612" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.006571428571428573"/></g><g><rect data-type="rect" data-label="netId: GND
2
4
  globalConnNetId: connectivity_net0" data-x="2.5300000000000002" data-y="-0.33999999999999997" x="569.5652173913043" y="313.9130434782609" width="30.43478260869574" height="73.04347826086956" fill="#00000066" stroke="#000000" stroke-width="0.006571428571428573"/></g><g><circle data-type="point" data-label="U1.3
3
5
  x+" data-x="1.05" data-y="-0.1" cx="359.5652173913043" cy="313.9130434782609" r="3" fill="hsl(321, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.4
4
6
  x+" data-x="1.05" data-y="0.1" cx="359.5652173913043" cy="283.47826086956525" r="3" fill="hsl(322, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
@@ -12,7 +14,7 @@ orientation: y-" data-x="2.5300000000000002" data-y="-0.1" cx="584.7826086956521
12
14
  const h = svg.getElementById('crosshair-h');
13
15
  const v = svg.getElementById('crosshair-v');
14
16
  const coords = svg.getElementById('coordinates');
15
-
17
+
16
18
  crosshair.style.display = 'block';
17
19
  h.setAttribute('x1', '0');
18
20
  h.setAttribute('x2', '640');
@@ -31,13 +33,13 @@ orientation: y-" data-x="2.5300000000000002" data-y="-0.1" cx="584.7826086956521
31
33
  // y' = (y - ty) / sy
32
34
  const sx = matrix.a;
33
35
  const sy = matrix.d;
34
- const tx = matrix.e;
36
+ const tx = matrix.e;
35
37
  const ty = matrix.f;
36
38
  const realPoint = {
37
39
  x: (x - tx) / sx,
38
40
  y: (y - ty) / sy // Flip y back since we used negative scale
39
41
  }
40
-
42
+
41
43
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
42
44
  coords.setAttribute('x', (x + 5).toString());
43
45
  coords.setAttribute('y', (y - 5).toString());
@@ -45,4 +47,27 @@ orientation: y-" data-x="2.5300000000000002" data-y="-0.1" cx="584.7826086956521
45
47
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
46
48
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
47
49
  });
48
- ]]></script></svg>
50
+ ]]></script>
51
+ </g>
52
+ <g transform="translate(1216, 200)">
53
+ <style>
54
+ .boundary { fill: rgb(245, 241, 237); }
55
+ .schematic-boundary { fill: none; stroke: #fff; }
56
+ .component { fill: none; stroke: rgb(132, 0, 0); }
57
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
58
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
59
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
60
+ .pin-number { fill: rgb(169, 0, 0); }
61
+ .port-label { fill: rgb(0, 100, 100); }
62
+ .component-name { fill: rgb(0, 100, 100); }
63
+
64
+ </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 662.90322580645 386.1612903226 L 1020.9677419355301 386.1612903226 L 1020.9677419355301 337.7741935484 L 662.90322580645 337.7741935484" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.70967741936px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 662.90322580645 386.1612903226 L 1020.9677419355301 386.1612903226 L 1020.9677419355301 337.7741935484 L 662.90322580645 337.7741935484" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.83870967742px" 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="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="251.61290322575002" y="289.3870967742" width="314.51612903230006" height="145.16129032259994" stroke-width="4.83870967742px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="251.61290322575002" y="289.3870967742" width="314.51612903230006" height="145.16129032259994" fill="transparent"/><text class="sch-text" x="408.8709677419" y="361.9677419355" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="43.54838709678px" transform="rotate(0, 408.8709677419, 361.9677419355)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="566.1290322580501" y1="386.1612903226" x2="662.90322580645" y2="386.1612903226" stroke-width="4.83870967742px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="658.06451612903" y="381.32258064518" width="9.67741935484" height="9.67741935484" opacity="0"/></g><text class="pin-number sch-pin-number" x="614.5161290322501" y="381.32258064518" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="36.29032258065px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="566.1290322580501" y1="337.7741935484" x2="662.90322580645" y2="337.7741935484" stroke-width="4.83870967742px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="658.06451612903" y="332.93548387097997" width="9.67741935484" height="9.67741935484" opacity="0"/></g><text class="pin-number sch-pin-number" x="614.5161290322501" y="332.93548387097997" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="36.29032258065px" transform="">4</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="662.90322580645" cy="386.1612903226" r="9.67741935484" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="662.90322580645" cy="337.7741935484" r="9.67741935484" 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="
65
+ M 1020.9677419355301,386.1612903226
66
+ L 1045.16129032263,399.225806451634
67
+ L 1045.16129032263,510.6129032258424
68
+ L 996.77419354843,510.6129032258424
69
+ L 996.77419354843,399.225806451634
70
+ Z
71
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.83870967742px"/><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="1020.9677419355301" y="407.93548387098997" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="43.54838709678px" transform="rotate(90 1020.9677419355301 407.93548387098997)">XXX</text><text class="sch-text" x="599.99999999999" y="466.00000000003" fill="#7e22ce" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="43.54838709678px" transform="rotate(0, 599.99999999999, 466.00000000003)">SOMETHING_THAT_IS_LONG</text><rect class="schematic-box sch-box" x="251.61290322575005" y="444.22580645164" width="696.77419354848" height="43.548387096780004" stroke-width="4.83870967742px" stroke="rgb(132, 0, 0)" fill="transparent" stroke-dasharray="38.70967741936 19.35483870968"/>
72
+ </g>
73
+ </svg>
@@ -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="3.3774999999999995,1.5100000000000002 3.3774999999999995,1.7100000000000004" data-type="line" data-label="" points="574.6987951807228,145.84337349397586 574.6987951807228,128.97590361445776" fill="none" stroke="hsl(176, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.7725000000000006,0.2950000000000018 0.3774999999999997,0.3100000000000005" data-type="line" data-label="" points="224.6987951807228,248.31325301204802 321.6867469879518,247.04819277108427" fill="none" stroke="hsl(48, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-2.0475,-1.39 0.3774999999999997,-1.39" data-type="line" data-label="" points="117.16867469879517,390.4216867469879 321.6867469879518,390.4216867469879" fill="none" stroke="hsl(312, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 0.3774999999999997,-0.1899999999999995" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 321.6867469879518,289.21686746987945" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 3.3774999999999995,-2.5900000000000003" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 574.6987951807228,491.6265060240964" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 3.3774999999999995,-2.3900000000000006" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 574.6987951807228,474.7590361445783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 262.6506024096385,217.53012048192753" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 3.3774999999999995,-2.5900000000000003" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 574.6987951807228,491.6265060240964" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 3.3774999999999995,-2.3900000000000006" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 574.6987951807228,474.7590361445783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 262.6506024096385,217.53012048192753" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.5900000000000003 3.3774999999999995,-2.3900000000000006" data-type="line" data-label="" points="574.6987951807228,491.6265060240964 574.6987951807228,474.7590361445783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.5900000000000003 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="574.6987951807228,491.6265060240964 262.6506024096385,217.53012048192753" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.5900000000000003 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="574.6987951807228,491.6265060240964 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.3900000000000006 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="574.6987951807228,474.7590361445783 262.6506024096385,217.53012048192753" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.3900000000000006 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="574.6987951807228,474.7590361445783 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-0.3225000000000006,0.6600000000000018 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="262.6506024096385,217.53012048192753 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.2225000000000006,0.6600000000000018 -2.4125,-1.84" data-type="line" data-label="" points="186.74698795180717,217.53012048192753 86.38554216867468,428.37349397590356" fill="none" stroke="hsl(186, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,1.5100000000000002 3.5774999999999997,1.5100000000000002 3.5774999999999997,1.7100000000000004 3.3774999999999995,1.7100000000000004" data-type="line" data-label="" points="574.6987951807228,145.84337349397586 591.566265060241,145.84337349397586 591.566265060241,128.97590361445776 574.6987951807228,128.97590361445776" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.7725000000000006,0.2950000000000018 -0.7725000000000006,0.09500000000000186 0.17749999999999966,0.09500000000000186 0.17749999999999966,0.3100000000000005 0.3774999999999997,0.3100000000000005" data-type="line" data-label="" points="224.6987951807228,248.31325301204802 224.6987951807228,265.18072289156606 304.8192771084337,265.18072289156606 304.8192771084337,247.04819277108427 321.6867469879518,247.04819277108427" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 0.027499999999999553,-0.1899999999999995 0.027499999999999553,0.6600000000000018 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 292.16867469879514,289.21686746987945 292.16867469879514,217.53012048192753 262.6506024096385,217.53012048192753" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.3774999999999995,-2.3900000000000006 3.5774999999999997,-2.3900000000000006 3.5774999999999997,-2.5900000000000003 3.3774999999999995,-2.5900000000000003" data-type="line" data-label="" points="574.6987951807228,474.7590361445783 591.566265060241,474.7590361445783 591.566265060241,491.6265060240964 574.6987951807228,491.6265060240964" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 3.5774999999999997,-2.7900000000000005 3.5774999999999997,-2.5900000000000003 3.3774999999999995,-2.5900000000000003" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 591.566265060241,508.49397590361446 591.566265060241,491.6265060240964 574.6987951807228,491.6265060240964" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.0475,-1.39 0.3774999999999997,-1.39" data-type="line" data-label="" points="117.16867469879517,390.4216867469879 321.6867469879518,390.4216867469879" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.4125,-0.9399999999999997 -2.4125,-0.8899999999999997 -2.7125000000000004,-0.8899999999999997 -2.7125000000000004,-0.9909999999999998" data-type="line" data-label="" points="86.38554216867468,352.4698795180722 86.38554216867468,348.2530120481927 61.08433734939754,348.2530120481927 61.08433734939754,356.77108433734935" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.2225000000000006,0.6600000000000018 -1.3235000000000006,0.6600000000000018 -1.3235000000000006,0.8610000000000018" data-type="line" data-label="" points="186.74698795180717,217.53012048192753 178.22891566265054,217.53012048192753 178.22891566265054,200.57831325301186" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.4125,-1.84 -2.4125,-1.8900000000000001 -2.8625000000000003,-1.8900000000000001 -2.8625000000000003,-0.989" data-type="line" data-label="" points="86.38554216867468,428.37349397590356 86.38554216867468,432.5903614457831 48.433734939759006,432.5903614457831 48.433734939759006,356.6024096385542" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="1.8774999999999997" data-y="-0.43999999999999995" x="321.68674698795184" y="91.0240963855421" width="253.01204819277098" height="438.55421686746996" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011857142857142858"/></g><g><rect data-type="rect" data-label="schematic_component_6" data-x="-0.7725000000000006" data-y="0.5600000000000018" x="186.74698795180714" y="203.61445783132513" width="75.90361445783134" height="44.6987951807229" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011857142857142858"/></g><g><rect data-type="rect" data-label="schematic_component_7" data-x="-2.3125" data-y="-1.39" x="72.46987951807229" y="352.4698795180723" width="44.6987951807229" height="75.90361445783134" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011857142857142858"/></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="3.3774999999999995,1.5100000000000002 3.3774999999999995,1.7100000000000004" data-type="line" data-label="" points="574.6987951807228,145.84337349397586 574.6987951807228,128.97590361445776" fill="none" stroke="hsl(176, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.7725000000000006,0.2950000000000018 0.3774999999999997,0.3100000000000005" data-type="line" data-label="" points="224.6987951807228,248.31325301204802 321.6867469879518,247.04819277108427" fill="none" stroke="hsl(48, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-2.0475,-1.39 0.3774999999999997,-1.39" data-type="line" data-label="" points="117.16867469879517,390.4216867469879 321.6867469879518,390.4216867469879" fill="none" stroke="hsl(312, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 0.3774999999999997,-0.1899999999999995" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 321.6867469879518,289.21686746987945" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 3.3774999999999995,-2.5900000000000003" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 574.6987951807228,491.6265060240964" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 3.3774999999999995,-2.3900000000000006" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 574.6987951807228,474.7590361445783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 262.6506024096385,217.53012048192753" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 3.3774999999999995,-2.5900000000000003" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 574.6987951807228,491.6265060240964" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 3.3774999999999995,-2.3900000000000006" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 574.6987951807228,474.7590361445783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 262.6506024096385,217.53012048192753" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.5900000000000003 3.3774999999999995,-2.3900000000000006" data-type="line" data-label="" points="574.6987951807228,491.6265060240964 574.6987951807228,474.7590361445783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.5900000000000003 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="574.6987951807228,491.6265060240964 262.6506024096385,217.53012048192753" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.5900000000000003 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="574.6987951807228,491.6265060240964 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.3900000000000006 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="574.6987951807228,474.7590361445783 262.6506024096385,217.53012048192753" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,-2.3900000000000006 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="574.6987951807228,474.7590361445783 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-0.3225000000000006,0.6600000000000018 -2.4125,-0.9399999999999997" data-type="line" data-label="" points="262.6506024096385,217.53012048192753 86.38554216867468,352.4698795180722" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.2225000000000006,0.6600000000000018 -2.4125,-1.84" data-type="line" data-label="" points="186.74698795180717,217.53012048192753 86.38554216867468,428.37349397590356" fill="none" stroke="hsl(186, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="3.3774999999999995,1.5100000000000002 3.5774999999999997,1.5100000000000002 3.5774999999999997,1.7100000000000004 3.3774999999999995,1.7100000000000004" data-type="line" data-label="" points="574.6987951807228,145.84337349397586 591.566265060241,145.84337349397586 591.566265060241,128.97590361445776 574.6987951807228,128.97590361445776" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.7725000000000006,0.2950000000000018 -0.7725000000000006,0.09500000000000186 0.17749999999999966,0.09500000000000186 0.17749999999999966,0.3100000000000005 0.3774999999999997,0.3100000000000005" data-type="line" data-label="" points="224.6987951807228,248.31325301204802 224.6987951807228,265.18072289156606 304.8192771084337,265.18072289156606 304.8192771084337,247.04819277108427 321.6867469879518,247.04819277108427" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="0.3774999999999997,-0.1899999999999995 0.027499999999999553,-0.1899999999999995 0.027499999999999553,0.6600000000000018 -0.3225000000000006,0.6600000000000018" data-type="line" data-label="" points="321.6867469879518,289.21686746987945 292.16867469879514,289.21686746987945 292.16867469879514,217.53012048192753 262.6506024096385,217.53012048192753" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.3774999999999995,-2.3900000000000006 3.5774999999999997,-2.3900000000000006 3.5774999999999997,-2.5900000000000003 3.3774999999999995,-2.5900000000000003" data-type="line" data-label="" points="574.6987951807228,474.7590361445783 591.566265060241,474.7590361445783 591.566265060241,491.6265060240964 574.6987951807228,491.6265060240964" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3.3774999999999995,-2.7900000000000005 3.5774999999999997,-2.7900000000000005 3.5774999999999997,-2.5900000000000003 3.3774999999999995,-2.5900000000000003" data-type="line" data-label="" points="574.6987951807228,508.49397590361446 591.566265060241,508.49397590361446 591.566265060241,491.6265060240964 574.6987951807228,491.6265060240964" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.0475,-1.39 0.3774999999999997,-1.39" data-type="line" data-label="" points="117.16867469879517,390.4216867469879 321.6867469879518,390.4216867469879" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.4125,-0.9399999999999997 -2.4125,-0.8899999999999997 -2.7125000000000004,-0.8899999999999997 -2.7125000000000004,-0.9909999999999998" data-type="line" data-label="" points="86.38554216867468,352.4698795180722 86.38554216867468,348.2530120481927 61.08433734939754,348.2530120481927 61.08433734939754,356.77108433734935" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-1.2225000000000006,0.6600000000000018 -1.3235000000000006,0.6600000000000018 -1.3235000000000006,0.8610000000000018" data-type="line" data-label="" points="186.74698795180717,217.53012048192753 178.22891566265054,217.53012048192753 178.22891566265054,200.57831325301186" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.4125,-1.84 -2.4125,-1.8900000000000001 -2.8625000000000003,-1.8900000000000001 -2.8625000000000003,-0.989" data-type="line" data-label="" points="86.38554216867468,428.37349397590356 86.38554216867468,432.5903614457831 48.433734939759006,432.5903614457831 48.433734939759006,356.6024096385542" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="1.8774999999999997" data-y="-0.43999999999999995" x="321.68674698795184" y="91.0240963855421" width="253.01204819277098" height="438.55421686746996" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011857142857142858"/></g><g><rect data-type="rect" data-label="schematic_component_6" data-x="-0.7725000000000006" data-y="0.5600000000000018" x="186.74698795180714" y="203.61445783132513" width="75.90361445783134" height="44.6987951807229" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011857142857142858"/></g><g><rect data-type="rect" data-label="schematic_component_7" data-x="-2.3125" data-y="-1.39" x="72.46987951807229" y="352.4698795180723" width="44.6987951807229" height="75.90361445783134" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.011857142857142858"/></g><g><rect data-type="rect" data-label="netId: GND
2
4
  globalConnNetId: connectivity_net3" data-x="3.5774999999999997" data-y="-3.0300000000000002" x="583.132530120482" y="508.49397590361446" width="16.867469879518126" height="40.481927710843365" fill="#00000066" stroke="#000000" stroke-width="0.011857142857142858"/></g><g><rect data-type="rect" data-label="netId: GND
3
5
  globalConnNetId: connectivity_net3" data-x="0.027499999999999553" data-y="-0.4299999999999995" x="283.73493975903614" y="289.21686746987945" width="16.86746987951807" height="40.481927710843365" fill="#00000066" stroke="#000000" stroke-width="0.011857142857142858"/></g><g><rect data-type="rect" data-label="netId: GND
4
6
  globalConnNetId: connectivity_net3" data-x="-2.7125000000000004" data-y="-1.2309999999999999" x="52.650602409638495" y="356.77108433734935" width="16.867469879518097" height="40.481927710843365" fill="#00000066" stroke="#000000" stroke-width="0.011857142857142858"/></g><g><rect data-type="rect" data-label="netId: .J3 &gt; .pin2 to .U1 &gt; .pin7
@@ -38,7 +40,7 @@ orientation: y+" data-x="-2.8625000000000003" data-y="-0.989" cx="48.43373493975
38
40
  const h = svg.getElementById('crosshair-h');
39
41
  const v = svg.getElementById('crosshair-v');
40
42
  const coords = svg.getElementById('coordinates');
41
-
43
+
42
44
  crosshair.style.display = 'block';
43
45
  h.setAttribute('x1', '0');
44
46
  h.setAttribute('x2', '640');
@@ -57,13 +59,13 @@ orientation: y+" data-x="-2.8625000000000003" data-y="-0.989" cx="48.43373493975
57
59
  // y' = (y - ty) / sy
58
60
  const sx = matrix.a;
59
61
  const sy = matrix.d;
60
- const tx = matrix.e;
62
+ const tx = matrix.e;
61
63
  const ty = matrix.f;
62
64
  const realPoint = {
63
65
  x: (x - tx) / sx,
64
66
  y: (y - ty) / sy // Flip y back since we used negative scale
65
67
  }
66
-
68
+
67
69
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
68
70
  coords.setAttribute('x', (x + 5).toString());
69
71
  coords.setAttribute('y', (y - 5).toString());
@@ -71,4 +73,76 @@ orientation: y+" data-x="-2.8625000000000003" data-y="-0.989" cx="48.43373493975
71
73
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
72
74
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
73
75
  });
74
- ]]></script></svg>
76
+ ]]></script>
77
+ </g>
78
+ <g transform="translate(1216, 200)">
79
+ <style>
80
+ .boundary { fill: rgb(245, 241, 237); }
81
+ .schematic-boundary { fill: none; stroke: #fff; }
82
+ .component { fill: none; stroke: rgb(132, 0, 0); }
83
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
84
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
85
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
86
+ .pin-number { fill: rgb(169, 0, 0); }
87
+ .port-label { fill: rgb(0, 100, 100); }
88
+ .component-name { fill: rgb(0, 100, 100); }
89
+
90
+ </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 973.7392488087964 142.31792587101395 L 998.4901924385165 142.31792587101395 L 998.4901924385165 117.56698224129391 L 973.7392488087964 117.56698224129391" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 973.7392488087964 142.31792587101395 L 998.4901924385165 142.31792587101395 L 998.4901924385165 117.56698224129391 L 973.7392488087964 117.56698224129391" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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 460.1571684921064 292.67990842156274 L 460.1571684921064 317.4308520512827 L 577.7241507332764 317.4308520512827 L 577.7241507332764 290.82358764933394 L 602.4750943629964 290.82358764933394" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 460.1571684921064 292.67990842156274 L 460.1571684921064 317.4308520512827 L 577.7241507332764 317.4308520512827 L 577.7241507332764 290.82358764933394 L 602.4750943629964 290.82358764933394" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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 602.4750943629964 352.70094672363393 L 559.1609430109864 352.70094672363393 L 559.1609430109864 247.50943629732376 L 515.8467916589764 247.50943629732376" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 602.4750943629964 352.70094672363393 L 559.1609430109864 352.70094672363393 L 559.1609430109864 247.50943629732376 L 515.8467916589764 247.50943629732376" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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 973.7392488087964 624.961326650554 L 998.4901924385165 624.961326650554 L 998.4901924385165 649.712270280274 L 973.7392488087964 649.712270280274" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 973.7392488087964 624.961326650554 L 998.4901924385165 624.961326650554 L 998.4901924385165 649.712270280274 L 973.7392488087964 649.712270280274" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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 973.7392488087964 674.463213909994 L 998.4901924385165 674.463213909994 L 998.4901924385165 649.712270280274 L 973.7392488087964 649.712270280274" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 973.7392488087964 674.463213909994 L 998.4901924385165 674.463213909994 L 998.4901924385165 649.712270280274 L 973.7392488087964 649.712270280274" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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 302.3699028526414 501.20660850195395 L 602.4750943629964 501.20660850195395" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 302.3699028526414 501.20660850195395 L 602.4750943629964 501.20660850195395" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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 257.19943072840243 445.516985335084 L 257.19943072840243 439.32924942765396 L 220.07301528382237 439.32924942765396 L 220.07301528382237 451.82847596066256" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 257.19943072840243 445.516985335084 L 257.19943072840243 439.32924942765396 L 220.07301528382237 439.32924942765396 L 220.07301528382237 451.82847596066256" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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 404.46754532523636 247.50943629732376 L 391.96831879222776 247.50943629732376 L 391.96831879222776 222.63473794945514" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 404.46754532523636 247.50943629732376 L 391.96831879222776 247.50943629732376 L 391.96831879222776 222.63473794945514" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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_8__stack1"><path d="M 257.19943072840243 556.896231668824 L 257.19943072840243 563.083967576254 L 201.5098075615324 563.083967576254 L 201.5098075615324 451.5809665243654" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="19.800754903776003px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 257.19943072840243 556.896231668824 L 257.19943072840243 563.083967576254 L 201.5098075615324 563.083967576254 L 201.5098075615324 451.5809665243654" stroke="rgb(0, 150, 0)" fill="none" stroke-width="2.4750943629720004px" 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"><circle cx="998.4901924385165" cy="649.712270280274" r="3.712641544458" class="trace-junction sch-trace-junction" fill="rgb(0, 150, 0)"/><circle cx="973.7392488087964" cy="649.712270280274" r="3.712641544458" 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_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="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_8__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="651.9769816224364" y="61.877359074423964" width="272.2603799269201" height="643.5245343727199" stroke-width="2.4750943629720004px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="651.9769816224364" y="61.877359074423964" width="272.2603799269201" height="643.5245343727199" fill="transparent"/><text class="sch-text" x="788.1071715858964" y="383.639626260784" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="22.275849266748px" transform="rotate(0, 788.1071715858964, 383.639626260784)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="924.2373615493565" y1="674.463213909994" x2="973.7392488087964" y2="674.463213909994" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="971.2641544458245" y="671.988119547022" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="948.9883051790764" y="671.988119547022" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="651.9769816224364" y1="501.20660850195395" x2="602.4750943629964" y2="501.20660850195395" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><rect x="600.0000000000244" y="498.73151413898194" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="627.2260379927164" y="498.731514138982" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="651.9769816224364" y1="290.82358764933394" x2="602.4750943629964" y2="290.82358764933394" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><rect x="600.0000000000244" y="288.34849328636193" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="627.2260379927164" y="288.34849328636193" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">10</text><line class="component-pin sch-component-pin sch-port-line" x1="651.9769816224364" y1="352.70094672363393" x2="602.4750943629964" y2="352.70094672363393" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><rect x="600.0000000000244" y="350.2258523606619" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="627.2260379927164" y="350.2258523606619" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">13</text><line class="component-pin sch-component-pin sch-port-line" x1="924.2373615493565" y1="649.712270280274" x2="973.7392488087964" y2="649.712270280274" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><rect x="971.2641544458245" y="647.237175917302" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="948.9883051790764" y="647.237175917302" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">18</text><line class="component-pin sch-component-pin sch-port-line" x1="924.2373615493565" y1="117.56698224129391" x2="973.7392488087964" y2="117.56698224129391" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><rect x="971.2641544458245" y="115.09188787832191" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="948.9883051790764" y="115.09188787832193" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">22</text><line class="component-pin sch-component-pin sch-port-line" x1="924.2373615493565" y1="142.31792587101395" x2="973.7392488087964" y2="142.31792587101395" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><rect x="971.2641544458245" y="139.84283150804197" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="948.9883051790764" y="139.84283150804194" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">28</text><line class="component-pin sch-component-pin sch-port-line" x1="924.2373615493565" y1="624.961326650554" x2="973.7392488087964" y2="624.961326650554" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><rect x="971.2641544458245" y="622.4862322875821" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="948.9883051790764" y="622.4862322875821" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">29</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="453.9694325846764" y="253.69717220475377" width="12.375471814859964" height="12.37547181486002" stroke-width="2.4750943629720004px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="453.9694325846764" y="253.69717220475377" width="12.375471814859964" height="12.37547181486002" fill="transparent"/><text class="sch-text" x="460.1571684921064" y="259.8849081121838" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="21.863333539586px" transform="rotate(0, 460.1571684921064, 259.8849081121838)">J2</text><line class="component-pin sch-component-pin sch-port-line" x1="453.9694325846764" y1="247.50943629732376" x2="404.46754532523636" y2="247.50943629732376" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="401.99245096226434" y="245.03434193435177" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="429.21848895495634" y="245.03434193435174" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="460.1571684921064" y1="266.0726440196138" x2="460.1571684921064" y2="292.67990842156274" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_1_1__stack1"><rect x="457.6820741291344" y="290.2048140585907" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="457.6820741291344" y="279.37627622058824" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="rotate(-90 457.6820741291344 279.37627622058824)">2</text><line class="component-pin sch-component-pin sch-port-line" x1="466.34490439953635" y1="247.50943629732376" x2="515.8467916589764" y2="247.50943629732376" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_1_2__stack1"><rect x="513.3716972960044" y="245.03434193435177" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="491.09584802925633" y="245.03434193435174" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">3</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_2__stack1"><rect class="component chip sch-component-body" x="263.38716663583244" y="495.01887259452394" width="12.375471814859964" height="12.37547181486002" stroke-width="2.4750943629720004px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="263.38716663583244" y="495.01887259452394" width="12.375471814859964" height="12.37547181486002" fill="transparent"/><text class="sch-text" x="269.57490254326245" y="501.20660850195395" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="22.275849266748px" transform="rotate(0, 269.57490254326245, 501.20660850195395)">J3</text><line class="component-pin sch-component-pin sch-port-line" x1="257.19943072840243" y1="507.39434440938396" x2="257.19943072840243" y2="556.896231668824" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_2_0__stack1"><rect x="254.72433636543045" y="554.4211373058521" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="254.72433636543042" y="532.145288039104" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="rotate(-90 254.72433636543042 532.145288039104)">1</text><line class="component-pin sch-component-pin sch-port-line" x1="275.7626384506924" y1="501.20660850195395" x2="302.3699028526414" y2="501.20660850195395" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_2_1__stack1"><rect x="299.8948084896694" y="498.73151413898194" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="289.06627065166697" y="498.731514138982" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="257.19943072840243" y1="495.01887259452394" x2="257.19943072840243" y2="445.516985335084" stroke-width="2.4750943629720004px"/><g class="sch-port" data-schematic-port-id="source_port_2_2__stack1"><rect x="254.72433636543045" y="443.04189097211196" width="4.950188725944001" height="4.950188725944001" opacity="0"/></g><text class="pin-number sch-pin-number" x="254.72433636543042" y="470.26792896480396" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="18.56320772229px" transform="rotate(-90 254.72433636543042 470.26792896480396)">3</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="973.7392488087964" cy="674.463213909994" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="602.4750943629964" cy="501.20660850195395" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="602.4750943629964" cy="290.82358764933394" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="602.4750943629964" cy="352.70094672363393" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="973.7392488087964" cy="649.712270280274" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="973.7392488087964" cy="117.56698224129391" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="973.7392488087964" cy="142.31792587101395" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="973.7392488087964" cy="624.961326650554" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="404.46754532523636" cy="247.50943629732376" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_1__stack1"><circle cx="460.1571684921064" cy="292.67990842156274" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_2__stack1"><circle cx="515.8467916589764" cy="247.50943629732376" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_0__stack1"><circle cx="257.19943072840243" cy="556.896231668824" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_1__stack1"><circle cx="302.3699028526414" cy="501.20660850195395" r="4.950188725944001" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_2_2__stack1"><circle cx="257.19943072840243" cy="445.516985335084" r="4.950188725944001" 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="
91
+ M 998.4901924385165,674.463213909994
92
+ L 1010.8656642533765,681.1459686900184
93
+ L 1010.8656642533765,738.1226409256338
94
+ L 986.1147206236565,738.1226409256338
95
+ L 986.1147206236565,681.1459686900184
96
+ Z
97
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.4750943629720004px"/><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="998.4901924385165" y="685.601138543368" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="22.275849266748px" transform="rotate(90 998.4901924385165 685.601138543368)">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="
98
+ M 559.1609430109864,352.70094672363393
99
+ L 571.5364148258465,359.38370150365836
100
+ L 571.5364148258465,416.36037373927377
101
+ L 546.7854711961264,416.36037373927377
102
+ L 546.7854711961264,359.38370150365836
103
+ Z
104
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.4750943629720004px"/><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="559.1609430109864" y="363.8388713570079" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="22.275849266748px" transform="rotate(90 559.1609430109864 363.8388713570079)">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="
105
+ M 220.07301528382237,451.82847596066256
106
+ L 232.44848709868236,458.511230740687
107
+ L 232.44848709868236,515.4879029763024
108
+ L 207.69754346896238,515.4879029763024
109
+ L 207.69754346896238,458.511230740687
110
+ Z
111
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.4750943629720004px"/><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="220.07301528382237" y="462.96640059403654" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="22.275849266748px" transform="rotate(90 220.07301528382237 462.96640059403654)">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="
112
+ M 452.4224986078189,501.20660850195395
113
+ L 440.0470267929589,494.5238537219295
114
+ L 440.0470267929589,452.08423571150297
115
+ L 464.79797042267893,452.08423571150297
116
+ L 464.79797042267893,494.5238537219295
117
+ Z
118
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.4750943629720004px"/><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="452.4224986078189" y="490.06868386857997" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="22.275849266748px" transform="rotate(-90 452.4224986078189 490.06868386857997)">XX</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="
119
+ M 460.1571684921064,317.4308520512827
120
+ L 453.47441371208197,329.80632386614275
121
+ L 411.0347957016554,329.80632386614275
122
+ L 411.0347957016554,305.0553802364227
123
+ L 453.47441371208197,305.0553802364227
124
+ Z
125
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.4750943629720004px"/><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="449.0192438587324" y="317.4308520512827" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="22.275849266748px" 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_5__stack1" d="
126
+ M 998.4901924385165,142.31792587101395
127
+ L 1010.8656642533765,149.00068065103835
128
+ L 1010.8656642533765,191.4402986614649
129
+ L 986.1147206236565,191.4402986614649
130
+ L 986.1147206236565,149.00068065103835
131
+ Z
132
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.4750943629720004px"/><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="998.4901924385165" y="153.45585050438797" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="22.275849266748px" transform="rotate(90 998.4901924385165 153.45585050438797)">XX</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="
133
+ M 391.96831879222776,222.63473794945514
134
+ L 379.59284697736774,215.95198316943075
135
+ L 379.59284697736774,129.90120248343754
136
+ L 404.3437906070878,129.90120248343754
137
+ L 404.3437906070878,215.95198316943075
138
+ Z
139
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.4750943629720004px"/><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="391.96831879222776" y="211.49681331608113" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="22.275849266748px" transform="rotate(-90 391.96831879222776 211.49681331608113)">XXXXX</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="
140
+ M 201.5098075615324,451.5809665243654
141
+ L 189.1343357466724,444.898211744341
142
+ L 189.1343357466724,358.8474310583478
143
+ L 213.88527937639242,358.8474310583478
144
+ L 213.8852793763924,444.898211744341
145
+ Z
146
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="2.4750943629720004px"/><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="201.5098075615324" y="440.4430418909914" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="22.275849266748px" transform="rotate(-90 201.5098075615324 440.4430418909914)">XXXXX</text>
147
+ </g>
148
+ </svg>