← Commit history

Add symbol, footprint, Fusion and Altium libraries, viewers, provenance, README

John Lauer ·ab389b2cc5 ·4h ago ·parent 3764608
42 files changed +12981−2
LICENSEadded+14
@@ -0,0 +1,14 @@+Creative Commons Attribution 4.0 International (CC BY 4.0)+https://creativecommons.org/licenses/by/4.0/++Copyright 2026 Adom Inc.++Applies to the files authored by Adom on this page: the KiCad symbol and footprint, the 3D models+(tmcs1123b1aqdvgr*.step, *.glb, lod/), the hero GLB artwork, the virtual MPN etch, the chip outline artwork,+the Fusion/EAGLE and Altium libraries, the provenance tools and data, and the README text.++Not covered (they keep their own terms):+- docs/tmcs1123b1aqdvgr-datasheet.pdf and the page images under docs/figures/: Texas Instruments+  Incorporated (SBOSA24D), redistributed for reference under TI's terms.+- The overlay and footprint-check images under docs/proof/ reproduce parts of TI's package drawings+  (SBOSA24D p.45, p.46) under TI's terms, with Adom's overlay on top.
README.md+232−2
@@ -1,3 +1,233 @@-# TMCS1123B1AQDVGR - Isolated Hall-Effect Current Sensor+# TMCS1123B1AQDVGR -Texas Instruments TMCS1123B1AQDVGR: isolated Hall-effect current sensor, 25 mV/A with a 1.65 V zero-current output (linear +-62 A at 3.3 V), 80 A RMS continuous, 250 kHz, overcurrent detection, reinforced isolation, SOIC-10 wide body (DVG). KiCad, Fusion and Altium libraries, 3D model and datasheet.+**Texas Instruments** · Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output · SOIC-10 wide body (DVG)++TMCS1123B1AQDVGR is the B1A option of TI's TMCS1123: a galvanically isolated Hall-effect current sensor. The measured current flows through a 0.7 mOhm lead frame conductor between IN+ and IN-, on one side of a reinforced isolation barrier; the signal side runs from a single 3.0 V to 5.5 V supply and gives an analog output proportional to the current, a precision zero-current reference, a fast overcurrent comparator and a diagnostics output (SBOSA24D p.1, p.4). The B1A option has 25 mV/A sensitivity centred on 1.65 V, so on a 3.3 V supply it measures ±62 A linearly in both directions (p.3).++::adom-verified{src="/adom/tmcs1123b1aqdvgr/render/verification.json"}++## Key specifications++Values for TMCS1123BxA at VS = 3.3 V, TA = 25 C unless noted (TI characterizes the BxA parts at 3.3 V).++| Parameter | Value | Source |+|---|---|---|+| Sensitivity (B1A) | 25 mV/A; error ±0.1 % typ, ±0.4 % max | p.8 |+| Sensitivity drift | ±20 ppm/C typ, ±50 ppm/C max (thermal); ±0.2 % typ, ±0.5 % max (lifetime) | p.8 |+| Nonlinearity | ±0.1 % | p.8 |+| Zero-current output, VREF | 1.65 V; VREF error ±0.02 % typ, ±0.15 % max | p.8, p.9 |+| Offset error (x1A) | ±0.2 mV typ, ±1 mV max; drift ±2 uV/C typ, ±10 uV/C max | p.8 |+| Linear range (B1A) | ±62 A at VS = 3.3 V; -62 A to 130 A at VS = 5 V (output swing limit, not thermal) | p.3 |+| Conductor resistance | 0.7 mOhm (IN+ to IN-) | p.8 |+| Continuous current | 80 A RMS at 25 C, 44 A RMS at 125 C, on TI's TMCS1123xEVM (4 oz copper) | p.8, p.19, p.36 |+| Bandwidth, response | 250 kHz (-3 dB); 1 us response time; 110 ns propagation delay; 3 V/us slew | p.9 |+| Overcurrent detection | threshold VOC = S x IOC / 2.5 (0.3 V to VS); 100 ns typ, 250 ns max response; hysteresis 4.5 A (x1A); OC open-drain, active low | p.9, p.25 |+| ALERT diagnostics | open-drain, active low, 8 kHz PWM: 80 % duty thermal alert, 50 % sensor alert, 20 % both | p.9, p.28 |+| Supply | VS 3.0 V to 5.5 V; IQ 11 mA typ, 14 mA max (25 C); 14.5 mA max over temperature | p.5, p.9 |+| Power-on time | 34 ms from VS > 3 V to valid output | p.10 |+| Isolation | 5000 V RMS withstand (UL 1577, 60 s); reinforced working voltage 950 V RMS / 1343 V DC; VIORM 1697 V peak; VIOTM 7071 V peak; surge 10 kV peak | p.6 |+| Creepage, clearance, CTI | at least 8 mm external creepage and clearance; CTI at least 600 V, material group I | p.6 |+| CMTI | 150 kV/us | p.8 |+| Certifications | UL 1577 (file E181974); IEC/CB 62368-1 | p.6 |+| ESD | HBM ±4000 V, CDM ±1000 V | p.5 |+| Temperature | -40 C to +125 C operating; TJ max 165 C | p.5 |+| Thermal | RthJA 27.9 C/W, RthJB 10.1 C/W (on the EVM) | p.5 |+| Package | DVG (SOIC-10 wide body), 7.5 x 10.3 mm body, 10.3 x 10.3 mm with leads, 2.65 mm max height | p.1, p.45 |+| Moisture sensitivity, marking | MSL 2, 260 C peak; top marking `1123B1A` | p.40 |++## Pinout (top view)++Pins 1 and 2 are the two wide current leads on one side of the package; pins 3 to 10 are on the other side, with 10 at the pin-1 end. The isolation barrier runs between the two rows.++| Pin | Name | Side of barrier | Type | Function |+|---|---|---|---|---|+| 1 | IN+ | primary (high voltage) | passive | Input current positive pin: one end of the 0.7 mOhm internal conductor (SBOSA24D p.4, Table 5-1; RIN p.8). Current flowing from IN+ to IN- gives a positive output change. This pin is on the primary (high-voltage) side of the isolation barrier. |+| 2 | IN- | primary (high voltage) | passive | Input current negative pin: the other end of the internal conductor (p.4, Table 5-1). Primary (high-voltage) side of the isolation barrier. |+| 3 | GND | isolated low voltage | power in | Ground of the isolated low-voltage side (p.4, Table 5-1). |+| 4 | ALERT | isolated low voltage | open collector | Sensor diagnostics output: open-drain, active low, 8 kHz PWM whose duty cycle reports thermal and sensor alerts (p.4; p.9; p.28). Connect to GND if not used. |+| 5 | VREF | isolated low voltage | output | Zero-current output voltage reference (1.65 V on BxA parts), for ratiometric or differential measurement of VOUT. Leave floating if not used (p.4; p.9). |+| 6 | VOUT | isolated low voltage | output | Output voltage: VOUT = VREF + S x IIN, linear from 100 mV to VS - 100 mV (p.4; p.24 Eq. 18 to 21). B1A: S = 25 mV/A, zero-current output 1.65 V. |+| 7 | OC | isolated low voltage | open collector | Overcurrent output, open-drain, active low. Needs a pull-up. Connect to GND if not used (p.4, Table 5-1). |+| 8 | VS | isolated low voltage | power in | Power supply, 3.0 V to 5.5 V (p.4; p.5 recommended operating conditions). Decouple to GND with 0.1 uF placed close to the pin (p.35). |+| 9 | VOC | isolated low voltage | input | Overcurrent threshold input: VOC = S x IOC / 2.5, 0.3 V to VS, 120 kOhm input impedance. Connect to VS if not used (p.4; p.9; p.25). |+| 10 | NC | isolated low voltage | no connect | Reserved. The datasheet allows it to be connected to GND or left floating (p.4, Table 5-1). Typed no-connect; tying it to GND is permitted by TI but will need an ERC waiver. |++Source: SBOSA24D p.4 (Figure 5-1, Table 5-1).++## Variants++Every TMCS1123 option uses the same DVG package and pinout, so the footprint, 3D model and symbol on this page fit all of them; only the sensitivity, the zero-current output and therefore the linear range differ. Orderable part numbers add `QDVGR` (2000-piece tape and reel), for example TMCS1123B1AQDVGR (p.40). Linear range in amperes, from SBOSA24D Table 4-1 (p.3):++| Product | Sensitivity (mV/A) | Zero-current output (V) | Linear range, VS = 5 V (A) | Linear range, VS = 3.3 V (A) |+|---|---|---|---|---|+| TMCS1123A1A | 25 | 2.5 | ±96 (2) | -96 to 28 (2) |+| TMCS1123A2A | 50 | 2.5 | ±48 (2) | -48 to 14 (2) |+| TMCS1123A3A | 75 | 2.5 | ±32 | -32 to 9.3 |+| TMCS1123A4A | 100 | 2.5 | ±24 | -24 to 7 |+| TMCS1123A5A | 150 | 2.5 | ±16 | -16 to 4.7 |+| **TMCS1123B1A** (this page) | **25** | **1.65** | **-62 to 130 (2)** | **±62 (2)** |+| TMCS1123B2A | 50 | 1.65 | -31 to 65 (2) | ±31 |+| TMCS1123B3A | 75 | 1.65 | -20.7 to 43.3 (2) | ±20.7 |+| TMCS1123B4A | 100 | 1.65 | -15.5 to 32.5 | ±15.5 |+| TMCS1123B5A | 150 | 1.65 | -10.3 to 21.7 | ±10.3 |+| TMCS1123C1A | 25 | 0.33 | -9.2 to 183 (2) | -9.2 to 115 (2) |+| TMCS1123C2A | 50 | 0.33 | -4.6 to 91.4 (2) | -4.6 to 57.4 (2) |+| TMCS1123C3A | 75 | 0.33 | -3.1 to 60.9 (2) | -3.1 to 38.3 (2) |+| TMCS1123C4A | 100 | 0.33 | -2.3 to 45.7 (2) | -2.3 to 28.7 |+| TMCS1123C5A | 150 | 0.33 | -1.5 to 30.5 | -1.5 to 19.1 |+| TMCS1123D71 (1) | 38.5 | 1.5 | -36.3 to 88.3 (2) | -36.3 to 44.1 (2) |++(1) D71: overcurrent output asserted only after a sustained event longer than the 1.25 us MASK time (p.3, p.9). (2) The current must also stay inside the continuous and transient safe operating areas (p.3, p.19 to p.21): the linear range can exceed what the part may carry continuously.++How to pick: the A options (2.5 V reference) suit bidirectional sensing on 5 V; the B options (1.65 V) suit bidirectional sensing on 3.3 V; the C options (0.33 V) are for unidirectional current. The range follows from VOUT between 100 mV and VS - 100 mV: IIN,max = (VS - 0.1 V - VREF) / S and IIN,min = (0.1 V - VREF) / S (p.24, Eq. 18 to 21). TI also sells automotive TMCS1123-Q1 parts (for example TMCS1123B1AQDVGRQ1) under their own datasheet; check that datasheet before substituting.++## Design notes++- **Creepage on the board.** The part is rated for at least 8 mm creepage and clearance (p.6), but the PCB pads can reduce it. TI's land pattern has an IPC-7351 nominal option (7.3 mm between the pad rows) and an HV / isolation option (8.1 mm, p.46). This page uses the HV option and adds a copper keepout between the rows. Grooves or slots in the board can add creepage where a standard requires more (p.6 note 1).+- **Current path and heat.** The continuous rating is set by junction temperature on TI's EVM with 4 oz copper. Use large, heavy copper planes for IN+ and IN-, thermal via farms around the input and air flow to keep it (p.19, p.36).+- **Supply and reference.** Decouple VS with 0.1 uF close to the pin (p.35). VREF can drive up to 20 nF; VOUT up to 4.7 nF (p.8, p.9).+- **Overcurrent threshold.** Set VOC from a divider on VS or VREF with R2 under 10 kOhm (120 kOhm input impedance); add at least 500 Ohm between VREF and a 10 uF VOC capacitor (p.36, Figures 9-5 and 9-6). Tie VOC to VS when unused.+- **Unused outputs.** OC and ALERT to GND, VREF floating, VOC to VS, NC to GND or floating (p.4). The symbol types NC as no-connect, so a schematic that ties it to GND needs an ERC waiver.++## CAD++| File | What it is |+|---|---|+| [tmcs1123b1aqdvgr.kicad_sym](tmcs1123b1aqdvgr.kicad_sym) | KiCad symbol `TMCS1123B1AQDVGR` (adom-symbol 1.2.6, every pin then moved onto the 2.54 mm grid): Primary side (IN+, IN-) on the left; the isolated low-voltage pins on the right in Supply, Analog output, Overcurrent and Reserved groups; chip outline drawn in the body. Properties: MPN, Manufacturer, Datasheet, Mouser, DigiKey, Adom Wiki. |+| [tmcs1123b1aqdvgr.kicad_mod](tmcs1123b1aqdvgr.kicad_mod) | KiCad footprint to TI's HV / isolation land pattern, with the isolation keepout rule area. Its 3D path is `${KIPRJMOD}/tmcs1123b1aqdvgr-etched.step`; put the STEP beside your project or repoint the path. |+| [tmcs1123b1aqdvgr.lbr](tmcs1123b1aqdvgr.lbr) | Fusion / EAGLE library (adom-lbr 2.47.6, lint PASS) with MPN, MANUFACTURER, DATASHEET, ADOM_WIKI, MOUSER_PN, DIGIKEY_PN attributes; the keepout is on tRestrict, bRestrict and vRestrict. |+| [altium/TMCS1123B1AQDVGR.SchLib](altium/TMCS1123B1AQDVGR.SchLib), [altium/TMCS1123B1AQDVGR.PcbLib](altium/TMCS1123B1AQDVGR.PcbLib) | Native Altium libraries (adom-lbr assemble-altium) with the etched STEP embedded in the footprint. Altium has no no-connect pin type, so NC is Passive there. The PcbLib has no keepout region (see Open items). |+| [altium/TMCS1123B1AQDVGR.adom-lbr.json](altium/TMCS1123B1AQDVGR.adom-lbr.json) | The adom-lbr hub (symbol, footprint, pin to pad map) the Altium files are made from. |+| [tmcs1123b1aqdvgr-etched.step](tmcs1123b1aqdvgr-etched.step) | **The library 3D model** (see below). |++## Footprint++The pads follow TI's **HV / isolation option** of the DVG0010A example board layout (SBOSA24D p.46, drawing 4226847/C): pads 1 and 2 are 1.65 x 4.41 mm at x = -4.875, y = ±2.54; pads 3 to 10 are 1.65 x 0.60 mm at x = +4.875, 1.27 mm pitch; R0.05 corners. That puts **8.1 mm** of board between the primary pads and the low-voltage pads. A rule area on all copper layers (x -4.05 to +4.05 mm, y -5.5 to +5.5 mm) keeps tracks, vias and pours out of that strip. Every pad was compared with the drawing ([provenance/footprint-check.json](provenance/footprint-check.json)): all ten match.++![Footprint over TI's HV land pattern, keepout in amber](docs/proof/tmcs1123b1aqdvgr-footprint-check.png)++Pin 1: pad 1 is the upper-left current pad in KiCad's footprint frame, with a silkscreen bar at the upper-left corner and a chamfer on the F.Fab outline. The 3D model's pin 1 lead lands on pad 1 with zero offset and rotation, and the pads run as in TI's top view (p.4): 1 and 2 down the left, 3 to 10 up the right.++Pads 1 and 2 are current terminals, not exposed thermal pads, so they have no vias in the pad; TI asks for via farms in the copper around the input instead (p.36). KiCad has no library footprint for this package; its SOIC-10 3.9 x 4.9 mm, 1 mm pitch footprint is a different part.++## 3D models++::adom-models{src="/adom/tmcs1123b1aqdvgr/render/models.json"}++| File | What it is |+|---|---|+| [tmcs1123b1aqdvgr-etched.step](tmcs1123b1aqdvgr-etched.step) | Library model for board CAD: the package with the MPN etched on top in an `Adom.LaserEtch` group. |+| [tmcs1123b1aqdvgr.step](tmcs1123b1aqdvgr.step) | The same package, unmarked. |+| [tmcs1123b1aqdvgr-hero.glb](tmcs1123b1aqdvgr-hero.glb) | The page's 3D view: the etched model plus reference artwork (teal dashed pad outlines, silkscreen and pin-1 dot, signal names, and the isolation keepout as its own layer). Presentation only. |+| [tmcs1123b1aqdvgr-etched.glb](tmcs1123b1aqdvgr-etched.glb) | Clean web and board-viewer copy of the etched model, matte-tin leads, no footprint artwork. |+| [tmcs1123b1aqdvgr.glb](tmcs1123b1aqdvgr.glb) | Web copy of the unmarked model. |+| [lod/](lod/manifest.json) | Four board detail levels (below). |++Frame for every file: Z up, seated on z = 0, centred on the footprint origin, pin 1 at (-x, +y), which is footprint pad 1.++**How the model was made.** TI's STEP for this package is on Ultra Librarian behind a reCAPTCHA and a terms form, so it was not downloaded. KiCad has no DVG0010A model. The model was therefore built from TI's package drawing (SBOSA24D p.45, DVG0010A, 4226847/C) with CadQuery ([provenance/tools/build_dvg10.py](provenance/tools/build_dvg10.py)): drafted epoxy body, two wide current leads and eight signal leads as radiused gull wings, pin-1 dimple inside TI's pin-1 ID area. It is AI-generated from the datasheet. Where TI gives a range the model takes the middle; dimensions TI does not give (parting line height, draft, bend radius) are chosen and listed in [provenance/3d-model.json](provenance/3d-model.json).++| Dimension (mm) | TI min / nom / max | Model |+|---|---|---|+| E overall lead span | 9.97 / - / 10.63 (TYP) | 10.30 |+| E1 molded width | 7.4 / - / 7.6 | 7.50 |+| D molded length | 10.1 / - / 10.5 | 10.30 |+| A overall height | max 2.65 | 2.55 |+| A1 standoff | 0.1 / - / 0.3 | 0.20 |+| c lead thickness | 0.23 / - / 0.32 (TYP) | 0.275 |+| b signal lead width | 0.31 / - / 0.51 | 0.41 |+| e signal pitch | 1.27 | 1.27 |+| Current lead width (pins 1, 2) | 4.12 / - / 4.32 | 4.22 |+| Current lead centre offset | 2.44 / - / 2.64 | 2.54 |+| Gap between current leads | (0.86) | 0.86 |+| L foot at the 0.25 mm gauge plane | 0.40 / - / 1.27 | 0.854 |+| Lead length, body to tip | (1.4) | 1.40 |++Measured on the STEP by plane sections ([provenance/dims-model.json](provenance/dims-model.json), [provenance/dims-model-signal.json](provenance/dims-model-signal.json)). The proof: the model's top, front and end views blended over TI's drawing at the drawing's own scale (calibrated on the printed E and D spans).++![Model silhouettes over the DVG0010A drawing](docs/proof/tmcs1123b1aqdvgr-overlay.png)++**The marking is virtual.** The etch reads `TMCS1123` / `B1AQDVGR`, the orderable part number, so the part is identifiable in a 3D board view. TI's real marking is `1123B1A` (p.40). The etch was made with adom-chip-laser (service-occt flat mark, 5 um above the top face), placed by the adom-aiflow-etch planner from the footprint; its gate passes.++![Etch check](docs/proof/tmcs1123b1aqdvgr-etched.check.png)++## Detail levels for board and digital-twin viewers++::adom-component-lod{src="/adom/tmcs1123b1aqdvgr/render/lod/manifest.json"}++| Level | File | Marking |+|---|---|---|+| high | [tmcs1123b1aqdvgr-high.glb](lod/tmcs1123b1aqdvgr-high.glb) | yes |+| medium | [tmcs1123b1aqdvgr-medium.glb](lod/tmcs1123b1aqdvgr-medium.glb) | yes |+| low | [tmcs1123b1aqdvgr-low.glb](lod/tmcs1123b1aqdvgr-low.glb) | no |+| super-low | [tmcs1123b1aqdvgr-super-low.glb](lod/tmcs1123b1aqdvgr-super-low.glb) | no |++All four share the library model's frame and carry no footprint, silkscreen or label artwork. High is the etched GLB; medium and low come from the same generator with each bend drawn as three straight segments (medium keeps the etch); super-low has an undrafted body and one-segment bends. Every level keeps all ten leads and the pin-1 dimple. Status: candidate; the previews were inspected, a streaming LOD viewer has not qualified them.++![Detail levels: high, medium, low, super-low](docs/proof/tmcs1123b1aqdvgr-lods.png)++## Symbol chip outline++The symbol body carries the chip outline drawn from the etched model by `adom-aiflow-etch outline` (gate PASS): [artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg](artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg).++![Chip outline](artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.320.png)++## Sourcing++Checked 2026-10-21 with adom-parts-search.++| Distributor | Part number | Stock | Price |+|---|---|---|---|+| Mouser | [595-TMCS1123B1AQDVGR](https://www.mouser.com/en/ProductDetail/Texas-Instruments/TMCS1123B1AQDVGR?qs=mELouGlnn3fnFoesX7xpgA%3D%3D) | 0 (lead time 140 days) | 4.92 USD (1), 3.65 USD (100) |+| DigiKey | [296-TMCS1123B1AQDVGRTR-ND](https://www.digikey.com/en/products/detail/texas-instruments/TMCS1123B1AQDVGR/22168027) | 0 | 4.55 USD (1) |+| LCSC / JLCPCB | not listed | - | no JLCPCB/LCSC hit for this part number |++Mouser listed 4,000 of the automotive TMCS1123B1AQDVGRQ1 (595-CS1123B1AQDVGRQ1) on the same date; that is a different orderable part with its own datasheet. TI also sells directly at [ti.com](https://www.ti.com/product/TMCS1123/part-details/TMCS1123B1AQDVGR).++Packaging: 2000 per 330 mm reel, 16 mm tape, 12 mm pitch, pocket 10.75 x 10.7 x 2.7 mm, pin 1 in quadrant Q1 (p.43). MSL 2 (p.40).++## Manufacturer and resources++| Resource | Link |+|---|---|+| Product page | [ti.com/product/TMCS1123](https://www.ti.com/product/TMCS1123) |+| Datasheet | SBOSA24D (July 2023, revised May 2026), [PDF on this page](docs/tmcs1123b1aqdvgr-datasheet.pdf), [ti.com](https://www.ti.com/lit/ds/symlink/tmcs1123.pdf) |+| Package drawings | DVG0010A outline, example board layout and stencil, 4226847/C (datasheet p.45 to p.47) |+| Evaluation module | TMCS1123xEVM and its user's guide (linked from the product page) |+| CAD from TI | [Ultra Librarian (TI embedded)](https://vendor.ultralibrarian.com/TI/embedded/?gpn=TMCS1123&package=DVG&pin=10): symbol, footprint and STEP after a sign-off form |+| Related documentation | TI Isolation Glossary application note (cited on p.37) |++## Related++- [adom/tmcs1123a2aqdvgr](https://wiki.adom.inc/adom/tmcs1123a2aqdvgr): the A2A option (50 mV/A, 2.5 V reference). Its CAD files (2026-10-21) are KiCad's narrow SOIC-10 3.9 x 4.9 mm, 1 mm pitch footprint and model, which do not match TI's DVG package; the footprint and model on this page fit every TMCS1123 option.++## Open items++- TI's own STEP was not compared (Ultra Librarian needs a browser sign-off).+- The Altium PcbLib has no keepout region: adom-lbr 2.47.6 does not carry the KiCad rule area. Draw a keepout region over x -4.05 to +4.05 mm in Altium or set it with a board rule.+- The libraries are checked by lint and read-back; they have not been opened in KiCad, Fusion or Altium.++## Provenance++- **Datasheet:** TI SBOSA24D (July 2023, revised May 2026), 48 pages, sha256 `66bab03ec907cb65`, downloaded from ti.com on 2026-10-21 ([docs/tmcs1123b1aqdvgr-datasheet.pdf](docs/tmcs1123b1aqdvgr-datasheet.pdf)). Every pin and spec above cites its page.+- **Footprint:** [provenance/footprint-check.json](provenance/footprint-check.json), pad by pad against p.46; made with adom-footprint 1.0.26 from [provenance/tools/footprint-create.json](provenance/tools/footprint-create.json), then [fp_finish.py](provenance/tools/fp_finish.py) set the R0.05 corners, the keepout, the F.Fab pin-1 chamfer and the model path.+- **3D model:** [provenance/3d-model.json](provenance/3d-model.json): source attempts, build parameters, measurements, overlay proof, etch gate, hashes. Tools in [provenance/tools/](provenance/tools/build_dvg10.py); the lead construction and the GLB tools come from adom/mcp2562fd-e-sn.+- **Hero:** built with adom/component-hero's `hero_glb.py` (adom-hero 1.4; alignment OK) and [hero_post_keepout.py](provenance/tools/hero_post_keepout.py) for the keepout layer; sidecar [tmcs1123b1aqdvgr-hero.overlay.json](tmcs1123b1aqdvgr-hero.overlay.json).+- **Symbol:** created from [provenance/tools/symbol-create.json](provenance/tools/symbol-create.json) by adom-symbol 1.2.6, then every pin moved onto the 2.54 mm grid by [snap_symbol.py](provenance/tools/snap_symbol.py) (the tool placed the first pin of each column at y = -2.00 mm).+- **Fusion keepout:** added by [lbr_keepout.py](provenance/tools/lbr_keepout.py), because adom-lbr does not carry the rule area.+- **Licence:** Adom-authored files are CC-BY-4.0, see [LICENSE](LICENSE). The datasheet and its page images are TI's and keep TI's terms.++Cited datasheet pages:++![p.1 Features and description](docs/figures/tmcs1123b1aqdvgr-ds-p1.png)+![p.3 Device comparison](docs/figures/tmcs1123b1aqdvgr-ds-p3.png)+![p.4 Pin configuration and functions](docs/figures/tmcs1123b1aqdvgr-ds-p4.png)+![p.5 Ratings, operating conditions, thermal](docs/figures/tmcs1123b1aqdvgr-ds-p5.png)+![p.6 Insulation specifications](docs/figures/tmcs1123b1aqdvgr-ds-p6.png)+![p.8 Electrical characteristics](docs/figures/tmcs1123b1aqdvgr-ds-p8.png)+![p.9 Electrical characteristics, continued](docs/figures/tmcs1123b1aqdvgr-ds-p9.png)+![p.24 Reference voltage and measurable ranges](docs/figures/tmcs1123b1aqdvgr-ds-p24.png)+![p.40 Package option addendum](docs/figures/tmcs1123b1aqdvgr-ds-p40.png)+![p.43 Tape and reel](docs/figures/tmcs1123b1aqdvgr-ds-p43.png)+![p.45 DVG0010A package outline](docs/figures/tmcs1123b1aqdvgr-ds-p45.png)+![p.46 Example board layout](docs/figures/tmcs1123b1aqdvgr-ds-p46.png)
altium/TMCS1123B1AQDVGR.PcbLibadded
⋯ 1 unchanged line ⋯
altium/TMCS1123B1AQDVGR.SchLibadded
⋯ 1 unchanged line ⋯
altium/TMCS1123B1AQDVGR.adom-lbr.jsonadded+3729
@@ -0,0 +1,3729 @@+{+  "schema_version": 2,+  "mpn": "TMCS1123B1AQDVGR",+  "manufacturer": "Texas Instruments",+  "package": "",+  "value": "",+  "category": "",+  "symbol": {+    "name": "TMCS1123B1AQDVGR",+    "pins": [+      {+        "number": "1",+        "name": "IN+",+        "x": -800,+        "y": 650,+        "length": 100,+        "rotation": 0,+        "electrical_type": "passive"+      },+      {+        "number": "2",+        "name": "IN-",+        "x": -800,+        "y": 550,+        "length": 100,+        "rotation": 0,+        "electrical_type": "passive"+      },+      {+        "number": "8",+        "name": "VS",+        "x": 800,+        "y": 650,+        "length": 100,+        "rotation": 180,+        "electrical_type": "power_in"+      },+      {+        "number": "3",+        "name": "GND",+        "x": 800,+        "y": 550,+        "length": 100,+        "rotation": 180,+        "electrical_type": "power_in"+      },+      {+        "number": "6",+        "name": "VOUT",+        "x": 800,+        "y": 250,+        "length": 100,+        "rotation": 180,+        "electrical_type": "output"+      },+      {+        "number": "5",+        "name": "VREF",+        "x": 800,+        "y": 150,+        "length": 100,+        "rotation": 180,+        "electrical_type": "output"+      },+      {+        "number": "9",+        "name": "VOC",+        "x": 800,+        "y": -150,+        "length": 100,+        "rotation": 180,+        "electrical_type": "input"+      },+      {+        "number": "7",+        "name": "OC",+        "x": 800,+        "y": -250,+        "length": 100,+        "rotation": 180,+        "electrical_type": "open_collector"+      },+      {+        "number": "4",+        "name": "ALERT",+        "x": 800,+        "y": -350,+        "length": 100,+        "rotation": 180,+        "electrical_type": "open_collector"+      },+      {+        "number": "10",+        "name": "NC",+        "x": 800,+        "y": -750,+        "length": 100,+        "rotation": 180,+        "electrical_type": "no_connect"+      }+    ],+    "body": null,+    "graphics": [+      {+        "kind": "rect",+        "x1": -700.0000000000001,+        "y1": 850.0,+        "x2": 700.0000000000001,+        "y2": -850.0,+        "width": 10.0,+        "filled": true,+        "fill_style": "background"+      },+      {+        "kind": "polyline",+        "points": [+          [+            2.598425196850394,+            -68.26771653543301+          ],+          [+            108.38582677165356,+            -7.165354330708624+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            108.38582677165356,+            -7.165354330708624+          ],+          [+            108.66141732283464,+            -5.787401574803198+          ],+          [+            108.8976377952756,+            -4.448818897637807+          ],+          [+            109.1732283464567,+            -3.0708661417322674+          ],+          [+            109.44881889763779,+            -1.6929133858268415+          ],+          [+            109.68503937007874,+            -0.3149606299213019+          ],+          [+            109.96062992125985,+            1.0629921259842376+          ],+          [+            110.23622047244095,+            2.401574803149515+          ],+          [+            110.51181102362204,+            3.7795275590550546+          ],+          [+            110.748031496063,+            5.157480314960594+          ],+          [+            111.02362204724409,+            6.535433070866134+          ],+          [+            111.2992125984252,+            7.9133858267715596+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            2.598425196850394,+            -54.881889763779554+          ],+          [+            111.2992125984252,+            7.9133858267715596+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            2.598425196850394,+            -68.26771653543301+          ],+          [+            2.598425196850394,+            -67.04724409448818+          ],+          [+            2.598425196850394,+            -65.82677165354335+          ],+          [+            2.598425196850394,+            -64.6062992125984+          ],+          [+            2.598425196850394,+            -63.38582677165357+          ],+          [+            2.598425196850394,+            -62.16535433070874+          ],+          [+            2.598425196850394,+            -60.94488188976379+          ],+          [+            2.598425196850394,+            -59.72440944881896+          ],+          [+            2.598425196850394,+            -58.50393700787413+          ],+          [+            2.598425196850394,+            -57.28346456692918+          ],+          [+            2.598425196850394,+            -56.1023622047245+          ],+          [+            2.598425196850394,+            -54.881889763779554+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -85.07874015748033,+            -17.67716535433067+          ],+          [+            -75.98425196850394,+            -22.913385826771787+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -11.417322834645669,+            -60.157480314960594+          ],+          [+            2.598425196850394,+            -68.26771653543301+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            111.2992125984252,+            7.9133858267715596+          ],+          [+            111.10236220472441,+            9.015748031495946+          ],+          [+            110.90551181102363,+            10.118110236220446+          ],+          [+            110.70866141732283,+            11.220472440944832+          ],+          [+            110.51181102362204,+            12.322834645669332+          ],+          [+            110.27559055118111,+            13.425196850393718+          ],+          [+            110.11811023622049,+            14.52755905511799+          ],+          [+            109.92125984251969,+            15.62992125984249+          ],+          [+            109.68503937007874,+            16.732283464566876+          ],+          [+            109.48818897637797,+            17.834645669291262+          ],+          [+            109.29133858267716,+            18.937007874015762+          ],+          [+            109.13385826771653,+            20.03937007874015+          ],+          [+            108.8976377952756,+            21.14173228346442+          ],+          [+            108.70078740157481,+            22.24409448818892+          ],+          [+            108.50393700787401,+            23.346456692913307+          ],+          [+            108.30708661417323,+            24.448818897637807+          ],+          [+            108.11023622047244,+            25.551181102362193+          ],+          [+            107.91338582677166,+            26.65354330708658+          ],+          [+            107.71653543307087,+            27.75590551181108+          ],+          [+            107.51968503937007,+            28.85826771653535+          ],+          [+            107.32283464566929,+            29.960629921259738+          ],+          [+            107.12598425196852,+            31.062992125984238+          ],+          [+            106.92913385826773,+            32.165354330708624+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            2.598425196850394,+            -28.110236220472416+          ],+          [+            106.92913385826773,+            32.165354330708624+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            2.598425196850394,+            -54.881889763779554+          ],+          [+            2.598425196850394,+            -53.66141732283472+          ],+          [+            2.598425196850394,+            -52.44094488188989+          ],+          [+            2.598425196850394,+            -51.22047244094483+          ],+          [+            2.598425196850394,+            -50.0+          ],+          [+            2.598425196850394,+            -48.77952755905517+          ],+          [+            2.598425196850394,+            -47.55905511811022+          ],+          [+            2.598425196850394,+            -46.33858267716539+          ],+          [+            2.598425196850394,+            -45.11811023622056+          ],+          [+            2.598425196850394,+            -43.897637795275614+          ],+          [+            2.598425196850394,+            -42.67716535433078+          ],+          [+            2.598425196850394,+            -41.45669291338595+          ],+          [+            2.598425196850394,+            -40.27559055118115+          ],+          [+            2.598425196850394,+            -39.05511811023632+          ],+          [+            2.598425196850394,+            -37.834645669291376+          ],+          [+            2.598425196850394,+            -36.614173228346544+          ],+          [+            2.598425196850394,+            -35.39370078740171+          ],+          [+            2.598425196850394,+            -34.17322834645665+          ],+          [+            2.598425196850394,+            -32.95275590551182+          ],+          [+            2.598425196850394,+            -31.73228346456699+          ],+          [+            2.598425196850394,+            -30.511811023622045+          ],+          [+            2.598425196850394,+            -29.291338582677213+          ],+          [+            2.598425196850394,+            -28.110236220472416+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -146.73228346456693,+            31.338582677165277+          ],+          [+            -141.45669291338584,+            28.307086614173272+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -78.30708661417323,+            -8.188976377952713+          ],+          [+            -67.83464566929135,+            -14.212598425196916+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -4.68503937007874,+            -50.66929133858275+          ],+          [+            2.598425196850394,+            -54.881889763779554+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -145.62992125984252,+            25.748031496062936+          ],+          [+            -145.90551181102362,+            27.007874015747916+          ],+          [+            -146.1417322834646,+            28.26771653543301+          ],+          [+            -146.3779527559055,+            29.566929133858252+          ],+          [+            -146.61417322834646,+            30.826771653543346+          ],+          [+            -146.73228346456693,+            31.338582677165277+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            106.92913385826773,+            32.165354330708624+          ],+          [+            -38.031496062992126,+            115.8661417322835+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -142.36220472440945,+            55.59055118110223+          ],+          [+            2.598425196850394,+            -28.110236220472416+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -38.031496062992126,+            115.8661417322835+          ],+          [+            -142.36220472440945,+            55.59055118110223+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -106.85039370078741,+            59.370078740157396+          ],+          [+            -105.82677165354332,+            58.62204724409446+          ],+          [+            -105.0,+            57.795275590551114+          ],+          [+            -104.37007874015748,+            56.732283464566876+          ],+          [+            -104.1732283464567,+            55.59055118110223+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -104.1732283464567,+            55.59055118110223+          ],+          [+            -104.5275590551181,+            54.09448818897647+          ],+          [+            -105.62992125984252,+            52.71653543307093+          ],+          [+            -107.32283464566929,+            51.57480314960628+          ],+          [+            -108.38582677165356,+            51.102362204724386+          ],+          [+            -109.56692913385827,+            50.74803149606305+          ],+          [+            -110.78740157480316,+            50.47244094488178+          ],+          [+            -112.08661417322836,+            50.3149606299213+          ],+          [+            -113.38582677165354,+            50.27559055118104+          ],+          [+            -114.68503937007874,+            50.3149606299213+          ],+          [+            -115.98425196850395,+            50.47244094488178+          ],+          [+            -117.20472440944881,+            50.74803149606305+          ],+          [+            -118.38582677165356,+            51.102362204724386+          ],+          [+            -119.40944881889764,+            51.57480314960628+          ],+          [+            -121.14173228346456,+            52.71653543307093+          ],+          [+            -122.24409448818898,+            54.09448818897647+          ],+          [+            -122.5984251968504,+            55.59055118110223+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -122.5984251968504,+            55.59055118110223+          ],+          [+            -122.40157480314961,+            56.732283464566876+          ],+          [+            -121.7716535433071,+            57.795275590551114+          ],+          [+            -120.748031496063,+            58.77952755905517+          ],+          [+            -119.40944881889764,+            59.60629921259829+          ],+          [+            -117.79527559055119,+            60.27559055118115+          ],+          [+            -115.98425196850395,+            60.70866141732279+          ],+          [+            -114.05511811023622,+            60.90551181102364+          ],+          [+            -112.08661417322836,+            60.86614173228338+          ],+          [+            -110.15748031496064,+            60.59055118110234+          ],+          [+            -108.38582677165356,+            60.0787401574803+          ],+          [+            -106.85039370078741,+            59.370078740157396+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -146.73228346456693,+            31.338582677165277+          ],+          [+            -146.53543307086613,+            32.44094488188978+          ],+          [+            -146.33858267716536,+            33.54330708661416+          ],+          [+            -146.1417322834646,+            34.645669291338436+          ],+          [+            -145.9448818897638,+            35.748031496062936+          ],+          [+            -145.70866141732284,+            36.85039370078732+          ],+          [+            -145.55118110236222,+            37.95275590551182+          ],+          [+            -145.35433070866142,+            39.05511811023621+          ],+          [+            -145.11811023622047,+            40.157480314960594+          ],+          [+            -144.9212598425197,+            41.259842519685094+          ],+          [+            -144.7244094488189,+            42.36220472440937+          ],+          [+            -144.56692913385828,+            43.46456692913375+          ],+          [+            -144.33070866141733,+            44.56692913385825+          ],+          [+            -144.13385826771653,+            45.66929133858264+          ],+          [+            -143.93700787401576,+            46.77165354330714+          ],+          [+            -143.74015748031496,+            47.874015748031525+          ],+          [+            -143.54330708661416,+            48.9763779527558+          ],+          [+            -143.3464566929134,+            50.0787401574803+          ],+          [+            -143.14960629921262,+            51.18110236220468+          ],+          [+            -142.95275590551182,+            52.28346456692907+          ],+          [+            -142.75590551181102,+            53.38582677165357+          ],+          [+            -142.55905511811025,+            54.488188976377955+          ],+          [+            -142.36220472440945,+            55.59055118110223+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -106.85039370078741,+            58.54330708661416+          ],+          [+            -108.34645669291338,+            59.2125984251968+          ],+          [+            -110.03937007874016,+            59.72440944881885+          ],+          [+            -111.85039370078741,+            60.0+          ],+          [+            -113.77952755905513,+            60.0787401574803+          ],+          [+            -115.6692913385827,+            59.9212598425197+          ],+          [+            -117.44094488188978,+            59.527559055118104+          ],+          [+            -119.05511811023622,+            58.97637795275591+          ],+          [+            -120.43307086614175,+            58.18897637795271+          ],+          [+            -121.49606299212599,+            57.28346456692918+          ],+          [+            -122.24409448818898,+            56.259842519685094+          ],+          [+            -122.55905511811024,+            55.157480314960594+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -104.1732283464567,+            55.157480314960594+          ],+          [+            -104.56692913385828,+            56.33858267716539+          ],+          [+            -105.27559055118111,+            57.28346456692918+          ],+          [+            -106.25984251968504,+            58.149606299212564+          ],+          [+            -106.85039370078741,+            58.54330708661416+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -78.11023622047244,+            -5.748031496063049+          ],+          [+            -83.38582677165354,+            -8.818897637795317+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -78.11023622047244,+            -5.748031496063049+          ],+          [+            -80.86614173228347,+            -4.133858267716619+          ],+          [+            -83.66141732283465,+            -2.559055118110223+          ],+          [+            -86.45669291338584,+            -0.9448818897639057+          ],+          [+            -89.21259842519686,+            0.6692913385826387+          ],+          [+            -92.00787401574804,+            2.2834645669290694+          ],+          [+            -94.76377952755907,+            3.8976377952755+          ],+          [+            -97.55905511811025,+            5.472440944881782+          ],+          [+            -100.35433070866142,+            7.086614173228327+          ],+          [+            -103.11023622047246,+            8.700787401574757+          ],+          [+            -105.90551181102363,+            10.314960629921188+          ],+          [+            -108.70078740157481,+            11.88976377952747+          ],+          [+            -111.45669291338584,+            13.503937007873901+          ],+          [+            -114.25196850393702,+            15.118110236220446+          ],+          [+            -117.00787401574803,+            16.732283464566876+          ],+          [+            -119.80314960629923,+            18.34645669291342+          ],+          [+            -122.5984251968504,+            19.92125984251959+          ],+          [+            -125.35433070866142,+            21.535433070866134+          ],+          [+            -128.1496062992126,+            23.149606299212564+          ],+          [+            -130.90551181102364,+            24.763779527558995+          ],+          [+            -133.70078740157481,+            26.338582677165277+          ],+          [+            -136.49606299212599,+            27.95275590551182+          ],+          [+            -139.251968503937,+            29.566929133858252+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -139.251968503937,+            29.566929133858252+          ],+          [+            -144.56692913385828,+            26.496062992125985+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -78.0708661417323,+            -10.35433070866145+          ],+          [+            -83.38582677165354,+            -13.425196850393718+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -78.0708661417323,+            -10.35433070866145+          ],+          [+            -78.18897637795276,+            -9.251968503937064+          ],+          [+            -78.30708661417323,+            -8.188976377952713+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -78.30708661417323,+            -8.188976377952713+          ],+          [+            -78.22834645669292,+            -7.0866141732284404+          ],+          [+            -78.11023622047244,+            -5.984251968504054+          ],+          [+            -78.11023622047244,+            -5.748031496063049+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -83.38582677165354,+            -8.818897637795317+          ],+          [+            -84.44881889763779,+            -9.527559055118218+          ],+          [+            -85.47244094488188,+            -10.472440944881896+          ],+          [+            -86.41732283464566,+            -11.574803149606396+          ],+          [+            -87.24409448818899,+            -12.834645669291376+          ],+          [+            -87.91338582677166,+            -14.173228346456767+          ],+          [+            -88.4251968503937,+            -15.551181102362193+          ],+          [+            -88.74015748031496,+            -16.889763779527584+          ],+          [+            -88.77952755905511,+            -17.322834645669218+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -88.77952755905511,+            -17.322834645669218+          ],+          [+            -89.92125984251967,+            -27.244094488189035+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -89.92125984251967,+            -27.244094488189035+          ],+          [+            -90.27559055118111,+            -28.30708661417316+          ],+          [+            -90.98425196850394,+            -29.251968503937064+          ],+          [+            -91.33858267716535,+            -29.527559055118218+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -91.33858267716535,+            -29.527559055118218+          ],+          [+            -98.58267716535434,+            -33.70078740157476+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -98.58267716535434,+            -38.30708661417327+          ],+          [+            -98.58267716535434,+            -33.70078740157476+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -91.33858267716535,+            -34.13385826771662+          ],+          [+            -98.58267716535434,+            -38.30708661417327+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -85.98425196850394,+            -25.59055118110234+          ],+          [+            -86.22047244094489,+            -26.929133858267846+          ],+          [+            -86.65354330708662,+            -28.30708661417316+          ],+          [+            -87.28346456692914,+            -29.645669291338663+          ],+          [+            -88.0708661417323,+            -30.944881889763792+          ],+          [+            -88.9763779527559,+            -32.08661417322833+          ],+          [+            -89.96062992125985,+            -33.110236220472416+          ],+          [+            -90.98425196850394,+            -33.89763779527573+          ],+          [+            -91.33858267716535,+            -34.13385826771662+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -84.84251968503936,+            -15.669291338582752+          ],+          [+            -85.98425196850394,+            -25.59055118110234+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -83.38582677165354,+            -13.425196850393718+          ],+          [+            -84.21259842519684,+            -14.173228346456767+          ],+          [+            -84.7244094488189,+            -15.196850393700856+          ],+          [+            -84.84251968503936,+            -15.669291338582752+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -144.56692913385828,+            26.496062992125985+          ],+          [+            -145.62992125984252,+            25.787401574803084+          ],+          [+            -146.65354330708664,+            24.842519685039292+          ],+          [+            -147.5984251968504,+            23.74015748031502+          ],+          [+            -148.38582677165354,+            22.480314960629926+          ],+          [+            -149.09448818897638,+            21.14173228346442+          ],+          [+            -149.56692913385828,+            19.76377952755911+          ],+          [+            -149.88188976377953,+            18.425196850393604+          ],+          [+            -149.96062992125985,+            17.99212598425197+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -159.76377952755905,+            1.6141732283464307+          ],+          [+            -159.76377952755905,+            -2.992125984252084+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -152.5196850393701,+            5.787401574803198+          ],+          [+            -159.76377952755905,+            1.6141732283464307+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -151.10236220472441,+            8.070866141732267+          ],+          [+            -151.4173228346457,+            7.00787401574803+          ],+          [+            -152.1259842519685,+            6.062992125984238+          ],+          [+            -152.5196850393701,+            5.787401574803198+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -149.96062992125985,+            17.99212598425197+          ],+          [+            -151.10236220472441,+            8.070866141732267+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -159.76377952755905,+            -2.992125984252084+          ],+          [+            -98.58267716535434,+            -38.30708661417327+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -98.58267716535434,+            -33.70078740157476+          ],+          [+            -159.76377952755905,+            1.6141732283464307+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -4.448818897637795,+            -48.267716535433124+          ],+          [+            -9.763779527559056,+            -51.33858267716539+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -4.448818897637795,+            -48.267716535433124+          ],+          [+            -7.244094488188977,+            -46.65354330708658+          ],+          [+            -10.039370078740157,+            -45.03937007874015+          ],+          [+            -12.795275590551181,+            -43.464566929133866+          ],+          [+            -15.590551181102363,+            -41.850393700787436+          ],+          [+            -18.385826771653544,+            -40.23622047244089+          ],+          [+            -21.14173228346457,+            -38.62204724409446+          ],+          [+            -23.937007874015748,+            -37.00787401574803+          ],+          [+            -26.692913385826774,+            -35.43307086614175+          ],+          [+            -29.488188976377955,+            -33.81889763779532+          ],+          [+            -32.28346456692913,+            -32.20472440944877+          ],+          [+            -35.03937007874016,+            -30.590551181102455+          ],+          [+            -37.83464566929134,+            -29.01574803149606+          ],+          [+            -40.629921259842526,+            -27.40157480314963+          ],+          [+            -43.38582677165355,+            -25.787401574803084+          ],+          [+            -46.181102362204726,+            -24.173228346456767+          ],+          [+            -48.937007874015755,+            -22.559055118110336+          ],+          [+            -51.73228346456693,+            -20.98425196850394+          ],+          [+            -54.52755905511811,+            -19.370078740157624+          ],+          [+            -57.28346456692914,+            -17.75590551181108+          ],+          [+            -60.07874015748032,+            -16.14173228346465+          ],+          [+            -62.83464566929135,+            -14.566929133858366+          ],+          [+            -65.62992125984252,+            -12.952755905511935+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -65.62992125984252,+            -12.952755905511935+          ],+          [+            -70.94488188976378,+            -16.023622047244203+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -4.448818897637795,+            -52.874015748031525+          ],+          [+            -9.763779527559056,+            -55.94488188976379+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -4.448818897637795,+            -52.874015748031525+          ],+          [+            -4.5669291338582685,+            -51.771653543307025+          ],+          [+            -4.68503937007874,+            -50.66929133858275+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -4.68503937007874,+            -50.66929133858275+          ],+          [+            -4.5669291338582685,+            -49.527559055118104+          ],+          [+            -4.488188976377953,+            -48.38582677165357+          ],+          [+            -4.448818897637795,+            -48.267716535433124+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -9.763779527559056,+            -51.33858267716539+          ],+          [+            -10.82677165354331,+            -52.04724409448818+          ],+          [+            -11.850393700787402,+            -52.992125984252084+          ],+          [+            -12.795275590551181,+            -54.09448818897636+          ],+          [+            -13.58267716535433,+            -55.35433070866145+          ],+          [+            -14.291338582677165,+            -56.69291338582673+          ],+          [+            -14.763779527559056,+            -58.07086614173227+          ],+          [+            -15.078740157480317,+            -59.40944881889766+          ],+          [+            -15.157480314960631,+            -59.842519685039406+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -15.157480314960631,+            -59.842519685039406+          ],+          [+            -16.299212598425196,+            -69.76377952755911+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -16.299212598425196,+            -69.76377952755911+          ],+          [+            -16.614173228346456,+            -70.82677165354335+          ],+          [+            -17.322834645669293,+            -71.73228346456699+          ],+          [+            -17.716535433070867,+            -72.00787401574814+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -17.716535433070867,+            -72.00787401574814+          ],+          [+            -24.960629921259844,+            -76.22047244094495+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -24.960629921259844,+            -80.82677165354335+          ],+          [+            -24.960629921259844,+            -76.22047244094495+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -17.716535433070867,+            -76.61417322834643+          ],+          [+            -24.960629921259844,+            -80.82677165354335+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -12.322834645669293,+            -68.11023622047253+          ],+          [+            -12.559055118110237,+            -69.4488188976378+          ],+          [+            -13.031496062992128,+            -70.82677165354335+          ],+          [+            -13.661417322834644,+            -72.16535433070862+          ],+          [+            -14.409448818897639,+            -73.46456692913387+          ],+          [+            -15.314960629921261,+            -74.60629921259851+          ],+          [+            -16.299212598425196,+            -75.59055118110234+          ],+          [+            -17.362204724409448,+            -76.41732283464569+          ],+          [+            -17.716535433070867,+            -76.61417322834643+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -11.220472440944881,+            -58.18897637795271+          ],+          [+            -12.322834645669293,+            -68.11023622047253+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -9.763779527559056,+            -55.94488188976379+          ],+          [+            -10.62992125984252,+            -56.77165354330714+          ],+          [+            -11.141732283464567,+            -57.83464566929126+          ],+          [+            -11.220472440944881,+            -58.18897637795271+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -70.94488188976378,+            -16.023622047244203+          ],+          [+            -72.00787401574803,+            -16.73228346456699+          ],+          [+            -72.99212598425197,+            -17.67716535433067+          ],+          [+            -73.93700787401575,+            -18.77952755905517+          ],+          [+            -74.76377952755905,+            -20.039370078740262+          ],+          [+            -75.43307086614173,+            -21.37795275590554+          ],+          [+            -75.94488188976378,+            -22.716535433070817+          ],+          [+            -76.25984251968505,+            -24.094488188976356+          ],+          [+            -76.33858267716536,+            -24.527559055118104+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -86.14173228346458,+            -40.90551181102364+          ],+          [+            -86.14173228346458,+            -45.472440944881896+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -78.8976377952756,+            -36.73228346456699+          ],+          [+            -86.14173228346458,+            -40.90551181102364+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -77.44094488188978,+            -34.44881889763781+          ],+          [+            -77.79527559055119,+            -35.51181102362216+          ],+          [+            -78.50393700787401,+            -36.4173228346458+          ],+          [+            -78.8976377952756,+            -36.73228346456699+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -76.33858267716536,+            -24.527559055118104+          ],+          [+            -77.44094488188978,+            -34.44881889763781+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -86.14173228346458,+            -45.472440944881896+          ],+          [+            -24.960629921259844,+            -80.82677165354335+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -24.960629921259844,+            -76.22047244094495+          ],+          [+            -86.14173228346458,+            -40.90551181102364+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            110.4724409448819,+            12.480314960629926+          ],+          [+            110.55118110236221,+            12.125984251968475+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            110.55118110236221,+            12.125984251968475+          ],+          [+            110.70866141732283,+            11.220472440944832+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            111.18110236220473,+            7.401574803149629+          ],+          [+            111.69291338582678,+            3.503937007874015+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            111.69291338582678,+            3.503937007874015+          ],+          [+            111.96850393700787,+            2.401574803149515+          ],+          [+            112.51968503937009,+            1.417322834645688+          ],+          [+            113.22834645669292,+            0.8267716535432328+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            113.22834645669292,+            0.8267716535432328+          ],+          [+            114.29133858267717,+            0.47244094488189603+          ],+          [+            115.55118110236221,+            0.5905511811023416+          ],+          [+            116.69291338582677,+            0.9842519685039406+          ],+          [+            117.08661417322836,+            1.2204724409449454+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            117.08661417322836,+            1.2204724409449454+          ],+          [+            124.33070866141732,+            5.393700787401485+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            124.33070866141732,+            10.0+          ],+          [+            124.33070866141732,+            5.393700787401485+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            117.08661417322836,+            5.787401574803198+          ],+          [+            124.33070866141732,+            10.0+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            115.6692913385827,+            6.417322834645574+          ],+          [+            116.06299212598425,+            5.708661417322787+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            116.06299212598425,+            5.708661417322787+          ],+          [+            117.08661417322836,+            5.787401574803198+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            114.5275590551181,+            15.039370078740149+          ],+          [+            115.6692913385827,+            6.417322834645574+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            109.56692913385827,+            17.559055118110223+          ],+          [+            110.59055118110237,+            17.913385826771673+          ],+          [+            111.73228346456693,+            18.070866141732267+          ],+          [+            112.8740157480315,+            17.755905511810965+          ],+          [+            112.99212598425197,+            17.716535433070817+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            112.99212598425197,+            17.716535433070817+          ],+          [+            113.85826771653544,+            16.889763779527584+          ],+          [+            114.37007874015748,+            15.826771653543233+          ],+          [+            114.5275590551181,+            15.039370078740149+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            115.0,+            11.456692913385837+          ],+          [+            118.38582677165356,+            13.425196850393718+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            118.38582677165356,+            13.425196850393718+          ],+          [+            124.33070866141732,+            10.0+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            109.13385826771653,+            19.92125984251959+          ],+          [+            112.99212598425197,+            17.716535433070817+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            113.22834645669292,+            0.8267716535432328+          ],+          [+            110.27559055118111,+            2.5196850393700743+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -83.38582677165354,+            -8.818897637795317+          ],+          [+            -144.56692913385828,+            26.496062992125985+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -88.77952755905511,+            -17.322834645669218+          ],+          [+            -149.96062992125985,+            17.99212598425197+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -91.33858267716535,+            -29.527559055118218+          ],+          [+            -152.5196850393701,+            5.787401574803198+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -89.92125984251967,+            -27.244094488189035+          ],+          [+            -151.10236220472441,+            8.070866141732267+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -9.763779527559056,+            -51.33858267716539+          ],+          [+            -70.94488188976378,+            -16.023622047244203+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -15.157480314960631,+            -59.842519685039406+          ],+          [+            -76.33858267716536,+            -24.527559055118104+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -17.716535433070867,+            -72.00787401574814+          ],+          [+            -78.8976377952756,+            -36.73228346456699+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -16.299212598425196,+            -69.76377952755911+          ],+          [+            -77.44094488188978,+            -34.44881889763781+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            110.55118110236221,+            12.125984251968475+          ],+          [+            110.51181102362204,+            12.125984251968475+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            115.62992125984252,+            6.653543307086579+          ],+          [+            117.08661417322836,+            5.787401574803198+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            111.69291338582678,+            3.503937007874015+          ],+          [+            110.55118110236221,+            4.133858267716505+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -31.968503937007878,+            68.38582677165357+          ],+          [+            -43.267716535433074,+            61.850393700787436+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -35.70866141732284,+            70.5511811023622+          ],+          [+            -28.188976377952756,+            66.18110236220468+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -25.511811023622048,+            64.64566929133855+          ],+          [+            -36.811023622047244,+            58.1102362204723+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -25.511811023622048,+            64.64566929133855+          ],+          [+            -32.51968503937008,+            55.66929133858264+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -16.92913385826772,+            59.6850393700787+          ],+          [+            -32.51968503937008,+            55.66929133858264+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -16.92913385826772,+            59.6850393700787+          ],+          [+            -28.188976377952756,+            53.149606299212564+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -7.7952755905511815,+            51.29921259842513+          ],+          [+            -7.244094488188977,+            53.464566929133866+          ],+          [+            -9.921259842519685,+            55.66929133858264+          ],+          [+            -11.53543307086614,+            55.94488188976368+          ],+          [+            -13.700787401574802,+            55.94488188976368+          ],+          [+            -15.314960629921261,+            55.66929133858264+          ],+          [+            -17.480314960629922,+            55.039370078740035+          ],+          [+            -20.15748031496063,+            53.464566929133866+          ],+          [+            -21.220472440944885,+            52.244094488189035+          ],+          [+            -21.77165354330709,+            50.03937007874015+          ],+          [+            -19.055118110236222,+            47.874015748031525+          ],+          [+            -17.480314960629922,+            47.59842519685037+          ],+          [+            -15.314960629921261,+            47.59842519685037+          ],+          [+            -13.700787401574802,+            47.874015748031525+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            4.015748031496063,+            45.70866141732279+          ],+          [+            4.015748031496063,+            46.96850393700788+          ],+          [+            2.952755905511811,+            48.18897637795271+          ],+          [+            0.7874015748031497,+            49.44881889763769+          ],+          [+            -1.3385826771653544,+            50.03937007874015+          ],+          [+            -3.5039370078740157,+            50.03937007874015+          ],+          [+            -4.5669291338582685,+            49.44881889763769+          ],+          [+            -5.118110236220473,+            47.874015748031525+          ],+          [+            -2.4015748031496065,+            44.48818897637784+          ],+          [+            -1.8897637795275593,+            42.91338582677156+          ],+          [+            -4.015748031496063,+            41.062992125984124+          ],+          [+            -6.181102362204725,+            41.062992125984124+          ],+          [+            -8.346456692913385,+            41.69291338582673+          ],+          [+            -10.47244094488189,+            42.91338582677156+          ],+          [+            -11.53543307086614,+            44.17322834645665+          ],+          [+            -11.53543307086614,+            45.3937007874016+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            8.346456692913385,+            42.63779527559052+          ],+          [+            9.921259842519685,+            42.32283464566922+          ],+          [+            13.1496062992126,+            42.32283464566922+          ],+          [+            1.8897637795275593,+            35.7874015748032+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            19.094488188976378,+            36.41732283464569+          ],+          [+            20.708661417322837,+            36.102362204724386+          ],+          [+            23.937007874015748,+            36.102362204724386+          ],+          [+            12.637795275590552,+            29.606299212598515+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            28.188976377952756,+            30.511811023622045+          ],+          [+            30.35433070866142,+            31.141732283464535+          ],+          [+            33.031496062992126,+            30.826771653543346+          ],+          [+            35.19685039370079,+            29.606299212598515+          ],+          [+            35.74803149606299,+            28.031496062992005+          ],+          [+            34.13385826771653,+            26.496062992125985+          ],+          [+            32.51968503937008,+            26.181102362204683+          ],+          [+            29.84251968503937,+            25.86614173228338+          ],+          [+            19.094488188976378,+            25.86614173228338+          ],+          [+            26.61417322834646,+            21.535433070866134+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            42.20472440944882,+            25.551181102362193+          ],+          [+            48.110236220472444,+            22.165354330708738+          ],+          [+            40.55118110236221,+            21.535433070866134+          ],+          [+            42.20472440944882,+            20.59055118110234+          ],+          [+            42.71653543307087,+            19.055118110236208+          ],+          [+            41.653543307086615,+            17.795275590551228+          ],+          [+            40.55118110236221,+            17.165354330708624+          ],+          [+            38.425196850393704,+            16.57480314960617+          ],+          [+            36.259842519685044,+            16.57480314960617+          ],+          [+            34.13385826771653,+            17.165354330708624+          ],+          [+            32.51968503937008,+            18.110236220472416+          ],+          [+            31.417322834645674,+            19.37007874015751+          ],+          [+            31.968503937007878,+            20.905511811023644+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -51.2992125984252,+            60.0+          ],+          [+            -62.5984251968504,+            53.464566929133866+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -51.2992125984252,+            60.0+          ],+          [+            -46.45669291338583,+            57.20472440944877+          ],+          [+            -45.39370078740158,+            55.94488188976368+          ],+          [+            -45.944881889763785,+            54.40944881889766+          ],+          [+            -47.00787401574803,+            53.779527559055055+          ],+          [+            -48.622047244094496,+            53.464566929133866+          ],+          [+            -51.8503937007874,+            54.09448818897647+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -56.69291338582677,+            56.88976377952747+          ],+          [+            -51.8503937007874,+            54.09448818897647+          ],+          [+            -50.787401574803155,+            52.834645669291376+          ],+          [+            -51.2992125984252,+            51.29921259842513+          ],+          [+            -52.91338582677166,+            50.3937007874016+          ],+          [+            -54.52755905511811,+            50.03937007874015+          ],+          [+            -55.629921259842526,+            50.03937007874015+          ],+          [+            -57.75590551181103,+            50.70866141732279+          ],+          [+            -62.5984251968504,+            53.464566929133866+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -41.102362204724415,+            51.61417322834643+          ],+          [+            -39.48818897637795,+            51.29921259842513+          ],+          [+            -36.259842519685044,+            51.29921259842513+          ],+          [+            -47.55905511811024,+            44.80314960629926+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -26.61417322834646,+            45.70866141732279+          ],+          [+            -42.16535433070866,+            41.69291338582673+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -26.61417322834646,+            45.70866141732279+          ],+          [+            -33.58267716535433,+            36.732283464566876+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -36.811023622047244,+            42.91338582677156+          ],+          [+            -31.417322834645674,+            39.84251968503929+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -16.92913385826772,+            40.118110236220446+          ],+          [+            -18.543307086614174,+            40.43307086614175+          ],+          [+            -20.669291338582678,+            40.43307086614175+          ],+          [+            -22.283464566929133,+            40.118110236220446+          ],+          [+            -24.448818897637796,+            39.527559055118104+          ],+          [+            -27.125984251968504,+            37.95275590551182+          ],+          [+            -28.188976377952756,+            36.732283464566876+          ],+          [+            -28.740157480314963,+            34.56692913385825+          ],+          [+            -26.062992125984255,+            32.36220472440937+          ],+          [+            -24.448818897637796,+            32.08661417322833+          ],+          [+            -22.283464566929133,+            32.08661417322833+          ],+          [+            -20.669291338582678,+            32.36220472440937+          ],+          [+            -18.543307086614174,+            32.99212598425197+          ],+          [+            -15.866141732283467,+            34.56692913385825+          ],+          [+            -14.763779527559056,+            35.7874015748032+          ],+          [+            -14.21259842519685,+            37.95275590551182+          ],+          [+            -16.92913385826772,+            40.118110236220446+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -24.448818897637796,+            33.93700787401576+          ],+          [+            -24.448818897637796,+            30.196850393700743+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -7.7952755905511815,+            34.88188976377944+          ],+          [+            -19.055118110236222,+            28.34645669291342+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            -7.7952755905511815,+            34.88188976377944+          ],+          [+            -4.015748031496063,+            32.67716535433067+          ],+          [+            -2.952755905511811,+            31.456692913385723+          ],+          [+            -2.952755905511811,+            30.196850393700743+          ],+          [+            -4.5669291338582685,+            28.031496062992005+          ],+          [+            -7.244094488188977,+            26.496062992125985+          ],+          [+            -9.409448818897637,+            25.86614173228338+          ],+          [+            -11.023622047244096,+            25.551181102362193+          ],+          [+            -13.1496062992126,+            25.551181102362193+          ],+          [+            -15.314960629921261,+            26.181102362204683+          ],+          [+            -19.055118110236222,+            28.34645669291342+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            1.8897637795275593,+            29.2913385826771+          ],+          [+            -5.118110236220473,+            20.27559055118104+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            10.47244094488189,+            24.33070866141736+          ],+          [+            -5.118110236220473,+            20.27559055118104+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            17.99212598425197,+            16.889763779527584+          ],+          [+            18.543307086614174,+            19.055118110236208+          ],+          [+            15.866141732283467,+            21.22047244094483+          ],+          [+            14.251968503937007,+            21.535433070866134+          ],+          [+            12.086614173228346,+            21.535433070866134+          ],+          [+            10.47244094488189,+            21.22047244094483+          ],+          [+            8.346456692913385,+            20.59055118110234+          ],+          [+            5.6299212598425195,+            19.055118110236208+          ],+          [+            4.5669291338582685,+            17.795275590551228+          ],+          [+            4.015748031496063,+            15.62992125984249+          ],+          [+            6.73228346456693,+            13.464566929133866+          ],+          [+            8.346456692913385,+            13.149606299212564+          ],+          [+            10.47244094488189,+            13.149606299212564+          ],+          [+            12.086614173228346,+            13.464566929133866+          ],+          [+            13.700787401574802,+            14.409448818897545+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            11.023622047244096,+            15.944881889763792+          ],+          [+            13.700787401574802,+            14.409448818897545+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            24.448818897637796,+            16.25984251968498+          ],+          [+            13.1496062992126,+            9.724409448818847+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            24.448818897637796,+            16.25984251968498+          ],+          [+            29.291338582677167,+            13.464566929133866+          ],+          [+            30.35433070866142,+            12.204724409448886+          ],+          [+            29.84251968503937,+            10.669291338582639+          ],+          [+            28.740157480314963,+            10.039370078740035+          ],+          [+            27.125984251968504,+            9.724409448818847+          ],+          [+            23.937007874015748,+            10.35433070866145+          ],+          [+            19.094488188976378,+            13.149606299212564+          ]+        ],+        "width": 0.9842519685039371+      },+      {+        "kind": "polyline",+        "points": [+          [+            22.834645669291337,+            10.984251968503827+          ],+          [+            20.708661417322837,+            5.393700787401485+          ]+        ],+        "width": 0.9842519685039371+      }+    ],+    "designator_prefix": "U",+    "footprint": "tmcs1123b1aqdvgr",+    "parameters": [+      {+        "name": "Value",+        "value": "TMCS1123B1AQDVGR",+        "visible": true+      },+      {+        "name": "Datasheet",+        "value": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+        "visible": false+      },+      {+        "name": "Description",+        "value": "Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function.",+        "visible": false+      },+      {+        "name": "Manufacturer",+        "value": "Texas Instruments",+        "visible": false+      },+      {+        "name": "MPN",+        "value": "TMCS1123B1AQDVGR",+        "visible": false+      },+      {+        "name": "Adom Wiki",+        "value": "https://wiki.adom.inc/adom/tmcs1123b1aqdvgr",+        "visible": false+      },+      {+        "name": "DigiKey",+        "value": "296-TMCS1123B1AQDVGRTR-ND",+        "visible": false+      },+      {+        "name": "Mouser",+        "value": "595-TMCS1123B1AQDVGR",+        "visible": false+      },+      {+        "name": "Adom_Chip_Outline",+        "value": "asset:TMCS1123B1AQDVGR-3d-outline-dark-named.svg@large",+        "visible": false+      },+      {+        "name": "Supplier 1",+        "value": "Mouser",+        "visible": false+      },+      {+        "name": "Supplier Part Number 1",+        "value": "595-TMCS1123B1AQDVGR",+        "visible": false+      },+      {+        "name": "Supplier 2",+        "value": "Digi-Key",+        "visible": false+      },+      {+        "name": "Supplier Part Number 2",+        "value": "296-TMCS1123B1AQDVGRTR-ND",+        "visible": false+      },+      {+        "name": "Manufacturer Part Number",+        "value": "TMCS1123B1AQDVGR",+        "visible": false+      }+    ],+    "labels": [+      {+        "text": "Primary side",+        "x": -659.8425196850394,+        "y": 728.7401574803149,+        "angle": 0,+        "justify_right": false,+        "bold": false,+        "size_mil": 30.0+      },+      {+        "text": "Supply",+        "x": 659.8425196850394,+        "y": 728.7401574803149,+        "angle": 0,+        "justify_right": true,+        "bold": false,+        "size_mil": 30.0+      },+      {+        "text": "Analog output",+        "x": 659.8425196850394,+        "y": 328.74015748031496,+        "angle": 0,+        "justify_right": true,+        "bold": false,+        "size_mil": 30.0+      },+      {+        "text": "Overcurrent",+        "x": 659.8425196850394,+        "y": -71.2598425196851,+        "angle": 0,+        "justify_right": true,+        "bold": false,+        "size_mil": 30.0+      },+      {+        "text": "Reserved",+        "x": 659.8425196850394,+        "y": -671.2598425196852,+        "angle": 0,+        "justify_right": true,+        "bold": false,+        "size_mil": 30.0+      }+    ],+    "pin_numbers_hidden": false,+    "pin_names_hidden": false+  },+  "footprint": {+    "name": "tmcs1123b1aqdvgr",+    "pads": [+      {+        "number": "1",+        "x_mm": -4.875,+        "y_mm": -2.54,+        "w_mm": 1.65,+        "h_mm": 4.41,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "2",+        "x_mm": -4.875,+        "y_mm": 2.54,+        "w_mm": 1.65,+        "h_mm": 4.41,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "3",+        "x_mm": 4.875,+        "y_mm": 4.445,+        "w_mm": 1.65,+        "h_mm": 0.6,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "4",+        "x_mm": 4.875,+        "y_mm": 3.175,+        "w_mm": 1.65,+        "h_mm": 0.6,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "5",+        "x_mm": 4.875,+        "y_mm": 1.905,+        "w_mm": 1.65,+        "h_mm": 0.6,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "6",+        "x_mm": 4.875,+        "y_mm": 0.635,+        "w_mm": 1.65,+        "h_mm": 0.6,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "7",+        "x_mm": 4.875,+        "y_mm": -0.635,+        "w_mm": 1.65,+        "h_mm": 0.6,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "8",+        "x_mm": 4.875,+        "y_mm": -1.905,+        "w_mm": 1.65,+        "h_mm": 0.6,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "9",+        "x_mm": 4.875,+        "y_mm": -3.175,+        "w_mm": 1.65,+        "h_mm": 0.6,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      },+      {+        "number": "10",+        "x_mm": 4.875,+        "y_mm": -4.445,+        "w_mm": 1.65,+        "h_mm": 0.6,+        "drill_mm": 0.0,+        "rotation": 0.0,+        "shape": "roundrect"+      }+    ],+    "graphics": [+      {+        "kind": "line",+        "layer": {+          "role": "fab"+        },+        "x1": 0.0,+        "y1": -5.15,+        "x2": 0.0,+        "y2": 5.15,+        "width": 0.1+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": -3.87,+        "y1": -5.27,+        "x2": 3.87,+        "y2": -5.27,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": -5.27,+        "x2": 3.87,+        "y2": -4.96,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": -3.93,+        "x2": 3.87,+        "y2": -3.69,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": -2.66,+        "x2": 3.87,+        "y2": -2.42,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": -1.39,+        "x2": 3.87,+        "y2": -1.15,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": -0.12,+        "x2": 3.87,+        "y2": 0.12,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": 1.15,+        "x2": 3.87,+        "y2": 1.39,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": 2.42,+        "x2": 3.87,+        "y2": 2.66,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": 3.69,+        "x2": 3.87,+        "y2": 3.93,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": 4.96,+        "x2": 3.87,+        "y2": 5.27,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": 3.87,+        "y1": 5.27,+        "x2": -3.87,+        "y2": 5.27,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": -3.87,+        "y1": 5.27,+        "x2": -3.87,+        "y2": 4.96,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": -3.87,+        "y1": 0.12,+        "x2": -3.87,+        "y2": -0.12,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": -3.87,+        "y1": -4.96,+        "x2": -3.87,+        "y2": -5.27,+        "width": 0.12+      },+      {+        "kind": "line",+        "layer": {+          "role": "silk"+        },+        "x1": -4.05,+        "y1": -5.45,+        "x2": -3.45,+        "y2": -5.45,+        "width": 0.12+      },+      {+        "kind": "rect",+        "layer": {+          "role": "courtyard"+        },+        "x1": -5.95,+        "y1": -5.5,+        "x2": 5.95,+        "y2": 5.5,+        "width": 0.05+      }+    ],+    "polys": [+      {+        "layer": {+          "role": "fab"+        },+        "points": [+          [+            -2.75,+            -5.15+          ],+          [+            3.75,+            -5.15+          ],+          [+            3.75,+            5.15+          ],+          [+            -3.75,+            5.15+          ],+          [+            -3.75,+            -4.15+          ]+        ],+        "width": 0.1,+        "filled": false+      }+    ]+  },+  "connect": [+    {+      "pin": "1",+      "pad": "1"+    },+    {+      "pin": "2",+      "pad": "2"+    },+    {+      "pin": "8",+      "pad": "8"+    },+    {+      "pin": "3",+      "pad": "3"+    },+    {+      "pin": "6",+      "pad": "6"+    },+    {+      "pin": "5",+      "pad": "5"+    },+    {+      "pin": "9",+      "pad": "9"+    },+    {+      "pin": "7",+      "pad": "7"+    },+    {+      "pin": "4",+      "pad": "4"+    },+    {+      "pin": "10",+      "pad": "10"+    }+  ],+  "provenance": {+    "source": "kicad_import"+  }+}\ No newline at end of file
artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.320.pngadded
⋯ 1 unchanged line ⋯
artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svgadded+1
@@ -0,0 +1 @@+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 320"><polyline points="178.29,237.29 273.63,182.25" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="273.63,182.25 273.75,181.63 273.87,181.01 273.99,180.39 274.11,179.78 274.23,179.16 274.35,178.54 274.46,177.93 274.58,177.31 274.70,176.69 274.82,176.08 274.94,175.46 275.06,174.84 275.18,174.22 275.29,173.61 275.41,172.99 275.53,172.37 275.65,171.76 275.77,171.14 275.89,170.52 276.01,169.91 276.13,169.29 276.24,168.67" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="178.29,225.23 276.24,168.67" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="178.29,237.29 178.29,236.75 178.29,236.20 178.29,235.65 178.29,235.10 178.29,234.55 178.29,234.00 178.29,233.46 178.29,232.91 178.29,232.36 178.29,231.81 178.29,231.26 178.29,230.71 178.29,230.16 178.29,229.62 178.29,229.07 178.29,228.52 178.29,227.97 178.29,227.42 178.29,226.87 178.29,226.33 178.29,225.78 178.29,225.23" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="99.31,191.70 107.49,196.42" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="165.66,230.01 178.29,237.29" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="276.24,168.67 276.07,167.68 275.89,166.68 275.71,165.69 275.53,164.70 275.35,163.70 275.18,162.71 275.00,161.71 274.82,160.72 274.64,159.73 274.46,158.73 274.29,157.74 274.11,156.74 273.93,155.75 273.75,154.76 273.57,153.76 273.40,152.77 273.22,151.77 273.04,150.78 272.86,149.79 272.68,148.79 272.50,147.80 272.33,146.80" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="178.29,201.10 272.33,146.80" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="178.29,225.23 178.29,224.13 178.29,223.04 178.29,221.94 178.29,220.84 178.29,219.74 178.29,218.65 178.29,217.55 178.29,216.45 178.29,215.36 178.29,214.26 178.29,213.16 178.29,212.07 178.29,210.97 178.29,209.87 178.29,208.78 178.29,207.68 178.29,206.58 178.29,205.49 178.29,204.39 178.29,203.29 178.29,202.19 178.29,201.10" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="43.76,147.56 48.49,150.29" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.40,183.15 114.84,188.60" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.76,221.46 178.29,225.23" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="44.72,152.58 44.68,152.35 44.63,152.12 44.59,151.89 44.55,151.67 44.50,151.44 44.46,151.21 44.41,150.98 44.37,150.75 44.33,150.52 44.28,150.30 44.24,150.07 44.19,149.84 44.15,149.61 44.11,149.38 44.06,149.16 44.02,148.93 43.97,148.70 43.93,148.47 43.89,148.24 43.84,148.01 43.80,147.79 43.76,147.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="272.33,146.80 141.71,71.39" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="47.67,125.69 178.29,201.10" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="141.71,71.39 47.67,125.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="79.67,122.30 79.88,122.42 80.08,122.55 80.27,122.68 80.45,122.81 80.62,122.95 80.79,123.09 80.94,123.24 81.09,123.39 81.23,123.54 81.36,123.70 81.48,123.85 81.58,124.01 81.68,124.17 81.77,124.34 81.85,124.50 81.92,124.67 81.98,124.84 82.02,125.01 82.06,125.18 82.09,125.35 82.10,125.52 82.11,125.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="82.11,125.69 82.02,126.37 81.77,127.04 81.36,127.68 80.79,128.28 80.08,128.83 79.24,129.32 78.29,129.73 77.25,130.05 76.14,130.29 74.98,130.44 73.80,130.49 72.61,130.44 71.45,130.29 70.34,130.05 69.30,129.73 68.35,129.32 67.51,128.83 66.80,128.28 66.23,127.68 65.82,127.04 65.57,126.37 65.48,125.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="65.48,125.69 65.53,125.18 65.67,124.67 65.91,124.17 66.23,123.70 66.65,123.24 67.14,122.81 67.71,122.42 68.35,122.06 69.06,121.75 69.81,121.48 70.62,121.26 71.45,121.08 72.32,120.97 73.20,120.90 74.09,120.89 74.98,120.94 75.85,121.04 76.70,121.19 77.52,121.40 78.29,121.65 79.01,121.95 79.67,122.30" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="43.76,147.56 43.93,146.56 44.11,145.57 44.29,144.58 44.47,143.58 44.65,142.59 44.82,141.59 45.00,140.60 45.18,139.61 45.36,138.61 45.54,137.62 45.71,136.62 45.89,135.63 46.07,134.64 46.25,133.64 46.43,132.65 46.60,131.65 46.78,130.66 46.96,129.67 47.14,128.67 47.32,127.68 47.50,126.68 47.67,125.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="79.67,123.05 79.03,122.72 78.34,122.42 77.60,122.17 76.81,121.97 76.00,121.82 75.16,121.71 74.30,121.65 73.44,121.65 72.58,121.70 71.74,121.79 70.92,121.94 70.13,122.14 69.38,122.38 68.67,122.66 68.02,122.99 67.44,123.35 66.92,123.75 66.47,124.17 66.11,124.62 65.82,125.09 65.62,125.57 65.51,126.07" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="82.08,126.07 82.06,125.91 82.02,125.76 81.98,125.61 81.93,125.46 81.87,125.31 81.80,125.16 81.73,125.01 81.64,124.86 81.55,124.72 81.45,124.57 81.34,124.43 81.23,124.29 81.11,124.16 80.97,124.02 80.84,123.89 80.69,123.76 80.54,123.64 80.38,123.51 80.21,123.39 80.04,123.27 79.86,123.16 79.67,123.05" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.59,180.97 100.81,183.73" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.59,180.97 103.08,179.52 100.58,178.08 98.07,176.63 95.57,175.18 93.06,173.74 90.56,172.29 88.05,170.84 85.55,169.40 83.04,167.95 80.54,166.50 78.03,165.06 75.53,163.61 73.02,162.17 70.51,160.72 68.01,159.27 65.50,157.83 63.00,156.38 60.49,154.93 57.99,153.49 55.48,152.04 52.98,150.59 50.47,149.15" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="50.47,149.15 45.69,151.91" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.60,185.11 100.81,187.88" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.60,185.11 105.59,185.02 105.59,184.93 105.58,184.84 105.57,184.75 105.56,184.66 105.55,184.57 105.54,184.49 105.53,184.40 105.52,184.31 105.51,184.22 105.50,184.13 105.49,184.04 105.49,183.95 105.48,183.86 105.47,183.77 105.46,183.68 105.45,183.60 105.44,183.51 105.43,183.42 105.42,183.33 105.41,183.24 105.40,183.15" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="105.40,183.15 105.41,183.05 105.42,182.95 105.43,182.85 105.44,182.75 105.45,182.65 105.45,182.56 105.46,182.46 105.47,182.36 105.48,182.26 105.49,182.16 105.50,182.06 105.51,181.96 105.51,181.86 105.52,181.76 105.53,181.66 105.54,181.56 105.55,181.47 105.56,181.37 105.56,181.27 105.57,181.17 105.58,181.07 105.59,180.97" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="100.81,183.73 100.49,183.93 100.17,184.14 99.86,184.39 99.55,184.65 99.24,184.93 98.95,185.23 98.65,185.55 98.37,185.88 98.10,186.23 97.84,186.60 97.60,186.97 97.36,187.36 97.14,187.75 96.94,188.15 96.75,188.56 96.58,188.97 96.43,189.38 96.30,189.79 96.18,190.20 96.09,190.60 96.01,191.00 95.96,191.40" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="95.96,191.40 94.94,200.33" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="94.94,200.33 94.93,200.44 94.91,200.55 94.88,200.66 94.85,200.76 94.82,200.87 94.78,200.98 94.73,201.09 94.68,201.20 94.63,201.31 94.57,201.41 94.51,201.52 94.44,201.62 94.37,201.71 94.30,201.81 94.22,201.89 94.15,201.98 94.07,202.06 93.99,202.14 93.90,202.21 93.82,202.27 93.73,202.33 93.65,202.38" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="93.65,202.38 87.12,206.15" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="87.12,210.30 87.12,206.15" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="93.65,206.53 87.12,210.30" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="98.50,198.86 98.44,199.25 98.37,199.65 98.28,200.06 98.16,200.47 98.03,200.88 97.88,201.29 97.71,201.70 97.52,202.11 97.31,202.51 97.10,202.90 96.86,203.28 96.62,203.66 96.36,204.02 96.08,204.37 95.80,204.71 95.51,205.03 95.21,205.33 94.91,205.61 94.60,205.87 94.28,206.11 93.97,206.33 93.65,206.53" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="99.52,189.92 98.50,198.86" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="100.81,187.88 100.72,187.93 100.64,187.99 100.56,188.05 100.47,188.12 100.39,188.20 100.31,188.28 100.23,188.36 100.16,188.45 100.09,188.55 100.02,188.64 99.95,188.74 99.89,188.84 99.83,188.95 99.78,189.06 99.73,189.16 99.68,189.27 99.64,189.38 99.61,189.49 99.58,189.60 99.55,189.71 99.53,189.82 99.52,189.92" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="45.69,151.91 45.37,152.10 45.06,152.32 44.74,152.56 44.43,152.83 44.13,153.11 43.83,153.41 43.54,153.73 43.26,154.06 42.98,154.41 42.72,154.77 42.48,155.15 42.24,155.53 42.02,155.93 41.82,156.33 41.63,156.73 41.46,157.14 41.31,157.56 41.18,157.97 41.06,158.38 40.97,158.78 40.89,159.18 40.84,159.58" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="32.00,174.33 32.00,178.48" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="38.53,170.56 32.00,174.33" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="39.82,168.51 39.81,168.62 39.79,168.72 39.76,168.83 39.73,168.94 39.70,169.05 39.66,169.16 39.61,169.27 39.56,169.38 39.51,169.48 39.45,169.59 39.39,169.69 39.32,169.79 39.25,169.89 39.18,169.98 39.11,170.07 39.03,170.16 38.95,170.24 38.87,170.31 38.78,170.38 38.70,170.45 38.62,170.51 38.53,170.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="40.84,159.58 39.82,168.51" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="32.00,178.48 87.12,210.30" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="87.12,206.15 32.00,174.33" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.94,219.28 167.16,222.04" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.94,219.28 169.44,217.83 166.93,216.38 164.42,214.94 161.92,213.49 159.41,212.04 156.91,210.60 154.40,209.15 151.90,207.71 149.39,206.26 146.89,204.81 144.38,203.37 141.88,201.92 139.37,200.47 136.87,199.03 134.36,197.58 131.85,196.13 129.35,194.69 126.84,193.24 124.34,191.79 121.83,190.35 119.33,188.90 116.82,187.45" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="116.82,187.45 112.04,190.22" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.95,223.42 167.16,226.19" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.95,223.42 171.95,223.33 171.94,223.24 171.93,223.15 171.92,223.06 171.91,222.97 171.90,222.88 171.89,222.79 171.88,222.70 171.87,222.62 171.86,222.53 171.85,222.44 171.85,222.35 171.84,222.26 171.83,222.17 171.82,222.08 171.81,221.99 171.80,221.90 171.79,221.81 171.78,221.73 171.77,221.64 171.76,221.55 171.76,221.46" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="171.76,221.46 171.76,221.35 171.77,221.24 171.78,221.14 171.79,221.03 171.80,220.93 171.81,220.83 171.82,220.73 171.83,220.63 171.83,220.53 171.84,220.42 171.85,220.31 171.86,220.20 171.87,220.10 171.88,219.99 171.89,219.88 171.90,219.77 171.91,219.67 171.92,219.57 171.92,219.48 171.93,219.40 171.94,219.33 171.94,219.28" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="167.16,222.04 166.84,222.23 166.52,222.45 166.21,222.69 165.90,222.96 165.59,223.24 165.30,223.54 165.01,223.86 164.72,224.19 164.45,224.54 164.19,224.91 163.95,225.28 163.71,225.67 163.49,226.06 163.29,226.46 163.10,226.87 162.93,227.27 162.78,227.69 162.65,228.10 162.53,228.51 162.44,228.91 162.36,229.31 162.31,229.71" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="162.31,229.71 161.29,238.64" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="161.29,238.64 161.28,238.75 161.26,238.85 161.23,238.96 161.20,239.07 161.17,239.18 161.13,239.29 161.08,239.40 161.03,239.51 160.98,239.62 160.92,239.72 160.86,239.82 160.79,239.92 160.72,240.02 160.65,240.11 160.57,240.20 160.50,240.29 160.42,240.37 160.34,240.44 160.25,240.51 160.17,240.58 160.08,240.64 160.00,240.69" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.00,240.69 153.47,244.46" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="153.47,248.61 153.47,244.46" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.00,244.84 153.47,248.61" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="164.85,237.17 164.80,237.56 164.72,237.96 164.63,238.37 164.51,238.78 164.38,239.19 164.23,239.60 164.06,240.01 163.87,240.41 163.67,240.81 163.45,241.21 163.21,241.59 162.97,241.97 162.71,242.33 162.44,242.68 162.15,243.02 161.86,243.33 161.57,243.63 161.26,243.92 160.95,244.18 160.64,244.42 160.32,244.64 160.00,244.84" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="165.87,228.23 164.85,237.17" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="167.16,226.19 167.08,226.24 166.99,226.30 166.91,226.36 166.82,226.43 166.74,226.51 166.66,226.59 166.59,226.67 166.51,226.76 166.44,226.85 166.37,226.95 166.30,227.05 166.24,227.15 166.18,227.26 166.13,227.36 166.08,227.47 166.03,227.58 165.99,227.69 165.96,227.80 165.93,227.91 165.90,228.02 165.88,228.13 165.87,228.23" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="112.04,190.22 111.72,190.41 111.41,190.63 111.09,190.87 110.78,191.13 110.48,191.42 110.18,191.72 109.89,192.04 109.61,192.37 109.33,192.72 109.08,193.08 108.83,193.46 108.59,193.84 108.38,194.24 108.17,194.64 107.99,195.04 107.82,195.45 107.66,195.86 107.53,196.27 107.42,196.68 107.32,197.09 107.25,197.49 107.19,197.88" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="98.35,212.64 98.35,216.78" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="104.88,208.87 98.35,212.64" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="106.18,206.82 106.16,206.93 106.14,207.03 106.12,207.14 106.08,207.25 106.05,207.36 106.01,207.47 105.96,207.58 105.91,207.69 105.86,207.79 105.80,207.90 105.74,208.00 105.67,208.10 105.60,208.20 105.53,208.29 105.46,208.38 105.38,208.46 105.30,208.54 105.22,208.62 105.13,208.69 105.05,208.75 104.97,208.81 104.88,208.87" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="107.19,197.88 106.18,206.82" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="98.35,216.78 153.47,248.61" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="153.47,244.46 98.35,212.64" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="275.50,164.53 275.51,164.54 275.52,164.56 275.52,164.57 275.53,164.58 275.53,164.60 275.54,164.61 275.54,164.63 275.55,164.64 275.56,164.66 275.56,164.67 275.56,164.69 275.57,164.71 275.57,164.72 275.58,164.74 275.58,164.75 275.59,164.77 275.59,164.79 275.59,164.80 275.59,164.82 275.60,164.84 275.60,164.86 275.60,164.87" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="275.60,164.87 275.71,165.67" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="276.16,169.12 276.62,172.64" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="276.62,172.64 276.64,172.79 276.67,172.94 276.70,173.08 276.73,173.22 276.77,173.36 276.81,173.49 276.86,173.62 276.91,173.75 276.97,173.87 277.02,173.99 277.09,174.10 277.15,174.21 277.22,174.32 277.30,174.42 277.37,174.51 277.45,174.60 277.54,174.69 277.62,174.77 277.71,174.85 277.81,174.92 277.91,174.99 278.01,175.05" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="278.01,175.05 278.13,175.12 278.26,175.18 278.40,175.23 278.53,175.27 278.68,175.31 278.82,175.34 278.97,175.36 279.12,175.37 279.28,175.37 279.43,175.37 279.60,175.36 279.76,175.34 279.92,175.31 280.09,175.27 280.26,175.23 280.43,175.18 280.60,175.12 280.77,175.05 280.95,174.97 281.12,174.89 281.29,174.80 281.47,174.70" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="281.47,174.70 288.00,170.93" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="288.00,166.79 288.00,170.93" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="281.47,170.56 288.00,166.79" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="280.18,170.01 280.18,170.05 280.19,170.09 280.20,170.12 280.21,170.16 280.22,170.20 280.23,170.23 280.24,170.27 280.25,170.30 280.27,170.34 280.28,170.37 280.30,170.40 280.32,170.43 280.34,170.45 280.36,170.48 280.38,170.51 280.40,170.53 280.42,170.55 280.44,170.58 280.47,170.60 280.49,170.61 280.52,170.63 280.55,170.65" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="280.55,170.65 280.58,170.67 280.61,170.68 280.65,170.70 280.69,170.71 280.72,170.72 280.76,170.73 280.80,170.73 280.84,170.73 280.88,170.74 280.93,170.73 280.97,170.73 281.01,170.73 281.06,170.72 281.10,170.71 281.15,170.70 281.19,170.68 281.24,170.67 281.28,170.65 281.33,170.63 281.38,170.61 281.42,170.58 281.47,170.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="279.16,162.24 280.18,170.01" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="274.69,159.97 274.84,159.90 275.00,159.83 275.16,159.77 275.31,159.72 275.46,159.67 275.62,159.63 275.77,159.59 275.92,159.56 276.07,159.54 276.21,159.52 276.36,159.51 276.50,159.51 276.64,159.51 276.78,159.52 276.91,159.54 277.04,159.56 277.17,159.59 277.30,159.62 277.42,159.67 277.54,159.72 277.66,159.77 277.77,159.83" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="277.77,159.83 277.87,159.89 277.97,159.96 278.06,160.03 278.15,160.11 278.24,160.19 278.33,160.27 278.41,160.37 278.48,160.46 278.56,160.56 278.63,160.67 278.69,160.78 278.76,160.89 278.81,161.01 278.87,161.13 278.92,161.26 278.97,161.39 279.01,161.52 279.05,161.66 279.08,161.80 279.11,161.94 279.14,162.09 279.16,162.24" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="279.58,165.46 282.64,163.70" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="282.64,163.70 288.00,166.79" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="274.30,157.83 277.77,159.83" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="278.01,175.05 275.32,173.50" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="100.81,183.73 45.69,151.91" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="95.96,191.40 40.84,159.58" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="93.65,202.38 38.53,170.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="94.94,200.33 39.82,168.51" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="167.16,222.04 112.04,190.22" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="162.31,229.71 107.19,197.88" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.00,240.69 104.88,208.87" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="161.29,238.64 106.18,206.82" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="275.60,164.87 275.56,164.85" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="280.15,169.79 281.47,170.56" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><polyline points="276.62,172.64 275.60,172.05" fill="none" stroke="#e6edf3" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/><g id="adom-mark-name" data-lines="TMCS1123|B1AQDVGR"><polyline points="147.16,114.18 136.99,120.05" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="143.77,112.22 150.55,116.14" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="152.97,117.54 142.80,123.41" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="152.97,117.54 146.67,125.64" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.72,122.01 146.67,125.64" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.72,122.01 150.55,127.88" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="168.95,129.56 169.43,128.72 169.43,127.60 168.95,126.76 167.01,125.64 165.56,125.37 163.62,125.37 162.17,125.64 160.23,126.20 157.81,127.60 156.84,128.72 156.36,129.56 156.36,130.68 156.84,131.51 158.78,132.63 160.23,132.91 162.17,132.91 163.62,132.63" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="179.60,134.59 179.60,133.47 178.63,132.35 176.69,131.23 174.76,130.68 172.82,130.68 171.85,131.23 171.37,132.07 171.37,132.63 171.85,133.47 173.79,135.71 174.27,136.54 174.27,137.11 173.79,137.94 172.34,138.78 170.40,138.78 168.46,138.22 166.53,137.11 165.56,135.99 165.56,134.87" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="183.47,137.38 184.92,137.66 187.83,137.66 177.66,143.53" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="193.16,142.97 194.61,143.26 197.52,143.26 187.34,149.12" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="201.38,148.28 201.87,148.01 203.32,147.73 204.29,147.73 205.74,148.01 207.68,149.12 208.16,149.96 208.16,150.52 207.68,151.36 206.72,151.92 205.26,152.20 202.84,152.48 193.16,152.48 199.94,156.39" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="213.98,152.76 219.30,155.83 212.52,156.39 213.98,157.23 214.46,158.07 214.46,158.63 213.49,159.74 212.52,160.31 210.58,160.86 208.65,160.86 206.72,160.31 205.26,159.47 204.29,158.35 204.29,157.79 204.78,156.95" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="129.73,121.73 119.56,127.60" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="129.73,121.73 134.09,124.25 135.05,125.37 135.05,125.92 134.57,126.76 133.60,127.32 132.15,127.60 131.18,127.60 129.25,127.04" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="124.89,124.53 129.25,127.04 130.21,128.16 130.21,128.72 129.73,129.56 128.27,130.39 126.83,130.68 125.85,130.68 123.92,130.11 119.56,127.60" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="138.93,129.28 140.38,129.56 143.29,129.56 133.12,135.43" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="152.00,134.59 137.96,138.22" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="152.00,134.59 145.71,142.69" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="142.80,137.11 147.64,139.90" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="160.72,139.62 159.26,139.34 157.33,139.34 155.87,139.62 153.94,140.18 151.52,141.58 150.55,142.69 150.06,143.53 150.06,144.65 150.55,145.49 152.49,146.61 153.94,146.89 155.87,146.89 157.33,146.61 159.26,146.05 161.68,144.65 162.65,143.53 163.14,142.69 163.14,141.58 162.65,140.74 160.72,139.62" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="153.94,145.21 153.94,148.57" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="168.95,144.37 158.78,150.24" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="168.95,144.37 172.34,146.33 173.30,147.45 173.30,148.57 172.82,149.40 171.85,150.52 169.43,151.92 167.49,152.48 166.04,152.76 164.10,152.76 162.17,152.20 158.78,150.24" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="177.66,149.40 171.37,157.51" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="185.41,153.88 171.37,157.51" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="192.19,160.58 192.67,159.74 192.67,158.63 192.19,157.79 190.25,156.67 188.80,156.39 186.86,156.39 185.41,156.67 183.47,157.23 181.05,158.63 180.08,159.74 179.60,160.58 179.60,161.70 180.08,162.54 182.02,163.66 183.47,163.94 185.41,163.94 186.86,163.66 188.32,162.82" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="185.89,161.42 188.32,162.82" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="198.00,161.15 187.83,167.01" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="198.00,161.15 202.36,163.66 203.32,164.78 203.32,165.34 202.84,166.18 201.87,166.73 200.42,167.01 199.45,167.01 197.52,166.46 193.16,163.94" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/><polyline points="196.54,165.90 194.61,170.93" fill="none" stroke="#e6edf3" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="round"/></g></svg>\ No newline at end of file
models.jsonadded+225
@@ -0,0 +1,225 @@+{+ "schema": "adom/models@1",+ "part": "TMCS1123B1AQDVGR",+ "updated": "2026-10-21",+ "models": [+  {+   "path": "tmcs1123b1aqdvgr-etched.step",+   "format": "step",+   "sha256": "dbec99f3125d7ef551b04a3802e49a5ef6b22ebbba2e7978b2e8f2f85a8b5008",+   "git_blob": "a16e30824e84685e6ba6bd46ef8d474dab286ca2",+   "bytes": 921518,+   "title": "TMCS1123B1AQDVGR, virtual MPN etch (library model)",+   "status": "current",+   "slot": "model_3d_step",+   "variant": "etched",+   "role": "datasheet-built",+   "use": [+    "board-cad"+   ],+   "marking": {+    "text": "TMCS1123 / B1AQDVGR (two lines)",+    "surface": "top, along the pin rows, upright with pin 1 lower left",+    "colour": "light grey on black epoxy",+    "virtual": true,+    "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+   },+   "colours": true,+   "derived_from": "tmcs1123b1aqdvgr.step",+   "unique": "The board-CAD model: built from TI's DVG0010A drawing values with the MPN etched on top in the Adom.LaserEtch group; bound by the KiCad footprint, the Fusion .lbr and the Altium PcbLib",+   "source": "provenance/tools/build_dvg10.py + adom-chip-laser 0.2.0 (service-occt etch, placed by adom-aiflow-etch)",+   "thumb": "docs/models/tmcs1123b1aqdvgr-etched-iso.png",+   "thumb_bottom": "docs/models/tmcs1123b1aqdvgr-etched-bottom.png"+  },+  {+   "path": "tmcs1123b1aqdvgr.step",+   "format": "step",+   "sha256": "0a853e2f4e75a9e6cbad36f5019d39ee4dcb53a4c9cc39f4c3ad37d4c9274672",+   "git_blob": "a96c3dc2e0c3fe2be2a2d7ba20b2e21dac4a6ebc",+   "bytes": 602713,+   "title": "TMCS1123B1AQDVGR, unmarked",+   "status": "current",+   "slot": "model_3d_step_plain",+   "variant": "plain",+   "role": "datasheet-built",+   "use": [+    "board-cad",+    "archive"+   ],+   "marking": null,+   "colours": true,+   "derived_from": "TI SBOSA24D p.45 (DVG0010A, 4226847/C)",+   "unique": "The same package without any marking",+   "source": "provenance/tools/build_dvg10.py (default parameters)",+   "thumb": "docs/models/tmcs1123b1aqdvgr-glb-top.png"+  },+  {+   "path": "tmcs1123b1aqdvgr-hero.glb",+   "format": "glb",+   "sha256": "bf51329a5a46cd522589b2e604a47acd88117b42e3e8ad0f20e2daf671f85fc3",+   "git_blob": "60d974f452d4533c2028ca2ffe3003bbbf52de43",+   "bytes": 167368,+   "title": "TMCS1123B1AQDVGR, annotated hero (page viewer only)",+   "status": "current",+   "slot": "model_3d",+   "variant": "hero",+   "role": "derived",+   "use": [+    "wiki-hero"+   ],+   "marking": {+    "text": "TMCS1123 / B1AQDVGR (two lines)",+    "surface": "top, along the pin rows, upright with pin 1 lower left",+    "colour": "light grey on black epoxy",+    "virtual": true,+    "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+   },+   "colours": true,+   "derived_from": "tmcs1123b1aqdvgr-etched.glb + tmcs1123b1aqdvgr.kicad_mod",+   "unique": "The etched model plus adom-hero 1.4 reference artwork (teal dashed pad outlines, silkscreen with pin-1 dot, signal names) and an extra declared layer for the 8.1 mm isolation keepout; not for board use",+   "source": "adom/component-hero hero_glb.py (adom-hero 1.4) + provenance/tools/hero_post_keepout.py",+   "thumb": "docs/proof/tmcs1123b1aqdvgr-hero-preview.png"+  },+  {+   "path": "tmcs1123b1aqdvgr-etched.glb",+   "format": "glb",+   "sha256": "70ac2e320cf662c6f7b24d163eee14148fd0f474d429a1aab3c05f81bf0afa56",+   "git_blob": "2ba4db5674cf74331a732adab74717e07aa5a4f2",+   "bytes": 84116,+   "title": "TMCS1123B1AQDVGR, virtual MPN etch (GLB, board use)",+   "status": "current",+   "slot": "model_3d_plain",+   "variant": "etched",+   "role": "derived",+   "use": [+    "render",+    "board-insertion"+   ],+   "marking": {+    "text": "TMCS1123 / B1AQDVGR (two lines)",+    "surface": "top, along the pin rows, upright with pin 1 lower left",+    "colour": "light grey on black epoxy",+    "virtual": true,+    "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+   },+   "colours": true,+   "derived_from": "tmcs1123b1aqdvgr-etched.step",+   "unique": "Web copy of the etched STEP, clean (no pad outlines, labels or silkscreen), primitives batched per part, matte-tin leads and epoxy body",+   "source": "step2glb 0.13.2 service --compress none + provenance/tools/glb_batch.py + materials.py",+   "thumb": "docs/models/tmcs1123b1aqdvgr-etched-iso.png"+  },+  {+   "path": "tmcs1123b1aqdvgr.glb",+   "format": "glb",+   "sha256": "6845226553b3cfc2fac73abbe47483cf94ccc6f9ff476c4c72250a0721f352b5",+   "git_blob": "18096772a332d66ca489afaad4bfe8f98f3e5b9d",+   "bytes": 60536,+   "title": "TMCS1123B1AQDVGR, unmarked (GLB)",+   "status": "current",+   "variant": "plain",+   "role": "derived",+   "use": [+    "render",+    "board-insertion"+   ],+   "marking": null,+   "colours": true,+   "derived_from": "tmcs1123b1aqdvgr.step",+   "unique": "Web copy of the unmarked STEP",+   "source": "step2glb 0.13.2 service --compress none + glb_batch.py + materials.py",+   "thumb": "docs/models/tmcs1123b1aqdvgr-glb-top.png"+  },+  {+   "path": "lod/tmcs1123b1aqdvgr-high.glb",+   "format": "glb",+   "sha256": "70ac2e320cf662c6f7b24d163eee14148fd0f474d429a1aab3c05f81bf0afa56",+   "git_blob": "2ba4db5674cf74331a732adab74717e07aa5a4f2",+   "bytes": 84116,+   "title": "TMCS1123B1AQDVGR, high detail (board LOD)",+   "status": "current",+   "variant": "lod",+   "role": "derived",+   "use": [+    "board-insertion"+   ],+   "marking": {+    "text": "TMCS1123 / B1AQDVGR (two lines)",+    "surface": "top, along the pin rows, upright with pin 1 lower left",+    "colour": "light grey on black epoxy",+    "virtual": true,+    "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+   },+   "colours": true,+   "derived_from": "tmcs1123b1aqdvgr-etched.step",+   "unique": "Identical to the etched GLB",+   "source": "build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py",+   "thumb": "lod/tmcs1123b1aqdvgr-high.png"+  },+  {+   "path": "lod/tmcs1123b1aqdvgr-medium.glb",+   "format": "glb",+   "sha256": "9f52aa315be221e7125ad823f9753cddc16870e427abf3b2d8c021ebc90e41ce",+   "git_blob": "9f24b1b9b15c5e63e878e80206b8f15ae4ee7428",+   "bytes": 70556,+   "title": "TMCS1123B1AQDVGR, medium detail (board LOD)",+   "status": "current",+   "variant": "lod",+   "role": "derived",+   "use": [+    "board-insertion"+   ],+   "marking": {+    "text": "TMCS1123 / B1AQDVGR (two lines)",+    "surface": "top, along the pin rows, upright with pin 1 lower left",+    "colour": "light grey on black epoxy",+    "virtual": true,+    "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"+   },+   "colours": true,+   "derived_from": "provenance/tools/params-low.json",+   "unique": "Bends as 3 straight segments, etch grafted from the high level",+   "source": "build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py",+   "thumb": "lod/tmcs1123b1aqdvgr-medium.png"+  },+  {+   "path": "lod/tmcs1123b1aqdvgr-low.glb",+   "format": "glb",+   "sha256": "b7ddcc1ac803f49617a0fbb2c04d464e6713c4171dbf85f2b9c29c0af3bc09ee",+   "git_blob": "31beb2a5be61cdc9fae5e6dac8f7b55bd40d7aa0",+   "bytes": 47096,+   "title": "TMCS1123B1AQDVGR, low detail (board LOD)",+   "status": "current",+   "variant": "lod",+   "role": "derived",+   "use": [+    "board-insertion"+   ],+   "marking": null,+   "colours": true,+   "derived_from": "provenance/tools/params-low.json",+   "unique": "Bends as 3 straight segments, no etch",+   "source": "build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py",+   "thumb": "lod/tmcs1123b1aqdvgr-low.png"+  },+  {+   "path": "lod/tmcs1123b1aqdvgr-super-low.glb",+   "format": "glb",+   "sha256": "18d92dd0c0942ecfec9979e24102133ecc420f6ad93814334e17af02868ccf05",+   "git_blob": "bc3d531dfacfa1b874f88054f8dce43d867e750e",+   "bytes": 29332,+   "title": "TMCS1123B1AQDVGR, super-low detail (board LOD)",+   "status": "current",+   "variant": "lod",+   "role": "derived",+   "use": [+    "board-insertion"+   ],+   "marking": null,+   "colours": true,+   "derived_from": "provenance/tools/params-superlow.json",+   "unique": "Undrafted body, one-segment bends, no etch",+   "source": "build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py",+   "thumb": "lod/tmcs1123b1aqdvgr-super-low.png"+  }+ ]+}\ No newline at end of file
provenance/3d-model.jsonadded+167
@@ -0,0 +1,167 @@+{+ "schema": "adom/3d-model-provenance@1",+ "mpn": "TMCS1123B1AQDVGR",+ "date": "2026-10-21",+ "classification": "Datasheet-built: a CadQuery model generated from TI's printed DVG0010A package values (SBOSA24D p.45), produced by Claude (AI) for Adom. Not manufacturer CAD and not a TI certification.",+ "method_chosen": "3 (build from the drawing): TI's STEP is behind Ultra Librarian's reCAPTCHA and terms form, and no KiCad library model exists for DVG0010A",+ "manufacturer_step": {+  "tried": [+   "https://www.ti.com/product/TMCS1123 (CAD/CAE link)",+   "https://vendor.ultralibrarian.com/TI/embedded/?gpn=TMCS1123&package=DVG&pin=10"+  ],+  "result": "The Ultra Librarian page lists a STEP export (PartUniqueId 1632f2be-2a1e-11ee-9288-0ae0a3b49db5) but the export form needs a reCAPTCHA and a terms checkbox; a plain HTTP request cannot fetch it (checked 2026-10-21)",+  "status": "not reachable by plain HTTP"+ },+ "existing_wiki_model": {+  "page": "adom/tmcs1123a2aqdvgr (the A2A variant, same DVG package)",+  "checked": "2026-10-21",+  "verdict": "not reused: its footprint and STEP are KiCad's SOIC-10_3.9x4.9mm_P1mm (narrow 3.9 x 4.9 mm body, 1 mm pitch, five pins per side, pads at x = +-2.66), which is a different package from TI's DVG0010A (7.5 x 10.3 mm body, two 4.22 mm current leads on one side and eight 1.27 mm-pitch leads on the other). The page was not modified."+ },+ "datasheet": {+  "doc": "TI SBOSA24D, TMCS1123 (July 2023, revised May 2026)",+  "file": "docs/tmcs1123b1aqdvgr-datasheet.pdf",+  "url": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+  "sha256": "66bab03ec907cb658ebf1b379dff4bdc75dffe13ffab3acd8247fc3faee70cce",+  "drawing_pages": "p.45 package outline DVG0010A (4226847/C 10/2022), p.46 example board layout, p.47 stencil",+  "marking_page": "p.40"+ },+ "model": {+  "file": "tmcs1123b1aqdvgr.step",+  "sha256": "0a853e2f4e75a9e6cbad36f5019d39ee4dcb53a4c9cc39f4c3ad37d4c9274672",+  "builder": "provenance/tools/build_dvg10.py (CadQuery 2.8, OpenCascade); lead construction from build_soic8.py on adom/mcp2562fd-e-sn",+  "how": "drafted two-part body loft (parting line 1.10 mm), ten swept leads (rectangle b x c along a centreline with two 0.2375 mm centreline-radius bends, 8 deg off vertical): two 4.22 mm current leads at y = +-2.54 on -x, eight 0.41 mm leads at 1.27 mm pitch on +x; pin-1 dimple 0.90 mm diameter, 0.05 mm deep inside the drawing's PIN 1 ID AREA; flat foot 0.50 mm so the gauge-plane L is 0.854 mm",+  "chosen_values": "Where the drawing gives a range, the mid value; A (2.65 MAX, no nominal) modelled as 2.55. Not dimensioned by TI and chosen: parting line height 1.10 mm (read off the side view), draft insets 0.10 / 0.15 mm, inner bend radius 0.10 mm, lead angle 8 deg.",+  "frame": "Z up, seated on z = 0, centred on the KiCad footprint origin, pin 1 at (-x, +y) = footprint pad 1 at (-4.875, -2.54) in KiCad's Y-down footprint frame; binds with zero offset and rotation",+  "parts": {+   "body": "black epoxy",+   "pins": "matte tin"+  },+  "dimensions_mm": [+   {+    "item": "E overall lead span",+    "datasheet_min_typ_max": "9.97 / - / 10.63 (TYP)",+    "model": "10.300"+   },+   {+    "item": "E1 molded width",+    "datasheet_min_typ_max": "7.4 / - / 7.6",+    "model": "7.500"+   },+   {+    "item": "D molded length",+    "datasheet_min_typ_max": "10.1 / - / 10.5",+    "model": "10.300"+   },+   {+    "item": "A overall height",+    "datasheet_min_typ_max": "max 2.65",+    "model": "2.550"+   },+   {+    "item": "A1 standoff",+    "datasheet_min_typ_max": "0.1 / - / 0.3",+    "model": "0.200"+   },+   {+    "item": "c lead thickness",+    "datasheet_min_typ_max": "0.23 / - / 0.32 (TYP)",+    "model": "0.275"+   },+   {+    "item": "b signal lead width (pins 3 to 10)",+    "datasheet_min_typ_max": "0.31 / - / 0.51",+    "model": "0.410"+   },+   {+    "item": "e signal pitch",+    "datasheet_min_typ_max": "1.27 (7X)",+    "model": "1.270"+   },+   {+    "item": "current lead width (pins 1, 2)",+    "datasheet_min_typ_max": "4.12 / - / 4.32",+    "model": "4.220"+   },+   {+    "item": "current lead centre from centre line",+    "datasheet_min_typ_max": "2.44 / - / 2.64",+    "model": "2.540"+   },+   {+    "item": "gap between current leads",+    "datasheet_min_typ_max": "(0.86) REF",+    "model": "0.860"+   },+   {+    "item": "L foot length (gauge plane 0.25 mm)",+    "datasheet_min_typ_max": "0.40 / - / 1.27",+    "model": "0.854"+   },+   {+    "item": "(1.4) lead length, body edge to tip",+    "datasheet_min_typ_max": "(1.4) REF",+    "model": "1.400"+   },+   {+    "item": "lead angle at foot",+    "datasheet_min_typ_max": "0 to 8 deg",+    "model": "0 (flat foot on the seating plane)"+   }+  ],+  "measurements": [+   "provenance/dims-model.json (section at y = +2.54, pin 1)",+   "provenance/dims-model-signal.json (section at y = +4.445, pin 10; foot section of the +x row)"+  ],+  "overlay_proof": {+   "image": "docs/proof/tmcs1123b1aqdvgr-overlay.png",+   "report": "provenance/overlay-proof.json",+   "px_per_mm": 71.117,+   "result": "top, front and end silhouettes blended over the p.45 drawing at the drawing's own scale (calibrated on the printed E and D spans, kx and ky agree within 0.4 %); the leads, the current-lead gap and the body outline coincide with the drawing lines"+  },+  "pin1_mark": "0.90 mm dimple at (-2.60, +4.00) on the top face, inside TI's hatched PIN 1 ID AREA (p.45); TI does not dimension the feature",+  "not_modelled": "mold flash and interlead flash (notes 3, 4), the exact pin-1 feature shape"+ },+ "etched": {+  "file": "tmcs1123b1aqdvgr-etched.step",+  "sha256": "dbec99f3125d7ef551b04a3802e49a5ef6b22ebbba2e7978b2e8f2f85a8b5008",+  "tool": "adom-chip-laser 0.2.0 service (service-occt /laser-etch, flat light mark 5 um above the face, Adom.LaserEtch group), placed by adom-aiflow-etch's planner with the page footprint",+  "lines": [+   "TMCS1123",+   "B1AQDVGR"+  ],+  "capMm": 0.98,+  "virtual": true,+  "gate": "adom-aiflow-etch check: PASS",+  "check_image": "docs/proof/tmcs1123b1aqdvgr-etched.check.png",+  "plan": "docs/proof/tmcs1123b1aqdvgr-etched.mark-plan.json",+  "real_marking": "TI marks this part 1123B1A (SBOSA24D p.40, Part marking); the etch is the orderable MPN instead, as a virtual identification aid"+ },+ "glb": {+  "tmcs1123b1aqdvgr.glb": "6845226553b3cfc2fac73abbe47483cf94ccc6f9ff476c4c72250a0721f352b5",+  "tmcs1123b1aqdvgr-etched.glb": "70ac2e320cf662c6f7b24d163eee14148fd0f474d429a1aab3c05f81bf0afa56",+  "tmcs1123b1aqdvgr-hero.glb": "bf51329a5a46cd522589b2e604a47acd88117b42e3e8ad0f20e2daf671f85fc3"+ },+ "hero": {+  "file": "tmcs1123b1aqdvgr-hero.glb",+  "generator": "adom/component-hero skills/component-hero/scripts/hero_glb.py (adom-hero 1.4) then provenance/tools/hero_post_keepout.py",+  "sidecar": "tmcs1123b1aqdvgr-hero.overlay.json",+  "align": "OK, centre offset 0.0 mm",+  "pin1": "added dot (AI) beside pad 1: the footprint's pin-1 silkscreen bar is a line, which the generator does not count as a mark"+ },+ "outline": {+  "file": "artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg",+  "sha256": "e25e153f2ef6984f426e1aaaa5d8b7d1db31c0c99ee94fe6beb42073bb1c2314",+  "tool": "adom-aiflow-etch outline (service body outline + single-stroke name on the planned band)",+  "gate": "PASS"+ },+ "tools": {+  "adom-chip-laser": "0.2.0",+  "adom-aiflow-etch": "adom-aiflow 0.2.17",+  "step2glb": "0.13.2 (service)",+  "adom-symbol": "1.2.6",+  "adom-footprint": "1.0.26",+  "adom-lbr": "2.47.6",+  "cadquery": "2.8.0 (local venv)"+ },+ "license": "Model, etch and artwork authored by Adom: CC-BY-4.0. The TI datasheet keeps TI's terms."+}\ No newline at end of file
provenance/dims-model-signal.jsonadded+33
@@ -0,0 +1,33 @@+{+ "row": "+x (pins 3..10)",+ "L_gauge_pin10": 0.8536,+ "b_lead_width": [+  0.41,+  0.41,+  0.41,+  0.41,+  0.41,+  0.41,+  0.41,+  0.41+ ],+ "centres_y": [+  -4.445,+  -3.175,+  -1.905,+  -0.635,+  0.635,+  1.905,+  3.175,+  4.445+ ],+ "pitch": [+  1.27,+  1.27,+  1.27,+  1.27,+  1.27,+  1.27,+  1.27+ ]+}
provenance/dims-model.jsonadded+46
@@ -0,0 +1,46 @@+{+ "file": "tmcs1123b1aqdvgr.step",+ "solids": 11,+ "overall_bbox": [+  -5.15,+  -5.15,+  -0.0,+  5.15,+  5.15,+  2.55+ ],+ "E1_body_width": 7.5,+ "A1_standoff": 0.2,+ "A_overall_height": 2.55,+ "A2_molded_thickness": 2.35,+ "D_body_length": 10.3,+ "E_tip_to_tip": 8.9,+ "gauge_crossings_x": [+  -5.15,+  -4.2964,+  -3.6556+ ],+ "L_gauge": 0.8536,+ "foot_leads_y": [+  [+   -4.65,+   -0.43+  ],+  [+   0.43,+   4.65+  ]+ ],+ "b_lead_width": [+  4.22,+  4.22+ ],+ "pitch": [+  5.08+ ],+ "c_lead_thickness": 0.275,+ "foot_z": [+  -0.0,+  0.275+ ]+}
provenance/footprint-check.jsonadded+246
@@ -0,0 +1,246 @@+{+ "drawing": "TI DVG0010A example board layout, HV / isolation option (8.1 mm clearance/creepage), SBOSA24D p.46, 4226847/C",+ "frame": "KiCad footprint, Y down, top view; pin 1 top-left as in TI's top view",+ "pads": [+  {+   "pad": "1",+   "footprint": [+    -4.875,+    -2.54,+    1.65,+    4.41+   ],+   "drawing": [+    -4.875,+    -2.54,+    1.65,+    4.41+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "2",+   "footprint": [+    -4.875,+    2.54,+    1.65,+    4.41+   ],+   "drawing": [+    -4.875,+    2.54,+    1.65,+    4.41+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "3",+   "footprint": [+    4.875,+    4.445,+    1.65,+    0.6+   ],+   "drawing": [+    4.875,+    4.445,+    1.65,+    0.6+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "4",+   "footprint": [+    4.875,+    3.175,+    1.65,+    0.6+   ],+   "drawing": [+    4.875,+    3.175,+    1.65,+    0.6+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "5",+   "footprint": [+    4.875,+    1.905,+    1.65,+    0.6+   ],+   "drawing": [+    4.875,+    1.905,+    1.65,+    0.6+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "6",+   "footprint": [+    4.875,+    0.635,+    1.65,+    0.6+   ],+   "drawing": [+    4.875,+    0.635,+    1.65,+    0.6+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "7",+   "footprint": [+    4.875,+    -0.635,+    1.65,+    0.6+   ],+   "drawing": [+    4.875,+    -0.635,+    1.65,+    0.6+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "8",+   "footprint": [+    4.875,+    -1.905,+    1.65,+    0.6+   ],+   "drawing": [+    4.875,+    -1.905,+    1.65,+    0.6+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "9",+   "footprint": [+    4.875,+    -3.175,+    1.65,+    0.6+   ],+   "drawing": [+    4.875,+    -3.175,+    1.65,+    0.6+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  },+  {+   "pad": "10",+   "footprint": [+    4.875,+    -4.445,+    1.65,+    0.6+   ],+   "drawing": [+    4.875,+    -4.445,+    1.65,+    0.6+   ],+   "delta": [+    0.0,+    0.0,+    0.0,+    0.0+   ],+   "match": true+  }+ ],+ "all_match": true,+ "corner_radius_mm": 0.05,+ "pad_to_pad_clearance_mm": 8.1,+ "datasheet_min_creepage_clearance_mm": 8.0,+ "keepout": {+  "layers": "*.Cu (KiCad rule area: no tracks, vias, pads or pours)",+  "rect_mm": [+   -4.05,+   -5.5,+   4.05,+   5.5+  ]+ },+ "ipc_option_not_used": "IPC-7351 nominal option (2.0 mm pads at 9.3 mm, 7.3 mm clearance) is below the part's 8 mm rating",+ "overlay_calibration": {+  "px_per_mm": 47.393,+  "kx": 47.368,+  "ky": 47.418+ },+ "kicad_reference": "no KiCad library footprint exists for DVG0010A (KiCad's SOIC-10 3.9 x 4.9 mm, 1 mm pitch, is a different package)"+}\ No newline at end of file
provenance/overlay-proof.jsonadded+30
@@ -0,0 +1,30 @@+{+ "page": "SBOSA24D p.45 at 300 dpi",+ "px_per_mm": 71.117,+ "kx": 71.262,+ "ky": 70.971,+ "calibration": "top-view lead-tip span = E 10.30 (9.97..10.63 TYP mid) and molded length = D 10.30 (10.1..10.5 mid)",+ "drawing_measured_mm": {+  "front_view_height": 2.601,+  "end_view_height": 2.587,+  "front_view_span": 10.307+ },+ "model_mm": {+  "body": [+   -3.75,+   -5.15,+   0.2,+   3.75,+   5.15,+   2.55+  ],+  "pins": [+   -5.15,+   -4.65,+   -0.0,+   5.15,+   4.65,+   1.237+  ]+ }+}\ No newline at end of file
provenance/tmcs1123b1aqdvgr-features.jsonadded+26
@@ -0,0 +1,26 @@+{+  "extracted_by": "service-step2glb 0.2.0",+  "extracted_at": "2026-10-21T18:12:14Z",+  "bbox_mm": {+    "x": [+      -5.15,+      5.15+    ],+    "y": [+      -5.15,+      5.15+    ],+    "z": [+      -0.0,+      2.55+    ]+  },+  "floor_z_mm": -0.0,+  "top_z_mm": 2.55,+  "longest_axis": "x",+  "pin1": {+    "source": "unknown"+  },+  "duration_ms": 522,+  "warnings": []+}\ No newline at end of file
provenance/tools/build_dvg10.pyadded+101
@@ -0,0 +1,101 @@+#!/usr/bin/env python3+"""Build TI's DVG0010A package (10-pin wide-body SOIC used by TMCS1123) from the package drawing+(SBOSA24D p.45, drawing 4226847/C 10/2022) with CadQuery, in the Adom / KiCad 3D frame: Z up, seated on z = 0,+centred on the footprint origin, pins along x, pin 1 at (-x, +y) (footprint pad 1 at (-x, -y) in KiCad's Y-down+footprint). Lead path construction (radiused gull-wing: shoulder, top bend, angled rise, bottom bend, flat foot)+follows the build_soic8.py builder on adom/mcp2562fd-e-sn.+Pins 1 (IN+) and 2 (IN-) are the two wide current leads on the -x side (4.12..4.32 wide, centred at y = +-2.54);+pins 3..10 are 0.31..0.51 wide on the +x side at 1.27 mm pitch, pin 3 at -y, pin 10 at +y.+usage: build_dvg10.py out.step [params.json]   (assembly: body (black epoxy), pins (tin))"""+import sys, json, math+import cadquery as cq++P = dict(+    E=10.30,            # overall lead span, drawing 9.97 .. 10.63 TYP -> mid+    E1=7.50,            # molded width, 7.4 .. 7.6+    D=10.30,            # molded length, 10.1 .. 10.5+    A=2.55,             # overall height, drawing 2.65 MAX (not printed nominal; chosen inside the limit)+    A1=0.20,            # standoff, 0.1 .. 0.3 -> mid+    b=0.41,             # signal lead width, 0.31 .. 0.51 -> mid+    bw=4.22,            # current lead width, 4.12 .. 4.32 -> mid+    yw=2.54,            # current lead centre offset from the package centre line, 2.44 .. 2.64 -> mid+    e=1.27,             # signal pitch, 7X 1.27+    c=0.275,            # lead thickness, 0.23 .. 0.32 -> mid+    parting=1.10,       # parting line height: not dimensioned; read off the side view (about 0.43 A)+    top_inset=0.15, bot_inset=0.10,   # mold draft insets per side: not dimensioned (JEDEC MS-013 style draft)+    r_in=0.10,          # inner bend radius: not dimensioned (as KiCad's gull-wing generator)+    lead_angle=8.0,     # rise off vertical, degrees: not dimensioned+    foot_flat=0.50,     # flat foot at z = 0; gauge-plane L = foot_flat + 0.354 = 0.854 (drawing 0.40 .. 1.27)+    pin1=dict(x=-2.60, y=4.00, d=0.90, depth=0.05),  # dimple inside the drawing's PIN 1 ID AREA (top-left)+    detail="full",      # full | low (bends as 3 chords) | superlow (1 chord, undrafted body)+)+if len(sys.argv) > 2:+    P.update(json.load(open(sys.argv[2])))++def path_pts():+    c, r = P["c"], P["r_in"] + P["c"] / 2+    tip = P["E"] / 2; a = math.radians(P["lead_angle"])+    x_fb = tip - P["foot_flat"]; cb = (x_fb, c / 2 + r)+    pb_end = (cb[0] - r * math.cos(a), cb[1] - r * math.sin(a))+    ct_z = P["parting"] - r+    pt_start_z = ct_z + r * math.sin(a)+    dz = pt_start_z - pb_end[1]+    pt_start = (pb_end[0] - dz * math.tan(a), pt_start_z)+    ct = (pt_start[0] - r * math.cos(a), ct_z)+    return dict(inner=P["E1"] / 2 - 0.40, x_sh=ct[0], ct=ct, pb_end=pb_end, cb=cb, x_fb=x_fb, tip=tip, r=r)++def arc(wp, c, r, t0, t1, s, top):+    pt = (lambda t: (c[0] + r * math.sin(t), c[1] + r * math.cos(t))) if top else (lambda t: (c[0] - r * math.cos(t), c[1] - r * math.sin(t)))+    if P["detail"] == "full":+        m, e = pt((t0 + t1) / 2), pt(t1)+        return wp.threePointArc((s * m[0], m[1]), (s * e[0], e[1]))+    n = 3 if P["detail"] == "low" else 1+    for i in range(1, n + 1):+        q = pt(t0 + (t1 - t0) * i / n); wp = wp.lineTo(s * q[0], q[1])+    return wp++def make_lead(y, s, width):+    q = path_pts(); r, a = q["r"], math.radians(P["lead_angle"]); zc = P["parting"]+    wp = cq.Workplane("XZ").moveTo(s * q["inner"], zc).lineTo(s * q["x_sh"], zc)+    wp = arc(wp, q["ct"], r, 0.0, math.pi / 2 - a, s, top=True)+    wp = wp.lineTo(s * q["pb_end"][0], q["pb_end"][1])+    wp = arc(wp, q["cb"], r, a, math.pi / 2, s, top=False)+    wp = wp.lineTo(s * q["tip"], P["c"] / 2)+    path = wp.wire().val()+    # XZ workplane maps local y to global z but local "out of plane" to -y: build at y = 0 and move+    prof = cq.Workplane(cq.Plane(origin=(s * q["inner"], 0, zc), xDir=(0, 1, 0), normal=(s, 0, 0))).rect(width, P["c"])+    solid = prof.sweep(cq.Workplane().add(path), transition="round" if P["detail"] == "full" else "right").val()+    return solid.translate(cq.Vector(0, y, 0))++def body():+    E1, D, A, A1, pz = P["E1"], P["D"], P["A"], P["A1"], P["parting"]+    p1 = P["pin1"]+    if P["detail"] == "superlow":+        b = cq.Workplane("XY").workplane(offset=A1).rect(E1, D).extrude(A - A1)+    else:+        lo = cq.Workplane("XY").workplane(offset=A1).rect(E1 - 2 * P["bot_inset"], D - 2 * P["bot_inset"]) \+            .workplane(offset=pz - A1).rect(E1, D).loft()+        hi = cq.Workplane("XY").workplane(offset=pz).rect(E1, D) \+            .workplane(offset=A - pz).rect(E1 - 2 * P["top_inset"], D - 2 * P["top_inset"]).loft()+        b = lo.union(hi)+    dimple = cq.Workplane("XY").workplane(offset=A - p1["depth"]).center(p1["x"], p1["y"]).circle(p1["d"] / 2).extrude(p1["depth"] + 0.01)+    return b.cut(dimple).val()++def main(out):+    q = path_pts()+    assert q["x_sh"] > P["E1"] / 2, f"shoulder {q['x_sh']:.3f} inside the body"+    leads = [make_lead(+P["yw"], -1, P["bw"]),          # pin 1 IN+  (-x, +y)+             make_lead(-P["yw"], -1, P["bw"])]          # pin 2 IN-  (-x, -y)+    for k in range(3, 11):                              # pin 3 at -y .. pin 10 at +y on +x+        leads.append(make_lead(-3.5 * P["e"] + (k - 3) * P["e"], +1, P["b"]))+    bd = body()+    pins = cq.Compound.makeCompound([l.cut(bd) for l in leads])+    asm = cq.Assembly(name="DVG0010A")+    asm.add(bd, name="body", color=cq.Color(0.1, 0.1, 0.1))+    asm.add(pins, name="pins", color=cq.Color(0.82, 0.82, 0.80))+    asm.save(out, exportType="STEP")+    L = P["foot_flat"] + (P["r_in"] + P["c"]) * math.cos(math.asin((P["r_in"] + P["c"] - 0.25) / (P["r_in"] + P["c"])))+    print(json.dumps({"out": out, "shoulder_x": round(q["x_sh"], 4), "gauge_L_mm": round(L, 4), "params": P}))++if __name__ == "__main__":+    main(sys.argv[1])
provenance/tools/dims.pyadded+45
@@ -0,0 +1,45 @@+#!/usr/bin/env python3+"""Measure a SOIC-8 gull-wing STEP (KiCad frame: Z up, seated on z = 0, pins along +-x, pitch along y),+whether body and leads are separate solids or one fused solid, using plane sections:+  body  : section y = 0 (between leads) -> E1 (molded width, widest), A1 (standoff), A (overall height);+          section x = 0 -> D (molded length)+  leads : section y = lead centre -> tip-to-tip E, gauge-plane foot L (JEDEC: tip to where the lead's lower+          outer surface crosses z = 0.25); section x = foot (tip + 0.15) -> lead width b (per lead), thickness c+usage: dims.py part.step [lead_y]   (lead_y default -1.905)+(from adom/mcp2562fd-e-sn; changed for DVG0010A: tip end face excluded from the gauge crossings, lead edges paired)"""+import sys, json, cadquery as cq+from OCP.BRepAlgoAPI import BRepAlgoAPI_Section+from OCP.gp import gp_Pln, gp_Pnt, gp_Dir++def sec(shape, p, d):+    s = BRepAlgoAPI_Section(shape.wrapped, gp_Pln(gp_Pnt(*p), gp_Dir(*d))); s.Build()+    return cq.Shape.cast(s.Shape())++a = cq.importers.importStep(sys.argv[1]); shp = cq.Compound.makeCompound(a.solids().vals())+ly = float(sys.argv[2]) if len(sys.argv) > 2 else -1.905+bb = shp.BoundingBox()+r = lambda v: round(v, 4)+o = {"file": sys.argv[1].split("/")[-1], "solids": len(a.solids().vals()),+     "overall_bbox": [r(v) for v in (bb.xmin, bb.ymin, bb.zmin, bb.xmax, bb.ymax, bb.zmax)]}+b0 = sec(shp, (0, 0, 0), (0, 1, 0)).BoundingBox()+o["E1_body_width"] = r(b0.xlen); o["A1_standoff"] = r(b0.zmin); o["A_overall_height"] = r(b0.zmax)+o["A2_molded_thickness"] = r(b0.zmax - b0.zmin)+b1 = sec(shp, (0, 0, 0), (1, 0, 0)).BoundingBox(); o["D_body_length"] = r(b1.ylen)+prof = sec(shp, (0, ly, 0), (0, 1, 0)); pb = prof.BoundingBox()+o["E_tip_to_tip"] = r(pb.xlen)+g = sec(prof, (0, 0, 0.25), (0, 0, 1))+xs = sorted(v.X for v in g.Vertices() if v.X < 0)+o["gauge_crossings_x"] = [r(x) for x in xs]+xs = [x for x in xs if x - pb.xmin > 1e-3]  # drop the tip end face itself (it spans the gauge plane on a thick lead)+o["L_gauge"] = r(xs[0] - pb.xmin) if xs else None+foot = sec(shp, (pb.xmin + 0.15, 0, 0), (1, 0, 0))+# group edges by y into leads+ys = sorted(set(r(v.Y) for v in foot.Vertices()))+groups = [ys[i:i + 2] for i in range(0, len(ys), 2)]   # each lead section contributes its two side edges+o["foot_leads_y"] = [[g_[0], g_[-1]] for g_ in groups]+o["b_lead_width"] = [r(g_[-1] - g_[0]) for g_ in groups]+o["pitch"] = [r((groups[i+1][0] + groups[i+1][-1]) / 2 - (groups[i][0] + groups[i][-1]) / 2) for i in range(len(groups) - 1)]+zs = [v.Z for v in foot.Vertices()]+o["c_lead_thickness"] = r(max(zs) - min(zs)) if zs else None+o["foot_z"] = [r(min(zs)), r(max(zs))] if zs else None+print(json.dumps(o, indent=1))
provenance/tools/dims_signal.pyadded+15
@@ -0,0 +1,15 @@+#!/usr/bin/env python3+"""Signal-lead row (+x side) of the DVG0010A model: foot section at x = tip - 0.15 -> lead widths, centres, pitch;+gauge-plane L on pin 10's centre line (y = +4.445). usage: dims_signal.py part.step"""+import sys, json, cadquery as cq+from OCP.BRepAlgoAPI import BRepAlgoAPI_Section+from OCP.gp import gp_Pln, gp_Pnt, gp_Dir+def sec(shape, p, d):+    s = BRepAlgoAPI_Section(shape.wrapped, gp_Pln(gp_Pnt(*p), gp_Dir(*d))); s.Build(); return cq.Shape.cast(s.Shape())+a = cq.importers.importStep(sys.argv[1]); shp = cq.Compound.makeCompound(a.solids().vals()); r = lambda v: round(v, 4)+prof = sec(shp, (0, 4.445, 0), (0, 1, 0)); pb = prof.BoundingBox()+xs = sorted((v.X for v in sec(prof, (0, 0, 0.25), (0, 0, 1)).Vertices() if v.X > 0 and pb.xmax - v.X > 1e-3), reverse=True)+foot = sec(shp, (pb.xmax - 0.15, 0, 0), (1, 0, 0)); ys = sorted(set(r(v.Y) for v in foot.Vertices())); gr = [ys[i:i + 2] for i in range(0, len(ys), 2)]+c = [(g[0] + g[-1]) / 2 for g in gr]+print(json.dumps({"row": "+x (pins 3..10)", "L_gauge_pin10": r(pb.xmax - xs[0]) if xs else None, "b_lead_width": [r(g[-1] - g[0]) for g in gr],+                  "centres_y": [r(v) for v in c], "pitch": [r(c[i + 1] - c[i]) for i in range(len(c) - 1)]}, indent=1))
provenance/tools/footprint-create.jsonadded+99
@@ -0,0 +1,99 @@+{+ "footprintName": "tmcs1123b1aqdvgr",+ "description": "TI DVG0010A 10-pin wide-body SOIC (7.5 x 10.3 mm body), TMCS1123 isolated current sensor; land pattern per TI drawing 4226847/C, HV / isolation option (8.1 mm pad-to-pad clearance/creepage), SBOSA24D p.46",+ "tags": "SOIC SOIC-10 DVG DVG0010A TMCS1123 isolated current sensor creepage",+ "pads": [+  {+   "number": "1",+   "x": -4.875,+   "y": -2.54,+   "dx": 1.65,+   "dy": 4.41,+   "shape": "roundrect"+  },+  {+   "number": "2",+   "x": -4.875,+   "y": 2.54,+   "dx": 1.65,+   "dy": 4.41,+   "shape": "roundrect"+  },+  {+   "number": "3",+   "x": 4.875,+   "y": 4.445,+   "dx": 1.65,+   "dy": 0.6,+   "shape": "roundrect"+  },+  {+   "number": "4",+   "x": 4.875,+   "y": 3.175,+   "dx": 1.65,+   "dy": 0.6,+   "shape": "roundrect"+  },+  {+   "number": "5",+   "x": 4.875,+   "y": 1.905,+   "dx": 1.65,+   "dy": 0.6,+   "shape": "roundrect"+  },+  {+   "number": "6",+   "x": 4.875,+   "y": 0.635,+   "dx": 1.65,+   "dy": 0.6,+   "shape": "roundrect"+  },+  {+   "number": "7",+   "x": 4.875,+   "y": -0.635,+   "dx": 1.65,+   "dy": 0.6,+   "shape": "roundrect"+  },+  {+   "number": "8",+   "x": 4.875,+   "y": -1.905,+   "dx": 1.65,+   "dy": 0.6,+   "shape": "roundrect"+  },+  {+   "number": "9",+   "x": 4.875,+   "y": -3.175,+   "dx": 1.65,+   "dy": 0.6,+   "shape": "roundrect"+  },+  {+   "number": "10",+   "x": 4.875,+   "y": -4.445,+   "dx": 1.65,+   "dy": 0.6,+   "shape": "roundrect"+  }+ ],+ "body": {+  "x1": -3.75,+  "y1": -5.15,+  "x2": 3.75,+  "y2": 5.15+ },+ "courtyard": {+  "x1": -5.95,+  "y1": -5.5,+  "x2": 5.95,+  "y2": 5.5+ }+}\ No newline at end of file
provenance/tools/fp_check.pyadded+41
@@ -0,0 +1,41 @@+#!/usr/bin/env python3+"""Check the KiCad footprint pad by pad against TI's DVG0010A example board layout (SBOSA24D p.46, HV / isolation+option) and overlay the pads on the drawing. The drawing's blue pad outlines of the right-hand (HV) pattern are+found by colour; their span (11.40 mm = 9.75 + 1.65 across, 9.49 mm = 5.08 + 4.41 along) calibrates px/mm.+usage: fp_check.py fp.kicad_mod page46-300dpi.png out.png out.json"""+import sys, re, json+import numpy as np+from PIL import Image, ImageDraw+fp, page, out, outj = sys.argv[1:5]+s = open(fp).read()+pads = [dict(n=m[0], x=float(m[1]), y=float(m[2]), w=float(m[3]), h=float(m[4]))+        for m in re.findall(r'\(pad "(\d+)" smd \w+ \(at (-?[\d.]+) (-?[\d.]+)\) \(size ([\d.]+) ([\d.]+)\)', s)]+# TI HV / isolation option, top view, KiCad Y down, pin 1 top-left+ref = {"1": (-4.875, -2.54, 1.65, 4.41), "2": (-4.875, 2.54, 1.65, 4.41)}+for k in range(3, 11): ref[str(k)] = (4.875, round(4.445 - (k - 3) * 1.27, 3), 1.65, 0.6)+rows = []+for p in pads:+    r = ref[p["n"]]; d = [round(a - b, 4) for a, b in zip((p["x"], p["y"], p["w"], p["h"]), r)]+    rows.append({"pad": p["n"], "footprint": [p["x"], p["y"], p["w"], p["h"]], "drawing": list(r), "delta": d, "match": all(abs(v) < 1e-3 for v in d)})+inner = min(p["x"] - p["w"] / 2 for p in pads if p["x"] > 0) - max(p["x"] + p["w"] / 2 for p in pads if p["x"] < 0)+im = Image.open(page).convert("RGB"); A = np.array(im).astype(int); H, W = A.shape[:2]+blue = (A[..., 2] > 150) & (A[..., 0] < 80) & (A[..., 1] < 170) & (A[..., 1] > 60)+x0, x1, y0, y1 = int(.53 * W), int(.95 * W), int(.18 * H), int(.42 * H)+yy, xx = np.nonzero(blue[y0:y1, x0:x1]); bx0, bx1, by0, by1 = xx.min() + x0, xx.max() + x0, yy.min() + y0, yy.max() + y0+kx = (bx1 - bx0) / 11.40; ky = (by1 - by0) / 9.49; k = (kx + ky) / 2; cx, cy = (bx0 + bx1) / 2, (by0 + by1) / 2+lay = Image.new("RGBA", im.size, (0, 0, 0, 0)); d = ImageDraw.Draw(lay)+for p in pads:+    d.rectangle([cx + k * (p["x"] - p["w"] / 2), cy + k * (p["y"] - p["h"] / 2), cx + k * (p["x"] + p["w"] / 2), cy + k * (p["y"] + p["h"] / 2)],+                fill=(230, 40, 40, 90), outline=(230, 40, 40, 255), width=3)+d.rectangle([cx - k * 4.05, cy - k * 5.5, cx + k * 4.05, cy + k * 5.5], outline=(255, 170, 30, 255), width=4)+res = Image.alpha_composite(im.convert("RGBA"), lay).convert("RGB")+res.crop((int(.50 * W), int(.15 * H), int(.97 * W), int(.46 * H))).save(out)+rep = {"drawing": "TI DVG0010A example board layout, HV / isolation option (8.1 mm clearance/creepage), SBOSA24D p.46, 4226847/C",+       "frame": "KiCad footprint, Y down, top view; pin 1 top-left as in TI's top view",+       "pads": rows, "all_match": all(r["match"] for r in rows), "corner_radius_mm": 0.05,+       "pad_to_pad_clearance_mm": round(inner, 3), "datasheet_min_creepage_clearance_mm": 8.0,+       "keepout": {"layers": "*.Cu (KiCad rule area: no tracks, vias, pads or pours)", "rect_mm": [-4.05, -5.5, 4.05, 5.5]},+       "ipc_option_not_used": "IPC-7351 nominal option (2.0 mm pads at 9.3 mm, 7.3 mm clearance) is below the part's 8 mm rating",+       "overlay_calibration": {"px_per_mm": round(k, 3), "kx": round(kx, 3), "ky": round(ky, 3)},+       "kicad_reference": "no KiCad library footprint exists for DVG0010A (KiCad's SOIC-10 3.9 x 4.9 mm, 1 mm pitch, is a different package)"}+json.dump(rep, open(outj, "w"), indent=1); print(json.dumps({k: rep[k] for k in ("all_match", "pad_to_pad_clearance_mm", "overlay_calibration")}))
provenance/tools/fp_finish.pyadded+32
@@ -0,0 +1,32 @@+#!/usr/bin/env python3+"""Finish the adom-footprint 1.0.26 output for TI DVG0010A: set each pad's corner radius to the drawing's R0.05+(adom-footprint writes roundrect_rratio 0.25), draw a pin-1 chamfer on F.Fab, add the isolation-barrier keepout+(rule area, all copper layers, between the inner pad edges x = -4.05 .. +4.05 across the courtyard height) with a+Cmts.User note, and bind the 3D model. usage: fp_finish.py in.kicad_mod out.kicad_mod"""+import re, sys+s = open(sys.argv[1]).read()+def rr(m):+    w, h = float(m.group(2)), float(m.group(3))+    return f"{m.group(1)}(size {m.group(2)} {m.group(3)}){m.group(4)}(roundrect_rratio {0.05 / min(w, h):.4f})"+s = re.sub(r"(\(pad \"\d+\" smd roundrect \(at [^)]*\) )\(size ([\d.]+) ([\d.]+)\)(\s*\(layers [^)]*\) )\(roundrect_rratio [\d.]+\)", rr, s)+s = s.replace('(fp_rect (start -3.75 -5.15) (end 3.75 5.15)\n    (stroke (width 0.1) (type default)) (fill none) (layer "F.Fab"))',+ '(fp_poly (pts (xy -2.75 -5.15) (xy 3.75 -5.15) (xy 3.75 5.15) (xy -3.75 5.15) (xy -3.75 -4.15))\n'+ '    (stroke (width 0.1) (type default)) (fill none) (layer "F.Fab"))\n'+ '  (fp_line (start 0 -5.15) (end 0 5.15)\n    (stroke (width 0.1) (type dash)) (layer "F.Fab"))\n'+ '  (fp_text user "ISOLATION KEEPOUT 8.1 mm" (at 0 0 90) (layer "Cmts.User")\n    (effects (font (size 0.6 0.6) (thickness 0.09))))')+s = s.replace('(fp_text value "tmcs1123b1aqdvgr"', '(fp_text value "TMCS1123B1AQDVGR"')+zone = '''  (zone (net 0) (net_name "") (layers "*.Cu") (name "Isolation keepout")+    (hatch edge 0.5)+    (connect_pads (clearance 0))+    (min_thickness 0.25)+    (keepout (tracks not_allowed) (vias not_allowed) (pads not_allowed) (copperpour not_allowed) (footprints allowed))+    (fill (thermal_gap 0.5) (thermal_bridge_width 0.5))+    (polygon (pts (xy -4.05 -5.5) (xy 4.05 -5.5) (xy 4.05 5.5) (xy -4.05 5.5))))+  (model "${KIPRJMOD}/tmcs1123b1aqdvgr-etched.step"+    (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) (rotate (xyz 0 0 0)))+)'''+s = s.rstrip()+assert s.endswith(")")+s = s[:-1].rstrip() + "\n" + zone + "\n"+open(sys.argv[2], "w").write(s)+print("ok")
provenance/tools/glb_batch.pyadded+89
@@ -0,0 +1,89 @@+#!/usr/bin/env python3+"""Lossless primitive batching for a step2glb chip GLB (uncompressed float accessors), plus an optional graft of+the reviewed Adom.LaserEtch mark from another GLB in the same frame.+  * every mesh node keeps its name (body, pins, Adom.LaserEtch); its primitives are joined per material+    (positions, normals and indices concatenated; geometry unchanged)+  * --etch-from etched.glb copies that file's Adom.LaserEtch mesh node (with its material) into this scene+usage: glb_batch.py in.glb out.glb [--etch-from etched.glb]+prints JSON stats: triangles, primitives, bytes, nodes, bounds (mm)"""+import sys, json, struct+import numpy as np+from pygltflib import GLTF2, Buffer, BufferView, Accessor, Mesh, Primitive, Node, Material, PbrMetallicRoughness, Attributes++CT = {5126: np.float32, 5125: np.uint32, 5123: np.uint16, 5121: np.uint8}+NC = {"SCALAR": 1, "VEC2": 2, "VEC3": 3, "VEC4": 4}++def read(g, blob, ai):+    a = g.accessors[ai]; bv = g.bufferViews[a.bufferView]+    dt = CT[a.componentType]; n = NC[a.type]+    off = (bv.byteOffset or 0) + (a.byteOffset or 0)+    stride = bv.byteStride or np.dtype(dt).itemsize * n+    if stride == np.dtype(dt).itemsize * n:+        return np.frombuffer(blob, dt, a.count * n, off).reshape(a.count, n) if n > 1 else np.frombuffer(blob, dt, a.count, off)+    raw = np.frombuffer(blob, np.uint8, stride * (a.count - 1) + np.dtype(dt).itemsize * n, off)+    return np.stack([np.frombuffer(raw[i * stride:i * stride + np.dtype(dt).itemsize * n].tobytes(), dt) for i in range(a.count)])++def parts(path):+    g = GLTF2().load(path); blob = g.binary_blob()+    out = []+    for ni, n in enumerate(g.nodes):+        if n.mesh is None: continue+        by_mat = {}+        for p in g.meshes[n.mesh].primitives:+            P = read(g, blob, p.attributes.POSITION).astype(np.float32)+            N = read(g, blob, p.attributes.NORMAL).astype(np.float32) if p.attributes.NORMAL is not None else None+            I = read(g, blob, p.indices).astype(np.uint32) if p.indices is not None else np.arange(len(P), dtype=np.uint32)+            by_mat.setdefault(p.material, []).append((P, N, I))+        out.append((ni, n.name, by_mat))+    return g, out++def main():+    src, dst = sys.argv[1], sys.argv[2]+    etch = sys.argv[sys.argv.index("--etch-from") + 1] if "--etch-from" in sys.argv else None+    g, ps = parts(src)+    data = bytearray(); bviews = []; accs = []+    def add(arr, target, comp, typ, minmax=False):+        nonlocal data+        while len(data) % 4: data += b"\0"+        off = len(data); b = arr.tobytes(); data += b+        bviews.append(BufferView(buffer=0, byteOffset=off, byteLength=len(b), target=target))+        a = Accessor(bufferView=len(bviews) - 1, componentType=comp, count=len(arr), type=typ)+        if minmax: a.min = arr.min(0).tolist(); a.max = arr.max(0).tolist()+        accs.append(a); return len(accs) - 1+    def build_mesh(name, by_mat, matmap):+        prims = []+        for mi, lst in by_mat.items():+            Ps, Ns, Is, o = [], [], [], 0+            for P, N, I in lst:+                Ps.append(P); Ns.append(N if N is not None else np.zeros_like(P)); Is.append(I + o); o += len(P)+            P = np.concatenate(Ps); N = np.concatenate(Ns); I = np.concatenate(Is).astype(np.uint32)+            pa = add(P, 34962, 5126, "VEC3", True); na = add(N, 34962, 5126, "VEC3")+            ia = add(I, 34963, 5125, "SCALAR")+            prims.append(Primitive(attributes=Attributes(POSITION=pa, NORMAL=na), indices=ia, material=matmap(mi)))+        return Mesh(name=name, primitives=prims)+    meshes = []+    for ni, name, by_mat in ps:+        meshes.append(build_mesh(name, by_mat, lambda m: m)); g.nodes[ni].mesh = len(meshes) - 1+    if etch:+        ge, pe = parts(etch)+        hits = [x for x in pe if (x[1] or "").startswith("Adom.LaserEtch")]+        if not hits: sys.exit("ERROR: no Adom.LaserEtch node in " + etch)+        for ni, name, by_mat in hits:+            def mm(m):+                em = ge.materials[m]+                g.materials.append(Material(name=em.name, pbrMetallicRoughness=PbrMetallicRoughness(+                    baseColorFactor=list(em.pbrMetallicRoughness.baseColorFactor), metallicFactor=0.0, roughnessFactor=0.7)))+                return len(g.materials) - 1+            meshes.append(build_mesh(name, by_mat, mm))+            g.nodes.append(Node(name=name, mesh=len(meshes) - 1))+            g.nodes[g.scenes[g.scene or 0].nodes[0]].children.append(len(g.nodes) - 1)+    g.meshes = meshes; g.accessors = accs; g.bufferViews = bviews+    g.buffers = [Buffer(byteLength=len(data))]; g.set_binary_blob(bytes(data))+    g.save(dst)+    tris = sum(accs[p.indices].count // 3 for m in meshes for p in m.primitives)+    allp = np.concatenate([np.array(accs[p.attributes.POSITION].min + accs[p.attributes.POSITION].max).reshape(2, 3) for m in meshes for p in m.primitives])+    import os+    print(json.dumps({"out": dst, "triangles": tris, "primitives": sum(len(m.primitives) for m in meshes),+                      "bytes": os.path.getsize(dst), "nodes": [n.name for n in g.nodes if n.mesh is not None],+                      "boundsMm": [round(v * 1000, 4) for v in list(allp.min(0)) + list(allp.max(0))]}))+main()
provenance/tools/hero_png.pyadded+20
@@ -0,0 +1,20 @@+#!/usr/bin/env python3+"""Compose docs/hero.png (1600 x 1000, 16:10): the etched model's iso render beside the part's identity.+usage: hero_png.py iso.png out.png"""+import sys+from PIL import Image, ImageDraw, ImageFont+iso = Image.open(sys.argv[1]).convert("RGB")+W, H = 1600, 1000; bg = (13, 17, 23)+im = Image.new("RGB", (W, H), bg); im.paste(iso.resize((900, 900), Image.LANCZOS), (10, 50))+d = ImageDraw.Draw(im)+F = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"; FB = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf"+def t(y, s, size, col, bold=False):+    d.text((930, y), s, font=ImageFont.truetype(FB if bold else F, size), fill=col)+t(250, "TMCS1123B1AQDVGR", 46, (230, 237, 243), True)+t(330, "Texas Instruments", 32, (139, 148, 158))+t(410, "Isolated Hall-effect current sensor", 32, (230, 237, 243))+for i, s in enumerate(["25 mV/A, 1.65 V zero-current output", "Linear ±62 A at 3.3 V", "80 A RMS, 250 kHz, overcurrent output",+                       "SOIC-10 wide body (DVG), 8.1 mm keepout"]):+    t(480 + i * 52, s, 28, (0, 230, 220) if i == 0 else (200, 208, 216))+d.rectangle([930, 720, 1070, 726], fill=(0, 230, 220))+im.save(sys.argv[2]); print(im.size)
provenance/tools/hero_post_keepout.pyadded+64
@@ -0,0 +1,64 @@+#!/usr/bin/env python3+"""Add the footprint's isolation keepout to the hero GLB as its own declared layer (not part of the adom-hero+artwork root, so the hero stays adom-hero conformant): an amber translucent fill and a dashed amber border over+the KiCad rule area (x -4.05 .. 4.05, y -5.5 .. 5.5 mm: between the inner pad edges of TI's HV / isolation land+pattern, 8.1 mm, SBOSA24D p.46), flat at z = -0.03 mm, unlit, BLEND, double-sided, with a tooltip.+usage: hero_post_keepout.py hero.glb [out.glb]"""+import sys, json, struct, numpy as np+from pygltflib import GLTF2, Buffer, BufferView, Accessor, Mesh, Primitive, Node, Material, PbrMetallicRoughness, Attributes+src = sys.argv[1]; out = sys.argv[2] if len(sys.argv) > 2 else src+g = GLTF2().load(src); blob = bytearray(g.binary_blob())+if any(n.name == "Adom.IsolationKeepout" for n in g.nodes): sys.exit("already has Adom.IsolationKeepout")+X, Y, Z = 4.05, 5.5, -0.03+def quads(rects):+    P, I = [], []+    for x0, y0, x1, y1 in rects:+        b = len(P); P += [(x0, y0, Z), (x1, y0, Z), (x1, y1, Z), (x0, y1, Z)]; I += [b, b + 1, b + 2, b, b + 2, b + 3]+    return np.array(P, np.float32) / 1000, np.array(I, np.uint32)+fillP, fillI = quads([(-X, -Y, X, Y)])+w, dash, gap = 0.08, 0.45, 0.27+rects = []+def dashed(a, b, horiz, fixed):+    t = a+    while t < b:+        e = min(t + dash, b)+        rects.append((t, fixed - w / 2, e, fixed + w / 2) if horiz else (fixed - w / 2, t, fixed + w / 2, e)); t = e + gap+dashed(-X, X, True, -Y); dashed(-X, X, True, Y); dashed(-Y, Y, False, -X); dashed(-Y, Y, False, X)+lineP, lineI = quads(rects)+def add(arr, target, comp, typ, mm=False):+    while len(blob) % 4: blob.append(0)+    off = len(blob); b = arr.tobytes(); blob.extend(b)+    g.bufferViews.append(BufferView(buffer=0, byteOffset=off, byteLength=len(b), target=target))+    a = Accessor(bufferView=len(g.bufferViews) - 1, componentType=comp, count=len(arr), type=typ)+    if mm: a.min = arr.min(0).tolist(); a.max = arr.max(0).tolist()+    g.accessors.append(a); return len(g.accessors) - 1+def mat(name, rgba):+    g.materials.append(Material(name=name, alphaMode="BLEND", doubleSided=True, extensions={"KHR_materials_unlit": {}},+        pbrMetallicRoughness=PbrMetallicRoughness(baseColorFactor=rgba, metallicFactor=0.0, roughnessFactor=1.0)))+    return len(g.materials) - 1+prims = []+for P, I, m in ((fillP, fillI, mat("Isolation keepout fill - 12 percent opacity", [1.0, 0.70, 0.15, 0.12])),+                (lineP, lineI, mat("Isolation keepout border - 60 percent opacity", [1.0, 0.70, 0.15, 0.6]))):+    up = np.tile(np.array([[0, 0, 1]], np.float32), (len(P), 1))+    prims.append(Primitive(attributes=Attributes(POSITION=add(P, 34962, 5126, "VEC3", True), NORMAL=add(up, 34962, 5126, "VEC3")),+                           indices=add(I, 34963, 5125, "SCALAR"), material=m))+g.meshes.append(Mesh(name="Adom.IsolationKeepout", primitives=prims))+tip = ("Isolation keepout (footprint rule area, all copper layers)\nNo copper, tracks or vias between the primary pads (IN+, IN-)\n"+       "and the low-voltage pads: 8.1 mm pad-to-pad, TI HV / isolation land pattern\n(SBOSA24D p.46). The device itself is rated 8 mm creepage and clearance (p.6).")+g.nodes.append(Node(name="Adom.IsolationKeepout", mesh=len(g.meshes) - 1, extras={+    "adomLayer": {"key": "isolation_keepout", "label": "Isolation keepout (8.1 mm)", "group": "Footprint"}, "tooltip": tip}))+g.scenes[g.scene or 0].nodes.append(len(g.nodes) - 1)+g.buffers[0].byteLength = len(blob); g.set_binary_blob(bytes(blob))+def chunks(path):+    b = open(path, "rb").read(); n = struct.unpack_from("<I", b, 12)[0]+    return json.loads(b[20:20 + n]), b[20 + n:]+def write(path, j, rest):+    t = json.dumps(j, separators=(",", ":")).encode(); t += b" " * (-len(t) % 4)+    body = struct.pack("<II", len(t), 0x4E4F534A) + t + rest+    open(path, "wb").write(struct.pack("<III", 0x46546C67, 2, 12 + len(body)) + body)+extras = chunks(src)[0].get("asset", {}).get("extras", {})   # pygltflib drops asset.extras on save: carry it over+g.save(out)+j, rest = chunks(out)+extras.setdefault("adomHero", {}).setdefault("post", []).append(+    {"tool": "provenance/tools/hero_post_keepout.py", "node": "Adom.IsolationKeepout", "rect_mm": [-X, -Y, X, Y], "z_mm": Z})+j["asset"]["extras"] = extras; write(out, j, rest); print("OK", out)
provenance/tools/lbr_keepout.pyadded+13
@@ -0,0 +1,13 @@+#!/usr/bin/env python3+"""adom-lbr 2.47.6 does not carry the KiCad footprint's rule area (keepout zone) into the EAGLE/Fusion package.+Add it by hand: rectangles on tRestrict (41), bRestrict (42) and vRestrict (43) over x -4.05 .. 4.05,+y -5.5 .. 5.5 mm (the isolation strip between TI's HV land-pattern pads), plus a label on tDocu (51).+usage: lbr_keepout.py file.lbr"""+import sys+p = sys.argv[1]; s = open(p).read()+if 'layer="41"' in s: sys.exit("already has restrict rectangles")+add = "".join(f'<rectangle x1="-4.05" y1="-5.5" x2="4.05" y2="5.5" layer="{l}"/>\n' for l in (41, 42, 43))+add += '<text x="0" y="0" size="0.6" layer="51" rot="R90" align="center">ISOLATION KEEPOUT 8.1 mm</text>\n'+i = s.find("</package>"); assert i > 0 and s.count("</package>") == 1+s = s[:i] + add + s[i:]+open(p, "w").write(s); print("OK", p)
provenance/tools/materials.pyadded+30
@@ -0,0 +1,30 @@+#!/usr/bin/env python3+"""Physical materials for a chip GLB by part (node name from the STEP assembly). step2glb writes base colours only,+so glTF defaults (metallic 1, roughness 1) render everything as rough metal. Sets:+  body -> "Adom.Body (epoxy)" metallic 0, roughness 0.55 (colour kept)+  pins -> "Adom.Leads (matte tin)" metallic 1, roughness 0.35, tin colour+  Adom.LaserEtch -> "Adom.LaserEtch (virtual MPN)" metallic 0, roughness 0.7 (colour kept)+usage: materials.py in.glb [out.glb]"""+import sys+from pygltflib import GLTF2, PbrMetallicRoughness+TIN = [0.72, 0.72, 0.70, 1.0]+SPEC = {"body": ("Adom.Body (epoxy)", 0.0, 0.55, None), "pins": ("Adom.Leads (matte tin)", 1.0, 0.35, TIN),+        "Adom.LaserEtch": ("Adom.LaserEtch (virtual MPN)", 0.0, 0.7, None)}+src = sys.argv[1]; out = sys.argv[2] if len(sys.argv) > 2 else src+g = GLTF2().load(src); seen = {}+for n in g.nodes:+    if n.mesh is None: continue+    key = next((k for k in SPEC if (n.name or "").startswith(k)), None)+    if key is None: continue+    for p in g.meshes[n.mesh].primitives:+        if p.material is None: continue+        if seen.get(p.material, key) != key: sys.exit(f"ERROR: material {p.material} shared by {seen[p.material]} and {key}")+        seen[p.material] = key+        name, metal, rough, col = SPEC[key]; m = g.materials[p.material]+        pbr = m.pbrMetallicRoughness or PbrMetallicRoughness()+        pbr.metallicFactor, pbr.roughnessFactor = metal, rough+        if col: pbr.baseColorFactor = col+        m.pbrMetallicRoughness = pbr; m.name = name+missing = [k for k in ("body", "pins") if k not in seen.values()]+if missing: sys.exit(f"ERROR: no {missing} part in {src}")+g.save(out); print("OK", out, sorted(set(seen.values())))
provenance/tools/overlay_proof.pyadded+63
@@ -0,0 +1,63 @@+#!/usr/bin/env python3+"""Overlay proof: blend orthographic silhouettes of the model GLB over TI's DVG0010A package drawing+(SBOSA24D p.45 rendered at 300 dpi). Calibration: the drawing's blue outline in each view is found by colour; the+top view's lead-tip span (E) and molded length (D) set the scale (px/mm) and the centre. Views: top (x right,+y up), front (x right, z up, seen along +y), end (y up, z to the left, the +x pin row seen from +x).+usage: overlay_proof.py model.glb page45-300dpi.png out.png out.json"""+import sys, json+import numpy as np+from PIL import Image, ImageDraw+from pygltflib import GLTF2+glb, page, out, outj = sys.argv[1:5]+g = GLTF2().load(glb); blob = g.binary_blob()+CT = {5126: np.float32, 5125: np.uint32, 5123: np.uint16}+def acc(i):+    x = g.accessors[i]; bv = g.bufferViews[x.bufferView]; n = {"SCALAR": 1, "VEC3": 3}[x.type]+    a = np.frombuffer(blob, CT[x.componentType], x.count * n, (bv.byteOffset or 0) + (x.byteOffset or 0))+    return a.reshape(-1, n) if n > 1 else a+def mat(n):+    if n.matrix: return np.array(n.matrix).reshape(4, 4).T+    M = np.eye(4)+    if n.scale: M = M @ np.diag(list(n.scale) + [1])+    return M+parts = {}+def walk(ni, M):+    n = g.nodes[ni]; M = M @ mat(n)+    if n.mesh is not None:+        for p in g.meshes[n.mesh].primitives:+            P = acc(p.attributes.POSITION).astype(float) * 1000; P = (np.c_[P, np.ones(len(P))] @ M.T)[:, :3]+            parts.setdefault(n.name, []).append(P[acc(p.indices).reshape(-1, 3)])+    for c in n.children or []: walk(c, M)+for r in g.scenes[g.scene or 0].nodes: walk(r, np.eye(4))+T = {k: np.concatenate(v) for k, v in parts.items()}+im = Image.open(page).convert("RGB"); A = np.array(im).astype(int)+H, W = A.shape[:2]+blue = (A[..., 2] > 150) & (A[..., 0] < 80) & (A[..., 1] < 170) & (A[..., 1] > 60)+def bbox(x0, x1, y0, y1):+    m = blue[int(y0 * H):int(y1 * H), int(x0 * W):int(x1 * W)]; yy, xx = np.nonzero(m)+    return [xx.min() + int(x0 * W), xx.max() + int(x0 * W), yy.min() + int(y0 * H), yy.max() + int(y0 * H)]+top = bbox(0, .55, .15, .45); side = bbox(.7, .9, .15, .45); front = bbox(.1, .55, .48, .6)+E_nom, D_nom = 10.30, 10.30+kx = (top[1] - top[0]) / E_nom; ky = (top[3] - top[2]) / D_nom; k = (kx + ky) / 2+cx, cy = (top[0] + top[1]) / 2, (top[2] + top[3]) / 2+lay = Image.new("RGBA", im.size, (0, 0, 0, 0)); d = ImageDraw.Draw(lay)+COL = {"body": (230, 40, 40, 70), "pins": (0, 200, 120, 90)}+def draw(proj):+    for name in ("body", "pins"):+        for tri in T[name]:+            d.polygon([tuple(p) for p in proj(tri)], fill=COL[name])+draw(lambda t: np.c_[cx + k * t[:, 0], cy - k * t[:, 1]])                       # top+fx0 = (front[0] + front[1]) / 2; fz0 = front[3]                                  # front: seat at the lowest blue+draw(lambda t: np.c_[fx0 + k * t[:, 0], fz0 - k * t[:, 2]])+sz0 = side[1]; sy0 = (side[2] + side[3]) / 2                                     # end view: seat plane = rightmost blue+draw(lambda t: np.c_[sz0 - k * t[:, 2], sy0 - k * t[:, 1]])+res = Image.alpha_composite(im.convert("RGBA"), lay).convert("RGB")+x0, x1 = int(0.05 * W), int(0.97 * W); y0, y1 = int(0.13 * H), int(0.62 * H)+res.crop((x0, y0, x1, y1)).resize(((x1 - x0) // 2, (y1 - y0) // 2), Image.LANCZOS).save(out)+mm = lambda px: round(px / k, 3)+rep = {"page": "SBOSA24D p.45 at 300 dpi", "px_per_mm": round(k, 3), "kx": round(kx, 3), "ky": round(ky, 3),+       "calibration": "top-view lead-tip span = E 10.30 (9.97..10.63 TYP mid) and molded length = D 10.30 (10.1..10.5 mid)",+       "drawing_measured_mm": {"front_view_height": mm(front[3] - front[2]), "end_view_height": mm(side[1] - side[0]),+                               "front_view_span": mm(front[1] - front[0])},+       "model_mm": {k2: [round(float(v), 3) for v in np.r_[T[k2].reshape(-1, 3).min(0), T[k2].reshape(-1, 3).max(0)]] for k2 in T}}+json.dump(rep, open(outj, "w"), indent=1); print(json.dumps(rep))
provenance/tools/page_meta.pyadded+166
@@ -0,0 +1,166 @@+#!/usr/bin/env python3+"""Write models.json, lod/manifest.json, provenance/3d-model.json and verification.json for adom/tmcs1123b1aqdvgr+from the files on disk (hashes, sizes, triangle counts). Run from the page root. Adapted from adom/mcp2562fd-e-sn."""+import json, hashlib, os, subprocess+from pygltflib import GLTF2+D = "2026-10-21"; S = "tmcs1123b1aqdvgr"; MPN = "TMCS1123B1AQDVGR"+def sha(p): return hashlib.sha256(open(p, "rb").read()).hexdigest()+def blob(p): return subprocess.check_output(["git", "hash-object", p]).decode().strip()+def glbstats(p):+    g = GLTF2().load(p)+    return dict(triangles=sum(g.accessors[pr.indices].count // 3 for m in g.meshes for pr in m.primitives),+                primitives=sum(len(m.primitives) for m in g.meshes), nodes=[n.name for n in g.nodes if n.mesh is not None])+mark = {"text": "TMCS1123 / B1AQDVGR (two lines)", "surface": "top, along the pin rows, upright with pin 1 lower left",+        "colour": "light grey on black epoxy", "virtual": True,+        "note": "virtual identification mark (the orderable MPN) by adom-chip-laser; TI's real marking is 1123B1A (SBOSA24D p.40)"}+def rec(path, **k):+    r = dict(path=path, format=path.rsplit(".", 1)[1], sha256=sha(path), git_blob=blob(path), bytes=os.path.getsize(path)); r.update(k); return r+models = [+ rec(f"{S}-etched.step", title=f"{MPN}, virtual MPN etch (library model)", status="current", slot="model_3d_step", variant="etched",+     role="datasheet-built", use=["board-cad"], marking=mark, colours=True, derived_from=f"{S}.step",+     unique="The board-CAD model: built from TI's DVG0010A drawing values with the MPN etched on top in the Adom.LaserEtch group; bound by the KiCad footprint, the Fusion .lbr and the Altium PcbLib",+     source="provenance/tools/build_dvg10.py + adom-chip-laser 0.2.0 (service-occt etch, placed by adom-aiflow-etch)",+     thumb=f"docs/models/{S}-etched-iso.png", thumb_bottom=f"docs/models/{S}-etched-bottom.png"),+ rec(f"{S}.step", title=f"{MPN}, unmarked", status="current", slot="model_3d_step_plain", variant="plain", role="datasheet-built",+     use=["board-cad", "archive"], marking=None, colours=True, derived_from="TI SBOSA24D p.45 (DVG0010A, 4226847/C)",+     unique="The same package without any marking", source="provenance/tools/build_dvg10.py (default parameters)", thumb=f"docs/models/{S}-glb-top.png"),+ rec(f"{S}-hero.glb", title=f"{MPN}, annotated hero (page viewer only)", status="current", slot="model_3d", variant="hero",+     role="derived", use=["wiki-hero"], marking=mark, colours=True, derived_from=f"{S}-etched.glb + {S}.kicad_mod",+     unique="The etched model plus adom-hero 1.4 reference artwork (teal dashed pad outlines, silkscreen with pin-1 dot, signal names) and an extra declared layer for the 8.1 mm isolation keepout; not for board use",+     source="adom/component-hero hero_glb.py (adom-hero 1.4) + provenance/tools/hero_post_keepout.py", thumb=f"docs/proof/{S}-hero-preview.png"),+ rec(f"{S}-etched.glb", title=f"{MPN}, virtual MPN etch (GLB, board use)", status="current", slot="model_3d_plain", variant="etched",+     role="derived", use=["render", "board-insertion"], marking=mark, colours=True, derived_from=f"{S}-etched.step",+     unique="Web copy of the etched STEP, clean (no pad outlines, labels or silkscreen), primitives batched per part, matte-tin leads and epoxy body",+     source="step2glb 0.13.2 service --compress none + provenance/tools/glb_batch.py + materials.py", thumb=f"docs/models/{S}-etched-iso.png"),+ rec(f"{S}.glb", title=f"{MPN}, unmarked (GLB)", status="current", variant="plain", role="derived",+     use=["render", "board-insertion"], marking=None, colours=True, derived_from=f"{S}.step",+     unique="Web copy of the unmarked STEP", source="step2glb 0.13.2 service --compress none + glb_batch.py + materials.py", thumb=f"docs/models/{S}-glb-top.png"),+]+lodtxt = {"high": "Identical to the etched GLB", "medium": "Bends as 3 straight segments, etch grafted from the high level",+          "low": "Bends as 3 straight segments, no etch", "super-low": "Undrafted body, one-segment bends, no etch"}+for l in ["high", "medium", "low", "super-low"]:+    p = f"lod/{S}-{l}.glb"+    models.append(rec(p, title=f"{MPN}, {l} detail (board LOD)", status="current", variant="lod", role="derived", use=["board-insertion"],+        marking=mark if l in ("high", "medium") else None, colours=True,+        derived_from=f"{S}-etched.step" if l == "high" else ("provenance/tools/params-low.json" if l in ("medium", "low") else "provenance/tools/params-superlow.json"),+        unique=lodtxt[l], source="build_dvg10.py detail level + step2glb service + glb_batch.py + materials.py", thumb=f"lod/{S}-{l}.png"))+json.dump({"schema": "adom/models@1", "part": MPN, "updated": D, "models": models}, open("models.json", "w"), indent=1)++levels = []+for l in ["high", "medium", "low", "super-low"]:+    p = f"lod/{S}-{l}.glb"; st = glbstats(p)+    levels.append(dict(level=l, path=p, sha256=sha(p), sizeBytes=os.path.getsize(p), triangles=st["triangles"], primitives=st["primitives"],+        nodes=st["nodes"], boundsMm=[-5.15, -5.15, 0.0, 5.15, 5.15, 2.555 if l in ("high", "medium") else 2.55],+        markingIncluded=l in ("high", "medium"), helperNodes=[], extensions=[],+        derivation={"high": "the etched GLB itself: etched STEP, step2glb uncompressed, primitives batched per part (lossless)",+                    "medium": "build_dvg10.py at detail=low (bends as 3 chords, drafted body, pin-1 dimple), Adom.LaserEtch mesh grafted unchanged from high",+                    "low": "build_dvg10.py detail=low, no marking (unreadable at this size)",+                    "super-low": "build_dvg10.py detail=superlow: undrafted body, one-chord bends, pin-1 dimple kept, no marking"}[l],+        review="candidate: inspected as cached images (depth-buffered render); not qualified in a streaming LOD viewer",+        preview=dict(path=f"lod/{S}-{l}.png", sha256=sha(f"lod/{S}-{l}.png"), view="iso (front-left, from above), same camera on every level")))+json.dump({"schema": "adom/component-lod@1", "mpn": MPN, "units": "metres (glTF)",+           "upAxis": "Z (Adom/KiCad frame; seated on z = 0, centred on the footprint origin)", "status": "candidate",+           "source": {"path": f"{S}-etched.step", "sha256": sha(f"{S}-etched.step")},+           "generator": "provenance/tools/build_dvg10.py (detail full/low/superlow) -> step2glb 0.13.2 service convert --compress none -> provenance/tools/glb_batch.py (lossless batching per part; etch graft on medium) -> materials.py; previews by render_glb.py",+           "helpers_removed": "none needed: the LODs are built from the clean etched model, never from the hero",+           "levels": levels}, open("lod/manifest.json", "w"), indent=1)++dm = json.load(open("provenance/dims-model.json")); ds = json.load(open("provenance/dims-model-signal.json"))+ov = json.load(open("provenance/overlay-proof.json"))+dims = [("E overall lead span", "9.97 / - / 10.63 (TYP)", "10.300"),+        ("E1 molded width", "7.4 / - / 7.6", f"{dm['E1_body_width']:.3f}"),+        ("D molded length", "10.1 / - / 10.5", f"{dm['D_body_length']:.3f}"),+        ("A overall height", "max 2.65", f"{dm['A_overall_height']:.3f}"),+        ("A1 standoff", "0.1 / - / 0.3", f"{dm['A1_standoff']:.3f}"),+        ("c lead thickness", "0.23 / - / 0.32 (TYP)", f"{dm['c_lead_thickness']:.3f}"),+        ("b signal lead width (pins 3 to 10)", "0.31 / - / 0.51", f"{ds['b_lead_width'][0]:.3f}"),+        ("e signal pitch", "1.27 (7X)", f"{ds['pitch'][0]:.3f}"),+        ("current lead width (pins 1, 2)", "4.12 / - / 4.32", f"{dm['b_lead_width'][0]:.3f}"),+        ("current lead centre from centre line", "2.44 / - / 2.64", f"{dm['pitch'][0] / 2:.3f}"),+        ("gap between current leads", "(0.86) REF", "0.860"),+        ("L foot length (gauge plane 0.25 mm)", "0.40 / - / 1.27", f"{dm['L_gauge']:.3f}"),+        ("(1.4) lead length, body edge to tip", "(1.4) REF", "1.400"),+        ("lead angle at foot", "0 to 8 deg", "0 (flat foot on the seating plane)")]+prov = {+ "schema": "adom/3d-model-provenance@1", "mpn": MPN, "date": D,+ "classification": "Datasheet-built: a CadQuery model generated from TI's printed DVG0010A package values (SBOSA24D p.45), produced by Claude (AI) for Adom. Not manufacturer CAD and not a TI certification.",+ "method_chosen": "3 (build from the drawing): TI's STEP is behind Ultra Librarian's reCAPTCHA and terms form, and no KiCad library model exists for DVG0010A",+ "manufacturer_step": {"tried": ["https://www.ti.com/product/TMCS1123 (CAD/CAE link)", "https://vendor.ultralibrarian.com/TI/embedded/?gpn=TMCS1123&package=DVG&pin=10"],+   "result": "The Ultra Librarian page lists a STEP export (PartUniqueId 1632f2be-2a1e-11ee-9288-0ae0a3b49db5) but the export form needs a reCAPTCHA and a terms checkbox; a plain HTTP request cannot fetch it (checked 2026-10-21)", "status": "not reachable by plain HTTP"},+ "existing_wiki_model": {"page": "adom/tmcs1123a2aqdvgr (the A2A variant, same DVG package)", "checked": D,+   "verdict": "not reused: its footprint and STEP are KiCad's SOIC-10_3.9x4.9mm_P1mm (narrow 3.9 x 4.9 mm body, 1 mm pitch, five pins per side, pads at x = +-2.66), which is a different package from TI's DVG0010A (7.5 x 10.3 mm body, two 4.22 mm current leads on one side and eight 1.27 mm-pitch leads on the other). The page was not modified."},+ "datasheet": {"doc": "TI SBOSA24D, TMCS1123 (July 2023, revised May 2026)", "file": f"docs/{S}-datasheet.pdf", "url": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+   "sha256": sha(f"docs/{S}-datasheet.pdf"), "drawing_pages": "p.45 package outline DVG0010A (4226847/C 10/2022), p.46 example board layout, p.47 stencil", "marking_page": "p.40"},+ "model": {"file": f"{S}.step", "sha256": sha(f"{S}.step"), "builder": "provenance/tools/build_dvg10.py (CadQuery 2.8, OpenCascade); lead construction from build_soic8.py on adom/mcp2562fd-e-sn",+   "how": "drafted two-part body loft (parting line 1.10 mm), ten swept leads (rectangle b x c along a centreline with two 0.2375 mm centreline-radius bends, 8 deg off vertical): two 4.22 mm current leads at y = +-2.54 on -x, eight 0.41 mm leads at 1.27 mm pitch on +x; pin-1 dimple 0.90 mm diameter, 0.05 mm deep inside the drawing's PIN 1 ID AREA; flat foot 0.50 mm so the gauge-plane L is 0.854 mm",+   "chosen_values": "Where the drawing gives a range, the mid value; A (2.65 MAX, no nominal) modelled as 2.55. Not dimensioned by TI and chosen: parting line height 1.10 mm (read off the side view), draft insets 0.10 / 0.15 mm, inner bend radius 0.10 mm, lead angle 8 deg.",+   "frame": "Z up, seated on z = 0, centred on the KiCad footprint origin, pin 1 at (-x, +y) = footprint pad 1 at (-4.875, -2.54) in KiCad's Y-down footprint frame; binds with zero offset and rotation",+   "parts": {"body": "black epoxy", "pins": "matte tin"},+   "dimensions_mm": [dict(item=a, datasheet_min_typ_max=b, model=c) for a, b, c in dims],+   "measurements": ["provenance/dims-model.json (section at y = +2.54, pin 1)", "provenance/dims-model-signal.json (section at y = +4.445, pin 10; foot section of the +x row)"],+   "overlay_proof": {"image": f"docs/proof/{S}-overlay.png", "report": "provenance/overlay-proof.json", "px_per_mm": ov["px_per_mm"],+     "result": "top, front and end silhouettes blended over the p.45 drawing at the drawing's own scale (calibrated on the printed E and D spans, kx and ky agree within 0.4 %); the leads, the current-lead gap and the body outline coincide with the drawing lines"},+   "pin1_mark": "0.90 mm dimple at (-2.60, +4.00) on the top face, inside TI's hatched PIN 1 ID AREA (p.45); TI does not dimension the feature",+   "not_modelled": "mold flash and interlead flash (notes 3, 4), the exact pin-1 feature shape"},+ "etched": {"file": f"{S}-etched.step", "sha256": sha(f"{S}-etched.step"), "tool": "adom-chip-laser 0.2.0 service (service-occt /laser-etch, flat light mark 5 um above the face, Adom.LaserEtch group), placed by adom-aiflow-etch's planner with the page footprint",+   "lines": ["TMCS1123", "B1AQDVGR"], "capMm": 0.98, "virtual": True, "gate": "adom-aiflow-etch check: PASS",+   "check_image": f"docs/proof/{S}-etched.check.png", "plan": f"docs/proof/{S}-etched.mark-plan.json",+   "real_marking": "TI marks this part 1123B1A (SBOSA24D p.40, Part marking); the etch is the orderable MPN instead, as a virtual identification aid"},+ "glb": {f: sha(f) for f in [f"{S}.glb", f"{S}-etched.glb", f"{S}-hero.glb"]},+ "hero": {"file": f"{S}-hero.glb", "generator": "adom/component-hero skills/component-hero/scripts/hero_glb.py (adom-hero 1.4) then provenance/tools/hero_post_keepout.py",+   "sidecar": f"{S}-hero.overlay.json", "align": "OK, centre offset 0.0 mm", "pin1": "added dot (AI) beside pad 1: the footprint's pin-1 silkscreen bar is a line, which the generator does not count as a mark"},+ "outline": {"file": "artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg", "sha256": sha("artwork/TMCS1123B1AQDVGR-3d-outline-dark-named.svg"),+   "tool": "adom-aiflow-etch outline (service body outline + single-stroke name on the planned band)", "gate": "PASS"},+ "tools": {"adom-chip-laser": "0.2.0", "adom-aiflow-etch": "adom-aiflow 0.2.17", "step2glb": "0.13.2 (service)", "adom-symbol": "1.2.6", "adom-footprint": "1.0.26", "adom-lbr": "2.47.6", "cadquery": "2.8.0 (local venv)"},+ "license": "Model, etch and artwork authored by Adom: CC-BY-4.0. The TI datasheet keeps TI's terms."}+json.dump(prov, open("provenance/3d-model.json", "w"), indent=1)++files = {p: sha(p) for p in [f"{S}.kicad_sym", f"{S}.kicad_mod", f"{S}.step", f"{S}-etched.step", f"{S}-etched.glb", f"{S}-hero.glb", f"{S}.lbr",+                             f"altium/{MPN}.SchLib", f"altium/{MPN}.PcbLib", f"docs/{S}-datasheet.pdf"]}+BY = {"name": "Claude (AI), automated checks, not yet reviewed by a person", "handle": "claude"}+def ev(*paths): return [{"label": p.rsplit("/", 1)[-1], "href": p} for p in paths]+def chk(*items): return [{"text": t, "result": r} for t, r in items]+ver = {"schema": "adom/verification@1", "part": MPN,+ "variants": [{"mpn": MPN, "note": "B1A: 25 mV/A, 1.65 V zero-current output; 2000-piece large tape and reel (SBOSA24D p.40)", "stocked": False}],+ "entries": [+  {"date": D, "by": BY, "status": "verified", "title": "Pinout matches the datasheet", "scope": ["symbol"], "variants": ["*"],+   "checks": chk(("Symbol pins match SBOSA24D Table 5-1 (p.4): 1 IN+, 2 IN-, 3 GND, 4 ALERT, 5 VREF, 6 VOUT, 7 OC, 8 VS, 9 VOC, 10 NC", "pass"),+                 ("Groups: Primary side (IN+, IN-) on the left; isolated low-voltage side on the right (Supply, Analog output, Overcurrent, Reserved)", "pass"),+                 ("Electrical types: IN+ and IN- passive (a conductor), VS and GND power, VOUT and VREF output, VOC input, OC and ALERT open collector (open-drain), NC no-connect", "pass"),+                 ("Pin n maps to pad n, read back from the Fusion .lbr and the Altium SchLib/PcbLib; Altium has no no-connect pin type, so NC is Passive there; all Altium pin names are shown", "pass"),+                 ("Every pin sits on the 2.54 mm grid (adom-symbol 1.2.6 put the first pin of each column at y = -2.00; snapped by provenance/tools/snap_symbol.py)", "note")),+   "evidence": ev(f"docs/figures/{S}-ds-p4.png", f"docs/proof/{S}-symbol.png"),+   "files": {k: files[k] for k in [f"{S}.kicad_sym", f"{S}.lbr", f"altium/{MPN}.SchLib"]}},+  {"date": D, "by": BY, "status": "verified", "title": "Footprint equals TI's HV / isolation land pattern", "scope": ["footprint"], "variants": ["*"],+   "checks": chk(("All 10 pads equal the p.46 HV / isolation option: pads 1, 2 are 1.65 x 4.41 mm at (-4.875, -+2.54); pads 3 to 10 are 1.65 x 0.60 mm at x = +4.875, 1.27 mm pitch; R0.05 corners", "pass"),+                 ("Pad-to-pad clearance between the primary and low-voltage rows is 8.1 mm (TI: 8.1 mm clearance/creepage); the part is rated 8 mm (p.6)", "pass"),+                 ("Isolation keepout rule area on all copper layers between the rows (x -4.05 to 4.05, y -5.5 to 5.5); also in the Fusion .lbr as t/b/vRestrict", "pass"),+                 ("TI's IPC-7351 nominal option (7.3 mm) is not used: it is under the part's 8 mm rating", "note"),+                 ("Pads 1 and 2 carry no heatsink vias on purpose: they are the current leads; TI asks for via farms in the copper planes around them (p.36)", "note")),+   "evidence": ev(f"docs/proof/{S}-footprint-check.png", f"docs/figures/{S}-ds-p46.png", "provenance/footprint-check.json"),+   "files": {f"{S}.kicad_mod": files[f"{S}.kicad_mod"], f"{S}.lbr": files[f"{S}.lbr"]}},+  {"date": D, "by": BY, "status": "verified", "title": "Pin 1 orientation agrees across datasheet, footprint, 3D model and symbol", "scope": ["footprint", "3d", "symbol"], "variants": ["*"],+   "checks": chk(("Datasheet top view (p.4 Figure 5-1, p.45): pin 1 IN+ upper left, pin 2 IN- lower left, pins 3 to 10 up the right side with 10 at the top", "pass"),+                 ("Footprint: pad 1 upper left (KiCad Y down), pad 2 lower left, pad 3 lower right, pad 10 upper right; silkscreen pin-1 bar at the upper-left corner; F.Fab chamfer at pin 1", "pass"),+                 ("3D model: pin 1 current lead at (-x, +y) in the Z-up model, which is pad 1 after KiCad's Y flip; pin-1 dimple in the same corner; overlay on p.45 matches", "pass"),+                 ("Hero GLB: adom-hero alignment guard OK (centre offset 0.0 mm); labels IN+ upper left, NC upper right, GND lower right", "pass"),+                 ("Symbol: pin numbers and names as Table 5-1", "pass"),+                 ("The MPN etch reads upright with pin 1 lower left in the planner's standard pose (adom-aiflow-etch gate PASS)", "pass")),+   "evidence": ev(f"docs/proof/{S}-footprint-check.png", f"docs/proof/{S}-overlay.png", f"docs/proof/{S}-hero-preview.png", f"docs/figures/{S}-ds-p45.png"),+   "files": {k: files[k] for k in [f"{S}.kicad_mod", f"{S}-etched.step", f"{S}-hero.glb", f"{S}.kicad_sym"]}},+  {"date": D, "by": BY, "status": "verified", "title": "3D model inside TI's package drawing", "scope": ["3d"], "variants": ["*"],+   "checks": chk(("E 10.30, E1 7.50, D 10.30, A 2.55, A1 0.20, c 0.275, b 0.41, current leads 4.22 at +-2.54: inside DVG0010A (p.45), measured by section", "pass"),+                 ("Foot L 0.854 mm at the 0.25 mm gauge plane: inside 0.40 to 1.27", "pass"),+                 ("Overlay of top, front and end views on the p.45 drawing at its own scale", "pass"),+                 ("TI's STEP (Ultra Librarian) needs a reCAPTCHA; not compared", "note")),+   "evidence": ev(f"docs/proof/{S}-overlay.png", "provenance/3d-model.json", f"docs/figures/{S}-ds-p45.png"),+   "files": {k: files[k] for k in [f"{S}.step", f"{S}-etched.step", f"{S}-etched.glb"]}},+  {"date": D, "by": BY, "status": "open", "title": "Still to do", "scope": ["3d", "library"], "variants": ["*"],+   "checks": chk(("Compare against TI's own STEP once someone downloads it from Ultra Librarian in a browser", "open"),+                 ("Altium PcbLib has no keepout region: adom-lbr 2.47.6 does not carry the KiCad rule area; add a keepout region over x -4.05 to 4.05 mm in Altium, or rely on board rules", "open"),+                 ("Open the KiCad, Fusion and Altium libraries in the native tools; so far they are checked by lint and read-back only", "open"),+                 ("No reel on hand and no distributor stock on 2026-10-21 (Mouser and DigiKey 0, 140-day lead time at Mouser)", "open")),+   "evidence": [], "files": {}}+ ]}+json.dump(ver, open("verification.json", "w"), indent=1)+print("OK")
provenance/tools/params-low.jsonadded+1
@@ -0,0 +1 @@+{"detail":"low"}
provenance/tools/params-superlow.jsonadded+1
@@ -0,0 +1 @@+{"detail":"superlow"}
provenance/tools/pins.jsonadded+12
@@ -0,0 +1,12 @@+[+ {"number":"1","name":"IN+","type":"passive","group":"Primary side","description":"Input current positive pin: one end of the 0.7 mOhm internal conductor (SBOSA24D p.4, Table 5-1; RIN p.8). Current flowing from IN+ to IN- gives a positive output change. This pin is on the primary (high-voltage) side of the isolation barrier."},+ {"number":"2","name":"IN-","type":"passive","group":"Primary side","description":"Input current negative pin: the other end of the internal conductor (p.4, Table 5-1). Primary (high-voltage) side of the isolation barrier."},+ {"number":"8","name":"VS","type":"power_in","group":"Supply","description":"Power supply, 3.0 V to 5.5 V (p.4; p.5 recommended operating conditions). Decouple to GND with 0.1 uF placed close to the pin (p.35)."},+ {"number":"3","name":"GND","type":"power_in","group":"Supply","description":"Ground of the isolated low-voltage side (p.4, Table 5-1)."},+ {"number":"6","name":"VOUT","type":"output","group":"Analog output","description":"Output voltage: VOUT = VREF + S x IIN, linear from 100 mV to VS - 100 mV (p.4; p.24 Eq. 18 to 21). B1A: S = 25 mV/A, zero-current output 1.65 V."},+ {"number":"5","name":"VREF","type":"output","group":"Analog output","description":"Zero-current output voltage reference (1.65 V on BxA parts), for ratiometric or differential measurement of VOUT. Leave floating if not used (p.4; p.9)."},+ {"number":"9","name":"VOC","type":"input","group":"Overcurrent","description":"Overcurrent threshold input: VOC = S x IOC / 2.5, 0.3 V to VS, 120 kOhm input impedance. Connect to VS if not used (p.4; p.9; p.25)."},+ {"number":"7","name":"OC","type":"open_collector","group":"Overcurrent","description":"Overcurrent output, open-drain, active low. Needs a pull-up. Connect to GND if not used (p.4, Table 5-1)."},+ {"number":"4","name":"ALERT","type":"open_collector","group":"Overcurrent","description":"Sensor diagnostics output: open-drain, active low, 8 kHz PWM whose duty cycle reports thermal and sensor alerts (p.4; p.9; p.28). Connect to GND if not used."},+ {"number":"10","name":"NC","type":"no_connect","group":"Reserved","description":"Reserved. The datasheet allows it to be connected to GND or left floating (p.4, Table 5-1). Typed no-connect; tying it to GND is permitted by TI but will need an ERC waiver."}+]
provenance/tools/render_glb.pyadded+71
@@ -0,0 +1,71 @@+#!/usr/bin/env python3+"""Depth-buffered orthographic render of an uncompressed chip GLB (Z up), for previews and checks.+usage: render_glb.py model.glb out.png [--view iso|top|bottom|front|side|corner] [--size 480] [--bg 36,40,46]+iso: from front-left-up (pin-1 side, -x/+y quadrant shown at the left); top: looking down -Z, +Y up;+bottom: looking up +Z (mirrored as seen from below); front: along +Y; side: along -X."""+import sys, math, argparse, json+import numpy as np+from PIL import Image+sys.path.insert(0, __file__.rsplit("/", 1)[0])+from pygltflib import GLTF2++ap = argparse.ArgumentParser(); ap.add_argument("glb"); ap.add_argument("out")+ap.add_argument("--view", default="iso"); ap.add_argument("--size", type=int, default=480)+ap.add_argument("--bg", default="36,40,46"); a = ap.parse_args()+CT = {5126: np.float32, 5125: np.uint32, 5123: np.uint16}+g = GLTF2().load(a.glb); blob = g.binary_blob()+def acc(i):+    x = g.accessors[i]; bv = g.bufferViews[x.bufferView]; n = {"SCALAR": 1, "VEC3": 3}[x.type]+    arr = np.frombuffer(blob, CT[x.componentType], x.count * n, (bv.byteOffset or 0) + (x.byteOffset or 0))+    return arr.reshape(-1, n) if n > 1 else arr+def mat(n):+    if n.matrix: return np.array(n.matrix).reshape(4, 4).T+    M = np.eye(4)+    if n.scale: M = M @ np.diag(list(n.scale) + [1])+    return M+tris = []+def walk(ni, M):+    n = g.nodes[ni]; M = M @ mat(n)+    if n.mesh is not None:+        for p in g.meshes[n.mesh].primitives:+            P = acc(p.attributes.POSITION).astype(float) * 1000; P = (np.c_[P, np.ones(len(P))] @ M.T)[:, :3]+            I = acc(p.indices).reshape(-1, 3)+            m = g.materials[p.material]; pbr = m.pbrMetallicRoughness+            tris.append((P[I], np.array(pbr.baseColorFactor[:3]), pbr.metallicFactor or 0.0, n.name))+    for c in n.children or []: walk(c, M)+for r in g.scenes[g.scene or 0].nodes: walk(r, np.eye(4))+def R(view):+    def rz(d): t = math.radians(d); return np.array([[math.cos(t), -math.sin(t), 0], [math.sin(t), math.cos(t), 0], [0, 0, 1]])+    def rx(d): t = math.radians(d); return np.array([[1, 0, 0], [0, math.cos(t), -math.sin(t)], [0, math.sin(t), math.cos(t)]])+    return {"top": np.eye(3), "bottom": rx(180), "front": rx(-90), "side": rx(-90) @ rz(90),+            "iso": rx(-55) @ rz(-35), "corner": rx(-70) @ rz(-30)}[view]+Rm = R(a.view)+allp = np.concatenate([t[0].reshape(-1, 3) for t in tris]) @ Rm.T+lo, hi = allp[:, :2].min(0), allp[:, :2].max(0); S = a.size * 3; k = 0.86 * S / max(hi - lo)+c0 = (lo + hi) / 2+img = np.zeros((S, S, 3)); img[:] = np.array([int(v) for v in a.bg.split(",")]) / 255; zb = np.full((S, S), -1e9)+L1 = np.array([-0.4, 0.5, 0.8]); L1 /= np.linalg.norm(L1); L2 = np.array([0.6, -0.3, 0.4]); L2 /= np.linalg.norm(L2)+for T, col, metal, name in tris:+    V = T @ Rm.T+    for tri in V:+        n = np.cross(tri[1] - tri[0], tri[2] - tri[0]); ln = np.linalg.norm(n)+        if ln == 0: continue+        n /= ln+        if n[2] < 0: n = -n+        sh = 0.35 + 0.55 * max(0, n @ L1) + 0.25 * max(0, n @ L2)+        c = np.clip(col ** (1 / 2.2) * sh + (0.15 * metal * max(0, n @ L1) ** 8), 0, 1)+        xy = (tri[:, :2] - c0) * k + S / 2; xy[:, 1] = S - xy[:, 1]+        x0, y0 = np.floor(xy.min(0)).astype(int); x1, y1 = np.ceil(xy.max(0)).astype(int)+        x0, y0 = max(x0, 0), max(y0, 0); x1, y1 = min(x1, S - 1), min(y1, S - 1)+        if x1 < x0 or y1 < y0: continue+        X, Y = np.meshgrid(np.arange(x0, x1 + 1) + 0.5, np.arange(y0, y1 + 1) + 0.5)+        (ax, ay), (bx, by), (cx, cy) = xy+        d = (by - cy) * (ax - cx) + (cx - bx) * (ay - cy)+        if abs(d) < 1e-12: continue+        w1 = ((by - cy) * (X - cx) + (cx - bx) * (Y - cy)) / d; w2 = ((cy - ay) * (X - cx) + (ax - cx) * (Y - cy)) / d; w3 = 1 - w1 - w2+        inside = (w1 >= -1e-6) & (w2 >= -1e-6) & (w3 >= -1e-6)+        z = w1 * tri[0, 2] + w2 * tri[1, 2] + w3 * tri[2, 2] + (0.002 if name.startswith("Adom.LaserEtch") else 0)+        sub = zb[y0:y1 + 1, x0:x1 + 1]; m = inside & (z > sub)+        sub[m] = z[m]; img[y0:y1 + 1, x0:x1 + 1][m] = c+im = Image.fromarray((img * 255).astype(np.uint8)).resize((a.size, a.size), Image.LANCZOS)+im.save(a.out); print(a.out)
provenance/tools/render_sym.pyadded+25
@@ -0,0 +1,25 @@+#!/usr/bin/env python3+"""Quick matplotlib render of a .kicad_sym (rectangle, polylines, captions, pins with names and numbers) for a+visual check. usage: render_sym.py in.kicad_sym out.png"""+import re, sys+import matplotlib; matplotlib.use("Agg")+import matplotlib.pyplot as plt+s = open(sys.argv[1]).read()+fig, ax = plt.subplots(figsize=(10, 7), dpi=130); ax.set_facecolor("#0d1117"); fig.patch.set_facecolor("#0d1117")+for m in re.finditer(r"\(rectangle \(start (\S+) (\S+)\) \(end (\S+) (\S+)\)", s):+    x1, y1, x2, y2 = map(float, m.groups()); ax.plot([x1, x2, x2, x1, x1], [y1, y1, y2, y2, y1], color="#8b949e", lw=1.2)+for m in re.finditer(r"\(polyline\s*\(pts(.*?)\)\s*\(stroke", s, re.S):+    pts = [(float(a), float(b)) for a, b in re.findall(r"\(xy (\S+) (\S+)\)", m.group(1))]+    ax.plot([p[0] for p in pts], [p[1] for p in pts], color="#e6edf3", lw=0.5)+for m in re.finditer(r'\(text "([^"]+)" \(at (\S+) (\S+) 0\).*?justify (\w+)', s, re.S):+    ax.text(float(m.group(2)), float(m.group(3)), m.group(1), color="#8C6BF7", fontsize=7, ha=m.group(4), va="center", weight="bold")+for m in re.finditer(r'\(pin (\w+) line \(at (\S+) (\S+) (\d+)\) \(length (\S+)\) \(name "([^"]+)"\) \(number "([^"]+)"\)', s):+    t, x, y, a, L, nm, no = m.groups(); x, y, L = float(x), float(y), float(L)+    dx = L if a == "0" else -L+    ax.plot([x, x + dx], [y, y], color="#00e6dc", lw=1.2)+    ax.text(x + dx + (0.8 if a == "0" else -0.8), y, nm, color="white", fontsize=7, ha="left" if a == "0" else "right", va="center")+    ax.text(x + dx / 2, y + 0.4, no, color="#8b949e", fontsize=6, ha="center")+for prop in ("Reference", "Value"):+    m = re.search(r'\(property "%s" "([^"]*)"\s*\(at (\S+) (\S+)' % prop, s)+    if m: ax.text(float(m.group(2)), float(m.group(3)), m.group(1), color="#c9d1d9", fontsize=8, ha="center", va="center")+ax.set_aspect("equal"); ax.axis("off"); fig.savefig(sys.argv[2], bbox_inches="tight", facecolor=fig.get_facecolor()); print(sys.argv[2])
provenance/tools/snap_symbol.pyadded+26
@@ -0,0 +1,26 @@+#!/usr/bin/env python3+"""Post-process an adom-symbol 1.2.6 .kicad_sym: put every pin end on the 2.54 mm grid (the tool places the first+pin of each column at y = -2.00), move each group caption with its first pin, set Value to the exact MPN and the+Footprint to the page's library footprint. usage: snap_symbol.py in.kicad_sym out.kicad_sym MPN LIB:FOOTPRINT"""+import re, sys+src, out, mpn, fp = sys.argv[1:5]+s = open(src).read()+g = 2.54+moves = {}+def pin(m):+    x, y = float(m.group(2)), float(m.group(3)); ny = round(y / g) * g+    moves.setdefault(round(y, 2), round(ny, 2))+    return f"{m.group(1)}(at {x:.2f} {ny:.2f} {m.group(4)})"+s = re.sub(r"(\(pin \w+ line )\(at (-?[\d.]+) (-?[\d.]+) (\d+)\)", pin, s)+def cap(m):+    y = float(m.group(3)); py = round(y - 2.0, 2)+    ny = moves.get(py, py + 2.0 - 2.0) + 2.0 if py in moves else y+    return f'{m.group(1)}(at {m.group(2)} {ny:.2f} 0)'+s = re.sub(r'(\(text "[^"]+" )\(at (-?[\d.]+) (-?[\d.]+) 0\)', cap, s)+low = min(moves.values())+s = re.sub(r"\(rectangle \(start (-?[\d.]+) ([\d.]+)\) \(end (-?[\d.]+) (-?[\d.]+)\)",+           lambda m: f"(rectangle (start {m.group(1)} {m.group(2)}) (end {m.group(3)} {low - g:.2f})", s, count=1)+s = re.sub(r'\(property "Value" "[^"]*"', f'(property "Value" "{mpn}"', s, count=1)+s = re.sub(r'\(property "Footprint" "[^"]*"', f'(property "Footprint" "{fp}"', s, count=1)+open(out, "w").write(s)+print("pin y moves:", moves)
provenance/tools/svg_poly_png.pyadded+16
@@ -0,0 +1,16 @@+#!/usr/bin/env python3+"""Rasterize a polyline-only SVG (chip outline art) to PNG with Pillow. usage: svg_poly_png.py in.svg out.png [size] [bg]"""+import sys, re+from PIL import Image, ImageDraw+src, out = sys.argv[1], sys.argv[2]; size = int(sys.argv[3]) if len(sys.argv) > 3 else 320+bg = sys.argv[4] if len(sys.argv) > 4 else "#0d1117"+s = open(src).read()+vb = [float(v) for v in re.search(r'viewBox="([^"]+)"', s).group(1).split()]+k = size / vb[2]+im = Image.new("RGB", (size, int(vb[3] * k)), bg); d = ImageDraw.Draw(im)+for m in re.finditer(r'<(polyline|polygon)[^>]*points="([^"]+)"[^>]*?(?:stroke="([^"]+)")?[^>]*/>', s):+    pts = [tuple(float(v) for v in p.split(",")) for p in m.group(2).split()]+    pts = [((x - vb[0]) * k, (y - vb[1]) * k) for x, y in pts]+    col = m.group(3) or "#e6edf3"+    if len(pts) > 1: d.line(pts, fill=col, width=max(1, int(1.5 * k)))+im.save(out); print(out, im.size)
provenance/tools/symbol-create.jsonadded+118
@@ -0,0 +1,118 @@+{+ "symbolName": "TMCS1123B1AQDVGR",+ "mpn": "TMCS1123B1AQDVGR",+ "manufacturer": "Texas Instruments",+ "package": "SOIC-10 wide body (DVG0010A, 7.5 x 10.3 mm)",+ "pinCount": 10,+ "description": "Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG",+ "datasheetUrl": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+ "footprint": "tmcs1123b1aqdvgr:tmcs1123b1aqdvgr",+ "reference": "U",+ "distributors": {+  "mouser": "595-TMCS1123B1AQDVGR",+  "digikey": "296-TMCS1123B1AQDVGRTR-ND"+ },+ "wikiUrl": "https://wiki.adom.inc/adom/tmcs1123b1aqdvgr",+ "pinLayout": "left-right",+ "pins": [+  {+   "number": "1",+   "name": "IN+",+   "type": "passive",+   "group": "Primary side",+   "description": "Input current positive pin: one end of the 0.7 mOhm internal conductor (SBOSA24D p.4, Table 5-1; RIN p.8). Current flowing from IN+ to IN- gives a positive output change. This pin is on the primary (high-voltage) side of the isolation barrier.",+   "side": "left"+  },+  {+   "number": "2",+   "name": "IN-",+   "type": "passive",+   "group": "Primary side",+   "description": "Input current negative pin: the other end of the internal conductor (p.4, Table 5-1). Primary (high-voltage) side of the isolation barrier.",+   "side": "left"+  },+  {+   "number": "8",+   "name": "VS",+   "type": "power_in",+   "group": "Supply",+   "description": "Power supply, 3.0 V to 5.5 V (p.4; p.5 recommended operating conditions). Decouple to GND with 0.1 uF placed close to the pin (p.35).",+   "side": "right"+  },+  {+   "number": "3",+   "name": "GND",+   "type": "power_in",+   "group": "Supply",+   "description": "Ground of the isolated low-voltage side (p.4, Table 5-1).",+   "side": "right"+  },+  {+   "number": "6",+   "name": "VOUT",+   "type": "output",+   "group": "Analog output",+   "description": "Output voltage: VOUT = VREF + S x IIN, linear from 100 mV to VS - 100 mV (p.4; p.24 Eq. 18 to 21). B1A: S = 25 mV/A, zero-current output 1.65 V.",+   "side": "right"+  },+  {+   "number": "5",+   "name": "VREF",+   "type": "output",+   "group": "Analog output",+   "description": "Zero-current output voltage reference (1.65 V on BxA parts), for ratiometric or differential measurement of VOUT. Leave floating if not used (p.4; p.9).",+   "side": "right"+  },+  {+   "number": "9",+   "name": "VOC",+   "type": "input",+   "group": "Overcurrent",+   "description": "Overcurrent threshold input: VOC = S x IOC / 2.5, 0.3 V to VS, 120 kOhm input impedance. Connect to VS if not used (p.4; p.9; p.25).",+   "side": "right"+  },+  {+   "number": "7",+   "name": "OC",+   "type": "open_collector",+   "group": "Overcurrent",+   "description": "Overcurrent output, open-drain, active low. Needs a pull-up. Connect to GND if not used (p.4, Table 5-1).",+   "side": "right"+  },+  {+   "number": "4",+   "name": "ALERT",+   "type": "open_collector",+   "group": "Overcurrent",+   "description": "Sensor diagnostics output: open-drain, active low, 8 kHz PWM whose duty cycle reports thermal and sensor alerts (p.4; p.9; p.28). Connect to GND if not used.",+   "side": "right"+  },+  {+   "number": "10",+   "name": "NC",+   "type": "no_connect",+   "group": "Reserved",+   "description": "Reserved. The datasheet allows it to be connected to GND or left floating (p.4, Table 5-1). Typed no-connect; tying it to GND is permitted by TI but will need an ERC waiver.",+   "side": "right"+  }+ ],+ "pinDescriptions": {+  "IN+": "Input current positive pin: one end of the 0.7 mOhm internal conductor (SBOSA24D p.4, Table 5-1; RIN p.8). Current flowing from IN+ to IN- gives a positive output change. This pin is on the primary (high-voltage) side of the isolation barrier.",+  "IN-": "Input current negative pin: the other end of the internal conductor (p.4, Table 5-1). Primary (high-voltage) side of the isolation barrier.",+  "VS": "Power supply, 3.0 V to 5.5 V (p.4; p.5 recommended operating conditions). Decouple to GND with 0.1 uF placed close to the pin (p.35).",+  "GND": "Ground of the isolated low-voltage side (p.4, Table 5-1).",+  "VOUT": "Output voltage: VOUT = VREF + S x IIN, linear from 100 mV to VS - 100 mV (p.4; p.24 Eq. 18 to 21). B1A: S = 25 mV/A, zero-current output 1.65 V.",+  "VREF": "Zero-current output voltage reference (1.65 V on BxA parts), for ratiometric or differential measurement of VOUT. Leave floating if not used (p.4; p.9).",+  "VOC": "Overcurrent threshold input: VOC = S x IOC / 2.5, 0.3 V to VS, 120 kOhm input impedance. Connect to VS if not used (p.4; p.9; p.25).",+  "OC": "Overcurrent output, open-drain, active low. Needs a pull-up. Connect to GND if not used (p.4, Table 5-1).",+  "ALERT": "Sensor diagnostics output: open-drain, active low, 8 kHz PWM whose duty cycle reports thermal and sensor alerts (p.4; p.9; p.28). Connect to GND if not used.",+  "NC": "Reserved. The datasheet allows it to be connected to GND or left floating (p.4, Table 5-1). Typed no-connect; tying it to GND is permitted by TI but will need an ERC waiver."+ },+ "groupDescriptions": {+  "Primary side": "The measured current flows through the package from IN+ to IN- (0.7 mOhm). These two pins sit on the primary side of the reinforced isolation barrier; keep at least the 8.1 mm creepage of TI's HV land pattern between them and every low-voltage pin.",+  "Supply": "Isolated low-voltage side supply: VS 3.0 V to 5.5 V and its GND. Decouple with 0.1 uF close to the pins.",+  "Analog output": "VOUT is the current-proportional output; VREF is the zero-current reference it is centred on.",+  "Overcurrent": "Fast overcurrent comparator (threshold set on VOC, open-drain OC output) and the open-drain ALERT diagnostics PWM.",+  "Reserved": "NC: reserved, connect to GND or leave floating."+ }+}\ No newline at end of file
provenance/tools/write_page_json.pyadded+59
@@ -0,0 +1,59 @@+#!/usr/bin/env python3+"""Write page.json for adom/tmcs1123b1aqdvgr from provenance/tools/pins.json and the values below. Run from the page root."""+import json, hashlib+S = "tmcs1123b1aqdvgr"; MPN = "TMCS1123B1AQDVGR"; D = "2026-10-21"+pins = json.load(open("provenance/tools/pins.json"))+pins = sorted(pins, key=lambda p: int(p["number"]))+sha = hashlib.sha256(open(f"docs/{S}-datasheet.pdf", "rb").read()).hexdigest()+brief = ("Texas Instruments TMCS1123B1AQDVGR: isolated Hall-effect current sensor, 25 mV/A with a 1.65 V zero-current "+         "output (linear +-62 A at 3.3 V), 80 A RMS continuous, 250 kHz, overcurrent detection, reinforced isolation, "+         "SOIC-10 wide body (DVG). KiCad, Fusion and Altium libraries, 3D model and datasheet.")+page = {+ "slug": S, "version": "0.1.0", "type": "hardware", "kind": "component", "org": "adom",+ "title": "TMCS1123B1AQDVGR - Isolated Hall-Effect Current Sensor",+ "brief": brief,+ "description": ("Texas Instruments TMCS1123B1AQDVGR: galvanically isolated Hall-effect current sensor, B1A option "+                 "(25 mV/A, 1.65 V zero-current output, linear +-62 A at VS = 3.3 V), 0.7 mOhm conductor, 80 A RMS "+                 "continuous on TI's EVM, 250 kHz bandwidth, overcurrent comparator and diagnostics outputs, 5 kV RMS "+                 "isolation, SOIC-10 wide body (DVG0010A, 7.5 x 10.3 mm)."),+ "license": "CC-BY-4.0",+ "tags": ["component", "ic", "sensor", "current-sensor", "hall-effect", "isolated", "texas-instruments", "soic-10", "dvg"],+ "discovery_triggers": [MPN, "TMCS1123B1A", "TMCS1123", "TMCS1123B1AQDVGR current sensor", "isolated Hall current sensor SOIC-10"],+ "hero": {"type": "image", "path": "docs/hero.png"},+ "visibility": {"public": True},+ "component": {+  "mpn": MPN, "manufacturer": "Texas Instruments",+  "package": "SOIC-10 wide body (TI DVG0010A, 7.5 x 10.3 mm body, 2 current leads + 8 signal leads at 1.27 mm)",+  "pin_count": 10, "category": "Sensors", "subcategory": "Isolated Hall-effect current sensor", "lifecycle": "Active",+  "datasheet": "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf",+  "product_page": "https://www.ti.com/product/TMCS1123",+  "body_size": {"x_mm": 7.5, "y_mm": 10.3, "z_mm": 2.65, "pitch_mm": 1.27},+  "parts": {+   "symbol": f"{S}.kicad_sym", "footprint": f"{S}.kicad_mod",+   "model_3d": f"{S}-hero.glb", "model_3d_plain": f"{S}-etched.glb",+   "model_3d_step": f"{S}-etched.step", "model_3d_step_plain": f"{S}.step",+   "step": f"{S}-etched.step", "lbr": f"{S}.lbr", "datasheet": f"docs/{S}-datasheet.pdf"},+  "viewers": {"symbol": "viewers/symbol.html", "footprint": "viewers/footprint.html"},+  "viewer_3d": {"ground": False, "animate": False, "shadows": False, "tooltips": "authored"},+  "models": "models.json", "lod": "lod/manifest.json", "verification": "verification.json",+  "marking": {"lines": ["TMCS1123", "B1AQDVGR"], "virtual": True,+   "note": "Virtual identification mark (the orderable MPN), not TI's real top marking. TI marks this part 1123B1A (SBOSA24D p.40, Part marking column).",+   "surface": "top", "colour": "light on black epoxy", "gate": "PASS", "provenance": "provenance/3d-model.json"},+  "variants": "README.md#variants",+  "pins": pins,+  "distributor_links": {+   "mouser": {"part": "595-TMCS1123B1AQDVGR", "url": "https://www.mouser.com/en/ProductDetail/Texas-Instruments/TMCS1123B1AQDVGR?qs=mELouGlnn3fnFoesX7xpgA%3D%3D", "stock": 0, "lead_time": "140 days", "checked": D},+   "digikey": {"part": "296-TMCS1123B1AQDVGRTR-ND", "url": "https://www.digikey.com/en/products/detail/texas-instruments/TMCS1123B1AQDVGR/22168027", "stock": 0, "checked": D},+   "lcsc": False,+   "lcsc_note": f"{D}: adom-parts-search found no JLCPCB/LCSC listing for TMCS1123B1AQDVGR (0 hits); lcsc.com refused a plain request."},+  "provenance": {+   "datasheet": {"doc": "TI SBOSA24D (July 2023, revised May 2026)", "file": f"docs/{S}-datasheet.pdf", "sha256": sha, "pages": 48},+   "model_3d": "provenance/3d-model.json", "footprint": "provenance/footprint-check.json"}},+ "dependencies": {},+ "eda_assets": {+  "kicad": {"symbol": f"{S}.kicad_sym", "footprint": f"{S}.kicad_mod", "model": f"{S}-etched.step", "provenance": "authored"},+  "fusion": {"lbr": f"{S}.lbr", "provenance": "authored"},+  "altium": {"schlib": f"altium/{MPN}.SchLib", "pcblib": f"altium/{MPN}.PcbLib", "provenance": "authored"}},+ "source": {"tool": "texas-instruments", "url": "https://www.ti.com/product/TMCS1123"}}+json.dump(page, open("page.json", "w"), indent=2)+print("page.json written")
tmcs1123b1aqdvgr.kicad_modadded+79
@@ -0,0 +1,79 @@+(footprint "tmcs1123b1aqdvgr"+  (version 20240108)+  (generator "adom-footprint")+  (layer "F.Cu")+  (descr "TI DVG0010A 10-pin wide-body SOIC (7.5 x 10.3 mm body), TMCS1123 isolated current sensor; land pattern per TI drawing 4226847/C, HV / isolation option (8.1 mm pad-to-pad clearance/creepage), SBOSA24D p.46")+  (tags "SOIC SOIC-10 DVG DVG0010A TMCS1123 isolated current sensor creepage")+  (attr smd)+  (fp_rect (start -5.95 -5.5) (end 5.95 5.5)+    (stroke (width 0.05) (type default)) (fill none) (layer "F.CrtYd"))+  (fp_poly (pts (xy -2.75 -5.15) (xy 3.75 -5.15) (xy 3.75 5.15) (xy -3.75 5.15) (xy -3.75 -4.15))+    (stroke (width 0.1) (type default)) (fill none) (layer "F.Fab"))+  (fp_line (start 0 -5.15) (end 0 5.15)+    (stroke (width 0.1) (type dash)) (layer "F.Fab"))+  (fp_text user "ISOLATION KEEPOUT 8.1 mm" (at 0 0 90) (layer "Cmts.User")+    (effects (font (size 0.6 0.6) (thickness 0.09))))+  (fp_line (start -3.87 -5.27) (end 3.87 -5.27)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 -5.27) (end 3.87 -4.96)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 -3.93) (end 3.87 -3.69)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 -2.66) (end 3.87 -2.42)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 -1.39) (end 3.87 -1.15)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 -0.12) (end 3.87 0.12)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 1.15) (end 3.87 1.39)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 2.42) (end 3.87 2.66)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 3.69) (end 3.87 3.93)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 4.96) (end 3.87 5.27)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start 3.87 5.27) (end -3.87 5.27)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start -3.87 5.27) (end -3.87 4.96)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start -3.87 0.12) (end -3.87 -0.12)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start -3.87 -4.96) (end -3.87 -5.27)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_line (start -4.05 -5.45) (end -3.45 -5.45)+    (stroke (width 0.12) (type default)) (layer "F.SilkS"))+  (fp_text reference "REF**" (at 0 -6.5)+    (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))+  (fp_text value "TMCS1123B1AQDVGR" (at 0 6.5)+    (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))+  (pad "1" smd roundrect (at -4.875 -2.54) (size 1.65 4.41)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0303))+  (pad "2" smd roundrect (at -4.875 2.54) (size 1.65 4.41)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0303))+  (pad "3" smd roundrect (at 4.875 4.445) (size 1.65 0.6)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+  (pad "4" smd roundrect (at 4.875 3.175) (size 1.65 0.6)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+  (pad "5" smd roundrect (at 4.875 1.905) (size 1.65 0.6)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+  (pad "6" smd roundrect (at 4.875 0.635) (size 1.65 0.6)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+  (pad "7" smd roundrect (at 4.875 -0.635) (size 1.65 0.6)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+  (pad "8" smd roundrect (at 4.875 -1.905) (size 1.65 0.6)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+  (pad "9" smd roundrect (at 4.875 -3.175) (size 1.65 0.6)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+  (pad "10" smd roundrect (at 4.875 -4.445) (size 1.65 0.6)+    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.0833))+  (zone (net 0) (net_name "") (layers "*.Cu") (name "Isolation keepout")+    (hatch edge 0.5)+    (connect_pads (clearance 0))+    (min_thickness 0.25)+    (keepout (tracks not_allowed) (vias not_allowed) (pads not_allowed) (copperpour not_allowed) (footprints allowed))+    (fill (thermal_gap 0.5) (thermal_bridge_width 0.5))+    (polygon (pts (xy -4.05 -5.5) (xy 4.05 -5.5) (xy 4.05 5.5) (xy -4.05 5.5))))+  (model "${KIPRJMOD}/tmcs1123b1aqdvgr-etched.step"+    (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) (rotate (xyz 0 0 0)))+)
tmcs1123b1aqdvgr.kicad_symadded+211
@@ -0,0 +1,211 @@+(kicad_symbol_lib+  (version 20231120)+  (generator "adom")+  (symbol "TMCS1123B1AQDVGR"+    (pin_names (offset 1.016))+    (exclude_from_sim no)+    (in_bom yes)+    (on_board yes)+    (property "Reference" "U"+      (at 0.00 5.08 0)+      (effects (font (size 1.27 1.27)))+    )+    (property "Value" "TMCS1123B1AQDVGR"+      (at 0.00 -42.29 0)+      (effects (font (size 1.27 1.27)))+    )+    (property "Footprint" "tmcs1123b1aqdvgr:tmcs1123b1aqdvgr"+      (at 0 -47.37 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "Datasheet" "https://www.ti.com/lit/ds/symlink/tmcs1123.pdf"+      (at 0 -49.91 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "Description" "Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function."+      (at 0 -52.45 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "Manufacturer" "Texas Instruments"+      (at 0 -54.99 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "MPN" "TMCS1123B1AQDVGR"+      (at 0 -57.53 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "Adom Wiki" "https://wiki.adom.inc/adom/tmcs1123b1aqdvgr"+      (at 0 -60.07 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "DigiKey" "296-TMCS1123B1AQDVGRTR-ND"+      (at 0 -62.61 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "Mouser" "595-TMCS1123B1AQDVGR"+      (at 0 -65.15 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (property "Adom_Chip_Outline" "asset:TMCS1123B1AQDVGR-3d-outline-dark-named.svg@large"+      (at 0 -67.69 0)+      (effects (font (size 1.27 1.27)) (hide yes))+    )+    (symbol "TMCS1123B1AQDVGR_0_1"+      (rectangle (start -17.78 2.54) (end 17.78 -40.64)+        (stroke (width 0.254) (type default))+        (fill (type background))+      )+      (text "Primary side" (at -16.76 -0.54 0)+        (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify left))+      )+      (text "Supply" (at 16.76 -0.54 0)+        (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+      )+      (text "Analog output" (at 16.76 -10.70 0)+        (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+      )+      (text "Overcurrent" (at 16.76 -20.86 0)+        (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+      )+      (text "Reserved" (at 16.76 -36.10 0)+        (effects (font (size 0.762 0.762) (color 132 0 0 1)) (justify right))+      )+      (polyline (pts (xy 0.066 -20.784) (xy 2.753 -19.232)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.753 -19.232) (xy 2.760 -19.197) (xy 2.766 -19.163) (xy 2.773 -19.128) (xy 2.780 -19.093) (xy 2.786 -19.058) (xy 2.793 -19.023) (xy 2.800 -18.989) (xy 2.807 -18.954) (xy 2.813 -18.919) (xy 2.820 -18.884) (xy 2.827 -18.849)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.066 -20.444) (xy 2.827 -18.849)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.066 -20.784) (xy 0.066 -20.753) (xy 0.066 -20.722) (xy 0.066 -20.691) (xy 0.066 -20.660) (xy 0.066 -20.629) (xy 0.066 -20.598) (xy 0.066 -20.567) (xy 0.066 -20.536) (xy 0.066 -20.505) (xy 0.066 -20.475) (xy 0.066 -20.444)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.161 -19.499) (xy -1.930 -19.632)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.290 -20.578) (xy 0.066 -20.784)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.827 -18.849) (xy 2.822 -18.821) (xy 2.817 -18.793) (xy 2.812 -18.765) (xy 2.807 -18.737) (xy 2.801 -18.709) (xy 2.797 -18.681) (xy 2.792 -18.653) (xy 2.786 -18.625) (xy 2.781 -18.597) (xy 2.776 -18.569) (xy 2.772 -18.541) (xy 2.766 -18.513) (xy 2.761 -18.485) (xy 2.756 -18.457) (xy 2.751 -18.429) (xy 2.746 -18.401) (xy 2.741 -18.373) (xy 2.736 -18.345) (xy 2.731 -18.317) (xy 2.726 -18.289) (xy 2.721 -18.261) (xy 2.716 -18.233)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.066 -19.764) (xy 2.716 -18.233)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.066 -20.444) (xy 0.066 -20.413) (xy 0.066 -20.382) (xy 0.066 -20.351) (xy 0.066 -20.320) (xy 0.066 -20.289) (xy 0.066 -20.258) (xy 0.066 -20.227) (xy 0.066 -20.196) (xy 0.066 -20.165) (xy 0.066 -20.134) (xy 0.066 -20.103) (xy 0.066 -20.073) (xy 0.066 -20.042) (xy 0.066 -20.011) (xy 0.066 -19.980) (xy 0.066 -19.949) (xy 0.066 -19.918) (xy 0.066 -19.887) (xy 0.066 -19.856) (xy 0.066 -19.825) (xy 0.066 -19.794) (xy 0.066 -19.764)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.727 -18.254) (xy -3.593 -18.331)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.989 -19.258) (xy -1.723 -19.411)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.119 -20.337) (xy 0.066 -20.444)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.699 -18.396) (xy -3.706 -18.364) (xy -3.712 -18.332) (xy -3.718 -18.299) (xy -3.724 -18.267) (xy -3.727 -18.254)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.716 -18.233) (xy -0.966 -16.107)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.616 -17.638) (xy 0.066 -19.764)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.966 -16.107) (xy -3.616 -17.638)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.714 -17.542) (xy -2.688 -17.561) (xy -2.667 -17.582) (xy -2.651 -17.609) (xy -2.646 -17.638)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.646 -17.638) (xy -2.655 -17.676) (xy -2.683 -17.711) (xy -2.726 -17.740) (xy -2.753 -17.752) (xy -2.783 -17.761) (xy -2.814 -17.768) (xy -2.847 -17.772) (xy -2.880 -17.773) (xy -2.913 -17.772) (xy -2.946 -17.768) (xy -2.977 -17.761) (xy -3.007 -17.752) (xy -3.033 -17.740) (xy -3.077 -17.711) (xy -3.105 -17.676) (xy -3.114 -17.638)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.114 -17.638) (xy -3.109 -17.609) (xy -3.093 -17.582) (xy -3.067 -17.557) (xy -3.033 -17.536) (xy -2.992 -17.519) (xy -2.946 -17.508) (xy -2.897 -17.503) (xy -2.847 -17.504) (xy -2.798 -17.511) (xy -2.753 -17.524) (xy -2.714 -17.542)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.727 -18.254) (xy -3.722 -18.226) (xy -3.717 -18.198) (xy -3.712 -18.170) (xy -3.707 -18.142) (xy -3.701 -18.114) (xy -3.697 -18.086) (xy -3.692 -18.058) (xy -3.686 -18.030) (xy -3.681 -18.002) (xy -3.676 -17.974) (xy -3.672 -17.946) (xy -3.666 -17.918) (xy -3.661 -17.890) (xy -3.656 -17.862) (xy -3.651 -17.834) (xy -3.646 -17.806) (xy -3.641 -17.778) (xy -3.636 -17.750) (xy -3.631 -17.722) (xy -3.626 -17.694) (xy -3.621 -17.666) (xy -3.616 -17.638)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.714 -17.563) (xy -2.752 -17.546) (xy -2.795 -17.533) (xy -2.841 -17.526) (xy -2.890 -17.524) (xy -2.938 -17.528) (xy -2.983 -17.538) (xy -3.024 -17.552) (xy -3.059 -17.572) (xy -3.086 -17.595) (xy -3.105 -17.621) (xy -3.113 -17.649)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.646 -17.649) (xy -2.656 -17.619) (xy -2.674 -17.595) (xy -2.699 -17.573) (xy -2.714 -17.563)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.984 -19.196) (xy -2.118 -19.274)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.984 -19.196) (xy -2.054 -19.155) (xy -2.125 -19.115) (xy -2.196 -19.074) (xy -2.266 -19.033) (xy -2.337 -18.992) (xy -2.407 -18.951) (xy -2.478 -18.911) (xy -2.549 -18.870) (xy -2.619 -18.829) (xy -2.690 -18.788) (xy -2.761 -18.748) (xy -2.831 -18.707) (xy -2.902 -18.666) (xy -2.972 -18.625) (xy -3.043 -18.584) (xy -3.114 -18.544) (xy -3.184 -18.503) (xy -3.255 -18.462) (xy -3.325 -18.421) (xy -3.396 -18.381) (xy -3.467 -18.340) (xy -3.537 -18.299)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.537 -18.299) (xy -3.672 -18.377)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.983 -19.313) (xy -2.118 -19.391)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.983 -19.313) (xy -1.986 -19.285) (xy -1.989 -19.258)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.989 -19.258) (xy -1.987 -19.230) (xy -1.984 -19.202) (xy -1.984 -19.196)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.118 -19.274) (xy -2.145 -19.292) (xy -2.171 -19.316) (xy -2.195 -19.344) (xy -2.216 -19.376) (xy -2.233 -19.410) (xy -2.246 -19.445) (xy -2.254 -19.479) (xy -2.255 -19.490)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.255 -19.490) (xy -2.284 -19.742)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.284 -19.742) (xy -2.293 -19.769) (xy -2.311 -19.793) (xy -2.320 -19.800)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.320 -19.800) (xy -2.504 -19.906)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.504 -20.023) (xy -2.504 -19.906)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.320 -19.917) (xy -2.504 -20.023)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.184 -19.700) (xy -2.190 -19.734) (xy -2.201 -19.769) (xy -2.217 -19.803) (xy -2.237 -19.836) (xy -2.260 -19.865) (xy -2.285 -19.891) (xy -2.311 -19.911) (xy -2.320 -19.917)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.155 -19.448) (xy -2.184 -19.700)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.118 -19.391) (xy -2.139 -19.410) (xy -2.152 -19.436) (xy -2.155 -19.448)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.672 -18.377) (xy -3.699 -18.395) (xy -3.725 -18.419) (xy -3.749 -18.447) (xy -3.769 -18.479) (xy -3.787 -18.513) (xy -3.799 -18.548) (xy -3.807 -18.582) (xy -3.809 -18.593)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -4.058 -19.009) (xy -4.058 -19.126)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.874 -18.903) (xy -4.058 -19.009)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.838 -18.845) (xy -3.846 -18.872) (xy -3.864 -18.896) (xy -3.874 -18.903)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -3.809 -18.593) (xy -3.838 -18.845)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -4.058 -19.126) (xy -2.504 -20.023)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.504 -19.906) (xy -4.058 -19.009)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.113 -20.276) (xy -0.248 -20.354)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.113 -20.276) (xy -0.184 -20.235) (xy -0.255 -20.194) (xy -0.325 -20.154) (xy -0.396 -20.113) (xy -0.467 -20.072) (xy -0.537 -20.031) (xy -0.608 -19.990) (xy -0.678 -19.950) (xy -0.749 -19.909) (xy -0.820 -19.868) (xy -0.890 -19.827) (xy -0.961 -19.787) (xy -1.032 -19.746) (xy -1.102 -19.705) (xy -1.173 -19.664) (xy -1.243 -19.623) (xy -1.314 -19.583) (xy -1.385 -19.542) (xy -1.455 -19.501) (xy -1.526 -19.460) (xy -1.596 -19.420) (xy -1.667 -19.379)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.667 -19.379) (xy -1.802 -19.457)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.113 -20.393) (xy -0.248 -20.471)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.113 -20.393) (xy -0.116 -20.365) (xy -0.119 -20.337)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.119 -20.337) (xy -0.116 -20.308) (xy -0.114 -20.279) (xy -0.113 -20.276)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.248 -20.354) (xy -0.275 -20.372) (xy -0.301 -20.396) (xy -0.325 -20.424) (xy -0.345 -20.456) (xy -0.363 -20.490) (xy -0.375 -20.525) (xy -0.383 -20.559) (xy -0.385 -20.570)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.385 -20.570) (xy -0.414 -20.822)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.414 -20.822) (xy -0.422 -20.849) (xy -0.440 -20.872) (xy -0.450 -20.879)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.450 -20.879) (xy -0.634 -20.986)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.634 -21.103) (xy -0.634 -20.986)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.450 -20.996) (xy -0.634 -21.103)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.313 -20.780) (xy -0.319 -20.814) (xy -0.331 -20.849) (xy -0.347 -20.883) (xy -0.366 -20.916) (xy -0.389 -20.945) (xy -0.414 -20.970) (xy -0.441 -20.991) (xy -0.450 -20.996)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.285 -20.528) (xy -0.313 -20.780)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.248 -20.471) (xy -0.270 -20.492) (xy -0.283 -20.519) (xy -0.285 -20.528)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.802 -19.457) (xy -1.829 -19.475) (xy -1.854 -19.499) (xy -1.878 -19.527) (xy -1.899 -19.559) (xy -1.916 -19.593) (xy -1.929 -19.627) (xy -1.937 -19.662) (xy -1.939 -19.673)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.188 -20.089) (xy -2.188 -20.205)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.004 -19.983) (xy -2.188 -20.089)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.967 -19.925) (xy -1.976 -19.952) (xy -1.994 -19.975) (xy -2.004 -19.983)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.939 -19.673) (xy -1.967 -19.925)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.188 -20.205) (xy -0.634 -21.103)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.634 -20.986) (xy -2.188 -20.089)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.806 -18.733) (xy 2.808 -18.742)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.808 -18.742) (xy 2.812 -18.765)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.824 -18.862) (xy 2.837 -18.961)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.837 -18.961) (xy 2.844 -18.989) (xy 2.858 -19.014) (xy 2.876 -19.029)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.876 -19.029) (xy 2.903 -19.038) (xy 2.935 -19.035) (xy 2.964 -19.025) (xy 2.974 -19.019)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.974 -19.019) (xy 3.158 -18.913)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 3.158 -18.796) (xy 3.158 -18.913)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.974 -18.903) (xy 3.158 -18.796)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.938 -18.887) (xy 2.948 -18.905)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.948 -18.905) (xy 2.974 -18.903)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.909 -18.668) (xy 2.938 -18.887)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.783 -18.604) (xy 2.809 -18.595) (xy 2.838 -18.591) (xy 2.867 -18.599) (xy 2.870 -18.600)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.870 -18.600) (xy 2.892 -18.621) (xy 2.905 -18.648) (xy 2.909 -18.668)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.921 -18.759) (xy 3.007 -18.709)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 3.007 -18.709) (xy 3.158 -18.796)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.772 -18.544) (xy 2.870 -18.600)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.876 -19.029) (xy 2.801 -18.986)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.118 -19.274) (xy -3.672 -18.377)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.255 -19.490) (xy -3.809 -18.593)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.320 -19.800) (xy -3.874 -18.903)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -2.284 -19.742) (xy -3.838 -18.845)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.248 -20.354) (xy -1.802 -19.457)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.385 -20.570) (xy -1.939 -19.673)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.450 -20.879) (xy -2.004 -19.983)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.414 -20.822) (xy -1.967 -19.925)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.808 -18.742) (xy 2.807 -18.742)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.937 -18.881) (xy 2.974 -18.903)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 2.837 -18.961) (xy 2.808 -18.945)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.812 -17.313) (xy -1.099 -17.479)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.907 -17.258) (xy -0.716 -17.369)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.648 -17.408) (xy -0.935 -17.574)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.648 -17.408) (xy -0.826 -17.636)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.430 -17.534) (xy -0.826 -17.636)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.430 -17.534) (xy -0.716 -17.700)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.198 -17.747) (xy -0.184 -17.692) (xy -0.252 -17.636) (xy -0.293 -17.629) (xy -0.348 -17.629) (xy -0.389 -17.636) (xy -0.444 -17.652) (xy -0.512 -17.692) (xy -0.539 -17.723) (xy -0.553 -17.779) (xy -0.484 -17.834) (xy -0.444 -17.841) (xy -0.389 -17.841) (xy -0.348 -17.834)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.102 -17.889) (xy 0.102 -17.857) (xy 0.075 -17.826) (xy 0.020 -17.794) (xy -0.034 -17.779) (xy -0.089 -17.779) (xy -0.116 -17.794) (xy -0.130 -17.834) (xy -0.061 -17.920) (xy -0.048 -17.960) (xy -0.102 -18.007) (xy -0.157 -18.007) (xy -0.212 -17.991) (xy -0.266 -17.960) (xy -0.293 -17.928) (xy -0.293 -17.897)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.212 -17.967) (xy 0.252 -17.975) (xy 0.334 -17.975) (xy 0.048 -18.141)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.485 -18.125) (xy 0.526 -18.133) (xy 0.608 -18.133) (xy 0.321 -18.298)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.716 -18.275) (xy 0.771 -18.259) (xy 0.839 -18.267) (xy 0.894 -18.298) (xy 0.908 -18.338) (xy 0.867 -18.377) (xy 0.826 -18.385) (xy 0.758 -18.393) (xy 0.485 -18.393) (xy 0.676 -18.503)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 1.072 -18.401) (xy 1.222 -18.487) (xy 1.030 -18.503) (xy 1.072 -18.527) (xy 1.085 -18.566) (xy 1.058 -18.598) (xy 1.030 -18.614) (xy 0.976 -18.629) (xy 0.921 -18.629) (xy 0.867 -18.614) (xy 0.826 -18.590) (xy 0.798 -18.558) (xy 0.812 -18.519)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.303 -17.526) (xy -1.590 -17.692)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.303 -17.526) (xy -1.180 -17.597) (xy -1.153 -17.629) (xy -1.167 -17.668) (xy -1.194 -17.684) (xy -1.235 -17.692) (xy -1.317 -17.676)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.440 -17.605) (xy -1.317 -17.676) (xy -1.290 -17.708) (xy -1.303 -17.747) (xy -1.344 -17.770) (xy -1.385 -17.779) (xy -1.413 -17.779) (xy -1.467 -17.762) (xy -1.590 -17.692)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -1.044 -17.739) (xy -1.003 -17.747) (xy -0.921 -17.747) (xy -1.208 -17.912)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.676 -17.889) (xy -1.071 -17.991)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.676 -17.889) (xy -0.853 -18.117)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.935 -17.960) (xy -0.798 -18.038)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.430 -18.031) (xy -0.471 -18.023) (xy -0.525 -18.023) (xy -0.566 -18.031) (xy -0.621 -18.046) (xy -0.689 -18.086) (xy -0.716 -18.117) (xy -0.730 -18.172) (xy -0.662 -18.228) (xy -0.621 -18.235) (xy -0.566 -18.235) (xy -0.525 -18.228) (xy -0.471 -18.212) (xy -0.403 -18.172) (xy -0.375 -18.141) (xy -0.361 -18.086) (xy -0.430 -18.031)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.621 -18.188) (xy -0.621 -18.283)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.198 -18.164) (xy -0.484 -18.330)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy -0.198 -18.164) (xy -0.102 -18.220) (xy -0.075 -18.251) (xy -0.075 -18.283) (xy -0.116 -18.338) (xy -0.184 -18.377) (xy -0.239 -18.393) (xy -0.280 -18.401) (xy -0.334 -18.401) (xy -0.389 -18.385) (xy -0.484 -18.330)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.048 -18.306) (xy -0.130 -18.535)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.266 -18.432) (xy -0.130 -18.535)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.457 -18.621) (xy 0.471 -18.566) (xy 0.403 -18.511) (xy 0.362 -18.503) (xy 0.307 -18.503) (xy 0.266 -18.511) (xy 0.212 -18.527) (xy 0.143 -18.566) (xy 0.116 -18.598) (xy 0.102 -18.653) (xy 0.171 -18.708) (xy 0.212 -18.716) (xy 0.266 -18.716) (xy 0.307 -18.708) (xy 0.348 -18.684)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.280 -18.645) (xy 0.348 -18.684)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.621 -18.637) (xy 0.334 -18.803)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.621 -18.637) (xy 0.744 -18.708) (xy 0.771 -18.740) (xy 0.758 -18.779) (xy 0.730 -18.795) (xy 0.689 -18.803) (xy 0.608 -18.787) (xy 0.485 -18.716)) (stroke (width 0.025) (type default)) (fill (type none)))+      (polyline (pts (xy 0.580 -18.771) (xy 0.526 -18.913)) (stroke (width 0.025) (type default)) (fill (type none)))+    )+    (symbol "TMCS1123B1AQDVGR_1_1"+      (pin passive line (at -20.32 -2.54 0) (length 2.54) (name "IN+") (number "1"))+      (pin passive line (at -20.32 -5.08 0) (length 2.54) (name "IN-") (number "2"))+      (pin power_in line (at 20.32 -2.54 180) (length 2.54) (name "VS") (number "8"))+      (pin power_in line (at 20.32 -5.08 180) (length 2.54) (name "GND") (number "3"))+      (pin output line (at 20.32 -12.70 180) (length 2.54) (name "VOUT") (number "6"))+      (pin output line (at 20.32 -15.24 180) (length 2.54) (name "VREF") (number "5"))+      (pin input line (at 20.32 -22.86 180) (length 2.54) (name "VOC") (number "9"))+      (pin open_collector line (at 20.32 -25.40 180) (length 2.54) (name "OC") (number "7"))+      (pin open_collector line (at 20.32 -27.94 180) (length 2.54) (name "ALERT") (number "4"))+      (pin no_connect line (at 20.32 -38.10 180) (length 2.54) (name "NC") (number "10"))+    )+  )+)
tmcs1123b1aqdvgr.lbradded+630
@@ -0,0 +1,630 @@+<?xml version="1.0" encoding="utf-8"?>+<!DOCTYPE eagle SYSTEM "eagle.dtd">+<eagle version="9.6.2">+<drawing>+<settings><setting alwaysvectorfont="no"/></settings>+<grid distance="0.1" unitdist="inch" unit="inch" style="lines" multiple="1" display="no" altdistance="0.01" altunitdist="inch" altunit="inch"/>+<layers>+<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>+<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>+<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>+<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>+<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>+<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>+<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>+<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>+<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>+<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>+<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>+<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>+<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>+<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>+<layer number="29" name="tStop" color="7" fill="3" visible="no" active="yes"/>+<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>+<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>+<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>+<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>+<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>+<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>+<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>+<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>+<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>+<layer number="39" name="tKeepout" color="4" fill="11" visible="no" active="yes"/>+<layer number="40" name="bKeepout" color="1" fill="11" visible="no" active="yes"/>+<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="yes"/>+<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>+<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>+<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>+<layer number="45" name="Holes" color="7" fill="1" visible="no" active="yes"/>+<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>+<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>+<layer number="48" name="Document" color="7" fill="1" visible="yes" active="yes"/>+<layer number="49" name="Reference" color="7" fill="1" visible="yes" active="yes"/>+<layer number="91" name="Nets" color="2" fill="1" visible="yes" active="yes"/>+<layer number="92" name="Busses" color="1" fill="1" visible="yes" active="yes"/>+<layer number="93" name="Pins" color="2" fill="1" visible="no" active="yes"/>+<layer number="94" name="Symbols" color="4" fill="1" visible="yes" active="yes"/>+<layer number="95" name="Names" color="7" fill="1" visible="yes" active="yes"/>+<layer number="96" name="Values" color="7" fill="1" visible="yes" active="yes"/>+<layer number="97" name="Info" color="7" fill="1" visible="yes" active="yes"/>+<layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/>+</layers>+<library>+<description>Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function</description>+<packages>+<package name="tmcs1123b1aqdvgr">+  <description>10 pads, 11.4 x 9.5 mm. TI DVG0010A 10-pin wide-body SOIC (7.5 x 10.3 mm body), TMCS1123 isolated current sensor; land pattern per TI drawing 4226847/C, HV / isolation option (8.1 mm pad-to-pad clearance/creepage), SBOSA24D p.46</description>+  <smd name="1" x="-4.8750" y="2.5400" dx="1.6500" dy="4.4100" layer="1" roundness="6"/>+  <smd name="2" x="-4.8750" y="-2.5400" dx="1.6500" dy="4.4100" layer="1" roundness="6"/>+  <smd name="3" x="4.8750" y="-4.4450" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+  <smd name="4" x="4.8750" y="-3.1750" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+  <smd name="5" x="4.8750" y="-1.9050" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+  <smd name="6" x="4.8750" y="-0.6350" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+  <smd name="7" x="4.8750" y="0.6350" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+  <smd name="8" x="4.8750" y="1.9050" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+  <smd name="9" x="4.8750" y="3.1750" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+  <smd name="10" x="4.8750" y="4.4450" dx="1.6500" dy="0.6000" layer="1" roundness="17"/>+  <polygon width="0.1000" layer="51">+    <vertex x="-2.7500" y="5.1500"/>+    <vertex x="3.7500" y="5.1500"/>+    <vertex x="3.7500" y="-5.1500"/>+    <vertex x="-3.7500" y="-5.1500"/>+    <vertex x="-3.7500" y="4.1500"/>+  </polygon>+  <wire x1="0.0000" y1="5.1500" x2="0.0000" y2="-5.1500" width="0.1000" layer="51"/>+  <wire x1="-3.8700" y1="5.2700" x2="3.8700" y2="5.2700" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="5.2700" x2="3.8700" y2="4.9600" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="3.9300" x2="3.8700" y2="3.6900" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="2.6600" x2="3.8700" y2="2.4200" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="1.3900" x2="3.8700" y2="1.1500" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="0.1200" x2="3.8700" y2="-0.1200" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="-1.1500" x2="3.8700" y2="-1.3900" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="-2.4200" x2="3.8700" y2="-2.6600" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="-3.6900" x2="3.8700" y2="-3.9300" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="-4.9600" x2="3.8700" y2="-5.2700" width="0.1200" layer="21"/>+  <wire x1="3.8700" y1="-5.2700" x2="-3.8700" y2="-5.2700" width="0.1200" layer="21"/>+  <wire x1="-3.8700" y1="-5.2700" x2="-3.8700" y2="-4.9600" width="0.1200" layer="21"/>+  <wire x1="-3.8700" y1="-0.1200" x2="-3.8700" y2="0.1200" width="0.1200" layer="21"/>+  <wire x1="-3.8700" y1="4.9600" x2="-3.8700" y2="5.2700" width="0.1200" layer="21"/>+  <wire x1="-4.0500" y1="5.4500" x2="-3.4500" y2="5.4500" width="0.1200" layer="21"/>+  <text x="0" y="6.050" size="1.27" layer="25" align="bottom-center">&gt;NAME</text>+  <text x="0" y="-5.870" size="1.27" layer="27" align="top-center">&gt;VALUE</text>+<rectangle x1="-4.05" y1="-5.5" x2="4.05" y2="5.5" layer="41"/>+<rectangle x1="-4.05" y1="-5.5" x2="4.05" y2="5.5" layer="42"/>+<rectangle x1="-4.05" y1="-5.5" x2="4.05" y2="5.5" layer="43"/>+<text x="0" y="0" size="0.6" layer="51" rot="R90" align="center">ISOLATION KEEPOUT 8.1 mm</text>+</package>+</packages>+<symbols>+<symbol name="TMCS1123B1AQDVGR">+  <description>Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function</description>+  <wire x1="-17.78" y1="2.54" x2="17.78" y2="2.54" width="0.254" layer="94"/>+  <wire x1="17.78" y1="2.54" x2="17.78" y2="-40.64" width="0.254" layer="94"/>+  <wire x1="17.78" y1="-40.64" x2="-17.78" y2="-40.64" width="0.254" layer="94"/>+  <wire x1="-17.78" y1="-40.64" x2="-17.78" y2="2.54" width="0.254" layer="94"/>+  <wire x1="0.0660" y1="-20.7840" x2="2.7530" y2="-19.2320" width="0.0254" layer="94"/>+  <wire x1="2.7530" y1="-19.2320" x2="2.7600" y2="-19.1970" width="0.0254" layer="94"/>+  <wire x1="2.7600" y1="-19.1970" x2="2.7660" y2="-19.1630" width="0.0254" layer="94"/>+  <wire x1="2.7660" y1="-19.1630" x2="2.7730" y2="-19.1280" width="0.0254" layer="94"/>+  <wire x1="2.7730" y1="-19.1280" x2="2.7800" y2="-19.0930" width="0.0254" layer="94"/>+  <wire x1="2.7800" y1="-19.0930" x2="2.7860" y2="-19.0580" width="0.0254" layer="94"/>+  <wire x1="2.7860" y1="-19.0580" x2="2.7930" y2="-19.0230" width="0.0254" layer="94"/>+  <wire x1="2.7930" y1="-19.0230" x2="2.8000" y2="-18.9890" width="0.0254" layer="94"/>+  <wire x1="2.8000" y1="-18.9890" x2="2.8070" y2="-18.9540" width="0.0254" layer="94"/>+  <wire x1="2.8070" y1="-18.9540" x2="2.8130" y2="-18.9190" width="0.0254" layer="94"/>+  <wire x1="2.8130" y1="-18.9190" x2="2.8200" y2="-18.8840" width="0.0254" layer="94"/>+  <wire x1="2.8200" y1="-18.8840" x2="2.8270" y2="-18.8490" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.4440" x2="2.8270" y2="-18.8490" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.7840" x2="0.0660" y2="-20.7530" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.7530" x2="0.0660" y2="-20.7220" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.7220" x2="0.0660" y2="-20.6910" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.6910" x2="0.0660" y2="-20.6600" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.6600" x2="0.0660" y2="-20.6290" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.6290" x2="0.0660" y2="-20.5980" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.5980" x2="0.0660" y2="-20.5670" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.5670" x2="0.0660" y2="-20.5360" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.5360" x2="0.0660" y2="-20.5050" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.5050" x2="0.0660" y2="-20.4750" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.4750" x2="0.0660" y2="-20.4440" width="0.0254" layer="94"/>+  <wire x1="-2.1610" y1="-19.4990" x2="-1.9300" y2="-19.6320" width="0.0254" layer="94"/>+  <wire x1="-0.2900" y1="-20.5780" x2="0.0660" y2="-20.7840" width="0.0254" layer="94"/>+  <wire x1="2.8270" y1="-18.8490" x2="2.8220" y2="-18.8210" width="0.0254" layer="94"/>+  <wire x1="2.8220" y1="-18.8210" x2="2.8170" y2="-18.7930" width="0.0254" layer="94"/>+  <wire x1="2.8170" y1="-18.7930" x2="2.8120" y2="-18.7650" width="0.0254" layer="94"/>+  <wire x1="2.8120" y1="-18.7650" x2="2.8070" y2="-18.7370" width="0.0254" layer="94"/>+  <wire x1="2.8070" y1="-18.7370" x2="2.8010" y2="-18.7090" width="0.0254" layer="94"/>+  <wire x1="2.8010" y1="-18.7090" x2="2.7970" y2="-18.6810" width="0.0254" layer="94"/>+  <wire x1="2.7970" y1="-18.6810" x2="2.7920" y2="-18.6530" width="0.0254" layer="94"/>+  <wire x1="2.7920" y1="-18.6530" x2="2.7860" y2="-18.6250" width="0.0254" layer="94"/>+  <wire x1="2.7860" y1="-18.6250" x2="2.7810" y2="-18.5970" width="0.0254" layer="94"/>+  <wire x1="2.7810" y1="-18.5970" x2="2.7760" y2="-18.5690" width="0.0254" layer="94"/>+  <wire x1="2.7760" y1="-18.5690" x2="2.7720" y2="-18.5410" width="0.0254" layer="94"/>+  <wire x1="2.7720" y1="-18.5410" x2="2.7660" y2="-18.5130" width="0.0254" layer="94"/>+  <wire x1="2.7660" y1="-18.5130" x2="2.7610" y2="-18.4850" width="0.0254" layer="94"/>+  <wire x1="2.7610" y1="-18.4850" x2="2.7560" y2="-18.4570" width="0.0254" layer="94"/>+  <wire x1="2.7560" y1="-18.4570" x2="2.7510" y2="-18.4290" width="0.0254" layer="94"/>+  <wire x1="2.7510" y1="-18.4290" x2="2.7460" y2="-18.4010" width="0.0254" layer="94"/>+  <wire x1="2.7460" y1="-18.4010" x2="2.7410" y2="-18.3730" width="0.0254" layer="94"/>+  <wire x1="2.7410" y1="-18.3730" x2="2.7360" y2="-18.3450" width="0.0254" layer="94"/>+  <wire x1="2.7360" y1="-18.3450" x2="2.7310" y2="-18.3170" width="0.0254" layer="94"/>+  <wire x1="2.7310" y1="-18.3170" x2="2.7260" y2="-18.2890" width="0.0254" layer="94"/>+  <wire x1="2.7260" y1="-18.2890" x2="2.7210" y2="-18.2610" width="0.0254" layer="94"/>+  <wire x1="2.7210" y1="-18.2610" x2="2.7160" y2="-18.2330" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-19.7640" x2="2.7160" y2="-18.2330" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.4440" x2="0.0660" y2="-20.4130" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.4130" x2="0.0660" y2="-20.3820" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.3820" x2="0.0660" y2="-20.3510" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.3510" x2="0.0660" y2="-20.3200" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.3200" x2="0.0660" y2="-20.2890" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.2890" x2="0.0660" y2="-20.2580" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.2580" x2="0.0660" y2="-20.2270" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.2270" x2="0.0660" y2="-20.1960" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.1960" x2="0.0660" y2="-20.1650" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.1650" x2="0.0660" y2="-20.1340" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.1340" x2="0.0660" y2="-20.1030" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.1030" x2="0.0660" y2="-20.0730" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.0730" x2="0.0660" y2="-20.0420" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.0420" x2="0.0660" y2="-20.0110" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-20.0110" x2="0.0660" y2="-19.9800" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-19.9800" x2="0.0660" y2="-19.9490" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-19.9490" x2="0.0660" y2="-19.9180" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-19.9180" x2="0.0660" y2="-19.8870" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-19.8870" x2="0.0660" y2="-19.8560" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-19.8560" x2="0.0660" y2="-19.8250" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-19.8250" x2="0.0660" y2="-19.7940" width="0.0254" layer="94"/>+  <wire x1="0.0660" y1="-19.7940" x2="0.0660" y2="-19.7640" width="0.0254" layer="94"/>+  <wire x1="-3.7270" y1="-18.2540" x2="-3.5930" y2="-18.3310" width="0.0254" layer="94"/>+  <wire x1="-1.9890" y1="-19.2580" x2="-1.7230" y2="-19.4110" width="0.0254" layer="94"/>+  <wire x1="-0.1190" y1="-20.3370" x2="0.0660" y2="-20.4440" width="0.0254" layer="94"/>+  <wire x1="-3.6990" y1="-18.3960" x2="-3.7060" y2="-18.3640" width="0.0254" layer="94"/>+  <wire x1="-3.7060" y1="-18.3640" x2="-3.7120" y2="-18.3320" width="0.0254" layer="94"/>+  <wire x1="-3.7120" y1="-18.3320" x2="-3.7180" y2="-18.2990" width="0.0254" layer="94"/>+  <wire x1="-3.7180" y1="-18.2990" x2="-3.7240" y2="-18.2670" width="0.0254" layer="94"/>+  <wire x1="-3.7240" y1="-18.2670" x2="-3.7270" y2="-18.2540" width="0.0254" layer="94"/>+  <wire x1="2.7160" y1="-18.2330" x2="-0.9660" y2="-16.1070" width="0.0254" layer="94"/>+  <wire x1="-3.6160" y1="-17.6380" x2="0.0660" y2="-19.7640" width="0.0254" layer="94"/>+  <wire x1="-0.9660" y1="-16.1070" x2="-3.6160" y2="-17.6380" width="0.0254" layer="94"/>+  <wire x1="-2.7140" y1="-17.5420" x2="-2.6880" y2="-17.5610" width="0.0254" layer="94"/>+  <wire x1="-2.6880" y1="-17.5610" x2="-2.6670" y2="-17.5820" width="0.0254" layer="94"/>+  <wire x1="-2.6670" y1="-17.5820" x2="-2.6510" y2="-17.6090" width="0.0254" layer="94"/>+  <wire x1="-2.6510" y1="-17.6090" x2="-2.6460" y2="-17.6380" width="0.0254" layer="94"/>+  <wire x1="-2.6460" y1="-17.6380" x2="-2.6550" y2="-17.6760" width="0.0254" layer="94"/>+  <wire x1="-2.6550" y1="-17.6760" x2="-2.6830" y2="-17.7110" width="0.0254" layer="94"/>+  <wire x1="-2.6830" y1="-17.7110" x2="-2.7260" y2="-17.7400" width="0.0254" layer="94"/>+  <wire x1="-2.7260" y1="-17.7400" x2="-2.7530" y2="-17.7520" width="0.0254" layer="94"/>+  <wire x1="-2.7530" y1="-17.7520" x2="-2.7830" y2="-17.7610" width="0.0254" layer="94"/>+  <wire x1="-2.7830" y1="-17.7610" x2="-2.8140" y2="-17.7680" width="0.0254" layer="94"/>+  <wire x1="-2.8140" y1="-17.7680" x2="-2.8470" y2="-17.7720" width="0.0254" layer="94"/>+  <wire x1="-2.8470" y1="-17.7720" x2="-2.8800" y2="-17.7730" width="0.0254" layer="94"/>+  <wire x1="-2.8800" y1="-17.7730" x2="-2.9130" y2="-17.7720" width="0.0254" layer="94"/>+  <wire x1="-2.9130" y1="-17.7720" x2="-2.9460" y2="-17.7680" width="0.0254" layer="94"/>+  <wire x1="-2.9460" y1="-17.7680" x2="-2.9770" y2="-17.7610" width="0.0254" layer="94"/>+  <wire x1="-2.9770" y1="-17.7610" x2="-3.0070" y2="-17.7520" width="0.0254" layer="94"/>+  <wire x1="-3.0070" y1="-17.7520" x2="-3.0330" y2="-17.7400" width="0.0254" layer="94"/>+  <wire x1="-3.0330" y1="-17.7400" x2="-3.0770" y2="-17.7110" width="0.0254" layer="94"/>+  <wire x1="-3.0770" y1="-17.7110" x2="-3.1050" y2="-17.6760" width="0.0254" layer="94"/>+  <wire x1="-3.1050" y1="-17.6760" x2="-3.1140" y2="-17.6380" width="0.0254" layer="94"/>+  <wire x1="-3.1140" y1="-17.6380" x2="-3.1090" y2="-17.6090" width="0.0254" layer="94"/>+  <wire x1="-3.1090" y1="-17.6090" x2="-3.0930" y2="-17.5820" width="0.0254" layer="94"/>+  <wire x1="-3.0930" y1="-17.5820" x2="-3.0670" y2="-17.5570" width="0.0254" layer="94"/>+  <wire x1="-3.0670" y1="-17.5570" x2="-3.0330" y2="-17.5360" width="0.0254" layer="94"/>+  <wire x1="-3.0330" y1="-17.5360" x2="-2.9920" y2="-17.5190" width="0.0254" layer="94"/>+  <wire x1="-2.9920" y1="-17.5190" x2="-2.9460" y2="-17.5080" width="0.0254" layer="94"/>+  <wire x1="-2.9460" y1="-17.5080" x2="-2.8970" y2="-17.5030" width="0.0254" layer="94"/>+  <wire x1="-2.8970" y1="-17.5030" x2="-2.8470" y2="-17.5040" width="0.0254" layer="94"/>+  <wire x1="-2.8470" y1="-17.5040" x2="-2.7980" y2="-17.5110" width="0.0254" layer="94"/>+  <wire x1="-2.7980" y1="-17.5110" x2="-2.7530" y2="-17.5240" width="0.0254" layer="94"/>+  <wire x1="-2.7530" y1="-17.5240" x2="-2.7140" y2="-17.5420" width="0.0254" layer="94"/>+  <wire x1="-3.7270" y1="-18.2540" x2="-3.7220" y2="-18.2260" width="0.0254" layer="94"/>+  <wire x1="-3.7220" y1="-18.2260" x2="-3.7170" y2="-18.1980" width="0.0254" layer="94"/>+  <wire x1="-3.7170" y1="-18.1980" x2="-3.7120" y2="-18.1700" width="0.0254" layer="94"/>+  <wire x1="-3.7120" y1="-18.1700" x2="-3.7070" y2="-18.1420" width="0.0254" layer="94"/>+  <wire x1="-3.7070" y1="-18.1420" x2="-3.7010" y2="-18.1140" width="0.0254" layer="94"/>+  <wire x1="-3.7010" y1="-18.1140" x2="-3.6970" y2="-18.0860" width="0.0254" layer="94"/>+  <wire x1="-3.6970" y1="-18.0860" x2="-3.6920" y2="-18.0580" width="0.0254" layer="94"/>+  <wire x1="-3.6920" y1="-18.0580" x2="-3.6860" y2="-18.0300" width="0.0254" layer="94"/>+  <wire x1="-3.6860" y1="-18.0300" x2="-3.6810" y2="-18.0020" width="0.0254" layer="94"/>+  <wire x1="-3.6810" y1="-18.0020" x2="-3.6760" y2="-17.9740" width="0.0254" layer="94"/>+  <wire x1="-3.6760" y1="-17.9740" x2="-3.6720" y2="-17.9460" width="0.0254" layer="94"/>+  <wire x1="-3.6720" y1="-17.9460" x2="-3.6660" y2="-17.9180" width="0.0254" layer="94"/>+  <wire x1="-3.6660" y1="-17.9180" x2="-3.6610" y2="-17.8900" width="0.0254" layer="94"/>+  <wire x1="-3.6610" y1="-17.8900" x2="-3.6560" y2="-17.8620" width="0.0254" layer="94"/>+  <wire x1="-3.6560" y1="-17.8620" x2="-3.6510" y2="-17.8340" width="0.0254" layer="94"/>+  <wire x1="-3.6510" y1="-17.8340" x2="-3.6460" y2="-17.8060" width="0.0254" layer="94"/>+  <wire x1="-3.6460" y1="-17.8060" x2="-3.6410" y2="-17.7780" width="0.0254" layer="94"/>+  <wire x1="-3.6410" y1="-17.7780" x2="-3.6360" y2="-17.7500" width="0.0254" layer="94"/>+  <wire x1="-3.6360" y1="-17.7500" x2="-3.6310" y2="-17.7220" width="0.0254" layer="94"/>+  <wire x1="-3.6310" y1="-17.7220" x2="-3.6260" y2="-17.6940" width="0.0254" layer="94"/>+  <wire x1="-3.6260" y1="-17.6940" x2="-3.6210" y2="-17.6660" width="0.0254" layer="94"/>+  <wire x1="-3.6210" y1="-17.6660" x2="-3.6160" y2="-17.6380" width="0.0254" layer="94"/>+  <wire x1="-2.7140" y1="-17.5630" x2="-2.7520" y2="-17.5460" width="0.0254" layer="94"/>+  <wire x1="-2.7520" y1="-17.5460" x2="-2.7950" y2="-17.5330" width="0.0254" layer="94"/>+  <wire x1="-2.7950" y1="-17.5330" x2="-2.8410" y2="-17.5260" width="0.0254" layer="94"/>+  <wire x1="-2.8410" y1="-17.5260" x2="-2.8900" y2="-17.5240" width="0.0254" layer="94"/>+  <wire x1="-2.8900" y1="-17.5240" x2="-2.9380" y2="-17.5280" width="0.0254" layer="94"/>+  <wire x1="-2.9380" y1="-17.5280" x2="-2.9830" y2="-17.5380" width="0.0254" layer="94"/>+  <wire x1="-2.9830" y1="-17.5380" x2="-3.0240" y2="-17.5520" width="0.0254" layer="94"/>+  <wire x1="-3.0240" y1="-17.5520" x2="-3.0590" y2="-17.5720" width="0.0254" layer="94"/>+  <wire x1="-3.0590" y1="-17.5720" x2="-3.0860" y2="-17.5950" width="0.0254" layer="94"/>+  <wire x1="-3.0860" y1="-17.5950" x2="-3.1050" y2="-17.6210" width="0.0254" layer="94"/>+  <wire x1="-3.1050" y1="-17.6210" x2="-3.1130" y2="-17.6490" width="0.0254" layer="94"/>+  <wire x1="-2.6460" y1="-17.6490" x2="-2.6560" y2="-17.6190" width="0.0254" layer="94"/>+  <wire x1="-2.6560" y1="-17.6190" x2="-2.6740" y2="-17.5950" width="0.0254" layer="94"/>+  <wire x1="-2.6740" y1="-17.5950" x2="-2.6990" y2="-17.5730" width="0.0254" layer="94"/>+  <wire x1="-2.6990" y1="-17.5730" x2="-2.7140" y2="-17.5630" width="0.0254" layer="94"/>+  <wire x1="-1.9840" y1="-19.1960" x2="-2.1180" y2="-19.2740" width="0.0254" layer="94"/>+  <wire x1="-1.9840" y1="-19.1960" x2="-2.0540" y2="-19.1550" width="0.0254" layer="94"/>+  <wire x1="-2.0540" y1="-19.1550" x2="-2.1250" y2="-19.1150" width="0.0254" layer="94"/>+  <wire x1="-2.1250" y1="-19.1150" x2="-2.1960" y2="-19.0740" width="0.0254" layer="94"/>+  <wire x1="-2.1960" y1="-19.0740" x2="-2.2660" y2="-19.0330" width="0.0254" layer="94"/>+  <wire x1="-2.2660" y1="-19.0330" x2="-2.3370" y2="-18.9920" width="0.0254" layer="94"/>+  <wire x1="-2.3370" y1="-18.9920" x2="-2.4070" y2="-18.9510" width="0.0254" layer="94"/>+  <wire x1="-2.4070" y1="-18.9510" x2="-2.4780" y2="-18.9110" width="0.0254" layer="94"/>+  <wire x1="-2.4780" y1="-18.9110" x2="-2.5490" y2="-18.8700" width="0.0254" layer="94"/>+  <wire x1="-2.5490" y1="-18.8700" x2="-2.6190" y2="-18.8290" width="0.0254" layer="94"/>+  <wire x1="-2.6190" y1="-18.8290" x2="-2.6900" y2="-18.7880" width="0.0254" layer="94"/>+  <wire x1="-2.6900" y1="-18.7880" x2="-2.7610" y2="-18.7480" width="0.0254" layer="94"/>+  <wire x1="-2.7610" y1="-18.7480" x2="-2.8310" y2="-18.7070" width="0.0254" layer="94"/>+  <wire x1="-2.8310" y1="-18.7070" x2="-2.9020" y2="-18.6660" width="0.0254" layer="94"/>+  <wire x1="-2.9020" y1="-18.6660" x2="-2.9720" y2="-18.6250" width="0.0254" layer="94"/>+  <wire x1="-2.9720" y1="-18.6250" x2="-3.0430" y2="-18.5840" width="0.0254" layer="94"/>+  <wire x1="-3.0430" y1="-18.5840" x2="-3.1140" y2="-18.5440" width="0.0254" layer="94"/>+  <wire x1="-3.1140" y1="-18.5440" x2="-3.1840" y2="-18.5030" width="0.0254" layer="94"/>+  <wire x1="-3.1840" y1="-18.5030" x2="-3.2550" y2="-18.4620" width="0.0254" layer="94"/>+  <wire x1="-3.2550" y1="-18.4620" x2="-3.3250" y2="-18.4210" width="0.0254" layer="94"/>+  <wire x1="-3.3250" y1="-18.4210" x2="-3.3960" y2="-18.3810" width="0.0254" layer="94"/>+  <wire x1="-3.3960" y1="-18.3810" x2="-3.4670" y2="-18.3400" width="0.0254" layer="94"/>+  <wire x1="-3.4670" y1="-18.3400" x2="-3.5370" y2="-18.2990" width="0.0254" layer="94"/>+  <wire x1="-3.5370" y1="-18.2990" x2="-3.6720" y2="-18.3770" width="0.0254" layer="94"/>+  <wire x1="-1.9830" y1="-19.3130" x2="-2.1180" y2="-19.3910" width="0.0254" layer="94"/>+  <wire x1="-1.9830" y1="-19.3130" x2="-1.9860" y2="-19.2850" width="0.0254" layer="94"/>+  <wire x1="-1.9860" y1="-19.2850" x2="-1.9890" y2="-19.2580" width="0.0254" layer="94"/>+  <wire x1="-1.9890" y1="-19.2580" x2="-1.9870" y2="-19.2300" width="0.0254" layer="94"/>+  <wire x1="-1.9870" y1="-19.2300" x2="-1.9840" y2="-19.2020" width="0.0254" layer="94"/>+  <wire x1="-1.9840" y1="-19.2020" x2="-1.9840" y2="-19.1960" width="0.0254" layer="94"/>+  <wire x1="-2.1180" y1="-19.2740" x2="-2.1450" y2="-19.2920" width="0.0254" layer="94"/>+  <wire x1="-2.1450" y1="-19.2920" x2="-2.1710" y2="-19.3160" width="0.0254" layer="94"/>+  <wire x1="-2.1710" y1="-19.3160" x2="-2.1950" y2="-19.3440" width="0.0254" layer="94"/>+  <wire x1="-2.1950" y1="-19.3440" x2="-2.2160" y2="-19.3760" width="0.0254" layer="94"/>+  <wire x1="-2.2160" y1="-19.3760" x2="-2.2330" y2="-19.4100" width="0.0254" layer="94"/>+  <wire x1="-2.2330" y1="-19.4100" x2="-2.2460" y2="-19.4450" width="0.0254" layer="94"/>+  <wire x1="-2.2460" y1="-19.4450" x2="-2.2540" y2="-19.4790" width="0.0254" layer="94"/>+  <wire x1="-2.2540" y1="-19.4790" x2="-2.2550" y2="-19.4900" width="0.0254" layer="94"/>+  <wire x1="-2.2550" y1="-19.4900" x2="-2.2840" y2="-19.7420" width="0.0254" layer="94"/>+  <wire x1="-2.2840" y1="-19.7420" x2="-2.2930" y2="-19.7690" width="0.0254" layer="94"/>+  <wire x1="-2.2930" y1="-19.7690" x2="-2.3110" y2="-19.7930" width="0.0254" layer="94"/>+  <wire x1="-2.3110" y1="-19.7930" x2="-2.3200" y2="-19.8000" width="0.0254" layer="94"/>+  <wire x1="-2.3200" y1="-19.8000" x2="-2.5040" y2="-19.9060" width="0.0254" layer="94"/>+  <wire x1="-2.5040" y1="-20.0230" x2="-2.5040" y2="-19.9060" width="0.0254" layer="94"/>+  <wire x1="-2.3200" y1="-19.9170" x2="-2.5040" y2="-20.0230" width="0.0254" layer="94"/>+  <wire x1="-2.1840" y1="-19.7000" x2="-2.1900" y2="-19.7340" width="0.0254" layer="94"/>+  <wire x1="-2.1900" y1="-19.7340" x2="-2.2010" y2="-19.7690" width="0.0254" layer="94"/>+  <wire x1="-2.2010" y1="-19.7690" x2="-2.2170" y2="-19.8030" width="0.0254" layer="94"/>+  <wire x1="-2.2170" y1="-19.8030" x2="-2.2370" y2="-19.8360" width="0.0254" layer="94"/>+  <wire x1="-2.2370" y1="-19.8360" x2="-2.2600" y2="-19.8650" width="0.0254" layer="94"/>+  <wire x1="-2.2600" y1="-19.8650" x2="-2.2850" y2="-19.8910" width="0.0254" layer="94"/>+  <wire x1="-2.2850" y1="-19.8910" x2="-2.3110" y2="-19.9110" width="0.0254" layer="94"/>+  <wire x1="-2.3110" y1="-19.9110" x2="-2.3200" y2="-19.9170" width="0.0254" layer="94"/>+  <wire x1="-2.1550" y1="-19.4480" x2="-2.1840" y2="-19.7000" width="0.0254" layer="94"/>+  <wire x1="-2.1180" y1="-19.3910" x2="-2.1390" y2="-19.4100" width="0.0254" layer="94"/>+  <wire x1="-2.1390" y1="-19.4100" x2="-2.1520" y2="-19.4360" width="0.0254" layer="94"/>+  <wire x1="-2.1520" y1="-19.4360" x2="-2.1550" y2="-19.4480" width="0.0254" layer="94"/>+  <wire x1="-3.6720" y1="-18.3770" x2="-3.6990" y2="-18.3950" width="0.0254" layer="94"/>+  <wire x1="-3.6990" y1="-18.3950" x2="-3.7250" y2="-18.4190" width="0.0254" layer="94"/>+  <wire x1="-3.7250" y1="-18.4190" x2="-3.7490" y2="-18.4470" width="0.0254" layer="94"/>+  <wire x1="-3.7490" y1="-18.4470" x2="-3.7690" y2="-18.4790" width="0.0254" layer="94"/>+  <wire x1="-3.7690" y1="-18.4790" x2="-3.7870" y2="-18.5130" width="0.0254" layer="94"/>+  <wire x1="-3.7870" y1="-18.5130" x2="-3.7990" y2="-18.5480" width="0.0254" layer="94"/>+  <wire x1="-3.7990" y1="-18.5480" x2="-3.8070" y2="-18.5820" width="0.0254" layer="94"/>+  <wire x1="-3.8070" y1="-18.5820" x2="-3.8090" y2="-18.5930" width="0.0254" layer="94"/>+  <wire x1="-4.0580" y1="-19.0090" x2="-4.0580" y2="-19.1260" width="0.0254" layer="94"/>+  <wire x1="-3.8740" y1="-18.9030" x2="-4.0580" y2="-19.0090" width="0.0254" layer="94"/>+  <wire x1="-3.8380" y1="-18.8450" x2="-3.8460" y2="-18.8720" width="0.0254" layer="94"/>+  <wire x1="-3.8460" y1="-18.8720" x2="-3.8640" y2="-18.8960" width="0.0254" layer="94"/>+  <wire x1="-3.8640" y1="-18.8960" x2="-3.8740" y2="-18.9030" width="0.0254" layer="94"/>+  <wire x1="-3.8090" y1="-18.5930" x2="-3.8380" y2="-18.8450" width="0.0254" layer="94"/>+  <wire x1="-4.0580" y1="-19.1260" x2="-2.5040" y2="-20.0230" width="0.0254" layer="94"/>+  <wire x1="-2.5040" y1="-19.9060" x2="-4.0580" y2="-19.0090" width="0.0254" layer="94"/>+  <wire x1="-0.1130" y1="-20.2760" x2="-0.2480" y2="-20.3540" width="0.0254" layer="94"/>+  <wire x1="-0.1130" y1="-20.2760" x2="-0.1840" y2="-20.2350" width="0.0254" layer="94"/>+  <wire x1="-0.1840" y1="-20.2350" x2="-0.2550" y2="-20.1940" width="0.0254" layer="94"/>+  <wire x1="-0.2550" y1="-20.1940" x2="-0.3250" y2="-20.1540" width="0.0254" layer="94"/>+  <wire x1="-0.3250" y1="-20.1540" x2="-0.3960" y2="-20.1130" width="0.0254" layer="94"/>+  <wire x1="-0.3960" y1="-20.1130" x2="-0.4670" y2="-20.0720" width="0.0254" layer="94"/>+  <wire x1="-0.4670" y1="-20.0720" x2="-0.5370" y2="-20.0310" width="0.0254" layer="94"/>+  <wire x1="-0.5370" y1="-20.0310" x2="-0.6080" y2="-19.9900" width="0.0254" layer="94"/>+  <wire x1="-0.6080" y1="-19.9900" x2="-0.6780" y2="-19.9500" width="0.0254" layer="94"/>+  <wire x1="-0.6780" y1="-19.9500" x2="-0.7490" y2="-19.9090" width="0.0254" layer="94"/>+  <wire x1="-0.7490" y1="-19.9090" x2="-0.8200" y2="-19.8680" width="0.0254" layer="94"/>+  <wire x1="-0.8200" y1="-19.8680" x2="-0.8900" y2="-19.8270" width="0.0254" layer="94"/>+  <wire x1="-0.8900" y1="-19.8270" x2="-0.9610" y2="-19.7870" width="0.0254" layer="94"/>+  <wire x1="-0.9610" y1="-19.7870" x2="-1.0320" y2="-19.7460" width="0.0254" layer="94"/>+  <wire x1="-1.0320" y1="-19.7460" x2="-1.1020" y2="-19.7050" width="0.0254" layer="94"/>+  <wire x1="-1.1020" y1="-19.7050" x2="-1.1730" y2="-19.6640" width="0.0254" layer="94"/>+  <wire x1="-1.1730" y1="-19.6640" x2="-1.2430" y2="-19.6230" width="0.0254" layer="94"/>+  <wire x1="-1.2430" y1="-19.6230" x2="-1.3140" y2="-19.5830" width="0.0254" layer="94"/>+  <wire x1="-1.3140" y1="-19.5830" x2="-1.3850" y2="-19.5420" width="0.0254" layer="94"/>+  <wire x1="-1.3850" y1="-19.5420" x2="-1.4550" y2="-19.5010" width="0.0254" layer="94"/>+  <wire x1="-1.4550" y1="-19.5010" x2="-1.5260" y2="-19.4600" width="0.0254" layer="94"/>+  <wire x1="-1.5260" y1="-19.4600" x2="-1.5960" y2="-19.4200" width="0.0254" layer="94"/>+  <wire x1="-1.5960" y1="-19.4200" x2="-1.6670" y2="-19.3790" width="0.0254" layer="94"/>+  <wire x1="-1.6670" y1="-19.3790" x2="-1.8020" y2="-19.4570" width="0.0254" layer="94"/>+  <wire x1="-0.1130" y1="-20.3930" x2="-0.2480" y2="-20.4710" width="0.0254" layer="94"/>+  <wire x1="-0.1130" y1="-20.3930" x2="-0.1160" y2="-20.3650" width="0.0254" layer="94"/>+  <wire x1="-0.1160" y1="-20.3650" x2="-0.1190" y2="-20.3370" width="0.0254" layer="94"/>+  <wire x1="-0.1190" y1="-20.3370" x2="-0.1160" y2="-20.3080" width="0.0254" layer="94"/>+  <wire x1="-0.1160" y1="-20.3080" x2="-0.1140" y2="-20.2790" width="0.0254" layer="94"/>+  <wire x1="-0.1140" y1="-20.2790" x2="-0.1130" y2="-20.2760" width="0.0254" layer="94"/>+  <wire x1="-0.2480" y1="-20.3540" x2="-0.2750" y2="-20.3720" width="0.0254" layer="94"/>+  <wire x1="-0.2750" y1="-20.3720" x2="-0.3010" y2="-20.3960" width="0.0254" layer="94"/>+  <wire x1="-0.3010" y1="-20.3960" x2="-0.3250" y2="-20.4240" width="0.0254" layer="94"/>+  <wire x1="-0.3250" y1="-20.4240" x2="-0.3450" y2="-20.4560" width="0.0254" layer="94"/>+  <wire x1="-0.3450" y1="-20.4560" x2="-0.3630" y2="-20.4900" width="0.0254" layer="94"/>+  <wire x1="-0.3630" y1="-20.4900" x2="-0.3750" y2="-20.5250" width="0.0254" layer="94"/>+  <wire x1="-0.3750" y1="-20.5250" x2="-0.3830" y2="-20.5590" width="0.0254" layer="94"/>+  <wire x1="-0.3830" y1="-20.5590" x2="-0.3850" y2="-20.5700" width="0.0254" layer="94"/>+  <wire x1="-0.3850" y1="-20.5700" x2="-0.4140" y2="-20.8220" width="0.0254" layer="94"/>+  <wire x1="-0.4140" y1="-20.8220" x2="-0.4220" y2="-20.8490" width="0.0254" layer="94"/>+  <wire x1="-0.4220" y1="-20.8490" x2="-0.4400" y2="-20.8720" width="0.0254" layer="94"/>+  <wire x1="-0.4400" y1="-20.8720" x2="-0.4500" y2="-20.8790" width="0.0254" layer="94"/>+  <wire x1="-0.4500" y1="-20.8790" x2="-0.6340" y2="-20.9860" width="0.0254" layer="94"/>+  <wire x1="-0.6340" y1="-21.1030" x2="-0.6340" y2="-20.9860" width="0.0254" layer="94"/>+  <wire x1="-0.4500" y1="-20.9960" x2="-0.6340" y2="-21.1030" width="0.0254" layer="94"/>+  <wire x1="-0.3130" y1="-20.7800" x2="-0.3190" y2="-20.8140" width="0.0254" layer="94"/>+  <wire x1="-0.3190" y1="-20.8140" x2="-0.3310" y2="-20.8490" width="0.0254" layer="94"/>+  <wire x1="-0.3310" y1="-20.8490" x2="-0.3470" y2="-20.8830" width="0.0254" layer="94"/>+  <wire x1="-0.3470" y1="-20.8830" x2="-0.3660" y2="-20.9160" width="0.0254" layer="94"/>+  <wire x1="-0.3660" y1="-20.9160" x2="-0.3890" y2="-20.9450" width="0.0254" layer="94"/>+  <wire x1="-0.3890" y1="-20.9450" x2="-0.4140" y2="-20.9700" width="0.0254" layer="94"/>+  <wire x1="-0.4140" y1="-20.9700" x2="-0.4410" y2="-20.9910" width="0.0254" layer="94"/>+  <wire x1="-0.4410" y1="-20.9910" x2="-0.4500" y2="-20.9960" width="0.0254" layer="94"/>+  <wire x1="-0.2850" y1="-20.5280" x2="-0.3130" y2="-20.7800" width="0.0254" layer="94"/>+  <wire x1="-0.2480" y1="-20.4710" x2="-0.2700" y2="-20.4920" width="0.0254" layer="94"/>+  <wire x1="-0.2700" y1="-20.4920" x2="-0.2830" y2="-20.5190" width="0.0254" layer="94"/>+  <wire x1="-0.2830" y1="-20.5190" x2="-0.2850" y2="-20.5280" width="0.0254" layer="94"/>+  <wire x1="-1.8020" y1="-19.4570" x2="-1.8290" y2="-19.4750" width="0.0254" layer="94"/>+  <wire x1="-1.8290" y1="-19.4750" x2="-1.8540" y2="-19.4990" width="0.0254" layer="94"/>+  <wire x1="-1.8540" y1="-19.4990" x2="-1.8780" y2="-19.5270" width="0.0254" layer="94"/>+  <wire x1="-1.8780" y1="-19.5270" x2="-1.8990" y2="-19.5590" width="0.0254" layer="94"/>+  <wire x1="-1.8990" y1="-19.5590" x2="-1.9160" y2="-19.5930" width="0.0254" layer="94"/>+  <wire x1="-1.9160" y1="-19.5930" x2="-1.9290" y2="-19.6270" width="0.0254" layer="94"/>+  <wire x1="-1.9290" y1="-19.6270" x2="-1.9370" y2="-19.6620" width="0.0254" layer="94"/>+  <wire x1="-1.9370" y1="-19.6620" x2="-1.9390" y2="-19.6730" width="0.0254" layer="94"/>+  <wire x1="-2.1880" y1="-20.0890" x2="-2.1880" y2="-20.2050" width="0.0254" layer="94"/>+  <wire x1="-2.0040" y1="-19.9830" x2="-2.1880" y2="-20.0890" width="0.0254" layer="94"/>+  <wire x1="-1.9670" y1="-19.9250" x2="-1.9760" y2="-19.9520" width="0.0254" layer="94"/>+  <wire x1="-1.9760" y1="-19.9520" x2="-1.9940" y2="-19.9750" width="0.0254" layer="94"/>+  <wire x1="-1.9940" y1="-19.9750" x2="-2.0040" y2="-19.9830" width="0.0254" layer="94"/>+  <wire x1="-1.9390" y1="-19.6730" x2="-1.9670" y2="-19.9250" width="0.0254" layer="94"/>+  <wire x1="-2.1880" y1="-20.2050" x2="-0.6340" y2="-21.1030" width="0.0254" layer="94"/>+  <wire x1="-0.6340" y1="-20.9860" x2="-2.1880" y2="-20.0890" width="0.0254" layer="94"/>+  <wire x1="2.8060" y1="-18.7330" x2="2.8080" y2="-18.7420" width="0.0254" layer="94"/>+  <wire x1="2.8080" y1="-18.7420" x2="2.8120" y2="-18.7650" width="0.0254" layer="94"/>+  <wire x1="2.8240" y1="-18.8620" x2="2.8370" y2="-18.9610" width="0.0254" layer="94"/>+  <wire x1="2.8370" y1="-18.9610" x2="2.8440" y2="-18.9890" width="0.0254" layer="94"/>+  <wire x1="2.8440" y1="-18.9890" x2="2.8580" y2="-19.0140" width="0.0254" layer="94"/>+  <wire x1="2.8580" y1="-19.0140" x2="2.8760" y2="-19.0290" width="0.0254" layer="94"/>+  <wire x1="2.8760" y1="-19.0290" x2="2.9030" y2="-19.0380" width="0.0254" layer="94"/>+  <wire x1="2.9030" y1="-19.0380" x2="2.9350" y2="-19.0350" width="0.0254" layer="94"/>+  <wire x1="2.9350" y1="-19.0350" x2="2.9640" y2="-19.0250" width="0.0254" layer="94"/>+  <wire x1="2.9640" y1="-19.0250" x2="2.9740" y2="-19.0190" width="0.0254" layer="94"/>+  <wire x1="2.9740" y1="-19.0190" x2="3.1580" y2="-18.9130" width="0.0254" layer="94"/>+  <wire x1="3.1580" y1="-18.7960" x2="3.1580" y2="-18.9130" width="0.0254" layer="94"/>+  <wire x1="2.9740" y1="-18.9030" x2="3.1580" y2="-18.7960" width="0.0254" layer="94"/>+  <wire x1="2.9380" y1="-18.8870" x2="2.9480" y2="-18.9050" width="0.0254" layer="94"/>+  <wire x1="2.9480" y1="-18.9050" x2="2.9740" y2="-18.9030" width="0.0254" layer="94"/>+  <wire x1="2.9090" y1="-18.6680" x2="2.9380" y2="-18.8870" width="0.0254" layer="94"/>+  <wire x1="2.7830" y1="-18.6040" x2="2.8090" y2="-18.5950" width="0.0254" layer="94"/>+  <wire x1="2.8090" y1="-18.5950" x2="2.8380" y2="-18.5910" width="0.0254" layer="94"/>+  <wire x1="2.8380" y1="-18.5910" x2="2.8670" y2="-18.5990" width="0.0254" layer="94"/>+  <wire x1="2.8670" y1="-18.5990" x2="2.8700" y2="-18.6000" width="0.0254" layer="94"/>+  <wire x1="2.8700" y1="-18.6000" x2="2.8920" y2="-18.6210" width="0.0254" layer="94"/>+  <wire x1="2.8920" y1="-18.6210" x2="2.9050" y2="-18.6480" width="0.0254" layer="94"/>+  <wire x1="2.9050" y1="-18.6480" x2="2.9090" y2="-18.6680" width="0.0254" layer="94"/>+  <wire x1="2.9210" y1="-18.7590" x2="3.0070" y2="-18.7090" width="0.0254" layer="94"/>+  <wire x1="3.0070" y1="-18.7090" x2="3.1580" y2="-18.7960" width="0.0254" layer="94"/>+  <wire x1="2.7720" y1="-18.5440" x2="2.8700" y2="-18.6000" width="0.0254" layer="94"/>+  <wire x1="2.8760" y1="-19.0290" x2="2.8010" y2="-18.9860" width="0.0254" layer="94"/>+  <wire x1="-2.1180" y1="-19.2740" x2="-3.6720" y2="-18.3770" width="0.0254" layer="94"/>+  <wire x1="-2.2550" y1="-19.4900" x2="-3.8090" y2="-18.5930" width="0.0254" layer="94"/>+  <wire x1="-2.3200" y1="-19.8000" x2="-3.8740" y2="-18.9030" width="0.0254" layer="94"/>+  <wire x1="-2.2840" y1="-19.7420" x2="-3.8380" y2="-18.8450" width="0.0254" layer="94"/>+  <wire x1="-0.2480" y1="-20.3540" x2="-1.8020" y2="-19.4570" width="0.0254" layer="94"/>+  <wire x1="-0.3850" y1="-20.5700" x2="-1.9390" y2="-19.6730" width="0.0254" layer="94"/>+  <wire x1="-0.4500" y1="-20.8790" x2="-2.0040" y2="-19.9830" width="0.0254" layer="94"/>+  <wire x1="-0.4140" y1="-20.8220" x2="-1.9670" y2="-19.9250" width="0.0254" layer="94"/>+  <wire x1="2.8080" y1="-18.7420" x2="2.8070" y2="-18.7420" width="0.0254" layer="94"/>+  <wire x1="2.9370" y1="-18.8810" x2="2.9740" y2="-18.9030" width="0.0254" layer="94"/>+  <wire x1="2.8370" y1="-18.9610" x2="2.8080" y2="-18.9450" width="0.0254" layer="94"/>+  <wire x1="-0.8120" y1="-17.3130" x2="-1.0990" y2="-17.4790" width="0.0254" layer="94"/>+  <wire x1="-0.9070" y1="-17.2580" x2="-0.7160" y2="-17.3690" width="0.0254" layer="94"/>+  <wire x1="-0.6480" y1="-17.4080" x2="-0.9350" y2="-17.5740" width="0.0254" layer="94"/>+  <wire x1="-0.6480" y1="-17.4080" x2="-0.8260" y2="-17.6360" width="0.0254" layer="94"/>+  <wire x1="-0.4300" y1="-17.5340" x2="-0.8260" y2="-17.6360" width="0.0254" layer="94"/>+  <wire x1="-0.4300" y1="-17.5340" x2="-0.7160" y2="-17.7000" width="0.0254" layer="94"/>+  <wire x1="-0.1980" y1="-17.7470" x2="-0.1840" y2="-17.6920" width="0.0254" layer="94"/>+  <wire x1="-0.1840" y1="-17.6920" x2="-0.2520" y2="-17.6360" width="0.0254" layer="94"/>+  <wire x1="-0.2520" y1="-17.6360" x2="-0.2930" y2="-17.6290" width="0.0254" layer="94"/>+  <wire x1="-0.2930" y1="-17.6290" x2="-0.3480" y2="-17.6290" width="0.0254" layer="94"/>+  <wire x1="-0.3480" y1="-17.6290" x2="-0.3890" y2="-17.6360" width="0.0254" layer="94"/>+  <wire x1="-0.3890" y1="-17.6360" x2="-0.4440" y2="-17.6520" width="0.0254" layer="94"/>+  <wire x1="-0.4440" y1="-17.6520" x2="-0.5120" y2="-17.6920" width="0.0254" layer="94"/>+  <wire x1="-0.5120" y1="-17.6920" x2="-0.5390" y2="-17.7230" width="0.0254" layer="94"/>+  <wire x1="-0.5390" y1="-17.7230" x2="-0.5530" y2="-17.7790" width="0.0254" layer="94"/>+  <wire x1="-0.5530" y1="-17.7790" x2="-0.4840" y2="-17.8340" width="0.0254" layer="94"/>+  <wire x1="-0.4840" y1="-17.8340" x2="-0.4440" y2="-17.8410" width="0.0254" layer="94"/>+  <wire x1="-0.4440" y1="-17.8410" x2="-0.3890" y2="-17.8410" width="0.0254" layer="94"/>+  <wire x1="-0.3890" y1="-17.8410" x2="-0.3480" y2="-17.8340" width="0.0254" layer="94"/>+  <wire x1="0.1020" y1="-17.8890" x2="0.1020" y2="-17.8570" width="0.0254" layer="94"/>+  <wire x1="0.1020" y1="-17.8570" x2="0.0750" y2="-17.8260" width="0.0254" layer="94"/>+  <wire x1="0.0750" y1="-17.8260" x2="0.0200" y2="-17.7940" width="0.0254" layer="94"/>+  <wire x1="0.0200" y1="-17.7940" x2="-0.0340" y2="-17.7790" width="0.0254" layer="94"/>+  <wire x1="-0.0340" y1="-17.7790" x2="-0.0890" y2="-17.7790" width="0.0254" layer="94"/>+  <wire x1="-0.0890" y1="-17.7790" x2="-0.1160" y2="-17.7940" width="0.0254" layer="94"/>+  <wire x1="-0.1160" y1="-17.7940" x2="-0.1300" y2="-17.8340" width="0.0254" layer="94"/>+  <wire x1="-0.1300" y1="-17.8340" x2="-0.0610" y2="-17.9200" width="0.0254" layer="94"/>+  <wire x1="-0.0610" y1="-17.9200" x2="-0.0480" y2="-17.9600" width="0.0254" layer="94"/>+  <wire x1="-0.0480" y1="-17.9600" x2="-0.1020" y2="-18.0070" width="0.0254" layer="94"/>+  <wire x1="-0.1020" y1="-18.0070" x2="-0.1570" y2="-18.0070" width="0.0254" layer="94"/>+  <wire x1="-0.1570" y1="-18.0070" x2="-0.2120" y2="-17.9910" width="0.0254" layer="94"/>+  <wire x1="-0.2120" y1="-17.9910" x2="-0.2660" y2="-17.9600" width="0.0254" layer="94"/>+  <wire x1="-0.2660" y1="-17.9600" x2="-0.2930" y2="-17.9280" width="0.0254" layer="94"/>+  <wire x1="-0.2930" y1="-17.9280" x2="-0.2930" y2="-17.8970" width="0.0254" layer="94"/>+  <wire x1="0.2120" y1="-17.9670" x2="0.2520" y2="-17.9750" width="0.0254" layer="94"/>+  <wire x1="0.2520" y1="-17.9750" x2="0.3340" y2="-17.9750" width="0.0254" layer="94"/>+  <wire x1="0.3340" y1="-17.9750" x2="0.0480" y2="-18.1410" width="0.0254" layer="94"/>+  <wire x1="0.4850" y1="-18.1250" x2="0.5260" y2="-18.1330" width="0.0254" layer="94"/>+  <wire x1="0.5260" y1="-18.1330" x2="0.6080" y2="-18.1330" width="0.0254" layer="94"/>+  <wire x1="0.6080" y1="-18.1330" x2="0.3210" y2="-18.2980" width="0.0254" layer="94"/>+  <wire x1="0.7160" y1="-18.2750" x2="0.7710" y2="-18.2590" width="0.0254" layer="94"/>+  <wire x1="0.7710" y1="-18.2590" x2="0.8390" y2="-18.2670" width="0.0254" layer="94"/>+  <wire x1="0.8390" y1="-18.2670" x2="0.8940" y2="-18.2980" width="0.0254" layer="94"/>+  <wire x1="0.8940" y1="-18.2980" x2="0.9080" y2="-18.3380" width="0.0254" layer="94"/>+  <wire x1="0.9080" y1="-18.3380" x2="0.8670" y2="-18.3770" width="0.0254" layer="94"/>+  <wire x1="0.8670" y1="-18.3770" x2="0.8260" y2="-18.3850" width="0.0254" layer="94"/>+  <wire x1="0.8260" y1="-18.3850" x2="0.7580" y2="-18.3930" width="0.0254" layer="94"/>+  <wire x1="0.7580" y1="-18.3930" x2="0.4850" y2="-18.3930" width="0.0254" layer="94"/>+  <wire x1="0.4850" y1="-18.3930" x2="0.6760" y2="-18.5030" width="0.0254" layer="94"/>+  <wire x1="1.0720" y1="-18.4010" x2="1.2220" y2="-18.4870" width="0.0254" layer="94"/>+  <wire x1="1.2220" y1="-18.4870" x2="1.0300" y2="-18.5030" width="0.0254" layer="94"/>+  <wire x1="1.0300" y1="-18.5030" x2="1.0720" y2="-18.5270" width="0.0254" layer="94"/>+  <wire x1="1.0720" y1="-18.5270" x2="1.0850" y2="-18.5660" width="0.0254" layer="94"/>+  <wire x1="1.0850" y1="-18.5660" x2="1.0580" y2="-18.5980" width="0.0254" layer="94"/>+  <wire x1="1.0580" y1="-18.5980" x2="1.0300" y2="-18.6140" width="0.0254" layer="94"/>+  <wire x1="1.0300" y1="-18.6140" x2="0.9760" y2="-18.6290" width="0.0254" layer="94"/>+  <wire x1="0.9760" y1="-18.6290" x2="0.9210" y2="-18.6290" width="0.0254" layer="94"/>+  <wire x1="0.9210" y1="-18.6290" x2="0.8670" y2="-18.6140" width="0.0254" layer="94"/>+  <wire x1="0.8670" y1="-18.6140" x2="0.8260" y2="-18.5900" width="0.0254" layer="94"/>+  <wire x1="0.8260" y1="-18.5900" x2="0.7980" y2="-18.5580" width="0.0254" layer="94"/>+  <wire x1="0.7980" y1="-18.5580" x2="0.8120" y2="-18.5190" width="0.0254" layer="94"/>+  <wire x1="-1.3030" y1="-17.5260" x2="-1.5900" y2="-17.6920" width="0.0254" layer="94"/>+  <wire x1="-1.3030" y1="-17.5260" x2="-1.1800" y2="-17.5970" width="0.0254" layer="94"/>+  <wire x1="-1.1800" y1="-17.5970" x2="-1.1530" y2="-17.6290" width="0.0254" layer="94"/>+  <wire x1="-1.1530" y1="-17.6290" x2="-1.1670" y2="-17.6680" width="0.0254" layer="94"/>+  <wire x1="-1.1670" y1="-17.6680" x2="-1.1940" y2="-17.6840" width="0.0254" layer="94"/>+  <wire x1="-1.1940" y1="-17.6840" x2="-1.2350" y2="-17.6920" width="0.0254" layer="94"/>+  <wire x1="-1.2350" y1="-17.6920" x2="-1.3170" y2="-17.6760" width="0.0254" layer="94"/>+  <wire x1="-1.4400" y1="-17.6050" x2="-1.3170" y2="-17.6760" width="0.0254" layer="94"/>+  <wire x1="-1.3170" y1="-17.6760" x2="-1.2900" y2="-17.7080" width="0.0254" layer="94"/>+  <wire x1="-1.2900" y1="-17.7080" x2="-1.3030" y2="-17.7470" width="0.0254" layer="94"/>+  <wire x1="-1.3030" y1="-17.7470" x2="-1.3440" y2="-17.7700" width="0.0254" layer="94"/>+  <wire x1="-1.3440" y1="-17.7700" x2="-1.3850" y2="-17.7790" width="0.0254" layer="94"/>+  <wire x1="-1.3850" y1="-17.7790" x2="-1.4130" y2="-17.7790" width="0.0254" layer="94"/>+  <wire x1="-1.4130" y1="-17.7790" x2="-1.4670" y2="-17.7620" width="0.0254" layer="94"/>+  <wire x1="-1.4670" y1="-17.7620" x2="-1.5900" y2="-17.6920" width="0.0254" layer="94"/>+  <wire x1="-1.0440" y1="-17.7390" x2="-1.0030" y2="-17.7470" width="0.0254" layer="94"/>+  <wire x1="-1.0030" y1="-17.7470" x2="-0.9210" y2="-17.7470" width="0.0254" layer="94"/>+  <wire x1="-0.9210" y1="-17.7470" x2="-1.2080" y2="-17.9120" width="0.0254" layer="94"/>+  <wire x1="-0.6760" y1="-17.8890" x2="-1.0710" y2="-17.9910" width="0.0254" layer="94"/>+  <wire x1="-0.6760" y1="-17.8890" x2="-0.8530" y2="-18.1170" width="0.0254" layer="94"/>+  <wire x1="-0.9350" y1="-17.9600" x2="-0.7980" y2="-18.0380" width="0.0254" layer="94"/>+  <wire x1="-0.4300" y1="-18.0310" x2="-0.4710" y2="-18.0230" width="0.0254" layer="94"/>+  <wire x1="-0.4710" y1="-18.0230" x2="-0.5250" y2="-18.0230" width="0.0254" layer="94"/>+  <wire x1="-0.5250" y1="-18.0230" x2="-0.5660" y2="-18.0310" width="0.0254" layer="94"/>+  <wire x1="-0.5660" y1="-18.0310" x2="-0.6210" y2="-18.0460" width="0.0254" layer="94"/>+  <wire x1="-0.6210" y1="-18.0460" x2="-0.6890" y2="-18.0860" width="0.0254" layer="94"/>+  <wire x1="-0.6890" y1="-18.0860" x2="-0.7160" y2="-18.1170" width="0.0254" layer="94"/>+  <wire x1="-0.7160" y1="-18.1170" x2="-0.7300" y2="-18.1720" width="0.0254" layer="94"/>+  <wire x1="-0.7300" y1="-18.1720" x2="-0.6620" y2="-18.2280" width="0.0254" layer="94"/>+  <wire x1="-0.6620" y1="-18.2280" x2="-0.6210" y2="-18.2350" width="0.0254" layer="94"/>+  <wire x1="-0.6210" y1="-18.2350" x2="-0.5660" y2="-18.2350" width="0.0254" layer="94"/>+  <wire x1="-0.5660" y1="-18.2350" x2="-0.5250" y2="-18.2280" width="0.0254" layer="94"/>+  <wire x1="-0.5250" y1="-18.2280" x2="-0.4710" y2="-18.2120" width="0.0254" layer="94"/>+  <wire x1="-0.4710" y1="-18.2120" x2="-0.4030" y2="-18.1720" width="0.0254" layer="94"/>+  <wire x1="-0.4030" y1="-18.1720" x2="-0.3750" y2="-18.1410" width="0.0254" layer="94"/>+  <wire x1="-0.3750" y1="-18.1410" x2="-0.3610" y2="-18.0860" width="0.0254" layer="94"/>+  <wire x1="-0.3610" y1="-18.0860" x2="-0.4300" y2="-18.0310" width="0.0254" layer="94"/>+  <wire x1="-0.6210" y1="-18.1880" x2="-0.6210" y2="-18.2830" width="0.0254" layer="94"/>+  <wire x1="-0.1980" y1="-18.1640" x2="-0.4840" y2="-18.3300" width="0.0254" layer="94"/>+  <wire x1="-0.1980" y1="-18.1640" x2="-0.1020" y2="-18.2200" width="0.0254" layer="94"/>+  <wire x1="-0.1020" y1="-18.2200" x2="-0.0750" y2="-18.2510" width="0.0254" layer="94"/>+  <wire x1="-0.0750" y1="-18.2510" x2="-0.0750" y2="-18.2830" width="0.0254" layer="94"/>+  <wire x1="-0.0750" y1="-18.2830" x2="-0.1160" y2="-18.3380" width="0.0254" layer="94"/>+  <wire x1="-0.1160" y1="-18.3380" x2="-0.1840" y2="-18.3770" width="0.0254" layer="94"/>+  <wire x1="-0.1840" y1="-18.3770" x2="-0.2390" y2="-18.3930" width="0.0254" layer="94"/>+  <wire x1="-0.2390" y1="-18.3930" x2="-0.2800" y2="-18.4010" width="0.0254" layer="94"/>+  <wire x1="-0.2800" y1="-18.4010" x2="-0.3340" y2="-18.4010" width="0.0254" layer="94"/>+  <wire x1="-0.3340" y1="-18.4010" x2="-0.3890" y2="-18.3850" width="0.0254" layer="94"/>+  <wire x1="-0.3890" y1="-18.3850" x2="-0.4840" y2="-18.3300" width="0.0254" layer="94"/>+  <wire x1="0.0480" y1="-18.3060" x2="-0.1300" y2="-18.5350" width="0.0254" layer="94"/>+  <wire x1="0.2660" y1="-18.4320" x2="-0.1300" y2="-18.5350" width="0.0254" layer="94"/>+  <wire x1="0.4570" y1="-18.6210" x2="0.4710" y2="-18.5660" width="0.0254" layer="94"/>+  <wire x1="0.4710" y1="-18.5660" x2="0.4030" y2="-18.5110" width="0.0254" layer="94"/>+  <wire x1="0.4030" y1="-18.5110" x2="0.3620" y2="-18.5030" width="0.0254" layer="94"/>+  <wire x1="0.3620" y1="-18.5030" x2="0.3070" y2="-18.5030" width="0.0254" layer="94"/>+  <wire x1="0.3070" y1="-18.5030" x2="0.2660" y2="-18.5110" width="0.0254" layer="94"/>+  <wire x1="0.2660" y1="-18.5110" x2="0.2120" y2="-18.5270" width="0.0254" layer="94"/>+  <wire x1="0.2120" y1="-18.5270" x2="0.1430" y2="-18.5660" width="0.0254" layer="94"/>+  <wire x1="0.1430" y1="-18.5660" x2="0.1160" y2="-18.5980" width="0.0254" layer="94"/>+  <wire x1="0.1160" y1="-18.5980" x2="0.1020" y2="-18.6530" width="0.0254" layer="94"/>+  <wire x1="0.1020" y1="-18.6530" x2="0.1710" y2="-18.7080" width="0.0254" layer="94"/>+  <wire x1="0.1710" y1="-18.7080" x2="0.2120" y2="-18.7160" width="0.0254" layer="94"/>+  <wire x1="0.2120" y1="-18.7160" x2="0.2660" y2="-18.7160" width="0.0254" layer="94"/>+  <wire x1="0.2660" y1="-18.7160" x2="0.3070" y2="-18.7080" width="0.0254" layer="94"/>+  <wire x1="0.3070" y1="-18.7080" x2="0.3480" y2="-18.6840" width="0.0254" layer="94"/>+  <wire x1="0.2800" y1="-18.6450" x2="0.3480" y2="-18.6840" width="0.0254" layer="94"/>+  <wire x1="0.6210" y1="-18.6370" x2="0.3340" y2="-18.8030" width="0.0254" layer="94"/>+  <wire x1="0.6210" y1="-18.6370" x2="0.7440" y2="-18.7080" width="0.0254" layer="94"/>+  <wire x1="0.7440" y1="-18.7080" x2="0.7710" y2="-18.7400" width="0.0254" layer="94"/>+  <wire x1="0.7710" y1="-18.7400" x2="0.7580" y2="-18.7790" width="0.0254" layer="94"/>+  <wire x1="0.7580" y1="-18.7790" x2="0.7300" y2="-18.7950" width="0.0254" layer="94"/>+  <wire x1="0.7300" y1="-18.7950" x2="0.6890" y2="-18.8030" width="0.0254" layer="94"/>+  <wire x1="0.6890" y1="-18.8030" x2="0.6080" y2="-18.7870" width="0.0254" layer="94"/>+  <wire x1="0.6080" y1="-18.7870" x2="0.4850" y2="-18.7160" width="0.0254" layer="94"/>+  <wire x1="0.5800" y1="-18.7710" x2="0.5260" y2="-18.9130" width="0.0254" layer="94"/>+  <text x="0.0000" y="5.0800" size="1.27" layer="95" align="center">&gt;NAME</text>+  <text x="0.0000" y="-42.2900" size="1.27" layer="96" align="center">&gt;VALUE</text>+  <pin name="IN+" x="-20.32" y="-2.54" length="short" direction="pas"/>+  <pin name="IN-" x="-20.32" y="-5.08" length="short" direction="pas"/>+  <pin name="VS" x="20.32" y="-2.54" length="short" direction="pwr" rot="R180"/>+  <pin name="GND" x="20.32" y="-5.08" length="short" direction="pwr" rot="R180"/>+  <pin name="VOUT" x="20.32" y="-12.7" length="short" direction="out" rot="R180"/>+  <pin name="VREF" x="20.32" y="-15.24" length="short" direction="out" rot="R180"/>+  <pin name="VOC" x="20.32" y="-22.86" length="short" direction="in" rot="R180"/>+  <pin name="OC" x="20.32" y="-25.4" length="short" direction="oc" rot="R180"/>+  <pin name="ALERT" x="20.32" y="-27.94" length="short" direction="oc" rot="R180"/>+  <pin name="NC" x="20.32" y="-38.1" length="short" direction="nc" rot="R180"/>+  <text x="-16.7600" y="-0.5400" size="0.762" layer="94" font="vector" ratio="15" align="center-left">Primary side</text>+  <text x="16.7600" y="-0.5400" size="0.762" layer="94" font="vector" ratio="15" align="center-right">Supply</text>+  <text x="16.7600" y="-10.7000" size="0.762" layer="94" font="vector" ratio="15" align="center-right">Analog output</text>+  <text x="16.7600" y="-20.8600" size="0.762" layer="94" font="vector" ratio="15" align="center-right">Overcurrent</text>+  <text x="16.7600" y="-36.1000" size="0.762" layer="94" font="vector" ratio="15" align="center-right">Reserved</text>+</symbol>+</symbols>+<devicesets>+<deviceset name="TMCS1123B1AQDVGR" prefix="U">+  <description>Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection, reinforced isolation, SOIC-10 DVG. 2-column symbol, pins grouped by function</description>+  <gates>+    <gate name="G$1" symbol="TMCS1123B1AQDVGR" x="0" y="0"/>+  </gates>+  <devices>+    <device name="" package="tmcs1123b1aqdvgr">+      <connects>+        <connect gate="G$1" pin="IN+" pad="1"/>+        <connect gate="G$1" pin="IN-" pad="2"/>+        <connect gate="G$1" pin="VS" pad="8"/>+        <connect gate="G$1" pin="GND" pad="3"/>+        <connect gate="G$1" pin="VOUT" pad="6"/>+        <connect gate="G$1" pin="VREF" pad="5"/>+        <connect gate="G$1" pin="VOC" pad="9"/>+        <connect gate="G$1" pin="OC" pad="7"/>+        <connect gate="G$1" pin="ALERT" pad="4"/>+        <connect gate="G$1" pin="NC" pad="10"/>+      </connects>+      <technologies>+        <technology name="">+          <attribute name="MPN" value="TMCS1123B1AQDVGR" constant="no"/>+          <attribute name="MANUFACTURER" value="Texas Instruments" constant="no"/>+          <attribute name="DATASHEET" value="https://www.ti.com/lit/ds/symlink/tmcs1123.pdf" constant="no"/>+          <attribute name="ADOM_WIKI" value="https://wiki.adom.inc/adom/tmcs1123b1aqdvgr" constant="no"/>+          <attribute name="MOUSER_PN" value="595-TMCS1123B1AQDVGR" constant="no"/>+          <attribute name="DIGIKEY_PN" value="296-TMCS1123B1AQDVGRTR-ND" constant="no"/>+        </technology>+      </technologies>+    </device>+  </devices>+</deviceset>+</devicesets>+</library>+</drawing>+</eagle>\ No newline at end of file
verification.jsonadded+275
@@ -0,0 +1,275 @@+{+ "schema": "adom/verification@1",+ "part": "TMCS1123B1AQDVGR",+ "variants": [+  {+   "mpn": "TMCS1123B1AQDVGR",+   "note": "B1A: 25 mV/A, 1.65 V zero-current output; 2000-piece large tape and reel (SBOSA24D p.40)",+   "stocked": false+  }+ ],+ "entries": [+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI), automated checks, not yet reviewed by a person",+    "handle": "claude"+   },+   "status": "verified",+   "title": "Pinout matches the datasheet",+   "scope": [+    "symbol"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "Symbol pins match SBOSA24D Table 5-1 (p.4): 1 IN+, 2 IN-, 3 GND, 4 ALERT, 5 VREF, 6 VOUT, 7 OC, 8 VS, 9 VOC, 10 NC",+     "result": "pass"+    },+    {+     "text": "Groups: Primary side (IN+, IN-) on the left; isolated low-voltage side on the right (Supply, Analog output, Overcurrent, Reserved)",+     "result": "pass"+    },+    {+     "text": "Electrical types: IN+ and IN- passive (a conductor), VS and GND power, VOUT and VREF output, VOC input, OC and ALERT open collector (open-drain), NC no-connect",+     "result": "pass"+    },+    {+     "text": "Pin n maps to pad n, read back from the Fusion .lbr and the Altium SchLib/PcbLib; Altium has no no-connect pin type, so NC is Passive there; all Altium pin names are shown",+     "result": "pass"+    },+    {+     "text": "Every pin sits on the 2.54 mm grid (adom-symbol 1.2.6 put the first pin of each column at y = -2.00; snapped by provenance/tools/snap_symbol.py)",+     "result": "note"+    }+   ],+   "evidence": [+    {+     "label": "tmcs1123b1aqdvgr-ds-p4.png",+     "href": "docs/figures/tmcs1123b1aqdvgr-ds-p4.png"+    },+    {+     "label": "tmcs1123b1aqdvgr-symbol.png",+     "href": "docs/proof/tmcs1123b1aqdvgr-symbol.png"+    }+   ],+   "files": {+    "tmcs1123b1aqdvgr.kicad_sym": "4eab48eda132db8f034f3ded77569a08f4250b4dcdf2ebebc2d2237a24e4da53",+    "tmcs1123b1aqdvgr.lbr": "81e146f380ab9d15499b69b5ebbb78baa2baef83612b3317121d3edda2818af5",+    "altium/TMCS1123B1AQDVGR.SchLib": "2568671c1bd6acbc7d3b452aada4eb2c981b87d9b25877118c47e8fdef0ab0ed"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI), automated checks, not yet reviewed by a person",+    "handle": "claude"+   },+   "status": "verified",+   "title": "Footprint equals TI's HV / isolation land pattern",+   "scope": [+    "footprint"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "All 10 pads equal the p.46 HV / isolation option: pads 1, 2 are 1.65 x 4.41 mm at (-4.875, -+2.54); pads 3 to 10 are 1.65 x 0.60 mm at x = +4.875, 1.27 mm pitch; R0.05 corners",+     "result": "pass"+    },+    {+     "text": "Pad-to-pad clearance between the primary and low-voltage rows is 8.1 mm (TI: 8.1 mm clearance/creepage); the part is rated 8 mm (p.6)",+     "result": "pass"+    },+    {+     "text": "Isolation keepout rule area on all copper layers between the rows (x -4.05 to 4.05, y -5.5 to 5.5); also in the Fusion .lbr as t/b/vRestrict",+     "result": "pass"+    },+    {+     "text": "TI's IPC-7351 nominal option (7.3 mm) is not used: it is under the part's 8 mm rating",+     "result": "note"+    },+    {+     "text": "Pads 1 and 2 carry no heatsink vias on purpose: they are the current leads; TI asks for via farms in the copper planes around them (p.36)",+     "result": "note"+    }+   ],+   "evidence": [+    {+     "label": "tmcs1123b1aqdvgr-footprint-check.png",+     "href": "docs/proof/tmcs1123b1aqdvgr-footprint-check.png"+    },+    {+     "label": "tmcs1123b1aqdvgr-ds-p46.png",+     "href": "docs/figures/tmcs1123b1aqdvgr-ds-p46.png"+    },+    {+     "label": "footprint-check.json",+     "href": "provenance/footprint-check.json"+    }+   ],+   "files": {+    "tmcs1123b1aqdvgr.kicad_mod": "cf885b25cbd3dab2294eaff1a66ccfe8a4a5b2a0ff185d171a7aa632db9e7713",+    "tmcs1123b1aqdvgr.lbr": "81e146f380ab9d15499b69b5ebbb78baa2baef83612b3317121d3edda2818af5"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI), automated checks, not yet reviewed by a person",+    "handle": "claude"+   },+   "status": "verified",+   "title": "Pin 1 orientation agrees across datasheet, footprint, 3D model and symbol",+   "scope": [+    "footprint",+    "3d",+    "symbol"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "Datasheet top view (p.4 Figure 5-1, p.45): pin 1 IN+ upper left, pin 2 IN- lower left, pins 3 to 10 up the right side with 10 at the top",+     "result": "pass"+    },+    {+     "text": "Footprint: pad 1 upper left (KiCad Y down), pad 2 lower left, pad 3 lower right, pad 10 upper right; silkscreen pin-1 bar at the upper-left corner; F.Fab chamfer at pin 1",+     "result": "pass"+    },+    {+     "text": "3D model: pin 1 current lead at (-x, +y) in the Z-up model, which is pad 1 after KiCad's Y flip; pin-1 dimple in the same corner; overlay on p.45 matches",+     "result": "pass"+    },+    {+     "text": "Hero GLB: adom-hero alignment guard OK (centre offset 0.0 mm); labels IN+ upper left, NC upper right, GND lower right",+     "result": "pass"+    },+    {+     "text": "Symbol: pin numbers and names as Table 5-1",+     "result": "pass"+    },+    {+     "text": "The MPN etch reads upright with pin 1 lower left in the planner's standard pose (adom-aiflow-etch gate PASS)",+     "result": "pass"+    }+   ],+   "evidence": [+    {+     "label": "tmcs1123b1aqdvgr-footprint-check.png",+     "href": "docs/proof/tmcs1123b1aqdvgr-footprint-check.png"+    },+    {+     "label": "tmcs1123b1aqdvgr-overlay.png",+     "href": "docs/proof/tmcs1123b1aqdvgr-overlay.png"+    },+    {+     "label": "tmcs1123b1aqdvgr-hero-preview.png",+     "href": "docs/proof/tmcs1123b1aqdvgr-hero-preview.png"+    },+    {+     "label": "tmcs1123b1aqdvgr-ds-p45.png",+     "href": "docs/figures/tmcs1123b1aqdvgr-ds-p45.png"+    }+   ],+   "files": {+    "tmcs1123b1aqdvgr.kicad_mod": "cf885b25cbd3dab2294eaff1a66ccfe8a4a5b2a0ff185d171a7aa632db9e7713",+    "tmcs1123b1aqdvgr-etched.step": "dbec99f3125d7ef551b04a3802e49a5ef6b22ebbba2e7978b2e8f2f85a8b5008",+    "tmcs1123b1aqdvgr-hero.glb": "bf51329a5a46cd522589b2e604a47acd88117b42e3e8ad0f20e2daf671f85fc3",+    "tmcs1123b1aqdvgr.kicad_sym": "4eab48eda132db8f034f3ded77569a08f4250b4dcdf2ebebc2d2237a24e4da53"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI), automated checks, not yet reviewed by a person",+    "handle": "claude"+   },+   "status": "verified",+   "title": "3D model inside TI's package drawing",+   "scope": [+    "3d"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "E 10.30, E1 7.50, D 10.30, A 2.55, A1 0.20, c 0.275, b 0.41, current leads 4.22 at +-2.54: inside DVG0010A (p.45), measured by section",+     "result": "pass"+    },+    {+     "text": "Foot L 0.854 mm at the 0.25 mm gauge plane: inside 0.40 to 1.27",+     "result": "pass"+    },+    {+     "text": "Overlay of top, front and end views on the p.45 drawing at its own scale",+     "result": "pass"+    },+    {+     "text": "TI's STEP (Ultra Librarian) needs a reCAPTCHA; not compared",+     "result": "note"+    }+   ],+   "evidence": [+    {+     "label": "tmcs1123b1aqdvgr-overlay.png",+     "href": "docs/proof/tmcs1123b1aqdvgr-overlay.png"+    },+    {+     "label": "3d-model.json",+     "href": "provenance/3d-model.json"+    },+    {+     "label": "tmcs1123b1aqdvgr-ds-p45.png",+     "href": "docs/figures/tmcs1123b1aqdvgr-ds-p45.png"+    }+   ],+   "files": {+    "tmcs1123b1aqdvgr.step": "0a853e2f4e75a9e6cbad36f5019d39ee4dcb53a4c9cc39f4c3ad37d4c9274672",+    "tmcs1123b1aqdvgr-etched.step": "dbec99f3125d7ef551b04a3802e49a5ef6b22ebbba2e7978b2e8f2f85a8b5008",+    "tmcs1123b1aqdvgr-etched.glb": "70ac2e320cf662c6f7b24d163eee14148fd0f474d429a1aab3c05f81bf0afa56"+   }+  },+  {+   "date": "2026-10-21",+   "by": {+    "name": "Claude (AI), automated checks, not yet reviewed by a person",+    "handle": "claude"+   },+   "status": "open",+   "title": "Still to do",+   "scope": [+    "3d",+    "library"+   ],+   "variants": [+    "*"+   ],+   "checks": [+    {+     "text": "Compare against TI's own STEP once someone downloads it from Ultra Librarian in a browser",+     "result": "open"+    },+    {+     "text": "Altium PcbLib has no keepout region: adom-lbr 2.47.6 does not carry the KiCad rule area; add a keepout region over x -4.05 to 4.05 mm in Altium, or rely on board rules",+     "result": "open"+    },+    {+     "text": "Open the KiCad, Fusion and Altium libraries in the native tools; so far they are checked by lint and read-back only",+     "result": "open"+    },+    {+     "text": "No reel on hand and no distributor stock on 2026-10-21 (Mouser and DigiKey 0, 140-day lead time at Mouser)",+     "result": "open"+    }+   ],+   "evidence": [],+   "files": {}+  }+ ]+}\ No newline at end of file
viewers/footprint.htmladded+210
@@ -0,0 +1,210 @@+<!doctype html><html><head><meta charset="utf-8">+<title>tmcs1123b1aqdvgr - adom-footprint</title>+<meta name="viewport" content="width=device-width,initial-scale=1">+<style>+/* ── adom-footprint shared viewer core (CSS) ───────────────────────────────+   Included VERBATIM by both the live app (app.html) and the static embed+   (embed.html) so the canvas, zoom toolbar and layer-panel rows look identical+   and cannot drift. Self-contained literal colours (no dependency on either+   file's CSS vars). Class prefix: av- */++.av-vp{position:absolute;inset:0;overflow:hidden;cursor:grab;background:radial-gradient(circle at 50% 42%,#121a26 0%,#0d1117 72%)}+.av-vp.grab{cursor:grabbing}+/* DIRECT child only — the zoom-toolbar button icons (.av-tools svg) also live+   inside .av-vp; without '>' they'd inherit position:absolute and stack at 0,0. */+.av-vp > svg{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0;display:block}++/* zoom toolbar */+/* Grouped translucent toolbar (matches adom-symbol's .tools): one container, borderless+   buttons that highlight on hover — instead of individually-boxed buttons. */+.av-tools{position:absolute;left:10px;top:10px;display:flex;gap:3px;padding:3px;z-index:5;background:rgba(22,27,34,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #222b38;border-radius:9px}+.av-tools button{width:30px;height:30px;border-radius:6px;border:none;background:transparent;color:#cfd8e2;cursor:pointer;display:grid;place-items:center;transition:background .15s ease,color .15s ease}+.av-tools button svg{width:16px;height:16px;display:block}+.av-tools button:hover{background:#222b38;color:#37c8a6}+.av-tools button:focus,.av-tools button:focus-visible{outline:none}+.av-panhint{position:absolute;right:10px;bottom:9px;color:#8b949e;font-size:11px;z-index:5;pointer-events:none;user-select:none;-webkit-user-select:none}++/* layer panel rows */+.av-lrow{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;cursor:pointer}+.av-lrow:hover{background:#161c27}+.av-lrow .sw{width:13px;height:13px;border-radius:3px;border:1px solid rgba(255,255,255,.15);flex:0 0 13px}+.av-lrow .sw.ring{background:transparent!important}+.av-lrow .ln{flex:1;font-size:13px}+.av-lrow .meta{font-size:10px;color:#8b949e}+.av-lrow .chk{width:16px;height:16px;border-radius:4px;border:1.5px solid #3a4757;display:grid;place-items:center;color:#0b0f17;font-size:11px}+.av-lrow.on .chk{background:#37c8a6;border-color:#37c8a6}+.av-lrow.off .ln,.av-lrow.off .sw{opacity:.4}+.av-lrow.special{background:linear-gradient(100deg,rgba(55,200,166,.10),transparent);border:1px solid rgba(55,200,166,.25);margin-top:4px}+.av-lrow.special .ln{color:#7ef0d2;font-weight:600}++:root{--bg:#0d1117;--panel:#11161f;--border:#222b38;--text:#e6edf3;--muted:#8b949e;--accent:#37c8a6}+*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}+body{background:var(--bg);color:var(--text);font-family:'Satoshi','Segoe UI',system-ui,sans-serif;display:flex;flex-direction:column;overflow:hidden}+header{display:flex;align-items:center;gap:9px;padding:9px 14px;border-bottom:1px solid var(--border);flex:0 0 auto}+header .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}+header .b{font-weight:700;font-size:14px}header .b span{color:var(--muted);font-weight:400}+header .nm{margin-left:auto;font-weight:600;font-size:13px;color:#cfd8e2}+main{flex:1;display:flex;min-height:0}+.vpwrap{flex:1;position:relative;min-width:0}+aside{flex:0 0 248px;border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}+aside .ah{padding:9px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}+.layers{padding:6px}+.note{font-size:11px;color:var(--muted);line-height:1.45;padding:8px 11px}+.note b{color:#7ef0d2}+</style></head>+<body>+  <header><span class="dot"></span><span class="b">adom-footprint <span>· interactive</span></span><span class="nm">tmcs1123b1aqdvgr</span></header>+  <main>+    <div class="vpwrap">+      <div class="av-vp" id="vp">+        <svg xmlns="http://www.w3.org/2000/svg" viewBox="-6.950 -6.500 13.900 13.000" preserveAspectRatio="xMidYMid meet"><g class="adom-layer-courtyard"><rect x="-5.950" y="-5.500" width="11.900" height="11.000" fill="none" stroke="#FF26E2" stroke-width="0.05" stroke-dasharray="0.2,0.1"/></g><g class="adom-layer-fab"><line x1="0.000" y1="-5.150" x2="0.000" y2="5.150" stroke="#6e7681" stroke-width="0.1"/><path d="M-2.750,-5.150 L3.750,-5.150 L3.750,5.150 L-3.750,5.150 L-3.750,-4.150 Z" fill="none" stroke="#6e7681" stroke-width="0.1"/></g><g class="adom-layer-copper"><g data-pad="1" data-shape="roundrect" data-size="1.650x4.410" data-mount="smd"><rect x="-5.700" y="-4.745" width="1.650" height="4.410" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="2" data-shape="roundrect" data-size="1.650x4.410" data-mount="smd"><rect x="-5.700" y="0.335" width="1.650" height="4.410" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="3" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="4.145" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="4" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="2.875" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="5" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="1.605" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="6" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="0.335" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="7" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="-0.935" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="8" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="-2.205" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="9" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="-3.475" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="10" data-shape="roundrect" data-size="1.650x0.600" data-mount="smd"><rect x="4.050" y="-4.745" width="1.650" height="0.600" rx="0.050" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g></g><g class="adom-layer-heatsink"></g><g class="adom-layer-drill"></g><g class="adom-layer-silk"><line x1="-3.870" y1="-5.270" x2="3.870" y2="-5.270" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-5.270" x2="3.870" y2="-4.960" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-3.930" x2="3.870" y2="-3.690" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-2.660" x2="3.870" y2="-2.420" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-1.390" x2="3.870" y2="-1.150" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="-0.120" x2="3.870" y2="0.120" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="1.150" x2="3.870" y2="1.390" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="2.420" x2="3.870" y2="2.660" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="3.690" x2="3.870" y2="3.930" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="4.960" x2="3.870" y2="5.270" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="3.870" y1="5.270" x2="-3.870" y2="5.270" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-3.870" y1="5.270" x2="-3.870" y2="4.960" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-3.870" y1="0.120" x2="-3.870" y2="-0.120" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-3.870" y1="-4.960" x2="-3.870" y2="-5.270" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-4.050" y1="-5.450" x2="-3.450" y2="-5.450" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/></g><g class="adom-layer-padnum"><text x="-4.875" y="-2.540" text-anchor="middle" dominant-baseline="central" font-size="0.693" fill="#fff" font-family="sans-serif" style="pointer-events:none">1</text><text x="-4.875" y="2.540" text-anchor="middle" dominant-baseline="central" font-size="0.693" fill="#fff" font-family="sans-serif" style="pointer-events:none">2</text><text x="4.875" y="4.445" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">3</text><text x="4.875" y="3.175" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">4</text><text x="4.875" y="1.905" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">5</text><text x="4.875" y="0.635" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">6</text><text x="4.875" y="-0.635" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">7</text><text x="4.875" y="-1.905" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">8</text><text x="4.875" y="-3.175" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">9</text><text x="4.875" y="-4.445" text-anchor="middle" dominant-baseline="central" font-size="0.252" fill="#fff" font-family="sans-serif" style="pointer-events:none">10</text></g><g class="adom-layer-paste-apertures"><rect x="-5.700" y="-4.745" width="1.650" height="4.410" rx="0.05" transform="rotate(0.00 -4.875 -2.540)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="-5.700" y="0.335" width="1.650" height="4.410" rx="0.05" transform="rotate(0.00 -4.875 2.540)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="4.145" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 4.445)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="2.875" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 3.175)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="1.605" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 1.905)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="0.335" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 0.635)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="-0.935" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 -0.635)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="-2.205" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 -1.905)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="-3.475" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 -3.175)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="4.050" y="-4.745" width="1.650" height="0.600" rx="0.05" transform="rotate(0.00 4.875 -4.445)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/></g><g class="adom-layer-paste-dots"><circle cx="-5.375" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="-0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.375" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-5.125" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.875" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.625" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="0.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="0.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="1.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="1.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="1.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="1.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="2.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="2.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="2.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="2.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="3.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="3.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="3.665" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="3.915" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="4.165" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-4.375" cy="4.415" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="-0.635" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="-1.905" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="-3.175" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.375" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.625" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="4.875" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.125" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="5.375" cy="-4.445" r="0.150" fill="#37c8a6" opacity="0.92"/></g></svg>+      </div>+    </div>+    <aside>+      <div class="ah">Layers</div>+      <div class="layers" id="layers"></div>+      <div class="note">The <b>solder paste jet</b> layer shows the 300µm paste-dispensing dots that travel with the footprint. Off by default — toggle it on.</div>+    </aside>+  </main>+<script>/* ── adom-footprint shared viewer core (window.AV) ─────────────────────────+   Single source of truth for the layer list, toggle behaviour, defaults,+   pan/zoom and toolbar icons. Included VERBATIM by both app.html (live) and+   embed.html (static) so the two viewers cannot drift. Pure client-side; works+   on any SVG that carries the <g class="adom-layer-*"> groups. */+(function(){+  var ICON_ZIN='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5M10.5 8v5M8 10.5h5"/></svg>';+  var ICON_ZOUT='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5M8 10.5h5"/></svg>';+  // Zoom-to-FIT = a magnifier with a small square inside (fit content to view).+  // Deliberately NOT the four-corner expand/"fullscreen" glyph.+  var ICON_FIT='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5"/><rect x="7.6" y="7.6" width="5.8" height="5.8" rx="1.2"/></svg>';++  // The canonical layer list. Every layer is a <g class="adom-layer-*"> in the+  // self-rendered SVG, so toggling is group-based (robust) — never colour-match.+  // `kind:'group'` on every entry: all layers are toggled by their <g> group+  // (robust), never by colour-match. (app.html still reads def.kind.)+  var LAYER_DEFS=[+    {key:'copper',    name:'Copper',           kind:'group', sel:'.adom-layer-copper',          sw:'#C83434'},+    // Auto-generated thermal-via array under the exposed pad — only present (and+    // listed) when the footprint has an exposed thermal pad.+    {key:'heatsink',  name:'Heatsink vias',    kind:'group', sel:'.adom-layer-heatsink',        sw:'#e8a13a'},+    {key:'padnum',    name:'Pad numbers',      kind:'group', sel:'.adom-layer-padnum',          sw:'#ffffff', ring:true},+    {key:'silk',      name:'Silkscreen',       kind:'group', sel:'.adom-layer-silk',            sw:'#00cccc'},+    {key:'fab',       name:'Fab (F.Fab)',      kind:'group', sel:'.adom-layer-fab',             sw:'#6e7681', ring:true},+    {key:'courtyard', name:'Courtyard',        kind:'group', sel:'.adom-layer-courtyard',       sw:'#FF26E2', ring:true},+    {key:'drill',     name:'Drill',            kind:'group', sel:'.adom-layer-drill',           sw:'#888888', ring:true},+    {key:'paste-ap',  name:'Paste apertures',  kind:'group', sel:'.adom-layer-paste-apertures', sw:'#8aa0b8', ring:true},+    // Generic name — the 300µm solder-paste dispensing dots. Off by default.+    {key:'paste-dots',name:'Solder paste jet', kind:'group', sel:'.adom-layer-paste-dots',      sw:'#37c8a6', special:true},+  ];++  // True only if the group actually holds drawn geometry (not an empty <g>) — so+  // layers with nothing in THIS footprint aren't listed as dead, dim rows.+  function groupHasGeo(svg,def){+    if(!svg) return false; var n=0,g=svg.querySelectorAll(def.sel);+    for(var i=0;i<g.length;i++){ n+=g[i].querySelectorAll('path,rect,circle,line,polygon,polyline,text').length; }+    return n>0;+  }+  function layerPresent(svg,def){ return groupHasGeo(svg,def); }+  function applyLayer(svg,def,on){+    if(!svg) return; var g=svg.querySelectorAll(def.sel);+    for(var i=0;i<g.length;i++) g[i].style.display=on?'':'none';+  }++  // Build layer rows into a container. opts:+  //   svg, container, state {key:bool}, meta {pasteDots,pasteApertures},+  //   onToggle(key,on). Missing state key -> special OFF, others ON. Skips empty+  //   non-special groups. Returns the keys actually shown.+  function buildLayers(opts){+    var svg=opts.svg, box=opts.container, state=opts.state||{}, meta=opts.meta||{}, shown=[];+    box.innerHTML='';+    LAYER_DEFS.forEach(function(def){+      if(!def.special && !groupHasGeo(svg,def)) return;+      var on = def.special ? (state[def.key]===true) : (state[def.key]!==false);+      var m = def.key==='paste-dots' ? ((meta.pasteDots||0)+' @ 300µm')+            : def.key==='paste-ap'   ? ((meta.pasteApertures||0)+' openings') : '';+      var row=document.createElement('div');+      row.className='av-lrow '+(on?'on':'off')+(def.special?' special':'');+      row.innerHTML='<span class="sw'+(def.ring?' ring':'')+'" style="'+(def.ring?('border-color:'+def.sw):('background:'+def.sw))+'"></span>'+        +'<span class="ln">'+def.name+'</span>'+(m?'<span class="meta">'+m+'</span>':'')+        +'<span class="chk">'+(on?'✓':'')+'</span>';+      row.onclick=function(){+        var nv=!row.classList.contains('on');+        row.classList.toggle('on',nv); row.classList.toggle('off',!nv);+        row.querySelector('.chk').textContent=nv?'✓':'';+        state[def.key]=nv; applyLayer(svg,def,nv);+        if(opts.onToggle) opts.onToggle(def.key,nv);+      };+      box.appendChild(row); applyLayer(svg,def,on); shown.push(def.key);+    });+    return shown;+  }++  // Wire pan + zoom on a viewport element (the box that contains the <svg>).+  // Returns a controller {fit, zoomIn, zoomOut, apply}.+  function initViewport(vp){+    var svg=vp.querySelector('svg');+    if(svg){ svg.removeAttribute('width'); svg.removeAttribute('height'); }+    var s=1,tx=0,ty=0;+    function apply(){ var el=vp.querySelector('svg'); if(el) el.style.transform='translate('+tx+'px,'+ty+'px) scale('+s+')'; }+    function zoomAt(cx,cy,f){ tx=cx-(cx-tx)*f; ty=cy-(cy-ty)*f; s*=f; apply(); }+    function fit(){ s=1;tx=0;ty=0;apply(); }+    // Smooth, delta-PROPORTIONAL zoom (matches adom-symbol). A fixed per-event+    // factor makes the trackpad leap — one gentle two-finger nudge fires a burst+    // of tiny wheel events and a fixed 1.12× compounds. Instead derive the factor+    // from how much actually scrolled (exp → smooth + reversible), normalise+    // device units, and clamp one event so a chunky mouse notch can't jump.+    var ZOOM_K=0.0022; // sensitivity: lower = gentler+    vp.addEventListener('wheel',function(e){+      e.preventDefault();+      var d=e.deltaY;+      if(e.deltaMode===1) d*=16; else if(e.deltaMode===2) d*=vp.clientHeight;+      d=Math.max(-50,Math.min(50,d));+      var r=vp.getBoundingClientRect();+      zoomAt(e.clientX-r.left,e.clientY-r.top,Math.exp(-d*ZOOM_K));+    },{passive:false});+    var drag=false,lx=0,ly=0;+    vp.addEventListener('pointerdown',function(e){ if(e.target.closest('.av-tools'))return; drag=true;lx=e.clientX;ly=e.clientY;vp.classList.add('grab');vp.setPointerCapture(e.pointerId); });+    vp.addEventListener('pointermove',function(e){ if(!drag)return; tx+=e.clientX-lx;ty+=e.clientY-ly;lx=e.clientX;ly=e.clientY;apply(); });+    vp.addEventListener('pointerup',function(){ drag=false;vp.classList.remove('grab'); });+    fit();+    return {+      fit:fit,+      zoomIn:function(){ var r=vp.getBoundingClientRect(); zoomAt(r.width/2,r.height/2,1.2); },+      zoomOut:function(){ var r=vp.getBoundingClientRect(); zoomAt(r.width/2,r.height/2,1/1.2); },+      apply:apply+    };+  }++  // Inject the standard zoom toolbar (+ / − / fit) + pan hint into a viewport,+  // wired to a controller from initViewport. Idempotent.+  function addToolbar(vp,ctl){+    if(vp.querySelector('.av-tools')) return;+    var t=document.createElement('div'); t.className='av-tools';+    t.innerHTML='<button data-z="in" title="Zoom in">'+ICON_ZIN+'</button>'+      +'<button data-z="out" title="Zoom out">'+ICON_ZOUT+'</button>'+      +'<button data-z="fit" title="Zoom to fit">'+ICON_FIT+'</button>';+    vp.appendChild(t);+    t.querySelector('[data-z="in"]').onclick=ctl.zoomIn;+    t.querySelector('[data-z="out"]').onclick=ctl.zoomOut;+    t.querySelector('[data-z="fit"]').onclick=ctl.fit;+    var h=document.createElement('div'); h.className='av-panhint'; h.textContent='drag to pan · scroll to zoom'; vp.appendChild(h);+  }++  window.AV={+    LAYER_DEFS:LAYER_DEFS, groupHasGeo:groupHasGeo, layerPresent:layerPresent,+    applyLayer:applyLayer, buildLayers:buildLayers, initViewport:initViewport,+    addToolbar:addToolbar, ICON_FIT:ICON_FIT, ICON_ZIN:ICON_ZIN, ICON_ZOUT:ICON_ZOUT+  };+})();+</script>+<script>+var META={"pasteApertures":10,"pasteDots":200};+(function(){+  var vp=document.getElementById('vp');+  var svg=vp.querySelector('svg');+  var ctl=AV.initViewport(vp);+  AV.addToolbar(vp,ctl);+  AV.buildLayers({ svg:svg, container:document.getElementById('layers'), state:{}, meta:META });+})();+</script>+</body></html>
viewers/symbol.htmladded+5720
@@ -0,0 +1,5720 @@+<!doctype html><html><head><meta charset="utf-8">+<title>TMCS1123B1AQDVGR - adom-symbol</title>+<meta name="viewport" content="width=device-width,initial-scale=1">+<style>+@font-face{font-family:'Satoshi';font-weight:400;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}@font-face{font-family:'Satoshi';font-weight:500;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}@font-face{font-family:'Familjen Grotesk';font-weight:700;font-display:swap;src:url(data:font/woff2;base64,d09GMgABAAAAACrYABAAAAAAZ3wAACp1AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEQG6omHId+BmA/U1RBVEQAhRYRCAr2KN5rC4QsAAE2AiQDiFQEIAWFEAeJNQwHG3pYE+4wbBwQgO12lyhK2Sj3KKQVlFOQ7L9e4HCIYMwLuAsLtC3GSm1KVU3btDK9WTZtb3qi3yc8uzbugS1YSA6cI04c+R1/jxORO2dg28if5OTl+fr9Is/t/juzCGH2AEQqjlwcgpDsUpFRgI7e8bStn/c2WHaXKG1cV48DRMRCBS8I4594adSFUSeih3Bd9bM8f0UwRHPWXAtbg1SwxQJEnAQJCRKBJJBkkyAJEDEShxQKKSoBarRo2ucoVbtCjaqd9UzhvL1rv/Xznv/fml/3VQdm3k0NONIk3B7PDgs6v4ZZ7XLHduxnHkCyAf7p/2Lvzl/ZE1bOAWguaZMAsP9mnteBVnVEk4GNI1Auh8t/u5s8hwOTRiaByhbn9DP+zt3u2gNDgUactv7z+6m2r2dvQOkdgpxbhCugG5CS6b8/e0tuMuDsD4ha/pzCQBEJNyGZFaA0M2pOz5r9n02z3W9b76Rj+QKHoISP+gDV4RqwptH81WlmZzeWV3JiWQbJVt5JRh3LCmllVgCgyrsqCNKhDyMFmEuGKi0VVYqiQy7qKoGn9kvzFtAcmGt1qEWDBLf+1W97yzXudWTvtkGCBJFBBnmEQWQosn/9qi++0/bkAmlALnmtA+S6mQIDuvvK0sNFunxBBwVNuX2HwAwArAYIAlh5/18ioKggUghHA9HRQwQmSLociJ0dks8N8SqGlPJBRqqG1KqDNGiBdJoM8ZsC6dMHCZsOmWkODAGLpcqBDznMVwHyay4MBUCOBIyfALn60mAAGKCAwP0aenh3Bi4GSNBbzDoryAGMiGJHYZdxcum3nP6PxiQ6lfXBDu+NPhXZH2wTxHC6YGZOxsb8Ik4Uhv+cYvbaYqLnUS2GwhzQBIzYpujkmgyW0ZJKJBXx3TQsLOJlyJUgj0MKz4sGq91jNEGL4cg27Ww6oSyh5GxXncZ0k1gePCvPqwbke8e7hvr4NP1wn/qcK+pj8sJiku8jcHgujg42wAqnHDFyiZWXzMlXgOJIlvLyQcqTJSZohXQQEszyfF5AJmwa2gxzSBZEeh0kSJAgFYn4ppiCBkELySUST08SJiJkpNhnk4PkBgWUmrZwAUEGBAQGKizBEkU5r+EYggIFCpSi/jQDr7oACy87KgCseGj5cBkGFbJkoZaOlcBp1WglixQSDbvmyG4o7xDB/pZTmiELN6VhRZoODx8SvpIYEgPAYtLZdqtFGZiaI/8t1zNdTLBNjeK4eEhYPoI1nyyNWL7oQForygRgfyDupjLz079jhvnhC12xe5NBLCsv94xdAPWwiC0nAQJ3vQ5lMCRRC5aRCt6+llOEKxmJ6Mzhjr1W9zsKy8lxJtN2hg6E4O0J94KC3OwaxNy7usiKg9ytaiGSsQTdTrhg08Ve5fxnw2TA34YoorWrOlo2Mgm5RSvtKHbnSsUFm1MqHtgXUMAm7F8JvZFdXnC75s0flzHepWkGN3WEbE2yc+NqYMLTsA24FKx3pl4FiHYni7P3nK3Y9clFYyp6LkHZiu4NMbwq2+phPCbK1YAEFTivuWkpphG8zw6NZreYcGdcJHMfvBg5wFX2aVhGjaIrZAZjcGQtM4uiEyB7E3m7Fb4k3HKPlcRIJkbxsYlZwJ1qtoU09vwCmah0Je6i5+8KFhtsI2QgbjgxMmFdTFeLxmQUN8xvTAWg8gxZzY1cotThF5VYCA+soMO32RlN9zlmOulconl5WZQaJd0YY+Sapnb1xsvT+no3hw5dnLrNMMwqI+SuUihxD9J5cGy9pzyroeXGJLSho9DpK8jv20d1Ry2kACy31Z2WxUJkz0KiJEPM0iDpEGIlVkaxouGdGs3OnslDYtpeME21nFwI5RBvJMmMEUkuBYk2SK+TJCaTnD9ZrdsUlCCl6CONUHKqsGmkpouujS/wVkGxVhPGGkqwlqKtoyjrKd4GirORIm2SmEa76XLXzQh3E1rulrwBD0tAC9eAQwUaNOhjaV/4EmrDFS1Dsf1+PQ6PpaCBaWkl0dGRSZQojp6enIkJZmYmQIUCSuhAIBlRlYuCpKJiHR8SMBKmqo0yysIstHiQCIkinQ5G5ErjdOFgg0Y6YspbFT98hgQQQQMVeOBAARlYEBCBaImwWA4Kql5Ff+xguSJWWHuAikZIKRVIIKSGPm2ledaMsGE4BCxOgh8/kOrf7/oK5sCzigS4enBOxUS7D1aOWXh0Tt2YjmNH+cZ+e1JBefaUiTEjTxlbJjkfVEv1GAQSNcNK1r3cWz22etLqMdWTVKTVRl0L15tIcKosD1Ze3OgPwcOLbd29cPt558uXVPV0w9n/CPYCOHxNeXsj7L1mVbMfti+wEauxFPObzLwu3B2E0A2hOQRumhoMQMctgzSlE5WFDkpIQYEEAQwaSKlzjZhdxVoBYg04VSMqL8xd6XC27pmb3jRMr9aCEA1/mrNbqVJWUmFq3FYcjfUh7CvfePchxePm0LbosQj4gz3ZgQPWjkkk5kWOn14wpBo40zzVEOSWAAyd2N8FioFMjJl4cwp1Zk802oyp5WYhnDoz7dTRENSJ0z56/G6euC8dAXyXrrbYyQw12MxhsEsibz3KimjabKvlVwlajeW0175zgHQ8nVb5arxJj59ASzvppo894XxrmY2KQqPlO8hrkHvm+a2IXj4JmMqto+aEYE5upaDy0fCYzuAAMdRiNk4KT+D10slaVrcFgl6KXwHOep993pQSVv3EDwA7Alfr9LBjfSNgv+Bt3uR7/z8DiNczciH0MkCd0TyArRCQiHxgrZG229ftl3eEEAb4IzE34vAIMmgYDg+g5b4smeHbAApoQQn0tpK18Nm3HwFJTyZDgbkiZVAmVd2up+rtencrE3/HP+JfQpygF0TBIGQLDsErhITTyWLyhuRNolrURSJgGYGNw/7Y9VKOeAoxQsJmZQkFX7MWACcARlkhkL0Or/Nep75OmTs2d2ju4NxJAACYm5wbnZue2z7nnmPPZc9eoewP/LOeb2fffxsQsA9whg8BeVW/HfNM1ru1bzvnKw9941/fetfzXvDAj0676aprSvI/0VdeeOmCbyAsjoyClk6UaAkS6SURiMws0lllsMlllyefw8ue8Iq/3Q0LTh5exUqVG2mU0arVqlOvwQRtOnSazK9bUJ+QsOle9IWX/GXaeQ9852vf+9KHkcJH5nrDn275OAr41B8OOBgO/jHrXpQd1+FNZx1xzEUQjMSgSEjxNJRU1OLFiBVHLplBilRGg/yMKEemLNkKpOkyTKEhXIYazq2Iz2NGKFNlrHEqlBivyUSTtGj0C5spAnr0mqrdNCatHhnwqtf1ew2CRsRmQNYF1C6Bf4AVGwdrLwRYsDboVwAUPEyVKsLaaz2Jm1wTu3KQ06NkDl5PBgEH47cxnRw2KcrpMQnalqbMzXDdrFMCIhpoHDk6Z7yG70jaxPhgjt5J2J6hxpmrI0/snHwNuTWZQdwbIzTiWEDCA4lDrxLWwd6Y5MhQrnNoIguMDRCPXCHZl0R2qpQyCVKOZ1N4UqaglfwpZaxcpuI4qUyq5KloI2xj1Kz6GtLxWbxkZHFdahMfLYkWeR3JKbhBS/IzVCYbzNP0KqxMt2l0Vn+0WsNfmaJPwSal8IwhWcYnZPvE2LWUPDQ5nufjCMNoXsXzpOexrxBvTCDpB/UoU63WbGYYlUoqpYfx6SyvcMiUyjilY9I6U17NNBkRR6YqSZu5LymSaoW/sv+tEcPwJB3HxrfJRahyLqZZ+eSNIakaaTGb+5RU1jfTTbbOc2iW/RN6QPfFaL3BvJpxZbHuRNgM1mWruig6P6E7nZsGtvvS6qmicUi1sezB+gvyrdhrrxYuOyi6l+LIzpMmdKagQ3sgZY0CGrA3zk2laSx7WTQ1zE5FhlnEnu6wzmEZwdEswWPx0xVy0xojVY6c3+nsDZgDV08cOw4d0KlCZr0E2XgetDWWYhsaB7Rikt0KvYkvjHrn6TiSVceERZJ6fceF+CbsLAXRu9cRljjT6+ghJl/TVZw4R6c38T1T2WNAy9KYUFhcYLVKsyp4pHxqMsEQZQQtXdBsj4K1gb4q6NBd0TxKYyr/gJ5THRnOrkGt2h6+ZLOEZB2/PceWKRRZrv+cdhpZVWUzJKhCGY3MuJwfcH8J9/Mg8cdQtcacGgd0HyUNCJsid82b3txmj8/aj10TOXOPj0RuKCevyjRpyGYcW2VGWHBNOoWVslAa8qVWlpzgRd3ndIwuvKjerAQ3GnnyJ7HTGdwm68sBxeNIKrN2zkfBGquVVoWS4ODchNTBUuJ7zteWJsWYuk3PWDM+vKY3jNWFlSBX1nOzcGiri37xYUBsTbVoPS71bDa460jtWi5T4bM5tTDslBsAoUow1WsX4ziGsfCKTv5bY7Udv4C6XgFX0CAYze7YGlZZ8YKycLTUCNY0QcF1c9OrTdil4sukmT8wRpQcT5zlmCi/pZW/fXuzyv3911+I3b80jhgzitLRg9FdV5g+8fFGx26ZYvSJgQarYUSgLaVSOE6E5XcOb1LT/nWDm0Bjpte2jKQ8fO1EA4vsmpChiMgvlVbvMfysRE3E0XJN5176SDj3vYerRiheTdjtxR0al98g97WfqECteqBY+jpUAEEuCBKAApNIKfWKEqGIOyA8bd9etWfBxoDmsmznYVYcAXi2JcZP6Ur2+0l1bwcsN9urNFoaYmdcRVpYJCirv7EUGtp3MvqpbkvUEmyJoMD1SGPB5Xv2na+rTMM3D5PHU1ghCLE4rqry8eulFNYo/f6wAufUTMXRDlY8gnwTYQ8VnNPupSpepYNT6XEAMU21nCTyUWREiVWFSSIscNSs/ti/VpNFw/Eq/HHyfm+HjZwffzyNWIWKZ0zLlURP1L3ISbqrwdRTRSqrli/1eFtoHIp6rUuyVL56FSdXbfVLGa2DIWvOpyscPNy/bxSw9hJTjZVGvKMlZTYP36fiaSKeFvfSXkqkHSBHfSzfapoKwoskfcH+V4hX8/PIPloU3tu9lLbuRjda8CzOF305MMVmJKl54k9bmCJyF1c7fUvj4OYoR94ECKab58FMwtfrmzx5QPIyO5SD+9VAqU6j+CnLy/9ycrVJG9lH6+CHLYEzWFZL4+vRrPxN/OHLWljTlLjCeO2LfyDO6c+9tvPlXZUP2suP6+SochwfeX6105WS2MSBYLV87GPYEJ5P0D49Dw/3wiQ6VBHvAOrKdnIpPtgxRhKfm87qw1WZtmPZGOJSNGjPuGMsr3PMrpVksF+E1G1r3OTWRZyOMi5qXHaj6+bUrJGnTeFLIcPDfwn/RCoJalGujaFA1WIhsNm7FS55/BvCBT3EKw+k1gUvbz2woFv4mofacEFQNVdE7DJLFZS4TPGczxRi5lt5tLRMvrwPRNV1zslj0f2VdQutEB0VfYmtJcheXZtNXIOY+xyKsh636xBDJBw8okQJQu9QSnZebSazZR2ns+3ekpmKTXGctWZK21R3nAcn8QjqnPfxq+WJgAP9+fBxTpyxSYSOXozeZMY+g6p2khYeMTnDU5mAZbwxkygGk1rFGsDR9BevVUzRE+ESpMRcormtQCkeX52n7uHLhffQdlP+Hm07c9KuOmDpOU0sNOngtnuK7irhhPuQWhiO1RLXqLViNWU0A2LRzJyEYjhFHyZN0cSbsTnUp53clvs6a1/yfXrwjgZRvMJQGUNcf8bSkvCml5nQ3dovmRE9rEJ3ZOZYQN545NAM/muz/3WE28TiiPoo7VHcWzAPJf083IbFFZrwYLUj3+59VByyjiQtHl6Sl5wSztsfknr7uiO9L85J8R0clSNyHhcvyEUcwuGo4JBy1L54TMqh68Vnx9IzYqjieuk5fAdIpol62Ufm657A5V+y5StKx4YAnFqjLZr7NIUs01FkdOHkcf2410mcmvMnol/DscxoOEHToj+oZdpzx3V1UZUtwUFRYrpGzjHXrDNVnMJk7dhl48TekYU2UGwn9uzlUBzd4EpacOkFPb55N/agWHiJdIZNZmBzWRcQYoezSVvzTxBaJg00fwVCbt3PvP9NQbekGyyEUNPQAtQ1CDp8fi18cS3uKqYNwrTZXhKpVwk97T5gAU1joOkBvrInxwfkQSnDXeW6TLa4E5Ytyy9Ruvpa3zzSsEUu5KRlyViiLfV9GQJ6iqW1D3SjDp795NKF058ddg3Ji/oh9b4FRVqDRK8f6ltvWqeWacxQ/r6ODKkG5UAeFH7v3DszM5rqXmWXXeGkp1bb7UpSocJejw31VR2Oao76ttb1wznPZzi+sHmhEawK9vjtBaeaW5XT2y31zrW5iubFhduXiEtkUotp0NdvHbIUqU0BhV831W9u0sHsMv7B0H6ynLx/KtHL9VtZBYHAMchLyAu3Krr3dxeFlSeIY2qL303jzFLPQsHmjG3Q7X8TxxBPX5Pn2E8a7Me910YKmuiOGugKL4zq3sgY87QfXrMlCPekP2IN2BTcuttaeLKltfBE6tvatsvqam1Z81052mEa7Os1bXI41NXbh33fvNepeXkqCQ9RC/Fri2NPlVcddyRPuWtW4eJSZdKboCiCbw/fexThzoY3jsIzU+//ur5TVaff1JfAAfvfe+xuznvx3ewjP7X8NMftju7kLuYqnIzUGpudWeOin69hnn9tu8ezpmPzdvbJfpGczuXIk0T9JXONbt8e2rly5ZrOqMnoXqGMwefrsSXsLck32Y+BEzcv+y9DQB4ks7emZ1pzEIVHFn5UD01NSnuR6wM5EmpGppSSPQAqUPrWJHkBzpQ4EULMKSBzcn6kkm3vVeOLrEx+qSgvz9yaXORuyGVVaCeid25LZiuwhMrZarzFksbTSCrHW0Hgml989b5f1oBNqAO7j+66c/B6mcRjNIk9Zdf33tm16yh4vmkagg5eaIHPteyEclZgYEEIBO029MOr+sOr+2F9/zhU6JhVgz9aYBn00+brLmh6QwC8JuAwdM31w2bo7C4mvIcJgOiPK9BJy/Tnu6+EfrD7tml6N/THNQHADArryn86APf4SgZFddqXB+BjPhC2pNhTmDqgMzLXexRKfmGSBM73a/z5cG5BamgNV1KhN0jKuWye1WbjWcFfmyxtFr22197bhErj5HIIv5XjNtrTjeUZRfl61mn4jCFNXuyVZA44sRvfKMhVZTCJo8Nhut7V5cIK5nN4zC3g1lA/opMjalLFGAaeWrLwBSpLms7OkYBtS4QFqblwvj9+52JYJSNnFlYomOuNutSB8sKOmsLvfzZXUm7QSyoAD7V+6MDQ/8Z3+Br624JWbq9oo2VyXRYLx5WZ2F6+PbhiTQdYvkRZflyvpwpFYRZCVsGLd8af/XqTomw9kuxenYbZUyEtTJcRvPD8VMmzwcSw7NsDAfBHhpPQkYcz77YQQ3NKv9gDy/IVMzX+4cOjHgHXZFLJy7hsXqHNxDUBEWrj6IFhq2B9p8zYt3HHVsyWAJmoNIvR7xvv4xpXZXze/Nd8YRaSzhbkAe/Pxd5iHBMnLSXKYqeqvg/FvJOAtnqtPwPxp8VOUqU5YlI+y+ZxJUIx/KUsiVfXvHONOq3PIyviIfQIWOKntvb3b9ZlCWwlJQJrFjtbbzBl6wASv3MZnJaXxLfb2la27bTyqIKUTL5OJAKIZqcGLLkFfRCnFRh2VorjFAMxH42jSft+Ogy9s/zHDOjC0T9tf4GWS+GFgsqdBnlC8XkIIBq/Dl4s5ebxlKwiOEaWJbSYM90vlyhMZKfrhaK1hZUh05nHIFlSx5FS1NjwwcFB1cY0FS7C5XZxnQKYM5AcAypCXv2eX9AVHusSUSivOJyC/vnNZGvgsOMcgbSiOjyBBnv3iDfs/kLRA6/e9WzDwR/Ytc5WhdFAOkrfWsDbaDTyNqS73Cg2MB6G/KNnSErdXFbZisok7Lr5sjxtJqNsx7rw4o5Kt9SSdnjFeUOayMPnulw7/E5+Ngfm0vkWL3qxcKSKzZcD6a3Gogjb0bANegNzQ9dM2ZH2JrZIYtTuN9wWo/DWra4EIWc1crahIFYieyrb/5ESE9vm96dEM1oFGwOE8Rnxw7QSeUlpPCCj7PU8lpk/Ll3sIiYNRsFlF8QRyWoKU8gqbLJWFzmTU5XJo8JwKrEyKmroiDicX0pJFbGL2x1AAit4TRvzGtVVmPuwIJ5OERQlvg//bWNlaLLL1lY30IuC7zRQcpdimefolAxdws12ZVhJTjIlhy7QiEoUS8DOiiiZPFXpLfZv81u8FkwBVrUOAktQdkejGE4VJmfxM9IM6+CHBVlg5nARtLvzI7jrozHoNyXo0pW+4c+bhZWz894MjlEb3tCVLiz+HuauBkHQyeSdkdBx8zSsn94FbQk7ngadqPkArvwAVN2atybDU/huEbSdO/1rrAWFwCcS2a+L59cW6PR/2GOCjQ6A6/oS4MNfw6HeL7u+AHjCa5jmBcfHpSKPUiVyS+M3n4OpVe4qKnxu8yJjLEQiB8aGjmVkjIGvxo06m1arsxn1vgzKaAqfT4keZQ6UzTPj+4Hn+bXd7L6+4QPNQBU8vvmTixc77/ibfpH8ET1iQf+aNWhi/NsAdhM67bZPPvYOBAGaT8lrsc/kcAU2dspGFpebn+Mv4jY1C/RdG7o9ioLO/Dy0MnsdrPYBcZC8moyIsdrkyRyRXJTNFybxbKISbJXauCKHA4vbX/uOH4WtKK/HhIgruzggdqov98Oj0GvXy2gnfKr536kn5OWBKwGPgWiJopySI4yTL5/Evz1AFvJKhLm5BTzsn1erxumn77UXhc3AHFE8W16ZzanLLxa3+fKAJtjULRW2F/DxVVmO4OW3Dj2WXoAIxqpMhOvAwcFt9GxXJqdSphC2dor1DXxJfq5YKucJEGU2ES18AHTQfw+GNp+EJ3xJ6/hdQBU8NNlqkZSYc0Ph1UJldmaWoYGl69m42pCdXbgLloQqy8R8ka0v09YgEotYbLFQJJQI2SyJSODK+JzB+Dwj/T6DcR/shViG4m2cWPifdsYcszgrZfnCli6x0dzl6Wp4+FVZdpQe1nQgNSS04AHDswwQOXi80GX31dbae1xuW09tnf5H1OWQjoxICRhEIsVIwbcSJYJp4ed75wDNuX7L1aKdgmj4UWyCGF9bZDCYdKZ8EYEiIq8O4cL3rODhApGWRMsNao70YnHm8LjHKVEKyt3um/D7Zo2tSgN/inAzRZ5CkOCwfAT3Bex55/uAR3C4fsoxGtDqaZ8/DH6D8oromJzo5hQkBuvB48sxsf+saogLTTd+EqSF770VJyvQ5Kk8ZvBsg8XmlDKp+qj2/y4MQ0crtr2/6X24f2kMqwRBpDarWYfbhyfsw+LPYuLagQUaWZwwbYIDrXWuS43g8UJ7uSKDfncvHP6allKiKNObJBnUd8TwqRkGy17o1hG6Y2K7CISu2Jhu/IfxlMjI6IQ4JCoyE6yG3h+4ONt2EfYnxbJKEKnUZi2z2pxIKkX3dwdqIPIJ4TAG3UHG/Q+LPwgeBSYIFzRDCUII+AMZoVRaCIPxnEZ9AdLGoPF48QRxGZYSQqdHpCdjGz4FmkDadyTyHI12mUy6ErRZ5/UoUBMcNot+C30ryQmh7utNpd0LfAD005/ct30EtZE+D+8/PqAvxUfTaSY2Mc63zP9GTqanjq+v29hYYaqq06GV4pdRdeIlq9VcVcsGD+WX4KmDSEt7444gL6e0V7dJ5YW5uYpCCSJLRDMHE035GZk9qaXT2cv/Qhv//HQgMWt+DsaJCSFZ4tafH3yyvzZD06WpI5Q9nSPiM1FnxMAUf8uyos4Ss8s6+a2x0x1nfQQNZloy04a/LKTO/JV1XBY/knArMX0SfWQSBNqg5cJ2360XRNqCDvmwbzCmpJ7H4c5TsSrAeO5b6Mutlj7vLHC37msd+GxakzNEPOZwdGRIoZmA1gtHSAfNZgizWQ8BxvSDsgl3dkQiGbpB5bs2ZyIOSWSsKCNRTwlqBaeo5Aujf35OZE6azctuw2FWqMgUAtIL9xIQCnmFEotrY4O0d73plTjsCuX+aBUGV5nutTtox+oS6SvKyFlJJImxRMSRCFTHz9NqJz6eqAXY47qOdh6MnWsm71E7tC5BPEFYjqXMB2lXmpH/5fkbt14hPzRzEg77QCCtcqX49/3aAYYrKCp6EI2igmU967+oaHlnZLj53lerhoZuVTjP1Bo4/Q4pP3PPDDySQ2XyivikakmVsc9I/2QpzPMiMSExmPlR2ozJ0wd3Nh7Qa/d6azT79uprCwdJf0Blnw7iVqdS2UqplK2kEunygny6AnCCSxqy+NYsRGMToOFYegErLUXtSiusXmWRJiWKkeQdsNNyjuiBf1wuY77rrWnZQzt3ErpToIaj3JkpLdQvG+9cDjtDYqvykltPfEZJqKDSj2IxpWCRra8geXLzSHPz5pFJerXv1dRXwF35nv+0MfFHZb81kZL+S9hRd6SFFK8mK+gpXMkUHMImShot1UWO5NQi/lj2KyrRFMFQRTUTGKUUZnZSSoa0B57/C0Hebkutqu6IPpj1JvrysphUVRS4E9x52mE50dBoPTXj7OzKvU82NKQ64+xQOTYVyjeZzUpSBwfdxWWOqgbXylpvmdqlWSTtTHHFksi5OQKyiIh2J3culri0gFqC1AoEtYhMsJq+iGy1oK8MEdSeLSJSWx1qdZdHip4M008mhFtcTFugNlEH64figiJQS0lL4kD7LvdK9zvBOrqOFuye4j5ewXl8pmBA/PzH3fwu9RPwejBNw2Rq0lhMNQSmzjZqVhpTow7ZCDYq9YqUNUi8oqJuHdxaQwW1t+633we1vePt420KThmQIj9QdL7bLbFLgFumVqtUjDA5laqMMZNVZHHxc1kohSLsuVC7hR9KROXD+kwWljrs2ZiEIaaQZIwkEpL6MugSSt8kBkm2GIBu+Mf+D8ataUySFmC/YNric6TkdO7uXVF4cSVeYE3lXneC1ZCWoRZ7xtrBCdTeE59cujD12T77BnnBTy+GqQyi0tKR2nVKsdKV39+Y8i+8+qx6Znx8loOkzpRsZkZCSBGsC9FTHGu9HeZ6fkbNPNl4dJqUl+pixS3NC5UsleKKpHCtT8spvV0KgszP90I7zdOf+47Dx0dvG6fHocf7jRnb1XPq2TdL50rBctsPv7b/+oNvmBYQhT6NDwx7NJrLz4S4WEAUt2paKY/eAA5P3bXVCBCvtWva1X+OkYDY0/21F+6m9Kk3/Qg6ei4E4dtJA0JuXnzY/PB252256y56DjRrmsGjbftutovwIAvNjivL5WSScqOuIDD8UWInC10m4mYSRfEO6+DIl1QQ0Qu92/HFvQ5ocnMIPBQCxLfid1q5NGEq7zPsGzbm4bmU8OBZGIML2dDSUCl/vDXm+I7xTVTktOD2i21/BoCCAo+n/EkcmS8WBPwJvwDRsUbB/gidg2vbCRUYbDmBUI7FVBwiNMduTfgTAOrEG0VkxIj+COSXqh+cG4EuLj+0dAHt7Hcf+dBdZt8pdMNZbkAdMVndi+V1RQMkcltR3SK57RTRxREJmUwVXMzRp4vD1oeGrg8L83RP9wDzdlKolEHDc4+EhyyOdi76I6i/A8atYcs0saBhxu12g0vTkOOIlzcNbH9ZB60g90oCVTGo4FOfaXv8dr/t+HgzgRn1vGhy251qnjh2ouY54vYmzNshBMyDYYbLxowklFUgGogsGASJXSl7nobi9szCiHWQkeo7Pa9wihqbZiDA3EBkfFDkX0TPiCMHZyAioYSInQbFEKbSsJAfYhmGjQYzENDSQGTBILDnaTtsl2LYhBkIaE2I2DkgL5+fBpXKuWjGmmqbBGGqJzJD0D/FlE1owDuQ+QSl9XBJgoitJzIs6BsZ4812iJwxo2iPVRGGGog0DAxHEVfXGs41+FhqwYTzsG+TIPT1RGYI+lFoG7rPwzVIEOZ6IsOC/kU4gW1TRLZAlZ80V571xtjR0ivHdDu5MuDnQ4bN1RlLnzETAzA43MK2msFKZ8tXL77DmoFrF8i6zcD1Bm7YAhvvtQmoOWwGstugt+itepvernfonXqX3l28Jw/9t/4bfzeyMqKLRo44nYeA5fbaDNjwod7eb1vF/w+/Ch03Ws7fotAouTYALxgD/FDrngK7LBOuOdciJzzSjzCgB/CWfgtv67fxLt51dvSZLpmx9Didi7QFvgMGAQo0JP3ubwZg/6d+fHKg+KPgicZL1S/78XsuvQIx/nAlMOMFgwDc/wDAQlA/9b8q2f/mevzQYzJk80fo4Zv+jk8L6tfmwQe/zJIAHX5QruyHZQk3weSntiTc3d9peuX5gn783PMkASX7AbZ/JBhffZsIBT8gvADUa+wyzPi13F2azAlTEDzDfFNe7b6fShNmoAInZecF/mx+I0D2PJLxgFwLvPwEiyPMZv8D/BzEj/y4KIXw5AHeBDqZ07R6uMGUAAVONLAjf/IxrjM96CLEAdPqw1ePQPd6yFIfji2On6uv47Lzm2hsGL9UbfOQAn+UETnj12q0/lytvLAG1/BU4T6r1QJYHGmDdb61rY6FFW5J/IQME4MzBSK/wLCM4J3iVsfPwHOBg1xc84tYjaHRPOBX6IcX8C48hH544eu3uiyC13CiSbStYE/oYLqNnsJuwO/xSyLF6RrX5jFZd5a6DmnOeQvBw1WutgwN1M78bwf2h/PzMN+2wMrM2EQ0QV6Lhml1IB+1s4MNm7O7SwF18P/ddaoW5kwHTapd+fMITa+b+bDF7o/ddkCAsmi15KyPovC3YT55HuDHT7l/I91Xe45G6pquoslgA1qFFI7uKeyWhvlvTgi5fB1n3dxTVt9jbuhzOFBv82VFT/Q5a2ebtTVKLvx20paYe2U4WQal2QhO8Vj1h0WqcU1WenTD5hPSS/+46h7d6zX0A26LKSR1K+pvYKqSkGqUtd8C2o5PEWsq0PclUIOUnwhq46OsT/1YGYSu/TDDkNjz5o2w7LPq57uW/U/hkbY2Q+KotP8NsSMw3+aAvvagHzLNH5dPlZYjbf1fqdvkAkztx3c/g55cNViUOEqVq3AqRdJZ6qZ0t3/OwDnKwJUACwiANTGBAzigCUxcPppXOSqmJqEFJc5KK+kDmZPqYDUlTQRkgFXLNQ8tYxxj+P5cHvWqtVrZinUeqK96+B3elQzIbtnz3SoI+E6s1FG/GilGpNK0fRIzJyHMtxtEXkvDLIoN5rqnT+m6cKw6lwgkAQ5YUIx5HK4yMcktTWeXYfZcZaN2GLnakf1vSa3jqXgLe0tOp2Huw9B5HafNrbZqa9zCaqyaL7H2W+5Dd7jMFAosgz1pJILMDUICjg+uqfZXzZnSu4h+gNvhe9OncBZcoL2l4I7wl1VjGqbbUAenYBJM3/994JJYKvbxE0BDIOsqQxmKhFzK5rKW2mo+NEkBfBXzZhQiZPEojAkeRRjqiVEks52jKHHmj6IZ1YyUsxPXgDDwolQ6PwTnaiaWLhYFTtKjW6OAx4S6sf06NavWWtOuQ+iGdLa9+jhk2CXcLKiz4KGeW+M17+Rn1SOoXYZRivkUa9RtvVdM1iqgRFCPkFZ9uqRz6+HXokqrYHoir36AIIuVjU3WIplAXYS4+NzZ15TzGbFquXPnokWuuKdr6DVDUBTqKXXIM2deUUBrCz0Woxc0RDSn97mEBRY9EpB1cqPYvnadod6wpiiaayt5hhNfunExDoY/JJEPFSa4PyGQJL58ErMusJ1ng+FpTc6wOWsQnkGLwb5i1OoZz3meiVkaixe86CUvdyi88ZnaZHnFq9q9boNj3pLqOzldDbPr90iHAQUcnAp9YwgvosvnsQO67ZereNoSXyvVK482pRvfsn3eEDLVtBAQVh6yg+KDOcZ0Y80wy2wzHdDmApXvVahUZQW1GnPN16WjK+ON+9ZNxlCIRhK474E9JoV0mZS7G/5Sj5eQhUiKWMQhHsmQHCmQ0nIrhAgVJlwEWKQo0WLEQosTLwEGFg4eAREJudteeOlVKKgRsUhET0Uhkd4pAQ7BOOiaZYLR1IaFkTJJXTRNgMObYJKhhnvCky476ZTTDjjooksCsVJILddnvXU26EmmlCb60mIXLEh2S/iTk9wPfnRGvGRJNtnNwpXcmNixpcuQKQsHFw9fdlzWElrjc+95y9vejzueeFM0c10UbJ3aKu3cw9/T7K8YWyYJX9dpy8rOI5znt1Hqntg51v2SP71zKn8b3XNd61AP3W4Ipj9be69ITnKL2n3l1LD8viun48l86Rz75qXz/MCVASHNi34/X2EYl5QpBMvIQso4Q8Y4lBHI8hpZjkQZITP9Nj8FLikQMpAROEMgKHDmADICgcAZSlVmcxcsTFk52dNn2fJysPCkqWbbX+SymaLg0LDfXjXqxL9ac4/PWA9lHldFZI+XPmmySvcdrJC/mx7Tl2Vl5hZF0niWm4I908K9Utq/L87Ksm35OGKe9F8z69j6f4KRtu/icIgdMGVpdnUOLmnoSn/LIi+nT1Yer2fn/tNhcjspcXuUBz1vq3usy1NWVGHNzClQ9yFteDj1dRRZErkGAAAA) format('woff2')}+  /* Canonical Adom dark-theme tokens (adom/guides/brand.md) */+  :root{+    --bg:#0d1117;--surface:#161b22;--elevated:#1c2128;--overlay:#21262d;+    --border:#30363d;--border-muted:#21262d;+    --text:#e6edf3;--text2:#8b949e;--text3:#484f58;+    --accent:#00b8b0;--accent-bright:#00e6dc;--purple:#8c6bf7;+    /* aliases used by the viewport + pin-list rules further down */+    --panel:#161b22;--panel2:#1c2128;--muted:#8b949e;+  }+  *{box-sizing:border-box;margin:0;padding:0}+  html,body{height:100%}+  body{background:var(--bg);color:var(--text);font:13px/1.4 'Satoshi','Segoe UI',system-ui,sans-serif;display:flex;flex-direction:column;overflow:hidden}+  /* ── Canonical Adom app header (adom/guides/adom-app-header.md) ── */+  header{display:flex;align-items:center;gap:12px;padding:0 16px;height:44px;flex:0 0 44px;border-bottom:1px solid var(--border-muted);background:var(--surface);position:relative;font-family:'Familjen Grotesk',sans-serif}+  header .brand{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:13px;font-weight:600;letter-spacing:.01em;cursor:default;flex-shrink:0;outline:none}+  header .brand svg.logo{width:16px;height:16px;flex-shrink:0}+  header .brand:hover .app-name{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}+  header .brand .app-name{color:var(--accent)}+  header .brand .app-subtitle{color:var(--text2);font-weight:500}+  header .brand .sep{color:var(--text3);font-weight:400}+  header .vsep{width:1px;height:18px;background:var(--border);flex-shrink:0}+  header .subject{display:flex;align-items:center;gap:8px;min-width:0;flex:1;cursor:default}+  header .subject-name{color:var(--text);font-family:'Familjen Grotesk',sans-serif;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}+  header .subject-meta{display:flex;align-items:center;gap:6px;color:var(--text2);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;white-space:nowrap}+  header .subject-meta .sep{color:var(--text3)}+  @media(max-width:720px){header .subject-meta{display:none}}+  /* Floating in-canvas viewer toolbar (frosted, matches the app's glass cards) */+  .tools{position:absolute;left:12px;top:12px;z-index:5;display:flex;gap:3px;padding:3px;background:rgba(22,27,34,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:9px}+  .tools button{width:30px;height:30px;display:grid;place-items:center;background:transparent;border:none;border-radius:6px;color:var(--text2);cursor:pointer;transition:background .15s ease,color .15s ease}+  .tools button:hover{background:var(--elevated);color:var(--accent-bright)}+  .tools button svg{width:16px;height:16px;display:block}+  header .hover-popover{position:absolute;top:calc(100% + 6px);left:16px;background:var(--elevated);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.5);padding:12px 14px;min-width:300px;max-width:420px;font-family:'Satoshi',sans-serif;font-size:12px;color:var(--text);z-index:99999;opacity:0;transform:translateY(-2px);pointer-events:none;transition:opacity .12s ease,transform .12s ease}+  header .hover-popover.show{opacity:1;transform:none;pointer-events:auto}+  header .hover-popover .popover-title{font-family:'Familjen Grotesk',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:8px}+  header .hover-popover .popover-row{display:flex;gap:12px;padding:3px 0;align-items:baseline}+  header .hover-popover .popover-row .k{color:var(--text3);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;text-transform:lowercase;width:64px;flex-shrink:0}+  header .hover-popover .popover-row .v{color:var(--text);font-family:'Satoshi',sans-serif;font-size:12px;flex:1}+  header .hover-popover .popover-actions{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-muted);display:flex;gap:12px}+  header .hover-popover .popover-link{color:var(--accent);text-decoration:none;font-family:'Familjen Grotesk',sans-serif;font-size:12px;font-weight:600}+  header .hover-popover .popover-link:hover{text-decoration:underline}+  main{flex:1;display:flex;min-height:0}+  .vpwrap{flex:1;position:relative;min-width:0}+  /* Schematic-workbench grid, identical to the main app's #stage. */+  .vp{position:absolute;inset:0;overflow:hidden;cursor:grab;background:+      radial-gradient(120% 120% at 50% 30%,rgba(0,184,177,.05),transparent 60%),+      linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px) 0 0/22px 22px,+      linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px) 0 0/22px 22px}+  .vp.grab{cursor:grabbing}+  /* Only the DIRECT-CHILD symbol svg gets the pan/zoom transform — scoping to+     `.vp > svg` (not `.vp svg`) keeps it off any nested icon svgs. */+  .vp > svg{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0;display:block}+  .hint{position:absolute;right:10px;bottom:9px;color:var(--muted);font-size:11px;z-index:5;pointer-events:none;user-select:none;-webkit-user-select:none}+  aside{flex:0 0 268px;border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}+  aside .ah{padding:9px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}+  aside input{flex:1;background:var(--panel2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:12px;padding:5px 8px;outline:none}+  aside input:focus{border-color:var(--accent)}+  .pins{flex:1;overflow:auto}+  .pin{padding:7px 12px;border-bottom:1px solid #1a212c;cursor:pointer}+  .pin:hover{background:var(--panel2)}+  .pin.on{background:#15202e}+  .pin .row{display:flex;align-items:center;gap:8px}+  .pin .num{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:#8fa0b4;min-width:22px;text-align:right}+  .pin .nme{font-weight:600;font-size:13px}+  .pin .ty{margin-left:auto;font-size:10px;padding:1px 6px;border-radius:5px;border:1px solid;white-space:nowrap}+  .pin .d{font-size:11.5px;color:#aeb6c2;line-height:1.45;margin:5px 0 1px 30px;display:none}+  .pin.on .d{display:block}+  .empty{color:var(--muted);font-size:12px;padding:14px}+  @media(max-width:620px){aside{flex-basis:200px}}+  /* pin panel header — reads like a studio section */+  aside .ah .atitle{font-family:'Familjen Grotesk',sans-serif;font-weight:600;font-size:12px;color:var(--text);white-space:nowrap}+  aside .ah .acount{margin-left:5px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:var(--text3)}+  /* bottom info bar — mirrors the main app footer */+  footer{flex:0 0 auto;display:flex;align-items:center;height:26px;border-top:1px solid var(--border);background:var(--surface);font-size:11px;color:var(--text2);padding:0 14px;overflow:hidden}+  footer .it{display:flex;align-items:center;gap:6px;white-space:nowrap;min-width:0}+  footer .it+.it::before{content:"";width:1px;height:13px;background:var(--border);margin:0 12px;flex:0 0 1px}+  footer .k{color:var(--text3);text-transform:uppercase;font-size:9px;letter-spacing:.4px;flex:0 0 auto}+  footer .v{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}+  footer .descit{min-width:0;overflow:hidden}+  /* pin hover — highlight + tooltip, parity with the live SymView */+  .vp > svg text,.vp > svg g.stroked-text{pointer-events:none}+  .hit{fill:rgba(0,230,220,0);stroke:none;cursor:pointer}+  .vp > svg g.stroked-text.hl path{stroke:var(--accent-bright)!important;fill:var(--accent-bright)!important}+  .vp > svg path.hl{stroke:var(--accent-bright)!important;stroke-width:.22!important}+  #pinmark{pointer-events:none;fill:rgba(0,230,220,.18);stroke:var(--accent-bright);stroke-width:.12;opacity:0;transition:opacity .1s}+  #tip{position:fixed;z-index:9999;max-width:300px;background:rgba(22,27,34,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(0,184,177,.34);border-radius:10px;padding:9px 12px;color:var(--text);font-size:12px;line-height:1.5;pointer-events:none;opacity:0;transition:opacity .12s;box-shadow:0 12px 40px rgba(0,0,0,.55)}+  #tip.show{opacity:1}+  #tip .r1{display:flex;align-items:baseline;gap:8px;justify-content:space-between}+  #tip .nm{font-weight:700;font-size:13px}+  #tip .pn{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;color:var(--muted);white-space:nowrap}+  #tip .badge{display:inline-block;margin-top:5px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;letter-spacing:.2px}+  #tip .desc{margin-top:6px;color:#aeb6c2;font-size:11.5px}+</style></head>+<body>+  <header>+    <div class="brand" data-tooltip-target="app-info" tabindex="0">+      <svg class="logo" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="7" y="4" width="10" height="16" rx="1.5"/><path d="M7 8H3M7 12H3M7 16H3M21 8h-4M21 12h-4M21 16h-4"/></svg>+      <span class="app-name">adom-symbol</span>+      <span class="sep">·</span>+      <span class="app-subtitle">symbol viewer</span>+    </div>+    <div class="vsep" aria-hidden="true"></div>+    <div class="subject">+      <span class="subject-name">TMCS1123B1AQDVGR</span>+      <span class="subject-meta"><span class="sep">·</span><span>10 pins</span><span class="sep">·</span><span>tmcs1123b1aqdvgr</span></span>+    </div>+    <div class="hover-popover" id="app-info" role="dialog" aria-label="About adom-symbol">+      <div class="popover-title">adom-symbol</div>+      <div class="popover-row"><span class="k">about</span><span class="v">Interactive KiCad schematic-symbol viewer: pan/zoom, per-pin hover, and a filterable pin list.</span></div>+      <div class="popover-row"><span class="k">version</span><span class="v">v1.2.6</span></div>+      <div class="popover-row"><span class="k">engine</span><span class="v">service-kicad</span></div>+      <div class="popover-row"><span class="k">mfr</span><span class="v">Texas Instruments</span></div>+      <div class="popover-row"><span class="k">author</span><span class="v">Adom Inc · adom.inc</span></div>+      <div class="popover-actions">+        <a class="popover-link" href="https://wiki.adom.inc/adom/adom-symbol" target="_blank" rel="noopener">Open wiki ↗</a>+      </div>+    </div>+  </header>+  <main>+    <div class="vpwrap">+      <div class="vp" id="vp">+        <div class="tools">+          <button id="zout" title="Zoom out" aria-label="Zoom out"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5M8 10.5h5"/></svg></button>+          <button id="zin" title="Zoom in" aria-label="Zoom in"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10.5" cy="10.5" r="6.5"/><path d="M20 20l-4.5-4.5M10.5 8v5M8 10.5h5"/></svg></button>+          <button id="fit" title="Fit to window" aria-label="Fit to window"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="14" rx="2"/><rect x="8" y="9" width="8" height="6" rx="1"/></svg></button>+        </div>+        <div class="hint">drag to pan · scroll to zoom</div>+        <svg+  xmlns:svg="http://www.w3.org/2000/svg"+  xmlns="http://www.w3.org/2000/svg"+  xmlns:xlink="http://www.w3.org/1999/xlink"+  xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"+  version="1.1"+  width="53.720mm" height="58.370mm" viewBox="73.1400 89.4200 53.7200 58.3700">++<defs>+  <linearGradient id="adom-body-grad" x1="0" y1="0" x2="0" y2="1">+    <stop offset="0%" stop-color="#1a2332"/>+    <stop offset="100%" stop-color="#141c27"/>+  </linearGradient>+</defs>+<style><![CDATA[+  /* Stroked text groups (KiCad renders text as paths in <g class="stroked-text">) */+  g.stroked-text path {+    stroke: #ffffff !important;+    fill: #ffffff !important;+  }+  text[opacity="0"] {+    fill: #ffffff !important;+  }+  .pin-highlight path {+    stroke: #00e6dc !important;+  }+  .pin-highlight g.stroked-text path {+    stroke: #00e6dc !important;+  }+  .group-highlight g.stroked-text path {+    stroke: #FFD180 !important;+  }+]]></style>+<defs>+  <radialGradient id="adom-canvas-glow" cx="100" cy="118.605" r="40.858999999999995" gradientUnits="userSpaceOnUse">+    <stop offset="0%"  stop-color="#00b8b0" stop-opacity="0.06"/>+    <stop offset="70%" stop-color="#00b8b0" stop-opacity="0"/>+  </radialGradient>+  <pattern id="adom-canvas-grid" x="0" y="0" width="2.54" height="2.54" patternUnits="userSpaceOnUse">+    <line x1="0" y1="0" x2="2.54" y2="0" stroke="rgba(255,255,255,0.025)" stroke-width="0.06"/>+    <line x1="0" y1="0" x2="0" y2="2.54" stroke="rgba(255,255,255,0.025)" stroke-width="0.06"/>+  </pattern>+</defs>+<rect x="73.14" y="89.42" width="53.72" height="58.37" fill="#0d1117"/>+<rect x="73.14" y="89.42" width="53.72" height="58.37" fill="url(#adom-canvas-grid)"/>+<rect x="73.14" y="89.42" width="53.72" height="58.37" fill="url(#adom-canvas-glow)"/>++  +<g style="fill:none; fill-opacity:1.0000;stroke:#000000; stroke-opacity:1.0000;+stroke-linecap:round; stroke-linejoin:round;"+ transform="translate(0 0) scale(1 1)">+</g>+<g style="fill:none; fill-opacity:1.0000; +stroke:none; stroke-width:0.0001; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<rect x="0.000000" y="0.000000" width="297.002200" height="210.007200" rx="0.000000" />+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++++++++++<g class="stroked-text">++++++</g>+<g class="stroked-text">+++++++++++</g>+<g class="stroked-text">++++++++++++++</g>+<g class="stroked-text">++++</g>+<g class="stroked-text">++++++++++++++++</g>+<g class="stroked-text">++++++++++++++++++++++</g>++++++<g class="stroked-text">++++++</g>+<g class="stroked-text">+++++++++++</g>+<g class="stroked-text">++++++++++++++</g>+<g class="stroked-text">++++</g>+<g class="stroked-text">++++++++++++++++</g>+<g class="stroked-text">++++++++++++++++++++++</g>++++<g class="stroked-text">++++</g>+<g class="stroked-text">+++++++++++++++++++</g>+<g class="stroked-text">++++++++++++++++</g>+<g class="stroked-text">+++++++++++++</g>++++<g class="stroked-text">++++</g>+<g class="stroked-text">+++++++++++++++++++</g>+<g class="stroked-text">++++++++++++++++</g>+<g class="stroked-text">+++++++++++++</g>+<g class="stroked-text">++++++++++++++++++++++++++++++++++++++++++++++++++++++</g>++<g class="stroked-text">++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</g>+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.3000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">++++++++++++++++++++++++++++++++++++</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++</g>+<g class="stroked-text">+++++++++++++++++++++++++++++++++++</g>+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.4000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+++++++++++++++++++++++++++++++++++++++</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</g>++<g class="stroked-text">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.3000; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">++<g class="stroked-text">+</g>+<g class="stroked-text">+</g>+<g class="stroked-text">+</g>+<g class="stroked-text">+</g>++</g>+<g style="fill:url(#adom-body-grad); fill-opacity:1.0000; stroke:none;">+<rect x="82.220000" y="97.460000" width="35.560000" height="43.180000" rx="0.000000" />+</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.2540; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<rect x="82.220000" y="97.460000" width="35.560000" height="43.180000" rx="0.000000" />+<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 95.9420,119.0090+95.9420,119.1260+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 95.9420,119.1260+97.4960,120.0230+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.1260,118.9030+95.9420,119.0090+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.1620,118.8450+96.1540,118.8720+96.1360,118.8960+96.1260,118.9030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.1910,118.5930+96.1620,118.8450+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.2730,118.2540+96.4070,118.3310+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.2730,118.2540+96.2780,118.2260+96.2830,118.1980+96.2880,118.1700+96.2930,118.1420+96.2990,118.1140+96.3030,118.0860+96.3080,118.0580+96.3140,118.0300+96.3190,118.0020+96.3240,117.9740+96.3280,117.9460+96.3340,117.9180+96.3390,117.8900+96.3440,117.8620+96.3490,117.8340+96.3540,117.8060+96.3590,117.7780+96.3640,117.7500+96.3690,117.7220+96.3740,117.6940+96.3790,117.6660+96.3840,117.6380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3010,118.3960+96.2940,118.3640+96.2880,118.3320+96.2820,118.2990+96.2760,118.2670+96.2730,118.2540+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3280,118.3770+96.3010,118.3950+96.2750,118.4190+96.2510,118.4470+96.2310,118.4790+96.2130,118.5130+96.2010,118.5480+96.1930,118.5820+96.1910,118.5930+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.3840,117.6380+100.0660,119.7640+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.4630,118.2990+96.3280,118.3770+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 96.8860,117.6380+96.8910,117.6090+96.9070,117.5820+96.9330,117.5570+96.9670,117.5360+97.0080,117.5190+97.0540,117.5080+97.1030,117.5030+97.1530,117.5040+97.2020,117.5110+97.2470,117.5240+97.2860,117.5420+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.2860,117.5420+97.3120,117.5610+97.3330,117.5820+97.3490,117.6090+97.3540,117.6380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.2860,117.5630+97.2480,117.5460+97.2050,117.5330+97.1590,117.5260+97.1100,117.5240+97.0620,117.5280+97.0170,117.5380+96.9760,117.5520+96.9410,117.5720+96.9140,117.5950+96.8950,117.6210+96.8870,117.6490+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3540,117.6380+97.3450,117.6760+97.3170,117.7110+97.2740,117.7400+97.2470,117.7520+97.2170,117.7610+97.1860,117.7680+97.1530,117.7720+97.1200,117.7730+97.0870,117.7720+97.0540,117.7680+97.0230,117.7610+96.9930,117.7520+96.9670,117.7400+96.9230,117.7110+96.8950,117.6760+96.8860,117.6380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.3540,117.6490+97.3440,117.6190+97.3260,117.5950+97.3010,117.5730+97.2860,117.5630+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.4960,119.9060+95.9420,119.0090+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.4960,120.0230+97.4960,119.9060+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.6800,119.8000+96.1260,118.9030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.6800,119.8000+97.4960,119.9060+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.6800,119.9170+97.4960,120.0230+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.7160,119.7420+96.1620,118.8450+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.7160,119.7420+97.7070,119.7690+97.6890,119.7930+97.6800,119.8000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.7450,119.4900+96.1910,118.5930+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.7450,119.4900+97.7160,119.7420+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8120,120.0890+97.8120,120.2050+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8120,120.2050+99.3660,121.1030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8160,119.7000+97.8100,119.7340+97.7990,119.7690+97.7830,119.8030+97.7630,119.8360+97.7400,119.8650+97.7150,119.8910+97.6890,119.9110+97.6800,119.9170+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8390,119.4990+98.0700,119.6320+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8450,119.4480+97.8160,119.7000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8820,119.2740+96.3280,118.3770+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8820,119.2740+97.8550,119.2920+97.8290,119.3160+97.8050,119.3440+97.7840,119.3760+97.7670,119.4100+97.7540,119.4450+97.7460,119.4790+97.7450,119.4900+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.8820,119.3910+97.8610,119.4100+97.8480,119.4360+97.8450,119.4480+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 97.9960,119.9830+97.8120,120.0890+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0110,119.2580+98.2770,119.4110+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0110,119.2580+98.0130,119.2300+98.0160,119.2020+98.0160,119.1960+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0160,119.1960+97.8820,119.2740+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0160,119.1960+97.9460,119.1550+97.8750,119.1150+97.8040,119.0740+97.7340,119.0330+97.6630,118.9920+97.5930,118.9510+97.5220,118.9110+97.4510,118.8700+97.3810,118.8290+97.3100,118.7880+97.2390,118.7480+97.1690,118.7070+97.0980,118.6660+97.0280,118.6250+96.9570,118.5840+96.8860,118.5440+96.8160,118.5030+96.7450,118.4620+96.6750,118.4210+96.6040,118.3810+96.5330,118.3400+96.4630,118.2990+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0170,119.3130+97.8820,119.3910+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0170,119.3130+98.0140,119.2850+98.0110,119.2580+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0330,119.9250+98.0240,119.9520+98.0060,119.9750+97.9960,119.9830+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.0610,119.6730+98.0330,119.9250+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.1980,119.4570+98.1710,119.4750+98.1460,119.4990+98.1220,119.5270+98.1010,119.5590+98.0840,119.5930+98.0710,119.6270+98.0630,119.6620+98.0610,119.6730+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.3330,119.3790+98.1980,119.4570+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.5600,117.6050+98.6830,117.6760+98.7100,117.7080+98.6970,117.7470+98.6560,117.7700+98.6150,117.7790+98.5870,117.7790+98.5330,117.7620+98.4100,117.6920+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.6970,117.5260+98.4100,117.6920+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.6970,117.5260+98.8200,117.5970+98.8470,117.6290+98.8330,117.6680+98.8060,117.6840+98.7650,117.6920+98.6830,117.6760+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 98.9560,117.7390+98.9970,117.7470+99.0790,117.7470+98.7920,117.9120+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.0340,116.1070+96.3840,117.6380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.0650,117.9600+99.2020,118.0380+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.0930,117.2580+99.2840,117.3690+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.1880,117.3130+98.9010,117.4790+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3240,117.8890+98.9290,117.9910+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3240,117.8890+99.1470,118.1170+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3520,117.4080+99.0650,117.5740+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3520,117.4080+99.1740,117.6360+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3660,120.9860+97.8120,120.0890+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3660,121.1030+99.3660,120.9860+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.3790,118.1880+99.3790,118.2830+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5500,120.8790+97.9960,119.9830+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5500,120.8790+99.3660,120.9860+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5500,120.9960+99.3660,121.1030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5700,117.5340+99.1740,117.6360+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5700,117.5340+99.2840,117.7000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5700,118.0310+99.5290,118.0230+99.4750,118.0230+99.4340,118.0310+99.3790,118.0460+99.3110,118.0860+99.2840,118.1170+99.2700,118.1720+99.3380,118.2280+99.3790,118.2350+99.4340,118.2350+99.4750,118.2280+99.5290,118.2120+99.5970,118.1720+99.6250,118.1410+99.6390,118.0860+Z" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5860,120.8220+98.0330,119.9250+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.5860,120.8220+99.5780,120.8490+99.5600,120.8720+99.5500,120.8790+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.6150,120.5700+98.0610,119.6730+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.6150,120.5700+99.5860,120.8220+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.6870,120.7800+99.6810,120.8140+99.6690,120.8490+99.6530,120.8830+99.6340,120.9160+99.6110,120.9450+99.5860,120.9700+99.5590,120.9910+99.5500,120.9960+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7100,120.5780+100.0660,120.7840+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7150,120.5280+99.6870,120.7800+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7520,120.3540+98.1980,119.4570+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7520,120.3540+99.7250,120.3720+99.6990,120.3960+99.6750,120.4240+99.6550,120.4560+99.6370,120.4900+99.6250,120.5250+99.6170,120.5590+99.6150,120.5700+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.7520,120.4710+99.7300,120.4920+99.7170,120.5190+99.7150,120.5280+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8020,117.7470+99.8160,117.6920+99.7480,117.6360+99.7070,117.6290+99.6520,117.6290+99.6110,117.6360+99.5560,117.6520+99.4880,117.6920+99.4610,117.7230+99.4470,117.7790+99.5160,117.8340+99.5560,117.8410+99.6110,117.8410+99.6520,117.8340+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8020,118.1640+99.5160,118.3300+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8020,118.1640+99.8980,118.2200+99.9250,118.2510+99.9250,118.2830+99.8840,118.3380+99.8160,118.3770+99.7610,118.3930+99.7200,118.4010+99.6660,118.4010+99.6110,118.3850+99.5160,118.3300+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8810,120.3370+100.0660,120.4440+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8810,120.3370+99.8840,120.3080+99.8860,120.2790+99.8870,120.2760+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8870,120.2760+99.7520,120.3540+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8870,120.2760+99.8160,120.2350+99.7450,120.1940+99.6750,120.1540+99.6040,120.1130+99.5330,120.0720+99.4630,120.0310+99.3920,119.9900+99.3220,119.9500+99.2510,119.9090+99.1800,119.8680+99.1100,119.8270+99.0390,119.7870+98.9680,119.7460+98.8980,119.7050+98.8270,119.6640+98.7570,119.6230+98.6860,119.5830+98.6150,119.5420+98.5450,119.5010+98.4740,119.4600+98.4040,119.4200+98.3330,119.3790+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8870,120.3930+99.7520,120.4710+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 99.8870,120.3930+99.8840,120.3650+99.8810,120.3370+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0480,118.3060+99.8700,118.5350+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,119.7640+102.7160,118.2330+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,120.4440+102.8270,118.8490+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,120.4440+100.0660,120.4130+100.0660,120.3820+100.0660,120.3510+100.0660,120.3200+100.0660,120.2890+100.0660,120.2580+100.0660,120.2270+100.0660,120.1960+100.0660,120.1650+100.0660,120.1340+100.0660,120.1030+100.0660,120.0730+100.0660,120.0420+100.0660,120.0110+100.0660,119.9800+100.0660,119.9490+100.0660,119.9180+100.0660,119.8870+100.0660,119.8560+100.0660,119.8250+100.0660,119.7940+100.0660,119.7640+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,120.7840+102.7530,119.2320+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.0660,120.7840+100.0660,120.7530+100.0660,120.7220+100.0660,120.6910+100.0660,120.6600+100.0660,120.6290+100.0660,120.5980+100.0660,120.5670+100.0660,120.5360+100.0660,120.5050+100.0660,120.4750+100.0660,120.4440+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.1020,117.8890+100.1020,117.8570+100.0750,117.8260+100.0200,117.7940+99.9660,117.7790+99.9110,117.7790+99.8840,117.7940+99.8700,117.8340+99.9390,117.9200+99.9520,117.9600+99.8980,118.0070+99.8430,118.0070+99.7880,117.9910+99.7340,117.9600+99.7070,117.9280+99.7070,117.8970+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.2120,117.9670+100.2520,117.9750+100.3340,117.9750+100.0480,118.1410+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.2660,118.4320+99.8700,118.5350+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.2800,118.6450+100.3480,118.6840+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.4570,118.6210+100.4710,118.5660+100.4030,118.5110+100.3620,118.5030+100.3070,118.5030+100.2660,118.5110+100.2120,118.5270+100.1430,118.5660+100.1160,118.5980+100.1020,118.6530+100.1710,118.7080+100.2120,118.7160+100.2660,118.7160+100.3070,118.7080+100.3480,118.6840+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.4850,118.1250+100.5260,118.1330+100.6080,118.1330+100.3210,118.2980+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.5800,118.7710+100.5260,118.9130+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.6210,118.6370+100.3340,118.8030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.6210,118.6370+100.7440,118.7080+100.7710,118.7400+100.7580,118.7790+100.7300,118.7950+100.6890,118.8030+100.6080,118.7870+100.4850,118.7160+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 100.7160,118.2750+100.7710,118.2590+100.8390,118.2670+100.8940,118.2980+100.9080,118.3380+100.8670,118.3770+100.8260,118.3850+100.7580,118.3930+100.4850,118.3930+100.6760,118.5030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 101.0720,118.4010+101.2220,118.4870+101.0300,118.5030+101.0720,118.5270+101.0850,118.5660+101.0580,118.5980+101.0300,118.6140+100.9760,118.6290+100.9210,118.6290+100.8670,118.6140+100.8260,118.5900+100.7980,118.5580+100.8120,118.5190+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.7160,118.2330+99.0340,116.1070+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.7530,119.2320+102.7600,119.1970+102.7660,119.1630+102.7730,119.1280+102.7800,119.0930+102.7860,119.0580+102.7930,119.0230+102.8000,118.9890+102.8070,118.9540+102.8130,118.9190+102.8200,118.8840+102.8270,118.8490+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.7720,118.5440+102.8700,118.6000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.7830,118.6040+102.8090,118.5950+102.8380,118.5910+102.8670,118.5990+102.8700,118.6000+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8060,118.7330+102.8080,118.7420+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8080,118.7420+102.8070,118.7420+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8080,118.7420+102.8120,118.7650+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8240,118.8620+102.8370,118.9610+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8270,118.8490+102.8220,118.8210+102.8170,118.7930+102.8120,118.7650+102.8070,118.7370+102.8010,118.7090+102.7970,118.6810+102.7920,118.6530+102.7860,118.6250+102.7810,118.5970+102.7760,118.5690+102.7720,118.5410+102.7660,118.5130+102.7610,118.4850+102.7560,118.4570+102.7510,118.4290+102.7460,118.4010+102.7410,118.3730+102.7360,118.3450+102.7310,118.3170+102.7260,118.2890+102.7210,118.2610+102.7160,118.2330+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8370,118.9610+102.8080,118.9450+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8370,118.9610+102.8440,118.9890+102.8580,119.0140+102.8760,119.0290+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8700,118.6000+102.8920,118.6210+102.9050,118.6480+102.9090,118.6680+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8760,119.0290+102.8010,118.9860+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.8760,119.0290+102.9030,119.0380+102.9350,119.0350+102.9640,119.0250+102.9740,119.0190+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9090,118.6680+102.9380,118.8870+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9210,118.7590+103.0070,118.7090+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9370,118.8810+102.9740,118.9030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9380,118.8870+102.9480,118.9050+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9480,118.9050+102.9740,118.9030+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9740,118.9030+103.1580,118.7960+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 102.9740,119.0190+103.1580,118.9130+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 103.0070,118.7090+103.1580,118.7960+" /> +<path style="fill:none; +stroke:#4a5568; stroke-width:0.0847; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;fill:none"+d="M 103.1580,118.7960+103.1580,118.9130+" /> +</g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="83.2400" y="100.9210"+textLength="7.5620" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="start" opacity="0" stroke-opacity="0">Primary side</text>+<g class="stroked-text">+<path d="M83.5216 100.8845+L83.5216 100.1225+" />+<path d="M83.5216 100.1225+L83.8119 100.1225+" />+<path d="M83.8119 100.1225+L83.8844 100.1588+" />+<path d="M83.8844 100.1588+L83.9207 100.1951+" />+<path d="M83.9207 100.1951+L83.9570 100.2677+" />+<path d="M83.9570 100.2677+L83.9570 100.3765+" />+<path d="M83.9570 100.3765+L83.9207 100.4491+" />+<path d="M83.9207 100.4491+L83.8844 100.4854+" />+<path d="M83.8844 100.4854+L83.8119 100.5217+" />+<path d="M83.8119 100.5217+L83.5216 100.5217+" />+<path d="M84.2836 100.8845+L84.2836 100.3765+" />+<path d="M84.2836 100.5217+L84.3199 100.4491+" />+<path d="M84.3199 100.4491+L84.3562 100.4128+" />+<path d="M84.3562 100.4128+L84.4287 100.3765+" />+<path d="M84.4287 100.3765+L84.5013 100.3765+" />+<path d="M84.7553 100.8845+L84.7553 100.3765+" />+<path d="M84.7553 100.1225+L84.7190 100.1588+" />+<path d="M84.7190 100.1588+L84.7553 100.1951+" />+<path d="M84.7553 100.1951+L84.7916 100.1588+" />+<path d="M84.7916 100.1588+L84.7553 100.1225+" />+<path d="M84.7553 100.1225+L84.7553 100.1951+" />+<path d="M85.1182 100.8845+L85.1182 100.3765+" />+<path d="M85.1182 100.4491+L85.1545 100.4128+" />+<path d="M85.1545 100.4128+L85.2270 100.3765+" />+<path d="M85.2270 100.3765+L85.3359 100.3765+" />+<path d="M85.3359 100.3765+L85.4085 100.4128+" />+<path d="M85.4085 100.4128+L85.4448 100.4854+" />+<path d="M85.4448 100.4854+L85.4448 100.8845+" />+<path d="M85.4448 100.4854+L85.4810 100.4128+" />+<path d="M85.4810 100.4128+L85.5536 100.3765+" />+<path d="M85.5536 100.3765+L85.6625 100.3765+" />+<path d="M85.6625 100.3765+L85.7350 100.4128+" />+<path d="M85.7350 100.4128+L85.7713 100.4854+" />+<path d="M85.7713 100.4854+L85.7713 100.8845+" />+<path d="M86.4608 100.8845+L86.4608 100.4854+" />+<path d="M86.4608 100.4854+L86.4245 100.4128+" />+<path d="M86.4245 100.4128+L86.3519 100.3765+" />+<path d="M86.3519 100.3765+L86.2068 100.3765+" />+<path d="M86.2068 100.3765+L86.1342 100.4128+" />+<path d="M86.4608 100.8483+L86.3882 100.8845+" />+<path d="M86.3882 100.8845+L86.2068 100.8845+" />+<path d="M86.2068 100.8845+L86.1342 100.8483+" />+<path d="M86.1342 100.8483+L86.0979 100.7757+" />+<path d="M86.0979 100.7757+L86.0979 100.7031+" />+<path d="M86.0979 100.7031+L86.1342 100.6305+" />+<path d="M86.1342 100.6305+L86.2068 100.5943+" />+<path d="M86.2068 100.5943+L86.3882 100.5943+" />+<path d="M86.3882 100.5943+L86.4608 100.5580+" />+<path d="M86.8236 100.8845+L86.8236 100.3765+" />+<path d="M86.8236 100.5217+L86.8599 100.4491+" />+<path d="M86.8599 100.4491+L86.8962 100.4128+" />+<path d="M86.8962 100.4128+L86.9687 100.3765+" />+<path d="M86.9687 100.3765+L87.0413 100.3765+" />+<path d="M87.2227 100.3765+L87.4041 100.8845+" />+<path d="M87.5856 100.3765+L87.4041 100.8845+" />+<path d="M87.4041 100.8845+L87.3316 101.0660+" />+<path d="M87.3316 101.0660+L87.2953 101.1023+" />+<path d="M87.2953 101.1023+L87.2227 101.1385+" />+<path d="M88.4202 100.8483+L88.4928 100.8845+" />+<path d="M88.4928 100.8845+L88.6379 100.8845+" />+<path d="M88.6379 100.8845+L88.7105 100.8483+" />+<path d="M88.7105 100.8483+L88.7468 100.7757+" />+<path d="M88.7468 100.7757+L88.7468 100.7394+" />+<path d="M88.7468 100.7394+L88.7105 100.6668+" />+<path d="M88.7105 100.6668+L88.6379 100.6305+" />+<path d="M88.6379 100.6305+L88.5291 100.6305+" />+<path d="M88.5291 100.6305+L88.4565 100.5943+" />+<path d="M88.4565 100.5943+L88.4202 100.5217+" />+<path d="M88.4202 100.5217+L88.4202 100.4854+" />+<path d="M88.4202 100.4854+L88.4565 100.4128+" />+<path d="M88.4565 100.4128+L88.5291 100.3765+" />+<path d="M88.5291 100.3765+L88.6379 100.3765+" />+<path d="M88.6379 100.3765+L88.7105 100.4128+" />+<path d="M89.0734 100.8845+L89.0734 100.3765+" />+<path d="M89.0734 100.1225+L89.0371 100.1588+" />+<path d="M89.0371 100.1588+L89.0734 100.1951+" />+<path d="M89.0734 100.1951+L89.1097 100.1588+" />+<path d="M89.1097 100.1588+L89.0734 100.1225+" />+<path d="M89.0734 100.1225+L89.0734 100.1951+" />+<path d="M89.7629 100.8845+L89.7629 100.1225+" />+<path d="M89.7629 100.8483+L89.6903 100.8845+" />+<path d="M89.6903 100.8845+L89.5451 100.8845+" />+<path d="M89.5451 100.8845+L89.4726 100.8483+" />+<path d="M89.4726 100.8483+L89.4363 100.8120+" />+<path d="M89.4363 100.8120+L89.4000 100.7394+" />+<path d="M89.4000 100.7394+L89.4000 100.5217+" />+<path d="M89.4000 100.5217+L89.4363 100.4491+" />+<path d="M89.4363 100.4491+L89.4726 100.4128+" />+<path d="M89.4726 100.4128+L89.5451 100.3765+" />+<path d="M89.5451 100.3765+L89.6903 100.3765+" />+<path d="M89.6903 100.3765+L89.7629 100.4128+" />+<path d="M90.4160 100.8483+L90.3434 100.8845+" />+<path d="M90.3434 100.8845+L90.1983 100.8845+" />+<path d="M90.1983 100.8845+L90.1257 100.8483+" />+<path d="M90.1257 100.8483+L90.0894 100.7757+" />+<path d="M90.0894 100.7757+L90.0894 100.4854+" />+<path d="M90.0894 100.4854+L90.1257 100.4128+" />+<path d="M90.1257 100.4128+L90.1983 100.3765+" />+<path d="M90.1983 100.3765+L90.3434 100.3765+" />+<path d="M90.3434 100.3765+L90.4160 100.4128+" />+<path d="M90.4160 100.4128+L90.4523 100.4854+" />+<path d="M90.4523 100.4854+L90.4523 100.5580+" />+<path d="M90.4523 100.5580+L90.0894 100.6305+" />+</g><text x="116.7600" y="100.9210"+textLength="4.0784" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">Supply</text>+<g class="stroked-text">+<path d="M113.0313 100.8483+L113.1402 100.8845+" />+<path d="M113.1402 100.8845+L113.3216 100.8845+" />+<path d="M113.3216 100.8845+L113.3942 100.8483+" />+<path d="M113.3942 100.8483+L113.4304 100.8120+" />+<path d="M113.4304 100.8120+L113.4667 100.7394+" />+<path d="M113.4667 100.7394+L113.4667 100.6668+" />+<path d="M113.4667 100.6668+L113.4304 100.5943+" />+<path d="M113.4304 100.5943+L113.3942 100.5580+" />+<path d="M113.3942 100.5580+L113.3216 100.5217+" />+<path d="M113.3216 100.5217+L113.1764 100.4854+" />+<path d="M113.1764 100.4854+L113.1039 100.4491+" />+<path d="M113.1039 100.4491+L113.0676 100.4128+" />+<path d="M113.0676 100.4128+L113.0313 100.3403+" />+<path d="M113.0313 100.3403+L113.0313 100.2677+" />+<path d="M113.0313 100.2677+L113.0676 100.1951+" />+<path d="M113.0676 100.1951+L113.1039 100.1588+" />+<path d="M113.1039 100.1588+L113.1764 100.1225+" />+<path d="M113.1764 100.1225+L113.3579 100.1225+" />+<path d="M113.3579 100.1225+L113.4667 100.1588+" />+<path d="M114.1199 100.3765+L114.1199 100.8845+" />+<path d="M113.7933 100.3765+L113.7933 100.7757+" />+<path d="M113.7933 100.7757+L113.8296 100.8483+" />+<path d="M113.8296 100.8483+L113.9021 100.8845+" />+<path d="M113.9021 100.8845+L114.0110 100.8845+" />+<path d="M114.0110 100.8845+L114.0836 100.8483+" />+<path d="M114.0836 100.8483+L114.1199 100.8120+" />+<path d="M114.4827 100.3765+L114.4827 101.1385+" />+<path d="M114.4827 100.4128+L114.5553 100.3765+" />+<path d="M114.5553 100.3765+L114.7004 100.3765+" />+<path d="M114.7004 100.3765+L114.7730 100.4128+" />+<path d="M114.7730 100.4128+L114.8093 100.4491+" />+<path d="M114.8093 100.4491+L114.8455 100.5217+" />+<path d="M114.8455 100.5217+L114.8455 100.7394+" />+<path d="M114.8455 100.7394+L114.8093 100.8120+" />+<path d="M114.8093 100.8120+L114.7730 100.8483+" />+<path d="M114.7730 100.8483+L114.7004 100.8845+" />+<path d="M114.7004 100.8845+L114.5553 100.8845+" />+<path d="M114.5553 100.8845+L114.4827 100.8483+" />+<path d="M115.1721 100.3765+L115.1721 101.1385+" />+<path d="M115.1721 100.4128+L115.2447 100.3765+" />+<path d="M115.2447 100.3765+L115.3898 100.3765+" />+<path d="M115.3898 100.3765+L115.4624 100.4128+" />+<path d="M115.4624 100.4128+L115.4987 100.4491+" />+<path d="M115.4987 100.4491+L115.5349 100.5217+" />+<path d="M115.5349 100.5217+L115.5349 100.7394+" />+<path d="M115.5349 100.7394+L115.4987 100.8120+" />+<path d="M115.4987 100.8120+L115.4624 100.8483+" />+<path d="M115.4624 100.8483+L115.3898 100.8845+" />+<path d="M115.3898 100.8845+L115.2447 100.8845+" />+<path d="M115.2447 100.8845+L115.1721 100.8483+" />+<path d="M115.9703 100.8845+L115.8978 100.8483+" />+<path d="M115.8978 100.8483+L115.8615 100.7757+" />+<path d="M115.8615 100.7757+L115.8615 100.1225+" />+<path d="M116.1880 100.3765+L116.3694 100.8845+" />+<path d="M116.5509 100.3765+L116.3694 100.8845+" />+<path d="M116.3694 100.8845+L116.2969 101.0660+" />+<path d="M116.2969 101.0660+L116.2606 101.1023+" />+<path d="M116.2606 101.1023+L116.1880 101.1385+" />+</g><text x="116.7600" y="111.0810"+textLength="8.3236" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">Analog output</text>+<g class="stroked-text">+<path d="M108.7861 110.8268+L109.1490 110.8268+" />+<path d="M108.7135 111.0445+L108.9675 110.2825+" />+<path d="M108.9675 110.2825+L109.2215 111.0445+" />+<path d="M109.4755 110.5365+L109.4755 111.0445+" />+<path d="M109.4755 110.6091+L109.5118 110.5728+" />+<path d="M109.5118 110.5728+L109.5843 110.5365+" />+<path d="M109.5843 110.5365+L109.6932 110.5365+" />+<path d="M109.6932 110.5365+L109.7658 110.5728+" />+<path d="M109.7658 110.5728+L109.8021 110.6454+" />+<path d="M109.8021 110.6454+L109.8021 111.0445+" />+<path d="M110.4915 111.0445+L110.4915 110.6454+" />+<path d="M110.4915 110.6454+L110.4552 110.5728+" />+<path d="M110.4552 110.5728+L110.3826 110.5365+" />+<path d="M110.3826 110.5365+L110.2375 110.5365+" />+<path d="M110.2375 110.5365+L110.1649 110.5728+" />+<path d="M110.4915 111.0083+L110.4189 111.0445+" />+<path d="M110.4189 111.0445+L110.2375 111.0445+" />+<path d="M110.2375 111.0445+L110.1649 111.0083+" />+<path d="M110.1649 111.0083+L110.1286 110.9357+" />+<path d="M110.1286 110.9357+L110.1286 110.8631+" />+<path d="M110.1286 110.8631+L110.1649 110.7905+" />+<path d="M110.1649 110.7905+L110.2375 110.7543+" />+<path d="M110.2375 110.7543+L110.4189 110.7543+" />+<path d="M110.4189 110.7543+L110.4915 110.7180+" />+<path d="M110.9631 111.0445+L110.8906 111.0083+" />+<path d="M110.8906 111.0083+L110.8543 110.9357+" />+<path d="M110.8543 110.9357+L110.8543 110.2825+" />+<path d="M111.3622 111.0445+L111.2897 111.0083+" />+<path d="M111.2897 111.0083+L111.2534 110.9720+" />+<path d="M111.2534 110.9720+L111.2171 110.8994+" />+<path d="M111.2171 110.8994+L111.2171 110.6817+" />+<path d="M111.2171 110.6817+L111.2534 110.6091+" />+<path d="M111.2534 110.6091+L111.2897 110.5728+" />+<path d="M111.2897 110.5728+L111.3622 110.5365+" />+<path d="M111.3622 110.5365+L111.4711 110.5365+" />+<path d="M111.4711 110.5365+L111.5437 110.5728+" />+<path d="M111.5437 110.5728+L111.5800 110.6091+" />+<path d="M111.5800 110.6091+L111.6162 110.6817+" />+<path d="M111.6162 110.6817+L111.6162 110.8994+" />+<path d="M111.6162 110.8994+L111.5800 110.9720+" />+<path d="M111.5800 110.9720+L111.5437 111.0083+" />+<path d="M111.5437 111.0083+L111.4711 111.0445+" />+<path d="M111.4711 111.0445+L111.3622 111.0445+" />+<path d="M112.2694 110.5365+L112.2694 111.1534+" />+<path d="M112.2694 111.1534+L112.2331 111.2260+" />+<path d="M112.2331 111.2260+L112.1968 111.2623+" />+<path d="M112.1968 111.2623+L112.1242 111.2985+" />+<path d="M112.1242 111.2985+L112.0154 111.2985+" />+<path d="M112.0154 111.2985+L111.9428 111.2623+" />+<path d="M112.2694 111.0083+L112.1968 111.0445+" />+<path d="M112.1968 111.0445+L112.0516 111.0445+" />+<path d="M112.0516 111.0445+L111.9791 111.0083+" />+<path d="M111.9791 111.0083+L111.9428 110.9720+" />+<path d="M111.9428 110.9720+L111.9065 110.8994+" />+<path d="M111.9065 110.8994+L111.9065 110.6817+" />+<path d="M111.9065 110.6817+L111.9428 110.6091+" />+<path d="M111.9428 110.6091+L111.9791 110.5728+" />+<path d="M111.9791 110.5728+L112.0516 110.5365+" />+<path d="M112.0516 110.5365+L112.1968 110.5365+" />+<path d="M112.1968 110.5365+L112.2694 110.5728+" />+<path d="M113.3216 111.0445+L113.2491 111.0083+" />+<path d="M113.2491 111.0083+L113.2128 110.9720+" />+<path d="M113.2128 110.9720+L113.1765 110.8994+" />+<path d="M113.1765 110.8994+L113.1765 110.6817+" />+<path d="M113.1765 110.6817+L113.2128 110.6091+" />+<path d="M113.2128 110.6091+L113.2491 110.5728+" />+<path d="M113.2491 110.5728+L113.3216 110.5365+" />+<path d="M113.3216 110.5365+L113.4305 110.5365+" />+<path d="M113.4305 110.5365+L113.5031 110.5728+" />+<path d="M113.5031 110.5728+L113.5394 110.6091+" />+<path d="M113.5394 110.6091+L113.5756 110.6817+" />+<path d="M113.5756 110.6817+L113.5756 110.8994+" />+<path d="M113.5756 110.8994+L113.5394 110.9720+" />+<path d="M113.5394 110.9720+L113.5031 111.0083+" />+<path d="M113.5031 111.0083+L113.4305 111.0445+" />+<path d="M113.4305 111.0445+L113.3216 111.0445+" />+<path d="M114.2288 110.5365+L114.2288 111.0445+" />+<path d="M113.9022 110.5365+L113.9022 110.9357+" />+<path d="M113.9022 110.9357+L113.9385 111.0083+" />+<path d="M113.9385 111.0083+L114.0110 111.0445+" />+<path d="M114.0110 111.0445+L114.1199 111.0445+" />+<path d="M114.1199 111.0445+L114.1925 111.0083+" />+<path d="M114.1925 111.0083+L114.2288 110.9720+" />+<path d="M114.4827 110.5365+L114.7730 110.5365+" />+<path d="M114.5916 110.2825+L114.5916 110.9357+" />+<path d="M114.5916 110.9357+L114.6279 111.0083+" />+<path d="M114.6279 111.0083+L114.7004 111.0445+" />+<path d="M114.7004 111.0445+L114.7730 111.0445+" />+<path d="M115.0270 110.5365+L115.0270 111.2985+" />+<path d="M115.0270 110.5728+L115.0996 110.5365+" />+<path d="M115.0996 110.5365+L115.2447 110.5365+" />+<path d="M115.2447 110.5365+L115.3173 110.5728+" />+<path d="M115.3173 110.5728+L115.3536 110.6091+" />+<path d="M115.3536 110.6091+L115.3898 110.6817+" />+<path d="M115.3898 110.6817+L115.3898 110.8994+" />+<path d="M115.3898 110.8994+L115.3536 110.9720+" />+<path d="M115.3536 110.9720+L115.3173 111.0083+" />+<path d="M115.3173 111.0083+L115.2447 111.0445+" />+<path d="M115.2447 111.0445+L115.0996 111.0445+" />+<path d="M115.0996 111.0445+L115.0270 111.0083+" />+<path d="M116.0430 110.5365+L116.0430 111.0445+" />+<path d="M115.7164 110.5365+L115.7164 110.9357+" />+<path d="M115.7164 110.9357+L115.7527 111.0083+" />+<path d="M115.7527 111.0083+L115.8252 111.0445+" />+<path d="M115.8252 111.0445+L115.9341 111.0445+" />+<path d="M115.9341 111.0445+L116.0067 111.0083+" />+<path d="M116.0067 111.0083+L116.0430 110.9720+" />+<path d="M116.2969 110.5365+L116.5872 110.5365+" />+<path d="M116.4058 110.2825+L116.4058 110.9357+" />+<path d="M116.4058 110.9357+L116.4421 111.0083+" />+<path d="M116.4421 111.0083+L116.5146 111.0445+" />+<path d="M116.5146 111.0445+L116.5872 111.0445+" />+</g><text x="116.7600" y="121.2410"+textLength="6.8723" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">Overcurrent</text>+<g class="stroked-text">+<path d="M110.4188 120.4425+L110.5640 120.4425+" />+<path d="M110.5640 120.4425+L110.6365 120.4788+" />+<path d="M110.6365 120.4788+L110.7091 120.5514+" />+<path d="M110.7091 120.5514+L110.7454 120.6965+" />+<path d="M110.7454 120.6965+L110.7454 120.9505+" />+<path d="M110.7454 120.9505+L110.7091 121.0957+" />+<path d="M110.7091 121.0957+L110.6365 121.1683+" />+<path d="M110.6365 121.1683+L110.5640 121.2045+" />+<path d="M110.5640 121.2045+L110.4188 121.2045+" />+<path d="M110.4188 121.2045+L110.3463 121.1683+" />+<path d="M110.3463 121.1683+L110.2737 121.0957+" />+<path d="M110.2737 121.0957+L110.2374 120.9505+" />+<path d="M110.2374 120.9505+L110.2374 120.6965+" />+<path d="M110.2374 120.6965+L110.2737 120.5514+" />+<path d="M110.2737 120.5514+L110.3463 120.4788+" />+<path d="M110.3463 120.4788+L110.4188 120.4425+" />+<path d="M110.9994 120.6965+L111.1808 121.2045+" />+<path d="M111.1808 121.2045+L111.3623 120.6965+" />+<path d="M111.9429 121.1683+L111.8703 121.2045+" />+<path d="M111.8703 121.2045+L111.7252 121.2045+" />+<path d="M111.7252 121.2045+L111.6526 121.1683+" />+<path d="M111.6526 121.1683+L111.6163 121.0957+" />+<path d="M111.6163 121.0957+L111.6163 120.8054+" />+<path d="M111.6163 120.8054+L111.6526 120.7328+" />+<path d="M111.6526 120.7328+L111.7252 120.6965+" />+<path d="M111.7252 120.6965+L111.8703 120.6965+" />+<path d="M111.8703 120.6965+L111.9429 120.7328+" />+<path d="M111.9429 120.7328+L111.9792 120.8054+" />+<path d="M111.9792 120.8054+L111.9792 120.8780+" />+<path d="M111.9792 120.8780+L111.6163 120.9505+" />+<path d="M112.3057 121.2045+L112.3057 120.6965+" />+<path d="M112.3057 120.8417+L112.3420 120.7691+" />+<path d="M112.3420 120.7691+L112.3783 120.7328+" />+<path d="M112.3783 120.7328+L112.4508 120.6965+" />+<path d="M112.4508 120.6965+L112.5234 120.6965+" />+<path d="M113.1040 121.1683+L113.0314 121.2045+" />+<path d="M113.0314 121.2045+L112.8862 121.2045+" />+<path d="M112.8862 121.2045+L112.8137 121.1683+" />+<path d="M112.8137 121.1683+L112.7774 121.1320+" />+<path d="M112.7774 121.1320+L112.7411 121.0594+" />+<path d="M112.7411 121.0594+L112.7411 120.8417+" />+<path d="M112.7411 120.8417+L112.7774 120.7691+" />+<path d="M112.7774 120.7691+L112.8137 120.7328+" />+<path d="M112.8137 120.7328+L112.8862 120.6965+" />+<path d="M112.8862 120.6965+L113.0314 120.6965+" />+<path d="M113.0314 120.6965+L113.1040 120.7328+" />+<path d="M113.7571 120.6965+L113.7571 121.2045+" />+<path d="M113.4305 120.6965+L113.4305 121.0957+" />+<path d="M113.4305 121.0957+L113.4668 121.1683+" />+<path d="M113.4668 121.1683+L113.5393 121.2045+" />+<path d="M113.5393 121.2045+L113.6482 121.2045+" />+<path d="M113.6482 121.2045+L113.7208 121.1683+" />+<path d="M113.7208 121.1683+L113.7571 121.1320+" />+<path d="M114.1199 121.2045+L114.1199 120.6965+" />+<path d="M114.1199 120.8417+L114.1562 120.7691+" />+<path d="M114.1562 120.7691+L114.1925 120.7328+" />+<path d="M114.1925 120.7328+L114.2650 120.6965+" />+<path d="M114.2650 120.6965+L114.3376 120.6965+" />+<path d="M114.5916 121.2045+L114.5916 120.6965+" />+<path d="M114.5916 120.8417+L114.6279 120.7691+" />+<path d="M114.6279 120.7691+L114.6642 120.7328+" />+<path d="M114.6642 120.7328+L114.7367 120.6965+" />+<path d="M114.7367 120.6965+L114.8093 120.6965+" />+<path d="M115.3536 121.1683+L115.2810 121.2045+" />+<path d="M115.2810 121.2045+L115.1359 121.2045+" />+<path d="M115.1359 121.2045+L115.0633 121.1683+" />+<path d="M115.0633 121.1683+L115.0270 121.0957+" />+<path d="M115.0270 121.0957+L115.0270 120.8054+" />+<path d="M115.0270 120.8054+L115.0633 120.7328+" />+<path d="M115.0633 120.7328+L115.1359 120.6965+" />+<path d="M115.1359 120.6965+L115.2810 120.6965+" />+<path d="M115.2810 120.6965+L115.3536 120.7328+" />+<path d="M115.3536 120.7328+L115.3899 120.8054+" />+<path d="M115.3899 120.8054+L115.3899 120.8780+" />+<path d="M115.3899 120.8780+L115.0270 120.9505+" />+<path d="M115.7164 120.6965+L115.7164 121.2045+" />+<path d="M115.7164 120.7691+L115.7527 120.7328+" />+<path d="M115.7527 120.7328+L115.8252 120.6965+" />+<path d="M115.8252 120.6965+L115.9341 120.6965+" />+<path d="M115.9341 120.6965+L116.0067 120.7328+" />+<path d="M116.0067 120.7328+L116.0430 120.8054+" />+<path d="M116.0430 120.8054+L116.0430 121.2045+" />+<path d="M116.2969 120.6965+L116.5872 120.6965+" />+<path d="M116.4058 120.4425+L116.4058 121.0957+" />+<path d="M116.4058 121.0957+L116.4421 121.1683+" />+<path d="M116.4421 121.1683+L116.5146 121.2045+" />+<path d="M116.5146 121.2045+L116.5872 121.2045+" />+</g><text x="116.7600" y="136.4810"+textLength="5.3847" font-size="1.0160" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">Reserved</text>+<g class="stroked-text">+<path d="M112.1967 136.4445+L111.9427 136.0817+" />+<path d="M111.7613 136.4445+L111.7613 135.6825+" />+<path d="M111.7613 135.6825+L112.0516 135.6825+" />+<path d="M112.0516 135.6825+L112.1241 135.7188+" />+<path d="M112.1241 135.7188+L112.1604 135.7551+" />+<path d="M112.1604 135.7551+L112.1967 135.8277+" />+<path d="M112.1967 135.8277+L112.1967 135.9365+" />+<path d="M112.1967 135.9365+L112.1604 136.0091+" />+<path d="M112.1604 136.0091+L112.1241 136.0454+" />+<path d="M112.1241 136.0454+L112.0516 136.0817+" />+<path d="M112.0516 136.0817+L111.7613 136.0817+" />+<path d="M112.8136 136.4083+L112.7410 136.4445+" />+<path d="M112.7410 136.4445+L112.5959 136.4445+" />+<path d="M112.5959 136.4445+L112.5233 136.4083+" />+<path d="M112.5233 136.4083+L112.4870 136.3357+" />+<path d="M112.4870 136.3357+L112.4870 136.0454+" />+<path d="M112.4870 136.0454+L112.5233 135.9728+" />+<path d="M112.5233 135.9728+L112.5959 135.9365+" />+<path d="M112.5959 135.9365+L112.7410 135.9365+" />+<path d="M112.7410 135.9365+L112.8136 135.9728+" />+<path d="M112.8136 135.9728+L112.8499 136.0454+" />+<path d="M112.8499 136.0454+L112.8499 136.1180+" />+<path d="M112.8499 136.1180+L112.4870 136.1905+" />+<path d="M113.1401 136.4083+L113.2127 136.4445+" />+<path d="M113.2127 136.4445+L113.3578 136.4445+" />+<path d="M113.3578 136.4445+L113.4304 136.4083+" />+<path d="M113.4304 136.4083+L113.4667 136.3357+" />+<path d="M113.4667 136.3357+L113.4667 136.2994+" />+<path d="M113.4667 136.2994+L113.4304 136.2268+" />+<path d="M113.4304 136.2268+L113.3578 136.1905+" />+<path d="M113.3578 136.1905+L113.2490 136.1905+" />+<path d="M113.2490 136.1905+L113.1764 136.1543+" />+<path d="M113.1764 136.1543+L113.1401 136.0817+" />+<path d="M113.1401 136.0817+L113.1401 136.0454+" />+<path d="M113.1401 136.0454+L113.1764 135.9728+" />+<path d="M113.1764 135.9728+L113.2490 135.9365+" />+<path d="M113.2490 135.9365+L113.3578 135.9365+" />+<path d="M113.3578 135.9365+L113.4304 135.9728+" />+<path d="M114.0836 136.4083+L114.0110 136.4445+" />+<path d="M114.0110 136.4445+L113.8659 136.4445+" />+<path d="M113.8659 136.4445+L113.7933 136.4083+" />+<path d="M113.7933 136.4083+L113.7570 136.3357+" />+<path d="M113.7570 136.3357+L113.7570 136.0454+" />+<path d="M113.7570 136.0454+L113.7933 135.9728+" />+<path d="M113.7933 135.9728+L113.8659 135.9365+" />+<path d="M113.8659 135.9365+L114.0110 135.9365+" />+<path d="M114.0110 135.9365+L114.0836 135.9728+" />+<path d="M114.0836 135.9728+L114.1199 136.0454+" />+<path d="M114.1199 136.0454+L114.1199 136.1180+" />+<path d="M114.1199 136.1180+L113.7570 136.1905+" />+<path d="M114.4464 136.4445+L114.4464 135.9365+" />+<path d="M114.4464 136.0817+L114.4827 136.0091+" />+<path d="M114.4827 136.0091+L114.5190 135.9728+" />+<path d="M114.5190 135.9728+L114.5915 135.9365+" />+<path d="M114.5915 135.9365+L114.6641 135.9365+" />+<path d="M114.8455 135.9365+L115.0269 136.4445+" />+<path d="M115.0269 136.4445+L115.2084 135.9365+" />+<path d="M115.7890 136.4083+L115.7164 136.4445+" />+<path d="M115.7164 136.4445+L115.5713 136.4445+" />+<path d="M115.5713 136.4445+L115.4987 136.4083+" />+<path d="M115.4987 136.4083+L115.4624 136.3357+" />+<path d="M115.4624 136.3357+L115.4624 136.0454+" />+<path d="M115.4624 136.0454+L115.4987 135.9728+" />+<path d="M115.4987 135.9728+L115.5713 135.9365+" />+<path d="M115.5713 135.9365+L115.7164 135.9365+" />+<path d="M115.7164 135.9365+L115.7890 135.9728+" />+<path d="M115.7890 135.9728+L115.8253 136.0454+" />+<path d="M115.8253 136.0454+L115.8253 136.1180+" />+<path d="M115.8253 136.1180+L115.4624 136.1905+" />+<path d="M116.4784 136.4445+L116.4784 135.6825+" />+<path d="M116.4784 136.4083+L116.4058 136.4445+" />+<path d="M116.4058 136.4445+L116.2606 136.4445+" />+<path d="M116.2606 136.4445+L116.1881 136.4083+" />+<path d="M116.1881 136.4083+L116.1518 136.3720+" />+<path d="M116.1518 136.3720+L116.1155 136.2994+" />+<path d="M116.1155 136.2994+L116.1155 136.0817+" />+<path d="M116.1155 136.0817+L116.1518 136.0091+" />+<path d="M116.1518 136.0091+L116.1881 135.9728+" />+<path d="M116.1881 135.9728+L116.2606 135.9365+" />+<path d="M116.2606 135.9365+L116.4058 135.9365+" />+<path d="M116.4058 135.9365+L116.4784 135.9728+" />+</g><path d="M82.2200 102.5400+L79.6800 102.5400+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="83.2360" y="103.1750"+textLength="3.7109" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="start" opacity="0" stroke-opacity="0">IN+</text>+<g class="stroked-text">+<path d="M83.6385 103.1195+L83.6385 101.8495+" />+<path d="M84.2433 103.1195+L84.2433 101.8495+" />+<path d="M84.2433 101.8495+L84.9690 103.1195+" />+<path d="M84.9690 103.1195+L84.9690 101.8495+" />+<path d="M85.5738 102.6357+L86.5415 102.6357+" />+<path d="M86.0576 103.1195+L86.0576 102.1519+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="80.9500" y="102.2860"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">1</text>+<g class="stroked-text">+<path d="M81.3129 102.1225+L80.5872 102.1225+" />+<path d="M80.9500 102.1225+L80.9500 100.8525+" />+<path d="M80.9500 100.8525+L80.8291 101.0340+" />+<path d="M80.8291 101.0340+L80.7081 101.1549+" />+<path d="M80.7081 101.1549+L80.5872 101.2154+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M82.2200 105.0800+L79.6800 105.0800+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="83.2360" y="105.7150"+textLength="3.7109" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="start" opacity="0" stroke-opacity="0">IN-</text>+<g class="stroked-text">+<path d="M83.6385 105.6595+L83.6385 104.3895+" />+<path d="M84.2433 105.6595+L84.2433 104.3895+" />+<path d="M84.2433 104.3895+L84.9690 105.6595+" />+<path d="M84.9690 105.6595+L84.9690 104.3895+" />+<path d="M85.5738 105.1757+L86.5415 105.1757+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="80.9500" y="104.8260"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">2</text>+<g class="stroked-text">+<path d="M80.5872 103.5135+L80.6476 103.4530+" />+<path d="M80.6476 103.4530+L80.7686 103.3925+" />+<path d="M80.7686 103.3925+L81.0710 103.3925+" />+<path d="M81.0710 103.3925+L81.1919 103.4530+" />+<path d="M81.1919 103.4530+L81.2524 103.5135+" />+<path d="M81.2524 103.5135+L81.3129 103.6344+" />+<path d="M81.3129 103.6344+L81.3129 103.7554+" />+<path d="M81.3129 103.7554+L81.2524 103.9368+" />+<path d="M81.2524 103.9368+L80.5267 104.6625+" />+<path d="M80.5267 104.6625+L81.3129 104.6625+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 105.0800+L120.3200 105.0800+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="105.7150"+textLength="4.0737" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">GND</text>+<g class="stroked-text">+<path d="M113.7609 104.4500+L113.6399 104.3895+" />+<path d="M113.6399 104.3895+L113.4585 104.3895+" />+<path d="M113.4585 104.3895+L113.2771 104.4500+" />+<path d="M113.2771 104.4500+L113.1561 104.5710+" />+<path d="M113.1561 104.5710+L113.0956 104.6919+" />+<path d="M113.0956 104.6919+L113.0352 104.9338+" />+<path d="M113.0352 104.9338+L113.0352 105.1152+" />+<path d="M113.0352 105.1152+L113.0956 105.3571+" />+<path d="M113.0956 105.3571+L113.1561 105.4781+" />+<path d="M113.1561 105.4781+L113.2771 105.5991+" />+<path d="M113.2771 105.5991+L113.4585 105.6595+" />+<path d="M113.4585 105.6595+L113.5794 105.6595+" />+<path d="M113.5794 105.6595+L113.7609 105.5991+" />+<path d="M113.7609 105.5991+L113.8213 105.5386+" />+<path d="M113.8213 105.5386+L113.8213 105.1152+" />+<path d="M113.8213 105.1152+L113.5794 105.1152+" />+<path d="M114.3656 105.6595+L114.3656 104.3895+" />+<path d="M114.3656 104.3895+L115.0913 105.6595+" />+<path d="M115.0913 105.6595+L115.0913 104.3895+" />+<path d="M115.6961 105.6595+L115.6961 104.3895+" />+<path d="M115.6961 104.3895+L115.9985 104.3895+" />+<path d="M115.9985 104.3895+L116.1799 104.4500+" />+<path d="M116.1799 104.4500+L116.3009 104.5710+" />+<path d="M116.3009 104.5710+L116.3614 104.6919+" />+<path d="M116.3614 104.6919+L116.4218 104.9338+" />+<path d="M116.4218 104.9338+L116.4218 105.1152+" />+<path d="M116.4218 105.1152+L116.3614 105.3571+" />+<path d="M116.3614 105.3571+L116.3009 105.4781+" />+<path d="M116.3009 105.4781+L116.1799 105.5991+" />+<path d="M116.1799 105.5991+L115.9985 105.6595+" />+<path d="M115.9985 105.6595+L115.6961 105.6595+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="104.8260"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">3</text>+<g class="stroked-text">+<path d="M118.6267 103.3925+L119.4129 103.3925+" />+<path d="M119.4129 103.3925+L118.9895 103.8763+" />+<path d="M118.9895 103.8763+L119.1710 103.8763+" />+<path d="M119.1710 103.8763+L119.2919 103.9368+" />+<path d="M119.2919 103.9368+L119.3524 103.9973+" />+<path d="M119.3524 103.9973+L119.4129 104.1182+" />+<path d="M119.4129 104.1182+L119.4129 104.4206+" />+<path d="M119.4129 104.4206+L119.3524 104.5416+" />+<path d="M119.3524 104.5416+L119.2919 104.6021+" />+<path d="M119.2919 104.6021+L119.1710 104.6625+" />+<path d="M119.1710 104.6625+L118.8081 104.6625+" />+<path d="M118.8081 104.6625+L118.6872 104.6021+" />+<path d="M118.6872 104.6021+L118.6267 104.5416+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 127.9400+L120.3200 127.9400+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="128.5750"+textLength="5.7065" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">ALERT</text>+<g class="stroked-text">+<path d="M111.4024 128.1567+L112.0071 128.1567+" />+<path d="M111.2814 128.5195+L111.7047 127.2495+" />+<path d="M111.7047 127.2495+L112.1281 128.5195+" />+<path d="M113.1562 128.5195+L112.5514 128.5195+" />+<path d="M112.5514 128.5195+L112.5514 127.2495+" />+<path d="M113.5795 127.8543+L114.0029 127.8543+" />+<path d="M114.1843 128.5195+L113.5795 128.5195+" />+<path d="M113.5795 128.5195+L113.5795 127.2495+" />+<path d="M113.5795 127.2495+L114.1843 127.2495+" />+<path d="M115.4542 128.5195+L115.0309 127.9148+" />+<path d="M114.7285 128.5195+L114.7285 127.2495+" />+<path d="M114.7285 127.2495+L115.2123 127.2495+" />+<path d="M115.2123 127.2495+L115.3333 127.3100+" />+<path d="M115.3333 127.3100+L115.3938 127.3705+" />+<path d="M115.3938 127.3705+L115.4542 127.4914+" />+<path d="M115.4542 127.4914+L115.4542 127.6729+" />+<path d="M115.4542 127.6729+L115.3938 127.7938+" />+<path d="M115.3938 127.7938+L115.3333 127.8543+" />+<path d="M115.3333 127.8543+L115.2123 127.9148+" />+<path d="M115.2123 127.9148+L114.7285 127.9148+" />+<path d="M115.8171 127.2495+L116.5428 127.2495+" />+<path d="M116.1800 128.5195+L116.1800 127.2495+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="127.6860"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">4</text>+<g class="stroked-text">+<path d="M119.2919 126.6759+L119.2919 127.5225+" />+<path d="M118.9895 126.1921+L118.6872 127.0992+" />+<path d="M118.6872 127.0992+L119.4733 127.0992+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 115.2400+L120.3200 115.2400+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="115.8750"+textLength="4.7994" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">VREF</text>+<g class="stroked-text">+<path d="M112.1885 114.5495+L112.6118 115.8195+" />+<path d="M112.6118 115.8195+L113.0352 114.5495+" />+<path d="M114.1842 115.8195+L113.7609 115.2148+" />+<path d="M113.4585 115.8195+L113.4585 114.5495+" />+<path d="M113.4585 114.5495+L113.9423 114.5495+" />+<path d="M113.9423 114.5495+L114.0633 114.6100+" />+<path d="M114.0633 114.6100+L114.1238 114.6705+" />+<path d="M114.1238 114.6705+L114.1842 114.7914+" />+<path d="M114.1842 114.7914+L114.1842 114.9729+" />+<path d="M114.1842 114.9729+L114.1238 115.0938+" />+<path d="M114.1238 115.0938+L114.0633 115.1543+" />+<path d="M114.0633 115.1543+L113.9423 115.2148+" />+<path d="M113.9423 115.2148+L113.4585 115.2148+" />+<path d="M114.7285 115.1543+L115.1519 115.1543+" />+<path d="M115.3333 115.8195+L114.7285 115.8195+" />+<path d="M114.7285 115.8195+L114.7285 114.5495+" />+<path d="M114.7285 114.5495+L115.3333 114.5495+" />+<path d="M116.3009 115.1543+L115.8775 115.1543+" />+<path d="M115.8775 115.8195+L115.8775 114.5495+" />+<path d="M115.8775 114.5495+L116.4823 114.5495+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="114.9860"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">5</text>+<g class="stroked-text">+<path d="M119.3524 113.5525+L118.7476 113.5525+" />+<path d="M118.7476 113.5525+L118.6872 114.1573+" />+<path d="M118.6872 114.1573+L118.7476 114.0968+" />+<path d="M118.7476 114.0968+L118.8686 114.0363+" />+<path d="M118.8686 114.0363+L119.1710 114.0363+" />+<path d="M119.1710 114.0363+L119.2919 114.0968+" />+<path d="M119.2919 114.0968+L119.3524 114.1573+" />+<path d="M119.3524 114.1573+L119.4129 114.2782+" />+<path d="M119.4129 114.2782+L119.4129 114.5806+" />+<path d="M119.4129 114.5806+L119.3524 114.7016+" />+<path d="M119.3524 114.7016+L119.2919 114.7621+" />+<path d="M119.2919 114.7621+L119.1710 114.8225+" />+<path d="M119.1710 114.8225+L118.8686 114.8225+" />+<path d="M118.8686 114.8225+L118.7476 114.7621+" />+<path d="M118.7476 114.7621+L118.6872 114.7016+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 112.7000+L120.3200 112.7000+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="113.3350"+textLength="4.9204" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">VOUT</text>+<g class="stroked-text">+<path d="M112.0675 112.0095+L112.4908 113.2795+" />+<path d="M112.4908 113.2795+L112.9142 112.0095+" />+<path d="M113.5794 112.0095+L113.8213 112.0095+" />+<path d="M113.8213 112.0095+L113.9423 112.0700+" />+<path d="M113.9423 112.0700+L114.0632 112.1910+" />+<path d="M114.0632 112.1910+L114.1237 112.4329+" />+<path d="M114.1237 112.4329+L114.1237 112.8562+" />+<path d="M114.1237 112.8562+L114.0632 113.0981+" />+<path d="M114.0632 113.0981+L113.9423 113.2191+" />+<path d="M113.9423 113.2191+L113.8213 113.2795+" />+<path d="M113.8213 113.2795+L113.5794 113.2795+" />+<path d="M113.5794 113.2795+L113.4585 113.2191+" />+<path d="M113.4585 113.2191+L113.3375 113.0981+" />+<path d="M113.3375 113.0981+L113.2771 112.8562+" />+<path d="M113.2771 112.8562+L113.2771 112.4329+" />+<path d="M113.2771 112.4329+L113.3375 112.1910+" />+<path d="M113.3375 112.1910+L113.4585 112.0700+" />+<path d="M113.4585 112.0700+L113.5794 112.0095+" />+<path d="M114.6680 112.0095+L114.6680 113.0376+" />+<path d="M114.6680 113.0376+L114.7285 113.1586+" />+<path d="M114.7285 113.1586+L114.7890 113.2191+" />+<path d="M114.7890 113.2191+L114.9099 113.2795+" />+<path d="M114.9099 113.2795+L115.1518 113.2795+" />+<path d="M115.1518 113.2795+L115.2728 113.2191+" />+<path d="M115.2728 113.2191+L115.3333 113.1586+" />+<path d="M115.3333 113.1586+L115.3937 113.0376+" />+<path d="M115.3937 113.0376+L115.3937 112.0095+" />+<path d="M115.8171 112.0095+L116.5428 112.0095+" />+<path d="M116.1800 113.2795+L116.1800 112.0095+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="112.4460"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">6</text>+<g class="stroked-text">+<path d="M119.2919 111.0125+L119.0500 111.0125+" />+<path d="M119.0500 111.0125+L118.9291 111.0730+" />+<path d="M118.9291 111.0730+L118.8686 111.1335+" />+<path d="M118.8686 111.1335+L118.7476 111.3149+" />+<path d="M118.7476 111.3149+L118.6872 111.5568+" />+<path d="M118.6872 111.5568+L118.6872 112.0406+" />+<path d="M118.6872 112.0406+L118.7476 112.1616+" />+<path d="M118.7476 112.1616+L118.8081 112.2221+" />+<path d="M118.8081 112.2221+L118.9291 112.2825+" />+<path d="M118.9291 112.2825+L119.1710 112.2825+" />+<path d="M119.1710 112.2825+L119.2919 112.2221+" />+<path d="M119.2919 112.2221+L119.3524 112.1616+" />+<path d="M119.3524 112.1616+L119.4129 112.0406+" />+<path d="M119.4129 112.0406+L119.4129 111.7382+" />+<path d="M119.4129 111.7382+L119.3524 111.6173+" />+<path d="M119.3524 111.6173+L119.2919 111.5568+" />+<path d="M119.2919 111.5568+L119.1710 111.4963+" />+<path d="M119.1710 111.4963+L118.9291 111.4963+" />+<path d="M118.9291 111.4963+L118.8081 111.5568+" />+<path d="M118.8081 111.5568+L118.7476 111.6173+" />+<path d="M118.7476 111.6173+L118.6872 111.7382+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 125.4000+L120.3200 125.4000+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="126.0350"+textLength="2.8037" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">OC</text>+<g class="stroked-text">+<path d="M114.6075 124.7095+L114.8494 124.7095+" />+<path d="M114.8494 124.7095+L114.9704 124.7700+" />+<path d="M114.9704 124.7700+L115.0913 124.8910+" />+<path d="M115.0913 124.8910+L115.1518 125.1329+" />+<path d="M115.1518 125.1329+L115.1518 125.5562+" />+<path d="M115.1518 125.5562+L115.0913 125.7981+" />+<path d="M115.0913 125.7981+L114.9704 125.9191+" />+<path d="M114.9704 125.9191+L114.8494 125.9795+" />+<path d="M114.8494 125.9795+L114.6075 125.9795+" />+<path d="M114.6075 125.9795+L114.4866 125.9191+" />+<path d="M114.4866 125.9191+L114.3656 125.7981+" />+<path d="M114.3656 125.7981+L114.3052 125.5562+" />+<path d="M114.3052 125.5562+L114.3052 125.1329+" />+<path d="M114.3052 125.1329+L114.3656 124.8910+" />+<path d="M114.3656 124.8910+L114.4866 124.7700+" />+<path d="M114.4866 124.7700+L114.6075 124.7095+" />+<path d="M116.4218 125.8586+L116.3614 125.9191+" />+<path d="M116.3614 125.9191+L116.1799 125.9795+" />+<path d="M116.1799 125.9795+L116.0590 125.9795+" />+<path d="M116.0590 125.9795+L115.8776 125.9191+" />+<path d="M115.8776 125.9191+L115.7566 125.7981+" />+<path d="M115.7566 125.7981+L115.6961 125.6771+" />+<path d="M115.6961 125.6771+L115.6357 125.4352+" />+<path d="M115.6357 125.4352+L115.6357 125.2538+" />+<path d="M115.6357 125.2538+L115.6961 125.0119+" />+<path d="M115.6961 125.0119+L115.7566 124.8910+" />+<path d="M115.7566 124.8910+L115.8776 124.7700+" />+<path d="M115.8776 124.7700+L116.0590 124.7095+" />+<path d="M116.0590 124.7095+L116.1799 124.7095+" />+<path d="M116.1799 124.7095+L116.3614 124.7700+" />+<path d="M116.3614 124.7700+L116.4218 124.8305+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="125.1460"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">7</text>+<g class="stroked-text">+<path d="M118.6267 123.7125+L119.4733 123.7125+" />+<path d="M119.4733 123.7125+L118.9291 124.9825+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 102.5400+L120.3200 102.5400+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="103.1750"+textLength="2.5013" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">VS</text>+<g class="stroked-text">+<path d="M114.4866 101.8495+L114.9099 103.1195+" />+<path d="M114.9099 103.1195+L115.3333 101.8495+" />+<path d="M115.6962 103.0591+L115.8776 103.1195+" />+<path d="M115.8776 103.1195+L116.1800 103.1195+" />+<path d="M116.1800 103.1195+L116.3009 103.0591+" />+<path d="M116.3009 103.0591+L116.3614 102.9986+" />+<path d="M116.3614 102.9986+L116.4219 102.8776+" />+<path d="M116.4219 102.8776+L116.4219 102.7567+" />+<path d="M116.4219 102.7567+L116.3614 102.6357+" />+<path d="M116.3614 102.6357+L116.3009 102.5752+" />+<path d="M116.3009 102.5752+L116.1800 102.5148+" />+<path d="M116.1800 102.5148+L115.9381 102.4543+" />+<path d="M115.9381 102.4543+L115.8171 102.3938+" />+<path d="M115.8171 102.3938+L115.7566 102.3333+" />+<path d="M115.7566 102.3333+L115.6962 102.2124+" />+<path d="M115.6962 102.2124+L115.6962 102.0914+" />+<path d="M115.6962 102.0914+L115.7566 101.9705+" />+<path d="M115.7566 101.9705+L115.8171 101.9100+" />+<path d="M115.8171 101.9100+L115.9381 101.8495+" />+<path d="M115.9381 101.8495+L116.2404 101.8495+" />+<path d="M116.2404 101.8495+L116.4219 101.9100+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="102.2860"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">8</text>+<g class="stroked-text">+<path d="M118.9291 101.3968+L118.8081 101.3363+" />+<path d="M118.8081 101.3363+L118.7476 101.2759+" />+<path d="M118.7476 101.2759+L118.6872 101.1549+" />+<path d="M118.6872 101.1549+L118.6872 101.0944+" />+<path d="M118.6872 101.0944+L118.7476 100.9735+" />+<path d="M118.7476 100.9735+L118.8081 100.9130+" />+<path d="M118.8081 100.9130+L118.9291 100.8525+" />+<path d="M118.9291 100.8525+L119.1710 100.8525+" />+<path d="M119.1710 100.8525+L119.2919 100.9130+" />+<path d="M119.2919 100.9130+L119.3524 100.9735+" />+<path d="M119.3524 100.9735+L119.4129 101.0944+" />+<path d="M119.4129 101.0944+L119.4129 101.1549+" />+<path d="M119.4129 101.1549+L119.3524 101.2759+" />+<path d="M119.3524 101.2759+L119.2919 101.3363+" />+<path d="M119.2919 101.3363+L119.1710 101.3968+" />+<path d="M119.1710 101.3968+L118.9291 101.3968+" />+<path d="M118.9291 101.3968+L118.8081 101.4573+" />+<path d="M118.8081 101.4573+L118.7476 101.5178+" />+<path d="M118.7476 101.5178+L118.6872 101.6387+" />+<path d="M118.6872 101.6387+L118.6872 101.8806+" />+<path d="M118.6872 101.8806+L118.7476 102.0016+" />+<path d="M118.7476 102.0016+L118.8081 102.0621+" />+<path d="M118.8081 102.0621+L118.9291 102.1225+" />+<path d="M118.9291 102.1225+L119.1710 102.1225+" />+<path d="M119.1710 102.1225+L119.2919 102.0621+" />+<path d="M119.2919 102.0621+L119.3524 102.0016+" />+<path d="M119.3524 102.0016+L119.4129 101.8806+" />+<path d="M119.4129 101.8806+L119.4129 101.6387+" />+<path d="M119.4129 101.6387+L119.3524 101.5178+" />+<path d="M119.3524 101.5178+L119.2919 101.4573+" />+<path d="M119.2919 101.4573+L119.1710 101.3968+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 122.8600+L120.3200 122.8600+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="123.4950"+textLength="3.8923" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">VOC</text>+<g class="stroked-text">+<path d="M113.0956 122.1695+L113.5189 123.4395+" />+<path d="M113.5189 123.4395+L113.9423 122.1695+" />+<path d="M114.6075 122.1695+L114.8494 122.1695+" />+<path d="M114.8494 122.1695+L114.9704 122.2300+" />+<path d="M114.9704 122.2300+L115.0913 122.3510+" />+<path d="M115.0913 122.3510+L115.1518 122.5929+" />+<path d="M115.1518 122.5929+L115.1518 123.0162+" />+<path d="M115.1518 123.0162+L115.0913 123.2581+" />+<path d="M115.0913 123.2581+L114.9704 123.3791+" />+<path d="M114.9704 123.3791+L114.8494 123.4395+" />+<path d="M114.8494 123.4395+L114.6075 123.4395+" />+<path d="M114.6075 123.4395+L114.4866 123.3791+" />+<path d="M114.4866 123.3791+L114.3656 123.2581+" />+<path d="M114.3656 123.2581+L114.3052 123.0162+" />+<path d="M114.3052 123.0162+L114.3052 122.5929+" />+<path d="M114.3052 122.5929+L114.3656 122.3510+" />+<path d="M114.3656 122.3510+L114.4866 122.2300+" />+<path d="M114.4866 122.2300+L114.6075 122.1695+" />+<path d="M116.4218 123.3186+L116.3614 123.3791+" />+<path d="M116.3614 123.3791+L116.1799 123.4395+" />+<path d="M116.1799 123.4395+L116.0590 123.4395+" />+<path d="M116.0590 123.4395+L115.8776 123.3791+" />+<path d="M115.8776 123.3791+L115.7566 123.2581+" />+<path d="M115.7566 123.2581+L115.6961 123.1371+" />+<path d="M115.6961 123.1371+L115.6357 122.8952+" />+<path d="M115.6357 122.8952+L115.6357 122.7138+" />+<path d="M115.6357 122.7138+L115.6961 122.4719+" />+<path d="M115.6961 122.4719+L115.7566 122.3510+" />+<path d="M115.7566 122.3510+L115.8776 122.2300+" />+<path d="M115.8776 122.2300+L116.0590 122.1695+" />+<path d="M116.0590 122.1695+L116.1799 122.1695+" />+<path d="M116.1799 122.1695+L116.3614 122.2300+" />+<path d="M116.3614 122.2300+L116.4218 122.2905+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="122.6060"+textLength="1.4127" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">9</text>+<g class="stroked-text">+<path d="M118.8081 122.4425+L119.0500 122.4425+" />+<path d="M119.0500 122.4425+L119.1710 122.3821+" />+<path d="M119.1710 122.3821+L119.2314 122.3216+" />+<path d="M119.2314 122.3216+L119.3524 122.1401+" />+<path d="M119.3524 122.1401+L119.4129 121.8982+" />+<path d="M119.4129 121.8982+L119.4129 121.4144+" />+<path d="M119.4129 121.4144+L119.3524 121.2935+" />+<path d="M119.3524 121.2935+L119.2919 121.2330+" />+<path d="M119.2919 121.2330+L119.1710 121.1725+" />+<path d="M119.1710 121.1725+L118.9291 121.1725+" />+<path d="M118.9291 121.1725+L118.8081 121.2330+" />+<path d="M118.8081 121.2330+L118.7476 121.2935+" />+<path d="M118.7476 121.2935+L118.6872 121.4144+" />+<path d="M118.6872 121.4144+L118.6872 121.7168+" />+<path d="M118.6872 121.7168+L118.7476 121.8378+" />+<path d="M118.7476 121.8378+L118.8081 121.8982+" />+<path d="M118.8081 121.8982+L118.9291 121.9587+" />+<path d="M118.9291 121.9587+L119.1710 121.9587+" />+<path d="M119.1710 121.9587+L119.2919 121.8982+" />+<path d="M119.2919 121.8982+L119.3524 121.8378+" />+<path d="M119.3524 121.8378+L119.4129 121.7168+" />+</g></g>+<g style="fill:none; +stroke:#4a5568; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<path d="M117.7800 138.1000+L120.3200 138.1000+" />+<path d="M119.9390 137.7190+L120.7010 138.4810+" />+<path d="M120.7010 137.7190+L119.9390 138.4810+" />+</g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="116.7640" y="138.7350"+textLength="2.8037" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="end" opacity="0" stroke-opacity="0">NC</text>+<g class="stroked-text">+<path d="M114.3656 138.6795+L114.3656 137.4095+" />+<path d="M114.3656 137.4095+L115.0913 138.6795+" />+<path d="M115.0913 138.6795+L115.0913 137.4095+" />+<path d="M116.4218 138.5586+L116.3614 138.6191+" />+<path d="M116.3614 138.6191+L116.1799 138.6795+" />+<path d="M116.1799 138.6795+L116.0590 138.6795+" />+<path d="M116.0590 138.6795+L115.8776 138.6191+" />+<path d="M115.8776 138.6191+L115.7566 138.4981+" />+<path d="M115.7566 138.4981+L115.6961 138.3771+" />+<path d="M115.6961 138.3771+L115.6357 138.1352+" />+<path d="M115.6357 138.1352+L115.6357 137.9538+" />+<path d="M115.6357 137.9538+L115.6961 137.7119+" />+<path d="M115.6961 137.7119+L115.7566 137.5910+" />+<path d="M115.7566 137.5910+L115.8776 137.4700+" />+<path d="M115.8776 137.4700+L116.0590 137.4095+" />+<path d="M116.0590 137.4095+L116.1799 137.4095+" />+<path d="M116.1799 137.4095+L116.3614 137.4700+" />+<path d="M116.3614 137.4700+L116.4218 137.5305+" />+</g></g>+<g style="fill:none; +stroke:#ffffff; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="119.0500" y="137.8460"+textLength="2.6222" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">10</text>+<g class="stroked-text">+<path d="M118.8081 137.6825+L118.0824 137.6825+" />+<path d="M118.4452 137.6825+L118.4452 136.4125+" />+<path d="M118.4452 136.4125+L118.3243 136.5940+" />+<path d="M118.3243 136.5940+L118.2033 136.7149+" />+<path d="M118.2033 136.7149+L118.0824 136.7754+" />+<path d="M119.5942 136.4125+L119.7152 136.4125+" />+<path d="M119.7152 136.4125+L119.8361 136.4730+" />+<path d="M119.8361 136.4730+L119.8966 136.5335+" />+<path d="M119.8966 136.5335+L119.9571 136.6544+" />+<path d="M119.9571 136.6544+L120.0176 136.8963+" />+<path d="M120.0176 136.8963+L120.0176 137.1987+" />+<path d="M120.0176 137.1987+L119.9571 137.4406+" />+<path d="M119.9571 137.4406+L119.8966 137.5616+" />+<path d="M119.8966 137.5616+L119.8361 137.6221+" />+<path d="M119.8361 137.6221+L119.7152 137.6825+" />+<path d="M119.7152 137.6825+L119.5942 137.6825+" />+<path d="M119.5942 137.6825+L119.4733 137.6221+" />+<path d="M119.4733 137.6221+L119.4128 137.5616+" />+<path d="M119.4128 137.5616+L119.3523 137.4406+" />+<path d="M119.3523 137.4406+L119.2919 137.1987+" />+<path d="M119.2919 137.1987+L119.2919 136.8963+" />+<path d="M119.2919 136.8963+L119.3523 136.6544+" />+<path d="M119.3523 136.6544+L119.4128 136.5335+" />+<path d="M119.4128 136.5335+L119.4733 136.4730+" />+<path d="M119.4733 136.4730+L119.5942 136.4125+" />+</g></g>+<g style="fill:none; +stroke:#484f58; stroke-width:0.1524; stroke-opacity:1; +stroke-linecap:round; stroke-linejoin:round;">+<text x="100.0000" y="95.5550"+textLength="2.6223" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">U?</text>+<g class="stroked-text">+<path d="M99.0928 94.2295+L99.0928 95.2576+" />+<path d="M99.0928 95.2576+L99.1533 95.3786+" />+<path d="M99.1533 95.3786+L99.2138 95.4391+" />+<path d="M99.2138 95.4391+L99.3347 95.4995+" />+<path d="M99.3347 95.4995+L99.5766 95.4995+" />+<path d="M99.5766 95.4995+L99.6976 95.4391+" />+<path d="M99.6976 95.4391+L99.7581 95.3786+" />+<path d="M99.7581 95.3786+L99.8185 95.2576+" />+<path d="M99.8185 95.2576+L99.8185 94.2295+" />+<path d="M100.6048 95.3786+L100.6652 95.4391+" />+<path d="M100.6652 95.4391+L100.6048 95.4995+" />+<path d="M100.6048 95.4995+L100.5443 95.4391+" />+<path d="M100.5443 95.4391+L100.6048 95.3786+" />+<path d="M100.6048 95.3786+L100.6048 95.4995+" />+<path d="M100.3629 94.2900+L100.4838 94.2295+" />+<path d="M100.4838 94.2295+L100.7862 94.2295+" />+<path d="M100.7862 94.2295+L100.9071 94.2900+" />+<path d="M100.9071 94.2900+L100.9676 94.4110+" />+<path d="M100.9676 94.4110+L100.9676 94.5319+" />+<path d="M100.9676 94.5319+L100.9071 94.6529+" />+<path d="M100.9071 94.6529+L100.8467 94.7133+" />+<path d="M100.8467 94.7133+L100.7257 94.7738+" />+<path d="M100.7257 94.7738+L100.6652 94.8343+" />+<path d="M100.6652 94.8343+L100.6048 94.9552+" />+<path d="M100.6048 94.9552+L100.6048 95.0157+" />+</g><text x="100.0000" y="142.9250"+textLength="19.7369" font-size="1.6933" lengthAdjust="spacingAndGlyphs"+text-anchor="middle" opacity="0" stroke-opacity="0">TMCS1123B1AQDVGR</text>+<g class="stroked-text">+<path d="M90.3541 141.5995+L91.0798 141.5995+" />+<path d="M90.7170 142.8695+L90.7170 141.5995+" />+<path d="M91.5031 142.8695+L91.5031 141.5995+" />+<path d="M91.5031 141.5995+L91.9265 142.5067+" />+<path d="M91.9265 142.5067+L92.3498 141.5995+" />+<path d="M92.3498 141.5995+L92.3498 142.8695+" />+<path d="M93.6802 142.7486+L93.6198 142.8091+" />+<path d="M93.6198 142.8091+L93.4383 142.8695+" />+<path d="M93.4383 142.8695+L93.3174 142.8695+" />+<path d="M93.3174 142.8695+L93.1360 142.8091+" />+<path d="M93.1360 142.8091+L93.0150 142.6881+" />+<path d="M93.0150 142.6881+L92.9545 142.5671+" />+<path d="M92.9545 142.5671+L92.8941 142.3252+" />+<path d="M92.8941 142.3252+L92.8941 142.1438+" />+<path d="M92.8941 142.1438+L92.9545 141.9019+" />+<path d="M92.9545 141.9019+L93.0150 141.7810+" />+<path d="M93.0150 141.7810+L93.1360 141.6600+" />+<path d="M93.1360 141.6600+L93.3174 141.5995+" />+<path d="M93.3174 141.5995+L93.4383 141.5995+" />+<path d="M93.4383 141.5995+L93.6198 141.6600+" />+<path d="M93.6198 141.6600+L93.6802 141.7205+" />+<path d="M94.1641 142.8091+L94.3455 142.8695+" />+<path d="M94.3455 142.8695+L94.6479 142.8695+" />+<path d="M94.6479 142.8695+L94.7688 142.8091+" />+<path d="M94.7688 142.8091+L94.8293 142.7486+" />+<path d="M94.8293 142.7486+L94.8898 142.6276+" />+<path d="M94.8898 142.6276+L94.8898 142.5067+" />+<path d="M94.8898 142.5067+L94.8293 142.3857+" />+<path d="M94.8293 142.3857+L94.7688 142.3252+" />+<path d="M94.7688 142.3252+L94.6479 142.2648+" />+<path d="M94.6479 142.2648+L94.4060 142.2043+" />+<path d="M94.4060 142.2043+L94.2850 142.1438+" />+<path d="M94.2850 142.1438+L94.2245 142.0833+" />+<path d="M94.2245 142.0833+L94.1641 141.9624+" />+<path d="M94.1641 141.9624+L94.1641 141.8414+" />+<path d="M94.1641 141.8414+L94.2245 141.7205+" />+<path d="M94.2245 141.7205+L94.2850 141.6600+" />+<path d="M94.2850 141.6600+L94.4060 141.5995+" />+<path d="M94.4060 141.5995+L94.7083 141.5995+" />+<path d="M94.7083 141.5995+L94.8898 141.6600+" />+<path d="M96.0993 142.8695+L95.3736 142.8695+" />+<path d="M95.7364 142.8695+L95.7364 141.5995+" />+<path d="M95.7364 141.5995+L95.6155 141.7810+" />+<path d="M95.6155 141.7810+L95.4945 141.9019+" />+<path d="M95.4945 141.9019+L95.3736 141.9624+" />+<path d="M97.3088 142.8695+L96.5831 142.8695+" />+<path d="M96.9459 142.8695+L96.9459 141.5995+" />+<path d="M96.9459 141.5995+L96.8250 141.7810+" />+<path d="M96.8250 141.7810+L96.7040 141.9019+" />+<path d="M96.7040 141.9019+L96.5831 141.9624+" />+<path d="M97.7926 141.7205+L97.8530 141.6600+" />+<path d="M97.8530 141.6600+L97.9740 141.5995+" />+<path d="M97.9740 141.5995+L98.2764 141.5995+" />+<path d="M98.2764 141.5995+L98.3973 141.6600+" />+<path d="M98.3973 141.6600+L98.4578 141.7205+" />+<path d="M98.4578 141.7205+L98.5183 141.8414+" />+<path d="M98.5183 141.8414+L98.5183 141.9624+" />+<path d="M98.5183 141.9624+L98.4578 142.1438+" />+<path d="M98.4578 142.1438+L97.7321 142.8695+" />+<path d="M97.7321 142.8695+L98.5183 142.8695+" />+<path d="M98.9416 141.5995+L99.7278 141.5995+" />+<path d="M99.7278 141.5995+L99.3044 142.0833+" />+<path d="M99.3044 142.0833+L99.4859 142.0833+" />+<path d="M99.4859 142.0833+L99.6068 142.1438+" />+<path d="M99.6068 142.1438+L99.6673 142.2043+" />+<path d="M99.6673 142.2043+L99.7278 142.3252+" />+<path d="M99.7278 142.3252+L99.7278 142.6276+" />+<path d="M99.7278 142.6276+L99.6673 142.7486+" />+<path d="M99.6673 142.7486+L99.6068 142.8091+" />+<path d="M99.6068 142.8091+L99.4859 142.8695+" />+<path d="M99.4859 142.8695+L99.1230 142.8695+" />+<path d="M99.1230 142.8695+L99.0021 142.8091+" />+<path d="M99.0021 142.8091+L98.9416 142.7486+" />+<path d="M100.6954 142.2043+L100.8768 142.2648+" />+<path d="M100.8768 142.2648+L100.9373 142.3252+" />+<path d="M100.9373 142.3252+L100.9977 142.4462+" />+<path d="M100.9977 142.4462+L100.9977 142.6276+" />+<path d="M100.9977 142.6276+L100.9373 142.7486+" />+<path d="M100.9373 142.7486+L100.8768 142.8091+" />+<path d="M100.8768 142.8091+L100.7558 142.8695+" />+<path d="M100.7558 142.8695+L100.2720 142.8695+" />+<path d="M100.2720 142.8695+L100.2720 141.5995+" />+<path d="M100.2720 141.5995+L100.6954 141.5995+" />+<path d="M100.6954 141.5995+L100.8163 141.6600+" />+<path d="M100.8163 141.6600+L100.8768 141.7205+" />+<path d="M100.8768 141.7205+L100.9373 141.8414+" />+<path d="M100.9373 141.8414+L100.9373 141.9624+" />+<path d="M100.9373 141.9624+L100.8768 142.0833+" />+<path d="M100.8768 142.0833+L100.8163 142.1438+" />+<path d="M100.8163 142.1438+L100.6954 142.2043+" />+<path d="M100.6954 142.2043+L100.2720 142.2043+" />+<path d="M102.2073 142.8695+L101.4816 142.8695+" />+<path d="M101.8444 142.8695+L101.8444 141.5995+" />+<path d="M101.8444 141.5995+L101.7235 141.7810+" />+<path d="M101.7235 141.7810+L101.6025 141.9019+" />+<path d="M101.6025 141.9019+L101.4816 141.9624+" />+<path d="M102.6911 142.5067+L103.2958 142.5067+" />+<path d="M102.5701 142.8695+L102.9934 141.5995+" />+<path d="M102.9934 141.5995+L103.4168 142.8695+" />+<path d="M104.6868 142.9905+L104.5658 142.9300+" />+<path d="M104.5658 142.9300+L104.4449 142.8091+" />+<path d="M104.4449 142.8091+L104.2635 142.6276+" />+<path d="M104.2635 142.6276+L104.1425 142.5671+" />+<path d="M104.1425 142.5671+L104.0216 142.5671+" />+<path d="M104.0820 142.8695+L103.9611 142.8091+" />+<path d="M103.9611 142.8091+L103.8401 142.6881+" />+<path d="M103.8401 142.6881+L103.7797 142.4462+" />+<path d="M103.7797 142.4462+L103.7797 142.0229+" />+<path d="M103.7797 142.0229+L103.8401 141.7810+" />+<path d="M103.8401 141.7810+L103.9611 141.6600+" />+<path d="M103.9611 141.6600+L104.0820 141.5995+" />+<path d="M104.0820 141.5995+L104.3239 141.5995+" />+<path d="M104.3239 141.5995+L104.4449 141.6600+" />+<path d="M104.4449 141.6600+L104.5658 141.7810+" />+<path d="M104.5658 141.7810+L104.6263 142.0229+" />+<path d="M104.6263 142.0229+L104.6263 142.4462+" />+<path d="M104.6263 142.4462+L104.5658 142.6881+" />+<path d="M104.5658 142.6881+L104.4449 142.8091+" />+<path d="M104.4449 142.8091+L104.3239 142.8695+" />+<path d="M104.3239 142.8695+L104.0820 142.8695+" />+<path d="M105.1706 142.8695+L105.1706 141.5995+" />+<path d="M105.1706 141.5995+L105.4730 141.5995+" />+<path d="M105.4730 141.5995+L105.6544 141.6600+" />+<path d="M105.6544 141.6600+L105.7754 141.7810+" />+<path d="M105.7754 141.7810+L105.8359 141.9019+" />+<path d="M105.8359 141.9019+L105.8963 142.1438+" />+<path d="M105.8963 142.1438+L105.8963 142.3252+" />+<path d="M105.8963 142.3252+L105.8359 142.5671+" />+<path d="M105.8359 142.5671+L105.7754 142.6881+" />+<path d="M105.7754 142.6881+L105.6544 142.8091+" />+<path d="M105.6544 142.8091+L105.4730 142.8695+" />+<path d="M105.4730 142.8695+L105.1706 142.8695+" />+<path d="M106.2592 141.5995+L106.6825 142.8695+" />+<path d="M106.6825 142.8695+L107.1059 141.5995+" />+<path d="M108.1945 141.6600+L108.0735 141.5995+" />+<path d="M108.0735 141.5995+L107.8921 141.5995+" />+<path d="M107.8921 141.5995+L107.7107 141.6600+" />+<path d="M107.7107 141.6600+L107.5897 141.7810+" />+<path d="M107.5897 141.7810+L107.5292 141.9019+" />+<path d="M107.5292 141.9019+L107.4688 142.1438+" />+<path d="M107.4688 142.1438+L107.4688 142.3252+" />+<path d="M107.4688 142.3252+L107.5292 142.5671+" />+<path d="M107.5292 142.5671+L107.5897 142.6881+" />+<path d="M107.5897 142.6881+L107.7107 142.8091+" />+<path d="M107.7107 142.8091+L107.8921 142.8695+" />+<path d="M107.8921 142.8695+L108.0130 142.8695+" />+<path d="M108.0130 142.8695+L108.1945 142.8091+" />+<path d="M108.1945 142.8091+L108.2549 142.7486+" />+<path d="M108.2549 142.7486+L108.2549 142.3252+" />+<path d="M108.2549 142.3252+L108.0130 142.3252+" />+<path d="M109.5249 142.8695+L109.1016 142.2648+" />+<path d="M108.7992 142.8695+L108.7992 141.5995+" />+<path d="M108.7992 141.5995+L109.2830 141.5995+" />+<path d="M109.2830 141.5995+L109.4040 141.6600+" />+<path d="M109.4040 141.6600+L109.4645 141.7205+" />+<path d="M109.4645 141.7205+L109.5249 141.8414+" />+<path d="M109.5249 141.8414+L109.5249 142.0229+" />+<path d="M109.5249 142.0229+L109.4645 142.1438+" />+<path d="M109.4645 142.1438+L109.4040 142.2043+" />+<path d="M109.4040 142.2043+L109.2830 142.2648+" />+<path d="M109.2830 142.2648+L108.7992 142.2648+" />+</g></g> +</svg>+      </div>+    </div>+    <aside>+      <div class="ah"><span class="atitle">Pins <span class="acount">10</span></span><input id="q" placeholder="Filter…"></div>+      <div class="pins" id="pins"></div>+    </aside>+  </main>+  <footer><span class="it"><span class="k">MFR</span><span class="v">Texas Instruments</span></span><span class="it"><span class="k">PKG</span><span class="v">tmcs1123b1aqdvgr</span></span><span class="it"><span class="k">PINS</span><span class="v">10</span></span><span class="it descit"><span class="k">DESC</span><span class="v">Isolated Hall-effect current sensor, 25 mV/A, 1.65 V zero-current output (linear +-62 A at 3.3 V), overcurrent detection…</span></span></footer>+  <div id="tip"></div>+<script>// viewer_core.js — the ONE symbol-viewer engine, compiled into BOTH the live+// adom-symbol app (SymView) AND the standalone embed export. Neither file should+// reimplement pan/zoom or pin-hover; they call into here so they can never drift.+window.AdomSymViewer = (function(){+  var ZOOM_K = 0.0022;            // wheel sensitivity (lower = gentler). The feel.+  var MIN_SCALE = 0.05, MAX_SCALE = 60;++  function clampScale(s){ return Math.max(MIN_SCALE, Math.min(s, MAX_SCALE)); }++  // Device-independent wheel zoom: normalize deltaMode + cap one notch, then hand+  // the pointer-anchored factor to the host's zoomAt(cx, cy, factor). This is the+  // exact math the app has always used — the embed now shares it verbatim.+  function attachWheelZoom(el, zoomAt){+    el.addEventListener('wheel', function(e){+      e.preventDefault();+      var d = e.deltaY;+      if(e.deltaMode === 1) d *= 16;                  // lines  -> px+      else if(e.deltaMode === 2) d *= el.clientHeight; // pages -> px+      d = Math.max(-50, Math.min(50, d));              // cap one event's contribution+      var r = el.getBoundingClientRect();+      zoomAt(e.clientX - r.left, e.clientY - r.top, Math.exp(-d * ZOOM_K));+    }, { passive: false });+  }++  // ---- shared pin-hover engine (glyph pairing + hit-box geometry) ----+  function norm(s){ return String(s || '').replace(/[~{}]/g, '').trim(); }++  // Pair each invisible <text opacity="0"> with the visible <g class="stroked-text">+  // glyph that follows it in document order (handles rotated top/bottom pins).+  function glyphLabels(svg){+    var out = [], pending = null;+    if(!svg) return out;+    svg.querySelectorAll('text, g.stroked-text').forEach(function(n){+      if(n.classList && n.classList.contains('stroked-text')){+        if(pending){ var k = norm(pending.textContent); if(k) out.push({ k: k, group: n }); pending = null; }+      } else if(n.getAttribute && n.getAttribute('opacity') === '0'){ pending = n; }+    });+    return out;+  }++  // Build one transparent hit-rect per pin label (number + name), matched to each+  // pin's glyph by proximity to the pin tip (so duplicate names resolve to the+  // right pin). Rects are appended to `svg` in user space so they pan/zoom with it.+  //   pins:   [{number,name,x,y,angle,length,...}]+  //   offset: {x,y} symbol->svg-unit origin (state.offset)+  //   NS:     the svg namespace+  //   cb:     { enter(pin,ev), move(ev), leave(), click(pin,ev)? }+  // Returns { textMap } so the host can highlight a pin's glyphs on demand.+  function buildPinHits(svg, pins, offset, NS, cb){+    var textMap = new Map();+    if(!svg || !offset || !pins || !pins.length) return { textMap: textMap };+    cb = cb || {};+    var gl = glyphLabels(svg);+    gl.forEach(function(o){ if(!textMap.has(o.k)) textMap.set(o.k, []); textMap.get(o.k).push(o.group); });+    var labels = [];+    gl.forEach(function(o){ var b; try { b = o.group.getBBox(); } catch(e){ return; }+      if(!b || !b.width) return;+      labels.push({ k: o.k, box: b, cx: b.x + b.width/2, cy: b.y + b.height/2, used: false }); });+    function pick(k, ax, ay){ k = norm(k); var best = null, bd = 1e9;+      labels.forEach(function(l){ if(l.used || l.k !== k) return; var d = Math.hypot(l.cx - ax, l.cy - ay); if(d < bd){ bd = d; best = l; } });+      if(best) best.used = true; return best; }+    function addBox(b, p){+      var pad = 0.45, r = document.createElementNS(NS, 'rect');+      r.setAttribute('class', 'hit');+      r.setAttribute('x', b.x - pad); r.setAttribute('y', b.y - pad);+      r.setAttribute('width', b.width + pad*2); r.setAttribute('height', b.height + pad*2); r.setAttribute('rx', .3);+      r.addEventListener('mouseenter', function(ev){ if(cb.enter) cb.enter(p, ev); });+      r.addEventListener('mousemove', function(ev){ if(cb.move) cb.move(ev); });+      r.addEventListener('mouseleave', function(){ if(cb.leave) cb.leave(); });+      if(cb.click) r.addEventListener('click', function(ev){ cb.click(p, ev); });+      svg.appendChild(r);+    }+    pins.forEach(function(p){+      var tipX = offset.x + p.x, tipY = offset.y - p.y, L = p.length || 2.54, dx = 0, dy = 0;+      if(p.angle === 0) dx = 1; else if(p.angle === 180) dx = -1; else if(p.angle === 90) dy = -1; else if(p.angle === 270) dy = 1;+      var nl = pick(p.number, tipX + dx*L*0.5, tipY + dy*L*0.5 - (dx !== 0 ? 0.9 : 0));  // number: over the wire+      var ml = pick(p.name,   tipX + dx*(L+2), tipY + dy*(L+2));                          // name: inside the body+      if(nl) addBox(nl.box, p);+      if(ml) addBox(ml.box, p);+      if(!nl && !ml){                                                                      // discrete parts: no glyphs+        var ex = tipX + dx*L, ey = tipY + dy*L, HT = 1.0;+        addBox({ x: Math.min(tipX, ex) - (dx === 0 ? HT : 0.3), y: Math.min(tipY, ey) - (dy === 0 ? HT : 0.3),+                 width: Math.abs(ex - tipX) + (dx === 0 ? HT*2 : 0.6), height: Math.abs(ey - tipY) + (dy === 0 ? HT*2 : 0.6) }, p);+      }+    });+    return { textMap: textMap };+  }++  return {+    ZOOM_K: ZOOM_K, clampScale: clampScale, attachWheelZoom: attachWheelZoom,+    norm: norm, glyphLabels: glyphLabels, buildPinHits: buildPinHits+  };+})();+</script>+<script>+var PINS=[{"angle":0,"color":"#78909c","desc":"","length":2.54,"name":"IN+","number":"1","type":"Passive","x":-20.32,"y":-2.54},{"angle":0,"color":"#78909c","desc":"","length":2.54,"name":"IN-","number":"2","type":"Passive","x":-20.32,"y":-5.08},{"angle":180,"color":"#ef5350","desc":"","length":2.54,"name":"VS","number":"8","type":"Power Input","x":20.32,"y":-2.54},{"angle":180,"color":"#ef5350","desc":"","length":2.54,"name":"GND","number":"3","type":"Power Input","x":20.32,"y":-5.08},{"angle":180,"color":"#42a5f5","desc":"","length":2.54,"name":"VOUT","number":"6","type":"Output","x":20.32,"y":-12.7},{"angle":180,"color":"#42a5f5","desc":"","length":2.54,"name":"VREF","number":"5","type":"Output","x":20.32,"y":-15.24},{"angle":180,"color":"#66bb6a","desc":"","length":2.54,"name":"VOC","number":"9","type":"Input","x":20.32,"y":-22.86},{"angle":180,"color":"#90a4ae","desc":"","length":2.54,"name":"OC","number":"7","type":"Open Collector","x":20.32,"y":-25.4},{"angle":180,"color":"#90a4ae","desc":"","length":2.54,"name":"ALERT","number":"4","type":"Open Collector","x":20.32,"y":-27.94},{"angle":180,"color":"#90a4ae","desc":"","length":2.54,"name":"NC","number":"10","type":"no_connect","x":20.32,"y":-38.1}], OFF={"x":100,"y":100};+(function(){+  // The symbol svg is the DIRECT child of #vp; querySelector('svg') alone would+  // grab a toolbar button's zoom icon (also broke pan/zoom before this fix).+  var vp=document.getElementById('vp'), svg=vp.querySelector(':scope > svg')||vp.querySelector('svg');+  if(svg){ svg.removeAttribute('width'); svg.removeAttribute('height'); }+  var scale=1,tx=0,ty=0;+  function apply(){ if(svg) svg.style.transform='translate('+tx+'px,'+ty+'px) scale('+scale+')'; }+  // pointer-anchored zoom with the SHARED scale clamp (same limits as the app).+  function zoomAt(cx,cy,f){ var ns=AdomSymViewer.clampScale(scale*f); var r=ns/scale; tx=cx-(cx-tx)*r; ty=cy-(cy-ty)*r; scale=ns; apply(); }+  function fit(){ scale=1;tx=0;ty=0;apply(); }+  // Wheel/trackpad zoom feel comes from the SHARED engine — identical to SymView.+  AdomSymViewer.attachWheelZoom(vp, zoomAt);+  var drag=false,lx=0,ly=0;+  vp.addEventListener('pointerdown',function(e){ if(e.target.closest('.tools'))return; /* let toolbar buttons receive their click */ drag=true;lx=e.clientX;ly=e.clientY;vp.classList.add('grab');vp.setPointerCapture(e.pointerId); });+  vp.addEventListener('pointermove',function(e){ if(!drag)return; tx+=e.clientX-lx;ty+=e.clientY-ly;lx=e.clientX;ly=e.clientY;apply(); });+  vp.addEventListener('pointerup',function(e){ drag=false;vp.classList.remove('grab'); });+  document.getElementById('zin').onclick=function(){ var r=vp.getBoundingClientRect();zoomAt(r.width/2,r.height/2,1.2); };+  document.getElementById('zout').onclick=function(){ var r=vp.getBoundingClientRect();zoomAt(r.width/2,r.height/2,1/1.2); };+  document.getElementById('fit').onclick=fit;+  // pin panel+  var box=document.getElementById('pins');+  function render(filter){+    box.innerHTML='';+    var f=(filter||'').toLowerCase();+    var shown=PINS.filter(function(p){ return !f || (p.name+' '+p.number+' '+p.type).toLowerCase().indexOf(f)>=0; });+    if(!shown.length){ box.innerHTML='<div class="empty">No pins match.</div>'; return; }+    shown.forEach(function(p){+      var el=document.createElement('div'); el.className='pin';+      var col=p.color||'#8b949e';+      el.innerHTML='<div class="row"><span class="num">'+esc(p.number)+'</span>'+        +'<span class="nme">'+esc(p.name)+'</span>'+        +'<span class="ty" style="color:'+col+';border-color:'+col+'66">'+esc(p.type||'')+'</span></div>'+        +(p.desc?'<div class="d">'+esc(p.desc)+'</div>':'');+      el.onclick=function(){ el.classList.toggle('on'); };+      el.addEventListener('mouseenter',function(){ highlightPin(p); });+      el.addEventListener('mouseleave',function(){ clearHL(); });+      box.appendChild(el);+    });+  }+  function esc(s){ return String(s==null?'':s).replace(/[&<>"]/g,function(c){return{'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'}[c];}); }+  document.getElementById('q').addEventListener('input',function(e){ render(e.target.value); });+  render('');++  // ── pin hover: highlight + tooltip on the SVG, parity with the live SymView ──+  var NS='http://www.w3.org/2000/svg';+  var tip=document.getElementById('tip');+  var textMap=new Map();+  function highlightPin(p){+    clearHL();+    [p.name,p.number].forEach(function(k){ var a=textMap.get(AdomSymViewer.norm(k)); if(a) a.forEach(function(g){ g.classList.add('hl'); }); });+    var m=document.getElementById('pinmark');+    if(m && OFF){ m.setAttribute('cx',OFF.x+p.x); m.setAttribute('cy',OFF.y-p.y); m.setAttribute('r',0.7); m.style.opacity='1'; }+  }+  function clearHL(){+    if(svg) svg.querySelectorAll('.hl').forEach(function(e){ e.classList.remove('hl'); });+    var m=document.getElementById('pinmark'); if(m) m.style.opacity='0';+  }+  function showTip(p,x,y){+    var col=p.color||'#8b949e';+    var h='<div class="r1"><span class="nm">'+esc(p.name||'(unnamed)')+'</span><span class="pn">Pin '+esc(p.number)+'</span></div>';+    if(p.type) h+='<span class="badge" style="background:'+col+'22;color:'+col+';border:1px solid '+col+'44">'+esc(p.type)+'</span>';+    if(p.desc) h+='<div class="desc">'+esc(p.desc)+'</div>';+    tip.innerHTML=h; tip.classList.add('show'); posTip(x,y);+  }+  function posTip(x,y){+    var w=tip.offsetWidth||260, hh=tip.offsetHeight||110, tx=x+14, ty=y+14;+    if(tx+w>innerWidth-14) tx=x-w-14;+    if(ty+hh>innerHeight-14) ty=y-hh-14;+    tip.style.left=Math.max(8,tx)+'px'; tip.style.top=Math.max(8,ty)+'px';+  }+  function hideTip(){ tip.classList.remove('show'); clearHL(); }+  // Build the pin hit-zones with the SHARED engine — the exact glyph-pairing ++  // hit-box code the app's SymView uses. The embed only supplies the tooltip.+  if(svg && OFF){+    if(!document.getElementById('pinmark')){ var pm=document.createElementNS(NS,'circle'); pm.id='pinmark'; svg.appendChild(pm); }+    var hideT=null;+    var hits=AdomSymViewer.buildPinHits(svg, PINS, OFF, NS, {+      enter:function(p,ev){ clearTimeout(hideT); showTip(p,ev.clientX,ev.clientY); highlightPin(p); },+      move:function(ev){ if(tip.classList.contains('show')) posTip(ev.clientX,ev.clientY); },+      leave:function(){ clearTimeout(hideT); hideT=setTimeout(hideTip,45); }+    });+    textMap=hits.textMap;+  }++  apply();+})();++// ── app-info header popover: interactive hover you can move into (600ms show,+//    220ms hide-grace) so the wiki link stays reachable. Per adom-app-header.md. ──+(function(){+  var SHOW_DELAY=600, HIDE_GRACE=220;+  document.querySelectorAll('header [data-tooltip-target]').forEach(function(trigger){+    var target=document.getElementById(trigger.dataset.tooltipTarget);+    if(!target) return;+    var showTimer=null, hideTimer=null;+    function show(){ clearTimeout(hideTimer); if(target.classList.contains('show')) return; clearTimeout(showTimer); showTimer=setTimeout(function(){ target.classList.add('show'); }, SHOW_DELAY); }+    function queueHide(){ clearTimeout(showTimer); clearTimeout(hideTimer); hideTimer=setTimeout(function(){ target.classList.remove('show'); }, HIDE_GRACE); }+    trigger.addEventListener('mouseenter',show); trigger.addEventListener('mouseleave',queueHide);+    trigger.addEventListener('focus',show);      trigger.addEventListener('blur',queueHide);+    target.addEventListener('mouseenter',show);  target.addEventListener('mouseleave',queueHide);+    trigger.addEventListener('click',function(e){ clearTimeout(showTimer); target.classList.toggle('show'); e.stopPropagation(); });+    document.addEventListener('click',function(e){ if(!target.contains(e.target) && !trigger.contains(e.target)) target.classList.remove('show'); });+  });+})();+</script>+</body></html>