OverviewFilesCommitsIssuesDocsReleasesPeers

electrical-review commits / a2f134e

initial electrical-review
a2f134ece3b4495f90894d5915496540f29c1ca4
by ashatron <a@ash> · 2026-06-04T23:03:00.000Z

Changed files (73) +26604 -0

CLAUDE.md +27 -0
……@@ -0,0 +1,27 @@
1# PRSM Electrical Design Review — Session Rules
2
3You are reviewing and validating the **electrical configuration** of an off-grid solar build.
4Read `HANDOFF.md` in this folder first — it is the authoritative scope and task list.
5
6## The one rule that matters most
7**Never state a voltage, current, ampacity, string length, voltage-drop %, runtime, or kWh that you did not compute by running a script in `scripts/`.** If you need a number, write and run the Python first, then cite the script. Estimated or "about" numbers are not acceptable in the final design — this is a safety-relevant electrical design.
8
9## Grounding stack (use, don't reinvent)
10- `vocmax` — NEC 690.7 cold-weather string sizing from NSRDB extreme temps. The binding constraint for max modules-in-series.
11- `nrel-pysam` (Pvwattsv8, `array_type=0`) or PVWatts V8 API — production / per-MPPT energy. Verify the API host (migrated to `developer.nlr.gov` 2026-05-29).
12- `pvlib` — independent IV/cell-temperature cross-check of the string result.
13- Plain Python for NEC 690.8 ampacity (125%×125% continuous + 310.15 temp/fill derates) and voltage drop. Encode and cite the NEC table you use.
14- `schemdraw` — render the SLD and wiring diagrams (PNG + SVG).
15
16## Scope discipline
17- IN: panels (string config), wiring, OCPD, inverter config, battery wiring, grounding/labeling at SLD level, schematics.
18- OUT: structure, racking, foundations, trenching civil, pricing, permitting, incentives. The owner has the housing/mounting handled — do not factor it in.
19
20## Locked hardware (do not re-litigate; see HANDOFF §3)
21Waaree 575W Grade B · ~8 kW active now · 1× EG4 6000XP · 1× Docan S3 16 kWh · off-grid · NE Vermont.
22
23## Before designing
24Confirm the §4 inputs in HANDOFF (datasheet electricals, inverter limits, run lengths, NEC cycle, lat/lon). Ask the owner the run-length and AHJ-code questions up front. Flag any assumption you can't confirm from a datasheet.
25
26## Output
27Write deliverables to `artifacts/` per HANDOFF §7. Every number traces to a script.
HANDOFF-PHASE2.md +138 -0
……@@ -0,0 +1,138 @@
1---
2title: PRSM Solar — Phase 2 Electrical Design (Handoff)
3project: PRSM
4type: session-handoff
5created: 2026-06-03
6for: a fresh Claude Code session
7scope: ELECTRICAL ONLY — final-state full-pallet array, inverter expansion, battery bank, wiring, diagrams. Housing/shed/fire-code EXCLUDED (flag only).
8builds_on: the completed & validated Phase-1 review in this same folder (artifacts/, scripts/, site.yaml, data/)
9---
10
11# Handoff: Phase 2 Electrical Design for PRSM Off-Grid Solar
12
13You are a fresh Claude Code session. **Phase 1 is already designed and validated** (see
14`artifacts/electrical-design.md`). Your job is to design the **final, full-build system
15state**: wire the remaining pallet panels to meet the real household load, expand the
16inverter and battery to match, re-validate every number, and render **final-state diagrams**.
17Same discipline as Phase 1: **every load-bearing number is computed by a script in `scripts/`**,
18never estimated. Reuse the Phase-1 scripts and grounding stack — do not start from scratch.
19
20## 0. What Phase 1 established (your starting context — do not recompute, reuse)
21All computed and cross-checked; values live in `artifacts/results/*.json` and `site.yaml`:
22- **Module** Waaree Elite BiN-08-575: Voc 52.30 V, Vmp 43.86 V, Isc 13.87 A, Imp 13.11 A,
23 β(Voc) −0.26 %/°C, 1500 V. **Hard rule: 7 modules/string MAX** (8S = 491 V at −40 °C+bifacial, unsafe).
24- **Inverter (Phase 1)** EG4 6000XP: 2 MPPT, 500 V abs / 480 V design / 385 V MPPT-track,
25 17 A/MPPT, **8 kW PV usable (already maxed by Phase-1's 8.05 kW)**, 6 kW AC, 140 A batt discharge.
26- **Battery (Phase 1)** 1× Docan S3 16 kWh (12.86 kWh usable @ 80 % DoD): JK BMS 150 A trip /
27 157 A cell-honest; **175 A Class-T + 2/0 Cu** battery cable; cold-charge handled by **separate
28 propane heat** (not electrical).
29- **Conductors (Phase 1)**: PV 8 AWG (200 ft, 1.33 % Vd) · battery 2/0 · AC 8 AWG / 35 A 2-pole.
30- **Load (REAL, Hardwick Electric)** in `data/hardwick_usage.csv`: **12,237 kWh/yr · 33.5 kWh/day
31 avg · summer-peaking (Aug 54.1 kWh/day, winter 26.6)** · ~$0.227/kWh · ~$2,779/yr.
32- **Production**: Phase-1 8.05 kW → 9,622 kWh/yr (79 % of load). **Full pallet 17.8 kW → 20,962
33 kWh/yr (171 %, meets load in every season incl. Aug peak)** — computed in `scripts/09_phase2.py`.
34- **Phase-2 cost (estimate)**: remaining panels **$0** (already owned); lean ~$4.3–5.2K,
35 recommended ~$7.8–9.2K. See `artifacts/results/09_phase2.json`.
36- **Environment**: main venv `~/.venvs/prsm-electrical` (py3.13); vocmax pinned venv
37 `~/.venvs/prsm-vocmax` (py3.9). **NREL host: `developer.nlr.gov`** (nrel.gov failed; the
38 scripts try both). `NREL_API_KEY` may still be unset — DEMO_KEY works for PVWatts.
39
40## 1. What is IN scope (Phase 2, final state)
41- **DC array**: re-string the **full 31-panel pallet (17.8 kW)** across the expanded inverter's
42 MPPTs, keeping cold-Voc ≤ design ceiling and **≤ 7 modules/series**. Combiner if needed.
43- **Inverter expansion**: design for **12 kW AC / ≥16 kW PV** — either **2× EG4 6000XP in parallel**
44 or a **single EG4 18kPV** (owner picks; see §3). PV-to-inverter conductors, AC output + OCPD.
45- **Battery bank**: **2–3× Docan S3** in parallel — bank busbar/interconnects, per-pack vs bank
46 Class-T fusing, discharge at 12 kW (~252 A bank), BMS comms for multiple packs.
47- **Wiring & overcurrent** for the whole final state (NEC 690.8, 310.15 derates, voltage drop).
48- **Grounding/bonding** (690.43/47) and **labeling** at SLD level for the final build.
49- **Final-state schematic renderings** (see §7).
50
51## 2. What is OUT of scope (flag, don't design)
52- Battery shed / structure / racking / foundations / trenching civil.
53- **NFPA 855 / fire code** — at **3 packs (48 kWh)** the build crosses the residential threshold
54 (detached non-combustible shed ≥10 ft, UL 9540 listing or AHJ hazard-mitigation analysis), and
55 the **propane heater in a Li-battery enclosure** needs combustion-air/ventilation/separation.
56 **Flag these as gates; do not engineer them.** (Swarm §4.)
57- Pricing beyond the Phase-2 estimate already produced; permitting; economics/payback.
58- Generator selection (Phase-1 infra; assume AC-IN to the inverter, 50 A pass-through, gen-assist on low SOC).
59
60## 3. Locked + decisions you MUST confirm with the owner (ask up front)
61| Item | Status |
62|---|---|
63| Use the **remaining 17 pallet panels** (full 31 = 17.8 kW) | Locked (owner request) |
64| Meet the **12,237 kWh/yr** real load | Locked (data on file) |
65| **Inverter path** | **ASK**: (A) parallel 2nd EG4 6000XP (~$1,700, cheaper, 2× JK↔Pylontech-CAN comms) vs (B) sell 6000XP → single **EG4 18kPV** (~$3,500–3,700 net, single comms; Swarm §10 recommends for >10 kW). Real delta ~$1,900. |
66| **Battery count** | **ASK**: 2 packs (25.7 kWh usable, Swarm §6 min) vs 3 packs (38.6 kWh, ~1 day autonomy @ avg — but crosses NFPA 855). |
67| **Battery siting** | **ASK**: detached shed location (forced at 3 packs) → sets new inverter↔battery run length. |
68| **New run lengths** | **ASK**: array→new strings (where the 17 remaining panels sit), inverter↔added battery packs, any new trench leg. |
69
70## 4. Inputs you MUST confirm before designing (don't assume)
711. **EG4 18kPV datasheet** (if path B): MPPT count, max PV Voc, MPPT range, max input A/MPPT,
72 max PV power, battery charge/discharge limits, AC output, integrated disconnect/RSD/AFCI.
73 *(If path A, the 6000XP specs are already in `site.yaml`.)*
742. **Docan S3 paralleling**: max packs in parallel on one BMS bus, bank comms (one master?),
75 recommended bank fusing (per-pack Class-T vs single bank fuse) — confirm with the JK BMS docs.
763. **New conductor run lengths** (§3) — one-way feet.
774. **NEC cycle**: 2023 (confirmed Phase 1) — keep unless the AHJ has updated.
78If any can't be confirmed from a datasheet, **state the assumption and flag it** (as Phase 1 did).
79
80## 5. Validation method — reuse the Phase-1 grounded stack
81**Rule (unchanged): no voltage/current/ampacity/string-length/kWh in the final design that a
82script didn't compute.** Extend the existing scripts; don't reinvent:
83- **String sizing** → `scripts/01_string_sizing.py` (+ `01b_vocmax.py`): re-run for the full
84 pallet across the chosen MPPT topology. Cold-Voc ≤ 480 V, **≤ 7S**, hot/cold Vmp in window.
85- **Production** → `scripts/02_production.py` / `09_phase2.py` (full pallet already = 20,962 kWh/yr).
86- **Conductors** → `scripts/03_conductors.py` + `nec_tables.py`: re-size for 12 kW AC output
87 (~50–63 A → bigger AC feeder/OCPD), more PV strings (combiner?), and the battery bank.
88- **Battery** → `scripts/04_battery.py`: bank discharge at 12 kW (~252 A), split across 2–3 packs;
89 per-pack vs bank Class-T; C-rate per pack; autonomy at the real load (`08`/`09`).
90- **Load match** → `scripts/08_load_actual.py` + `09_phase2.py` (reuse `common.load_usage()`).
91- **NEC checklist** → `scripts/05_nec_checklist.py` for the final state (add 705/706 multi-pack notes).
92Each script prints inputs + the formula/NEC section + result, and dumps to `artifacts/results/`.
93Create a Phase-2 config — either extend `site.yaml` with a `phase2:` block or add `site-phase2.yaml`
94(module_count 31, inverter = chosen path, battery pack count) — keep `site.yaml` as the single source.
95
96## 6. Diagrams — FINAL SYSTEM STATE (schemdraw → PNG + SVG)
97Extend `scripts/06_schematics.py`; write to `artifacts/phase2/`. All ratings trace to the calcs.
981. **Final SLD** — full 31-panel array → DC disconnect/combiner → **expanded inverter (2× 6000XP
99 or 18kPV)** → **2–3 Docan S3 bank** → critical-loads/main panel, **+ generator AC-IN**, with all
100 OCPD/disconnect/conductor ratings and the rapid-shutdown note.
1012. **Final DC-string diagram** — all 31 modules grouped into strings across the MPPTs (label the
102 stringing, e.g. how 31 panels map to 3 or 4 MPPTs at ≤7S), polarity, combiner, fusing.
1033. **Final battery-wiring diagram** — 2–3 packs in parallel: bank busbar, per-pack/bank Class-T,
104 bank disconnect, cable gauge, multi-pack BMS comms (master/slave → inverter).
105Diagrams must match the computed numbers exactly.
106
107## 7. Deliverables (write to `artifacts/phase2/`)
108- `phase2-design.md` — final-state validated electrical design, every number traced to a script.
109- `phase2-nec-checklist.md` — Art. 690 + 480/705/706/710 for the full build, computed evidence.
110- `phase2-bom.md` — added equipment (inverter, 1–2 batteries, wire, OCPD, fusing, combiner,
111 busbar, lugs), quantities from the calcs, **panels $0 (already owned)**, cost estimates labeled.
112- `sld.{png,svg}`, `dc-strings.{png,svg}`, `battery-wiring.{png,svg}` — final state.
113- `phase2-open-issues.md` — inverter/battery decisions, NFPA 855 gate, datasheet gaps, assumptions.
114
115## 8. Acceptance criteria
116- Full-pallet cold-Voc passes with margin, ≤ 7S, computed by `01`/`01b` (not estimated).
117- Every conductor (incl. 12 kW AC feeder + battery bank) has an ampacity calc with derates ≥ its
118 corrected continuous current, and a voltage-drop figure within target.
119- Battery bank discharge at 12 kW is within per-pack BMS + inverter limits, shown numerically.
120- Full-pallet production vs the real load shown by season (already: meets all seasons).
121- Schematics match calc outputs exactly; NFPA 855 gate flagged.
122- No unverified number anywhere.
123
124## 9. Working approach
125Confirm §3/§4 with the owner first (the **inverter choice drives everything** — ask it first).
126Then fan out per dimension (string / conductors+Vdrop / battery bank / NEC / diagrams), each calling
127its grounded script, then synthesize. Adversarially double-check the full-pallet cold-Voc string
128result. Keep the generator AC-IN and propane-heat assumptions explicit.
129
130## 10. Reference docs (read for context)
131- **Phase-1 outputs (read first):** `artifacts/electrical-design.md`, `artifacts/nec-checklist.md`,
132 `artifacts/bom-electrical.md`, `artifacts/open-issues.md`, `artifacts/results/*.json`, `site.yaml`,
133 `data/hardwick_usage.csv`, and `scripts/` (01–09, `common.py`, `nec_tables.py`).
134- `../PRSM Solar Build - Key Decisions.md` — locked build decisions, Phase-2 phasing (§44/§64/§76/§108).
135- `../PRSM Solar Build - Swarm Review.md` — Phase-2 inverter path (§10), battery target (§6),
136 NFPA 855 (§4), AC topology (§17), BMS comms caveat (§9).
137- `../Claude Code for Solar Design - Research.md` — grounding-stack rationale.
138- `HANDOFF.md` — the Phase-1 handoff (this is its sequel; mirror its rigor).
HANDOFF.md +93 -0
……@@ -0,0 +1,93 @@
1---
2title: PRSM Solar — Electrical Design Review (Handoff)
3project: PRSM
4type: session-handoff
5created: 2026-06-02
6for: a fresh Claude Code session
7scope: ELECTRICAL ONLY — panels, wiring, inverter, battery. Housing/mounting EXCLUDED.
8---
9
10# Handoff: Electrical Design Review for PRSM Off-Grid Solar
11
12You are a fresh Claude Code session. Your job is to **review and validate the electrical configuration** of the PRSM off-grid solar build, produce a corrected electrical design, and render schematic-style diagrams. Every load-bearing number must be **computed/validated with NREL-grade Python**, not estimated.
13
14## 1. What is IN scope
15- DC PV array: module selection is fixed; you design **string configuration** (modules in series/parallel), per-MPPT assignment, and validate against the inverter's voltage/current window.
16- **Wiring & overcurrent**: PV source/output conductor sizing & ampacity (NEC 690.8), voltage drop across all runs, OCPD ratings, disconnects, combiner.
17- **Inverter** configuration: MPPT loading, PV-to-inverter conductors, AC output conductor + OCPD.
18- **Battery**: battery-to-inverter conductor sizing, overcurrent (Class-T fuse), BMS current limits, charge/discharge validation, runtime sanity check.
19- **Grounding/bonding** (690.43/690.47) and **labeling** (690.56/110.21) at SLD level.
20- **Schematic renderings** (see §6).
21
22## 2. What is OUT of scope (do NOT spend effort here)
23- Ground-mount structure, racking, foundations, snow/wind load, trenching civil work — **the owner already has construction materials and the mounting handled.**
24- Panel procurement/pricing, freight, $/W optimization — already decided.
25- Permitting strategy, incentives, insurance — covered in other PRSM docs.
26- Whole-system cost budgeting.
27
28## 3. Locked decisions (do not re-litigate)
29| Item | Decision |
30|---|---|
31| Architecture | DIY **off-grid** (no grid interconnection, no net metering) |
32| Panel module | **Waaree 575W Bifacial (Grade B)** — design anchor |
33| Active PV now | **~8 kW DC** (≈14 panels) into a single inverter; remaining pallet panels are future expansion, not wired now |
34| Inverter | **1× EG4 6000XP** (all-in-one off-grid, 8 kW PV cap, dual MPPT) |
35| Battery | **1× Docan S3**, 51.2V ~314Ah ≈16 kWh, JK 200A BMS |
36| Site | Rural Northeast Vermont (Northeast Kingdom) |
37| Renderings | **Python `schemdraw`** → SLD + string/battery wiring (PNG + SVG) |
38
39## 4. Inputs you MUST confirm before designing (do not assume)
40These drive everything downstream. Pull from datasheets / ask the owner; do not invent.
41
421. **Waaree 575W datasheet electricals** — Voc, Vmp, Isc, Imp, **temp coefficient of Voc (%/°C)**, max system voltage (1000/1500V). *(The exact Waaree 575W series, e.g. the bifacial 144-half-cell line, must be matched — there are multiple 575W SKUs.)*
432. **EG4 6000XP PV input limits** — max PV open-circuit voltage (≈500 VDC), **MPPT operating range** (≈120–385 V), max input current per MPPT, number of MPPTs (2), max PV array power per MPPT.
443. **EG4 6000XP battery + AC limits** — max continuous charge/discharge current to a 51.2V battery, AC continuous output (≈6 kW), AC output voltage (120/240 split-phase).
454. **Docan S3 limits** — nominal voltage, usable capacity, **max continuous charge/discharge current** and **peak** per the JK BMS, recommended fuse.
465. **Conductor run lengths** (one-way, feet) for voltage-drop: array→combiner, combiner→inverter (DC), inverter→battery, inverter→main/critical-loads panel. *Ask the owner — these come from the site layout.*
476. **NEC code cycle adopted by the AHJ** (2020 vs 2023 NEC) — Vermont DPS. Affects 690.12 and conductor rules.
487. **Site design temperatures** for `vocmax` — confirm **lat/lon** (NEK ≈ 44.5°N, −72.0°W); the library pulls NSRDB extreme-cold for the binding Voc case and 2% high for ampacity.
49
50If any of 1–4 can't be confirmed from a datasheet, **state the assumption explicitly and flag it** rather than proceeding silently.
51
52## 5. Validation method — NREL-grade Python is mandatory
53**Rule: never state a voltage, current, ampacity, string length, voltage-drop %, or kWh you did not compute by running a script.** Put scripts in `scripts/` and show your work.
54
55Required computations and the library that grounds each:
56- **String sizing / cold-weather Voc** → `vocmax` (NEC 690.7-compliant, NSRDB extreme-temp). Confirm max modules-in-series keeps cold Voc < inverter max PV V, and Vmp(hot) stays inside the MPPT window.
57- **Production / per-MPPT energy sanity** → `NREL-PySAM` (Pvwattsv8, `array_type=0` fixed open-rack) or the **PVWatts V8 API** by lat/lon. *(Note: PVWatts host migrated to `developer.nlr.gov` on 2026-05-29 — verify the live host.)*
58- **Cross-check IV/temperature behavior** → `pvlib` (single-diode, cell-temp models) as an independent second opinion on the vocmax result.
59- **Conductor ampacity & voltage drop** → compute in Python from NEC 690.8 (125% × 125% continuous for PV source, temp + conduit-fill derates from NEC 310.15 tables) and standard Vdrop = 2·L·I·ρ/A. Encode the NEC ampacity tables you use; cite the table.
60- **Battery runtime / C-rate sanity** → simple Python: usable kWh ÷ load, and verify inverter discharge current and BMS limit aren't exceeded at 6 kW AC.
61
62Each script prints its inputs, the formula/NEC section, and the result. The final design references script outputs by filename.
63
64## 6. Schematic deliverables (schemdraw)
65Render with the `schemdraw` Python library (electrical-schematic primitives), export **both PNG and SVG**:
661. **System single-line diagram (SLD)** — array → DC disconnect/combiner → inverter (PV in, battery, AC out) → critical-loads/main panel, with OCPD ratings, disconnect ratings, conductor sizes, and the 690.12 rapid-shutdown note (check 2023 Exc. 2 applicability for a non-enclosed ground-mount).
672. **DC string wiring diagram** — module-level: how the ~14 panels group into strings across the two MPPTs, polarity, combiner, fusing.
683. **Battery wiring diagram** — inverter ↔ Docan S3: cable gauge, Class-T fuse, battery disconnect, BMS comms link (RS485/CAN to the 6000XP).
69
70Diagrams must be **internally consistent with the computed numbers** — the gauge on the drawing equals the gauge the ampacity script produced. Label every conductor and OCPD.
71
72## 7. Deliverables (write these to `artifacts/`)
73- `electrical-design.md` — the corrected, validated electrical design narrative with every number traced to a script.
74- `nec-checklist.md` — Article 690 + 480/710 section-by-section pass/fail with the computed evidence.
75- `bom-electrical.md` — wire (gauge + length), OCPDs, disconnects, fuses, combiner, lugs, connectors — quantities from the calcs.
76- `sld.png` / `sld.svg`, `dc-strings.png/.svg`, `battery-wiring.png/.svg`.
77- `open-issues.md` — anything you couldn't validate, assumptions flagged, datasheet gaps.
78
79## 8. Acceptance criteria
80- Cold-Voc string check passes with margin against the 6000XP max PV voltage, computed by `vocmax` (not estimated).
81- Hot-Vmp stays inside the MPPT operating window across the temperature range.
82- Every conductor has an ampacity calc (with derates) ≥ its corrected continuous current, and a voltage-drop figure ≤ 2% DC / ≤ 1% battery (or the threshold you justify).
83- Battery discharge at full 6 kW AC is within both inverter and BMS current limits, shown numerically.
84- Schematics match the calc outputs exactly.
85- No unverified number anywhere in the final design.
86
87## 9. Working approach
88Confirm §4 inputs first (ask the owner the run-length and AHJ questions up front). Then optionally fan out subagents per dimension (string sizing / conductors+Vdrop / battery / NEC / schematics), each calling its grounded script, then synthesize. Adversarially double-check the string-voltage result — a cold-Voc error is a safety issue, not a typo.
89
90## 10. Reference docs (read for context, in this folder's parent)
91- `PRSM Solar Build - Key Decisions.md` — the locked build decisions.
92- `PRSM Solar Build - Swarm Review.md` — prior review; note the JK BMS ↔ 6000XP RS485 comms caveat and the heated-battery/fire-code notes.
93- `Claude Code for Solar Design - Research.md` — the grounding-stack rationale and library details.
KICKOFF-PROMPT-PHASE2.md +52 -0
……@@ -0,0 +1,52 @@
1# Kickoff prompt — Phase 2 (paste into the fresh Claude Code session)
2
3Start the session with its working directory set to this `electrical-review/` folder
4(so it picks up `CLAUDE.md` automatically), then paste everything below the line.
5
6---
7
8Read `HANDOFF-PHASE2.md` and `CLAUDE.md` in this folder first — they are the authoritative
9scope and task list. Then read the **Phase-1 outputs you are building on**: `artifacts/electrical-design.md`,
10`artifacts/open-issues.md`, `site.yaml`, `data/hardwick_usage.csv`, `artifacts/results/*.json`,
11and the scripts in `scripts/` (01–09, `common.py`, `nec_tables.py`). Also skim the three
12reference docs in the parent `prsm/` folder (Key Decisions, Swarm Review, Claude Code for Solar Design).
13
14You are doing the **Phase 2 / final-state electrical design** of the PRSM off-grid solar build.
15**Phase 1 is already designed and validated — do not redo it; extend it.** Phase 2 wires the
16**remaining 17 Waaree 575W panels (full 31-panel pallet, 17.8 kW)** to meet the owner's real
17Hardwick Electric load (**12,237 kWh/yr, summer-peaking to 54 kWh/day**), which requires expanding
18the inverter (the single 6000XP's 8 kW PV input is already maxed) and the battery bank. Structure,
19the battery shed, and fire-code are out of scope (flag NFPA 855 as a gate, don't engineer it).
20
21Before designing, confirm the inputs in HANDOFF-PHASE2 §3–§4 and **ask me these up front** (the
22inverter choice drives everything downstream):
231. **Inverter path** — (A) parallel a 2nd EG4 6000XP (~$1,700, cheaper, two JK-BMS↔Pylontech-CAN
24 comms) or (B) sell the 6000XP and fit a single **EG4 18kPV** (~$3,500–3,700 net, single comms;
25 Swarm §10 recommends for >10 kW)?
262. **Battery count** — 2 packs (25.7 kWh usable, Swarm §6 minimum) or 3 packs (38.6 kWh, ~1 day
27 autonomy at average load, but crosses the NFPA 855 48-kWh threshold)?
283. **Battery siting** — detached shed location (required at 3 packs) → the new inverter↔battery run length.
294. **New run lengths** — array→new strings, inverter↔added battery packs, any new trench leg.
30If path B, also pull the **EG4 18kPV datasheet** electricals and flag anything you can't confirm.
31
32Then:
331. Re-string the **full 31-panel pallet** across the chosen inverter's MPPTs with
34 `scripts/01_string_sizing.py` (+ `01b_vocmax.py`): cold-Voc ≤ 480 V design ceiling, **≤ 7 modules/series**
35 (8S = 491 V, unsafe), hot/cold Vmp inside the MPPT window. Adversarially double-check it.
362. Size **all conductors + OCPD** for the final state with `scripts/03_conductors.py` (`nec_tables.py`):
37 12 kW AC feeder, the added PV strings (combiner?), and the battery bank — NEC 690.8 + 310.15 derates + Vdrop.
383. Validate the **battery bank** with `scripts/04_battery.py`: discharge at 12 kW (~252 A) split across
39 2–3 packs, per-pack vs bank Class-T fusing, C-rate, autonomy vs the real load (reuse `common.load_usage()`).
404. Confirm **production vs load** for the full pallet (`02`/`08`/`09` — already ~20,962 kWh/yr, meets every season).
415. Run the **NEC 690 + 480/705/706/710 checklist** for the final build with `scripts/05_nec_checklist.py`.
426. Render the **final-state SLD + DC-string + battery-wiring** diagrams with `scripts/06_schematics.py`
43 (extend it) → `artifacts/phase2/` (PNG + SVG), matching the computed numbers exactly.
44
45Obey the CLAUDE.md rule: **no number in the final design that you didn't compute with a script.**
46Create a Phase-2 config (extend `site.yaml` with a `phase2:` block or add `site-phase2.yaml`; keep
47`site.yaml` the single source). Write all deliverables to `artifacts/phase2/` per HANDOFF-PHASE2 §7.
48Fan out subagents per dimension if useful, and adversarially double-check the full-pallet cold-Voc result.
49
50Start by confirming scope and asking me the four questions above.
51
52---
KICKOFF-PROMPT.md +39 -0
……@@ -0,0 +1,39 @@
1# Kickoff prompt — paste into the fresh Claude Code session
2
3Start the session with its working directory set to this `electrical-review/` folder
4(so it picks up `CLAUDE.md` automatically), then paste:
5
6---
7
8Read `HANDOFF.md` and `CLAUDE.md` in this folder, plus the three reference docs in the
9parent `prsm/` folder (Key Decisions, Swarm Review, Claude Code for Solar Design).
10
11You are doing a **narrow electrical design review** of the PRSM off-grid solar build:
12panel string configuration, wiring/overcurrent, inverter MPPT loading, and battery
13wiring — for 1× EG4 6000XP fed by ~8 kW of Waaree 575W Grade B panels, with 1× Docan S3
1416 kWh battery, off-grid in Northeast Vermont. Structure/mounting is already handled and
15is out of scope.
16
17Before designing, confirm the inputs in HANDOFF §4 — pull the Waaree 575W, EG4 6000XP, and
18Docan S3 datasheet electricals, and **ask me** for the four conductor run-lengths and which
19NEC cycle (2020 vs 2023) my AHJ has adopted. Flag any spec you can't confirm.
20
21Then:
221. Set up the venv (`pip install -r requirements.txt`) and get an NREL API key working.
232. Validate the **string configuration** with `vocmax` (cold-Voc < inverter max PV V) and
24 cross-check with `pvlib`; confirm hot-Vmp stays in the 6000XP MPPT window.
253. Size **conductors** (NEC 690.8, with 310.15 derates) and compute **voltage drop** for
26 every run, in Python.
274. Validate **battery** discharge at full 6 kW against the inverter and JK-BMS current
28 limits; pick the Class-T fuse and cable gauge.
295. Run an **NEC 690 + 480/710 checklist** with computed evidence.
306. Render the **SLD + DC-string + battery-wiring** schematics with `schemdraw` (PNG + SVG),
31 matching the computed numbers exactly.
32
33Obey the CLAUDE.md rule: **no number in the final design that you didn't compute with a
34script.** Write all deliverables to `artifacts/`. Fan out subagents per dimension if useful,
35and adversarially double-check the cold-Voc string result — it's a safety constraint.
36
37Start by confirming scope and asking me the run-length and NEC-cycle questions.
38
39---
artifacts/README.md +22 -0
……@@ -0,0 +1,22 @@
1# PRSM Off-Grid Solar — Electrical Deliverables Index
2
3> **SELECTED BUILD = Path A (2× EG4 6000XP).** Owner decision 2026-06-03. Path B (18kPV) is retained as the documented alternative.
4> Every number in these deliverables is computed by a script in [`../scripts/`](../scripts/) and cited — nothing estimated (CLAUDE.md rule).
5
6| Stage | System | Status | Folder | Start here |
7|---|---|---|---|---|
8| **Phase 1** | 14× 575W (8.05 kW) → 1× 6000XP → 1× Docan S3 | ✅ validated | [`./`](.) (this folder) | [electrical-design.md](electrical-design.md) |
9| **Phase 2 — SELECTED** | **28× 575W (16.1 kW, 4×7S) + 3 spares → 2× 6000XP (parallel) → 2× Docan S3** | 🟢 **the build** | [`phase2/`](phase2/) | [phase2/phase2-design.md](phase2/phase2-design.md) |
10| **Phase 2 — alternative** | 31× 575W (17.8 kW, 8+8+8+7S) → 1× EG4 18kPV → 2× Docan S3 | 📦 retained | [`phase2-pathB/`](phase2-pathB/) | [phase2-pathB/phase2-design.md](phase2-pathB/phase2-design.md) |
11
12**Selected build at a glance:** 4×7S (430 V cold Voc, ≤480 V) · 8 AWG PV / 2×35→70 A AC / 2/0 battery · 4× 175 A Class-T ·
13126 A/pack (17% under BMS) + 126 A/inverter (14 A under 140 A) · 19,213 kWh/yr (157% of the 12,237 kWh/yr load) · ~$4,260–5,200 added (panels $0).
14
15**Why Path A:** 3 spare panels (Grade-B, no warranty) + N+1 inverter redundancy + ~$1,900 cheaper + a conservative 7S string,
16accepting 9% less production and a battery/generator-backfilled August peak. Full A-vs-B comparison: [phase2/phase2-design.md §6](phase2/phase2-design.md).
17
18**Each Phase-2 folder contains:** `phase2-design.md` · `phase2-nec-checklist.md` · `phase2-bom.md` · `phase2-open-issues.md` · `sld` / `dc-strings` / `battery-wiring` (PNG + SVG).
19**Computed results:** [`results/*.json`](results/) (Phase-1 `*.json`, Path B `*_phase2.json`, Path A `11_pathA.json` + `10_compare.json`).
20**Open gate (both paths, out of scope):** NFPA 855 / VT fire code — pre-clear with VT DPS before ordering the 2nd battery pack.
21
22**Reproduce:** Path A → `python scripts/11_pathA.py && python scripts/06_schematics.py --pathA` · Path B → `python scripts/0N_*.py --phase2` · Phase 1 → `python scripts/0N_*.py` (venv: `~/.venvs/prsm-electrical`).
artifacts/battery-wiring.png +0 -0
(no content changes — binary or rename)
artifacts/battery-wiring.svg +2015 -0
……@@ -0,0 +1,2015 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="483.51375pt" height="264.24pt" viewBox="0 0 483.51375 264.24" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T01:20:58.756319</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M 0 264.24
25L 483.51375 264.24
26L 483.51375 0
27L 0 0
28L 0 264.24
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="line2d_1">
34 <path d="M 121.34826 153.136595
35L 211.205435 153.136595
36L 211.205435 63.27942
37L 121.34826 63.27942
38L 121.34826 153.136595
39" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
40 </g>
41 <g id="line2d_2">
42 <path d="M 211.205435 86.642285
43L 229.17687 86.642285
44" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
45 </g>
46 <g id="line2d_3">
47 <path d="M 211.205435 129.773729
48L 229.17687 129.773729
49" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
50 </g>
51 <g id="line2d_4">
52 <path d="M 166.276848 153.136595
53L 166.276848 171.10803
54" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
55 </g>
56 <g id="line2d_5">
57 <path d="M 229.17687 86.642285
58L 252.539736 86.642285
59L 275.902602 86.642285
60" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
61 </g>
62 <g id="line2d_6">
63 <path d="M 275.902602 86.642285
64L 301.062611 86.642285
65L 301.062611 77.656568
66L 337.005481 77.656568
67L 337.005481 95.628003
68L 301.062611 95.628003
69L 301.062611 86.642285
70M 337.005481 86.642285
71L 362.16549 86.642285
72" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
73 </g>
74 <g id="line2d_7">
75 <path d="M 301.062611 86.642285
76L 337.005481 86.642285
77" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
78 </g>
79 <g id="line2d_8">
80 <path d="M 362.16549 86.642285
81M 370.791779 83.047998
82L 390.919786 70.467994
83M 398.10836 86.642285
84" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
85 </g>
86 <g id="line2d_9">
87 <path d="M 370.791779 118.990868
88L 390.919786 106.410864
89" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
90 </g>
91 <g id="line2d_10">
92 <path d="M 380.136925 113.599438
93L 380.136925 79.453711
94" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
95 </g>
96 <g id="line2d_11">
97 <path d="M 362.16549 86.642285
98L 392.716929 86.642285
99L 423.268369 86.642285
100" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
101 </g>
102 <g id="line2d_12">
103 <path d="M 423.268369 86.642285
104L 423.268369 119.664797
105M 423.268369 139.882662
106L 423.268369 172.905173
107" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
108 </g>
109 <g id="line2d_13">
110 <path d="M 436.746945 119.664797
111L 409.789793 119.664797
112" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
113 </g>
114 <g id="line2d_14">
115 <path d="M 430.007657 126.404085
116L 416.529081 126.404085
117" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
118 </g>
119 <g id="line2d_15">
120 <path d="M 436.746945 133.143373
121L 409.789793 133.143373
122" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
123 </g>
124 <g id="line2d_16">
125 <path d="M 430.007657 139.882662
126L 416.529081 139.882662
127" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
128 </g>
129 <g id="line2d_17">
130 <path d="M 423.268369 172.905173
131L 326.22262 172.905173
132L 229.17687 172.905173
133" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
134 </g>
135 <g id="line2d_18">
136 <path d="M 229.17687 172.905173
137L 229.17687 151.339451
138L 229.17687 129.773729
139" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
140 </g>
141 <g id="line2d_19">
142 <path d="M 166.276848 171.10803
143L 166.276848 199.862326
144L 166.276848 228.616622
145" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
146 </g>
147 <g id="line2d_20">
148 <path d="M 166.276848 228.616622
149L 259.72831 228.616622
150L 353.179772 228.616622
151" clip-path="url(#pf9cfadb92a)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
152 </g>
153 <g id="text_1">
154 <!-- BATP -->
155 <g transform="translate(170.724317 90.50541) scale(0.14 -0.14)">
156 <defs>
157 <path id="DejaVuSans-42" d="M 1259 2228
158L 1259 519
159L 2272 519
160Q 2781 519 3026 730
161Q 3272 941 3272 1375
162Q 3272 1813 3026 2020
163Q 2781 2228 2272 2228
164L 1259 2228
165z
166M 1259 4147
167L 1259 2741
168L 2194 2741
169Q 2656 2741 2882 2914
170Q 3109 3088 3109 3444
171Q 3109 3797 2882 3972
172Q 2656 4147 2194 4147
173L 1259 4147
174z
175M 628 4666
176L 2241 4666
177Q 2963 4666 3353 4366
178Q 3744 4066 3744 3513
179Q 3744 3084 3544 2831
180Q 3344 2578 2956 2516
181Q 3422 2416 3680 2098
182Q 3938 1781 3938 1306
183Q 3938 681 3513 340
184Q 3088 0 2303 0
185L 628 0
186L 628 4666
187z
188" transform="scale(0.015625)"/>
189 <path id="DejaVuSans-41" d="M 2188 4044
190L 1331 1722
191L 3047 1722
192L 2188 4044
193z
194M 1831 4666
195L 2547 4666
196L 4325 0
197L 3669 0
198L 3244 1197
199L 1141 1197
200L 716 0
201L 50 0
202L 1831 4666
203z
204" transform="scale(0.015625)"/>
205 <path id="DejaVuSans-54" d="M -19 4666
206L 3928 4666
207L 3928 4134
208L 2272 4134
209L 2272 0
210L 1638 0
211L 1638 4134
212L -19 4134
213L -19 4666
214z
215" transform="scale(0.015625)"/>
216 <path id="DejaVuSans-50" d="M 1259 4147
217L 1259 2394
218L 2053 2394
219Q 2494 2394 2734 2622
220Q 2975 2850 2975 3272
221Q 2975 3691 2734 3919
222Q 2494 4147 2053 4147
223L 1259 4147
224z
225M 628 4666
226L 2053 4666
227Q 2838 4666 3239 4311
228Q 3641 3956 3641 3272
229Q 3641 2581 3239 2228
230Q 2838 1875 2053 1875
231L 1259 1875
232L 1259 0
233L 628 0
234L 628 4666
235z
236" transform="scale(0.015625)"/>
237 </defs>
238 <use xlink:href="#DejaVuSans-42"/>
239 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
240 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
241 <use xlink:href="#DejaVuSans-50" transform="translate(190.345703 0)"/>
242 </g>
243 </g>
244 <g id="text_2">
245 <!-- BATN -->
246 <g transform="translate(168.69213 133.636854) scale(0.14 -0.14)">
247 <defs>
248 <path id="DejaVuSans-4e" d="M 628 4666
249L 1478 4666
250L 3547 763
251L 3547 4666
252L 4159 4666
253L 4159 0
254L 3309 0
255L 1241 3903
256L 1241 0
257L 628 0
258L 628 4666
259z
260" transform="scale(0.015625)"/>
261 </defs>
262 <use xlink:href="#DejaVuSans-42"/>
263 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
264 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
265 <use xlink:href="#DejaVuSans-4e" transform="translate(190.345703 0)"/>
266 </g>
267 </g>
268 <g id="text_3">
269 <!-- COM -->
270 <g transform="translate(149.838879 144.833602) scale(0.14 -0.14)">
271 <defs>
272 <path id="DejaVuSans-43" d="M 4122 4306
273L 4122 3641
274Q 3803 3938 3442 4084
275Q 3081 4231 2675 4231
276Q 1875 4231 1450 3742
277Q 1025 3253 1025 2328
278Q 1025 1406 1450 917
279Q 1875 428 2675 428
280Q 3081 428 3442 575
281Q 3803 722 4122 1019
282L 4122 359
283Q 3791 134 3420 21
284Q 3050 -91 2638 -91
285Q 1578 -91 968 557
286Q 359 1206 359 2328
287Q 359 3453 968 4101
288Q 1578 4750 2638 4750
289Q 3056 4750 3426 4639
290Q 3797 4528 4122 4306
291z
292" transform="scale(0.015625)"/>
293 <path id="DejaVuSans-4f" d="M 2522 4238
294Q 1834 4238 1429 3725
295Q 1025 3213 1025 2328
296Q 1025 1447 1429 934
297Q 1834 422 2522 422
298Q 3209 422 3611 934
299Q 4013 1447 4013 2328
300Q 4013 3213 3611 3725
301Q 3209 4238 2522 4238
302z
303M 2522 4750
304Q 3503 4750 4090 4092
305Q 4678 3434 4678 2328
306Q 4678 1225 4090 567
307Q 3503 -91 2522 -91
308Q 1538 -91 948 565
309Q 359 1222 359 2328
310Q 359 3434 948 4092
311Q 1538 4750 2522 4750
312z
313" transform="scale(0.015625)"/>
314 <path id="DejaVuSans-4d" d="M 628 4666
315L 1569 4666
316L 2759 1491
317L 3956 4666
318L 4897 4666
319L 4897 0
320L 4281 0
321L 4281 4097
322L 3078 897
323L 2444 897
324L 1241 4097
325L 1241 0
326L 628 0
327L 628 4666
328z
329" transform="scale(0.015625)"/>
330 </defs>
331 <use xlink:href="#DejaVuSans-43"/>
332 <use xlink:href="#DejaVuSans-4f" transform="translate(69.824219 0)"/>
333 <use xlink:href="#DejaVuSans-4d" transform="translate(148.535156 0)"/>
334 </g>
335 </g>
336 <g id="text_4">
337 <!-- EG4 6000XP -->
338 <g transform="translate(141.99926 98.386845) scale(0.09 -0.09)">
339 <defs>
340 <path id="DejaVuSans-45" d="M 628 4666
341L 3578 4666
342L 3578 4134
343L 1259 4134
344L 1259 2753
345L 3481 2753
346L 3481 2222
347L 1259 2222
348L 1259 531
349L 3634 531
350L 3634 0
351L 628 0
352L 628 4666
353z
354" transform="scale(0.015625)"/>
355 <path id="DejaVuSans-47" d="M 3809 666
356L 3809 1919
357L 2778 1919
358L 2778 2438
359L 4434 2438
360L 4434 434
361Q 4069 175 3628 42
362Q 3188 -91 2688 -91
363Q 1594 -91 976 548
364Q 359 1188 359 2328
365Q 359 3472 976 4111
366Q 1594 4750 2688 4750
367Q 3144 4750 3555 4637
368Q 3966 4525 4313 4306
369L 4313 3634
370Q 3963 3931 3569 4081
371Q 3175 4231 2741 4231
372Q 1884 4231 1454 3753
373Q 1025 3275 1025 2328
374Q 1025 1384 1454 906
375Q 1884 428 2741 428
376Q 3075 428 3337 486
377Q 3600 544 3809 666
378z
379" transform="scale(0.015625)"/>
380 <path id="DejaVuSans-34" d="M 2419 4116
381L 825 1625
382L 2419 1625
383L 2419 4116
384z
385M 2253 4666
386L 3047 4666
387L 3047 1625
388L 3713 1625
389L 3713 1100
390L 3047 1100
391L 3047 0
392L 2419 0
393L 2419 1100
394L 313 1100
395L 313 1709
396L 2253 4666
397z
398" transform="scale(0.015625)"/>
399 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
400 <path id="DejaVuSans-36" d="M 2113 2584
401Q 1688 2584 1439 2293
402Q 1191 2003 1191 1497
403Q 1191 994 1439 701
404Q 1688 409 2113 409
405Q 2538 409 2786 701
406Q 3034 994 3034 1497
407Q 3034 2003 2786 2293
408Q 2538 2584 2113 2584
409z
410M 3366 4563
411L 3366 3988
412Q 3128 4100 2886 4159
413Q 2644 4219 2406 4219
414Q 1781 4219 1451 3797
415Q 1122 3375 1075 2522
416Q 1259 2794 1537 2939
417Q 1816 3084 2150 3084
418Q 2853 3084 3261 2657
419Q 3669 2231 3669 1497
420Q 3669 778 3244 343
421Q 2819 -91 2113 -91
422Q 1303 -91 875 529
423Q 447 1150 447 2328
424Q 447 3434 972 4092
425Q 1497 4750 2381 4750
426Q 2619 4750 2861 4703
427Q 3103 4656 3366 4563
428z
429" transform="scale(0.015625)"/>
430 <path id="DejaVuSans-30" d="M 2034 4250
431Q 1547 4250 1301 3770
432Q 1056 3291 1056 2328
433Q 1056 1369 1301 889
434Q 1547 409 2034 409
435Q 2525 409 2770 889
436Q 3016 1369 3016 2328
437Q 3016 3291 2770 3770
438Q 2525 4250 2034 4250
439z
440M 2034 4750
441Q 2819 4750 3233 4129
442Q 3647 3509 3647 2328
443Q 3647 1150 3233 529
444Q 2819 -91 2034 -91
445Q 1250 -91 836 529
446Q 422 1150 422 2328
447Q 422 3509 836 4129
448Q 1250 4750 2034 4750
449z
450" transform="scale(0.015625)"/>
451 <path id="DejaVuSans-58" d="M 403 4666
452L 1081 4666
453L 2241 2931
454L 3406 4666
455L 4084 4666
456L 2584 2425
457L 4184 0
458L 3506 0
459L 2194 1984
460L 872 0
461L 191 0
462L 1856 2491
463L 403 4666
464z
465" transform="scale(0.015625)"/>
466 </defs>
467 <use xlink:href="#DejaVuSans-45"/>
468 <use xlink:href="#DejaVuSans-47" transform="translate(63.183594 0)"/>
469 <use xlink:href="#DejaVuSans-34" transform="translate(140.673828 0)"/>
470 <use xlink:href="#DejaVuSans-20" transform="translate(204.296875 0)"/>
471 <use xlink:href="#DejaVuSans-36" transform="translate(236.083984 0)"/>
472 <use xlink:href="#DejaVuSans-30" transform="translate(299.707031 0)"/>
473 <use xlink:href="#DejaVuSans-30" transform="translate(363.330078 0)"/>
474 <use xlink:href="#DejaVuSans-30" transform="translate(426.953125 0)"/>
475 <use xlink:href="#DejaVuSans-58" transform="translate(490.576172 0)"/>
476 <use xlink:href="#DejaVuSans-50" transform="translate(559.082031 0)"/>
477 </g>
478 <!-- BAT 46.4–60V -->
479 <g transform="translate(138.801447 107.097158) scale(0.09 -0.09)">
480 <defs>
481 <path id="DejaVuSans-2e" d="M 684 794
482L 1344 794
483L 1344 0
484L 684 0
485L 684 794
486z
487" transform="scale(0.015625)"/>
488 <path id="DejaVuSans-2013" d="M 313 1978
489L 2888 1978
490L 2888 1528
491L 313 1528
492L 313 1978
493z
494" transform="scale(0.015625)"/>
495 <path id="DejaVuSans-56" d="M 1831 0
496L 50 4666
497L 709 4666
498L 2188 738
499L 3669 4666
500L 4325 4666
501L 2547 0
502L 1831 0
503z
504" transform="scale(0.015625)"/>
505 </defs>
506 <use xlink:href="#DejaVuSans-42"/>
507 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
508 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
509 <use xlink:href="#DejaVuSans-20" transform="translate(190.345703 0)"/>
510 <use xlink:href="#DejaVuSans-34" transform="translate(222.132812 0)"/>
511 <use xlink:href="#DejaVuSans-36" transform="translate(285.755859 0)"/>
512 <use xlink:href="#DejaVuSans-2e" transform="translate(349.378906 0)"/>
513 <use xlink:href="#DejaVuSans-34" transform="translate(381.166016 0)"/>
514 <use xlink:href="#DejaVuSans-2013" transform="translate(444.789062 0)"/>
515 <use xlink:href="#DejaVuSans-36" transform="translate(494.789062 0)"/>
516 <use xlink:href="#DejaVuSans-30" transform="translate(558.412109 0)"/>
517 <use xlink:href="#DejaVuSans-56" transform="translate(622.035156 0)"/>
518 </g>
519 <!-- max 140A dis -->
520 <g transform="translate(139.087619 115.80747) scale(0.09 -0.09)">
521 <defs>
522 <path id="DejaVuSans-6d" d="M 3328 2828
523Q 3544 3216 3844 3400
524Q 4144 3584 4550 3584
525Q 5097 3584 5394 3201
526Q 5691 2819 5691 2113
527L 5691 0
528L 5113 0
529L 5113 2094
530Q 5113 2597 4934 2840
531Q 4756 3084 4391 3084
532Q 3944 3084 3684 2787
533Q 3425 2491 3425 1978
534L 3425 0
535L 2847 0
536L 2847 2094
537Q 2847 2600 2669 2842
538Q 2491 3084 2119 3084
539Q 1678 3084 1418 2786
540Q 1159 2488 1159 1978
541L 1159 0
542L 581 0
543L 581 3500
544L 1159 3500
545L 1159 2956
546Q 1356 3278 1631 3431
547Q 1906 3584 2284 3584
548Q 2666 3584 2933 3390
549Q 3200 3197 3328 2828
550z
551" transform="scale(0.015625)"/>
552 <path id="DejaVuSans-61" d="M 2194 1759
553Q 1497 1759 1228 1600
554Q 959 1441 959 1056
555Q 959 750 1161 570
556Q 1363 391 1709 391
557Q 2188 391 2477 730
558Q 2766 1069 2766 1631
559L 2766 1759
560L 2194 1759
561z
562M 3341 1997
563L 3341 0
564L 2766 0
565L 2766 531
566Q 2569 213 2275 61
567Q 1981 -91 1556 -91
568Q 1019 -91 701 211
569Q 384 513 384 1019
570Q 384 1609 779 1909
571Q 1175 2209 1959 2209
572L 2766 2209
573L 2766 2266
574Q 2766 2663 2505 2880
575Q 2244 3097 1772 3097
576Q 1472 3097 1187 3025
577Q 903 2953 641 2809
578L 641 3341
579Q 956 3463 1253 3523
580Q 1550 3584 1831 3584
581Q 2591 3584 2966 3190
582Q 3341 2797 3341 1997
583z
584" transform="scale(0.015625)"/>
585 <path id="DejaVuSans-78" d="M 3513 3500
586L 2247 1797
587L 3578 0
588L 2900 0
589L 1881 1375
590L 863 0
591L 184 0
592L 1544 1831
593L 300 3500
594L 978 3500
595L 1906 2253
596L 2834 3500
597L 3513 3500
598z
599" transform="scale(0.015625)"/>
600 <path id="DejaVuSans-31" d="M 794 531
601L 1825 531
602L 1825 4091
603L 703 3866
604L 703 4441
605L 1819 4666
606L 2450 4666
607L 2450 531
608L 3481 531
609L 3481 0
610L 794 0
611L 794 531
612z
613" transform="scale(0.015625)"/>
614 <path id="DejaVuSans-64" d="M 2906 2969
615L 2906 4863
616L 3481 4863
617L 3481 0
618L 2906 0
619L 2906 525
620Q 2725 213 2448 61
621Q 2172 -91 1784 -91
622Q 1150 -91 751 415
623Q 353 922 353 1747
624Q 353 2572 751 3078
625Q 1150 3584 1784 3584
626Q 2172 3584 2448 3432
627Q 2725 3281 2906 2969
628z
629M 947 1747
630Q 947 1113 1208 752
631Q 1469 391 1925 391
632Q 2381 391 2643 752
633Q 2906 1113 2906 1747
634Q 2906 2381 2643 2742
635Q 2381 3103 1925 3103
636Q 1469 3103 1208 2742
637Q 947 2381 947 1747
638z
639" transform="scale(0.015625)"/>
640 <path id="DejaVuSans-69" d="M 603 3500
641L 1178 3500
642L 1178 0
643L 603 0
644L 603 3500
645z
646M 603 4863
647L 1178 4863
648L 1178 4134
649L 603 4134
650L 603 4863
651z
652" transform="scale(0.015625)"/>
653 <path id="DejaVuSans-73" d="M 2834 3397
654L 2834 2853
655Q 2591 2978 2328 3040
656Q 2066 3103 1784 3103
657Q 1356 3103 1142 2972
658Q 928 2841 928 2578
659Q 928 2378 1081 2264
660Q 1234 2150 1697 2047
661L 1894 2003
662Q 2506 1872 2764 1633
663Q 3022 1394 3022 966
664Q 3022 478 2636 193
665Q 2250 -91 1575 -91
666Q 1294 -91 989 -36
667Q 684 19 347 128
668L 347 722
669Q 666 556 975 473
670Q 1284 391 1588 391
671Q 1994 391 2212 530
672Q 2431 669 2431 922
673Q 2431 1156 2273 1281
674Q 2116 1406 1581 1522
675L 1381 1569
676Q 847 1681 609 1914
677Q 372 2147 372 2553
678Q 372 3047 722 3315
679Q 1072 3584 1716 3584
680Q 2034 3584 2315 3537
681Q 2597 3491 2834 3397
682z
683" transform="scale(0.015625)"/>
684 </defs>
685 <use xlink:href="#DejaVuSans-6d"/>
686 <use xlink:href="#DejaVuSans-61" transform="translate(97.412109 0)"/>
687 <use xlink:href="#DejaVuSans-78" transform="translate(158.691406 0)"/>
688 <use xlink:href="#DejaVuSans-20" transform="translate(217.871094 0)"/>
689 <use xlink:href="#DejaVuSans-31" transform="translate(249.658203 0)"/>
690 <use xlink:href="#DejaVuSans-34" transform="translate(313.28125 0)"/>
691 <use xlink:href="#DejaVuSans-30" transform="translate(376.904297 0)"/>
692 <use xlink:href="#DejaVuSans-41" transform="translate(440.527344 0)"/>
693 <use xlink:href="#DejaVuSans-20" transform="translate(508.935547 0)"/>
694 <use xlink:href="#DejaVuSans-64" transform="translate(540.722656 0)"/>
695 <use xlink:href="#DejaVuSans-69" transform="translate(604.199219 0)"/>
696 <use xlink:href="#DejaVuSans-73" transform="translate(631.982422 0)"/>
697 </g>
698 </g>
699 <g id="text_5">
700 <!-- + -->
701 <g transform="translate(248.349892 80.968311) scale(0.1 -0.1)">
702 <defs>
703 <path id="DejaVuSans-2b" d="M 2944 4013
704L 2944 2272
705L 4684 2272
706L 4684 1741
707L 2944 1741
708L 2944 0
709L 2419 0
710L 2419 1741
711L 678 1741
712L 678 2272
713L 2419 2272
714L 2419 4013
715L 2944 4013
716z
717" transform="scale(0.015625)"/>
718 </defs>
719 <use xlink:href="#DejaVuSans-2b"/>
720 </g>
721 </g>
722 <g id="text_6">
723 <!-- 175A -->
724 <g transform="translate(306.069983 62.304468) scale(0.1 -0.1)">
725 <defs>
726 <path id="DejaVuSans-37" d="M 525 4666
727L 3525 4666
728L 3525 4397
729L 1831 0
730L 1172 0
731L 2766 4134
732L 525 4134
733L 525 4666
734z
735" transform="scale(0.015625)"/>
736 <path id="DejaVuSans-35" d="M 691 4666
737L 3169 4666
738L 3169 4134
739L 1269 4134
740L 1269 2991
741Q 1406 3038 1543 3061
742Q 1681 3084 1819 3084
743Q 2600 3084 3056 2656
744Q 3513 2228 3513 1497
745Q 3513 744 3044 326
746Q 2575 -91 1722 -91
747Q 1428 -91 1123 -41
748Q 819 9 494 109
749L 494 744
750Q 775 591 1075 516
751Q 1375 441 1709 441
752Q 2250 441 2565 725
753Q 2881 1009 2881 1497
754Q 2881 1984 2565 2268
755Q 2250 2553 1709 2553
756Q 1456 2553 1204 2497
757Q 953 2441 691 2322
758L 691 4666
759z
760" transform="scale(0.015625)"/>
761 </defs>
762 <use xlink:href="#DejaVuSans-31"/>
763 <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
764 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
765 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
766 </g>
767 <!-- Class-T -->
768 <g transform="translate(301.478577 71.982593) scale(0.1 -0.1)">
769 <defs>
770 <path id="DejaVuSans-6c" d="M 603 4863
771L 1178 4863
772L 1178 0
773L 603 0
774L 603 4863
775z
776" transform="scale(0.015625)"/>
777 <path id="DejaVuSans-2d" d="M 313 2009
778L 1997 2009
779L 1997 1497
780L 313 1497
781L 313 2009
782z
783" transform="scale(0.015625)"/>
784 </defs>
785 <use xlink:href="#DejaVuSans-43"/>
786 <use xlink:href="#DejaVuSans-6c" transform="translate(69.824219 0)"/>
787 <use xlink:href="#DejaVuSans-61" transform="translate(97.607422 0)"/>
788 <use xlink:href="#DejaVuSans-73" transform="translate(158.886719 0)"/>
789 <use xlink:href="#DejaVuSans-73" transform="translate(210.986328 0)"/>
790 <use xlink:href="#DejaVuSans-2d" transform="translate(263.085938 0)"/>
791 <use xlink:href="#DejaVuSans-54" transform="translate(290.044922 0)"/>
792 </g>
793 </g>
794 <g id="patch_2">
795 <path d="M 366.478634 90.95543
796C 367.622494 90.95543 368.719657 90.50097 369.528488 89.692139
797C 370.337319 88.883308 370.791779 87.786144 370.791779 86.642285
798C 370.791779 85.498426 370.337319 84.401262 369.528488 83.592432
799C 368.719657 82.783601 367.622494 82.329141 366.478634 82.329141
800C 365.334775 82.329141 364.237611 82.783601 363.428781 83.592432
801C 362.61995 84.401262 362.16549 85.498426 362.16549 86.642285
802C 362.16549 87.786144 362.61995 88.883308 363.428781 89.692139
803C 364.237611 90.50097 365.334775 90.95543 366.478634 90.95543
804z
805" clip-path="url(#pf9cfadb92a)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
806 </g>
807 <g id="patch_3">
808 <path d="M 393.795216 90.95543
809C 394.939075 90.95543 396.036239 90.50097 396.845069 89.692139
810C 397.6539 88.883308 398.10836 87.786144 398.10836 86.642285
811C 398.10836 85.498426 397.6539 84.401262 396.845069 83.592432
812C 396.036239 82.783601 394.939075 82.329141 393.795216 82.329141
813C 392.651356 82.329141 391.554192 82.783601 390.745362 83.592432
814C 389.936531 84.401262 389.482071 85.498426 389.482071 86.642285
815C 389.482071 87.786144 389.936531 88.883308 390.745362 89.692139
816C 391.554192 90.50097 392.651356 90.95543 393.795216 90.95543
817z
818" clip-path="url(#pf9cfadb92a)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
819 </g>
820 <g id="patch_4">
821 <path d="M 366.478634 126.8983
822C 367.622494 126.8983 368.719657 126.44384 369.528488 125.635009
823C 370.337319 124.826178 370.791779 123.729015 370.791779 122.585155
824C 370.791779 121.441296 370.337319 120.344132 369.528488 119.535302
825C 368.719657 118.726471 367.622494 118.272011 366.478634 118.272011
826C 365.334775 118.272011 364.237611 118.726471 363.428781 119.535302
827C 362.61995 120.344132 362.16549 121.441296 362.16549 122.585155
828C 362.16549 123.729015 362.61995 124.826178 363.428781 125.635009
829C 364.237611 126.44384 365.334775 126.8983 366.478634 126.8983
830z
831" clip-path="url(#pf9cfadb92a)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
832 </g>
833 <g id="patch_5">
834 <path d="M 393.795216 126.8983
835C 394.939075 126.8983 396.036239 126.44384 396.845069 125.635009
836C 397.6539 124.826178 398.10836 123.729015 398.10836 122.585155
837C 398.10836 121.441296 397.6539 120.344132 396.845069 119.535302
838C 396.036239 118.726471 394.939075 118.272011 393.795216 118.272011
839C 392.651356 118.272011 391.554192 118.726471 390.745362 119.535302
840C 389.936531 120.344132 389.482071 121.441296 389.482071 122.585155
841C 389.482071 123.729015 389.936531 124.826178 390.745362 125.635009
842C 391.554192 126.44384 392.651356 126.8983 393.795216 126.8983
843z
844" clip-path="url(#pf9cfadb92a)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
845 </g>
846 <g id="text_7">
847 <!-- disc -->
848 <g transform="translate(370.219737 138.091024) scale(0.1 -0.1)">
849 <defs>
850 <path id="DejaVuSans-63" d="M 3122 3366
851L 3122 2828
852Q 2878 2963 2633 3030
853Q 2388 3097 2138 3097
854Q 1578 3097 1268 2742
855Q 959 2388 959 1747
856Q 959 1106 1268 751
857Q 1578 397 2138 397
858Q 2388 397 2633 464
859Q 2878 531 3122 666
860L 3122 134
861Q 2881 22 2623 -34
862Q 2366 -91 2075 -91
863Q 1284 -91 818 406
864Q 353 903 353 1747
865Q 353 2603 823 3093
866Q 1294 3584 2113 3584
867Q 2378 3584 2631 3529
868Q 2884 3475 3122 3366
869z
870" transform="scale(0.015625)"/>
871 </defs>
872 <use xlink:href="#DejaVuSans-64"/>
873 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
874 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
875 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
876 </g>
877 </g>
878 <g id="text_8">
879 <!-- Docan S3 -->
880 <g transform="translate(401.816025 63.755654) scale(0.09 -0.09)">
881 <defs>
882 <path id="DejaVuSans-44" d="M 1259 4147
883L 1259 519
884L 2022 519
885Q 2988 519 3436 956
886Q 3884 1394 3884 2338
887Q 3884 3275 3436 3711
888Q 2988 4147 2022 4147
889L 1259 4147
890z
891M 628 4666
892L 1925 4666
893Q 3281 4666 3915 4102
894Q 4550 3538 4550 2338
895Q 4550 1131 3912 565
896Q 3275 0 1925 0
897L 628 0
898L 628 4666
899z
900" transform="scale(0.015625)"/>
901 <path id="DejaVuSans-6f" d="M 1959 3097
902Q 1497 3097 1228 2736
903Q 959 2375 959 1747
904Q 959 1119 1226 758
905Q 1494 397 1959 397
906Q 2419 397 2687 759
907Q 2956 1122 2956 1747
908Q 2956 2369 2687 2733
909Q 2419 3097 1959 3097
910z
911M 1959 3584
912Q 2709 3584 3137 3096
913Q 3566 2609 3566 1747
914Q 3566 888 3137 398
915Q 2709 -91 1959 -91
916Q 1206 -91 779 398
917Q 353 888 353 1747
918Q 353 2609 779 3096
919Q 1206 3584 1959 3584
920z
921" transform="scale(0.015625)"/>
922 <path id="DejaVuSans-6e" d="M 3513 2113
923L 3513 0
924L 2938 0
925L 2938 2094
926Q 2938 2591 2744 2837
927Q 2550 3084 2163 3084
928Q 1697 3084 1428 2787
929Q 1159 2491 1159 1978
930L 1159 0
931L 581 0
932L 581 3500
933L 1159 3500
934L 1159 2956
935Q 1366 3272 1645 3428
936Q 1925 3584 2291 3584
937Q 2894 3584 3203 3211
938Q 3513 2838 3513 2113
939z
940" transform="scale(0.015625)"/>
941 <path id="DejaVuSans-53" d="M 3425 4513
942L 3425 3897
943Q 3066 4069 2747 4153
944Q 2428 4238 2131 4238
945Q 1616 4238 1336 4038
946Q 1056 3838 1056 3469
947Q 1056 3159 1242 3001
948Q 1428 2844 1947 2747
949L 2328 2669
950Q 3034 2534 3370 2195
951Q 3706 1856 3706 1288
952Q 3706 609 3251 259
953Q 2797 -91 1919 -91
954Q 1588 -91 1214 -16
955Q 841 59 441 206
956L 441 856
957Q 825 641 1194 531
958Q 1563 422 1919 422
959Q 2459 422 2753 634
960Q 3047 847 3047 1241
961Q 3047 1584 2836 1778
962Q 2625 1972 2144 2069
963L 1759 2144
964Q 1053 2284 737 2584
965Q 422 2884 422 3419
966Q 422 4038 858 4394
967Q 1294 4750 2059 4750
968Q 2388 4750 2728 4690
969Q 3069 4631 3425 4513
970z
971" transform="scale(0.015625)"/>
972 <path id="DejaVuSans-33" d="M 2597 2516
973Q 3050 2419 3304 2112
974Q 3559 1806 3559 1356
975Q 3559 666 3084 287
976Q 2609 -91 1734 -91
977Q 1441 -91 1130 -33
978Q 819 25 488 141
979L 488 750
980Q 750 597 1062 519
981Q 1375 441 1716 441
982Q 2309 441 2620 675
983Q 2931 909 2931 1356
984Q 2931 1769 2642 2001
985Q 2353 2234 1838 2234
986L 1294 2234
987L 1294 2753
988L 1863 2753
989Q 2328 2753 2575 2939
990Q 2822 3125 2822 3475
991Q 2822 3834 2567 4026
992Q 2313 4219 1838 4219
993Q 1578 4219 1281 4162
994Q 984 4106 628 3988
995L 628 4550
996Q 988 4650 1302 4700
997Q 1616 4750 1894 4750
998Q 2613 4750 3031 4423
999Q 3450 4097 3450 3541
1000Q 3450 3153 3228 2886
1001Q 3006 2619 2597 2516
1002z
1003" transform="scale(0.015625)"/>
1004 </defs>
1005 <use xlink:href="#DejaVuSans-44"/>
1006 <use xlink:href="#DejaVuSans-6f" transform="translate(77.001953 0)"/>
1007 <use xlink:href="#DejaVuSans-63" transform="translate(138.183594 0)"/>
1008 <use xlink:href="#DejaVuSans-61" transform="translate(193.164062 0)"/>
1009 <use xlink:href="#DejaVuSans-6e" transform="translate(254.443359 0)"/>
1010 <use xlink:href="#DejaVuSans-20" transform="translate(317.822266 0)"/>
1011 <use xlink:href="#DejaVuSans-53" transform="translate(349.609375 0)"/>
1012 <use xlink:href="#DejaVuSans-33" transform="translate(413.085938 0)"/>
1013 </g>
1014 <!-- 51.2V·16.08kWh -->
1015 <g transform="translate(385.950713 72.465967) scale(0.09 -0.09)">
1016 <defs>
1017 <path id="DejaVuSans-32" d="M 1228 531
1018L 3431 531
1019L 3431 0
1020L 469 0
1021L 469 531
1022Q 828 903 1448 1529
1023Q 2069 2156 2228 2338
1024Q 2531 2678 2651 2914
1025Q 2772 3150 2772 3378
1026Q 2772 3750 2511 3984
1027Q 2250 4219 1831 4219
1028Q 1534 4219 1204 4116
1029Q 875 4013 500 3803
1030L 500 4441
1031Q 881 4594 1212 4672
1032Q 1544 4750 1819 4750
1033Q 2544 4750 2975 4387
1034Q 3406 4025 3406 3419
1035Q 3406 3131 3298 2873
1036Q 3191 2616 2906 2266
1037Q 2828 2175 2409 1742
1038Q 1991 1309 1228 531
1039z
1040" transform="scale(0.015625)"/>
1041 <path id="DejaVuSans-b7" d="M 684 2619
1042L 1344 2619
1043L 1344 1825
1044L 684 1825
1045L 684 2619
1046z
1047" transform="scale(0.015625)"/>
1048 <path id="DejaVuSans-38" d="M 2034 2216
1049Q 1584 2216 1326 1975
1050Q 1069 1734 1069 1313
1051Q 1069 891 1326 650
1052Q 1584 409 2034 409
1053Q 2484 409 2743 651
1054Q 3003 894 3003 1313
1055Q 3003 1734 2745 1975
1056Q 2488 2216 2034 2216
1057z
1058M 1403 2484
1059Q 997 2584 770 2862
1060Q 544 3141 544 3541
1061Q 544 4100 942 4425
1062Q 1341 4750 2034 4750
1063Q 2731 4750 3128 4425
1064Q 3525 4100 3525 3541
1065Q 3525 3141 3298 2862
1066Q 3072 2584 2669 2484
1067Q 3125 2378 3379 2068
1068Q 3634 1759 3634 1313
1069Q 3634 634 3220 271
1070Q 2806 -91 2034 -91
1071Q 1263 -91 848 271
1072Q 434 634 434 1313
1073Q 434 1759 690 2068
1074Q 947 2378 1403 2484
1075z
1076M 1172 3481
1077Q 1172 3119 1398 2916
1078Q 1625 2713 2034 2713
1079Q 2441 2713 2670 2916
1080Q 2900 3119 2900 3481
1081Q 2900 3844 2670 4047
1082Q 2441 4250 2034 4250
1083Q 1625 4250 1398 4047
1084Q 1172 3844 1172 3481
1085z
1086" transform="scale(0.015625)"/>
1087 <path id="DejaVuSans-6b" d="M 581 4863
1088L 1159 4863
1089L 1159 1991
1090L 2875 3500
1091L 3609 3500
1092L 1753 1863
1093L 3688 0
1094L 2938 0
1095L 1159 1709
1096L 1159 0
1097L 581 0
1098L 581 4863
1099z
1100" transform="scale(0.015625)"/>
1101 <path id="DejaVuSans-57" d="M 213 4666
1102L 850 4666
1103L 1831 722
1104L 2809 4666
1105L 3519 4666
1106L 4500 722
1107L 5478 4666
1108L 6119 4666
1109L 4947 0
1110L 4153 0
1111L 3169 4050
1112L 2175 0
1113L 1381 0
1114L 213 4666
1115z
1116" transform="scale(0.015625)"/>
1117 <path id="DejaVuSans-68" d="M 3513 2113
1118L 3513 0
1119L 2938 0
1120L 2938 2094
1121Q 2938 2591 2744 2837
1122Q 2550 3084 2163 3084
1123Q 1697 3084 1428 2787
1124Q 1159 2491 1159 1978
1125L 1159 0
1126L 581 0
1127L 581 4863
1128L 1159 4863
1129L 1159 2956
1130Q 1366 3272 1645 3428
1131Q 1925 3584 2291 3584
1132Q 2894 3584 3203 3211
1133Q 3513 2838 3513 2113
1134z
1135" transform="scale(0.015625)"/>
1136 </defs>
1137 <use xlink:href="#DejaVuSans-35"/>
1138 <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
1139 <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1140 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1141 <use xlink:href="#DejaVuSans-56" transform="translate(222.65625 0)"/>
1142 <use xlink:href="#DejaVuSans-b7" transform="translate(291.064453 0)"/>
1143 <use xlink:href="#DejaVuSans-31" transform="translate(322.851562 0)"/>
1144 <use xlink:href="#DejaVuSans-36" transform="translate(386.474609 0)"/>
1145 <use xlink:href="#DejaVuSans-2e" transform="translate(450.097656 0)"/>
1146 <use xlink:href="#DejaVuSans-30" transform="translate(481.884766 0)"/>
1147 <use xlink:href="#DejaVuSans-38" transform="translate(545.507812 0)"/>
1148 <use xlink:href="#DejaVuSans-6b" transform="translate(609.130859 0)"/>
1149 <use xlink:href="#DejaVuSans-57" transform="translate(667.041016 0)"/>
1150 <use xlink:href="#DejaVuSans-68" transform="translate(765.917969 0)"/>
1151 </g>
1152 <!-- 16S1P · JK 200A BMS -->
1153 <g transform="translate(376.18501 81.176279) scale(0.09 -0.09)">
1154 <defs>
1155 <path id="DejaVuSans-4a" d="M 628 4666
1156L 1259 4666
1157L 1259 325
1158Q 1259 -519 939 -900
1159Q 619 -1281 -91 -1281
1160L -331 -1281
1161L -331 -750
1162L -134 -750
1163Q 284 -750 456 -515
1164Q 628 -281 628 325
1165L 628 4666
1166z
1167" transform="scale(0.015625)"/>
1168 <path id="DejaVuSans-4b" d="M 628 4666
1169L 1259 4666
1170L 1259 2694
1171L 3353 4666
1172L 4166 4666
1173L 1850 2491
1174L 4331 0
1175L 3500 0
1176L 1259 2247
1177L 1259 0
1178L 628 0
1179L 628 4666
1180z
1181" transform="scale(0.015625)"/>
1182 </defs>
1183 <use xlink:href="#DejaVuSans-31"/>
1184 <use xlink:href="#DejaVuSans-36" transform="translate(63.623047 0)"/>
1185 <use xlink:href="#DejaVuSans-53" transform="translate(127.246094 0)"/>
1186 <use xlink:href="#DejaVuSans-31" transform="translate(190.722656 0)"/>
1187 <use xlink:href="#DejaVuSans-50" transform="translate(254.345703 0)"/>
1188 <use xlink:href="#DejaVuSans-20" transform="translate(314.648438 0)"/>
1189 <use xlink:href="#DejaVuSans-b7" transform="translate(346.435547 0)"/>
1190 <use xlink:href="#DejaVuSans-20" transform="translate(378.222656 0)"/>
1191 <use xlink:href="#DejaVuSans-4a" transform="translate(410.009766 0)"/>
1192 <use xlink:href="#DejaVuSans-4b" transform="translate(439.501953 0)"/>
1193 <use xlink:href="#DejaVuSans-20" transform="translate(505.078125 0)"/>
1194 <use xlink:href="#DejaVuSans-32" transform="translate(536.865234 0)"/>
1195 <use xlink:href="#DejaVuSans-30" transform="translate(600.488281 0)"/>
1196 <use xlink:href="#DejaVuSans-30" transform="translate(664.111328 0)"/>
1197 <use xlink:href="#DejaVuSans-41" transform="translate(727.734375 0)"/>
1198 <use xlink:href="#DejaVuSans-20" transform="translate(796.142578 0)"/>
1199 <use xlink:href="#DejaVuSans-42" transform="translate(827.929688 0)"/>
1200 <use xlink:href="#DejaVuSans-4d" transform="translate(896.533203 0)"/>
1201 <use xlink:href="#DejaVuSans-53" transform="translate(982.8125 0)"/>
1202 </g>
1203 </g>
1204 <g id="text_9">
1205 <!-- − 2/0Cu×10ft·0.476% -->
1206 <g transform="translate(274.999963 183.338054) scale(0.09 -0.09)">
1207 <defs>
1208 <path id="DejaVuSans-2212" d="M 678 2272
1209L 4684 2272
1210L 4684 1741
1211L 678 1741
1212L 678 2272
1213z
1214" transform="scale(0.015625)"/>
1215 <path id="DejaVuSans-2f" d="M 1625 4666
1216L 2156 4666
1217L 531 -594
1218L 0 -594
1219L 1625 4666
1220z
1221" transform="scale(0.015625)"/>
1222 <path id="DejaVuSans-75" d="M 544 1381
1223L 544 3500
1224L 1119 3500
1225L 1119 1403
1226Q 1119 906 1312 657
1227Q 1506 409 1894 409
1228Q 2359 409 2629 706
1229Q 2900 1003 2900 1516
1230L 2900 3500
1231L 3475 3500
1232L 3475 0
1233L 2900 0
1234L 2900 538
1235Q 2691 219 2414 64
1236Q 2138 -91 1772 -91
1237Q 1169 -91 856 284
1238Q 544 659 544 1381
1239z
1240M 1991 3584
1241L 1991 3584
1242z
1243" transform="scale(0.015625)"/>
1244 <path id="DejaVuSans-d7" d="M 4488 3438
1245L 3059 2003
1246L 4488 575
1247L 4116 197
1248L 2681 1631
1249L 1247 197
1250L 878 575
1251L 2303 2003
1252L 878 3438
1253L 1247 3816
1254L 2681 2381
1255L 4116 3816
1256L 4488 3438
1257z
1258" transform="scale(0.015625)"/>
1259 <path id="DejaVuSans-66" d="M 2375 4863
1260L 2375 4384
1261L 1825 4384
1262Q 1516 4384 1395 4259
1263Q 1275 4134 1275 3809
1264L 1275 3500
1265L 2222 3500
1266L 2222 3053
1267L 1275 3053
1268L 1275 0
1269L 697 0
1270L 697 3053
1271L 147 3053
1272L 147 3500
1273L 697 3500
1274L 697 3744
1275Q 697 4328 969 4595
1276Q 1241 4863 1831 4863
1277L 2375 4863
1278z
1279" transform="scale(0.015625)"/>
1280 <path id="DejaVuSans-74" d="M 1172 4494
1281L 1172 3500
1282L 2356 3500
1283L 2356 3053
1284L 1172 3053
1285L 1172 1153
1286Q 1172 725 1289 603
1287Q 1406 481 1766 481
1288L 2356 481
1289L 2356 0
1290L 1766 0
1291Q 1100 0 847 248
1292Q 594 497 594 1153
1293L 594 3053
1294L 172 3053
1295L 172 3500
1296L 594 3500
1297L 594 4494
1298L 1172 4494
1299z
1300" transform="scale(0.015625)"/>
1301 <path id="DejaVuSans-25" d="M 4653 2053
1302Q 4381 2053 4226 1822
1303Q 4072 1591 4072 1178
1304Q 4072 772 4226 539
1305Q 4381 306 4653 306
1306Q 4919 306 5073 539
1307Q 5228 772 5228 1178
1308Q 5228 1588 5073 1820
1309Q 4919 2053 4653 2053
1310z
1311M 4653 2450
1312Q 5147 2450 5437 2106
1313Q 5728 1763 5728 1178
1314Q 5728 594 5436 251
1315Q 5144 -91 4653 -91
1316Q 4153 -91 3862 251
1317Q 3572 594 3572 1178
1318Q 3572 1766 3864 2108
1319Q 4156 2450 4653 2450
1320z
1321M 1428 4353
1322Q 1159 4353 1004 4120
1323Q 850 3888 850 3481
1324Q 850 3069 1003 2837
1325Q 1156 2606 1428 2606
1326Q 1700 2606 1854 2837
1327Q 2009 3069 2009 3481
1328Q 2009 3884 1853 4118
1329Q 1697 4353 1428 4353
1330z
1331M 4250 4750
1332L 4750 4750
1333L 1831 -91
1334L 1331 -91
1335L 4250 4750
1336z
1337M 1428 4750
1338Q 1922 4750 2215 4408
1339Q 2509 4066 2509 3481
1340Q 2509 2891 2217 2550
1341Q 1925 2209 1428 2209
1342Q 931 2209 642 2551
1343Q 353 2894 353 3481
1344Q 353 4063 643 4406
1345Q 934 4750 1428 4750
1346z
1347" transform="scale(0.015625)"/>
1348 </defs>
1349 <use xlink:href="#DejaVuSans-2212"/>
1350 <use xlink:href="#DejaVuSans-20" transform="translate(83.789062 0)"/>
1351 <use xlink:href="#DejaVuSans-20" transform="translate(115.576172 0)"/>
1352 <use xlink:href="#DejaVuSans-32" transform="translate(147.363281 0)"/>
1353 <use xlink:href="#DejaVuSans-2f" transform="translate(210.986328 0)"/>
1354 <use xlink:href="#DejaVuSans-30" transform="translate(244.677734 0)"/>
1355 <use xlink:href="#DejaVuSans-43" transform="translate(308.300781 0)"/>
1356 <use xlink:href="#DejaVuSans-75" transform="translate(378.125 0)"/>
1357 <use xlink:href="#DejaVuSans-d7" transform="translate(441.503906 0)"/>
1358 <use xlink:href="#DejaVuSans-31" transform="translate(525.292969 0)"/>
1359 <use xlink:href="#DejaVuSans-30" transform="translate(588.916016 0)"/>
1360 <use xlink:href="#DejaVuSans-66" transform="translate(652.539062 0)"/>
1361 <use xlink:href="#DejaVuSans-74" transform="translate(685.994141 0)"/>
1362 <use xlink:href="#DejaVuSans-b7" transform="translate(725.203125 0)"/>
1363 <use xlink:href="#DejaVuSans-30" transform="translate(756.990234 0)"/>
1364 <use xlink:href="#DejaVuSans-2e" transform="translate(820.613281 0)"/>
1365 <use xlink:href="#DejaVuSans-34" transform="translate(852.400391 0)"/>
1366 <use xlink:href="#DejaVuSans-37" transform="translate(916.023438 0)"/>
1367 <use xlink:href="#DejaVuSans-36" transform="translate(979.646484 0)"/>
1368 <use xlink:href="#DejaVuSans-25" transform="translate(1043.269531 0)"/>
1369 </g>
1370 </g>
1371 <g id="text_10">
1372 <!-- JK BMS → Pylontech CAN → 6000XP 'Pylontech 2' (V19 fw) -->
1373 <g transform="translate(144.34581 238.289659) scale(0.08 -0.08)">
1374 <defs>
1375 <path id="DejaVuSans-2192" d="M 5050 2147
1376L 5050 1866
1377L 3822 638
1378L 3447 1013
1379L 4175 1741
1380L 366 1741
1381L 366 2272
1382L 4175 2272
1383L 3447 3000
1384L 3822 3375
1385L 5050 2147
1386z
1387" transform="scale(0.015625)"/>
1388 <path id="DejaVuSans-79" d="M 2059 -325
1389Q 1816 -950 1584 -1140
1390Q 1353 -1331 966 -1331
1391L 506 -1331
1392L 506 -850
1393L 844 -850
1394Q 1081 -850 1212 -737
1395Q 1344 -625 1503 -206
1396L 1606 56
1397L 191 3500
1398L 800 3500
1399L 1894 763
1400L 2988 3500
1401L 3597 3500
1402L 2059 -325
1403z
1404" transform="scale(0.015625)"/>
1405 <path id="DejaVuSans-65" d="M 3597 1894
1406L 3597 1613
1407L 953 1613
1408Q 991 1019 1311 708
1409Q 1631 397 2203 397
1410Q 2534 397 2845 478
1411Q 3156 559 3463 722
1412L 3463 178
1413Q 3153 47 2828 -22
1414Q 2503 -91 2169 -91
1415Q 1331 -91 842 396
1416Q 353 884 353 1716
1417Q 353 2575 817 3079
1418Q 1281 3584 2069 3584
1419Q 2775 3584 3186 3129
1420Q 3597 2675 3597 1894
1421z
1422M 3022 2063
1423Q 3016 2534 2758 2815
1424Q 2500 3097 2075 3097
1425Q 1594 3097 1305 2825
1426Q 1016 2553 972 2059
1427L 3022 2063
1428z
1429" transform="scale(0.015625)"/>
1430 <path id="DejaVuSans-27" d="M 1147 4666
1431L 1147 2931
1432L 616 2931
1433L 616 4666
1434L 1147 4666
1435z
1436" transform="scale(0.015625)"/>
1437 <path id="DejaVuSans-28" d="M 1984 4856
1438Q 1566 4138 1362 3434
1439Q 1159 2731 1159 2009
1440Q 1159 1288 1364 580
1441Q 1569 -128 1984 -844
1442L 1484 -844
1443Q 1016 -109 783 600
1444Q 550 1309 550 2009
1445Q 550 2706 781 3412
1446Q 1013 4119 1484 4856
1447L 1984 4856
1448z
1449" transform="scale(0.015625)"/>
1450 <path id="DejaVuSans-39" d="M 703 97
1451L 703 672
1452Q 941 559 1184 500
1453Q 1428 441 1663 441
1454Q 2288 441 2617 861
1455Q 2947 1281 2994 2138
1456Q 2813 1869 2534 1725
1457Q 2256 1581 1919 1581
1458Q 1219 1581 811 2004
1459Q 403 2428 403 3163
1460Q 403 3881 828 4315
1461Q 1253 4750 1959 4750
1462Q 2769 4750 3195 4129
1463Q 3622 3509 3622 2328
1464Q 3622 1225 3098 567
1465Q 2575 -91 1691 -91
1466Q 1453 -91 1209 -44
1467Q 966 3 703 97
1468z
1469M 1959 2075
1470Q 2384 2075 2632 2365
1471Q 2881 2656 2881 3163
1472Q 2881 3666 2632 3958
1473Q 2384 4250 1959 4250
1474Q 1534 4250 1286 3958
1475Q 1038 3666 1038 3163
1476Q 1038 2656 1286 2365
1477Q 1534 2075 1959 2075
1478z
1479" transform="scale(0.015625)"/>
1480 <path id="DejaVuSans-77" d="M 269 3500
1481L 844 3500
1482L 1563 769
1483L 2278 3500
1484L 2956 3500
1485L 3675 769
1486L 4391 3500
1487L 4966 3500
1488L 4050 0
1489L 3372 0
1490L 2619 2869
1491L 1863 0
1492L 1184 0
1493L 269 3500
1494z
1495" transform="scale(0.015625)"/>
1496 <path id="DejaVuSans-29" d="M 513 4856
1497L 1013 4856
1498Q 1481 4119 1714 3412
1499Q 1947 2706 1947 2009
1500Q 1947 1309 1714 600
1501Q 1481 -109 1013 -844
1502L 513 -844
1503Q 928 -128 1133 580
1504Q 1338 1288 1338 2009
1505Q 1338 2731 1133 3434
1506Q 928 4138 513 4856
1507z
1508" transform="scale(0.015625)"/>
1509 </defs>
1510 <use xlink:href="#DejaVuSans-4a"/>
1511 <use xlink:href="#DejaVuSans-4b" transform="translate(29.492188 0)"/>
1512 <use xlink:href="#DejaVuSans-20" transform="translate(95.068359 0)"/>
1513 <use xlink:href="#DejaVuSans-42" transform="translate(126.855469 0)"/>
1514 <use xlink:href="#DejaVuSans-4d" transform="translate(195.458984 0)"/>
1515 <use xlink:href="#DejaVuSans-53" transform="translate(281.738281 0)"/>
1516 <use xlink:href="#DejaVuSans-20" transform="translate(345.214844 0)"/>
1517 <use xlink:href="#DejaVuSans-2192" transform="translate(377.001953 0)"/>
1518 <use xlink:href="#DejaVuSans-20" transform="translate(460.791016 0)"/>
1519 <use xlink:href="#DejaVuSans-50" transform="translate(492.578125 0)"/>
1520 <use xlink:href="#DejaVuSans-79" transform="translate(552.880859 0)"/>
1521 <use xlink:href="#DejaVuSans-6c" transform="translate(612.060547 0)"/>
1522 <use xlink:href="#DejaVuSans-6f" transform="translate(639.84375 0)"/>
1523 <use xlink:href="#DejaVuSans-6e" transform="translate(701.025391 0)"/>
1524 <use xlink:href="#DejaVuSans-74" transform="translate(764.404297 0)"/>
1525 <use xlink:href="#DejaVuSans-65" transform="translate(803.613281 0)"/>
1526 <use xlink:href="#DejaVuSans-63" transform="translate(865.136719 0)"/>
1527 <use xlink:href="#DejaVuSans-68" transform="translate(920.117188 0)"/>
1528 <use xlink:href="#DejaVuSans-20" transform="translate(983.496094 0)"/>
1529 <use xlink:href="#DejaVuSans-43" transform="translate(1015.283203 0)"/>
1530 <use xlink:href="#DejaVuSans-41" transform="translate(1085.107422 0)"/>
1531 <use xlink:href="#DejaVuSans-4e" transform="translate(1153.515625 0)"/>
1532 <use xlink:href="#DejaVuSans-20" transform="translate(1228.320312 0)"/>
1533 <use xlink:href="#DejaVuSans-2192" transform="translate(1260.107422 0)"/>
1534 <use xlink:href="#DejaVuSans-20" transform="translate(1343.896484 0)"/>
1535 <use xlink:href="#DejaVuSans-36" transform="translate(1375.683594 0)"/>
1536 <use xlink:href="#DejaVuSans-30" transform="translate(1439.306641 0)"/>
1537 <use xlink:href="#DejaVuSans-30" transform="translate(1502.929688 0)"/>
1538 <use xlink:href="#DejaVuSans-30" transform="translate(1566.552734 0)"/>
1539 <use xlink:href="#DejaVuSans-58" transform="translate(1630.175781 0)"/>
1540 <use xlink:href="#DejaVuSans-50" transform="translate(1698.681641 0)"/>
1541 <use xlink:href="#DejaVuSans-20" transform="translate(1758.984375 0)"/>
1542 <use xlink:href="#DejaVuSans-27" transform="translate(1790.771484 0)"/>
1543 <use xlink:href="#DejaVuSans-50" transform="translate(1818.261719 0)"/>
1544 <use xlink:href="#DejaVuSans-79" transform="translate(1878.564453 0)"/>
1545 <use xlink:href="#DejaVuSans-6c" transform="translate(1937.744141 0)"/>
1546 <use xlink:href="#DejaVuSans-6f" transform="translate(1965.527344 0)"/>
1547 <use xlink:href="#DejaVuSans-6e" transform="translate(2026.708984 0)"/>
1548 <use xlink:href="#DejaVuSans-74" transform="translate(2090.087891 0)"/>
1549 <use xlink:href="#DejaVuSans-65" transform="translate(2129.296875 0)"/>
1550 <use xlink:href="#DejaVuSans-63" transform="translate(2190.820312 0)"/>
1551 <use xlink:href="#DejaVuSans-68" transform="translate(2245.800781 0)"/>
1552 <use xlink:href="#DejaVuSans-20" transform="translate(2309.179688 0)"/>
1553 <use xlink:href="#DejaVuSans-32" transform="translate(2340.966797 0)"/>
1554 <use xlink:href="#DejaVuSans-27" transform="translate(2404.589844 0)"/>
1555 <use xlink:href="#DejaVuSans-20" transform="translate(2432.080078 0)"/>
1556 <use xlink:href="#DejaVuSans-28" transform="translate(2463.867188 0)"/>
1557 <use xlink:href="#DejaVuSans-56" transform="translate(2502.880859 0)"/>
1558 <use xlink:href="#DejaVuSans-31" transform="translate(2571.289062 0)"/>
1559 <use xlink:href="#DejaVuSans-39" transform="translate(2634.912109 0)"/>
1560 <use xlink:href="#DejaVuSans-20" transform="translate(2698.535156 0)"/>
1561 <use xlink:href="#DejaVuSans-66" transform="translate(2730.322266 0)"/>
1562 <use xlink:href="#DejaVuSans-77" transform="translate(2763.777344 0)"/>
1563 <use xlink:href="#DejaVuSans-29" transform="translate(2845.564453 0)"/>
1564 </g>
1565 </g>
1566 <g id="text_11">
1567 <!-- BATTERY WIRING — EG4 6000XP ↔ Docan S3 -->
1568 <g transform="translate(113.12081 14.749445) scale(0.13 -0.13)">
1569 <defs>
1570 <path id="DejaVuSans-52" d="M 2841 2188
1571Q 3044 2119 3236 1894
1572Q 3428 1669 3622 1275
1573L 4263 0
1574L 3584 0
1575L 2988 1197
1576Q 2756 1666 2539 1819
1577Q 2322 1972 1947 1972
1578L 1259 1972
1579L 1259 0
1580L 628 0
1581L 628 4666
1582L 2053 4666
1583Q 2853 4666 3247 4331
1584Q 3641 3997 3641 3322
1585Q 3641 2881 3436 2590
1586Q 3231 2300 2841 2188
1587z
1588M 1259 4147
1589L 1259 2491
1590L 2053 2491
1591Q 2509 2491 2742 2702
1592Q 2975 2913 2975 3322
1593Q 2975 3731 2742 3939
1594Q 2509 4147 2053 4147
1595L 1259 4147
1596z
1597" transform="scale(0.015625)"/>
1598 <path id="DejaVuSans-59" d="M -13 4666
1599L 666 4666
1600L 1959 2747
1601L 3244 4666
1602L 3922 4666
1603L 2272 2222
1604L 2272 0
1605L 1638 0
1606L 1638 2222
1607L -13 4666
1608z
1609" transform="scale(0.015625)"/>
1610 <path id="DejaVuSans-49" d="M 628 4666
1611L 1259 4666
1612L 1259 0
1613L 628 0
1614L 628 4666
1615z
1616" transform="scale(0.015625)"/>
1617 <path id="DejaVuSans-2014" d="M 313 1978
1618L 6088 1978
1619L 6088 1528
1620L 313 1528
1621L 313 1978
1622z
1623" transform="scale(0.015625)"/>
1624 <path id="DejaVuSans-2194" d="M 313 1866
1625L 313 2147
1626L 1541 3375
1627L 1916 3000
1628L 1188 2272
1629L 4175 2272
1630L 3447 3000
1631L 3822 3375
1632L 5050 2147
1633L 5050 1866
1634L 3822 638
1635L 3447 1013
1636L 4175 1741
1637L 1188 1741
1638L 1916 1013
1639L 1541 638
1640L 313 1866
1641z
1642" transform="scale(0.015625)"/>
1643 </defs>
1644 <use xlink:href="#DejaVuSans-42"/>
1645 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
1646 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
1647 <use xlink:href="#DejaVuSans-54" transform="translate(188.595703 0)"/>
1648 <use xlink:href="#DejaVuSans-45" transform="translate(249.679688 0)"/>
1649 <use xlink:href="#DejaVuSans-52" transform="translate(312.863281 0)"/>
1650 <use xlink:href="#DejaVuSans-59" transform="translate(375.970703 0)"/>
1651 <use xlink:href="#DejaVuSans-20" transform="translate(437.054688 0)"/>
1652 <use xlink:href="#DejaVuSans-57" transform="translate(468.841797 0)"/>
1653 <use xlink:href="#DejaVuSans-49" transform="translate(567.71875 0)"/>
1654 <use xlink:href="#DejaVuSans-52" transform="translate(597.210938 0)"/>
1655 <use xlink:href="#DejaVuSans-49" transform="translate(666.693359 0)"/>
1656 <use xlink:href="#DejaVuSans-4e" transform="translate(696.185547 0)"/>
1657 <use xlink:href="#DejaVuSans-47" transform="translate(770.990234 0)"/>
1658 <use xlink:href="#DejaVuSans-20" transform="translate(848.480469 0)"/>
1659 <use xlink:href="#DejaVuSans-2014" transform="translate(880.267578 0)"/>
1660 <use xlink:href="#DejaVuSans-20" transform="translate(980.267578 0)"/>
1661 <use xlink:href="#DejaVuSans-45" transform="translate(1012.054688 0)"/>
1662 <use xlink:href="#DejaVuSans-47" transform="translate(1075.238281 0)"/>
1663 <use xlink:href="#DejaVuSans-34" transform="translate(1152.728516 0)"/>
1664 <use xlink:href="#DejaVuSans-20" transform="translate(1216.351562 0)"/>
1665 <use xlink:href="#DejaVuSans-36" transform="translate(1248.138672 0)"/>
1666 <use xlink:href="#DejaVuSans-30" transform="translate(1311.761719 0)"/>
1667 <use xlink:href="#DejaVuSans-30" transform="translate(1375.384766 0)"/>
1668 <use xlink:href="#DejaVuSans-30" transform="translate(1439.007812 0)"/>
1669 <use xlink:href="#DejaVuSans-58" transform="translate(1502.630859 0)"/>
1670 <use xlink:href="#DejaVuSans-50" transform="translate(1571.136719 0)"/>
1671 <use xlink:href="#DejaVuSans-20" transform="translate(1631.439453 0)"/>
1672 <use xlink:href="#DejaVuSans-2194" transform="translate(1663.226562 0)"/>
1673 <use xlink:href="#DejaVuSans-20" transform="translate(1747.015625 0)"/>
1674 <use xlink:href="#DejaVuSans-44" transform="translate(1778.802734 0)"/>
1675 <use xlink:href="#DejaVuSans-6f" transform="translate(1855.804688 0)"/>
1676 <use xlink:href="#DejaVuSans-63" transform="translate(1916.986328 0)"/>
1677 <use xlink:href="#DejaVuSans-61" transform="translate(1971.966797 0)"/>
1678 <use xlink:href="#DejaVuSans-6e" transform="translate(2033.246094 0)"/>
1679 <use xlink:href="#DejaVuSans-20" transform="translate(2096.625 0)"/>
1680 <use xlink:href="#DejaVuSans-53" transform="translate(2128.412109 0)"/>
1681 <use xlink:href="#DejaVuSans-33" transform="translate(2191.888672 0)"/>
1682 </g>
1683 </g>
1684 <g id="text_12">
1685 <!-- Discharge @6kW = 126.0A (binding inverter max discharge 140A, 14.0A headroom) · 0.401C · recommend 4/0Cu upsize -->
1686 <g transform="translate(0 257.781275) scale(0.08 -0.08)">
1687 <defs>
1688 <path id="DejaVuSans-72" d="M 2631 2963
1689Q 2534 3019 2420 3045
1690Q 2306 3072 2169 3072
1691Q 1681 3072 1420 2755
1692Q 1159 2438 1159 1844
1693L 1159 0
1694L 581 0
1695L 581 3500
1696L 1159 3500
1697L 1159 2956
1698Q 1341 3275 1631 3429
1699Q 1922 3584 2338 3584
1700Q 2397 3584 2469 3576
1701Q 2541 3569 2628 3553
1702L 2631 2963
1703z
1704" transform="scale(0.015625)"/>
1705 <path id="DejaVuSans-67" d="M 2906 1791
1706Q 2906 2416 2648 2759
1707Q 2391 3103 1925 3103
1708Q 1463 3103 1205 2759
1709Q 947 2416 947 1791
1710Q 947 1169 1205 825
1711Q 1463 481 1925 481
1712Q 2391 481 2648 825
1713Q 2906 1169 2906 1791
1714z
1715M 3481 434
1716Q 3481 -459 3084 -895
1717Q 2688 -1331 1869 -1331
1718Q 1566 -1331 1297 -1286
1719Q 1028 -1241 775 -1147
1720L 775 -588
1721Q 1028 -725 1275 -790
1722Q 1522 -856 1778 -856
1723Q 2344 -856 2625 -561
1724Q 2906 -266 2906 331
1725L 2906 616
1726Q 2728 306 2450 153
1727Q 2172 0 1784 0
1728Q 1141 0 747 490
1729Q 353 981 353 1791
1730Q 353 2603 747 3093
1731Q 1141 3584 1784 3584
1732Q 2172 3584 2450 3431
1733Q 2728 3278 2906 2969
1734L 2906 3500
1735L 3481 3500
1736L 3481 434
1737z
1738" transform="scale(0.015625)"/>
1739 <path id="DejaVuSans-40" d="M 2381 1678
1740Q 2381 1231 2603 976
1741Q 2825 722 3213 722
1742Q 3597 722 3817 978
1743Q 4038 1234 4038 1678
1744Q 4038 2116 3813 2373
1745Q 3588 2631 3206 2631
1746Q 2828 2631 2604 2375
1747Q 2381 2119 2381 1678
1748z
1749M 4084 744
1750Q 3897 503 3655 389
1751Q 3413 275 3091 275
1752Q 2553 275 2217 664
1753Q 1881 1053 1881 1678
1754Q 1881 2303 2218 2693
1755Q 2556 3084 3091 3084
1756Q 3413 3084 3656 2967
1757Q 3900 2850 4084 2613
1758L 4084 3022
1759L 4531 3022
1760L 4531 722
1761Q 4988 791 5245 1139
1762Q 5503 1488 5503 2041
1763Q 5503 2375 5404 2669
1764Q 5306 2963 5106 3213
1765Q 4781 3622 4314 3839
1766Q 3847 4056 3297 4056
1767Q 2913 4056 2559 3954
1768Q 2206 3853 1906 3653
1769Q 1416 3334 1139 2817
1770Q 863 2300 863 1697
1771Q 863 1200 1042 765
1772Q 1222 331 1563 0
1773Q 1891 -325 2322 -495
1774Q 2753 -666 3244 -666
1775Q 3647 -666 4036 -530
1776Q 4425 -394 4750 -141
1777L 5031 -488
1778Q 4641 -791 4180 -952
1779Q 3719 -1113 3244 -1113
1780Q 2666 -1113 2153 -908
1781Q 1641 -703 1241 -313
1782Q 841 78 631 592
1783Q 422 1106 422 1697
1784Q 422 2266 634 2781
1785Q 847 3297 1241 3688
1786Q 1644 4084 2172 4295
1787Q 2700 4506 3291 4506
1788Q 3953 4506 4520 4234
1789Q 5088 3963 5472 3463
1790Q 5706 3156 5829 2797
1791Q 5953 2438 5953 2053
1792Q 5953 1231 5456 756
1793Q 4959 281 4084 263
1794L 4084 744
1795z
1796" transform="scale(0.015625)"/>
1797 <path id="DejaVuSans-3d" d="M 678 2906
1798L 4684 2906
1799L 4684 2381
1800L 678 2381
1801L 678 2906
1802z
1803M 678 1631
1804L 4684 1631
1805L 4684 1100
1806L 678 1100
1807L 678 1631
1808z
1809" transform="scale(0.015625)"/>
1810 <path id="DejaVuSans-62" d="M 3116 1747
1811Q 3116 2381 2855 2742
1812Q 2594 3103 2138 3103
1813Q 1681 3103 1420 2742
1814Q 1159 2381 1159 1747
1815Q 1159 1113 1420 752
1816Q 1681 391 2138 391
1817Q 2594 391 2855 752
1818Q 3116 1113 3116 1747
1819z
1820M 1159 2969
1821Q 1341 3281 1617 3432
1822Q 1894 3584 2278 3584
1823Q 2916 3584 3314 3078
1824Q 3713 2572 3713 1747
1825Q 3713 922 3314 415
1826Q 2916 -91 2278 -91
1827Q 1894 -91 1617 61
1828Q 1341 213 1159 525
1829L 1159 0
1830L 581 0
1831L 581 4863
1832L 1159 4863
1833L 1159 2969
1834z
1835" transform="scale(0.015625)"/>
1836 <path id="DejaVuSans-76" d="M 191 3500
1837L 800 3500
1838L 1894 563
1839L 2988 3500
1840L 3597 3500
1841L 2284 0
1842L 1503 0
1843L 191 3500
1844z
1845" transform="scale(0.015625)"/>
1846 <path id="DejaVuSans-2c" d="M 750 794
1847L 1409 794
1848L 1409 256
1849L 897 -744
1850L 494 -744
1851L 750 256
1852L 750 794
1853z
1854" transform="scale(0.015625)"/>
1855 <path id="DejaVuSans-70" d="M 1159 525
1856L 1159 -1331
1857L 581 -1331
1858L 581 3500
1859L 1159 3500
1860L 1159 2969
1861Q 1341 3281 1617 3432
1862Q 1894 3584 2278 3584
1863Q 2916 3584 3314 3078
1864Q 3713 2572 3713 1747
1865Q 3713 922 3314 415
1866Q 2916 -91 2278 -91
1867Q 1894 -91 1617 61
1868Q 1341 213 1159 525
1869z
1870M 3116 1747
1871Q 3116 2381 2855 2742
1872Q 2594 3103 2138 3103
1873Q 1681 3103 1420 2742
1874Q 1159 2381 1159 1747
1875Q 1159 1113 1420 752
1876Q 1681 391 2138 391
1877Q 2594 391 2855 752
1878Q 3116 1113 3116 1747
1879z
1880" transform="scale(0.015625)"/>
1881 <path id="DejaVuSans-7a" d="M 353 3500
1882L 3084 3500
1883L 3084 2975
1884L 922 459
1885L 3084 459
1886L 3084 0
1887L 275 0
1888L 275 525
1889L 2438 3041
1890L 353 3041
1891L 353 3500
1892z
1893" transform="scale(0.015625)"/>
1894 </defs>
1895 <use xlink:href="#DejaVuSans-44"/>
1896 <use xlink:href="#DejaVuSans-69" transform="translate(77.001953 0)"/>
1897 <use xlink:href="#DejaVuSans-73" transform="translate(104.785156 0)"/>
1898 <use xlink:href="#DejaVuSans-63" transform="translate(156.884766 0)"/>
1899 <use xlink:href="#DejaVuSans-68" transform="translate(211.865234 0)"/>
1900 <use xlink:href="#DejaVuSans-61" transform="translate(275.244141 0)"/>
1901 <use xlink:href="#DejaVuSans-72" transform="translate(336.523438 0)"/>
1902 <use xlink:href="#DejaVuSans-67" transform="translate(375.886719 0)"/>
1903 <use xlink:href="#DejaVuSans-65" transform="translate(439.363281 0)"/>
1904 <use xlink:href="#DejaVuSans-20" transform="translate(500.886719 0)"/>
1905 <use xlink:href="#DejaVuSans-40" transform="translate(532.673828 0)"/>
1906 <use xlink:href="#DejaVuSans-36" transform="translate(632.673828 0)"/>
1907 <use xlink:href="#DejaVuSans-6b" transform="translate(696.296875 0)"/>
1908 <use xlink:href="#DejaVuSans-57" transform="translate(754.207031 0)"/>
1909 <use xlink:href="#DejaVuSans-20" transform="translate(853.083984 0)"/>
1910 <use xlink:href="#DejaVuSans-3d" transform="translate(884.871094 0)"/>
1911 <use xlink:href="#DejaVuSans-20" transform="translate(968.660156 0)"/>
1912 <use xlink:href="#DejaVuSans-31" transform="translate(1000.447266 0)"/>
1913 <use xlink:href="#DejaVuSans-32" transform="translate(1064.070312 0)"/>
1914 <use xlink:href="#DejaVuSans-36" transform="translate(1127.693359 0)"/>
1915 <use xlink:href="#DejaVuSans-2e" transform="translate(1191.316406 0)"/>
1916 <use xlink:href="#DejaVuSans-30" transform="translate(1223.103516 0)"/>
1917 <use xlink:href="#DejaVuSans-41" transform="translate(1286.726562 0)"/>
1918 <use xlink:href="#DejaVuSans-20" transform="translate(1355.134766 0)"/>
1919 <use xlink:href="#DejaVuSans-28" transform="translate(1386.921875 0)"/>
1920 <use xlink:href="#DejaVuSans-62" transform="translate(1425.935547 0)"/>
1921 <use xlink:href="#DejaVuSans-69" transform="translate(1489.412109 0)"/>
1922 <use xlink:href="#DejaVuSans-6e" transform="translate(1517.195312 0)"/>
1923 <use xlink:href="#DejaVuSans-64" transform="translate(1580.574219 0)"/>
1924 <use xlink:href="#DejaVuSans-69" transform="translate(1644.050781 0)"/>
1925 <use xlink:href="#DejaVuSans-6e" transform="translate(1671.833984 0)"/>
1926 <use xlink:href="#DejaVuSans-67" transform="translate(1735.212891 0)"/>
1927 <use xlink:href="#DejaVuSans-20" transform="translate(1798.689453 0)"/>
1928 <use xlink:href="#DejaVuSans-69" transform="translate(1830.476562 0)"/>
1929 <use xlink:href="#DejaVuSans-6e" transform="translate(1858.259766 0)"/>
1930 <use xlink:href="#DejaVuSans-76" transform="translate(1921.638672 0)"/>
1931 <use xlink:href="#DejaVuSans-65" transform="translate(1980.818359 0)"/>
1932 <use xlink:href="#DejaVuSans-72" transform="translate(2042.341797 0)"/>
1933 <use xlink:href="#DejaVuSans-74" transform="translate(2083.455078 0)"/>
1934 <use xlink:href="#DejaVuSans-65" transform="translate(2122.664062 0)"/>
1935 <use xlink:href="#DejaVuSans-72" transform="translate(2184.1875 0)"/>
1936 <use xlink:href="#DejaVuSans-20" transform="translate(2225.300781 0)"/>
1937 <use xlink:href="#DejaVuSans-6d" transform="translate(2257.087891 0)"/>
1938 <use xlink:href="#DejaVuSans-61" transform="translate(2354.5 0)"/>
1939 <use xlink:href="#DejaVuSans-78" transform="translate(2415.779297 0)"/>
1940 <use xlink:href="#DejaVuSans-20" transform="translate(2474.958984 0)"/>
1941 <use xlink:href="#DejaVuSans-64" transform="translate(2506.746094 0)"/>
1942 <use xlink:href="#DejaVuSans-69" transform="translate(2570.222656 0)"/>
1943 <use xlink:href="#DejaVuSans-73" transform="translate(2598.005859 0)"/>
1944 <use xlink:href="#DejaVuSans-63" transform="translate(2650.105469 0)"/>
1945 <use xlink:href="#DejaVuSans-68" transform="translate(2705.085938 0)"/>
1946 <use xlink:href="#DejaVuSans-61" transform="translate(2768.464844 0)"/>
1947 <use xlink:href="#DejaVuSans-72" transform="translate(2829.744141 0)"/>
1948 <use xlink:href="#DejaVuSans-67" transform="translate(2869.107422 0)"/>
1949 <use xlink:href="#DejaVuSans-65" transform="translate(2932.583984 0)"/>
1950 <use xlink:href="#DejaVuSans-20" transform="translate(2994.107422 0)"/>
1951 <use xlink:href="#DejaVuSans-31" transform="translate(3025.894531 0)"/>
1952 <use xlink:href="#DejaVuSans-34" transform="translate(3089.517578 0)"/>
1953 <use xlink:href="#DejaVuSans-30" transform="translate(3153.140625 0)"/>
1954 <use xlink:href="#DejaVuSans-41" transform="translate(3216.763672 0)"/>
1955 <use xlink:href="#DejaVuSans-2c" transform="translate(3285.171875 0)"/>
1956 <use xlink:href="#DejaVuSans-20" transform="translate(3316.958984 0)"/>
1957 <use xlink:href="#DejaVuSans-31" transform="translate(3348.746094 0)"/>
1958 <use xlink:href="#DejaVuSans-34" transform="translate(3412.369141 0)"/>
1959 <use xlink:href="#DejaVuSans-2e" transform="translate(3475.992188 0)"/>
1960 <use xlink:href="#DejaVuSans-30" transform="translate(3507.779297 0)"/>
1961 <use xlink:href="#DejaVuSans-41" transform="translate(3571.402344 0)"/>
1962 <use xlink:href="#DejaVuSans-20" transform="translate(3639.810547 0)"/>
1963 <use xlink:href="#DejaVuSans-68" transform="translate(3671.597656 0)"/>
1964 <use xlink:href="#DejaVuSans-65" transform="translate(3734.976562 0)"/>
1965 <use xlink:href="#DejaVuSans-61" transform="translate(3796.5 0)"/>
1966 <use xlink:href="#DejaVuSans-64" transform="translate(3857.779297 0)"/>
1967 <use xlink:href="#DejaVuSans-72" transform="translate(3921.255859 0)"/>
1968 <use xlink:href="#DejaVuSans-6f" transform="translate(3960.119141 0)"/>
1969 <use xlink:href="#DejaVuSans-6f" transform="translate(4021.300781 0)"/>
1970 <use xlink:href="#DejaVuSans-6d" transform="translate(4082.482422 0)"/>
1971 <use xlink:href="#DejaVuSans-29" transform="translate(4179.894531 0)"/>
1972 <use xlink:href="#DejaVuSans-20" transform="translate(4218.908203 0)"/>
1973 <use xlink:href="#DejaVuSans-b7" transform="translate(4250.695312 0)"/>
1974 <use xlink:href="#DejaVuSans-20" transform="translate(4282.482422 0)"/>
1975 <use xlink:href="#DejaVuSans-30" transform="translate(4314.269531 0)"/>
1976 <use xlink:href="#DejaVuSans-2e" transform="translate(4377.892578 0)"/>
1977 <use xlink:href="#DejaVuSans-34" transform="translate(4409.679688 0)"/>
1978 <use xlink:href="#DejaVuSans-30" transform="translate(4473.302734 0)"/>
1979 <use xlink:href="#DejaVuSans-31" transform="translate(4536.925781 0)"/>
1980 <use xlink:href="#DejaVuSans-43" transform="translate(4600.548828 0)"/>
1981 <use xlink:href="#DejaVuSans-20" transform="translate(4670.373047 0)"/>
1982 <use xlink:href="#DejaVuSans-b7" transform="translate(4702.160156 0)"/>
1983 <use xlink:href="#DejaVuSans-20" transform="translate(4733.947266 0)"/>
1984 <use xlink:href="#DejaVuSans-72" transform="translate(4765.734375 0)"/>
1985 <use xlink:href="#DejaVuSans-65" transform="translate(4804.597656 0)"/>
1986 <use xlink:href="#DejaVuSans-63" transform="translate(4866.121094 0)"/>
1987 <use xlink:href="#DejaVuSans-6f" transform="translate(4921.101562 0)"/>
1988 <use xlink:href="#DejaVuSans-6d" transform="translate(4982.283203 0)"/>
1989 <use xlink:href="#DejaVuSans-6d" transform="translate(5079.695312 0)"/>
1990 <use xlink:href="#DejaVuSans-65" transform="translate(5177.107422 0)"/>
1991 <use xlink:href="#DejaVuSans-6e" transform="translate(5238.630859 0)"/>
1992 <use xlink:href="#DejaVuSans-64" transform="translate(5302.009766 0)"/>
1993 <use xlink:href="#DejaVuSans-20" transform="translate(5365.486328 0)"/>
1994 <use xlink:href="#DejaVuSans-34" transform="translate(5397.273438 0)"/>
1995 <use xlink:href="#DejaVuSans-2f" transform="translate(5460.896484 0)"/>
1996 <use xlink:href="#DejaVuSans-30" transform="translate(5494.587891 0)"/>
1997 <use xlink:href="#DejaVuSans-43" transform="translate(5558.210938 0)"/>
1998 <use xlink:href="#DejaVuSans-75" transform="translate(5628.035156 0)"/>
1999 <use xlink:href="#DejaVuSans-20" transform="translate(5691.414062 0)"/>
2000 <use xlink:href="#DejaVuSans-75" transform="translate(5723.201172 0)"/>
2001 <use xlink:href="#DejaVuSans-70" transform="translate(5786.580078 0)"/>
2002 <use xlink:href="#DejaVuSans-73" transform="translate(5850.056641 0)"/>
2003 <use xlink:href="#DejaVuSans-69" transform="translate(5902.15625 0)"/>
2004 <use xlink:href="#DejaVuSans-7a" transform="translate(5929.939453 0)"/>
2005 <use xlink:href="#DejaVuSans-65" transform="translate(5982.429688 0)"/>
2006 </g>
2007 </g>
2008 </g>
2009 </g>
2010 <defs>
2011 <clipPath id="pf9cfadb92a">
2012 <rect x="22.241786" y="0" width="451.256744" height="264.24"/>
2013 </clipPath>
2014 </defs>
2015</svg>
artifacts/bom-electrical.md +87 -0
……@@ -0,0 +1,87 @@
1# Electrical BOM — PRSM Off-Grid PV (Phase 1)
2
3Quantities/gauges from the computed calcs (`scripts/01–04`). Lengths use the owner's
4run lengths (`site.yaml runs_ft`); **confirm exact trench length before buying wire.**
5Out of scope: racking, foundations, conduit civil, generator, propane battery heating.
6
7> **Cost caveat — read this.** Unlike the gauges/ratings (which are computed and traceable),
8> the **Est. $ ranges are rough 2025/26 US retail estimates, not computed values.** They move
9> with copper prices, tariffs, and shipping, and depend on vendor/quantity. Use them for
10> rough planning only and confirm with live vendor quotes (Signature Solar, etc.). Pricing was
11> originally out of scope (CLAUDE.md); added at owner request.
12
13## Conductors (copper)
14
15| Use | Gauge | Type | Qty (1‑way) | Est. $ | Notes (source) |
16|---|---|---|---|---|---|
17| PV string + (×2) | **8 AWG** | PV wire/THWN‑2 90 °C | ~200 ft ×2 (~400 ft) | $250–420 | one per MPPT; ≤1.66 % Vd @250 ft (03) |
18| PV string − (×2) | **8 AWG** | PV wire/THWN‑2 90 °C | ~200 ft ×2 (~400 ft) | $250–420 | (03) |
19| PV EGC | 10 AWG | bare/green Cu | ~200 ft | $90–160 | 690.45, no source OCPD (03/05) |
20| Battery + and − | **2/0 AWG** (4/0 rec.) | flex welding/THW 90 °C | ~10 ft ×2 | $60–150 | **don't use the ~2 AWG cable shipped w/ pack** (03) |
21| Battery EGC | 6 AWG | green Cu | ~10 ft | $10–25 | 250.122 @175 A (03/05) |
22| AC L1/L2 | **8 AWG** | THWN‑2 | ~10 ft ×2 | $15–35 | 240.4(D): 8 AWG for 35 A breaker (03) |
23| AC neutral | 8 AWG | THWN‑2 | ~10 ft | $8–18 | split‑phase (03) |
24| AC EGC | 10 AWG | green Cu | ~10 ft | $5–12 | 250.122 @35 A (03/05) |
25| Array GEC | 6 AWG | bare Cu | per layout | $20–60 | to array ground rod, 690.47 (05) |
26| | | | **Conductors subtotal** | **$700–1,300** | dominated by ~800 ft of 8 AWG PV wire (long trench) |
27
28## Overcurrent, disconnects & protection
29
30| Item | Rating | Qty | Est. $ | Notes (source) |
31|---|---|---|---|---|
32| **Class‑T fuse + holder** (battery) | **175 A**, DC, 20 kAIC | 1 | $50–110 | ≥125 %×126 A, ≤2/0 ampacity (04) |
33| Battery DC disconnect | ≥175 A, ≥60 VDC | 1 | $40–130 | lockable, within sight of inverter (690.15/706.30) |
34| PV/DC disconnect (service) | ≥30 A, 600 VDC | 1 | $80–200 | load‑break at inverter (690.13); 6000XP has integral DC switch too |
35| AC output breaker | **35 A**, 2‑pole, 240 V | 1 | $15–45 | 40 A acceptable alt; both need 8 AWG (03) |
36| PV source fuses | — | **0** | $0 | not required: 1 string/MPPT, 690.9(A) Exc (03/05) |
37| DC + AC SPD | per Swarm §16 | 1 ea | $90–220 | exposed NEK hilltop array |
38| | | **OCPD/disconnect subtotal** | **$275–705** | |
39
40## Inverter, battery, connectors & grounding
41
42| Item | Detail | Qty | Est. $ | Notes (source) |
43|---|---|---|---|---|
44| Inverter | EG4 6000XP (locked) | 1 | **$1,500–1,650** | already decided (PRSM Key Decisions) |
45| Battery | Docan S3 16 kWh (base SKU; propane heat separate/out of scope) | 1 | **$1,750–2,000** | already decided |
46| PV connectors | MC4 (UV), 14 module pairs + crimps | set | $30–70 | (01) |
47| Battery lugs | 2/0–4/0 Cu ring lugs (inverter/fuse/battery studs) | ~6 | $15–45 | (03) |
48| BMS comms cable | RS485/CAN, JK BMS → 6000XP (Pylontech profile) | 1 | $0–30 | often included w/ battery (§3) |
49| Ground rod + clamp | array grounding electrode | 1 | $20–45 | 690.47 |
50| Labels/placards | 690.53/54/56, 110.21 (max V 430, ratings, hazards) | set | $20–60 | (05) |
51| | | **Connectors/grounding subtotal** | **$85–250** | (excludes the two big units above) |
52
53## PV modules & freight (from prior PRSM transcripts)
54
55> Panels were "already decided" / originally out of scope; pulled here from the PRSM reference
56> docs at owner request. Estimates, not computed.
57
58| Item | Detail | Qty | Est. $ | Source |
59|---|---|---|---|---|
60| **PV modules** | Waaree 575W Bifacial Grade B — full pallet, **31 panels (17.8 kW)** | 1 pallet | **$3,284** | Key Decisions; Planning ($0.184/W, ~$106/panel) |
61| ↳ Phase‑1‑active allocation | **14 × 575W (~8.05 kW)** wired now; 17 = Phase‑2 inventory | — | ~$1,484 | pro‑rata of pallet |
62| **Freight — panel LTL** | Signature Solar → NEK terminal (FedEx Berlin / St J / Williston) via Estes/ODFL/R+L | 1 shipment | **$400–700** (~$550 verified) | Swarm §11/§13; quote freight@signaturesolar.com |
63| Inverter/battery parcel shipping | EG4 + Docan S3 via FedEx/UPS from SC/TX | — | often in unit price | smaller than the panel LTL; confirm at checkout |
64
65Swarm §11 verified **landed ~$3,834** ($3,284 + ~$550 LTL) = **$0.215/W delivered** — still under the SolarSpace 590W alternative ($0.228/W). Grade‑B is cosmetic‑only; fine for off‑grid ground‑mount.
66
67## Cost roll‑up
68
69| Bucket | Est. $ |
70|---|---|
71| **PV modules** — Waaree 575W Grade B, full pallet (31 panels) | $3,284 |
72| **Freight** — panel LTL → NEK terminal | $400–700 |
73| Inverter + battery (already‑decided) | ~$3,250–3,650 |
74| **Electrical balance‑of‑system** (wire + OCPD + disconnects + connectors + grounding + labels) | ~$1,060–2,255 |
75| **Phase‑1 total — as purchased (incl. full pallet + freight)** | **~$7,995–9,890** |
76| *memo: Phase‑1‑active module portion only (14 of 31 panels)* | ~$1,484 of the $3,284; other 17 = Phase‑2 inventory |
77| *Out of scope (separate budgets):* conduit, racking, foundations, generator, trenching, propane heating | — |
78
79*Notes:* (1) panel/freight figures are from the prior PRSM transcripts (Key Decisions / Swarm §11,§13 / Planning). (2) The ~$1,060–2,255 BoS aligns with the Swarm §13 BoS line ($1,920–2,290), which also folded in conduit (civil/out of scope here). (3) This ~$8–9.9K is the **electrical + modules** slice only; the full Phase‑1 build (with structure, generator, conduit, permits) runs **~$17–22K per Swarm §13.**
80
81## String / array summary (from `01`)
82
83- **14× Waaree 575W**, configured **2 strings of 7 series (7S×1P)**, one per MPPT.
84- String cold Voc **430 V** (≤480 V design ceiling); string Imp 13.1 A; per‑MPPT 4025 W.
85- **Hard rule: 7 modules per string maximum** (8S = 491 V, unsafe). Surplus pallet panels are Phase‑2 inventory.
86
87> Gauges, the 175 A fuse, and every electrical rating here were computed in `scripts/` and match the schematics in `artifacts/`. **The $ figures are estimates only** (see cost caveat above).
artifacts/dc-strings.png +0 -0
(no content changes — binary or rename)
artifacts/dc-strings.svg +2478 -0
……@@ -0,0 +1,2478 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="450.184248pt" height="279.099096pt" viewBox="0 0 450.184248 279.099096" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T01:20:58.082076</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M 0 279.099096
25L 450.184248 279.099096
26L 450.184248 0
27L 0 0
28L 0 279.099096
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="patch_2">
34 <path d="M 91.348876 101.049333
35C 96.116367 101.049333 100.689236 99.155189 104.060361 95.784063
36C 107.431486 92.412938 109.325631 87.84007 109.325631 83.072579
37C 109.325631 78.305088 107.431486 73.732219 104.060361 70.361094
38C 100.689236 66.989969 96.116367 65.095824 91.348876 65.095824
39C 86.581386 65.095824 82.008517 66.989969 78.637392 70.361094
40C 75.266266 73.732219 73.372122 78.305088 73.372122 83.072579
41C 73.372122 87.84007 75.266266 92.412938 78.637392 95.784063
42C 82.008517 99.155189 86.581386 101.049333 91.348876 101.049333
43L 91.348876 101.049333
44z
45" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
46 </g>
47 <g id="patch_3">
48 <path d="M 132.695411 101.049333
49C 137.462902 101.049333 142.035771 99.155189 145.406896 95.784063
50C 148.778021 92.412938 150.672165 87.84007 150.672165 83.072579
51C 150.672165 78.305088 148.778021 73.732219 145.406896 70.361094
52C 142.035771 66.989969 137.462902 65.095824 132.695411 65.095824
53C 127.92792 65.095824 123.355051 66.989969 119.983926 70.361094
54C 116.612801 73.732219 114.718657 78.305088 114.718657 83.072579
55C 114.718657 87.84007 116.612801 92.412938 119.983926 95.784063
56C 123.355051 99.155189 127.92792 101.049333 132.695411 101.049333
57L 132.695411 101.049333
58z
59" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
60 </g>
61 <g id="patch_4">
62 <path d="M 174.041946 101.049333
63C 178.809437 101.049333 183.382305 99.155189 186.753431 95.784063
64C 190.124556 92.412938 192.0187 87.84007 192.0187 83.072579
65C 192.0187 78.305088 190.124556 73.732219 186.753431 70.361094
66C 183.382305 66.989969 178.809437 65.095824 174.041946 65.095824
67C 169.274455 65.095824 164.701586 66.989969 161.330461 70.361094
68C 157.959336 73.732219 156.065192 78.305088 156.065192 83.072579
69C 156.065192 87.84007 157.959336 92.412938 161.330461 95.784063
70C 164.701586 99.155189 169.274455 101.049333 174.041946 101.049333
71L 174.041946 101.049333
72z
73" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
74 </g>
75 <g id="patch_5">
76 <path d="M 215.38848 101.049333
77C 220.155971 101.049333 224.72884 99.155189 228.099965 95.784063
78C 231.47109 92.412938 233.365235 87.84007 233.365235 83.072579
79C 233.365235 78.305088 231.47109 73.732219 228.099965 70.361094
80C 224.72884 66.989969 220.155971 65.095824 215.38848 65.095824
81C 210.620989 65.095824 206.048121 66.989969 202.676996 70.361094
82C 199.30587 73.732219 197.411726 78.305088 197.411726 83.072579
83C 197.411726 87.84007 199.30587 92.412938 202.676996 95.784063
84C 206.048121 99.155189 210.620989 101.049333 215.38848 101.049333
85L 215.38848 101.049333
86z
87" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
88 </g>
89 <g id="patch_6">
90 <path d="M 256.735015 101.049333
91C 261.502506 101.049333 266.075375 99.155189 269.4465 95.784063
92C 272.817625 92.412938 274.711769 87.84007 274.711769 83.072579
93C 274.711769 78.305088 272.817625 73.732219 269.4465 70.361094
94C 266.075375 66.989969 261.502506 65.095824 256.735015 65.095824
95C 251.967524 65.095824 247.394655 66.989969 244.02353 70.361094
96C 240.652405 73.732219 238.758261 78.305088 238.758261 83.072579
97C 238.758261 87.84007 240.652405 92.412938 244.02353 95.784063
98C 247.394655 99.155189 251.967524 101.049333 256.735015 101.049333
99L 256.735015 101.049333
100z
101" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
102 </g>
103 <g id="patch_7">
104 <path d="M 298.08155 101.049333
105C 302.849041 101.049333 307.421909 99.155189 310.793035 95.784063
106C 314.16416 92.412938 316.058304 87.84007 316.058304 83.072579
107C 316.058304 78.305088 314.16416 73.732219 310.793035 70.361094
108C 307.421909 66.989969 302.849041 65.095824 298.08155 65.095824
109C 293.314059 65.095824 288.74119 66.989969 285.370065 70.361094
110C 281.99894 73.732219 280.104796 78.305088 280.104796 83.072579
111C 280.104796 87.84007 281.99894 92.412938 285.370065 95.784063
112C 288.74119 99.155189 293.314059 101.049333 298.08155 101.049333
113L 298.08155 101.049333
114z
115" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
116 </g>
117 <g id="patch_8">
118 <path d="M 339.428084 101.049333
119C 344.195575 101.049333 348.768444 99.155189 352.139569 95.784063
120C 355.510694 92.412938 357.404839 87.84007 357.404839 83.072579
121C 357.404839 78.305088 355.510694 73.732219 352.139569 70.361094
122C 348.768444 66.989969 344.195575 65.095824 339.428084 65.095824
123C 334.660593 65.095824 330.087725 66.989969 326.7166 70.361094
124C 323.345474 73.732219 321.45133 78.305088 321.45133 83.072579
125C 321.45133 87.84007 323.345474 92.412938 326.7166 95.784063
126C 330.087725 99.155189 334.660593 101.049333 339.428084 101.049333
127L 339.428084 101.049333
128z
129" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
130 </g>
131 <g id="patch_9">
132 <path d="M 91.348876 208.909858
133C 96.116367 208.909858 100.689236 207.015714 104.060361 203.644589
134C 107.431486 200.273463 109.325631 195.700595 109.325631 190.933104
135C 109.325631 186.165613 107.431486 181.592744 104.060361 178.221619
136C 100.689236 174.850494 96.116367 172.95635 91.348876 172.95635
137C 86.581386 172.95635 82.008517 174.850494 78.637392 178.221619
138C 75.266266 181.592744 73.372122 186.165613 73.372122 190.933104
139C 73.372122 195.700595 75.266266 200.273463 78.637392 203.644589
140C 82.008517 207.015714 86.581386 208.909858 91.348876 208.909858
141L 91.348876 208.909858
142z
143" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
144 </g>
145 <g id="patch_10">
146 <path d="M 132.695411 208.909858
147C 137.462902 208.909858 142.035771 207.015714 145.406896 203.644589
148C 148.778021 200.273463 150.672165 195.700595 150.672165 190.933104
149C 150.672165 186.165613 148.778021 181.592744 145.406896 178.221619
150C 142.035771 174.850494 137.462902 172.95635 132.695411 172.95635
151C 127.92792 172.95635 123.355051 174.850494 119.983926 178.221619
152C 116.612801 181.592744 114.718657 186.165613 114.718657 190.933104
153C 114.718657 195.700595 116.612801 200.273463 119.983926 203.644589
154C 123.355051 207.015714 127.92792 208.909858 132.695411 208.909858
155L 132.695411 208.909858
156z
157" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
158 </g>
159 <g id="patch_11">
160 <path d="M 174.041946 208.909858
161C 178.809437 208.909858 183.382305 207.015714 186.753431 203.644589
162C 190.124556 200.273463 192.0187 195.700595 192.0187 190.933104
163C 192.0187 186.165613 190.124556 181.592744 186.753431 178.221619
164C 183.382305 174.850494 178.809437 172.95635 174.041946 172.95635
165C 169.274455 172.95635 164.701586 174.850494 161.330461 178.221619
166C 157.959336 181.592744 156.065192 186.165613 156.065192 190.933104
167C 156.065192 195.700595 157.959336 200.273463 161.330461 203.644589
168C 164.701586 207.015714 169.274455 208.909858 174.041946 208.909858
169L 174.041946 208.909858
170z
171" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
172 </g>
173 <g id="patch_12">
174 <path d="M 215.38848 208.909858
175C 220.155971 208.909858 224.72884 207.015714 228.099965 203.644589
176C 231.47109 200.273463 233.365235 195.700595 233.365235 190.933104
177C 233.365235 186.165613 231.47109 181.592744 228.099965 178.221619
178C 224.72884 174.850494 220.155971 172.95635 215.38848 172.95635
179C 210.620989 172.95635 206.048121 174.850494 202.676996 178.221619
180C 199.30587 181.592744 197.411726 186.165613 197.411726 190.933104
181C 197.411726 195.700595 199.30587 200.273463 202.676996 203.644589
182C 206.048121 207.015714 210.620989 208.909858 215.38848 208.909858
183L 215.38848 208.909858
184z
185" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
186 </g>
187 <g id="patch_13">
188 <path d="M 256.735015 208.909858
189C 261.502506 208.909858 266.075375 207.015714 269.4465 203.644589
190C 272.817625 200.273463 274.711769 195.700595 274.711769 190.933104
191C 274.711769 186.165613 272.817625 181.592744 269.4465 178.221619
192C 266.075375 174.850494 261.502506 172.95635 256.735015 172.95635
193C 251.967524 172.95635 247.394655 174.850494 244.02353 178.221619
194C 240.652405 181.592744 238.758261 186.165613 238.758261 190.933104
195C 238.758261 195.700595 240.652405 200.273463 244.02353 203.644589
196C 247.394655 207.015714 251.967524 208.909858 256.735015 208.909858
197L 256.735015 208.909858
198z
199" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
200 </g>
201 <g id="patch_14">
202 <path d="M 298.08155 208.909858
203C 302.849041 208.909858 307.421909 207.015714 310.793035 203.644589
204C 314.16416 200.273463 316.058304 195.700595 316.058304 190.933104
205C 316.058304 186.165613 314.16416 181.592744 310.793035 178.221619
206C 307.421909 174.850494 302.849041 172.95635 298.08155 172.95635
207C 293.314059 172.95635 288.74119 174.850494 285.370065 178.221619
208C 281.99894 181.592744 280.104796 186.165613 280.104796 190.933104
209C 280.104796 195.700595 281.99894 200.273463 285.370065 203.644589
210C 288.74119 207.015714 293.314059 208.909858 298.08155 208.909858
211L 298.08155 208.909858
212z
213" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
214 </g>
215 <g id="patch_15">
216 <path d="M 339.428084 208.909858
217C 344.195575 208.909858 348.768444 207.015714 352.139569 203.644589
218C 355.510694 200.273463 357.404839 195.700595 357.404839 190.933104
219C 357.404839 186.165613 355.510694 181.592744 352.139569 178.221619
220C 348.768444 174.850494 344.195575 172.95635 339.428084 172.95635
221C 334.660593 172.95635 330.087725 174.850494 326.7166 178.221619
222C 323.345474 181.592744 321.45133 186.165613 321.45133 190.933104
223C 321.45133 195.700595 323.345474 200.273463 326.7166 203.644589
224C 330.087725 207.015714 334.660593 208.909858 339.428084 208.909858
225L 339.428084 208.909858
226z
227" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
228 </g>
229 <g id="line2d_1">
230 <path d="M 70.675609 83.072579
231L 73.372122 83.072579
232L 73.372122 83.072579
233M 109.325631 83.072579
234L 109.325631 83.072579
235L 112.022144 83.072579
236" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
237 </g>
238 <g id="line2d_2">
239 <path d="M 87.753526 78.57839
240L 87.753526 87.566767
241" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
242 </g>
243 <g id="line2d_3">
244 <path d="M 94.944227 73.185364
245L 94.944227 92.959793
246" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
247 </g>
248 <g id="line2d_4">
249 <path d="M 73.372122 83.072579
250L 87.753526 83.072579
251M 94.944227 83.072579
252L 109.325631 83.072579
253" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
254 </g>
255 <g id="line2d_5">
256 <path d="M 112.920981 50.714421
257L 108.490671 55.144731
258" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
259 </g>
260 <g id="patch_16">
261 <path d="M 110.397394 57.051454
262L 102.134929 61.500474
263L 106.583949 53.238008
264z
265" clip-path="url(#p1441f39334)"/>
266 </g>
267 <g id="line2d_6">
268 <path d="M 120.111683 57.905123
269L 115.681373 62.335433
270" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
271 </g>
272 <g id="patch_17">
273 <path d="M 117.588096 64.242156
274L 109.325631 68.691175
275L 113.77465 60.42871
276z
277" clip-path="url(#p1441f39334)"/>
278 </g>
279 <g id="line2d_7">
280 <path d="M 112.022144 83.072579
281L 114.718657 83.072579
282L 114.718657 83.072579
283M 150.672165 83.072579
284L 150.672165 83.072579
285L 153.368678 83.072579
286" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
287 </g>
288 <g id="line2d_8">
289 <path d="M 129.10006 78.57839
290L 129.10006 87.566767
291" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
292 </g>
293 <g id="line2d_9">
294 <path d="M 136.290762 73.185364
295L 136.290762 92.959793
296" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
297 </g>
298 <g id="line2d_10">
299 <path d="M 114.718657 83.072579
300L 129.10006 83.072579
301M 136.290762 83.072579
302L 150.672165 83.072579
303" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
304 </g>
305 <g id="line2d_11">
306 <path d="M 154.267516 50.714421
307L 149.837206 55.144731
308" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
309 </g>
310 <g id="patch_18">
311 <path d="M 151.743929 57.051454
312L 143.481464 61.500474
313L 147.930483 53.238008
314z
315" clip-path="url(#p1441f39334)"/>
316 </g>
317 <g id="line2d_12">
318 <path d="M 161.458218 57.905123
319L 157.027908 62.335433
320" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
321 </g>
322 <g id="patch_19">
323 <path d="M 158.93463 64.242156
324L 150.672165 68.691175
325L 155.121185 60.42871
326z
327" clip-path="url(#p1441f39334)"/>
328 </g>
329 <g id="line2d_13">
330 <path d="M 153.368678 83.072579
331L 156.065192 83.072579
332L 156.065192 83.072579
333M 192.0187 83.072579
334L 192.0187 83.072579
335L 194.715213 83.072579
336" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
337 </g>
338 <g id="line2d_14">
339 <path d="M 170.446595 78.57839
340L 170.446595 87.566767
341" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
342 </g>
343 <g id="line2d_15">
344 <path d="M 177.637297 73.185364
345L 177.637297 92.959793
346" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
347 </g>
348 <g id="line2d_16">
349 <path d="M 156.065192 83.072579
350L 170.446595 83.072579
351M 177.637297 83.072579
352L 192.0187 83.072579
353" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
354 </g>
355 <g id="line2d_17">
356 <path d="M 195.614051 50.714421
357L 191.183741 55.144731
358" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
359 </g>
360 <g id="patch_20">
361 <path d="M 193.090463 57.051454
362L 184.827998 61.500474
363L 189.277018 53.238008
364z
365" clip-path="url(#p1441f39334)"/>
366 </g>
367 <g id="line2d_18">
368 <path d="M 202.804752 57.905123
369L 198.374442 62.335433
370" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
371 </g>
372 <g id="patch_21">
373 <path d="M 200.281165 64.242156
374L 192.0187 68.691175
375L 196.46772 60.42871
376z
377" clip-path="url(#p1441f39334)"/>
378 </g>
379 <g id="line2d_19">
380 <path d="M 194.715213 83.072579
381L 197.411726 83.072579
382L 197.411726 83.072579
383M 233.365235 83.072579
384L 233.365235 83.072579
385L 236.061748 83.072579
386" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
387 </g>
388 <g id="line2d_20">
389 <path d="M 211.79313 78.57839
390L 211.79313 87.566767
391" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
392 </g>
393 <g id="line2d_21">
394 <path d="M 218.983831 73.185364
395L 218.983831 92.959793
396" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
397 </g>
398 <g id="line2d_22">
399 <path d="M 197.411726 83.072579
400L 211.79313 83.072579
401M 218.983831 83.072579
402L 233.365235 83.072579
403" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
404 </g>
405 <g id="line2d_23">
406 <path d="M 236.960585 50.714421
407L 232.530275 55.144731
408" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
409 </g>
410 <g id="patch_22">
411 <path d="M 234.436998 57.051454
412L 226.174533 61.500474
413L 230.623553 53.238008
414z
415" clip-path="url(#p1441f39334)"/>
416 </g>
417 <g id="line2d_24">
418 <path d="M 244.151287 57.905123
419L 239.720977 62.335433
420" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
421 </g>
422 <g id="patch_23">
423 <path d="M 241.6277 64.242156
424L 233.365235 68.691175
425L 237.814254 60.42871
426z
427" clip-path="url(#p1441f39334)"/>
428 </g>
429 <g id="line2d_25">
430 <path d="M 236.061748 83.072579
431L 238.758261 83.072579
432L 238.758261 83.072579
433M 274.711769 83.072579
434L 274.711769 83.072579
435L 277.408282 83.072579
436" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
437 </g>
438 <g id="line2d_26">
439 <path d="M 253.139664 78.57839
440L 253.139664 87.566767
441" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
442 </g>
443 <g id="line2d_27">
444 <path d="M 260.330366 73.185364
445L 260.330366 92.959793
446" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
447 </g>
448 <g id="line2d_28">
449 <path d="M 238.758261 83.072579
450L 253.139664 83.072579
451M 260.330366 83.072579
452L 274.711769 83.072579
453" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
454 </g>
455 <g id="line2d_29">
456 <path d="M 278.30712 50.714421
457L 273.87681 55.144731
458" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
459 </g>
460 <g id="patch_24">
461 <path d="M 275.783533 57.051454
462L 267.521068 61.500474
463L 271.970087 53.238008
464z
465" clip-path="url(#p1441f39334)"/>
466 </g>
467 <g id="line2d_30">
468 <path d="M 285.497822 57.905123
469L 281.067512 62.335433
470" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
471 </g>
472 <g id="patch_25">
473 <path d="M 282.974234 64.242156
474L 274.711769 68.691175
475L 279.160789 60.42871
476z
477" clip-path="url(#p1441f39334)"/>
478 </g>
479 <g id="line2d_31">
480 <path d="M 277.408282 83.072579
481L 280.104796 83.072579
482L 280.104796 83.072579
483M 316.058304 83.072579
484L 316.058304 83.072579
485L 318.754817 83.072579
486" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
487 </g>
488 <g id="line2d_32">
489 <path d="M 294.486199 78.57839
490L 294.486199 87.566767
491" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
492 </g>
493 <g id="line2d_33">
494 <path d="M 301.676901 73.185364
495L 301.676901 92.959793
496" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
497 </g>
498 <g id="line2d_34">
499 <path d="M 280.104796 83.072579
500L 294.486199 83.072579
501M 301.676901 83.072579
502L 316.058304 83.072579
503" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
504 </g>
505 <g id="line2d_35">
506 <path d="M 319.653655 50.714421
507L 315.223345 55.144731
508" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
509 </g>
510 <g id="patch_26">
511 <path d="M 317.130067 57.051454
512L 308.867602 61.500474
513L 313.316622 53.238008
514z
515" clip-path="url(#p1441f39334)"/>
516 </g>
517 <g id="line2d_36">
518 <path d="M 326.844356 57.905123
519L 322.414046 62.335433
520" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
521 </g>
522 <g id="patch_27">
523 <path d="M 324.320769 64.242156
524L 316.058304 68.691175
525L 320.507324 60.42871
526z
527" clip-path="url(#p1441f39334)"/>
528 </g>
529 <g id="line2d_37">
530 <path d="M 318.754817 83.072579
531L 321.45133 83.072579
532L 321.45133 83.072579
533M 357.404839 83.072579
534L 357.404839 83.072579
535L 360.101352 83.072579
536" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
537 </g>
538 <g id="line2d_38">
539 <path d="M 335.832734 78.57839
540L 335.832734 87.566767
541" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
542 </g>
543 <g id="line2d_39">
544 <path d="M 343.023435 73.185364
545L 343.023435 92.959793
546" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
547 </g>
548 <g id="line2d_40">
549 <path d="M 321.45133 83.072579
550L 335.832734 83.072579
551M 343.023435 83.072579
552L 357.404839 83.072579
553" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
554 </g>
555 <g id="line2d_41">
556 <path d="M 361.000189 50.714421
557L 356.569879 55.144731
558" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
559 </g>
560 <g id="patch_28">
561 <path d="M 358.476602 57.051454
562L 350.214137 61.500474
563L 354.663157 53.238008
564z
565" clip-path="url(#p1441f39334)"/>
566 </g>
567 <g id="line2d_42">
568 <path d="M 368.190891 57.905123
569L 363.760581 62.335433
570" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
571 </g>
572 <g id="patch_29">
573 <path d="M 365.667304 64.242156
574L 357.404839 68.691175
575L 361.853858 60.42871
576z
577" clip-path="url(#p1441f39334)"/>
578 </g>
579 <g id="line2d_43">
580 <path d="M 360.101352 83.072579
581L 376.28043 83.072579
582L 392.459509 83.072579
583" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
584 </g>
585 <g id="line2d_44">
586 <path d="M 392.459509 83.072579
587L 395.156022 83.072579
588L 395.156022 74.084201
589L 431.109531 74.084201
590L 431.109531 92.060956
591L 395.156022 92.060956
592L 395.156022 83.072579
593M 431.109531 83.072579
594L 433.806044 83.072579
595" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
596 </g>
597 <g id="line2d_45">
598 <path d="M 70.675609 190.933104
599L 73.372122 190.933104
600L 73.372122 190.933104
601M 109.325631 190.933104
602L 109.325631 190.933104
603L 112.022144 190.933104
604" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
605 </g>
606 <g id="line2d_46">
607 <path d="M 87.753526 186.438915
608L 87.753526 195.427292
609" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
610 </g>
611 <g id="line2d_47">
612 <path d="M 94.944227 181.045889
613L 94.944227 200.820319
614" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
615 </g>
616 <g id="line2d_48">
617 <path d="M 73.372122 190.933104
618L 87.753526 190.933104
619M 94.944227 190.933104
620L 109.325631 190.933104
621" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
622 </g>
623 <g id="line2d_49">
624 <path d="M 112.920981 158.574946
625L 108.490671 163.005256
626" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
627 </g>
628 <g id="patch_30">
629 <path d="M 110.397394 164.911979
630L 102.134929 169.360999
631L 106.583949 161.098534
632z
633" clip-path="url(#p1441f39334)"/>
634 </g>
635 <g id="line2d_50">
636 <path d="M 120.111683 165.765648
637L 115.681373 170.195958
638" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
639 </g>
640 <g id="patch_31">
641 <path d="M 117.588096 172.102681
642L 109.325631 176.5517
643L 113.77465 168.289235
644z
645" clip-path="url(#p1441f39334)"/>
646 </g>
647 <g id="line2d_51">
648 <path d="M 112.022144 190.933104
649L 114.718657 190.933104
650L 114.718657 190.933104
651M 150.672165 190.933104
652L 150.672165 190.933104
653L 153.368678 190.933104
654" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
655 </g>
656 <g id="line2d_52">
657 <path d="M 129.10006 186.438915
658L 129.10006 195.427292
659" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
660 </g>
661 <g id="line2d_53">
662 <path d="M 136.290762 181.045889
663L 136.290762 200.820319
664" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
665 </g>
666 <g id="line2d_54">
667 <path d="M 114.718657 190.933104
668L 129.10006 190.933104
669M 136.290762 190.933104
670L 150.672165 190.933104
671" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
672 </g>
673 <g id="line2d_55">
674 <path d="M 154.267516 158.574946
675L 149.837206 163.005256
676" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
677 </g>
678 <g id="patch_32">
679 <path d="M 151.743929 164.911979
680L 143.481464 169.360999
681L 147.930483 161.098534
682z
683" clip-path="url(#p1441f39334)"/>
684 </g>
685 <g id="line2d_56">
686 <path d="M 161.458218 165.765648
687L 157.027908 170.195958
688" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
689 </g>
690 <g id="patch_33">
691 <path d="M 158.93463 172.102681
692L 150.672165 176.5517
693L 155.121185 168.289235
694z
695" clip-path="url(#p1441f39334)"/>
696 </g>
697 <g id="line2d_57">
698 <path d="M 153.368678 190.933104
699L 156.065192 190.933104
700L 156.065192 190.933104
701M 192.0187 190.933104
702L 192.0187 190.933104
703L 194.715213 190.933104
704" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
705 </g>
706 <g id="line2d_58">
707 <path d="M 170.446595 186.438915
708L 170.446595 195.427292
709" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
710 </g>
711 <g id="line2d_59">
712 <path d="M 177.637297 181.045889
713L 177.637297 200.820319
714" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
715 </g>
716 <g id="line2d_60">
717 <path d="M 156.065192 190.933104
718L 170.446595 190.933104
719M 177.637297 190.933104
720L 192.0187 190.933104
721" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
722 </g>
723 <g id="line2d_61">
724 <path d="M 195.614051 158.574946
725L 191.183741 163.005256
726" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
727 </g>
728 <g id="patch_34">
729 <path d="M 193.090463 164.911979
730L 184.827998 169.360999
731L 189.277018 161.098534
732z
733" clip-path="url(#p1441f39334)"/>
734 </g>
735 <g id="line2d_62">
736 <path d="M 202.804752 165.765648
737L 198.374442 170.195958
738" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
739 </g>
740 <g id="patch_35">
741 <path d="M 200.281165 172.102681
742L 192.0187 176.5517
743L 196.46772 168.289235
744z
745" clip-path="url(#p1441f39334)"/>
746 </g>
747 <g id="line2d_63">
748 <path d="M 194.715213 190.933104
749L 197.411726 190.933104
750L 197.411726 190.933104
751M 233.365235 190.933104
752L 233.365235 190.933104
753L 236.061748 190.933104
754" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
755 </g>
756 <g id="line2d_64">
757 <path d="M 211.79313 186.438915
758L 211.79313 195.427292
759" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
760 </g>
761 <g id="line2d_65">
762 <path d="M 218.983831 181.045889
763L 218.983831 200.820319
764" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
765 </g>
766 <g id="line2d_66">
767 <path d="M 197.411726 190.933104
768L 211.79313 190.933104
769M 218.983831 190.933104
770L 233.365235 190.933104
771" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
772 </g>
773 <g id="line2d_67">
774 <path d="M 236.960585 158.574946
775L 232.530275 163.005256
776" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
777 </g>
778 <g id="patch_36">
779 <path d="M 234.436998 164.911979
780L 226.174533 169.360999
781L 230.623553 161.098534
782z
783" clip-path="url(#p1441f39334)"/>
784 </g>
785 <g id="line2d_68">
786 <path d="M 244.151287 165.765648
787L 239.720977 170.195958
788" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
789 </g>
790 <g id="patch_37">
791 <path d="M 241.6277 172.102681
792L 233.365235 176.5517
793L 237.814254 168.289235
794z
795" clip-path="url(#p1441f39334)"/>
796 </g>
797 <g id="line2d_69">
798 <path d="M 236.061748 190.933104
799L 238.758261 190.933104
800L 238.758261 190.933104
801M 274.711769 190.933104
802L 274.711769 190.933104
803L 277.408282 190.933104
804" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
805 </g>
806 <g id="line2d_70">
807 <path d="M 253.139664 186.438915
808L 253.139664 195.427292
809" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
810 </g>
811 <g id="line2d_71">
812 <path d="M 260.330366 181.045889
813L 260.330366 200.820319
814" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
815 </g>
816 <g id="line2d_72">
817 <path d="M 238.758261 190.933104
818L 253.139664 190.933104
819M 260.330366 190.933104
820L 274.711769 190.933104
821" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
822 </g>
823 <g id="line2d_73">
824 <path d="M 278.30712 158.574946
825L 273.87681 163.005256
826" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
827 </g>
828 <g id="patch_38">
829 <path d="M 275.783533 164.911979
830L 267.521068 169.360999
831L 271.970087 161.098534
832z
833" clip-path="url(#p1441f39334)"/>
834 </g>
835 <g id="line2d_74">
836 <path d="M 285.497822 165.765648
837L 281.067512 170.195958
838" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
839 </g>
840 <g id="patch_39">
841 <path d="M 282.974234 172.102681
842L 274.711769 176.5517
843L 279.160789 168.289235
844z
845" clip-path="url(#p1441f39334)"/>
846 </g>
847 <g id="line2d_75">
848 <path d="M 277.408282 190.933104
849L 280.104796 190.933104
850L 280.104796 190.933104
851M 316.058304 190.933104
852L 316.058304 190.933104
853L 318.754817 190.933104
854" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
855 </g>
856 <g id="line2d_76">
857 <path d="M 294.486199 186.438915
858L 294.486199 195.427292
859" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
860 </g>
861 <g id="line2d_77">
862 <path d="M 301.676901 181.045889
863L 301.676901 200.820319
864" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
865 </g>
866 <g id="line2d_78">
867 <path d="M 280.104796 190.933104
868L 294.486199 190.933104
869M 301.676901 190.933104
870L 316.058304 190.933104
871" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
872 </g>
873 <g id="line2d_79">
874 <path d="M 319.653655 158.574946
875L 315.223345 163.005256
876" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
877 </g>
878 <g id="patch_40">
879 <path d="M 317.130067 164.911979
880L 308.867602 169.360999
881L 313.316622 161.098534
882z
883" clip-path="url(#p1441f39334)"/>
884 </g>
885 <g id="line2d_80">
886 <path d="M 326.844356 165.765648
887L 322.414046 170.195958
888" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
889 </g>
890 <g id="patch_41">
891 <path d="M 324.320769 172.102681
892L 316.058304 176.5517
893L 320.507324 168.289235
894z
895" clip-path="url(#p1441f39334)"/>
896 </g>
897 <g id="line2d_81">
898 <path d="M 318.754817 190.933104
899L 321.45133 190.933104
900L 321.45133 190.933104
901M 357.404839 190.933104
902L 357.404839 190.933104
903L 360.101352 190.933104
904" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
905 </g>
906 <g id="line2d_82">
907 <path d="M 335.832734 186.438915
908L 335.832734 195.427292
909" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
910 </g>
911 <g id="line2d_83">
912 <path d="M 343.023435 181.045889
913L 343.023435 200.820319
914" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
915 </g>
916 <g id="line2d_84">
917 <path d="M 321.45133 190.933104
918L 335.832734 190.933104
919M 343.023435 190.933104
920L 357.404839 190.933104
921" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
922 </g>
923 <g id="line2d_85">
924 <path d="M 361.000189 158.574946
925L 356.569879 163.005256
926" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
927 </g>
928 <g id="patch_42">
929 <path d="M 358.476602 164.911979
930L 350.214137 169.360999
931L 354.663157 161.098534
932z
933" clip-path="url(#p1441f39334)"/>
934 </g>
935 <g id="line2d_86">
936 <path d="M 368.190891 165.765648
937L 363.760581 170.195958
938" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
939 </g>
940 <g id="patch_43">
941 <path d="M 365.667304 172.102681
942L 357.404839 176.5517
943L 361.853858 168.289235
944z
945" clip-path="url(#p1441f39334)"/>
946 </g>
947 <g id="line2d_87">
948 <path d="M 360.101352 190.933104
949L 376.28043 190.933104
950L 392.459509 190.933104
951" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
952 </g>
953 <g id="line2d_88">
954 <path d="M 392.459509 190.933104
955L 395.156022 190.933104
956L 395.156022 181.944727
957L 431.109531 181.944727
958L 431.109531 199.921481
959L 395.156022 199.921481
960L 395.156022 190.933104
961M 431.109531 190.933104
962L 433.806044 190.933104
963" clip-path="url(#p1441f39334)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
964 </g>
965 <g id="text_1">
966 <!-- String 1 -->
967 <g transform="translate(2.617729 77.605509) scale(0.09 -0.09)">
968 <defs>
969 <path id="DejaVuSans-53" d="M 3425 4513
970L 3425 3897
971Q 3066 4069 2747 4153
972Q 2428 4238 2131 4238
973Q 1616 4238 1336 4038
974Q 1056 3838 1056 3469
975Q 1056 3159 1242 3001
976Q 1428 2844 1947 2747
977L 2328 2669
978Q 3034 2534 3370 2195
979Q 3706 1856 3706 1288
980Q 3706 609 3251 259
981Q 2797 -91 1919 -91
982Q 1588 -91 1214 -16
983Q 841 59 441 206
984L 441 856
985Q 825 641 1194 531
986Q 1563 422 1919 422
987Q 2459 422 2753 634
988Q 3047 847 3047 1241
989Q 3047 1584 2836 1778
990Q 2625 1972 2144 2069
991L 1759 2144
992Q 1053 2284 737 2584
993Q 422 2884 422 3419
994Q 422 4038 858 4394
995Q 1294 4750 2059 4750
996Q 2388 4750 2728 4690
997Q 3069 4631 3425 4513
998z
999" transform="scale(0.015625)"/>
1000 <path id="DejaVuSans-74" d="M 1172 4494
1001L 1172 3500
1002L 2356 3500
1003L 2356 3053
1004L 1172 3053
1005L 1172 1153
1006Q 1172 725 1289 603
1007Q 1406 481 1766 481
1008L 2356 481
1009L 2356 0
1010L 1766 0
1011Q 1100 0 847 248
1012Q 594 497 594 1153
1013L 594 3053
1014L 172 3053
1015L 172 3500
1016L 594 3500
1017L 594 4494
1018L 1172 4494
1019z
1020" transform="scale(0.015625)"/>
1021 <path id="DejaVuSans-72" d="M 2631 2963
1022Q 2534 3019 2420 3045
1023Q 2306 3072 2169 3072
1024Q 1681 3072 1420 2755
1025Q 1159 2438 1159 1844
1026L 1159 0
1027L 581 0
1028L 581 3500
1029L 1159 3500
1030L 1159 2956
1031Q 1341 3275 1631 3429
1032Q 1922 3584 2338 3584
1033Q 2397 3584 2469 3576
1034Q 2541 3569 2628 3553
1035L 2631 2963
1036z
1037" transform="scale(0.015625)"/>
1038 <path id="DejaVuSans-69" d="M 603 3500
1039L 1178 3500
1040L 1178 0
1041L 603 0
1042L 603 3500
1043z
1044M 603 4863
1045L 1178 4863
1046L 1178 4134
1047L 603 4134
1048L 603 4863
1049z
1050" transform="scale(0.015625)"/>
1051 <path id="DejaVuSans-6e" d="M 3513 2113
1052L 3513 0
1053L 2938 0
1054L 2938 2094
1055Q 2938 2591 2744 2837
1056Q 2550 3084 2163 3084
1057Q 1697 3084 1428 2787
1058Q 1159 2491 1159 1978
1059L 1159 0
1060L 581 0
1061L 581 3500
1062L 1159 3500
1063L 1159 2956
1064Q 1366 3272 1645 3428
1065Q 1925 3584 2291 3584
1066Q 2894 3584 3203 3211
1067Q 3513 2838 3513 2113
1068z
1069" transform="scale(0.015625)"/>
1070 <path id="DejaVuSans-67" d="M 2906 1791
1071Q 2906 2416 2648 2759
1072Q 2391 3103 1925 3103
1073Q 1463 3103 1205 2759
1074Q 947 2416 947 1791
1075Q 947 1169 1205 825
1076Q 1463 481 1925 481
1077Q 2391 481 2648 825
1078Q 2906 1169 2906 1791
1079z
1080M 3481 434
1081Q 3481 -459 3084 -895
1082Q 2688 -1331 1869 -1331
1083Q 1566 -1331 1297 -1286
1084Q 1028 -1241 775 -1147
1085L 775 -588
1086Q 1028 -725 1275 -790
1087Q 1522 -856 1778 -856
1088Q 2344 -856 2625 -561
1089Q 2906 -266 2906 331
1090L 2906 616
1091Q 2728 306 2450 153
1092Q 2172 0 1784 0
1093Q 1141 0 747 490
1094Q 353 981 353 1791
1095Q 353 2603 747 3093
1096Q 1141 3584 1784 3584
1097Q 2172 3584 2450 3431
1098Q 2728 3278 2906 2969
1099L 2906 3500
1100L 3481 3500
1101L 3481 434
1102z
1103" transform="scale(0.015625)"/>
1104 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
1105 <path id="DejaVuSans-31" d="M 794 531
1106L 1825 531
1107L 1825 4091
1108L 703 3866
1109L 703 4441
1110L 1819 4666
1111L 2450 4666
1112L 2450 531
1113L 3481 531
1114L 3481 0
1115L 794 0
1116L 794 531
1117z
1118" transform="scale(0.015625)"/>
1119 </defs>
1120 <use xlink:href="#DejaVuSans-53"/>
1121 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
1122 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
1123 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
1124 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
1125 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
1126 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
1127 <use xlink:href="#DejaVuSans-31" transform="translate(330.224609 0)"/>
1128 </g>
1129 <!-- (+) -->
1130 <g transform="translate(13.058432 86.315821) scale(0.09 -0.09)">
1131 <defs>
1132 <path id="DejaVuSans-28" d="M 1984 4856
1133Q 1566 4138 1362 3434
1134Q 1159 2731 1159 2009
1135Q 1159 1288 1364 580
1136Q 1569 -128 1984 -844
1137L 1484 -844
1138Q 1016 -109 783 600
1139Q 550 1309 550 2009
1140Q 550 2706 781 3412
1141Q 1013 4119 1484 4856
1142L 1984 4856
1143z
1144" transform="scale(0.015625)"/>
1145 <path id="DejaVuSans-2b" d="M 2944 4013
1146L 2944 2272
1147L 4684 2272
1148L 4684 1741
1149L 2944 1741
1150L 2944 0
1151L 2419 0
1152L 2419 1741
1153L 678 1741
1154L 678 2272
1155L 2419 2272
1156L 2419 4013
1157L 2944 4013
1158z
1159" transform="scale(0.015625)"/>
1160 <path id="DejaVuSans-29" d="M 513 4856
1161L 1013 4856
1162Q 1481 4119 1714 3412
1163Q 1947 2706 1947 2009
1164Q 1947 1309 1714 600
1165Q 1481 -109 1013 -844
1166L 513 -844
1167Q 928 -128 1133 580
1168Q 1338 1288 1338 2009
1169Q 1338 2731 1133 3434
1170Q 928 4138 513 4856
1171z
1172" transform="scale(0.015625)"/>
1173 </defs>
1174 <use xlink:href="#DejaVuSans-28"/>
1175 <use xlink:href="#DejaVuSans-2b" transform="translate(39.013672 0)"/>
1176 <use xlink:href="#DejaVuSans-29" transform="translate(122.802734 0)"/>
1177 </g>
1178 </g>
1179 <g id="text_2">
1180 <!-- 8AWG -->
1181 <g transform="translate(364.164805 77.813478) scale(0.08 -0.08)">
1182 <defs>
1183 <path id="DejaVuSans-38" d="M 2034 2216
1184Q 1584 2216 1326 1975
1185Q 1069 1734 1069 1313
1186Q 1069 891 1326 650
1187Q 1584 409 2034 409
1188Q 2484 409 2743 651
1189Q 3003 894 3003 1313
1190Q 3003 1734 2745 1975
1191Q 2488 2216 2034 2216
1192z
1193M 1403 2484
1194Q 997 2584 770 2862
1195Q 544 3141 544 3541
1196Q 544 4100 942 4425
1197Q 1341 4750 2034 4750
1198Q 2731 4750 3128 4425
1199Q 3525 4100 3525 3541
1200Q 3525 3141 3298 2862
1201Q 3072 2584 2669 2484
1202Q 3125 2378 3379 2068
1203Q 3634 1759 3634 1313
1204Q 3634 634 3220 271
1205Q 2806 -91 2034 -91
1206Q 1263 -91 848 271
1207Q 434 634 434 1313
1208Q 434 1759 690 2068
1209Q 947 2378 1403 2484
1210z
1211M 1172 3481
1212Q 1172 3119 1398 2916
1213Q 1625 2713 2034 2713
1214Q 2441 2713 2670 2916
1215Q 2900 3119 2900 3481
1216Q 2900 3844 2670 4047
1217Q 2441 4250 2034 4250
1218Q 1625 4250 1398 4047
1219Q 1172 3844 1172 3481
1220z
1221" transform="scale(0.015625)"/>
1222 <path id="DejaVuSans-41" d="M 2188 4044
1223L 1331 1722
1224L 3047 1722
1225L 2188 4044
1226z
1227M 1831 4666
1228L 2547 4666
1229L 4325 0
1230L 3669 0
1231L 3244 1197
1232L 1141 1197
1233L 716 0
1234L 50 0
1235L 1831 4666
1236z
1237" transform="scale(0.015625)"/>
1238 <path id="DejaVuSans-57" d="M 213 4666
1239L 850 4666
1240L 1831 722
1241L 2809 4666
1242L 3519 4666
1243L 4500 722
1244L 5478 4666
1245L 6119 4666
1246L 4947 0
1247L 4153 0
1248L 3169 4050
1249L 2175 0
1250L 1381 0
1251L 213 4666
1252z
1253" transform="scale(0.015625)"/>
1254 <path id="DejaVuSans-47" d="M 3809 666
1255L 3809 1919
1256L 2778 1919
1257L 2778 2438
1258L 4434 2438
1259L 4434 434
1260Q 4069 175 3628 42
1261Q 3188 -91 2688 -91
1262Q 1594 -91 976 548
1263Q 359 1188 359 2328
1264Q 359 3472 976 4111
1265Q 1594 4750 2688 4750
1266Q 3144 4750 3555 4637
1267Q 3966 4525 4313 4306
1268L 4313 3634
1269Q 3963 3931 3569 4081
1270Q 3175 4231 2741 4231
1271Q 1884 4231 1454 3753
1272Q 1025 3275 1025 2328
1273Q 1025 1384 1454 906
1274Q 1884 428 2741 428
1275Q 3075 428 3337 486
1276Q 3600 544 3809 666
1277z
1278" transform="scale(0.015625)"/>
1279 </defs>
1280 <use xlink:href="#DejaVuSans-38"/>
1281 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1282 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1283 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1284 </g>
1285 </g>
1286 <g id="text_3">
1287 <!-- MPPT1 -->
1288 <g transform="translate(398.211761 59.906819) scale(0.09 -0.09)">
1289 <defs>
1290 <path id="DejaVuSans-4d" d="M 628 4666
1291L 1569 4666
1292L 2759 1491
1293L 3956 4666
1294L 4897 4666
1295L 4897 0
1296L 4281 0
1297L 4281 4097
1298L 3078 897
1299L 2444 897
1300L 1241 4097
1301L 1241 0
1302L 628 0
1303L 628 4666
1304z
1305" transform="scale(0.015625)"/>
1306 <path id="DejaVuSans-50" d="M 1259 4147
1307L 1259 2394
1308L 2053 2394
1309Q 2494 2394 2734 2622
1310Q 2975 2850 2975 3272
1311Q 2975 3691 2734 3919
1312Q 2494 4147 2053 4147
1313L 1259 4147
1314z
1315M 628 4666
1316L 2053 4666
1317Q 2838 4666 3239 4311
1318Q 3641 3956 3641 3272
1319Q 3641 2581 3239 2228
1320Q 2838 1875 2053 1875
1321L 1259 1875
1322L 1259 0
1323L 628 0
1324L 628 4666
1325z
1326" transform="scale(0.015625)"/>
1327 <path id="DejaVuSans-54" d="M -19 4666
1328L 3928 4666
1329L 3928 4134
1330L 2272 4134
1331L 2272 0
1332L 1638 0
1333L 1638 4134
1334L -19 4134
1335L -19 4666
1336z
1337" transform="scale(0.015625)"/>
1338 </defs>
1339 <use xlink:href="#DejaVuSans-4d"/>
1340 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1341 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1342 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1343 <use xlink:href="#DejaVuSans-31" transform="translate(267.96875 0)"/>
1344 </g>
1345 <!-- EG4 -->
1346 <g transform="translate(403.939417 68.617132) scale(0.09 -0.09)">
1347 <defs>
1348 <path id="DejaVuSans-45" d="M 628 4666
1349L 3578 4666
1350L 3578 4134
1351L 1259 4134
1352L 1259 2753
1353L 3481 2753
1354L 3481 2222
1355L 1259 2222
1356L 1259 531
1357L 3634 531
1358L 3634 0
1359L 628 0
1360L 628 4666
1361z
1362" transform="scale(0.015625)"/>
1363 <path id="DejaVuSans-34" d="M 2419 4116
1364L 825 1625
1365L 2419 1625
1366L 2419 4116
1367z
1368M 2253 4666
1369L 3047 4666
1370L 3047 1625
1371L 3713 1625
1372L 3713 1100
1373L 3047 1100
1374L 3047 0
1375L 2419 0
1376L 2419 1100
1377L 313 1100
1378L 313 1709
1379L 2253 4666
1380z
1381" transform="scale(0.015625)"/>
1382 </defs>
1383 <use xlink:href="#DejaVuSans-45"/>
1384 <use xlink:href="#DejaVuSans-47" transform="translate(63.183594 0)"/>
1385 <use xlink:href="#DejaVuSans-34" transform="translate(140.673828 0)"/>
1386 </g>
1387 </g>
1388 <g id="text_4">
1389 <!-- String 2 -->
1390 <g transform="translate(2.617729 185.466034) scale(0.09 -0.09)">
1391 <defs>
1392 <path id="DejaVuSans-32" d="M 1228 531
1393L 3431 531
1394L 3431 0
1395L 469 0
1396L 469 531
1397Q 828 903 1448 1529
1398Q 2069 2156 2228 2338
1399Q 2531 2678 2651 2914
1400Q 2772 3150 2772 3378
1401Q 2772 3750 2511 3984
1402Q 2250 4219 1831 4219
1403Q 1534 4219 1204 4116
1404Q 875 4013 500 3803
1405L 500 4441
1406Q 881 4594 1212 4672
1407Q 1544 4750 1819 4750
1408Q 2544 4750 2975 4387
1409Q 3406 4025 3406 3419
1410Q 3406 3131 3298 2873
1411Q 3191 2616 2906 2266
1412Q 2828 2175 2409 1742
1413Q 1991 1309 1228 531
1414z
1415" transform="scale(0.015625)"/>
1416 </defs>
1417 <use xlink:href="#DejaVuSans-53"/>
1418 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
1419 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
1420 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
1421 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
1422 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
1423 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
1424 <use xlink:href="#DejaVuSans-32" transform="translate(330.224609 0)"/>
1425 </g>
1426 <!-- (+) -->
1427 <g transform="translate(13.058432 194.176347) scale(0.09 -0.09)">
1428 <use xlink:href="#DejaVuSans-28"/>
1429 <use xlink:href="#DejaVuSans-2b" transform="translate(39.013672 0)"/>
1430 <use xlink:href="#DejaVuSans-29" transform="translate(122.802734 0)"/>
1431 </g>
1432 </g>
1433 <g id="text_5">
1434 <!-- 8AWG -->
1435 <g transform="translate(364.164805 185.674003) scale(0.08 -0.08)">
1436 <use xlink:href="#DejaVuSans-38"/>
1437 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1438 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1439 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1440 </g>
1441 </g>
1442 <g id="text_6">
1443 <!-- MPPT2 -->
1444 <g transform="translate(398.211761 167.767345) scale(0.09 -0.09)">
1445 <use xlink:href="#DejaVuSans-4d"/>
1446 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1447 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1448 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1449 <use xlink:href="#DejaVuSans-32" transform="translate(267.96875 0)"/>
1450 </g>
1451 <!-- EG4 -->
1452 <g transform="translate(403.939417 176.477657) scale(0.09 -0.09)">
1453 <use xlink:href="#DejaVuSans-45"/>
1454 <use xlink:href="#DejaVuSans-47" transform="translate(63.183594 0)"/>
1455 <use xlink:href="#DejaVuSans-34" transform="translate(140.673828 0)"/>
1456 </g>
1457 </g>
1458 <g id="text_7">
1459 <!-- DC STRING WIRING — 2 strings × 7S across MPPT1 / MPPT2 -->
1460 <g transform="translate(42.17081 14.752749) scale(0.13 -0.13)">
1461 <defs>
1462 <path id="DejaVuSans-44" d="M 1259 4147
1463L 1259 519
1464L 2022 519
1465Q 2988 519 3436 956
1466Q 3884 1394 3884 2338
1467Q 3884 3275 3436 3711
1468Q 2988 4147 2022 4147
1469L 1259 4147
1470z
1471M 628 4666
1472L 1925 4666
1473Q 3281 4666 3915 4102
1474Q 4550 3538 4550 2338
1475Q 4550 1131 3912 565
1476Q 3275 0 1925 0
1477L 628 0
1478L 628 4666
1479z
1480" transform="scale(0.015625)"/>
1481 <path id="DejaVuSans-43" d="M 4122 4306
1482L 4122 3641
1483Q 3803 3938 3442 4084
1484Q 3081 4231 2675 4231
1485Q 1875 4231 1450 3742
1486Q 1025 3253 1025 2328
1487Q 1025 1406 1450 917
1488Q 1875 428 2675 428
1489Q 3081 428 3442 575
1490Q 3803 722 4122 1019
1491L 4122 359
1492Q 3791 134 3420 21
1493Q 3050 -91 2638 -91
1494Q 1578 -91 968 557
1495Q 359 1206 359 2328
1496Q 359 3453 968 4101
1497Q 1578 4750 2638 4750
1498Q 3056 4750 3426 4639
1499Q 3797 4528 4122 4306
1500z
1501" transform="scale(0.015625)"/>
1502 <path id="DejaVuSans-52" d="M 2841 2188
1503Q 3044 2119 3236 1894
1504Q 3428 1669 3622 1275
1505L 4263 0
1506L 3584 0
1507L 2988 1197
1508Q 2756 1666 2539 1819
1509Q 2322 1972 1947 1972
1510L 1259 1972
1511L 1259 0
1512L 628 0
1513L 628 4666
1514L 2053 4666
1515Q 2853 4666 3247 4331
1516Q 3641 3997 3641 3322
1517Q 3641 2881 3436 2590
1518Q 3231 2300 2841 2188
1519z
1520M 1259 4147
1521L 1259 2491
1522L 2053 2491
1523Q 2509 2491 2742 2702
1524Q 2975 2913 2975 3322
1525Q 2975 3731 2742 3939
1526Q 2509 4147 2053 4147
1527L 1259 4147
1528z
1529" transform="scale(0.015625)"/>
1530 <path id="DejaVuSans-49" d="M 628 4666
1531L 1259 4666
1532L 1259 0
1533L 628 0
1534L 628 4666
1535z
1536" transform="scale(0.015625)"/>
1537 <path id="DejaVuSans-4e" d="M 628 4666
1538L 1478 4666
1539L 3547 763
1540L 3547 4666
1541L 4159 4666
1542L 4159 0
1543L 3309 0
1544L 1241 3903
1545L 1241 0
1546L 628 0
1547L 628 4666
1548z
1549" transform="scale(0.015625)"/>
1550 <path id="DejaVuSans-2014" d="M 313 1978
1551L 6088 1978
1552L 6088 1528
1553L 313 1528
1554L 313 1978
1555z
1556" transform="scale(0.015625)"/>
1557 <path id="DejaVuSans-73" d="M 2834 3397
1558L 2834 2853
1559Q 2591 2978 2328 3040
1560Q 2066 3103 1784 3103
1561Q 1356 3103 1142 2972
1562Q 928 2841 928 2578
1563Q 928 2378 1081 2264
1564Q 1234 2150 1697 2047
1565L 1894 2003
1566Q 2506 1872 2764 1633
1567Q 3022 1394 3022 966
1568Q 3022 478 2636 193
1569Q 2250 -91 1575 -91
1570Q 1294 -91 989 -36
1571Q 684 19 347 128
1572L 347 722
1573Q 666 556 975 473
1574Q 1284 391 1588 391
1575Q 1994 391 2212 530
1576Q 2431 669 2431 922
1577Q 2431 1156 2273 1281
1578Q 2116 1406 1581 1522
1579L 1381 1569
1580Q 847 1681 609 1914
1581Q 372 2147 372 2553
1582Q 372 3047 722 3315
1583Q 1072 3584 1716 3584
1584Q 2034 3584 2315 3537
1585Q 2597 3491 2834 3397
1586z
1587" transform="scale(0.015625)"/>
1588 <path id="DejaVuSans-d7" d="M 4488 3438
1589L 3059 2003
1590L 4488 575
1591L 4116 197
1592L 2681 1631
1593L 1247 197
1594L 878 575
1595L 2303 2003
1596L 878 3438
1597L 1247 3816
1598L 2681 2381
1599L 4116 3816
1600L 4488 3438
1601z
1602" transform="scale(0.015625)"/>
1603 <path id="DejaVuSans-37" d="M 525 4666
1604L 3525 4666
1605L 3525 4397
1606L 1831 0
1607L 1172 0
1608L 2766 4134
1609L 525 4134
1610L 525 4666
1611z
1612" transform="scale(0.015625)"/>
1613 <path id="DejaVuSans-61" d="M 2194 1759
1614Q 1497 1759 1228 1600
1615Q 959 1441 959 1056
1616Q 959 750 1161 570
1617Q 1363 391 1709 391
1618Q 2188 391 2477 730
1619Q 2766 1069 2766 1631
1620L 2766 1759
1621L 2194 1759
1622z
1623M 3341 1997
1624L 3341 0
1625L 2766 0
1626L 2766 531
1627Q 2569 213 2275 61
1628Q 1981 -91 1556 -91
1629Q 1019 -91 701 211
1630Q 384 513 384 1019
1631Q 384 1609 779 1909
1632Q 1175 2209 1959 2209
1633L 2766 2209
1634L 2766 2266
1635Q 2766 2663 2505 2880
1636Q 2244 3097 1772 3097
1637Q 1472 3097 1187 3025
1638Q 903 2953 641 2809
1639L 641 3341
1640Q 956 3463 1253 3523
1641Q 1550 3584 1831 3584
1642Q 2591 3584 2966 3190
1643Q 3341 2797 3341 1997
1644z
1645" transform="scale(0.015625)"/>
1646 <path id="DejaVuSans-63" d="M 3122 3366
1647L 3122 2828
1648Q 2878 2963 2633 3030
1649Q 2388 3097 2138 3097
1650Q 1578 3097 1268 2742
1651Q 959 2388 959 1747
1652Q 959 1106 1268 751
1653Q 1578 397 2138 397
1654Q 2388 397 2633 464
1655Q 2878 531 3122 666
1656L 3122 134
1657Q 2881 22 2623 -34
1658Q 2366 -91 2075 -91
1659Q 1284 -91 818 406
1660Q 353 903 353 1747
1661Q 353 2603 823 3093
1662Q 1294 3584 2113 3584
1663Q 2378 3584 2631 3529
1664Q 2884 3475 3122 3366
1665z
1666" transform="scale(0.015625)"/>
1667 <path id="DejaVuSans-6f" d="M 1959 3097
1668Q 1497 3097 1228 2736
1669Q 959 2375 959 1747
1670Q 959 1119 1226 758
1671Q 1494 397 1959 397
1672Q 2419 397 2687 759
1673Q 2956 1122 2956 1747
1674Q 2956 2369 2687 2733
1675Q 2419 3097 1959 3097
1676z
1677M 1959 3584
1678Q 2709 3584 3137 3096
1679Q 3566 2609 3566 1747
1680Q 3566 888 3137 398
1681Q 2709 -91 1959 -91
1682Q 1206 -91 779 398
1683Q 353 888 353 1747
1684Q 353 2609 779 3096
1685Q 1206 3584 1959 3584
1686z
1687" transform="scale(0.015625)"/>
1688 <path id="DejaVuSans-2f" d="M 1625 4666
1689L 2156 4666
1690L 531 -594
1691L 0 -594
1692L 1625 4666
1693z
1694" transform="scale(0.015625)"/>
1695 </defs>
1696 <use xlink:href="#DejaVuSans-44"/>
1697 <use xlink:href="#DejaVuSans-43" transform="translate(77.001953 0)"/>
1698 <use xlink:href="#DejaVuSans-20" transform="translate(146.826172 0)"/>
1699 <use xlink:href="#DejaVuSans-53" transform="translate(178.613281 0)"/>
1700 <use xlink:href="#DejaVuSans-54" transform="translate(242.089844 0)"/>
1701 <use xlink:href="#DejaVuSans-52" transform="translate(303.173828 0)"/>
1702 <use xlink:href="#DejaVuSans-49" transform="translate(372.65625 0)"/>
1703 <use xlink:href="#DejaVuSans-4e" transform="translate(402.148438 0)"/>
1704 <use xlink:href="#DejaVuSans-47" transform="translate(476.953125 0)"/>
1705 <use xlink:href="#DejaVuSans-20" transform="translate(554.443359 0)"/>
1706 <use xlink:href="#DejaVuSans-57" transform="translate(586.230469 0)"/>
1707 <use xlink:href="#DejaVuSans-49" transform="translate(685.107422 0)"/>
1708 <use xlink:href="#DejaVuSans-52" transform="translate(714.599609 0)"/>
1709 <use xlink:href="#DejaVuSans-49" transform="translate(784.082031 0)"/>
1710 <use xlink:href="#DejaVuSans-4e" transform="translate(813.574219 0)"/>
1711 <use xlink:href="#DejaVuSans-47" transform="translate(888.378906 0)"/>
1712 <use xlink:href="#DejaVuSans-20" transform="translate(965.869141 0)"/>
1713 <use xlink:href="#DejaVuSans-2014" transform="translate(997.65625 0)"/>
1714 <use xlink:href="#DejaVuSans-20" transform="translate(1097.65625 0)"/>
1715 <use xlink:href="#DejaVuSans-32" transform="translate(1129.443359 0)"/>
1716 <use xlink:href="#DejaVuSans-20" transform="translate(1193.066406 0)"/>
1717 <use xlink:href="#DejaVuSans-73" transform="translate(1224.853516 0)"/>
1718 <use xlink:href="#DejaVuSans-74" transform="translate(1276.953125 0)"/>
1719 <use xlink:href="#DejaVuSans-72" transform="translate(1316.162109 0)"/>
1720 <use xlink:href="#DejaVuSans-69" transform="translate(1357.275391 0)"/>
1721 <use xlink:href="#DejaVuSans-6e" transform="translate(1385.058594 0)"/>
1722 <use xlink:href="#DejaVuSans-67" transform="translate(1448.4375 0)"/>
1723 <use xlink:href="#DejaVuSans-73" transform="translate(1511.914062 0)"/>
1724 <use xlink:href="#DejaVuSans-20" transform="translate(1564.013672 0)"/>
1725 <use xlink:href="#DejaVuSans-d7" transform="translate(1595.800781 0)"/>
1726 <use xlink:href="#DejaVuSans-20" transform="translate(1679.589844 0)"/>
1727 <use xlink:href="#DejaVuSans-37" transform="translate(1711.376953 0)"/>
1728 <use xlink:href="#DejaVuSans-53" transform="translate(1775 0)"/>
1729 <use xlink:href="#DejaVuSans-20" transform="translate(1838.476562 0)"/>
1730 <use xlink:href="#DejaVuSans-61" transform="translate(1870.263672 0)"/>
1731 <use xlink:href="#DejaVuSans-63" transform="translate(1931.542969 0)"/>
1732 <use xlink:href="#DejaVuSans-72" transform="translate(1986.523438 0)"/>
1733 <use xlink:href="#DejaVuSans-6f" transform="translate(2025.386719 0)"/>
1734 <use xlink:href="#DejaVuSans-73" transform="translate(2086.568359 0)"/>
1735 <use xlink:href="#DejaVuSans-73" transform="translate(2138.667969 0)"/>
1736 <use xlink:href="#DejaVuSans-20" transform="translate(2190.767578 0)"/>
1737 <use xlink:href="#DejaVuSans-4d" transform="translate(2222.554688 0)"/>
1738 <use xlink:href="#DejaVuSans-50" transform="translate(2308.833984 0)"/>
1739 <use xlink:href="#DejaVuSans-50" transform="translate(2369.136719 0)"/>
1740 <use xlink:href="#DejaVuSans-54" transform="translate(2429.439453 0)"/>
1741 <use xlink:href="#DejaVuSans-31" transform="translate(2490.523438 0)"/>
1742 <use xlink:href="#DejaVuSans-20" transform="translate(2554.146484 0)"/>
1743 <use xlink:href="#DejaVuSans-2f" transform="translate(2585.933594 0)"/>
1744 <use xlink:href="#DejaVuSans-20" transform="translate(2619.625 0)"/>
1745 <use xlink:href="#DejaVuSans-4d" transform="translate(2651.412109 0)"/>
1746 <use xlink:href="#DejaVuSans-50" transform="translate(2737.691406 0)"/>
1747 <use xlink:href="#DejaVuSans-50" transform="translate(2797.994141 0)"/>
1748 <use xlink:href="#DejaVuSans-54" transform="translate(2858.296875 0)"/>
1749 <use xlink:href="#DejaVuSans-32" transform="translate(2919.380859 0)"/>
1750 </g>
1751 </g>
1752 <g id="text_8">
1753 <!-- Each string: 7×Waaree 575W series · Vmp≈307V · cold Voc 430.1V (≤480V design / 500V abs) -->
1754 <g transform="translate(46.135498 264.771721) scale(0.08 -0.08)">
1755 <defs>
1756 <path id="DejaVuSans-68" d="M 3513 2113
1757L 3513 0
1758L 2938 0
1759L 2938 2094
1760Q 2938 2591 2744 2837
1761Q 2550 3084 2163 3084
1762Q 1697 3084 1428 2787
1763Q 1159 2491 1159 1978
1764L 1159 0
1765L 581 0
1766L 581 4863
1767L 1159 4863
1768L 1159 2956
1769Q 1366 3272 1645 3428
1770Q 1925 3584 2291 3584
1771Q 2894 3584 3203 3211
1772Q 3513 2838 3513 2113
1773z
1774" transform="scale(0.015625)"/>
1775 <path id="DejaVuSans-3a" d="M 750 794
1776L 1409 794
1777L 1409 0
1778L 750 0
1779L 750 794
1780z
1781M 750 3309
1782L 1409 3309
1783L 1409 2516
1784L 750 2516
1785L 750 3309
1786z
1787" transform="scale(0.015625)"/>
1788 <path id="DejaVuSans-65" d="M 3597 1894
1789L 3597 1613
1790L 953 1613
1791Q 991 1019 1311 708
1792Q 1631 397 2203 397
1793Q 2534 397 2845 478
1794Q 3156 559 3463 722
1795L 3463 178
1796Q 3153 47 2828 -22
1797Q 2503 -91 2169 -91
1798Q 1331 -91 842 396
1799Q 353 884 353 1716
1800Q 353 2575 817 3079
1801Q 1281 3584 2069 3584
1802Q 2775 3584 3186 3129
1803Q 3597 2675 3597 1894
1804z
1805M 3022 2063
1806Q 3016 2534 2758 2815
1807Q 2500 3097 2075 3097
1808Q 1594 3097 1305 2825
1809Q 1016 2553 972 2059
1810L 3022 2063
1811z
1812" transform="scale(0.015625)"/>
1813 <path id="DejaVuSans-35" d="M 691 4666
1814L 3169 4666
1815L 3169 4134
1816L 1269 4134
1817L 1269 2991
1818Q 1406 3038 1543 3061
1819Q 1681 3084 1819 3084
1820Q 2600 3084 3056 2656
1821Q 3513 2228 3513 1497
1822Q 3513 744 3044 326
1823Q 2575 -91 1722 -91
1824Q 1428 -91 1123 -41
1825Q 819 9 494 109
1826L 494 744
1827Q 775 591 1075 516
1828Q 1375 441 1709 441
1829Q 2250 441 2565 725
1830Q 2881 1009 2881 1497
1831Q 2881 1984 2565 2268
1832Q 2250 2553 1709 2553
1833Q 1456 2553 1204 2497
1834Q 953 2441 691 2322
1835L 691 4666
1836z
1837" transform="scale(0.015625)"/>
1838 <path id="DejaVuSans-b7" d="M 684 2619
1839L 1344 2619
1840L 1344 1825
1841L 684 1825
1842L 684 2619
1843z
1844" transform="scale(0.015625)"/>
1845 <path id="DejaVuSans-56" d="M 1831 0
1846L 50 4666
1847L 709 4666
1848L 2188 738
1849L 3669 4666
1850L 4325 4666
1851L 2547 0
1852L 1831 0
1853z
1854" transform="scale(0.015625)"/>
1855 <path id="DejaVuSans-6d" d="M 3328 2828
1856Q 3544 3216 3844 3400
1857Q 4144 3584 4550 3584
1858Q 5097 3584 5394 3201
1859Q 5691 2819 5691 2113
1860L 5691 0
1861L 5113 0
1862L 5113 2094
1863Q 5113 2597 4934 2840
1864Q 4756 3084 4391 3084
1865Q 3944 3084 3684 2787
1866Q 3425 2491 3425 1978
1867L 3425 0
1868L 2847 0
1869L 2847 2094
1870Q 2847 2600 2669 2842
1871Q 2491 3084 2119 3084
1872Q 1678 3084 1418 2786
1873Q 1159 2488 1159 1978
1874L 1159 0
1875L 581 0
1876L 581 3500
1877L 1159 3500
1878L 1159 2956
1879Q 1356 3278 1631 3431
1880Q 1906 3584 2284 3584
1881Q 2666 3584 2933 3390
1882Q 3200 3197 3328 2828
1883z
1884" transform="scale(0.015625)"/>
1885 <path id="DejaVuSans-70" d="M 1159 525
1886L 1159 -1331
1887L 581 -1331
1888L 581 3500
1889L 1159 3500
1890L 1159 2969
1891Q 1341 3281 1617 3432
1892Q 1894 3584 2278 3584
1893Q 2916 3584 3314 3078
1894Q 3713 2572 3713 1747
1895Q 3713 922 3314 415
1896Q 2916 -91 2278 -91
1897Q 1894 -91 1617 61
1898Q 1341 213 1159 525
1899z
1900M 3116 1747
1901Q 3116 2381 2855 2742
1902Q 2594 3103 2138 3103
1903Q 1681 3103 1420 2742
1904Q 1159 2381 1159 1747
1905Q 1159 1113 1420 752
1906Q 1681 391 2138 391
1907Q 2594 391 2855 752
1908Q 3116 1113 3116 1747
1909z
1910" transform="scale(0.015625)"/>
1911 <path id="DejaVuSans-2248" d="M 4684 1947
1912L 4684 1388
1913Q 4356 1144 4076 1036
1914Q 3797 928 3494 928
1915Q 3150 928 2694 1113
1916Q 2663 1125 2641 1134
1917Q 2622 1141 2575 1159
1918Q 2091 1350 1797 1350
1919Q 1522 1350 1253 1231
1920Q 984 1113 678 850
1921L 678 1409
1922Q 1006 1653 1286 1761
1923Q 1566 1869 1869 1869
1924Q 2213 1869 2672 1684
1925Q 2706 1669 2722 1663
1926Q 2741 1656 2788 1638
1927Q 3272 1447 3566 1447
1928Q 3834 1447 4098 1564
1929Q 4363 1681 4684 1947
1930z
1931M 4684 3163
1932L 4684 2606
1933Q 4356 2359 4076 2251
1934Q 3797 2144 3494 2144
1935Q 3150 2144 2694 2328
1936Q 2663 2341 2641 2350
1937Q 2622 2356 2575 2375
1938Q 2091 2566 1797 2566
1939Q 1522 2566 1253 2447
1940Q 984 2328 678 2069
1941L 678 2625
1942Q 1006 2869 1286 2976
1943Q 1566 3084 1869 3084
1944Q 2213 3084 2672 2900
1945Q 2703 2888 2719 2881
1946Q 2741 2872 2788 2853
1947Q 3272 2663 3566 2663
1948Q 3834 2663 4098 2780
1949Q 4363 2897 4684 3163
1950z
1951" transform="scale(0.015625)"/>
1952 <path id="DejaVuSans-33" d="M 2597 2516
1953Q 3050 2419 3304 2112
1954Q 3559 1806 3559 1356
1955Q 3559 666 3084 287
1956Q 2609 -91 1734 -91
1957Q 1441 -91 1130 -33
1958Q 819 25 488 141
1959L 488 750
1960Q 750 597 1062 519
1961Q 1375 441 1716 441
1962Q 2309 441 2620 675
1963Q 2931 909 2931 1356
1964Q 2931 1769 2642 2001
1965Q 2353 2234 1838 2234
1966L 1294 2234
1967L 1294 2753
1968L 1863 2753
1969Q 2328 2753 2575 2939
1970Q 2822 3125 2822 3475
1971Q 2822 3834 2567 4026
1972Q 2313 4219 1838 4219
1973Q 1578 4219 1281 4162
1974Q 984 4106 628 3988
1975L 628 4550
1976Q 988 4650 1302 4700
1977Q 1616 4750 1894 4750
1978Q 2613 4750 3031 4423
1979Q 3450 4097 3450 3541
1980Q 3450 3153 3228 2886
1981Q 3006 2619 2597 2516
1982z
1983" transform="scale(0.015625)"/>
1984 <path id="DejaVuSans-30" d="M 2034 4250
1985Q 1547 4250 1301 3770
1986Q 1056 3291 1056 2328
1987Q 1056 1369 1301 889
1988Q 1547 409 2034 409
1989Q 2525 409 2770 889
1990Q 3016 1369 3016 2328
1991Q 3016 3291 2770 3770
1992Q 2525 4250 2034 4250
1993z
1994M 2034 4750
1995Q 2819 4750 3233 4129
1996Q 3647 3509 3647 2328
1997Q 3647 1150 3233 529
1998Q 2819 -91 2034 -91
1999Q 1250 -91 836 529
2000Q 422 1150 422 2328
2001Q 422 3509 836 4129
2002Q 1250 4750 2034 4750
2003z
2004" transform="scale(0.015625)"/>
2005 <path id="DejaVuSans-6c" d="M 603 4863
2006L 1178 4863
2007L 1178 0
2008L 603 0
2009L 603 4863
2010z
2011" transform="scale(0.015625)"/>
2012 <path id="DejaVuSans-64" d="M 2906 2969
2013L 2906 4863
2014L 3481 4863
2015L 3481 0
2016L 2906 0
2017L 2906 525
2018Q 2725 213 2448 61
2019Q 2172 -91 1784 -91
2020Q 1150 -91 751 415
2021Q 353 922 353 1747
2022Q 353 2572 751 3078
2023Q 1150 3584 1784 3584
2024Q 2172 3584 2448 3432
2025Q 2725 3281 2906 2969
2026z
2027M 947 1747
2028Q 947 1113 1208 752
2029Q 1469 391 1925 391
2030Q 2381 391 2643 752
2031Q 2906 1113 2906 1747
2032Q 2906 2381 2643 2742
2033Q 2381 3103 1925 3103
2034Q 1469 3103 1208 2742
2035Q 947 2381 947 1747
2036z
2037" transform="scale(0.015625)"/>
2038 <path id="DejaVuSans-2e" d="M 684 794
2039L 1344 794
2040L 1344 0
2041L 684 0
2042L 684 794
2043z
2044" transform="scale(0.015625)"/>
2045 <path id="DejaVuSans-2264" d="M 4684 3175
2046L 1684 2309
2047L 4684 1453
2048L 4684 897
2049L 678 2047
2050L 678 2578
2051L 4684 3725
2052L 4684 3175
2053z
2054M 678 531
2055L 4684 531
2056L 4684 0
2057L 678 0
2058L 678 531
2059z
2060" transform="scale(0.015625)"/>
2061 <path id="DejaVuSans-62" d="M 3116 1747
2062Q 3116 2381 2855 2742
2063Q 2594 3103 2138 3103
2064Q 1681 3103 1420 2742
2065Q 1159 2381 1159 1747
2066Q 1159 1113 1420 752
2067Q 1681 391 2138 391
2068Q 2594 391 2855 752
2069Q 3116 1113 3116 1747
2070z
2071M 1159 2969
2072Q 1341 3281 1617 3432
2073Q 1894 3584 2278 3584
2074Q 2916 3584 3314 3078
2075Q 3713 2572 3713 1747
2076Q 3713 922 3314 415
2077Q 2916 -91 2278 -91
2078Q 1894 -91 1617 61
2079Q 1341 213 1159 525
2080L 1159 0
2081L 581 0
2082L 581 4863
2083L 1159 4863
2084L 1159 2969
2085z
2086" transform="scale(0.015625)"/>
2087 </defs>
2088 <use xlink:href="#DejaVuSans-45"/>
2089 <use xlink:href="#DejaVuSans-61" transform="translate(63.183594 0)"/>
2090 <use xlink:href="#DejaVuSans-63" transform="translate(124.462891 0)"/>
2091 <use xlink:href="#DejaVuSans-68" transform="translate(179.443359 0)"/>
2092 <use xlink:href="#DejaVuSans-20" transform="translate(242.822266 0)"/>
2093 <use xlink:href="#DejaVuSans-73" transform="translate(274.609375 0)"/>
2094 <use xlink:href="#DejaVuSans-74" transform="translate(326.708984 0)"/>
2095 <use xlink:href="#DejaVuSans-72" transform="translate(365.917969 0)"/>
2096 <use xlink:href="#DejaVuSans-69" transform="translate(407.03125 0)"/>
2097 <use xlink:href="#DejaVuSans-6e" transform="translate(434.814453 0)"/>
2098 <use xlink:href="#DejaVuSans-67" transform="translate(498.193359 0)"/>
2099 <use xlink:href="#DejaVuSans-3a" transform="translate(561.669922 0)"/>
2100 <use xlink:href="#DejaVuSans-20" transform="translate(595.361328 0)"/>
2101 <use xlink:href="#DejaVuSans-37" transform="translate(627.148438 0)"/>
2102 <use xlink:href="#DejaVuSans-d7" transform="translate(690.771484 0)"/>
2103 <use xlink:href="#DejaVuSans-57" transform="translate(774.560547 0)"/>
2104 <use xlink:href="#DejaVuSans-61" transform="translate(867.0625 0)"/>
2105 <use xlink:href="#DejaVuSans-61" transform="translate(928.341797 0)"/>
2106 <use xlink:href="#DejaVuSans-72" transform="translate(989.621094 0)"/>
2107 <use xlink:href="#DejaVuSans-65" transform="translate(1028.484375 0)"/>
2108 <use xlink:href="#DejaVuSans-65" transform="translate(1090.007812 0)"/>
2109 <use xlink:href="#DejaVuSans-20" transform="translate(1151.53125 0)"/>
2110 <use xlink:href="#DejaVuSans-35" transform="translate(1183.318359 0)"/>
2111 <use xlink:href="#DejaVuSans-37" transform="translate(1246.941406 0)"/>
2112 <use xlink:href="#DejaVuSans-35" transform="translate(1310.564453 0)"/>
2113 <use xlink:href="#DejaVuSans-57" transform="translate(1374.1875 0)"/>
2114 <use xlink:href="#DejaVuSans-20" transform="translate(1473.064453 0)"/>
2115 <use xlink:href="#DejaVuSans-73" transform="translate(1504.851562 0)"/>
2116 <use xlink:href="#DejaVuSans-65" transform="translate(1556.951172 0)"/>
2117 <use xlink:href="#DejaVuSans-72" transform="translate(1618.474609 0)"/>
2118 <use xlink:href="#DejaVuSans-69" transform="translate(1659.587891 0)"/>
2119 <use xlink:href="#DejaVuSans-65" transform="translate(1687.371094 0)"/>
2120 <use xlink:href="#DejaVuSans-73" transform="translate(1748.894531 0)"/>
2121 <use xlink:href="#DejaVuSans-20" transform="translate(1800.994141 0)"/>
2122 <use xlink:href="#DejaVuSans-b7" transform="translate(1832.78125 0)"/>
2123 <use xlink:href="#DejaVuSans-20" transform="translate(1864.568359 0)"/>
2124 <use xlink:href="#DejaVuSans-56" transform="translate(1896.355469 0)"/>
2125 <use xlink:href="#DejaVuSans-6d" transform="translate(1964.763672 0)"/>
2126 <use xlink:href="#DejaVuSans-70" transform="translate(2062.175781 0)"/>
2127 <use xlink:href="#DejaVuSans-2248" transform="translate(2125.652344 0)"/>
2128 <use xlink:href="#DejaVuSans-33" transform="translate(2209.441406 0)"/>
2129 <use xlink:href="#DejaVuSans-30" transform="translate(2273.064453 0)"/>
2130 <use xlink:href="#DejaVuSans-37" transform="translate(2336.6875 0)"/>
2131 <use xlink:href="#DejaVuSans-56" transform="translate(2400.310547 0)"/>
2132 <use xlink:href="#DejaVuSans-20" transform="translate(2468.71875 0)"/>
2133 <use xlink:href="#DejaVuSans-b7" transform="translate(2500.505859 0)"/>
2134 <use xlink:href="#DejaVuSans-20" transform="translate(2532.292969 0)"/>
2135 <use xlink:href="#DejaVuSans-63" transform="translate(2564.080078 0)"/>
2136 <use xlink:href="#DejaVuSans-6f" transform="translate(2619.060547 0)"/>
2137 <use xlink:href="#DejaVuSans-6c" transform="translate(2680.242188 0)"/>
2138 <use xlink:href="#DejaVuSans-64" transform="translate(2708.025391 0)"/>
2139 <use xlink:href="#DejaVuSans-20" transform="translate(2771.501953 0)"/>
2140 <use xlink:href="#DejaVuSans-56" transform="translate(2803.289062 0)"/>
2141 <use xlink:href="#DejaVuSans-6f" transform="translate(2863.947266 0)"/>
2142 <use xlink:href="#DejaVuSans-63" transform="translate(2925.128906 0)"/>
2143 <use xlink:href="#DejaVuSans-20" transform="translate(2980.109375 0)"/>
2144 <use xlink:href="#DejaVuSans-34" transform="translate(3011.896484 0)"/>
2145 <use xlink:href="#DejaVuSans-33" transform="translate(3075.519531 0)"/>
2146 <use xlink:href="#DejaVuSans-30" transform="translate(3139.142578 0)"/>
2147 <use xlink:href="#DejaVuSans-2e" transform="translate(3202.765625 0)"/>
2148 <use xlink:href="#DejaVuSans-31" transform="translate(3234.552734 0)"/>
2149 <use xlink:href="#DejaVuSans-56" transform="translate(3298.175781 0)"/>
2150 <use xlink:href="#DejaVuSans-20" transform="translate(3366.583984 0)"/>
2151 <use xlink:href="#DejaVuSans-28" transform="translate(3398.371094 0)"/>
2152 <use xlink:href="#DejaVuSans-2264" transform="translate(3437.384766 0)"/>
2153 <use xlink:href="#DejaVuSans-34" transform="translate(3521.173828 0)"/>
2154 <use xlink:href="#DejaVuSans-38" transform="translate(3584.796875 0)"/>
2155 <use xlink:href="#DejaVuSans-30" transform="translate(3648.419922 0)"/>
2156 <use xlink:href="#DejaVuSans-56" transform="translate(3712.042969 0)"/>
2157 <use xlink:href="#DejaVuSans-20" transform="translate(3780.451172 0)"/>
2158 <use xlink:href="#DejaVuSans-64" transform="translate(3812.238281 0)"/>
2159 <use xlink:href="#DejaVuSans-65" transform="translate(3875.714844 0)"/>
2160 <use xlink:href="#DejaVuSans-73" transform="translate(3937.238281 0)"/>
2161 <use xlink:href="#DejaVuSans-69" transform="translate(3989.337891 0)"/>
2162 <use xlink:href="#DejaVuSans-67" transform="translate(4017.121094 0)"/>
2163 <use xlink:href="#DejaVuSans-6e" transform="translate(4080.597656 0)"/>
2164 <use xlink:href="#DejaVuSans-20" transform="translate(4143.976562 0)"/>
2165 <use xlink:href="#DejaVuSans-2f" transform="translate(4175.763672 0)"/>
2166 <use xlink:href="#DejaVuSans-20" transform="translate(4209.455078 0)"/>
2167 <use xlink:href="#DejaVuSans-35" transform="translate(4241.242188 0)"/>
2168 <use xlink:href="#DejaVuSans-30" transform="translate(4304.865234 0)"/>
2169 <use xlink:href="#DejaVuSans-30" transform="translate(4368.488281 0)"/>
2170 <use xlink:href="#DejaVuSans-56" transform="translate(4432.111328 0)"/>
2171 <use xlink:href="#DejaVuSans-20" transform="translate(4500.519531 0)"/>
2172 <use xlink:href="#DejaVuSans-61" transform="translate(4532.306641 0)"/>
2173 <use xlink:href="#DejaVuSans-62" transform="translate(4593.585938 0)"/>
2174 <use xlink:href="#DejaVuSans-73" transform="translate(4657.0625 0)"/>
2175 <use xlink:href="#DejaVuSans-29" transform="translate(4709.162109 0)"/>
2176 </g>
2177 <!-- NO source-circuit fuse — one string per MPPT (690.9(A) Exc.) · MAX 7 modules/string (8S = 491V, unsafe) -->
2178 <g transform="translate(21.939248 272.514221) scale(0.08 -0.08)">
2179 <defs>
2180 <path id="DejaVuSans-4f" d="M 2522 4238
2181Q 1834 4238 1429 3725
2182Q 1025 3213 1025 2328
2183Q 1025 1447 1429 934
2184Q 1834 422 2522 422
2185Q 3209 422 3611 934
2186Q 4013 1447 4013 2328
2187Q 4013 3213 3611 3725
2188Q 3209 4238 2522 4238
2189z
2190M 2522 4750
2191Q 3503 4750 4090 4092
2192Q 4678 3434 4678 2328
2193Q 4678 1225 4090 567
2194Q 3503 -91 2522 -91
2195Q 1538 -91 948 565
2196Q 359 1222 359 2328
2197Q 359 3434 948 4092
2198Q 1538 4750 2522 4750
2199z
2200" transform="scale(0.015625)"/>
2201 <path id="DejaVuSans-75" d="M 544 1381
2202L 544 3500
2203L 1119 3500
2204L 1119 1403
2205Q 1119 906 1312 657
2206Q 1506 409 1894 409
2207Q 2359 409 2629 706
2208Q 2900 1003 2900 1516
2209L 2900 3500
2210L 3475 3500
2211L 3475 0
2212L 2900 0
2213L 2900 538
2214Q 2691 219 2414 64
2215Q 2138 -91 1772 -91
2216Q 1169 -91 856 284
2217Q 544 659 544 1381
2218z
2219M 1991 3584
2220L 1991 3584
2221z
2222" transform="scale(0.015625)"/>
2223 <path id="DejaVuSans-2d" d="M 313 2009
2224L 1997 2009
2225L 1997 1497
2226L 313 1497
2227L 313 2009
2228z
2229" transform="scale(0.015625)"/>
2230 <path id="DejaVuSans-66" d="M 2375 4863
2231L 2375 4384
2232L 1825 4384
2233Q 1516 4384 1395 4259
2234Q 1275 4134 1275 3809
2235L 1275 3500
2236L 2222 3500
2237L 2222 3053
2238L 1275 3053
2239L 1275 0
2240L 697 0
2241L 697 3053
2242L 147 3053
2243L 147 3500
2244L 697 3500
2245L 697 3744
2246Q 697 4328 969 4595
2247Q 1241 4863 1831 4863
2248L 2375 4863
2249z
2250" transform="scale(0.015625)"/>
2251 <path id="DejaVuSans-36" d="M 2113 2584
2252Q 1688 2584 1439 2293
2253Q 1191 2003 1191 1497
2254Q 1191 994 1439 701
2255Q 1688 409 2113 409
2256Q 2538 409 2786 701
2257Q 3034 994 3034 1497
2258Q 3034 2003 2786 2293
2259Q 2538 2584 2113 2584
2260z
2261M 3366 4563
2262L 3366 3988
2263Q 3128 4100 2886 4159
2264Q 2644 4219 2406 4219
2265Q 1781 4219 1451 3797
2266Q 1122 3375 1075 2522
2267Q 1259 2794 1537 2939
2268Q 1816 3084 2150 3084
2269Q 2853 3084 3261 2657
2270Q 3669 2231 3669 1497
2271Q 3669 778 3244 343
2272Q 2819 -91 2113 -91
2273Q 1303 -91 875 529
2274Q 447 1150 447 2328
2275Q 447 3434 972 4092
2276Q 1497 4750 2381 4750
2277Q 2619 4750 2861 4703
2278Q 3103 4656 3366 4563
2279z
2280" transform="scale(0.015625)"/>
2281 <path id="DejaVuSans-39" d="M 703 97
2282L 703 672
2283Q 941 559 1184 500
2284Q 1428 441 1663 441
2285Q 2288 441 2617 861
2286Q 2947 1281 2994 2138
2287Q 2813 1869 2534 1725
2288Q 2256 1581 1919 1581
2289Q 1219 1581 811 2004
2290Q 403 2428 403 3163
2291Q 403 3881 828 4315
2292Q 1253 4750 1959 4750
2293Q 2769 4750 3195 4129
2294Q 3622 3509 3622 2328
2295Q 3622 1225 3098 567
2296Q 2575 -91 1691 -91
2297Q 1453 -91 1209 -44
2298Q 966 3 703 97
2299z
2300M 1959 2075
2301Q 2384 2075 2632 2365
2302Q 2881 2656 2881 3163
2303Q 2881 3666 2632 3958
2304Q 2384 4250 1959 4250
2305Q 1534 4250 1286 3958
2306Q 1038 3666 1038 3163
2307Q 1038 2656 1286 2365
2308Q 1534 2075 1959 2075
2309z
2310" transform="scale(0.015625)"/>
2311 <path id="DejaVuSans-78" d="M 3513 3500
2312L 2247 1797
2313L 3578 0
2314L 2900 0
2315L 1881 1375
2316L 863 0
2317L 184 0
2318L 1544 1831
2319L 300 3500
2320L 978 3500
2321L 1906 2253
2322L 2834 3500
2323L 3513 3500
2324z
2325" transform="scale(0.015625)"/>
2326 <path id="DejaVuSans-58" d="M 403 4666
2327L 1081 4666
2328L 2241 2931
2329L 3406 4666
2330L 4084 4666
2331L 2584 2425
2332L 4184 0
2333L 3506 0
2334L 2194 1984
2335L 872 0
2336L 191 0
2337L 1856 2491
2338L 403 4666
2339z
2340" transform="scale(0.015625)"/>
2341 <path id="DejaVuSans-3d" d="M 678 2906
2342L 4684 2906
2343L 4684 2381
2344L 678 2381
2345L 678 2906
2346z
2347M 678 1631
2348L 4684 1631
2349L 4684 1100
2350L 678 1100
2351L 678 1631
2352z
2353" transform="scale(0.015625)"/>
2354 <path id="DejaVuSans-2c" d="M 750 794
2355L 1409 794
2356L 1409 256
2357L 897 -744
2358L 494 -744
2359L 750 256
2360L 750 794
2361z
2362" transform="scale(0.015625)"/>
2363 </defs>
2364 <use xlink:href="#DejaVuSans-4e"/>
2365 <use xlink:href="#DejaVuSans-4f" transform="translate(74.804688 0)"/>
2366 <use xlink:href="#DejaVuSans-20" transform="translate(153.515625 0)"/>
2367 <use xlink:href="#DejaVuSans-73" transform="translate(185.302734 0)"/>
2368 <use xlink:href="#DejaVuSans-6f" transform="translate(237.402344 0)"/>
2369 <use xlink:href="#DejaVuSans-75" transform="translate(298.583984 0)"/>
2370 <use xlink:href="#DejaVuSans-72" transform="translate(361.962891 0)"/>
2371 <use xlink:href="#DejaVuSans-63" transform="translate(400.826172 0)"/>
2372 <use xlink:href="#DejaVuSans-65" transform="translate(455.806641 0)"/>
2373 <use xlink:href="#DejaVuSans-2d" transform="translate(517.330078 0)"/>
2374 <use xlink:href="#DejaVuSans-63" transform="translate(553.414062 0)"/>
2375 <use xlink:href="#DejaVuSans-69" transform="translate(608.394531 0)"/>
2376 <use xlink:href="#DejaVuSans-72" transform="translate(636.177734 0)"/>
2377 <use xlink:href="#DejaVuSans-63" transform="translate(675.041016 0)"/>
2378 <use xlink:href="#DejaVuSans-75" transform="translate(730.021484 0)"/>
2379 <use xlink:href="#DejaVuSans-69" transform="translate(793.400391 0)"/>
2380 <use xlink:href="#DejaVuSans-74" transform="translate(821.183594 0)"/>
2381 <use xlink:href="#DejaVuSans-20" transform="translate(860.392578 0)"/>
2382 <use xlink:href="#DejaVuSans-66" transform="translate(892.179688 0)"/>
2383 <use xlink:href="#DejaVuSans-75" transform="translate(927.384766 0)"/>
2384 <use xlink:href="#DejaVuSans-73" transform="translate(990.763672 0)"/>
2385 <use xlink:href="#DejaVuSans-65" transform="translate(1042.863281 0)"/>
2386 <use xlink:href="#DejaVuSans-20" transform="translate(1104.386719 0)"/>
2387 <use xlink:href="#DejaVuSans-2014" transform="translate(1136.173828 0)"/>
2388 <use xlink:href="#DejaVuSans-20" transform="translate(1236.173828 0)"/>
2389 <use xlink:href="#DejaVuSans-6f" transform="translate(1267.960938 0)"/>
2390 <use xlink:href="#DejaVuSans-6e" transform="translate(1329.142578 0)"/>
2391 <use xlink:href="#DejaVuSans-65" transform="translate(1392.521484 0)"/>
2392 <use xlink:href="#DejaVuSans-20" transform="translate(1454.044922 0)"/>
2393 <use xlink:href="#DejaVuSans-73" transform="translate(1485.832031 0)"/>
2394 <use xlink:href="#DejaVuSans-74" transform="translate(1537.931641 0)"/>
2395 <use xlink:href="#DejaVuSans-72" transform="translate(1577.140625 0)"/>
2396 <use xlink:href="#DejaVuSans-69" transform="translate(1618.253906 0)"/>
2397 <use xlink:href="#DejaVuSans-6e" transform="translate(1646.037109 0)"/>
2398 <use xlink:href="#DejaVuSans-67" transform="translate(1709.416016 0)"/>
2399 <use xlink:href="#DejaVuSans-20" transform="translate(1772.892578 0)"/>
2400 <use xlink:href="#DejaVuSans-70" transform="translate(1804.679688 0)"/>
2401 <use xlink:href="#DejaVuSans-65" transform="translate(1868.15625 0)"/>
2402 <use xlink:href="#DejaVuSans-72" transform="translate(1929.679688 0)"/>
2403 <use xlink:href="#DejaVuSans-20" transform="translate(1970.792969 0)"/>
2404 <use xlink:href="#DejaVuSans-4d" transform="translate(2002.580078 0)"/>
2405 <use xlink:href="#DejaVuSans-50" transform="translate(2088.859375 0)"/>
2406 <use xlink:href="#DejaVuSans-50" transform="translate(2149.162109 0)"/>
2407 <use xlink:href="#DejaVuSans-54" transform="translate(2209.464844 0)"/>
2408 <use xlink:href="#DejaVuSans-20" transform="translate(2270.548828 0)"/>
2409 <use xlink:href="#DejaVuSans-28" transform="translate(2302.335938 0)"/>
2410 <use xlink:href="#DejaVuSans-36" transform="translate(2341.349609 0)"/>
2411 <use xlink:href="#DejaVuSans-39" transform="translate(2404.972656 0)"/>
2412 <use xlink:href="#DejaVuSans-30" transform="translate(2468.595703 0)"/>
2413 <use xlink:href="#DejaVuSans-2e" transform="translate(2532.21875 0)"/>
2414 <use xlink:href="#DejaVuSans-39" transform="translate(2564.005859 0)"/>
2415 <use xlink:href="#DejaVuSans-28" transform="translate(2627.628906 0)"/>
2416 <use xlink:href="#DejaVuSans-41" transform="translate(2666.642578 0)"/>
2417 <use xlink:href="#DejaVuSans-29" transform="translate(2735.050781 0)"/>
2418 <use xlink:href="#DejaVuSans-20" transform="translate(2774.064453 0)"/>
2419 <use xlink:href="#DejaVuSans-45" transform="translate(2805.851562 0)"/>
2420 <use xlink:href="#DejaVuSans-78" transform="translate(2869.035156 0)"/>
2421 <use xlink:href="#DejaVuSans-63" transform="translate(2926.464844 0)"/>
2422 <use xlink:href="#DejaVuSans-2e" transform="translate(2981.445312 0)"/>
2423 <use xlink:href="#DejaVuSans-29" transform="translate(3013.232422 0)"/>
2424 <use xlink:href="#DejaVuSans-20" transform="translate(3052.246094 0)"/>
2425 <use xlink:href="#DejaVuSans-b7" transform="translate(3084.033203 0)"/>
2426 <use xlink:href="#DejaVuSans-20" transform="translate(3115.820312 0)"/>
2427 <use xlink:href="#DejaVuSans-20" transform="translate(3147.607422 0)"/>
2428 <use xlink:href="#DejaVuSans-4d" transform="translate(3179.394531 0)"/>
2429 <use xlink:href="#DejaVuSans-41" transform="translate(3265.673828 0)"/>
2430 <use xlink:href="#DejaVuSans-58" transform="translate(3334.082031 0)"/>
2431 <use xlink:href="#DejaVuSans-20" transform="translate(3402.587891 0)"/>
2432 <use xlink:href="#DejaVuSans-37" transform="translate(3434.375 0)"/>
2433 <use xlink:href="#DejaVuSans-20" transform="translate(3497.998047 0)"/>
2434 <use xlink:href="#DejaVuSans-6d" transform="translate(3529.785156 0)"/>
2435 <use xlink:href="#DejaVuSans-6f" transform="translate(3627.197266 0)"/>
2436 <use xlink:href="#DejaVuSans-64" transform="translate(3688.378906 0)"/>
2437 <use xlink:href="#DejaVuSans-75" transform="translate(3751.855469 0)"/>
2438 <use xlink:href="#DejaVuSans-6c" transform="translate(3815.234375 0)"/>
2439 <use xlink:href="#DejaVuSans-65" transform="translate(3843.017578 0)"/>
2440 <use xlink:href="#DejaVuSans-73" transform="translate(3904.541016 0)"/>
2441 <use xlink:href="#DejaVuSans-2f" transform="translate(3956.640625 0)"/>
2442 <use xlink:href="#DejaVuSans-73" transform="translate(3990.332031 0)"/>
2443 <use xlink:href="#DejaVuSans-74" transform="translate(4042.431641 0)"/>
2444 <use xlink:href="#DejaVuSans-72" transform="translate(4081.640625 0)"/>
2445 <use xlink:href="#DejaVuSans-69" transform="translate(4122.753906 0)"/>
2446 <use xlink:href="#DejaVuSans-6e" transform="translate(4150.537109 0)"/>
2447 <use xlink:href="#DejaVuSans-67" transform="translate(4213.916016 0)"/>
2448 <use xlink:href="#DejaVuSans-20" transform="translate(4277.392578 0)"/>
2449 <use xlink:href="#DejaVuSans-20" transform="translate(4309.179688 0)"/>
2450 <use xlink:href="#DejaVuSans-28" transform="translate(4340.966797 0)"/>
2451 <use xlink:href="#DejaVuSans-38" transform="translate(4379.980469 0)"/>
2452 <use xlink:href="#DejaVuSans-53" transform="translate(4443.603516 0)"/>
2453 <use xlink:href="#DejaVuSans-20" transform="translate(4507.080078 0)"/>
2454 <use xlink:href="#DejaVuSans-3d" transform="translate(4538.867188 0)"/>
2455 <use xlink:href="#DejaVuSans-20" transform="translate(4622.65625 0)"/>
2456 <use xlink:href="#DejaVuSans-34" transform="translate(4654.443359 0)"/>
2457 <use xlink:href="#DejaVuSans-39" transform="translate(4718.066406 0)"/>
2458 <use xlink:href="#DejaVuSans-31" transform="translate(4781.689453 0)"/>
2459 <use xlink:href="#DejaVuSans-56" transform="translate(4845.3125 0)"/>
2460 <use xlink:href="#DejaVuSans-2c" transform="translate(4913.720703 0)"/>
2461 <use xlink:href="#DejaVuSans-20" transform="translate(4945.507812 0)"/>
2462 <use xlink:href="#DejaVuSans-75" transform="translate(4977.294922 0)"/>
2463 <use xlink:href="#DejaVuSans-6e" transform="translate(5040.673828 0)"/>
2464 <use xlink:href="#DejaVuSans-73" transform="translate(5104.052734 0)"/>
2465 <use xlink:href="#DejaVuSans-61" transform="translate(5156.152344 0)"/>
2466 <use xlink:href="#DejaVuSans-66" transform="translate(5217.431641 0)"/>
2467 <use xlink:href="#DejaVuSans-65" transform="translate(5252.636719 0)"/>
2468 <use xlink:href="#DejaVuSans-29" transform="translate(5314.160156 0)"/>
2469 </g>
2470 </g>
2471 </g>
2472 </g>
2473 <defs>
2474 <clipPath id="p1441f39334">
2475 <rect x="0" y="0" width="438.48" height="279.099096"/>
2476 </clipPath>
2477 </defs>
2478</svg>
artifacts/electrical-design.md +132 -0
……@@ -0,0 +1,132 @@
1# PRSM Off-Grid Solar — Validated Electrical Design
2
3**Scope:** DC array string config, wiring/OCPD, inverter MPPT loading, battery wiring,
4grounding/labeling at SLD level. Structure/mounting out of scope.
5**System:** 14× Waaree 575W → 1× EG4 6000XP → 1× Docan S3 16 kWh · off-grid · NE Vermont (NEK) · **NEC 2023**.
6**Date:** 2026-06-02 · **Code discipline:** every load-bearing number below was computed by a script in `scripts/` and is cited by filename. Nothing is estimated.
7
8> Reproduce: `~/.venvs/prsm-electrical/bin/python scripts/0N_*.py`. Computed outputs are in `artifacts/results/*.json`. The venv lives outside this Google-Drive folder (so Drive doesn't sync ~thousands of package files); rebuild with `python3.13 -m venv ~/.venvs/prsm-electrical && pip install -r requirements.txt` (then `vocmax` via `--no-deps`).
9
10---
11
12## 0. Confirmed datasheet inputs (the basis for everything)
13
14| Component | Key electricals (source) |
15|---|---|
16| **Waaree Elite BiN‑08‑575** (144‑HC N‑TOPCon bifacial, Grade B "BIN‑08‑575B") | Voc **52.30 V**, Vmp **43.86 V**, Isc **13.87 A**, Imp **13.11 A**, β(Voc) **−0.26 %/°C**, γ(Pmax) −0.30 %/°C, α(Isc) +0.046 %/°C, max system **1500 V**, 30 A series fuse. *Waaree USA datasheet; cross‑checked Missouri W&S / A1SolarStore.* |
17| **EG4 6000XP** | PV: 2 MPPT, **500 V abs max** / **480 V design ceiling** / **120–385 V MPPT track**, **17 A/MPPT** input, 25 A Isc/MPPT, **8000 W** (4000/MPPT; 10 kW oversize cap). Batt 46.4–60 V, **125 A charge / 140 A discharge**, eff 93%. AC **6000 W / 12 kW surge**, 120/240 split, 25 A/leg, 50 A pass‑through. Integrated DC disconnect, **RSD initiator, PV AFCI, GFDI**. *EG4 Manual + Spec Sheet v1.4.4.* |
18| **Docan S3** | 51.2 V, 58.4 V charge, **314 Ah / 16.08 kWh**, 16S1P EVE MB31. JK‑PB2A16S20P BMS: **150 A discharge OCP (300 s)**, 200 A marketed, 300 A short‑circuit (20 µs), **cell‑honest ~157 A (0.5P)**, −20 °C low‑temp charge cutoff. *Docan listing + JK BMS datasheet + EVE MB31 cell datasheet.* |
19
20**Two datasheet findings that changed the design:**
211. The EG4 "480 vs 500" numbers are **both real**: 500 V = absolute do‑not‑exceed (warranty void), 480 V = recommended DC‑input ceiling, 385 V = MPPT *tracking* max (not a Voc limit). Cold‑Voc is sized to **≤480 V** with 500 V as the hard backstop.
222. The Waaree is the **144‑cell BiN‑08 (Voc 52.30 V)**, not the look‑alike 108‑cell BiN‑01 (Voc 39.91 V). Using the wrong SKU would corrupt the cold‑Voc check.
23
24---
25
26## 1. PV string configuration — the binding safety constraint · `scripts/01_string_sizing.py`
27
28**Result: 2 strings of 7 modules in series (7S × 1P), one string per MPPT, 14 modules, 8050 W DC.**
29
30Cold‑weather open‑circuit voltage (NEC 690.7), at the **−40 °C** regional design low (upgraded from −34 °C on adversarial review — Bloomfield VT has recorded −45.6 °C), **including a bifacial rear‑gain Voc adder**:
31
32| Quantity | Value | Check |
33|---|---|---|
34| Voc per module, −40 °C (temp only) | **61.14 V** | analytic 690.7 linear |
35| Voc per module, pvlib CEC single‑diode | **61.26 V** | independent — agrees to **0.12 V** |
36| Bifacial rear‑gain adder | +0.30 V | rear 0.20 × bifaciality 0.80 |
37| **Voc per module used (cold + bifacial)** | **61.44 V** | binding value |
38| **7S string cold Voc** | **430.1 V** | **≤ 480 V design (PASS, 49.9 V margin)** · ≤ 500 V abs (69.9 V) |
39| 8S string cold Voc | 491.5 V | **FAILS 480 V (−11.5 V); only 8.5 V under 500 V → do not build** |
40
41**MPPT operating window (120–385 V):**
42- Cold Vmp (−40 °C): **376.1 V** (analytic) / 374.6 V (pvlib) — under the 385 V tracking max by ~9 V. *Expected behavior:* on the coldest clear mornings the inverter may briefly clamp the operating point at 385 V (a few % harvest, not a fault).
43- Hot Vmp (70 °C cell): **259.2 V** — well above the 120 V floor. **PASS.**
44
45**Per‑MPPT loading:** string 4025 W vs 4000 W usable (within the 5000 W/MPPT oversize allowance — ~25 W clip only at rare full‑STC peaks); Imp 13.11 A ≤ 17 A input; Isc 13.87 A ≤ 25 A rating. Array DC:AC = 1.34 (winter‑favorable). **PASS.**
46
47**Quadruple‑validated (a cold‑Voc error is a safety issue, not a typo):**
481. Analytic NEC 690.7 linear correction — `01_string_sizing.py` → module Voc 61.14 V.
492. pvlib CEC six‑parameter single‑diode (`fit_cec_sam`, PySAM solver) → module Voc **61.26 V** (agrees to 0.12 V).
503. **vocmax** — the named NEC‑690.7 grounding tool — `01b_vocmax.py` in a pinned venv (`~/.venvs/prsm-vocmax`, py3.9 + pvlib 0.9.5) → module Voc **61.14 V** @ −40 °C, 7S = 428 V, **max 7 modules/series ≤ 480 V** (8S = 8th would exceed). *(vocmax's NSRDB statistical worst‑case needs an NREL key — open item; the offline full‑sun run reproduces the linear 690.7 form exactly.)*
514. **Independent adversarial re‑derivation** (separate agent, keyed the datasheet fresh): *"7S is CONFIRMED SAFE and is the correct maximum; 8S must not be built."* It also verified the bifacial gain and the −40 °C assumption strengthen, not weaken, the result.
52
53All four agree: module Voc ≈ **61.1–61.3 V** at −40 °C → 7S ≈ **428–430 V** (≤ 480 V), 8S = **491 V** (fails). vocmax 1.0.4 is incompatible with the main env's pvlib 0.15 (it imports the removed `get_psm3`), hence the separate pinned venv.
54
55> **Carry‑forward note for the SLD/labels:** the array max is **7 modules/string**. Surplus pallet panels are Phase‑2 inventory — do **not** extend a string to 8S (491 V).
56
57---
58
59## 2. Conductors, voltage drop & overcurrent · `scripts/03_conductors.py`
60
61NEC 690.8 design current + 310.15(B)/(C) derates + 240.4(D) + Chapter 9 Table 8 voltage drop. Tables encoded and cited in `scripts/nec_tables.py`.
62
63| Run | Cont. current | Gauge (Cu) | Driver | Ampacity basis | Vdrop | OCPD | EGC |
64|---|---|---|---|---|---|---|---|
65| **PV string** array→inv (×2, one/MPPT) | Imp 13.11 A | **8 AWG** | voltage‑drop | Isc×1.25×1.25 = 21.7 A term; 17.3 A after 0.91×0.80 derate (8 AWG = 25 A@75 °C) | **1.33 %** @200 ft (0.99/1.33/1.66 % at 150/200/250 ft) | **none req.** (690.9(A) Exc — 1 string/MPPT) | 10 AWG |
66| **Battery** ↔ inverter | 126.0 A | **2/0 AWG** | ampacity | 125%×126 = 157.5 A (2/0 = 175 A@75 °C) | **0.48 %** | **175 A Class‑T** | 6 AWG |
67| **AC output** inv→main panel | 25.0 A | **8 AWG** | 240.4(D) | 125%×25 = 31.25 A (10 AWG meets ampacity but 35 A breaker > 10 AWG's 30 A cap → 8 AWG) | **0.16 %** | **35 A 2‑pole** | 10 AWG |
68
69- **PV string is voltage‑drop‑driven, not ampacity‑driven:** 8 AWG holds ≤2 % across your entire stated 150–250 ft range (worst case 1.66 % @250 ft). The ampacity minimum is only 12 AWG; 8 AWG is chosen for the long trench run. Conductors are 90 °C THWN‑2/PV wire in Schedule‑40 PVC conduit (rodent/UV per Swarm §16); ambient modeled at a conservative 40 °C with 4 current‑carrying conductors (both strings in one conduit).
70- **Battery cable: do not use the 35 mm² (~2 AWG) cable that may ship with the pack** — 2 AWG (115 A@75 °C) is below the 157.5 A continuous requirement. Use **2/0 minimum**; **4/0 recommended** (Vdrop 0.30 %, margin + low loss).
71- **AC OCPD:** 35 A 2‑pole is the code minimum (≥125 %×25 A); 40 A is the common alternative — both require 8 AWG.
72
73---
74
75## 3. Battery discharge, C‑rate & Class‑T fuse · `scripts/04_battery.py`
76
77At full 6 kW AC, battery discharge = **126.0 A** (6000 W ÷ 0.93 ÷ 51.2 V). It clears **every** limit:
78
79| Limit | Value | Margin |
80|---|---|---|
81| Inverter max discharge (**binding**) | 140 A | **+14 A (10 %)** |
82| JK‑BMS discharge OCP (300 s) | 150 A | +24 A |
83| EVE cell‑honest 0.5P | 157 A | +31 A |
84| JK‑BMS marketed max | 200 A | +74 A |
85
86- **C‑rate:** 0.40C discharge, 0.40C charge (PV 125 A) — both ≤ 0.5C. **PASS.**
87- **Surge:** a 12 kW/3.5 s inverter surge pulls ~252 A — above the 200 A marketed and 157 A cell figures but **below the 300 A short‑circuit trip and far too brief to trip the 150 A/300 s OCP**; a 175 A Class‑T at 1.44× will not nuisance‑open. *One pack cannot sustain >6 kW continuously — Phase‑2 second pack adds surge headroom.*
88- **Runtime (sanity):** 2.68 h at full 6 kW (2.14 h at 80 % DoD); 8.6 h at a 1.5 kW average load (80 % DoD). **NEK winter still requires the generator** (Swarm §2) — see §4.
89- **Class‑T fuse: 175 A, DC‑rated, 20 kAIC.** ≥ 125 %×126 A = 157.5 A; ≤ 2/0 cable ampacity (175 A); interrupt rating covers the LFP pack's prospective fault current. **Layered protection:** BMS protects cells (150 A/300 s, 300 A SC), the fuse protects the cable + provides fault‑current interruption.
90- **Cold‑weather charging — heating CONFIRMED (owner), propane‑based.** The battery is kept warm by **propane heat on a separate budget**, bringing the cells into the ≥ 0 °C charge window so the pack **charges through NEK winter**. (The EVE MB31 cell only charges ≥ 0 °C; the −20 °C BMS cutoff alone would not protect it.) Because it's propane, it places **no parasitic electrical load** on the array/battery — a net positive for December's scarce ~15.7 kWh/day (§4). The heating itself is out of electrical scope (like structure/mounting); the only electrical‑side check is that the BMS gates charge on cell temperature (`open-issues.md` item 13).
91
92---
93
94## 4. Production sanity (off‑grid worst‑month) · `scripts/02_production.py`
95
96PVWatts v8, 8.05 kW, fixed open rack (array_type 0), tilt 50°, az 180°, 14 % losses.
97**Host note:** the canonical `developer.nrel.gov` did **not** respond; the script verified and used **`developer.nlr.gov`** — confirming the 2026‑05‑29 migration noted in the project docs (tested, not assumed).
98
99| | kWh/day | |
100|---|---|---|
101| Annual | 9,622 kWh/yr (CF 13.6 %) | |
102| **December (binding)** | **15.7** | the off‑grid worst case |
103| January | 24.3 | |
104| June | 27.7 | winter:summer = **0.57** |
105
106This quantifies the NEK winter‑starvation argument: a 16 kWh pack at 80 % DoD = ~12.9 kWh, and December produces ~15.7 kWh/day **before** multi‑day cloudy stretches. The **backup generator (Phase 1)** and **Phase‑2 PV expansion** (Swarm §2, §6) are confirmed necessary, not optional. *(Run with your own NREL key for site‑exact lat/lon; DEMO_KEY was used here.)*
107
108---
109
110## 5. Grounding, bonding & labeling (SLD level) · `scripts/05_nec_checklist.py`
111
112- **Equipment grounding conductors (250.122):** PV 10 AWG, **battery 6 AWG** (175 A OCPD), AC 10 AWG. Bond all array frames + enclosures (690.43).
113- **Array grounding electrode (690.47):** drive a ground rod at the array; **6 AWG Cu GEC**, common with the dwelling grounding electrode system. *(ACTION)*
114- **DC ground‑fault / arc‑fault (690.11/690.41):** provided integral to the 6000XP (PV AFCI + GFDI/isolation).
115- **Labels & placards (690.53/54/56, 110.21):** max system voltage (430 V), inverter output rating, DC disconnect + directory, battery hazard label, RSD placard if the AHJ requires it. *(ACTION)*
116
117Full section‑by‑section pass/fail with computed evidence: **`artifacts/nec-checklist.md`** (16 PASS, 1 verify‑with‑AHJ, 2 action items, 1 N/A).
118
119---
120
121## 6. Schematics · `scripts/06_schematics.py` → `artifacts/`
122
123Rendered from the result JSONs so the gauges/ratings on the drawings equal the calc outputs:
124- **`sld.{png,svg}`** — array → DC disconnect → 6000XP (PV/batt/AC) → subfed main panel, with all OCPD/disconnect/conductor ratings + GEC.
125- **`dc-strings.{png,svg}`** — 2×7S across MPPT1/MPPT2, polarity, "no source fuse" + "max 7/string" notes.
126- **`battery-wiring.{png,svg}`** — 6000XP ↔ Docan S3: 2/0 cable, 175 A Class‑T, disconnect, JK‑BMS → Pylontech‑CAN comms link.
127
128---
129
130## Bottom line
131
132The configuration is electrically sound and code‑compliant for off‑grid NEC 2023: **7S×2 strings** (430 V cold Voc, 50 V under the design ceiling), **8 AWG PV / 2/0 battery / 8 AWG AC** conductors all within ampacity and voltage‑drop targets, **175 A Class‑T** battery fuse, and battery discharge comfortably inside every current limit at 6 kW. Open items (run‑length measurement, AHJ rapid‑shutdown stance, BMS closed‑loop comms, NREL key for vocmax/NSRDB) are in **`artifacts/open-issues.md`** — none change the validated design.
artifacts/nec-checklist.md +35 -0
……@@ -0,0 +1,35 @@
1# NEC Article 690 + 480/706/710 Checklist — PRSM Off-Grid PV
2
3**Code cycle:** NEC **2023** (VT DPS Division of Fire Safety, per owner). Off-grid stand-alone.
4**Evidence is computed** by `scripts/01–05` and pulled from `artifacts/results/*.json` (re-run `scripts/05_nec_checklist.py`). Summary: **16 PASS · 1 verify‑with‑AHJ · 2 action · 1 N/A.**
5
6| § | Topic | Status | Computed evidence |
7|---|---|---|---|
8| **690.7** | Max system voltage (cold Voc) | ✅ PASS | 7S cold Voc **430.1 V** ≤ 480 V design / 500 V abs (margin 69.9 V). Tmin −40 °C; analytic + pvlib agree to 0.12 V; adversarially re‑derived. |
9| **690.8(A)** | Max circuit current (Isc×1.25) | ✅ PASS | PV source max current **17.3 A** (Isc 13.87 × 1.25). |
10| **690.8(B)** | Conductor ampacity after 310.15 derates | ✅ PASS | PV string **8 AWG Cu**: 25 A@75 °C; derated 21.8 A (×0.91 temp ×0.80 fill) ≥ req 17.3 A. |
11| **690.9 / (A) Exc** | PV source overcurrent (string fusing) | ✅ PASS | **Not required** — 1 string per MPPT (no parallel strings); no source fault current can exceed the 30 A module series‑fuse rating. Each MPPT isolated. |
12| **690.9 / 240 / 480.9** | Battery overcurrent (Class‑T) | ✅ PASS | **175 A Class‑T** (DC, 20 kAIC) ≥ 125 %×126.0 A; ≤ 2/0 cable ampacity 175 A. |
13| **690.9 / 710.15** | Inverter AC output overcurrent | ✅ PASS | **35 A 2‑pole** ≥ 125 %×25.0 A; protects 8 AWG Cu (240.4(D)). |
14| **690.12** | Rapid shutdown | ⚠️ **VERIFY‑AHJ** | Ground‑mounted array **not on a building** — 690.12 (2023) applies to PV on/in buildings. The 6000XP has a built‑in RSD initiator if the AHJ requires it for conductors entering the dwelling. **Confirm AHJ stance for the detached ground‑mount.** |
15| **690.13** | PV disconnecting means | ✅ PASS | 6000XP integrated DC switch per MPPT; add an external load‑break PV/DC disconnect at the inverter for service isolation. |
16| **690.15** | Disconnect for equipment | ✅ PASS | Battery disconnect (or the fused Class‑T disconnect) within sight of the inverter. |
17| **690.11 / 690.41** | DC arc‑fault + system grounding (GFDI) | ✅ PASS | 6000XP integrated PV AFCI (690.11) and PV ground‑fault / isolation (690.41/690.5). |
18| **690.43** | Equipment grounding & bonding | ✅ PASS | EGCs: PV 10 / **battery 6** / AC 10 AWG Cu; bond array frames + all enclosures. |
19| **690.45** | Size of EGC (250.122) | ✅ PASS | Battery EGC **6 AWG** (175 A OCPD); AC EGC 10 AWG (35 A); PV EGC min 10 AWG (no source OCPD). |
20| **690.47** | Grounding electrode (array + DC) | 🔧 **ACTION** | Drive an array grounding electrode (rod) and bond per 690.47(A); min **6 AWG Cu GEC**, common with the dwelling GES. |
21| **690.31** | Wiring methods | ✅ PASS | PV in Schedule‑40 PVC conduit (rodent/UV, Swarm §16); **8 AWG Cu** PV wire/THWN‑2 90 °C. |
22| **706.30 / 480.7** | ESS disconnecting means | ✅ PASS | Lockable battery disconnect + Class‑T fuse within sight of the ESS. |
23| **706.31 / 480.9** | ESS overcurrent protection | ✅ PASS | **175 A Class‑T** at battery positive; 20 kAIC > pack prospective fault current. |
24| **710.15** | Stand‑alone system output | ✅ PASS | 6000XP 6 kW 120/240 split‑phase; output 25.0 A; no utility backfeed (off‑grid). |
25| **705** | Interconnection (120 % / backfeed) | ➖ N/A | Off‑grid, no utility interconnection. Main panel **subfed with main breaker locked off** (Swarm §17). |
26| **690.53/54/56 · 110.21** | Labels & placards | 🔧 **ACTION** | Generate per computed ratings: max system voltage (430 V), inverter output rating, DC disconnect + directory, battery hazard label, RSD placard *if* AHJ requires it. |
27| Voltage drop (design target) | DC ≤2 % / batt ≤1 % / AC ≤2 % | ✅ PASS | DC **1.33 %** (0.99/1.33/1.66 % at 150/200/250 ft); battery **0.48 %**; AC **0.16 %**. (Informational — not NEC‑mandated.) |
28
29## The 3 items that need owner / AHJ action
30
311. **690.12 rapid shutdown (VERIFY‑AHJ).** As a detached ground‑mount the array is most likely *exempt* (690.12 governs PV on buildings), but the conductors enter the dwelling. Get the VT DPS inspector's position in writing. The 6000XP can provide the RSD initiator if required (external E‑stop + any module‑level transmitter are **not** included).
322. **690.47 array grounding electrode (ACTION).** Install a ground rod at the array, 6 AWG Cu GEC, bonded to the dwelling grounding electrode system.
333. **Labeling (ACTION).** Produce the 690.53/54/56 placards from the computed ratings before inspection.
34
35All other Article 690/480/706/710 requirements pass with computed evidence above.
artifacts/open-issues.md +44 -0
……@@ -0,0 +1,44 @@
1# Open Issues, Assumptions & Datasheet Gaps — PRSM Electrical Review
2
3Nothing here changes the validated design (§ refer to `electrical-design.md`); these are
4items to confirm/measure, flagged assumptions, and where I substituted a defensible value.
5
6## A. Confirm before buying wire / energizing
7
81. **Exact conductor run lengths.** You gave ranges; the design used the conservative/representative value and proved robustness:
9 - DC array→inverter: **designed at 200 ft; 8 AWG holds ≤2 % across your full 150–250 ft range** (0.99 %/1.33 %/1.66 %). Measure the actual trench length for wire *quantity*; the *gauge* won't change.
10 - Battery 5–10 ft → used 10 ft; AC <10 ft → used 10 ft. Both short; gauge insensitive within the range.
112. **690.12 rapid shutdown — AHJ stance (VERIFY‑AHJ).** A detached ground‑mount is most likely exempt (690.12 governs PV on buildings), but conductors enter the dwelling. **Get the VT DPS inspector's position in writing.** The 6000XP supplies the RSD initiator if required; the external E‑stop and any module‑level transmitter are **not** included.
123. **Array grounding electrode (690.47, ACTION).** Drive a ground rod at the array; 6 AWG Cu GEC bonded to the dwelling GES.
134. **Labels/placards (690.53/54/56, ACTION).** Produce from the computed ratings (max system V = 430 V, output rating, disconnects, battery hazard) before inspection.
145. **AC subfeed topology (Swarm §17).** Plan is to feed the existing main panel as a subpanel with its main breaker locked off — confirm the panel supports this (main lockable, busbar/feed arrangement) and that 35 A 2‑pole output OCPD + 8 AWG matches the panel's input lugs.
15
16## B. Inputs I substituted with a defensible value (no datasheet/owner confirmation yet)
17
186. **NREL API key — not provided.** Consequences and mitigations:
19 - **Cold‑Voc (safety):** used the documented **−40 °C** NEK record‑class low. This is *colder* than the NSRDB extreme would likely return, so the result is conservative and an NSRDB pull would only *loosen* it. The script auto‑uses `min(documented, NSRDB)` once a key is set.
20 - **Production:** ran on `DEMO_KEY`. Rerun `02_production.py` with your key for site‑exact numbers.
21 - **vocmax NSRDB statistical worst‑case (P99.5):** not run — the offline vocmax run (`01b_vocmax.py`) reproduces the linear 690.7 result (428 V) but not the NSRDB statistics. **To enable:** `export NREL_API_KEY=… NREL_EMAIL=…` (free at developer.nrel.gov).
22 - **API host:** verified empirically — `developer.nrel.gov` did **not** respond; `developer.nlr.gov` did (the 2026‑05‑29 migration in the project docs is real here). `02_production.py` tries both.
237. **Exact site lat/lon.** Used 44.5, −72.0 (approx NEK). Confirm for site‑exact production; immaterial to the −40 °C cold‑Voc.
248. **Tilt 50° / azimuth 180°.** Assumed winter‑optimized true‑south; affects production only — confirm.
259. **Bifacial rear‑irradiance fraction.** Used **0.20** (× 0.80 bifaciality) for the cold‑Voc adder (+0.30 V/module). Conservative for a ground‑mount; 7S passes with margin even well above this. Winter snow albedo can raise rear irradiance, but winter is the cold case already bounded.
2610. **Conductor thermal environment.** PV modeled at 40 °C ambient with 4 current‑carrying conductors in one conduit (conservative). Separate conduits or cooler buried runs add margin. PV gauge is voltage‑drop‑driven, so ampacity assumptions aren't binding.
27
28## C. Datasheet gaps / vendor caveats (from the research agents)
29
3011. **Docan "200 A" BMS rating is soft.** The EVE MB31 cell's honest continuous limit is ~**157 A** and the JK BMS trips discharge at **150 A/300 s**; "200 A" is a short‑term MOSFET figure. Design used the cell‑honest reality. At 6 kW you draw **126 A** — ample margin. **One pack cannot sustain >6 kW continuously**; the 12 kW/3.5 s surge (252 A) is a safe transient. Phase‑2 second pack adds headroom.
3112. **JK BMS ↔ 6000XP closed‑loop comms (Swarm §9).** Pylontech‑CAN profile, 6000XP "Pylontech 2", JK **V19** firmware. Not plug‑and‑play (budget config time). **Open‑loop fallback is fully viable** (no battery‑life penalty). Verify firmware on arrival.
3213. **Battery heating — ✅ CONFIRMED: propane‑based, separate (non‑electrical) budget.** Retires the cold‑charge risk (EVE cell charges only ≥ 0 °C; the −20 °C BMS cutoff alone wouldn't protect it) and, being propane, places **no parasitic electrical load** on the array/battery. Out of electrical scope, like structure/mounting. Only electrical‑side check: confirm the **BMS gates charge on cell temperature** so it permits charge only once cells reach ≥ 0 °C (standard for these JK packs). *(If a propane control/blower happens to draw from this electrical system, tell me and I'll add it as a winter load — but "separate budget" implies it's independent.)* **Out‑of‑scope safety pointer:** a propane appliance in/near a Li‑battery enclosure needs combustion‑air, ventilation, and fire‑separation handling — keep that in the enclosure & fire‑code review (Swarm §4, NFPA 855), not here.
3314. **No vendor‑published battery fuse/cable spec.** The 175 A Class‑T and 2/0 cable are **engineer‑selected** (computed in `03`/`04`), not vendor values. The ~2 AWG cable that may ship with the pack is **undersized** for 6 kW — use 2/0 (4/0 recommended).
3415. **Verify the module at receiving.** Confirm the physical Waaree label/datasheet is **BiN‑08‑575 (Voc 52.30 V, 144‑cell)** — Signature Solar could substitute a batch; a different SKU (e.g., 108‑cell BiN‑01 at 39.91 V) would change string sizing.
35
36## D. Adjacent items (noted, not in this electrical scope)
37
3816. **Backup generator (Phase 1, Swarm §2).** AC‑IN to the 6000XP (50 A pass‑through) for generator‑assist charging on low SOC; wire the L14‑30 inlet + interlock per that path.
3917. **Phase‑2 PV expansion** with surplus pallet panels (Swarm §6) directly attacks the winter‑starvation shown in `02` (Dec 15.7 kWh/day). **Keep each string at 7 modules max** (8S = 491 V, unsafe) when expanding.
4018. **Insurance / NFPA 855 / permitting** — covered in the PRSM Swarm Review; out of electrical‑review scope.
41
42## E. Validation status of the safety‑critical result
43
44The cold‑Voc string result (7S, 430 V ≤ 480 V) is confirmed by **four independent methods**: analytic NEC 690.7, pvlib CEC single‑diode, **vocmax** (the named tool, offline), and an independent adversarial agent. The only vocmax capability not exercised is its NSRDB statistical worst‑case, which needs the NREL key (item 6) and would only relax the already‑conservative −40 °C result.
artifacts/phase2-pathB/battery-wiring.png +0 -0
(no content changes — binary or rename)
artifacts/phase2-pathB/battery-wiring.svg +2440 -0
……@@ -0,0 +1,2440 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="612.263016pt" height="282.24pt" viewBox="0 0 612.263016 282.24" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T02:23:53.045150</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M -0 282.24
25L 612.263016 282.24
26L 612.263016 0
27L -0 0
28L -0 282.24
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="line2d_1">
34 <path d="M 170.839896 163.936048
35L 260.706166 163.936048
36L 260.706166 74.069777
37L 170.839896 74.069777
38L 170.839896 163.936048
39" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
40 </g>
41 <g id="line2d_2">
42 <path d="M 260.706166 97.435007
43L 278.679421 97.435007
44" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
45 </g>
46 <g id="line2d_3">
47 <path d="M 260.706166 140.570817
48L 278.679421 140.570817
49" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
50 </g>
51 <g id="line2d_4">
52 <path d="M 215.773031 163.936048
53L 215.773031 181.909302
54" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
55 </g>
56 <g id="line2d_5">
57 <path d="M 278.679421 97.435007
58L 300.247325 97.435007
59L 321.81523 97.435007
60" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
61 </g>
62 <g id="line2d_6">
63 <path d="M 321.81523 97.435007
64M 330.442392 93.840357
65L 350.572437 81.259079
66M 357.761738 97.435007
67" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
68 </g>
69 <g id="line2d_7">
70 <path d="M 330.442392 129.786865
71L 350.572437 117.205587
72" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
73 </g>
74 <g id="line2d_8">
75 <path d="M 339.788484 124.394889
76L 339.788484 90.245706
77" clip-path="url(#pe57cfb5463)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
78 </g>
79 <g id="line2d_9">
80 <path d="M 321.81523 97.435007
81L 330.801857 97.435007
82L 339.788484 97.435007
83" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
84 </g>
85 <g id="line2d_10">
86 <path d="M 339.788484 97.435007
87L 361.356389 97.435007
88L 361.356389 88.44838
89L 397.302897 88.44838
90L 397.302897 106.421634
91L 361.356389 106.421634
92L 361.356389 97.435007
93M 397.302897 97.435007
94L 418.870802 97.435007
95" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
96 </g>
97 <g id="line2d_11">
98 <path d="M 399.100223 127.989539
99L 417.073477 127.989539
100L 435.046731 127.989539
101" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
102 </g>
103 <g id="line2d_12">
104 <path d="M 435.046731 127.989539
105L 456.614636 127.989539
106L 456.614636 119.002912
107L 492.561144 119.002912
108L 492.561144 136.976166
109L 456.614636 136.976166
110L 456.614636 127.989539
111M 492.561144 127.989539
112L 514.129049 127.989539
113" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
114 </g>
115 <g id="line2d_13">
116 <path d="M 456.614636 127.989539
117L 492.561144 127.989539
118" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
119 </g>
120 <g id="line2d_14">
121 <path d="M 514.129049 127.989539
122M 522.756211 124.394889
123L 542.886256 111.813611
124M 550.075557 127.989539
125" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
126 </g>
127 <g id="line2d_15">
128 <path d="M 522.756211 160.341397
129L 542.886256 147.760119
130" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
131 </g>
132 <g id="line2d_16">
133 <path d="M 532.102303 154.949421
134L 532.102303 120.800238
135" clip-path="url(#pe57cfb5463)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
136 </g>
137 <g id="line2d_17">
138 <path d="M 514.129049 127.989539
139L 521.318351 127.989539
140L 528.507652 127.989539
141" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
142 </g>
143 <g id="line2d_18">
144 <path d="M 528.507652 127.989539
145L 557.938856 127.989539
146M 578.158767 127.989539
147L 607.58997 127.989539
148" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
149 </g>
150 <g id="line2d_19">
151 <path d="M 557.938856 114.509599
152L 557.938856 141.46948
153" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
154 </g>
155 <g id="line2d_20">
156 <path d="M 564.678826 121.249569
157L 564.678826 134.72951
158" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
159 </g>
160 <g id="line2d_21">
161 <path d="M 571.418796 114.509599
162L 571.418796 141.46948
163" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
164 </g>
165 <g id="line2d_22">
166 <path d="M 578.158767 121.249569
167L 578.158767 134.72951
168" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
169 </g>
170 <g id="line2d_23">
171 <path d="M 399.100223 207.071857
172L 417.073477 207.071857
173L 435.046731 207.071857
174" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
175 </g>
176 <g id="line2d_24">
177 <path d="M 435.046731 207.071857
178L 456.614636 207.071857
179L 456.614636 198.08523
180L 492.561144 198.08523
181L 492.561144 216.058484
182L 456.614636 216.058484
183L 456.614636 207.071857
184M 492.561144 207.071857
185L 514.129049 207.071857
186" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
187 </g>
188 <g id="line2d_25">
189 <path d="M 456.614636 207.071857
190L 492.561144 207.071857
191" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
192 </g>
193 <g id="line2d_26">
194 <path d="M 514.129049 207.071857
195M 522.756211 203.477207
196L 542.886256 190.895929
197M 550.075557 207.071857
198" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
199 </g>
200 <g id="line2d_27">
201 <path d="M 522.756211 239.423715
202L 542.886256 226.842437
203" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
204 </g>
205 <g id="line2d_28">
206 <path d="M 532.102303 234.031738
207L 532.102303 199.882556
208" clip-path="url(#pe57cfb5463)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
209 </g>
210 <g id="line2d_29">
211 <path d="M 514.129049 207.071857
212L 521.318351 207.071857
213L 528.507652 207.071857
214" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
215 </g>
216 <g id="line2d_30">
217 <path d="M 528.507652 207.071857
218L 557.938856 207.071857
219M 578.158767 207.071857
220L 607.58997 207.071857
221" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
222 </g>
223 <g id="line2d_31">
224 <path d="M 557.938856 193.591917
225L 557.938856 220.551798
226" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
227 </g>
228 <g id="line2d_32">
229 <path d="M 564.678826 200.331887
230L 564.678826 213.811828
231" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
232 </g>
233 <g id="line2d_33">
234 <path d="M 571.418796 193.591917
235L 571.418796 220.551798
236" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
237 </g>
238 <g id="line2d_34">
239 <path d="M 578.158767 200.331887
240L 578.158767 213.811828
241" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
242 </g>
243 <g id="line2d_35">
244 <path d="M 379.329643 225.045111
245L 379.329643 235.829064
246L 379.329643 246.613016
247" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
248 </g>
249 <g id="line2d_36">
250 <path d="M 379.329643 246.613016
251L 329.004532 246.613016
252L 278.679421 246.613016
253" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
254 </g>
255 <g id="line2d_37">
256 <path d="M 278.679421 246.613016
257L 278.679421 193.591917
258L 278.679421 140.570817
259" clip-path="url(#pe57cfb5463)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
260 </g>
261 <g id="line2d_38">
262 <path d="M 215.773031 181.909302
263L 215.773031 207.071857
264L 215.773031 232.234413
265" clip-path="url(#pe57cfb5463)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
266 </g>
267 <g id="line2d_39">
268 <path d="M 215.773031 232.234413
269L 305.639302 232.234413
270L 395.505572 232.234413
271" clip-path="url(#pe57cfb5463)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
272 </g>
273 <g id="text_1">
274 <!-- BATP -->
275 <g transform="translate(220.224503 101.298132) scale(0.14 -0.14)">
276 <defs>
277 <path id="DejaVuSans-42" d="M 1259 2228
278L 1259 519
279L 2272 519
280Q 2781 519 3026 730
281Q 3272 941 3272 1375
282Q 3272 1813 3026 2020
283Q 2781 2228 2272 2228
284L 1259 2228
285z
286M 1259 4147
287L 1259 2741
288L 2194 2741
289Q 2656 2741 2882 2914
290Q 3109 3088 3109 3444
291Q 3109 3797 2882 3972
292Q 2656 4147 2194 4147
293L 1259 4147
294z
295M 628 4666
296L 2241 4666
297Q 2963 4666 3353 4366
298Q 3744 4066 3744 3513
299Q 3744 3084 3544 2831
300Q 3344 2578 2956 2516
301Q 3422 2416 3680 2098
302Q 3938 1781 3938 1306
303Q 3938 681 3513 340
304Q 3088 0 2303 0
305L 628 0
306L 628 4666
307z
308" transform="scale(0.015625)"/>
309 <path id="DejaVuSans-41" d="M 2188 4044
310L 1331 1722
311L 3047 1722
312L 2188 4044
313z
314M 1831 4666
315L 2547 4666
316L 4325 0
317L 3669 0
318L 3244 1197
319L 1141 1197
320L 716 0
321L 50 0
322L 1831 4666
323z
324" transform="scale(0.015625)"/>
325 <path id="DejaVuSans-54" d="M -19 4666
326L 3928 4666
327L 3928 4134
328L 2272 4134
329L 2272 0
330L 1638 0
331L 1638 4134
332L -19 4134
333L -19 4666
334z
335" transform="scale(0.015625)"/>
336 <path id="DejaVuSans-50" d="M 1259 4147
337L 1259 2394
338L 2053 2394
339Q 2494 2394 2734 2622
340Q 2975 2850 2975 3272
341Q 2975 3691 2734 3919
342Q 2494 4147 2053 4147
343L 1259 4147
344z
345M 628 4666
346L 2053 4666
347Q 2838 4666 3239 4311
348Q 3641 3956 3641 3272
349Q 3641 2581 3239 2228
350Q 2838 1875 2053 1875
351L 1259 1875
352L 1259 0
353L 628 0
354L 628 4666
355z
356" transform="scale(0.015625)"/>
357 </defs>
358 <use xlink:href="#DejaVuSans-42"/>
359 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
360 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
361 <use xlink:href="#DejaVuSans-50" transform="translate(190.345703 0)"/>
362 </g>
363 </g>
364 <g id="text_2">
365 <!-- BATN -->
366 <g transform="translate(218.192315 144.433942) scale(0.14 -0.14)">
367 <defs>
368 <path id="DejaVuSans-4e" d="M 628 4666
369L 1478 4666
370L 3547 763
371L 3547 4666
372L 4159 4666
373L 4159 0
374L 3309 0
375L 1241 3903
376L 1241 0
377L 628 0
378L 628 4666
379z
380" transform="scale(0.015625)"/>
381 </defs>
382 <use xlink:href="#DejaVuSans-42"/>
383 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
384 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
385 <use xlink:href="#DejaVuSans-4e" transform="translate(190.345703 0)"/>
386 </g>
387 </g>
388 <g id="text_3">
389 <!-- COM -->
390 <g transform="translate(199.335062 155.632509) scale(0.14 -0.14)">
391 <defs>
392 <path id="DejaVuSans-43" d="M 4122 4306
393L 4122 3641
394Q 3803 3938 3442 4084
395Q 3081 4231 2675 4231
396Q 1875 4231 1450 3742
397Q 1025 3253 1025 2328
398Q 1025 1406 1450 917
399Q 1875 428 2675 428
400Q 3081 428 3442 575
401Q 3803 722 4122 1019
402L 4122 359
403Q 3791 134 3420 21
404Q 3050 -91 2638 -91
405Q 1578 -91 968 557
406Q 359 1206 359 2328
407Q 359 3453 968 4101
408Q 1578 4750 2638 4750
409Q 3056 4750 3426 4639
410Q 3797 4528 4122 4306
411z
412" transform="scale(0.015625)"/>
413 <path id="DejaVuSans-4f" d="M 2522 4238
414Q 1834 4238 1429 3725
415Q 1025 3213 1025 2328
416Q 1025 1447 1429 934
417Q 1834 422 2522 422
418Q 3209 422 3611 934
419Q 4013 1447 4013 2328
420Q 4013 3213 3611 3725
421Q 3209 4238 2522 4238
422z
423M 2522 4750
424Q 3503 4750 4090 4092
425Q 4678 3434 4678 2328
426Q 4678 1225 4090 567
427Q 3503 -91 2522 -91
428Q 1538 -91 948 565
429Q 359 1222 359 2328
430Q 359 3434 948 4092
431Q 1538 4750 2522 4750
432z
433" transform="scale(0.015625)"/>
434 <path id="DejaVuSans-4d" d="M 628 4666
435L 1569 4666
436L 2759 1491
437L 3956 4666
438L 4897 4666
439L 4897 0
440L 4281 0
441L 4281 4097
442L 3078 897
443L 2444 897
444L 1241 4097
445L 1241 0
446L 628 0
447L 628 4666
448z
449" transform="scale(0.015625)"/>
450 </defs>
451 <use xlink:href="#DejaVuSans-43"/>
452 <use xlink:href="#DejaVuSans-4f" transform="translate(69.824219 0)"/>
453 <use xlink:href="#DejaVuSans-4d" transform="translate(148.535156 0)"/>
454 </g>
455 </g>
456 <g id="text_4">
457 <!-- EG4 18kPV -->
458 <g transform="translate(194.620495 109.181387) scale(0.09 -0.09)">
459 <defs>
460 <path id="DejaVuSans-45" d="M 628 4666
461L 3578 4666
462L 3578 4134
463L 1259 4134
464L 1259 2753
465L 3481 2753
466L 3481 2222
467L 1259 2222
468L 1259 531
469L 3634 531
470L 3634 0
471L 628 0
472L 628 4666
473z
474" transform="scale(0.015625)"/>
475 <path id="DejaVuSans-47" d="M 3809 666
476L 3809 1919
477L 2778 1919
478L 2778 2438
479L 4434 2438
480L 4434 434
481Q 4069 175 3628 42
482Q 3188 -91 2688 -91
483Q 1594 -91 976 548
484Q 359 1188 359 2328
485Q 359 3472 976 4111
486Q 1594 4750 2688 4750
487Q 3144 4750 3555 4637
488Q 3966 4525 4313 4306
489L 4313 3634
490Q 3963 3931 3569 4081
491Q 3175 4231 2741 4231
492Q 1884 4231 1454 3753
493Q 1025 3275 1025 2328
494Q 1025 1384 1454 906
495Q 1884 428 2741 428
496Q 3075 428 3337 486
497Q 3600 544 3809 666
498z
499" transform="scale(0.015625)"/>
500 <path id="DejaVuSans-34" d="M 2419 4116
501L 825 1625
502L 2419 1625
503L 2419 4116
504z
505M 2253 4666
506L 3047 4666
507L 3047 1625
508L 3713 1625
509L 3713 1100
510L 3047 1100
511L 3047 0
512L 2419 0
513L 2419 1100
514L 313 1100
515L 313 1709
516L 2253 4666
517z
518" transform="scale(0.015625)"/>
519 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
520 <path id="DejaVuSans-31" d="M 794 531
521L 1825 531
522L 1825 4091
523L 703 3866
524L 703 4441
525L 1819 4666
526L 2450 4666
527L 2450 531
528L 3481 531
529L 3481 0
530L 794 0
531L 794 531
532z
533" transform="scale(0.015625)"/>
534 <path id="DejaVuSans-38" d="M 2034 2216
535Q 1584 2216 1326 1975
536Q 1069 1734 1069 1313
537Q 1069 891 1326 650
538Q 1584 409 2034 409
539Q 2484 409 2743 651
540Q 3003 894 3003 1313
541Q 3003 1734 2745 1975
542Q 2488 2216 2034 2216
543z
544M 1403 2484
545Q 997 2584 770 2862
546Q 544 3141 544 3541
547Q 544 4100 942 4425
548Q 1341 4750 2034 4750
549Q 2731 4750 3128 4425
550Q 3525 4100 3525 3541
551Q 3525 3141 3298 2862
552Q 3072 2584 2669 2484
553Q 3125 2378 3379 2068
554Q 3634 1759 3634 1313
555Q 3634 634 3220 271
556Q 2806 -91 2034 -91
557Q 1263 -91 848 271
558Q 434 634 434 1313
559Q 434 1759 690 2068
560Q 947 2378 1403 2484
561z
562M 1172 3481
563Q 1172 3119 1398 2916
564Q 1625 2713 2034 2713
565Q 2441 2713 2670 2916
566Q 2900 3119 2900 3481
567Q 2900 3844 2670 4047
568Q 2441 4250 2034 4250
569Q 1625 4250 1398 4047
570Q 1172 3844 1172 3481
571z
572" transform="scale(0.015625)"/>
573 <path id="DejaVuSans-6b" d="M 581 4863
574L 1159 4863
575L 1159 1991
576L 2875 3500
577L 3609 3500
578L 1753 1863
579L 3688 0
580L 2938 0
581L 1159 1709
582L 1159 0
583L 581 0
584L 581 4863
585z
586" transform="scale(0.015625)"/>
587 <path id="DejaVuSans-56" d="M 1831 0
588L 50 4666
589L 709 4666
590L 2188 738
591L 3669 4666
592L 4325 4666
593L 2547 0
594L 1831 0
595z
596" transform="scale(0.015625)"/>
597 </defs>
598 <use xlink:href="#DejaVuSans-45"/>
599 <use xlink:href="#DejaVuSans-47" transform="translate(63.183594 0)"/>
600 <use xlink:href="#DejaVuSans-34" transform="translate(140.673828 0)"/>
601 <use xlink:href="#DejaVuSans-20" transform="translate(204.296875 0)"/>
602 <use xlink:href="#DejaVuSans-31" transform="translate(236.083984 0)"/>
603 <use xlink:href="#DejaVuSans-38" transform="translate(299.707031 0)"/>
604 <use xlink:href="#DejaVuSans-6b" transform="translate(363.330078 0)"/>
605 <use xlink:href="#DejaVuSans-50" transform="translate(421.240234 0)"/>
606 <use xlink:href="#DejaVuSans-56" transform="translate(481.542969 0)"/>
607 </g>
608 <!-- BAT 40–60V -->
609 <g transform="translate(192.591276 117.891699) scale(0.09 -0.09)">
610 <defs>
611 <path id="DejaVuSans-30" d="M 2034 4250
612Q 1547 4250 1301 3770
613Q 1056 3291 1056 2328
614Q 1056 1369 1301 889
615Q 1547 409 2034 409
616Q 2525 409 2770 889
617Q 3016 1369 3016 2328
618Q 3016 3291 2770 3770
619Q 2525 4250 2034 4250
620z
621M 2034 4750
622Q 2819 4750 3233 4129
623Q 3647 3509 3647 2328
624Q 3647 1150 3233 529
625Q 2819 -91 2034 -91
626Q 1250 -91 836 529
627Q 422 1150 422 2328
628Q 422 3509 836 4129
629Q 1250 4750 2034 4750
630z
631" transform="scale(0.015625)"/>
632 <path id="DejaVuSans-2013" d="M 313 1978
633L 2888 1978
634L 2888 1528
635L 313 1528
636L 313 1978
637z
638" transform="scale(0.015625)"/>
639 <path id="DejaVuSans-36" d="M 2113 2584
640Q 1688 2584 1439 2293
641Q 1191 2003 1191 1497
642Q 1191 994 1439 701
643Q 1688 409 2113 409
644Q 2538 409 2786 701
645Q 3034 994 3034 1497
646Q 3034 2003 2786 2293
647Q 2538 2584 2113 2584
648z
649M 3366 4563
650L 3366 3988
651Q 3128 4100 2886 4159
652Q 2644 4219 2406 4219
653Q 1781 4219 1451 3797
654Q 1122 3375 1075 2522
655Q 1259 2794 1537 2939
656Q 1816 3084 2150 3084
657Q 2853 3084 3261 2657
658Q 3669 2231 3669 1497
659Q 3669 778 3244 343
660Q 2819 -91 2113 -91
661Q 1303 -91 875 529
662Q 447 1150 447 2328
663Q 447 3434 972 4092
664Q 1497 4750 2381 4750
665Q 2619 4750 2861 4703
666Q 3103 4656 3366 4563
667z
668" transform="scale(0.015625)"/>
669 </defs>
670 <use xlink:href="#DejaVuSans-42"/>
671 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
672 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
673 <use xlink:href="#DejaVuSans-20" transform="translate(190.345703 0)"/>
674 <use xlink:href="#DejaVuSans-34" transform="translate(222.132812 0)"/>
675 <use xlink:href="#DejaVuSans-30" transform="translate(285.755859 0)"/>
676 <use xlink:href="#DejaVuSans-2013" transform="translate(349.378906 0)"/>
677 <use xlink:href="#DejaVuSans-36" transform="translate(399.378906 0)"/>
678 <use xlink:href="#DejaVuSans-30" transform="translate(463.001953 0)"/>
679 <use xlink:href="#DejaVuSans-56" transform="translate(526.625 0)"/>
680 </g>
681 <!-- max 250A -->
682 <g transform="translate(196.465495 126.602012) scale(0.09 -0.09)">
683 <defs>
684 <path id="DejaVuSans-6d" d="M 3328 2828
685Q 3544 3216 3844 3400
686Q 4144 3584 4550 3584
687Q 5097 3584 5394 3201
688Q 5691 2819 5691 2113
689L 5691 0
690L 5113 0
691L 5113 2094
692Q 5113 2597 4934 2840
693Q 4756 3084 4391 3084
694Q 3944 3084 3684 2787
695Q 3425 2491 3425 1978
696L 3425 0
697L 2847 0
698L 2847 2094
699Q 2847 2600 2669 2842
700Q 2491 3084 2119 3084
701Q 1678 3084 1418 2786
702Q 1159 2488 1159 1978
703L 1159 0
704L 581 0
705L 581 3500
706L 1159 3500
707L 1159 2956
708Q 1356 3278 1631 3431
709Q 1906 3584 2284 3584
710Q 2666 3584 2933 3390
711Q 3200 3197 3328 2828
712z
713" transform="scale(0.015625)"/>
714 <path id="DejaVuSans-61" d="M 2194 1759
715Q 1497 1759 1228 1600
716Q 959 1441 959 1056
717Q 959 750 1161 570
718Q 1363 391 1709 391
719Q 2188 391 2477 730
720Q 2766 1069 2766 1631
721L 2766 1759
722L 2194 1759
723z
724M 3341 1997
725L 3341 0
726L 2766 0
727L 2766 531
728Q 2569 213 2275 61
729Q 1981 -91 1556 -91
730Q 1019 -91 701 211
731Q 384 513 384 1019
732Q 384 1609 779 1909
733Q 1175 2209 1959 2209
734L 2766 2209
735L 2766 2266
736Q 2766 2663 2505 2880
737Q 2244 3097 1772 3097
738Q 1472 3097 1187 3025
739Q 903 2953 641 2809
740L 641 3341
741Q 956 3463 1253 3523
742Q 1550 3584 1831 3584
743Q 2591 3584 2966 3190
744Q 3341 2797 3341 1997
745z
746" transform="scale(0.015625)"/>
747 <path id="DejaVuSans-78" d="M 3513 3500
748L 2247 1797
749L 3578 0
750L 2900 0
751L 1881 1375
752L 863 0
753L 184 0
754L 1544 1831
755L 300 3500
756L 978 3500
757L 1906 2253
758L 2834 3500
759L 3513 3500
760z
761" transform="scale(0.015625)"/>
762 <path id="DejaVuSans-32" d="M 1228 531
763L 3431 531
764L 3431 0
765L 469 0
766L 469 531
767Q 828 903 1448 1529
768Q 2069 2156 2228 2338
769Q 2531 2678 2651 2914
770Q 2772 3150 2772 3378
771Q 2772 3750 2511 3984
772Q 2250 4219 1831 4219
773Q 1534 4219 1204 4116
774Q 875 4013 500 3803
775L 500 4441
776Q 881 4594 1212 4672
777Q 1544 4750 1819 4750
778Q 2544 4750 2975 4387
779Q 3406 4025 3406 3419
780Q 3406 3131 3298 2873
781Q 3191 2616 2906 2266
782Q 2828 2175 2409 1742
783Q 1991 1309 1228 531
784z
785" transform="scale(0.015625)"/>
786 <path id="DejaVuSans-35" d="M 691 4666
787L 3169 4666
788L 3169 4134
789L 1269 4134
790L 1269 2991
791Q 1406 3038 1543 3061
792Q 1681 3084 1819 3084
793Q 2600 3084 3056 2656
794Q 3513 2228 3513 1497
795Q 3513 744 3044 326
796Q 2575 -91 1722 -91
797Q 1428 -91 1123 -41
798Q 819 9 494 109
799L 494 744
800Q 775 591 1075 516
801Q 1375 441 1709 441
802Q 2250 441 2565 725
803Q 2881 1009 2881 1497
804Q 2881 1984 2565 2268
805Q 2250 2553 1709 2553
806Q 1456 2553 1204 2497
807Q 953 2441 691 2322
808L 691 4666
809z
810" transform="scale(0.015625)"/>
811 </defs>
812 <use xlink:href="#DejaVuSans-6d"/>
813 <use xlink:href="#DejaVuSans-61" transform="translate(97.412109 0)"/>
814 <use xlink:href="#DejaVuSans-78" transform="translate(158.691406 0)"/>
815 <use xlink:href="#DejaVuSans-20" transform="translate(217.871094 0)"/>
816 <use xlink:href="#DejaVuSans-32" transform="translate(249.658203 0)"/>
817 <use xlink:href="#DejaVuSans-35" transform="translate(313.28125 0)"/>
818 <use xlink:href="#DejaVuSans-30" transform="translate(376.904297 0)"/>
819 <use xlink:href="#DejaVuSans-41" transform="translate(440.527344 0)"/>
820 </g>
821 </g>
822 <g id="text_5">
823 <!-- + -->
824 <g transform="translate(296.057482 91.760669) scale(0.1 -0.1)">
825 <defs>
826 <path id="DejaVuSans-2b" d="M 2944 4013
827L 2944 2272
828L 4684 2272
829L 4684 1741
830L 2944 1741
831L 2944 0
832L 2419 0
833L 2419 1741
834L 678 1741
835L 678 2272
836L 2419 2272
837L 2419 4013
838L 2944 4013
839z
840" transform="scale(0.015625)"/>
841 </defs>
842 <use xlink:href="#DejaVuSans-2b"/>
843 </g>
844 </g>
845 <g id="patch_2">
846 <path d="M 326.128811 101.748588
847C 327.272786 101.748588 328.370061 101.294082 329.178974 100.48517
848C 329.987886 99.676257 330.442392 98.578982 330.442392 97.435007
849C 330.442392 96.291032 329.987886 95.193758 329.178974 94.384845
850C 328.370061 93.575933 327.272786 93.121426 326.128811 93.121426
851C 324.984836 93.121426 323.887561 93.575933 323.078649 94.384845
852C 322.269736 95.193758 321.81523 96.291032 321.81523 97.435007
853C 321.81523 98.578982 322.269736 99.676257 323.078649 100.48517
854C 323.887561 101.294082 324.984836 101.748588 326.128811 101.748588
855z
856" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
857 </g>
858 <g id="patch_3">
859 <path d="M 353.448158 101.748588
860C 354.592133 101.748588 355.689407 101.294082 356.49832 100.48517
861C 357.307232 99.676257 357.761738 98.578982 357.761738 97.435007
862C 357.761738 96.291032 357.307232 95.193758 356.49832 94.384845
863C 355.689407 93.575933 354.592133 93.121426 353.448158 93.121426
864C 352.304182 93.121426 351.206908 93.575933 350.397995 94.384845
865C 349.589083 95.193758 349.134577 96.291032 349.134577 97.435007
866C 349.134577 98.578982 349.589083 99.676257 350.397995 100.48517
867C 351.206908 101.294082 352.304182 101.748588 353.448158 101.748588
868z
869" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
870 </g>
871 <g id="patch_4">
872 <path d="M 326.128811 137.695097
873C 327.272786 137.695097 328.370061 137.24059 329.178974 136.431678
874C 329.987886 135.622765 330.442392 134.525491 330.442392 133.381516
875C 330.442392 132.237541 329.987886 131.140266 329.178974 130.331353
876C 328.370061 129.522441 327.272786 129.067935 326.128811 129.067935
877C 324.984836 129.067935 323.887561 129.522441 323.078649 130.331353
878C 322.269736 131.140266 321.81523 132.237541 321.81523 133.381516
879C 321.81523 134.525491 322.269736 135.622765 323.078649 136.431678
880C 323.887561 137.24059 324.984836 137.695097 326.128811 137.695097
881z
882" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
883 </g>
884 <g id="patch_5">
885 <path d="M 353.448158 137.695097
886C 354.592133 137.695097 355.689407 137.24059 356.49832 136.431678
887C 357.307232 135.622765 357.761738 134.525491 357.761738 133.381516
888C 357.761738 132.237541 357.307232 131.140266 356.49832 130.331353
889C 355.689407 129.522441 354.592133 129.067935 353.448158 129.067935
890C 352.304182 129.067935 351.206908 129.522441 350.397995 130.331353
891C 349.589083 131.140266 349.134577 132.237541 349.134577 133.381516
892C 349.134577 134.525491 349.589083 135.622765 350.397995 136.431678
893C 351.206908 137.24059 352.304182 137.695097 353.448158 137.695097
894z
895" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
896 </g>
897 <g id="text_6">
898 <!-- bank -->
899 <g transform="translate(329.946609 68.258178) scale(0.08 -0.08)">
900 <defs>
901 <path id="DejaVuSans-62" d="M 3116 1747
902Q 3116 2381 2855 2742
903Q 2594 3103 2138 3103
904Q 1681 3103 1420 2742
905Q 1159 2381 1159 1747
906Q 1159 1113 1420 752
907Q 1681 391 2138 391
908Q 2594 391 2855 752
909Q 3116 1113 3116 1747
910z
911M 1159 2969
912Q 1341 3281 1617 3432
913Q 1894 3584 2278 3584
914Q 2916 3584 3314 3078
915Q 3713 2572 3713 1747
916Q 3713 922 3314 415
917Q 2916 -91 2278 -91
918Q 1894 -91 1617 61
919Q 1341 213 1159 525
920L 1159 0
921L 581 0
922L 581 4863
923L 1159 4863
924L 1159 2969
925z
926" transform="scale(0.015625)"/>
927 <path id="DejaVuSans-6e" d="M 3513 2113
928L 3513 0
929L 2938 0
930L 2938 2094
931Q 2938 2591 2744 2837
932Q 2550 3084 2163 3084
933Q 1697 3084 1428 2787
934Q 1159 2491 1159 1978
935L 1159 0
936L 581 0
937L 581 3500
938L 1159 3500
939L 1159 2956
940Q 1366 3272 1645 3428
941Q 1925 3584 2291 3584
942Q 2894 3584 3203 3211
943Q 3513 2838 3513 2113
944z
945" transform="scale(0.015625)"/>
946 </defs>
947 <use xlink:href="#DejaVuSans-62"/>
948 <use xlink:href="#DejaVuSans-61" transform="translate(63.476562 0)"/>
949 <use xlink:href="#DejaVuSans-6e" transform="translate(124.755859 0)"/>
950 <use xlink:href="#DejaVuSans-6b" transform="translate(188.134766 0)"/>
951 </g>
952 <!-- disc -->
953 <g transform="translate(331.854734 76.000678) scale(0.08 -0.08)">
954 <defs>
955 <path id="DejaVuSans-64" d="M 2906 2969
956L 2906 4863
957L 3481 4863
958L 3481 0
959L 2906 0
960L 2906 525
961Q 2725 213 2448 61
962Q 2172 -91 1784 -91
963Q 1150 -91 751 415
964Q 353 922 353 1747
965Q 353 2572 751 3078
966Q 1150 3584 1784 3584
967Q 2172 3584 2448 3432
968Q 2725 3281 2906 2969
969z
970M 947 1747
971Q 947 1113 1208 752
972Q 1469 391 1925 391
973Q 2381 391 2643 752
974Q 2906 1113 2906 1747
975Q 2906 2381 2643 2742
976Q 2381 3103 1925 3103
977Q 1469 3103 1208 2742
978Q 947 2381 947 1747
979z
980" transform="scale(0.015625)"/>
981 <path id="DejaVuSans-69" d="M 603 3500
982L 1178 3500
983L 1178 0
984L 603 0
985L 603 3500
986z
987M 603 4863
988L 1178 4863
989L 1178 4134
990L 603 4134
991L 603 4863
992z
993" transform="scale(0.015625)"/>
994 <path id="DejaVuSans-73" d="M 2834 3397
995L 2834 2853
996Q 2591 2978 2328 3040
997Q 2066 3103 1784 3103
998Q 1356 3103 1142 2972
999Q 928 2841 928 2578
1000Q 928 2378 1081 2264
1001Q 1234 2150 1697 2047
1002L 1894 2003
1003Q 2506 1872 2764 1633
1004Q 3022 1394 3022 966
1005Q 3022 478 2636 193
1006Q 2250 -91 1575 -91
1007Q 1294 -91 989 -36
1008Q 684 19 347 128
1009L 347 722
1010Q 666 556 975 473
1011Q 1284 391 1588 391
1012Q 1994 391 2212 530
1013Q 2431 669 2431 922
1014Q 2431 1156 2273 1281
1015Q 2116 1406 1581 1522
1016L 1381 1569
1017Q 847 1681 609 1914
1018Q 372 2147 372 2553
1019Q 372 3047 722 3315
1020Q 1072 3584 1716 3584
1021Q 2034 3584 2315 3537
1022Q 2597 3491 2834 3397
1023z
1024" transform="scale(0.015625)"/>
1025 <path id="DejaVuSans-63" d="M 3122 3366
1026L 3122 2828
1027Q 2878 2963 2633 3030
1028Q 2388 3097 2138 3097
1029Q 1578 3097 1268 2742
1030Q 959 2388 959 1747
1031Q 959 1106 1268 751
1032Q 1578 397 2138 397
1033Q 2388 397 2633 464
1034Q 2878 531 3122 666
1035L 3122 134
1036Q 2881 22 2623 -34
1037Q 2366 -91 2075 -91
1038Q 1284 -91 818 406
1039Q 353 903 353 1747
1040Q 353 2603 823 3093
1041Q 1294 3584 2113 3584
1042Q 2378 3584 2631 3529
1043Q 2884 3475 3122 3366
1044z
1045" transform="scale(0.015625)"/>
1046 </defs>
1047 <use xlink:href="#DejaVuSans-64"/>
1048 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1049 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1050 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1051 </g>
1052 </g>
1053 <g id="text_7">
1054 <!-- 400kcmil -->
1055 <g transform="translate(312.532482 107.108408) scale(0.08 -0.08)">
1056 <defs>
1057 <path id="DejaVuSans-6c" d="M 603 4863
1058L 1178 4863
1059L 1178 0
1060L 603 0
1061L 603 4863
1062z
1063" transform="scale(0.015625)"/>
1064 </defs>
1065 <use xlink:href="#DejaVuSans-34"/>
1066 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1067 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1068 <use xlink:href="#DejaVuSans-6b" transform="translate(190.869141 0)"/>
1069 <use xlink:href="#DejaVuSans-63" transform="translate(248.779297 0)"/>
1070 <use xlink:href="#DejaVuSans-6d" transform="translate(303.759766 0)"/>
1071 <use xlink:href="#DejaVuSans-69" transform="translate(401.171875 0)"/>
1072 <use xlink:href="#DejaVuSans-6c" transform="translate(428.955078 0)"/>
1073 </g>
1074 <!-- or 2×4/0 -->
1075 <g transform="translate(313.104357 114.850908) scale(0.08 -0.08)">
1076 <defs>
1077 <path id="DejaVuSans-6f" d="M 1959 3097
1078Q 1497 3097 1228 2736
1079Q 959 2375 959 1747
1080Q 959 1119 1226 758
1081Q 1494 397 1959 397
1082Q 2419 397 2687 759
1083Q 2956 1122 2956 1747
1084Q 2956 2369 2687 2733
1085Q 2419 3097 1959 3097
1086z
1087M 1959 3584
1088Q 2709 3584 3137 3096
1089Q 3566 2609 3566 1747
1090Q 3566 888 3137 398
1091Q 2709 -91 1959 -91
1092Q 1206 -91 779 398
1093Q 353 888 353 1747
1094Q 353 2609 779 3096
1095Q 1206 3584 1959 3584
1096z
1097" transform="scale(0.015625)"/>
1098 <path id="DejaVuSans-72" d="M 2631 2963
1099Q 2534 3019 2420 3045
1100Q 2306 3072 2169 3072
1101Q 1681 3072 1420 2755
1102Q 1159 2438 1159 1844
1103L 1159 0
1104L 581 0
1105L 581 3500
1106L 1159 3500
1107L 1159 2956
1108Q 1341 3275 1631 3429
1109Q 1922 3584 2338 3584
1110Q 2397 3584 2469 3576
1111Q 2541 3569 2628 3553
1112L 2631 2963
1113z
1114" transform="scale(0.015625)"/>
1115 <path id="DejaVuSans-d7" d="M 4488 3438
1116L 3059 2003
1117L 4488 575
1118L 4116 197
1119L 2681 1631
1120L 1247 197
1121L 878 575
1122L 2303 2003
1123L 878 3438
1124L 1247 3816
1125L 2681 2381
1126L 4116 3816
1127L 4488 3438
1128z
1129" transform="scale(0.015625)"/>
1130 <path id="DejaVuSans-2f" d="M 1625 4666
1131L 2156 4666
1132L 531 -594
1133L 0 -594
1134L 1625 4666
1135z
1136" transform="scale(0.015625)"/>
1137 </defs>
1138 <use xlink:href="#DejaVuSans-6f"/>
1139 <use xlink:href="#DejaVuSans-72" transform="translate(61.181641 0)"/>
1140 <use xlink:href="#DejaVuSans-20" transform="translate(102.294922 0)"/>
1141 <use xlink:href="#DejaVuSans-32" transform="translate(134.082031 0)"/>
1142 <use xlink:href="#DejaVuSans-d7" transform="translate(197.705078 0)"/>
1143 <use xlink:href="#DejaVuSans-34" transform="translate(281.494141 0)"/>
1144 <use xlink:href="#DejaVuSans-2f" transform="translate(345.117188 0)"/>
1145 <use xlink:href="#DejaVuSans-30" transform="translate(378.808594 0)"/>
1146 </g>
1147 </g>
1148 <g id="text_8">
1149 <!-- DC -->
1150 <g transform="translate(372.722378 65.561386) scale(0.09 -0.09)">
1151 <defs>
1152 <path id="DejaVuSans-44" d="M 1259 4147
1153L 1259 519
1154L 2022 519
1155Q 2988 519 3436 956
1156Q 3884 1394 3884 2338
1157Q 3884 3275 3436 3711
1158Q 2988 4147 2022 4147
1159L 1259 4147
1160z
1161M 628 4666
1162L 1925 4666
1163Q 3281 4666 3915 4102
1164Q 4550 3538 4550 2338
1165Q 4550 1131 3912 565
1166Q 3275 0 1925 0
1167L 628 0
1168L 628 4666
1169z
1170" transform="scale(0.015625)"/>
1171 </defs>
1172 <use xlink:href="#DejaVuSans-44"/>
1173 <use xlink:href="#DejaVuSans-43" transform="translate(77.001953 0)"/>
1174 </g>
1175 <!-- BUSBAR -->
1176 <g transform="translate(360.799487 74.271698) scale(0.09 -0.09)">
1177 <defs>
1178 <path id="DejaVuSans-55" d="M 556 4666
1179L 1191 4666
1180L 1191 1831
1181Q 1191 1081 1462 751
1182Q 1734 422 2344 422
1183Q 2950 422 3222 751
1184Q 3494 1081 3494 1831
1185L 3494 4666
1186L 4128 4666
1187L 4128 1753
1188Q 4128 841 3676 375
1189Q 3225 -91 2344 -91
1190Q 1459 -91 1007 375
1191Q 556 841 556 1753
1192L 556 4666
1193z
1194" transform="scale(0.015625)"/>
1195 <path id="DejaVuSans-53" d="M 3425 4513
1196L 3425 3897
1197Q 3066 4069 2747 4153
1198Q 2428 4238 2131 4238
1199Q 1616 4238 1336 4038
1200Q 1056 3838 1056 3469
1201Q 1056 3159 1242 3001
1202Q 1428 2844 1947 2747
1203L 2328 2669
1204Q 3034 2534 3370 2195
1205Q 3706 1856 3706 1288
1206Q 3706 609 3251 259
1207Q 2797 -91 1919 -91
1208Q 1588 -91 1214 -16
1209Q 841 59 441 206
1210L 441 856
1211Q 825 641 1194 531
1212Q 1563 422 1919 422
1213Q 2459 422 2753 634
1214Q 3047 847 3047 1241
1215Q 3047 1584 2836 1778
1216Q 2625 1972 2144 2069
1217L 1759 2144
1218Q 1053 2284 737 2584
1219Q 422 2884 422 3419
1220Q 422 4038 858 4394
1221Q 1294 4750 2059 4750
1222Q 2388 4750 2728 4690
1223Q 3069 4631 3425 4513
1224z
1225" transform="scale(0.015625)"/>
1226 <path id="DejaVuSans-52" d="M 2841 2188
1227Q 3044 2119 3236 1894
1228Q 3428 1669 3622 1275
1229L 4263 0
1230L 3584 0
1231L 2988 1197
1232Q 2756 1666 2539 1819
1233Q 2322 1972 1947 1972
1234L 1259 1972
1235L 1259 0
1236L 628 0
1237L 628 4666
1238L 2053 4666
1239Q 2853 4666 3247 4331
1240Q 3641 3997 3641 3322
1241Q 3641 2881 3436 2590
1242Q 3231 2300 2841 2188
1243z
1244M 1259 4147
1245L 1259 2491
1246L 2053 2491
1247Q 2509 2491 2742 2702
1248Q 2975 2913 2975 3322
1249Q 2975 3731 2742 3939
1250Q 2509 4147 2053 4147
1251L 1259 4147
1252z
1253" transform="scale(0.015625)"/>
1254 </defs>
1255 <use xlink:href="#DejaVuSans-42"/>
1256 <use xlink:href="#DejaVuSans-55" transform="translate(68.603516 0)"/>
1257 <use xlink:href="#DejaVuSans-53" transform="translate(141.796875 0)"/>
1258 <use xlink:href="#DejaVuSans-42" transform="translate(205.273438 0)"/>
1259 <use xlink:href="#DejaVuSans-41" transform="translate(273.876953 0)"/>
1260 <use xlink:href="#DejaVuSans-52" transform="translate(342.285156 0)"/>
1261 </g>
1262 <!-- 250A -->
1263 <g transform="translate(367.661987 82.982011) scale(0.09 -0.09)">
1264 <use xlink:href="#DejaVuSans-32"/>
1265 <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
1266 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1267 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1268 </g>
1269 </g>
1270 <g id="text_9">
1271 <!-- 175A -->
1272 <g transform="translate(464.21664 106.002012) scale(0.08 -0.08)">
1273 <defs>
1274 <path id="DejaVuSans-37" d="M 525 4666
1275L 3525 4666
1276L 3525 4397
1277L 1831 0
1278L 1172 0
1279L 2766 4134
1280L 525 4134
1281L 525 4666
1282z
1283" transform="scale(0.015625)"/>
1284 </defs>
1285 <use xlink:href="#DejaVuSans-31"/>
1286 <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
1287 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
1288 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1289 </g>
1290 <!-- Class-T -->
1291 <g transform="translate(460.543515 113.744512) scale(0.08 -0.08)">
1292 <defs>
1293 <path id="DejaVuSans-2d" d="M 313 2009
1294L 1997 2009
1295L 1997 1497
1296L 313 1497
1297L 313 2009
1298z
1299" transform="scale(0.015625)"/>
1300 </defs>
1301 <use xlink:href="#DejaVuSans-43"/>
1302 <use xlink:href="#DejaVuSans-6c" transform="translate(69.824219 0)"/>
1303 <use xlink:href="#DejaVuSans-61" transform="translate(97.607422 0)"/>
1304 <use xlink:href="#DejaVuSans-73" transform="translate(158.886719 0)"/>
1305 <use xlink:href="#DejaVuSans-73" transform="translate(210.986328 0)"/>
1306 <use xlink:href="#DejaVuSans-2d" transform="translate(263.085938 0)"/>
1307 <use xlink:href="#DejaVuSans-54" transform="translate(290.044922 0)"/>
1308 </g>
1309 </g>
1310 <g id="patch_6">
1311 <path d="M 518.44263 132.30312
1312C 519.586605 132.30312 520.68388 131.848614 521.492792 131.039702
1313C 522.301705 130.230789 522.756211 129.133514 522.756211 127.989539
1314C 522.756211 126.845564 522.301705 125.74829 521.492792 124.939377
1315C 520.68388 124.130464 519.586605 123.675958 518.44263 123.675958
1316C 517.298655 123.675958 516.20138 124.130464 515.392468 124.939377
1317C 514.583555 125.74829 514.129049 126.845564 514.129049 127.989539
1318C 514.129049 129.133514 514.583555 130.230789 515.392468 131.039702
1319C 516.20138 131.848614 517.298655 132.30312 518.44263 132.30312
1320z
1321" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1322 </g>
1323 <g id="patch_7">
1324 <path d="M 545.761976 132.30312
1325C 546.905951 132.30312 548.003226 131.848614 548.812139 131.039702
1326C 549.621051 130.230789 550.075557 129.133514 550.075557 127.989539
1327C 550.075557 126.845564 549.621051 125.74829 548.812139 124.939377
1328C 548.003226 124.130464 546.905951 123.675958 545.761976 123.675958
1329C 544.618001 123.675958 543.520726 124.130464 542.711814 124.939377
1330C 541.902901 125.74829 541.448395 126.845564 541.448395 127.989539
1331C 541.448395 129.133514 541.902901 130.230789 542.711814 131.039702
1332C 543.520726 131.848614 544.618001 132.30312 545.761976 132.30312
1333z
1334" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1335 </g>
1336 <g id="patch_8">
1337 <path d="M 518.44263 168.249629
1338C 519.586605 168.249629 520.68388 167.795122 521.492792 166.98621
1339C 522.301705 166.177297 522.756211 165.080023 522.756211 163.936048
1340C 522.756211 162.792073 522.301705 161.694798 521.492792 160.885885
1341C 520.68388 160.076973 519.586605 159.622467 518.44263 159.622467
1342C 517.298655 159.622467 516.20138 160.076973 515.392468 160.885885
1343C 514.583555 161.694798 514.129049 162.792073 514.129049 163.936048
1344C 514.129049 165.080023 514.583555 166.177297 515.392468 166.98621
1345C 516.20138 167.795122 517.298655 168.249629 518.44263 168.249629
1346z
1347" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1348 </g>
1349 <g id="patch_9">
1350 <path d="M 545.761976 168.249629
1351C 546.905951 168.249629 548.003226 167.795122 548.812139 166.98621
1352C 549.621051 166.177297 550.075557 165.080023 550.075557 163.936048
1353C 550.075557 162.792073 549.621051 161.694798 548.812139 160.885885
1354C 548.003226 160.076973 546.905951 159.622467 545.761976 159.622467
1355C 544.618001 159.622467 543.520726 160.076973 542.711814 160.885885
1356C 541.902901 161.694798 541.448395 162.792073 541.448395 163.936048
1357C 541.448395 165.080023 541.902901 166.177297 542.711814 166.98621
1358C 543.520726 167.795122 544.618001 168.249629 545.761976 168.249629
1359z
1360" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1361 </g>
1362 <g id="text_10">
1363 <!-- disc -->
1364 <g transform="translate(524.168553 177.923029) scale(0.08 -0.08)">
1365 <use xlink:href="#DejaVuSans-64"/>
1366 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1367 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1368 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1369 </g>
1370 </g>
1371 <g id="text_11">
1372 <!-- Docan S3 #1 -->
1373 <g transform="translate(541.811936 93.766198) scale(0.08 -0.08)">
1374 <defs>
1375 <path id="DejaVuSans-33" d="M 2597 2516
1376Q 3050 2419 3304 2112
1377Q 3559 1806 3559 1356
1378Q 3559 666 3084 287
1379Q 2609 -91 1734 -91
1380Q 1441 -91 1130 -33
1381Q 819 25 488 141
1382L 488 750
1383Q 750 597 1062 519
1384Q 1375 441 1716 441
1385Q 2309 441 2620 675
1386Q 2931 909 2931 1356
1387Q 2931 1769 2642 2001
1388Q 2353 2234 1838 2234
1389L 1294 2234
1390L 1294 2753
1391L 1863 2753
1392Q 2328 2753 2575 2939
1393Q 2822 3125 2822 3475
1394Q 2822 3834 2567 4026
1395Q 2313 4219 1838 4219
1396Q 1578 4219 1281 4162
1397Q 984 4106 628 3988
1398L 628 4550
1399Q 988 4650 1302 4700
1400Q 1616 4750 1894 4750
1401Q 2613 4750 3031 4423
1402Q 3450 4097 3450 3541
1403Q 3450 3153 3228 2886
1404Q 3006 2619 2597 2516
1405z
1406" transform="scale(0.015625)"/>
1407 <path id="DejaVuSans-23" d="M 3272 2816
1408L 2363 2816
1409L 2100 1772
1410L 3016 1772
1411L 3272 2816
1412z
1413M 2803 4594
1414L 2478 3297
1415L 3391 3297
1416L 3719 4594
1417L 4219 4594
1418L 3897 3297
1419L 4872 3297
1420L 4872 2816
1421L 3775 2816
1422L 3519 1772
1423L 4513 1772
1424L 4513 1294
1425L 3397 1294
1426L 3072 0
1427L 2572 0
1428L 2894 1294
1429L 1978 1294
1430L 1656 0
1431L 1153 0
1432L 1478 1294
1433L 494 1294
1434L 494 1772
1435L 1594 1772
1436L 1856 2816
1437L 850 2816
1438L 850 3297
1439L 1978 3297
1440L 2297 4594
1441L 2803 4594
1442z
1443" transform="scale(0.015625)"/>
1444 </defs>
1445 <use xlink:href="#DejaVuSans-44"/>
1446 <use xlink:href="#DejaVuSans-6f" transform="translate(77.001953 0)"/>
1447 <use xlink:href="#DejaVuSans-63" transform="translate(138.183594 0)"/>
1448 <use xlink:href="#DejaVuSans-61" transform="translate(193.164062 0)"/>
1449 <use xlink:href="#DejaVuSans-6e" transform="translate(254.443359 0)"/>
1450 <use xlink:href="#DejaVuSans-20" transform="translate(317.822266 0)"/>
1451 <use xlink:href="#DejaVuSans-53" transform="translate(349.609375 0)"/>
1452 <use xlink:href="#DejaVuSans-33" transform="translate(413.085938 0)"/>
1453 <use xlink:href="#DejaVuSans-20" transform="translate(476.708984 0)"/>
1454 <use xlink:href="#DejaVuSans-23" transform="translate(508.496094 0)"/>
1455 <use xlink:href="#DejaVuSans-31" transform="translate(592.285156 0)"/>
1456 </g>
1457 <!-- 51.2V·16.08kWh -->
1458 <g transform="translate(534.877561 101.508698) scale(0.08 -0.08)">
1459 <defs>
1460 <path id="DejaVuSans-2e" d="M 684 794
1461L 1344 794
1462L 1344 0
1463L 684 0
1464L 684 794
1465z
1466" transform="scale(0.015625)"/>
1467 <path id="DejaVuSans-b7" d="M 684 2619
1468L 1344 2619
1469L 1344 1825
1470L 684 1825
1471L 684 2619
1472z
1473" transform="scale(0.015625)"/>
1474 <path id="DejaVuSans-57" d="M 213 4666
1475L 850 4666
1476L 1831 722
1477L 2809 4666
1478L 3519 4666
1479L 4500 722
1480L 5478 4666
1481L 6119 4666
1482L 4947 0
1483L 4153 0
1484L 3169 4050
1485L 2175 0
1486L 1381 0
1487L 213 4666
1488z
1489" transform="scale(0.015625)"/>
1490 <path id="DejaVuSans-68" d="M 3513 2113
1491L 3513 0
1492L 2938 0
1493L 2938 2094
1494Q 2938 2591 2744 2837
1495Q 2550 3084 2163 3084
1496Q 1697 3084 1428 2787
1497Q 1159 2491 1159 1978
1498L 1159 0
1499L 581 0
1500L 581 4863
1501L 1159 4863
1502L 1159 2956
1503Q 1366 3272 1645 3428
1504Q 1925 3584 2291 3584
1505Q 2894 3584 3203 3211
1506Q 3513 2838 3513 2113
1507z
1508" transform="scale(0.015625)"/>
1509 </defs>
1510 <use xlink:href="#DejaVuSans-35"/>
1511 <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
1512 <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1513 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1514 <use xlink:href="#DejaVuSans-56" transform="translate(222.65625 0)"/>
1515 <use xlink:href="#DejaVuSans-b7" transform="translate(291.064453 0)"/>
1516 <use xlink:href="#DejaVuSans-31" transform="translate(322.851562 0)"/>
1517 <use xlink:href="#DejaVuSans-36" transform="translate(386.474609 0)"/>
1518 <use xlink:href="#DejaVuSans-2e" transform="translate(450.097656 0)"/>
1519 <use xlink:href="#DejaVuSans-30" transform="translate(481.884766 0)"/>
1520 <use xlink:href="#DejaVuSans-38" transform="translate(545.507812 0)"/>
1521 <use xlink:href="#DejaVuSans-6b" transform="translate(609.130859 0)"/>
1522 <use xlink:href="#DejaVuSans-57" transform="translate(667.041016 0)"/>
1523 <use xlink:href="#DejaVuSans-68" transform="translate(765.917969 0)"/>
1524 </g>
1525 <!-- 2/0Cu·0.235% -->
1526 <g transform="translate(539.760061 109.251198) scale(0.08 -0.08)">
1527 <defs>
1528 <path id="DejaVuSans-75" d="M 544 1381
1529L 544 3500
1530L 1119 3500
1531L 1119 1403
1532Q 1119 906 1312 657
1533Q 1506 409 1894 409
1534Q 2359 409 2629 706
1535Q 2900 1003 2900 1516
1536L 2900 3500
1537L 3475 3500
1538L 3475 0
1539L 2900 0
1540L 2900 538
1541Q 2691 219 2414 64
1542Q 2138 -91 1772 -91
1543Q 1169 -91 856 284
1544Q 544 659 544 1381
1545z
1546M 1991 3584
1547L 1991 3584
1548z
1549" transform="scale(0.015625)"/>
1550 <path id="DejaVuSans-25" d="M 4653 2053
1551Q 4381 2053 4226 1822
1552Q 4072 1591 4072 1178
1553Q 4072 772 4226 539
1554Q 4381 306 4653 306
1555Q 4919 306 5073 539
1556Q 5228 772 5228 1178
1557Q 5228 1588 5073 1820
1558Q 4919 2053 4653 2053
1559z
1560M 4653 2450
1561Q 5147 2450 5437 2106
1562Q 5728 1763 5728 1178
1563Q 5728 594 5436 251
1564Q 5144 -91 4653 -91
1565Q 4153 -91 3862 251
1566Q 3572 594 3572 1178
1567Q 3572 1766 3864 2108
1568Q 4156 2450 4653 2450
1569z
1570M 1428 4353
1571Q 1159 4353 1004 4120
1572Q 850 3888 850 3481
1573Q 850 3069 1003 2837
1574Q 1156 2606 1428 2606
1575Q 1700 2606 1854 2837
1576Q 2009 3069 2009 3481
1577Q 2009 3884 1853 4118
1578Q 1697 4353 1428 4353
1579z
1580M 4250 4750
1581L 4750 4750
1582L 1831 -91
1583L 1331 -91
1584L 4250 4750
1585z
1586M 1428 4750
1587Q 1922 4750 2215 4408
1588Q 2509 4066 2509 3481
1589Q 2509 2891 2217 2550
1590Q 1925 2209 1428 2209
1591Q 931 2209 642 2551
1592Q 353 2894 353 3481
1593Q 353 4063 643 4406
1594Q 934 4750 1428 4750
1595z
1596" transform="scale(0.015625)"/>
1597 </defs>
1598 <use xlink:href="#DejaVuSans-32"/>
1599 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
1600 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
1601 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
1602 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
1603 <use xlink:href="#DejaVuSans-b7" transform="translate(294.140625 0)"/>
1604 <use xlink:href="#DejaVuSans-30" transform="translate(325.927734 0)"/>
1605 <use xlink:href="#DejaVuSans-2e" transform="translate(389.550781 0)"/>
1606 <use xlink:href="#DejaVuSans-32" transform="translate(421.337891 0)"/>
1607 <use xlink:href="#DejaVuSans-33" transform="translate(484.960938 0)"/>
1608 <use xlink:href="#DejaVuSans-35" transform="translate(548.583984 0)"/>
1609 <use xlink:href="#DejaVuSans-25" transform="translate(612.207031 0)"/>
1610 </g>
1611 </g>
1612 <g id="text_12">
1613 <!-- 175A -->
1614 <g transform="translate(464.21664 185.084329) scale(0.08 -0.08)">
1615 <use xlink:href="#DejaVuSans-31"/>
1616 <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
1617 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
1618 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1619 </g>
1620 <!-- Class-T -->
1621 <g transform="translate(460.543515 192.826829) scale(0.08 -0.08)">
1622 <use xlink:href="#DejaVuSans-43"/>
1623 <use xlink:href="#DejaVuSans-6c" transform="translate(69.824219 0)"/>
1624 <use xlink:href="#DejaVuSans-61" transform="translate(97.607422 0)"/>
1625 <use xlink:href="#DejaVuSans-73" transform="translate(158.886719 0)"/>
1626 <use xlink:href="#DejaVuSans-73" transform="translate(210.986328 0)"/>
1627 <use xlink:href="#DejaVuSans-2d" transform="translate(263.085938 0)"/>
1628 <use xlink:href="#DejaVuSans-54" transform="translate(290.044922 0)"/>
1629 </g>
1630 </g>
1631 <g id="patch_10">
1632 <path d="M 518.44263 211.385438
1633C 519.586605 211.385438 520.68388 210.930932 521.492792 210.12202
1634C 522.301705 209.313107 522.756211 208.215832 522.756211 207.071857
1635C 522.756211 205.927882 522.301705 204.830608 521.492792 204.021695
1636C 520.68388 203.212782 519.586605 202.758276 518.44263 202.758276
1637C 517.298655 202.758276 516.20138 203.212782 515.392468 204.021695
1638C 514.583555 204.830608 514.129049 205.927882 514.129049 207.071857
1639C 514.129049 208.215832 514.583555 209.313107 515.392468 210.12202
1640C 516.20138 210.930932 517.298655 211.385438 518.44263 211.385438
1641z
1642" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1643 </g>
1644 <g id="patch_11">
1645 <path d="M 545.761976 211.385438
1646C 546.905951 211.385438 548.003226 210.930932 548.812139 210.12202
1647C 549.621051 209.313107 550.075557 208.215832 550.075557 207.071857
1648C 550.075557 205.927882 549.621051 204.830608 548.812139 204.021695
1649C 548.003226 203.212782 546.905951 202.758276 545.761976 202.758276
1650C 544.618001 202.758276 543.520726 203.212782 542.711814 204.021695
1651C 541.902901 204.830608 541.448395 205.927882 541.448395 207.071857
1652C 541.448395 208.215832 541.902901 209.313107 542.711814 210.12202
1653C 543.520726 210.930932 544.618001 211.385438 545.761976 211.385438
1654z
1655" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1656 </g>
1657 <g id="patch_12">
1658 <path d="M 518.44263 247.331947
1659C 519.586605 247.331947 520.68388 246.87744 521.492792 246.068528
1660C 522.301705 245.259615 522.756211 244.162341 522.756211 243.018366
1661C 522.756211 241.87439 522.301705 240.777116 521.492792 239.968203
1662C 520.68388 239.159291 519.586605 238.704785 518.44263 238.704785
1663C 517.298655 238.704785 516.20138 239.159291 515.392468 239.968203
1664C 514.583555 240.777116 514.129049 241.87439 514.129049 243.018366
1665C 514.129049 244.162341 514.583555 245.259615 515.392468 246.068528
1666C 516.20138 246.87744 517.298655 247.331947 518.44263 247.331947
1667z
1668" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1669 </g>
1670 <g id="patch_13">
1671 <path d="M 545.761976 247.331947
1672C 546.905951 247.331947 548.003226 246.87744 548.812139 246.068528
1673C 549.621051 245.259615 550.075557 244.162341 550.075557 243.018366
1674C 550.075557 241.87439 549.621051 240.777116 548.812139 239.968203
1675C 548.003226 239.159291 546.905951 238.704785 545.761976 238.704785
1676C 544.618001 238.704785 543.520726 239.159291 542.711814 239.968203
1677C 541.902901 240.777116 541.448395 241.87439 541.448395 243.018366
1678C 541.448395 244.162341 541.902901 245.259615 542.711814 246.068528
1679C 543.520726 246.87744 544.618001 247.331947 545.761976 247.331947
1680z
1681" clip-path="url(#pe57cfb5463)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1682 </g>
1683 <g id="text_13">
1684 <!-- disc -->
1685 <g transform="translate(524.168553 257.005347) scale(0.08 -0.08)">
1686 <use xlink:href="#DejaVuSans-64"/>
1687 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1688 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1689 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1690 </g>
1691 </g>
1692 <g id="text_14">
1693 <!-- Docan S3 #2 -->
1694 <g transform="translate(541.811936 172.848516) scale(0.08 -0.08)">
1695 <use xlink:href="#DejaVuSans-44"/>
1696 <use xlink:href="#DejaVuSans-6f" transform="translate(77.001953 0)"/>
1697 <use xlink:href="#DejaVuSans-63" transform="translate(138.183594 0)"/>
1698 <use xlink:href="#DejaVuSans-61" transform="translate(193.164062 0)"/>
1699 <use xlink:href="#DejaVuSans-6e" transform="translate(254.443359 0)"/>
1700 <use xlink:href="#DejaVuSans-20" transform="translate(317.822266 0)"/>
1701 <use xlink:href="#DejaVuSans-53" transform="translate(349.609375 0)"/>
1702 <use xlink:href="#DejaVuSans-33" transform="translate(413.085938 0)"/>
1703 <use xlink:href="#DejaVuSans-20" transform="translate(476.708984 0)"/>
1704 <use xlink:href="#DejaVuSans-23" transform="translate(508.496094 0)"/>
1705 <use xlink:href="#DejaVuSans-32" transform="translate(592.285156 0)"/>
1706 </g>
1707 <!-- 51.2V·16.08kWh -->
1708 <g transform="translate(534.877561 180.591016) scale(0.08 -0.08)">
1709 <use xlink:href="#DejaVuSans-35"/>
1710 <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
1711 <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1712 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1713 <use xlink:href="#DejaVuSans-56" transform="translate(222.65625 0)"/>
1714 <use xlink:href="#DejaVuSans-b7" transform="translate(291.064453 0)"/>
1715 <use xlink:href="#DejaVuSans-31" transform="translate(322.851562 0)"/>
1716 <use xlink:href="#DejaVuSans-36" transform="translate(386.474609 0)"/>
1717 <use xlink:href="#DejaVuSans-2e" transform="translate(450.097656 0)"/>
1718 <use xlink:href="#DejaVuSans-30" transform="translate(481.884766 0)"/>
1719 <use xlink:href="#DejaVuSans-38" transform="translate(545.507812 0)"/>
1720 <use xlink:href="#DejaVuSans-6b" transform="translate(609.130859 0)"/>
1721 <use xlink:href="#DejaVuSans-57" transform="translate(667.041016 0)"/>
1722 <use xlink:href="#DejaVuSans-68" transform="translate(765.917969 0)"/>
1723 </g>
1724 <!-- 2/0Cu·0.235% -->
1725 <g transform="translate(539.760061 188.333516) scale(0.08 -0.08)">
1726 <use xlink:href="#DejaVuSans-32"/>
1727 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
1728 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
1729 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
1730 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
1731 <use xlink:href="#DejaVuSans-b7" transform="translate(294.140625 0)"/>
1732 <use xlink:href="#DejaVuSans-30" transform="translate(325.927734 0)"/>
1733 <use xlink:href="#DejaVuSans-2e" transform="translate(389.550781 0)"/>
1734 <use xlink:href="#DejaVuSans-32" transform="translate(421.337891 0)"/>
1735 <use xlink:href="#DejaVuSans-33" transform="translate(484.960938 0)"/>
1736 <use xlink:href="#DejaVuSans-35" transform="translate(548.583984 0)"/>
1737 <use xlink:href="#DejaVuSans-25" transform="translate(612.207031 0)"/>
1738 </g>
1739 </g>
1740 <g id="text_15">
1741 <!-- − busbar return -->
1742 <g transform="translate(295.817657 256.286417) scale(0.08 -0.08)">
1743 <defs>
1744 <path id="DejaVuSans-2212" d="M 678 2272
1745L 4684 2272
1746L 4684 1741
1747L 678 1741
1748L 678 2272
1749z
1750" transform="scale(0.015625)"/>
1751 <path id="DejaVuSans-65" d="M 3597 1894
1752L 3597 1613
1753L 953 1613
1754Q 991 1019 1311 708
1755Q 1631 397 2203 397
1756Q 2534 397 2845 478
1757Q 3156 559 3463 722
1758L 3463 178
1759Q 3153 47 2828 -22
1760Q 2503 -91 2169 -91
1761Q 1331 -91 842 396
1762Q 353 884 353 1716
1763Q 353 2575 817 3079
1764Q 1281 3584 2069 3584
1765Q 2775 3584 3186 3129
1766Q 3597 2675 3597 1894
1767z
1768M 3022 2063
1769Q 3016 2534 2758 2815
1770Q 2500 3097 2075 3097
1771Q 1594 3097 1305 2825
1772Q 1016 2553 972 2059
1773L 3022 2063
1774z
1775" transform="scale(0.015625)"/>
1776 <path id="DejaVuSans-74" d="M 1172 4494
1777L 1172 3500
1778L 2356 3500
1779L 2356 3053
1780L 1172 3053
1781L 1172 1153
1782Q 1172 725 1289 603
1783Q 1406 481 1766 481
1784L 2356 481
1785L 2356 0
1786L 1766 0
1787Q 1100 0 847 248
1788Q 594 497 594 1153
1789L 594 3053
1790L 172 3053
1791L 172 3500
1792L 594 3500
1793L 594 4494
1794L 1172 4494
1795z
1796" transform="scale(0.015625)"/>
1797 </defs>
1798 <use xlink:href="#DejaVuSans-2212"/>
1799 <use xlink:href="#DejaVuSans-20" transform="translate(83.789062 0)"/>
1800 <use xlink:href="#DejaVuSans-20" transform="translate(115.576172 0)"/>
1801 <use xlink:href="#DejaVuSans-62" transform="translate(147.363281 0)"/>
1802 <use xlink:href="#DejaVuSans-75" transform="translate(210.839844 0)"/>
1803 <use xlink:href="#DejaVuSans-73" transform="translate(274.21875 0)"/>
1804 <use xlink:href="#DejaVuSans-62" transform="translate(326.318359 0)"/>
1805 <use xlink:href="#DejaVuSans-61" transform="translate(389.794922 0)"/>
1806 <use xlink:href="#DejaVuSans-72" transform="translate(451.074219 0)"/>
1807 <use xlink:href="#DejaVuSans-20" transform="translate(492.1875 0)"/>
1808 <use xlink:href="#DejaVuSans-72" transform="translate(523.974609 0)"/>
1809 <use xlink:href="#DejaVuSans-65" transform="translate(562.837891 0)"/>
1810 <use xlink:href="#DejaVuSans-74" transform="translate(624.361328 0)"/>
1811 <use xlink:href="#DejaVuSans-75" transform="translate(663.570312 0)"/>
1812 <use xlink:href="#DejaVuSans-72" transform="translate(726.949219 0)"/>
1813 <use xlink:href="#DejaVuSans-6e" transform="translate(766.3125 0)"/>
1814 </g>
1815 </g>
1816 <g id="text_16">
1817 <!-- JK-BMS master/slave → CAN → 18kPV (single link; confirm profile) -->
1818 <g transform="translate(175.884927 241.907814) scale(0.08 -0.08)">
1819 <defs>
1820 <path id="DejaVuSans-4a" d="M 628 4666
1821L 1259 4666
1822L 1259 325
1823Q 1259 -519 939 -900
1824Q 619 -1281 -91 -1281
1825L -331 -1281
1826L -331 -750
1827L -134 -750
1828Q 284 -750 456 -515
1829Q 628 -281 628 325
1830L 628 4666
1831z
1832" transform="scale(0.015625)"/>
1833 <path id="DejaVuSans-4b" d="M 628 4666
1834L 1259 4666
1835L 1259 2694
1836L 3353 4666
1837L 4166 4666
1838L 1850 2491
1839L 4331 0
1840L 3500 0
1841L 1259 2247
1842L 1259 0
1843L 628 0
1844L 628 4666
1845z
1846" transform="scale(0.015625)"/>
1847 <path id="DejaVuSans-76" d="M 191 3500
1848L 800 3500
1849L 1894 563
1850L 2988 3500
1851L 3597 3500
1852L 2284 0
1853L 1503 0
1854L 191 3500
1855z
1856" transform="scale(0.015625)"/>
1857 <path id="DejaVuSans-2192" d="M 5050 2147
1858L 5050 1866
1859L 3822 638
1860L 3447 1013
1861L 4175 1741
1862L 366 1741
1863L 366 2272
1864L 4175 2272
1865L 3447 3000
1866L 3822 3375
1867L 5050 2147
1868z
1869" transform="scale(0.015625)"/>
1870 <path id="DejaVuSans-28" d="M 1984 4856
1871Q 1566 4138 1362 3434
1872Q 1159 2731 1159 2009
1873Q 1159 1288 1364 580
1874Q 1569 -128 1984 -844
1875L 1484 -844
1876Q 1016 -109 783 600
1877Q 550 1309 550 2009
1878Q 550 2706 781 3412
1879Q 1013 4119 1484 4856
1880L 1984 4856
1881z
1882" transform="scale(0.015625)"/>
1883 <path id="DejaVuSans-67" d="M 2906 1791
1884Q 2906 2416 2648 2759
1885Q 2391 3103 1925 3103
1886Q 1463 3103 1205 2759
1887Q 947 2416 947 1791
1888Q 947 1169 1205 825
1889Q 1463 481 1925 481
1890Q 2391 481 2648 825
1891Q 2906 1169 2906 1791
1892z
1893M 3481 434
1894Q 3481 -459 3084 -895
1895Q 2688 -1331 1869 -1331
1896Q 1566 -1331 1297 -1286
1897Q 1028 -1241 775 -1147
1898L 775 -588
1899Q 1028 -725 1275 -790
1900Q 1522 -856 1778 -856
1901Q 2344 -856 2625 -561
1902Q 2906 -266 2906 331
1903L 2906 616
1904Q 2728 306 2450 153
1905Q 2172 0 1784 0
1906Q 1141 0 747 490
1907Q 353 981 353 1791
1908Q 353 2603 747 3093
1909Q 1141 3584 1784 3584
1910Q 2172 3584 2450 3431
1911Q 2728 3278 2906 2969
1912L 2906 3500
1913L 3481 3500
1914L 3481 434
1915z
1916" transform="scale(0.015625)"/>
1917 <path id="DejaVuSans-3b" d="M 750 3309
1918L 1409 3309
1919L 1409 2516
1920L 750 2516
1921L 750 3309
1922z
1923M 750 794
1924L 1409 794
1925L 1409 256
1926L 897 -744
1927L 494 -744
1928L 750 256
1929L 750 794
1930z
1931" transform="scale(0.015625)"/>
1932 <path id="DejaVuSans-66" d="M 2375 4863
1933L 2375 4384
1934L 1825 4384
1935Q 1516 4384 1395 4259
1936Q 1275 4134 1275 3809
1937L 1275 3500
1938L 2222 3500
1939L 2222 3053
1940L 1275 3053
1941L 1275 0
1942L 697 0
1943L 697 3053
1944L 147 3053
1945L 147 3500
1946L 697 3500
1947L 697 3744
1948Q 697 4328 969 4595
1949Q 1241 4863 1831 4863
1950L 2375 4863
1951z
1952" transform="scale(0.015625)"/>
1953 <path id="DejaVuSans-70" d="M 1159 525
1954L 1159 -1331
1955L 581 -1331
1956L 581 3500
1957L 1159 3500
1958L 1159 2969
1959Q 1341 3281 1617 3432
1960Q 1894 3584 2278 3584
1961Q 2916 3584 3314 3078
1962Q 3713 2572 3713 1747
1963Q 3713 922 3314 415
1964Q 2916 -91 2278 -91
1965Q 1894 -91 1617 61
1966Q 1341 213 1159 525
1967z
1968M 3116 1747
1969Q 3116 2381 2855 2742
1970Q 2594 3103 2138 3103
1971Q 1681 3103 1420 2742
1972Q 1159 2381 1159 1747
1973Q 1159 1113 1420 752
1974Q 1681 391 2138 391
1975Q 2594 391 2855 752
1976Q 3116 1113 3116 1747
1977z
1978" transform="scale(0.015625)"/>
1979 <path id="DejaVuSans-29" d="M 513 4856
1980L 1013 4856
1981Q 1481 4119 1714 3412
1982Q 1947 2706 1947 2009
1983Q 1947 1309 1714 600
1984Q 1481 -109 1013 -844
1985L 513 -844
1986Q 928 -128 1133 580
1987Q 1338 1288 1338 2009
1988Q 1338 2731 1133 3434
1989Q 928 4138 513 4856
1990z
1991" transform="scale(0.015625)"/>
1992 </defs>
1993 <use xlink:href="#DejaVuSans-4a"/>
1994 <use xlink:href="#DejaVuSans-4b" transform="translate(29.492188 0)"/>
1995 <use xlink:href="#DejaVuSans-2d" transform="translate(84.568359 0)"/>
1996 <use xlink:href="#DejaVuSans-42" transform="translate(117.027344 0)"/>
1997 <use xlink:href="#DejaVuSans-4d" transform="translate(185.630859 0)"/>
1998 <use xlink:href="#DejaVuSans-53" transform="translate(271.910156 0)"/>
1999 <use xlink:href="#DejaVuSans-20" transform="translate(335.386719 0)"/>
2000 <use xlink:href="#DejaVuSans-6d" transform="translate(367.173828 0)"/>
2001 <use xlink:href="#DejaVuSans-61" transform="translate(464.585938 0)"/>
2002 <use xlink:href="#DejaVuSans-73" transform="translate(525.865234 0)"/>
2003 <use xlink:href="#DejaVuSans-74" transform="translate(577.964844 0)"/>
2004 <use xlink:href="#DejaVuSans-65" transform="translate(617.173828 0)"/>
2005 <use xlink:href="#DejaVuSans-72" transform="translate(678.697266 0)"/>
2006 <use xlink:href="#DejaVuSans-2f" transform="translate(719.810547 0)"/>
2007 <use xlink:href="#DejaVuSans-73" transform="translate(753.501953 0)"/>
2008 <use xlink:href="#DejaVuSans-6c" transform="translate(805.601562 0)"/>
2009 <use xlink:href="#DejaVuSans-61" transform="translate(833.384766 0)"/>
2010 <use xlink:href="#DejaVuSans-76" transform="translate(894.664062 0)"/>
2011 <use xlink:href="#DejaVuSans-65" transform="translate(953.84375 0)"/>
2012 <use xlink:href="#DejaVuSans-20" transform="translate(1015.367188 0)"/>
2013 <use xlink:href="#DejaVuSans-2192" transform="translate(1047.154297 0)"/>
2014 <use xlink:href="#DejaVuSans-20" transform="translate(1130.943359 0)"/>
2015 <use xlink:href="#DejaVuSans-43" transform="translate(1162.730469 0)"/>
2016 <use xlink:href="#DejaVuSans-41" transform="translate(1232.554688 0)"/>
2017 <use xlink:href="#DejaVuSans-4e" transform="translate(1300.962891 0)"/>
2018 <use xlink:href="#DejaVuSans-20" transform="translate(1375.767578 0)"/>
2019 <use xlink:href="#DejaVuSans-2192" transform="translate(1407.554688 0)"/>
2020 <use xlink:href="#DejaVuSans-20" transform="translate(1491.34375 0)"/>
2021 <use xlink:href="#DejaVuSans-31" transform="translate(1523.130859 0)"/>
2022 <use xlink:href="#DejaVuSans-38" transform="translate(1586.753906 0)"/>
2023 <use xlink:href="#DejaVuSans-6b" transform="translate(1650.376953 0)"/>
2024 <use xlink:href="#DejaVuSans-50" transform="translate(1708.287109 0)"/>
2025 <use xlink:href="#DejaVuSans-56" transform="translate(1768.589844 0)"/>
2026 <use xlink:href="#DejaVuSans-20" transform="translate(1836.998047 0)"/>
2027 <use xlink:href="#DejaVuSans-28" transform="translate(1868.785156 0)"/>
2028 <use xlink:href="#DejaVuSans-73" transform="translate(1907.798828 0)"/>
2029 <use xlink:href="#DejaVuSans-69" transform="translate(1959.898438 0)"/>
2030 <use xlink:href="#DejaVuSans-6e" transform="translate(1987.681641 0)"/>
2031 <use xlink:href="#DejaVuSans-67" transform="translate(2051.060547 0)"/>
2032 <use xlink:href="#DejaVuSans-6c" transform="translate(2114.537109 0)"/>
2033 <use xlink:href="#DejaVuSans-65" transform="translate(2142.320312 0)"/>
2034 <use xlink:href="#DejaVuSans-20" transform="translate(2203.84375 0)"/>
2035 <use xlink:href="#DejaVuSans-6c" transform="translate(2235.630859 0)"/>
2036 <use xlink:href="#DejaVuSans-69" transform="translate(2263.414062 0)"/>
2037 <use xlink:href="#DejaVuSans-6e" transform="translate(2291.197266 0)"/>
2038 <use xlink:href="#DejaVuSans-6b" transform="translate(2354.576172 0)"/>
2039 <use xlink:href="#DejaVuSans-3b" transform="translate(2412.486328 0)"/>
2040 <use xlink:href="#DejaVuSans-20" transform="translate(2446.177734 0)"/>
2041 <use xlink:href="#DejaVuSans-63" transform="translate(2477.964844 0)"/>
2042 <use xlink:href="#DejaVuSans-6f" transform="translate(2532.945312 0)"/>
2043 <use xlink:href="#DejaVuSans-6e" transform="translate(2594.126953 0)"/>
2044 <use xlink:href="#DejaVuSans-66" transform="translate(2657.505859 0)"/>
2045 <use xlink:href="#DejaVuSans-69" transform="translate(2692.710938 0)"/>
2046 <use xlink:href="#DejaVuSans-72" transform="translate(2720.494141 0)"/>
2047 <use xlink:href="#DejaVuSans-6d" transform="translate(2759.857422 0)"/>
2048 <use xlink:href="#DejaVuSans-20" transform="translate(2857.269531 0)"/>
2049 <use xlink:href="#DejaVuSans-70" transform="translate(2889.056641 0)"/>
2050 <use xlink:href="#DejaVuSans-72" transform="translate(2952.533203 0)"/>
2051 <use xlink:href="#DejaVuSans-6f" transform="translate(2991.396484 0)"/>
2052 <use xlink:href="#DejaVuSans-66" transform="translate(3052.578125 0)"/>
2053 <use xlink:href="#DejaVuSans-69" transform="translate(3087.783203 0)"/>
2054 <use xlink:href="#DejaVuSans-6c" transform="translate(3115.566406 0)"/>
2055 <use xlink:href="#DejaVuSans-65" transform="translate(3143.349609 0)"/>
2056 <use xlink:href="#DejaVuSans-29" transform="translate(3204.873047 0)"/>
2057 </g>
2058 </g>
2059 <g id="text_17">
2060 <!-- FINAL-STATE BATTERY WIRING — 18kPV ↔ 2× Docan S3 bank -->
2061 <g transform="translate(121.065092 14.750575) scale(0.13 -0.13)">
2062 <defs>
2063 <path id="DejaVuSans-46" d="M 628 4666
2064L 3309 4666
2065L 3309 4134
2066L 1259 4134
2067L 1259 2759
2068L 3109 2759
2069L 3109 2228
2070L 1259 2228
2071L 1259 0
2072L 628 0
2073L 628 4666
2074z
2075" transform="scale(0.015625)"/>
2076 <path id="DejaVuSans-49" d="M 628 4666
2077L 1259 4666
2078L 1259 0
2079L 628 0
2080L 628 4666
2081z
2082" transform="scale(0.015625)"/>
2083 <path id="DejaVuSans-4c" d="M 628 4666
2084L 1259 4666
2085L 1259 531
2086L 3531 531
2087L 3531 0
2088L 628 0
2089L 628 4666
2090z
2091" transform="scale(0.015625)"/>
2092 <path id="DejaVuSans-59" d="M -13 4666
2093L 666 4666
2094L 1959 2747
2095L 3244 4666
2096L 3922 4666
2097L 2272 2222
2098L 2272 0
2099L 1638 0
2100L 1638 2222
2101L -13 4666
2102z
2103" transform="scale(0.015625)"/>
2104 <path id="DejaVuSans-2014" d="M 313 1978
2105L 6088 1978
2106L 6088 1528
2107L 313 1528
2108L 313 1978
2109z
2110" transform="scale(0.015625)"/>
2111 <path id="DejaVuSans-2194" d="M 313 1866
2112L 313 2147
2113L 1541 3375
2114L 1916 3000
2115L 1188 2272
2116L 4175 2272
2117L 3447 3000
2118L 3822 3375
2119L 5050 2147
2120L 5050 1866
2121L 3822 638
2122L 3447 1013
2123L 4175 1741
2124L 1188 1741
2125L 1916 1013
2126L 1541 638
2127L 313 1866
2128z
2129" transform="scale(0.015625)"/>
2130 </defs>
2131 <use xlink:href="#DejaVuSans-46"/>
2132 <use xlink:href="#DejaVuSans-49" transform="translate(57.519531 0)"/>
2133 <use xlink:href="#DejaVuSans-4e" transform="translate(87.011719 0)"/>
2134 <use xlink:href="#DejaVuSans-41" transform="translate(161.816406 0)"/>
2135 <use xlink:href="#DejaVuSans-4c" transform="translate(230.224609 0)"/>
2136 <use xlink:href="#DejaVuSans-2d" transform="translate(284.1875 0)"/>
2137 <use xlink:href="#DejaVuSans-53" transform="translate(320.271484 0)"/>
2138 <use xlink:href="#DejaVuSans-54" transform="translate(383.748047 0)"/>
2139 <use xlink:href="#DejaVuSans-41" transform="translate(437.082031 0)"/>
2140 <use xlink:href="#DejaVuSans-54" transform="translate(497.740234 0)"/>
2141 <use xlink:href="#DejaVuSans-45" transform="translate(558.824219 0)"/>
2142 <use xlink:href="#DejaVuSans-20" transform="translate(622.007812 0)"/>
2143 <use xlink:href="#DejaVuSans-42" transform="translate(653.794922 0)"/>
2144 <use xlink:href="#DejaVuSans-41" transform="translate(722.398438 0)"/>
2145 <use xlink:href="#DejaVuSans-54" transform="translate(783.056641 0)"/>
2146 <use xlink:href="#DejaVuSans-54" transform="translate(842.390625 0)"/>
2147 <use xlink:href="#DejaVuSans-45" transform="translate(903.474609 0)"/>
2148 <use xlink:href="#DejaVuSans-52" transform="translate(966.658203 0)"/>
2149 <use xlink:href="#DejaVuSans-59" transform="translate(1029.765625 0)"/>
2150 <use xlink:href="#DejaVuSans-20" transform="translate(1090.849609 0)"/>
2151 <use xlink:href="#DejaVuSans-57" transform="translate(1122.636719 0)"/>
2152 <use xlink:href="#DejaVuSans-49" transform="translate(1221.513672 0)"/>
2153 <use xlink:href="#DejaVuSans-52" transform="translate(1251.005859 0)"/>
2154 <use xlink:href="#DejaVuSans-49" transform="translate(1320.488281 0)"/>
2155 <use xlink:href="#DejaVuSans-4e" transform="translate(1349.980469 0)"/>
2156 <use xlink:href="#DejaVuSans-47" transform="translate(1424.785156 0)"/>
2157 <use xlink:href="#DejaVuSans-20" transform="translate(1502.275391 0)"/>
2158 <use xlink:href="#DejaVuSans-2014" transform="translate(1534.0625 0)"/>
2159 <use xlink:href="#DejaVuSans-20" transform="translate(1634.0625 0)"/>
2160 <use xlink:href="#DejaVuSans-31" transform="translate(1665.849609 0)"/>
2161 <use xlink:href="#DejaVuSans-38" transform="translate(1729.472656 0)"/>
2162 <use xlink:href="#DejaVuSans-6b" transform="translate(1793.095703 0)"/>
2163 <use xlink:href="#DejaVuSans-50" transform="translate(1851.005859 0)"/>
2164 <use xlink:href="#DejaVuSans-56" transform="translate(1911.308594 0)"/>
2165 <use xlink:href="#DejaVuSans-20" transform="translate(1979.716797 0)"/>
2166 <use xlink:href="#DejaVuSans-2194" transform="translate(2011.503906 0)"/>
2167 <use xlink:href="#DejaVuSans-20" transform="translate(2095.292969 0)"/>
2168 <use xlink:href="#DejaVuSans-32" transform="translate(2127.080078 0)"/>
2169 <use xlink:href="#DejaVuSans-d7" transform="translate(2190.703125 0)"/>
2170 <use xlink:href="#DejaVuSans-20" transform="translate(2274.492188 0)"/>
2171 <use xlink:href="#DejaVuSans-44" transform="translate(2306.279297 0)"/>
2172 <use xlink:href="#DejaVuSans-6f" transform="translate(2383.28125 0)"/>
2173 <use xlink:href="#DejaVuSans-63" transform="translate(2444.462891 0)"/>
2174 <use xlink:href="#DejaVuSans-61" transform="translate(2499.443359 0)"/>
2175 <use xlink:href="#DejaVuSans-6e" transform="translate(2560.722656 0)"/>
2176 <use xlink:href="#DejaVuSans-20" transform="translate(2624.101562 0)"/>
2177 <use xlink:href="#DejaVuSans-53" transform="translate(2655.888672 0)"/>
2178 <use xlink:href="#DejaVuSans-33" transform="translate(2719.365234 0)"/>
2179 <use xlink:href="#DejaVuSans-20" transform="translate(2782.988281 0)"/>
2180 <use xlink:href="#DejaVuSans-62" transform="translate(2814.775391 0)"/>
2181 <use xlink:href="#DejaVuSans-61" transform="translate(2878.251953 0)"/>
2182 <use xlink:href="#DejaVuSans-6e" transform="translate(2939.53125 0)"/>
2183 <use xlink:href="#DejaVuSans-6b" transform="translate(3002.910156 0)"/>
2184 </g>
2185 </g>
2186 <g id="text_18">
2187 <!-- Bank discharge @12kW = 249A (inverter cap 250A) → 125A/pack · binding JK-BMS OCP trip (300s) 150A (25A headroom) · 0.397C · 25.73kWh usable -->
2188 <g transform="translate(0 275.780397) scale(0.08 -0.08)">
2189 <defs>
2190 <path id="DejaVuSans-40" d="M 2381 1678
2191Q 2381 1231 2603 976
2192Q 2825 722 3213 722
2193Q 3597 722 3817 978
2194Q 4038 1234 4038 1678
2195Q 4038 2116 3813 2373
2196Q 3588 2631 3206 2631
2197Q 2828 2631 2604 2375
2198Q 2381 2119 2381 1678
2199z
2200M 4084 744
2201Q 3897 503 3655 389
2202Q 3413 275 3091 275
2203Q 2553 275 2217 664
2204Q 1881 1053 1881 1678
2205Q 1881 2303 2218 2693
2206Q 2556 3084 3091 3084
2207Q 3413 3084 3656 2967
2208Q 3900 2850 4084 2613
2209L 4084 3022
2210L 4531 3022
2211L 4531 722
2212Q 4988 791 5245 1139
2213Q 5503 1488 5503 2041
2214Q 5503 2375 5404 2669
2215Q 5306 2963 5106 3213
2216Q 4781 3622 4314 3839
2217Q 3847 4056 3297 4056
2218Q 2913 4056 2559 3954
2219Q 2206 3853 1906 3653
2220Q 1416 3334 1139 2817
2221Q 863 2300 863 1697
2222Q 863 1200 1042 765
2223Q 1222 331 1563 0
2224Q 1891 -325 2322 -495
2225Q 2753 -666 3244 -666
2226Q 3647 -666 4036 -530
2227Q 4425 -394 4750 -141
2228L 5031 -488
2229Q 4641 -791 4180 -952
2230Q 3719 -1113 3244 -1113
2231Q 2666 -1113 2153 -908
2232Q 1641 -703 1241 -313
2233Q 841 78 631 592
2234Q 422 1106 422 1697
2235Q 422 2266 634 2781
2236Q 847 3297 1241 3688
2237Q 1644 4084 2172 4295
2238Q 2700 4506 3291 4506
2239Q 3953 4506 4520 4234
2240Q 5088 3963 5472 3463
2241Q 5706 3156 5829 2797
2242Q 5953 2438 5953 2053
2243Q 5953 1231 5456 756
2244Q 4959 281 4084 263
2245L 4084 744
2246z
2247" transform="scale(0.015625)"/>
2248 <path id="DejaVuSans-3d" d="M 678 2906
2249L 4684 2906
2250L 4684 2381
2251L 678 2381
2252L 678 2906
2253z
2254M 678 1631
2255L 4684 1631
2256L 4684 1100
2257L 678 1100
2258L 678 1631
2259z
2260" transform="scale(0.015625)"/>
2261 <path id="DejaVuSans-39" d="M 703 97
2262L 703 672
2263Q 941 559 1184 500
2264Q 1428 441 1663 441
2265Q 2288 441 2617 861
2266Q 2947 1281 2994 2138
2267Q 2813 1869 2534 1725
2268Q 2256 1581 1919 1581
2269Q 1219 1581 811 2004
2270Q 403 2428 403 3163
2271Q 403 3881 828 4315
2272Q 1253 4750 1959 4750
2273Q 2769 4750 3195 4129
2274Q 3622 3509 3622 2328
2275Q 3622 1225 3098 567
2276Q 2575 -91 1691 -91
2277Q 1453 -91 1209 -44
2278Q 966 3 703 97
2279z
2280M 1959 2075
2281Q 2384 2075 2632 2365
2282Q 2881 2656 2881 3163
2283Q 2881 3666 2632 3958
2284Q 2384 4250 1959 4250
2285Q 1534 4250 1286 3958
2286Q 1038 3666 1038 3163
2287Q 1038 2656 1286 2365
2288Q 1534 2075 1959 2075
2289z
2290" transform="scale(0.015625)"/>
2291 </defs>
2292 <use xlink:href="#DejaVuSans-42"/>
2293 <use xlink:href="#DejaVuSans-61" transform="translate(68.603516 0)"/>
2294 <use xlink:href="#DejaVuSans-6e" transform="translate(129.882812 0)"/>
2295 <use xlink:href="#DejaVuSans-6b" transform="translate(193.261719 0)"/>
2296 <use xlink:href="#DejaVuSans-20" transform="translate(251.171875 0)"/>
2297 <use xlink:href="#DejaVuSans-64" transform="translate(282.958984 0)"/>
2298 <use xlink:href="#DejaVuSans-69" transform="translate(346.435547 0)"/>
2299 <use xlink:href="#DejaVuSans-73" transform="translate(374.21875 0)"/>
2300 <use xlink:href="#DejaVuSans-63" transform="translate(426.318359 0)"/>
2301 <use xlink:href="#DejaVuSans-68" transform="translate(481.298828 0)"/>
2302 <use xlink:href="#DejaVuSans-61" transform="translate(544.677734 0)"/>
2303 <use xlink:href="#DejaVuSans-72" transform="translate(605.957031 0)"/>
2304 <use xlink:href="#DejaVuSans-67" transform="translate(645.320312 0)"/>
2305 <use xlink:href="#DejaVuSans-65" transform="translate(708.796875 0)"/>
2306 <use xlink:href="#DejaVuSans-20" transform="translate(770.320312 0)"/>
2307 <use xlink:href="#DejaVuSans-40" transform="translate(802.107422 0)"/>
2308 <use xlink:href="#DejaVuSans-31" transform="translate(902.107422 0)"/>
2309 <use xlink:href="#DejaVuSans-32" transform="translate(965.730469 0)"/>
2310 <use xlink:href="#DejaVuSans-6b" transform="translate(1029.353516 0)"/>
2311 <use xlink:href="#DejaVuSans-57" transform="translate(1087.263672 0)"/>
2312 <use xlink:href="#DejaVuSans-20" transform="translate(1186.140625 0)"/>
2313 <use xlink:href="#DejaVuSans-3d" transform="translate(1217.927734 0)"/>
2314 <use xlink:href="#DejaVuSans-20" transform="translate(1301.716797 0)"/>
2315 <use xlink:href="#DejaVuSans-32" transform="translate(1333.503906 0)"/>
2316 <use xlink:href="#DejaVuSans-34" transform="translate(1397.126953 0)"/>
2317 <use xlink:href="#DejaVuSans-39" transform="translate(1460.75 0)"/>
2318 <use xlink:href="#DejaVuSans-41" transform="translate(1524.373047 0)"/>
2319 <use xlink:href="#DejaVuSans-20" transform="translate(1592.78125 0)"/>
2320 <use xlink:href="#DejaVuSans-28" transform="translate(1624.568359 0)"/>
2321 <use xlink:href="#DejaVuSans-69" transform="translate(1663.582031 0)"/>
2322 <use xlink:href="#DejaVuSans-6e" transform="translate(1691.365234 0)"/>
2323 <use xlink:href="#DejaVuSans-76" transform="translate(1754.744141 0)"/>
2324 <use xlink:href="#DejaVuSans-65" transform="translate(1813.923828 0)"/>
2325 <use xlink:href="#DejaVuSans-72" transform="translate(1875.447266 0)"/>
2326 <use xlink:href="#DejaVuSans-74" transform="translate(1916.560547 0)"/>
2327 <use xlink:href="#DejaVuSans-65" transform="translate(1955.769531 0)"/>
2328 <use xlink:href="#DejaVuSans-72" transform="translate(2017.292969 0)"/>
2329 <use xlink:href="#DejaVuSans-20" transform="translate(2058.40625 0)"/>
2330 <use xlink:href="#DejaVuSans-63" transform="translate(2090.193359 0)"/>
2331 <use xlink:href="#DejaVuSans-61" transform="translate(2145.173828 0)"/>
2332 <use xlink:href="#DejaVuSans-70" transform="translate(2206.453125 0)"/>
2333 <use xlink:href="#DejaVuSans-20" transform="translate(2269.929688 0)"/>
2334 <use xlink:href="#DejaVuSans-32" transform="translate(2301.716797 0)"/>
2335 <use xlink:href="#DejaVuSans-35" transform="translate(2365.339844 0)"/>
2336 <use xlink:href="#DejaVuSans-30" transform="translate(2428.962891 0)"/>
2337 <use xlink:href="#DejaVuSans-41" transform="translate(2492.585938 0)"/>
2338 <use xlink:href="#DejaVuSans-29" transform="translate(2560.994141 0)"/>
2339 <use xlink:href="#DejaVuSans-20" transform="translate(2600.007812 0)"/>
2340 <use xlink:href="#DejaVuSans-2192" transform="translate(2631.794922 0)"/>
2341 <use xlink:href="#DejaVuSans-20" transform="translate(2715.583984 0)"/>
2342 <use xlink:href="#DejaVuSans-31" transform="translate(2747.371094 0)"/>
2343 <use xlink:href="#DejaVuSans-32" transform="translate(2810.994141 0)"/>
2344 <use xlink:href="#DejaVuSans-35" transform="translate(2874.617188 0)"/>
2345 <use xlink:href="#DejaVuSans-41" transform="translate(2938.240234 0)"/>
2346 <use xlink:href="#DejaVuSans-2f" transform="translate(3006.648438 0)"/>
2347 <use xlink:href="#DejaVuSans-70" transform="translate(3040.339844 0)"/>
2348 <use xlink:href="#DejaVuSans-61" transform="translate(3103.816406 0)"/>
2349 <use xlink:href="#DejaVuSans-63" transform="translate(3165.095703 0)"/>
2350 <use xlink:href="#DejaVuSans-6b" transform="translate(3220.076172 0)"/>
2351 <use xlink:href="#DejaVuSans-20" transform="translate(3277.986328 0)"/>
2352 <use xlink:href="#DejaVuSans-b7" transform="translate(3309.773438 0)"/>
2353 <use xlink:href="#DejaVuSans-20" transform="translate(3341.560547 0)"/>
2354 <use xlink:href="#DejaVuSans-62" transform="translate(3373.347656 0)"/>
2355 <use xlink:href="#DejaVuSans-69" transform="translate(3436.824219 0)"/>
2356 <use xlink:href="#DejaVuSans-6e" transform="translate(3464.607422 0)"/>
2357 <use xlink:href="#DejaVuSans-64" transform="translate(3527.986328 0)"/>
2358 <use xlink:href="#DejaVuSans-69" transform="translate(3591.462891 0)"/>
2359 <use xlink:href="#DejaVuSans-6e" transform="translate(3619.246094 0)"/>
2360 <use xlink:href="#DejaVuSans-67" transform="translate(3682.625 0)"/>
2361 <use xlink:href="#DejaVuSans-20" transform="translate(3746.101562 0)"/>
2362 <use xlink:href="#DejaVuSans-4a" transform="translate(3777.888672 0)"/>
2363 <use xlink:href="#DejaVuSans-4b" transform="translate(3807.380859 0)"/>
2364 <use xlink:href="#DejaVuSans-2d" transform="translate(3862.457031 0)"/>
2365 <use xlink:href="#DejaVuSans-42" transform="translate(3894.916016 0)"/>
2366 <use xlink:href="#DejaVuSans-4d" transform="translate(3963.519531 0)"/>
2367 <use xlink:href="#DejaVuSans-53" transform="translate(4049.798828 0)"/>
2368 <use xlink:href="#DejaVuSans-20" transform="translate(4113.275391 0)"/>
2369 <use xlink:href="#DejaVuSans-4f" transform="translate(4145.0625 0)"/>
2370 <use xlink:href="#DejaVuSans-43" transform="translate(4223.773438 0)"/>
2371 <use xlink:href="#DejaVuSans-50" transform="translate(4293.597656 0)"/>
2372 <use xlink:href="#DejaVuSans-20" transform="translate(4353.900391 0)"/>
2373 <use xlink:href="#DejaVuSans-74" transform="translate(4385.6875 0)"/>
2374 <use xlink:href="#DejaVuSans-72" transform="translate(4424.896484 0)"/>
2375 <use xlink:href="#DejaVuSans-69" transform="translate(4466.009766 0)"/>
2376 <use xlink:href="#DejaVuSans-70" transform="translate(4493.792969 0)"/>
2377 <use xlink:href="#DejaVuSans-20" transform="translate(4557.269531 0)"/>
2378 <use xlink:href="#DejaVuSans-28" transform="translate(4589.056641 0)"/>
2379 <use xlink:href="#DejaVuSans-33" transform="translate(4628.070312 0)"/>
2380 <use xlink:href="#DejaVuSans-30" transform="translate(4691.693359 0)"/>
2381 <use xlink:href="#DejaVuSans-30" transform="translate(4755.316406 0)"/>
2382 <use xlink:href="#DejaVuSans-73" transform="translate(4818.939453 0)"/>
2383 <use xlink:href="#DejaVuSans-29" transform="translate(4871.039062 0)"/>
2384 <use xlink:href="#DejaVuSans-20" transform="translate(4910.052734 0)"/>
2385 <use xlink:href="#DejaVuSans-31" transform="translate(4941.839844 0)"/>
2386 <use xlink:href="#DejaVuSans-35" transform="translate(5005.462891 0)"/>
2387 <use xlink:href="#DejaVuSans-30" transform="translate(5069.085938 0)"/>
2388 <use xlink:href="#DejaVuSans-41" transform="translate(5132.708984 0)"/>
2389 <use xlink:href="#DejaVuSans-20" transform="translate(5201.117188 0)"/>
2390 <use xlink:href="#DejaVuSans-28" transform="translate(5232.904297 0)"/>
2391 <use xlink:href="#DejaVuSans-32" transform="translate(5271.917969 0)"/>
2392 <use xlink:href="#DejaVuSans-35" transform="translate(5335.541016 0)"/>
2393 <use xlink:href="#DejaVuSans-41" transform="translate(5399.164062 0)"/>
2394 <use xlink:href="#DejaVuSans-20" transform="translate(5467.572266 0)"/>
2395 <use xlink:href="#DejaVuSans-68" transform="translate(5499.359375 0)"/>
2396 <use xlink:href="#DejaVuSans-65" transform="translate(5562.738281 0)"/>
2397 <use xlink:href="#DejaVuSans-61" transform="translate(5624.261719 0)"/>
2398 <use xlink:href="#DejaVuSans-64" transform="translate(5685.541016 0)"/>
2399 <use xlink:href="#DejaVuSans-72" transform="translate(5749.017578 0)"/>
2400 <use xlink:href="#DejaVuSans-6f" transform="translate(5787.880859 0)"/>
2401 <use xlink:href="#DejaVuSans-6f" transform="translate(5849.0625 0)"/>
2402 <use xlink:href="#DejaVuSans-6d" transform="translate(5910.244141 0)"/>
2403 <use xlink:href="#DejaVuSans-29" transform="translate(6007.65625 0)"/>
2404 <use xlink:href="#DejaVuSans-20" transform="translate(6046.669922 0)"/>
2405 <use xlink:href="#DejaVuSans-b7" transform="translate(6078.457031 0)"/>
2406 <use xlink:href="#DejaVuSans-20" transform="translate(6110.244141 0)"/>
2407 <use xlink:href="#DejaVuSans-30" transform="translate(6142.03125 0)"/>
2408 <use xlink:href="#DejaVuSans-2e" transform="translate(6205.654297 0)"/>
2409 <use xlink:href="#DejaVuSans-33" transform="translate(6237.441406 0)"/>
2410 <use xlink:href="#DejaVuSans-39" transform="translate(6301.064453 0)"/>
2411 <use xlink:href="#DejaVuSans-37" transform="translate(6364.6875 0)"/>
2412 <use xlink:href="#DejaVuSans-43" transform="translate(6428.310547 0)"/>
2413 <use xlink:href="#DejaVuSans-20" transform="translate(6498.134766 0)"/>
2414 <use xlink:href="#DejaVuSans-b7" transform="translate(6529.921875 0)"/>
2415 <use xlink:href="#DejaVuSans-20" transform="translate(6561.708984 0)"/>
2416 <use xlink:href="#DejaVuSans-32" transform="translate(6593.496094 0)"/>
2417 <use xlink:href="#DejaVuSans-35" transform="translate(6657.119141 0)"/>
2418 <use xlink:href="#DejaVuSans-2e" transform="translate(6720.742188 0)"/>
2419 <use xlink:href="#DejaVuSans-37" transform="translate(6752.529297 0)"/>
2420 <use xlink:href="#DejaVuSans-33" transform="translate(6816.152344 0)"/>
2421 <use xlink:href="#DejaVuSans-6b" transform="translate(6879.775391 0)"/>
2422 <use xlink:href="#DejaVuSans-57" transform="translate(6937.685547 0)"/>
2423 <use xlink:href="#DejaVuSans-68" transform="translate(7036.5625 0)"/>
2424 <use xlink:href="#DejaVuSans-20" transform="translate(7099.941406 0)"/>
2425 <use xlink:href="#DejaVuSans-75" transform="translate(7131.728516 0)"/>
2426 <use xlink:href="#DejaVuSans-73" transform="translate(7195.107422 0)"/>
2427 <use xlink:href="#DejaVuSans-61" transform="translate(7247.207031 0)"/>
2428 <use xlink:href="#DejaVuSans-62" transform="translate(7308.486328 0)"/>
2429 <use xlink:href="#DejaVuSans-6c" transform="translate(7371.962891 0)"/>
2430 <use xlink:href="#DejaVuSans-65" transform="translate(7399.746094 0)"/>
2431 </g>
2432 </g>
2433 </g>
2434 </g>
2435 <defs>
2436 <clipPath id="pe57cfb5463">
2437 <rect x="25.807718" y="0" width="586.455299" height="282.24"/>
2438 </clipPath>
2439 </defs>
2440</svg>
artifacts/phase2-pathB/dc-strings.png +0 -0
(no content changes — binary or rename)
artifacts/phase2-pathB/dc-strings.svg +2248 -0
……@@ -0,0 +1,2248 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="433.166094pt" height="362.045815pt" viewBox="0 0 433.166094 362.045815" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T02:23:51.974358</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M 0 362.045815
25L 433.166094 362.045815
26L 433.166094 0
27L 0 0
28L 0 362.045815
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="patch_2">
34 <path d="M 144.704983 90.226936
35C 149.470554 90.226936 154.041582 88.333555 157.411349 84.963787
36C 160.781117 81.594019 162.674499 77.022992 162.674499 72.25742
37C 162.674499 67.491849 160.781117 62.920822 157.411349 59.551054
38C 154.041582 56.181286 149.470554 54.287904 144.704983 54.287904
39C 139.939412 54.287904 135.368384 56.181286 131.998616 59.551054
40C 128.628848 62.920822 126.735467 67.491849 126.735467 72.25742
41C 126.735467 77.022992 128.628848 81.594019 131.998616 84.963787
42C 135.368384 88.333555 139.939412 90.226936 144.704983 90.226936
43L 144.704983 90.226936
44z
45" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
46 </g>
47 <g id="patch_3">
48 <path d="M 144.704983 154.917194
49C 149.470554 154.917194 154.041582 153.023812 157.411349 149.654045
50C 160.781117 146.284277 162.674499 141.713249 162.674499 136.947678
51C 162.674499 132.182107 160.781117 127.611079 157.411349 124.241311
52C 154.041582 120.871544 149.470554 118.978162 144.704983 118.978162
53C 139.939412 118.978162 135.368384 120.871544 131.998616 124.241311
54C 128.628848 127.611079 126.735467 132.182107 126.735467 136.947678
55C 126.735467 141.713249 128.628848 146.284277 131.998616 149.654045
56C 135.368384 153.023812 139.939412 154.917194 144.704983 154.917194
57L 144.704983 154.917194
58z
59" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
60 </g>
61 <g id="patch_4">
62 <path d="M 144.704983 219.607452
63C 149.470554 219.607452 154.041582 217.71407 157.411349 214.344302
64C 160.781117 210.974534 162.674499 206.403507 162.674499 201.637936
65C 162.674499 196.872364 160.781117 192.301337 157.411349 188.931569
66C 154.041582 185.561801 149.470554 183.66842 144.704983 183.66842
67C 139.939412 183.66842 135.368384 185.561801 131.998616 188.931569
68C 128.628848 192.301337 126.735467 196.872364 126.735467 201.637936
69C 126.735467 206.403507 128.628848 210.974534 131.998616 214.344302
70C 135.368384 217.71407 139.939412 219.607452 144.704983 219.607452
71L 144.704983 219.607452
72z
73" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
74 </g>
75 <g id="patch_5">
76 <path d="M 144.704983 284.297709
77C 149.470554 284.297709 154.041582 282.404328 157.411349 279.03456
78C 160.781117 275.664792 162.674499 271.093765 162.674499 266.328193
79C 162.674499 261.562622 160.781117 256.991594 157.411349 253.621827
80C 154.041582 250.252059 149.470554 248.358677 144.704983 248.358677
81C 139.939412 248.358677 135.368384 250.252059 131.998616 253.621827
82C 128.628848 256.991594 126.735467 261.562622 126.735467 266.328193
83C 126.735467 271.093765 128.628848 275.664792 131.998616 279.03456
84C 135.368384 282.404328 139.939412 284.297709 144.704983 284.297709
85L 144.704983 284.297709
86z
87" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
88 </g>
89 <g id="line2d_1">
90 <path d="M 119.54766 72.25742
91L 126.735467 72.25742
92L 126.735467 72.25742
93M 162.674499 72.25742
94L 162.674499 72.25742
95L 169.862305 72.25742
96" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
97 </g>
98 <g id="line2d_2">
99 <path d="M 141.11108 67.765041
100L 141.11108 76.749799
101" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
102 </g>
103 <g id="line2d_3">
104 <path d="M 148.298886 62.374187
105L 148.298886 82.140654
106" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
107 </g>
108 <g id="line2d_4">
109 <path d="M 126.735467 72.25742
110L 141.11108 72.25742
111M 148.298886 72.25742
112L 162.674499 72.25742
113" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
114 </g>
115 <g id="line2d_5">
116 <path d="M 166.268402 39.912292
117L 161.839876 44.340818
118" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
119 </g>
120 <g id="patch_6">
121 <path d="M 163.745831 46.246773
122L 155.486692 50.694001
123L 159.933921 42.434863
124z
125" clip-path="url(#p797122bbab)"/>
126 </g>
127 <g id="line2d_6">
128 <path d="M 173.456208 47.100098
129L 169.027682 51.528624
130" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
131 </g>
132 <g id="patch_7">
133 <path d="M 170.933637 53.434579
134L 162.674499 57.881808
135L 167.121727 49.622669
136z
137" clip-path="url(#p797122bbab)"/>
138 </g>
139 <g id="line2d_7">
140 <path d="M 169.862305 72.25742
141L 187.831821 72.25742
142L 205.801337 72.25742
143" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
144 </g>
145 <g id="line2d_8">
146 <path d="M 205.801337 72.25742
147L 211.192192 72.25742
148L 216.583047 72.25742
149" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
150 </g>
151 <g id="line2d_9">
152 <path d="M 216.583047 72.25742
153L 223.770853 72.25742
154L 223.770853 63.272662
155L 259.709885 63.272662
156L 259.709885 81.242178
157L 223.770853 81.242178
158L 223.770853 72.25742
159M 259.709885 72.25742
160L 266.897692 72.25742
161" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
162 </g>
163 <g id="line2d_10">
164 <path d="M 119.54766 136.947678
165L 126.735467 136.947678
166L 126.735467 136.947678
167M 162.674499 136.947678
168L 162.674499 136.947678
169L 169.862305 136.947678
170" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
171 </g>
172 <g id="line2d_11">
173 <path d="M 141.11108 132.455299
174L 141.11108 141.440057
175" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
176 </g>
177 <g id="line2d_12">
178 <path d="M 148.298886 127.064444
179L 148.298886 146.830912
180" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
181 </g>
182 <g id="line2d_13">
183 <path d="M 126.735467 136.947678
184L 141.11108 136.947678
185M 148.298886 136.947678
186L 162.674499 136.947678
187" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
188 </g>
189 <g id="line2d_14">
190 <path d="M 166.268402 104.602549
191L 161.839876 109.031076
192" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
193 </g>
194 <g id="patch_8">
195 <path d="M 163.745831 110.937031
196L 155.486692 115.384259
197L 159.933921 107.125121
198z
199" clip-path="url(#p797122bbab)"/>
200 </g>
201 <g id="line2d_15">
202 <path d="M 173.456208 111.790356
203L 169.027682 116.218882
204" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
205 </g>
206 <g id="patch_9">
207 <path d="M 170.933637 118.124837
208L 162.674499 122.572065
209L 167.121727 114.312927
210z
211" clip-path="url(#p797122bbab)"/>
212 </g>
213 <g id="line2d_16">
214 <path d="M 169.862305 136.947678
215L 187.831821 136.947678
216L 205.801337 136.947678
217" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
218 </g>
219 <g id="line2d_17">
220 <path d="M 205.801337 136.947678
221L 211.192192 136.947678
222L 216.583047 136.947678
223" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
224 </g>
225 <g id="line2d_18">
226 <path d="M 216.583047 136.947678
227L 223.770853 136.947678
228L 223.770853 127.96292
229L 259.709885 127.96292
230L 259.709885 145.932436
231L 223.770853 145.932436
232L 223.770853 136.947678
233M 259.709885 136.947678
234L 266.897692 136.947678
235" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
236 </g>
237 <g id="line2d_19">
238 <path d="M 119.54766 201.637936
239L 126.735467 201.637936
240L 126.735467 201.637936
241M 162.674499 201.637936
242L 162.674499 201.637936
243L 169.862305 201.637936
244" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
245 </g>
246 <g id="line2d_20">
247 <path d="M 141.11108 197.145557
248L 141.11108 206.130315
249" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
250 </g>
251 <g id="line2d_21">
252 <path d="M 148.298886 191.754702
253L 148.298886 211.521169
254" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
255 </g>
256 <g id="line2d_22">
257 <path d="M 126.735467 201.637936
258L 141.11108 201.637936
259M 148.298886 201.637936
260L 162.674499 201.637936
261" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
262 </g>
263 <g id="line2d_23">
264 <path d="M 166.268402 169.292807
265L 161.839876 173.721333
266" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
267 </g>
268 <g id="patch_10">
269 <path d="M 163.745831 175.627288
270L 155.486692 180.074516
271L 159.933921 171.815378
272z
273" clip-path="url(#p797122bbab)"/>
274 </g>
275 <g id="line2d_24">
276 <path d="M 173.456208 176.480613
277L 169.027682 180.90914
278" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
279 </g>
280 <g id="patch_11">
281 <path d="M 170.933637 182.815095
282L 162.674499 187.262323
283L 167.121727 179.003185
284z
285" clip-path="url(#p797122bbab)"/>
286 </g>
287 <g id="line2d_25">
288 <path d="M 169.862305 201.637936
289L 187.831821 201.637936
290L 205.801337 201.637936
291" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
292 </g>
293 <g id="line2d_26">
294 <path d="M 205.801337 201.637936
295L 211.192192 201.637936
296L 216.583047 201.637936
297" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
298 </g>
299 <g id="line2d_27">
300 <path d="M 216.583047 201.637936
301L 223.770853 201.637936
302L 223.770853 192.653178
303L 259.709885 192.653178
304L 259.709885 210.622694
305L 223.770853 210.622694
306L 223.770853 201.637936
307M 259.709885 201.637936
308L 266.897692 201.637936
309" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
310 </g>
311 <g id="line2d_28">
312 <path d="M 119.54766 266.328193
313L 126.735467 266.328193
314L 126.735467 266.328193
315M 162.674499 266.328193
316L 162.674499 266.328193
317L 169.862305 266.328193
318" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
319 </g>
320 <g id="line2d_29">
321 <path d="M 141.11108 261.835814
322L 141.11108 270.820572
323" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
324 </g>
325 <g id="line2d_30">
326 <path d="M 148.298886 256.444959
327L 148.298886 276.211427
328" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
329 </g>
330 <g id="line2d_31">
331 <path d="M 126.735467 266.328193
332L 141.11108 266.328193
333M 148.298886 266.328193
334L 162.674499 266.328193
335" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
336 </g>
337 <g id="line2d_32">
338 <path d="M 166.268402 233.983064
339L 161.839876 238.411591
340" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
341 </g>
342 <g id="patch_12">
343 <path d="M 163.745831 240.317546
344L 155.486692 244.764774
345L 159.933921 236.505636
346z
347" clip-path="url(#p797122bbab)"/>
348 </g>
349 <g id="line2d_33">
350 <path d="M 173.456208 241.170871
351L 169.027682 245.599397
352" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
353 </g>
354 <g id="patch_13">
355 <path d="M 170.933637 247.505352
356L 162.674499 251.95258
357L 167.121727 243.693442
358z
359" clip-path="url(#p797122bbab)"/>
360 </g>
361 <g id="line2d_34">
362 <path d="M 169.862305 266.328193
363L 187.831821 266.328193
364L 205.801337 266.328193
365" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
366 </g>
367 <g id="line2d_35">
368 <path d="M 205.801337 266.328193
369L 211.192192 266.328193
370L 216.583047 266.328193
371" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
372 </g>
373 <g id="line2d_36">
374 <path d="M 216.583047 266.328193
375L 223.770853 266.328193
376L 223.770853 257.343435
377L 259.709885 257.343435
378L 259.709885 275.312951
379L 223.770853 275.312951
380L 223.770853 266.328193
381M 259.709885 266.328193
382L 266.897692 266.328193
383" clip-path="url(#p797122bbab)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
384 </g>
385 <g id="text_1">
386 <!-- String 1 -->
387 <g transform="translate(44.322241 66.791798) scale(0.09 -0.09)">
388 <defs>
389 <path id="DejaVuSans-53" d="M 3425 4513
390L 3425 3897
391Q 3066 4069 2747 4153
392Q 2428 4238 2131 4238
393Q 1616 4238 1336 4038
394Q 1056 3838 1056 3469
395Q 1056 3159 1242 3001
396Q 1428 2844 1947 2747
397L 2328 2669
398Q 3034 2534 3370 2195
399Q 3706 1856 3706 1288
400Q 3706 609 3251 259
401Q 2797 -91 1919 -91
402Q 1588 -91 1214 -16
403Q 841 59 441 206
404L 441 856
405Q 825 641 1194 531
406Q 1563 422 1919 422
407Q 2459 422 2753 634
408Q 3047 847 3047 1241
409Q 3047 1584 2836 1778
410Q 2625 1972 2144 2069
411L 1759 2144
412Q 1053 2284 737 2584
413Q 422 2884 422 3419
414Q 422 4038 858 4394
415Q 1294 4750 2059 4750
416Q 2388 4750 2728 4690
417Q 3069 4631 3425 4513
418z
419" transform="scale(0.015625)"/>
420 <path id="DejaVuSans-74" d="M 1172 4494
421L 1172 3500
422L 2356 3500
423L 2356 3053
424L 1172 3053
425L 1172 1153
426Q 1172 725 1289 603
427Q 1406 481 1766 481
428L 2356 481
429L 2356 0
430L 1766 0
431Q 1100 0 847 248
432Q 594 497 594 1153
433L 594 3053
434L 172 3053
435L 172 3500
436L 594 3500
437L 594 4494
438L 1172 4494
439z
440" transform="scale(0.015625)"/>
441 <path id="DejaVuSans-72" d="M 2631 2963
442Q 2534 3019 2420 3045
443Q 2306 3072 2169 3072
444Q 1681 3072 1420 2755
445Q 1159 2438 1159 1844
446L 1159 0
447L 581 0
448L 581 3500
449L 1159 3500
450L 1159 2956
451Q 1341 3275 1631 3429
452Q 1922 3584 2338 3584
453Q 2397 3584 2469 3576
454Q 2541 3569 2628 3553
455L 2631 2963
456z
457" transform="scale(0.015625)"/>
458 <path id="DejaVuSans-69" d="M 603 3500
459L 1178 3500
460L 1178 0
461L 603 0
462L 603 3500
463z
464M 603 4863
465L 1178 4863
466L 1178 4134
467L 603 4134
468L 603 4863
469z
470" transform="scale(0.015625)"/>
471 <path id="DejaVuSans-6e" d="M 3513 2113
472L 3513 0
473L 2938 0
474L 2938 2094
475Q 2938 2591 2744 2837
476Q 2550 3084 2163 3084
477Q 1697 3084 1428 2787
478Q 1159 2491 1159 1978
479L 1159 0
480L 581 0
481L 581 3500
482L 1159 3500
483L 1159 2956
484Q 1366 3272 1645 3428
485Q 1925 3584 2291 3584
486Q 2894 3584 3203 3211
487Q 3513 2838 3513 2113
488z
489" transform="scale(0.015625)"/>
490 <path id="DejaVuSans-67" d="M 2906 1791
491Q 2906 2416 2648 2759
492Q 2391 3103 1925 3103
493Q 1463 3103 1205 2759
494Q 947 2416 947 1791
495Q 947 1169 1205 825
496Q 1463 481 1925 481
497Q 2391 481 2648 825
498Q 2906 1169 2906 1791
499z
500M 3481 434
501Q 3481 -459 3084 -895
502Q 2688 -1331 1869 -1331
503Q 1566 -1331 1297 -1286
504Q 1028 -1241 775 -1147
505L 775 -588
506Q 1028 -725 1275 -790
507Q 1522 -856 1778 -856
508Q 2344 -856 2625 -561
509Q 2906 -266 2906 331
510L 2906 616
511Q 2728 306 2450 153
512Q 2172 0 1784 0
513Q 1141 0 747 490
514Q 353 981 353 1791
515Q 353 2603 747 3093
516Q 1141 3584 1784 3584
517Q 2172 3584 2450 3431
518Q 2728 3278 2906 2969
519L 2906 3500
520L 3481 3500
521L 3481 434
522z
523" transform="scale(0.015625)"/>
524 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
525 <path id="DejaVuSans-31" d="M 794 531
526L 1825 531
527L 1825 4091
528L 703 3866
529L 703 4441
530L 1819 4666
531L 2450 4666
532L 2450 531
533L 3481 531
534L 3481 0
535L 794 0
536L 794 531
537z
538" transform="scale(0.015625)"/>
539 </defs>
540 <use xlink:href="#DejaVuSans-53"/>
541 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
542 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
543 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
544 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
545 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
546 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
547 <use xlink:href="#DejaVuSans-31" transform="translate(330.224609 0)"/>
548 </g>
549 <!-- 8S (+) -->
550 <g transform="translate(47.612866 75.502111) scale(0.09 -0.09)">
551 <defs>
552 <path id="DejaVuSans-38" d="M 2034 2216
553Q 1584 2216 1326 1975
554Q 1069 1734 1069 1313
555Q 1069 891 1326 650
556Q 1584 409 2034 409
557Q 2484 409 2743 651
558Q 3003 894 3003 1313
559Q 3003 1734 2745 1975
560Q 2488 2216 2034 2216
561z
562M 1403 2484
563Q 997 2584 770 2862
564Q 544 3141 544 3541
565Q 544 4100 942 4425
566Q 1341 4750 2034 4750
567Q 2731 4750 3128 4425
568Q 3525 4100 3525 3541
569Q 3525 3141 3298 2862
570Q 3072 2584 2669 2484
571Q 3125 2378 3379 2068
572Q 3634 1759 3634 1313
573Q 3634 634 3220 271
574Q 2806 -91 2034 -91
575Q 1263 -91 848 271
576Q 434 634 434 1313
577Q 434 1759 690 2068
578Q 947 2378 1403 2484
579z
580M 1172 3481
581Q 1172 3119 1398 2916
582Q 1625 2713 2034 2713
583Q 2441 2713 2670 2916
584Q 2900 3119 2900 3481
585Q 2900 3844 2670 4047
586Q 2441 4250 2034 4250
587Q 1625 4250 1398 4047
588Q 1172 3844 1172 3481
589z
590" transform="scale(0.015625)"/>
591 <path id="DejaVuSans-28" d="M 1984 4856
592Q 1566 4138 1362 3434
593Q 1159 2731 1159 2009
594Q 1159 1288 1364 580
595Q 1569 -128 1984 -844
596L 1484 -844
597Q 1016 -109 783 600
598Q 550 1309 550 2009
599Q 550 2706 781 3412
600Q 1013 4119 1484 4856
601L 1984 4856
602z
603" transform="scale(0.015625)"/>
604 <path id="DejaVuSans-2b" d="M 2944 4013
605L 2944 2272
606L 4684 2272
607L 4684 1741
608L 2944 1741
609L 2944 0
610L 2419 0
611L 2419 1741
612L 678 1741
613L 678 2272
614L 2419 2272
615L 2419 4013
616L 2944 4013
617z
618" transform="scale(0.015625)"/>
619 <path id="DejaVuSans-29" d="M 513 4856
620L 1013 4856
621Q 1481 4119 1714 3412
622Q 1947 2706 1947 2009
623Q 1947 1309 1714 600
624Q 1481 -109 1013 -844
625L 513 -844
626Q 928 -128 1133 580
627Q 1338 1288 1338 2009
628Q 1338 2731 1133 3434
629Q 928 4138 513 4856
630z
631" transform="scale(0.015625)"/>
632 </defs>
633 <use xlink:href="#DejaVuSans-38"/>
634 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
635 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
636 <use xlink:href="#DejaVuSans-28" transform="translate(158.886719 0)"/>
637 <use xlink:href="#DejaVuSans-2b" transform="translate(197.900391 0)"/>
638 <use xlink:href="#DejaVuSans-29" transform="translate(281.689453 0)"/>
639 </g>
640 </g>
641 <g id="text_2">
642 <!-- 8× Waaree 575W -->
643 <g transform="translate(111.393184 29.263784) scale(0.08 -0.08)">
644 <defs>
645 <path id="DejaVuSans-d7" d="M 4488 3438
646L 3059 2003
647L 4488 575
648L 4116 197
649L 2681 1631
650L 1247 197
651L 878 575
652L 2303 2003
653L 878 3438
654L 1247 3816
655L 2681 2381
656L 4116 3816
657L 4488 3438
658z
659" transform="scale(0.015625)"/>
660 <path id="DejaVuSans-57" d="M 213 4666
661L 850 4666
662L 1831 722
663L 2809 4666
664L 3519 4666
665L 4500 722
666L 5478 4666
667L 6119 4666
668L 4947 0
669L 4153 0
670L 3169 4050
671L 2175 0
672L 1381 0
673L 213 4666
674z
675" transform="scale(0.015625)"/>
676 <path id="DejaVuSans-61" d="M 2194 1759
677Q 1497 1759 1228 1600
678Q 959 1441 959 1056
679Q 959 750 1161 570
680Q 1363 391 1709 391
681Q 2188 391 2477 730
682Q 2766 1069 2766 1631
683L 2766 1759
684L 2194 1759
685z
686M 3341 1997
687L 3341 0
688L 2766 0
689L 2766 531
690Q 2569 213 2275 61
691Q 1981 -91 1556 -91
692Q 1019 -91 701 211
693Q 384 513 384 1019
694Q 384 1609 779 1909
695Q 1175 2209 1959 2209
696L 2766 2209
697L 2766 2266
698Q 2766 2663 2505 2880
699Q 2244 3097 1772 3097
700Q 1472 3097 1187 3025
701Q 903 2953 641 2809
702L 641 3341
703Q 956 3463 1253 3523
704Q 1550 3584 1831 3584
705Q 2591 3584 2966 3190
706Q 3341 2797 3341 1997
707z
708" transform="scale(0.015625)"/>
709 <path id="DejaVuSans-65" d="M 3597 1894
710L 3597 1613
711L 953 1613
712Q 991 1019 1311 708
713Q 1631 397 2203 397
714Q 2534 397 2845 478
715Q 3156 559 3463 722
716L 3463 178
717Q 3153 47 2828 -22
718Q 2503 -91 2169 -91
719Q 1331 -91 842 396
720Q 353 884 353 1716
721Q 353 2575 817 3079
722Q 1281 3584 2069 3584
723Q 2775 3584 3186 3129
724Q 3597 2675 3597 1894
725z
726M 3022 2063
727Q 3016 2534 2758 2815
728Q 2500 3097 2075 3097
729Q 1594 3097 1305 2825
730Q 1016 2553 972 2059
731L 3022 2063
732z
733" transform="scale(0.015625)"/>
734 <path id="DejaVuSans-35" d="M 691 4666
735L 3169 4666
736L 3169 4134
737L 1269 4134
738L 1269 2991
739Q 1406 3038 1543 3061
740Q 1681 3084 1819 3084
741Q 2600 3084 3056 2656
742Q 3513 2228 3513 1497
743Q 3513 744 3044 326
744Q 2575 -91 1722 -91
745Q 1428 -91 1123 -41
746Q 819 9 494 109
747L 494 744
748Q 775 591 1075 516
749Q 1375 441 1709 441
750Q 2250 441 2565 725
751Q 2881 1009 2881 1497
752Q 2881 1984 2565 2268
753Q 2250 2553 1709 2553
754Q 1456 2553 1204 2497
755Q 953 2441 691 2322
756L 691 4666
757z
758" transform="scale(0.015625)"/>
759 <path id="DejaVuSans-37" d="M 525 4666
760L 3525 4666
761L 3525 4397
762L 1831 0
763L 1172 0
764L 2766 4134
765L 525 4134
766L 525 4666
767z
768" transform="scale(0.015625)"/>
769 </defs>
770 <use xlink:href="#DejaVuSans-38"/>
771 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
772 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
773 <use xlink:href="#DejaVuSans-57" transform="translate(179.199219 0)"/>
774 <use xlink:href="#DejaVuSans-61" transform="translate(271.701172 0)"/>
775 <use xlink:href="#DejaVuSans-61" transform="translate(332.980469 0)"/>
776 <use xlink:href="#DejaVuSans-72" transform="translate(394.259766 0)"/>
777 <use xlink:href="#DejaVuSans-65" transform="translate(433.123047 0)"/>
778 <use xlink:href="#DejaVuSans-65" transform="translate(494.646484 0)"/>
779 <use xlink:href="#DejaVuSans-20" transform="translate(556.169922 0)"/>
780 <use xlink:href="#DejaVuSans-35" transform="translate(587.957031 0)"/>
781 <use xlink:href="#DejaVuSans-37" transform="translate(651.580078 0)"/>
782 <use xlink:href="#DejaVuSans-35" transform="translate(715.203125 0)"/>
783 <use xlink:href="#DejaVuSans-57" transform="translate(778.826172 0)"/>
784 </g>
785 </g>
786 <g id="text_3">
787 <!-- 8AWG -->
788 <g transform="translate(175.716196 66.999767) scale(0.08 -0.08)">
789 <defs>
790 <path id="DejaVuSans-41" d="M 2188 4044
791L 1331 1722
792L 3047 1722
793L 2188 4044
794z
795M 1831 4666
796L 2547 4666
797L 4325 0
798L 3669 0
799L 3244 1197
800L 1141 1197
801L 716 0
802L 50 0
803L 1831 4666
804z
805" transform="scale(0.015625)"/>
806 <path id="DejaVuSans-47" d="M 3809 666
807L 3809 1919
808L 2778 1919
809L 2778 2438
810L 4434 2438
811L 4434 434
812Q 4069 175 3628 42
813Q 3188 -91 2688 -91
814Q 1594 -91 976 548
815Q 359 1188 359 2328
816Q 359 3472 976 4111
817Q 1594 4750 2688 4750
818Q 3144 4750 3555 4637
819Q 3966 4525 4313 4306
820L 4313 3634
821Q 3963 3931 3569 4081
822Q 3175 4231 2741 4231
823Q 1884 4231 1454 3753
824Q 1025 3275 1025 2328
825Q 1025 1384 1454 906
826Q 1884 428 2741 428
827Q 3075 428 3337 486
828Q 3600 544 3809 666
829z
830" transform="scale(0.015625)"/>
831 </defs>
832 <use xlink:href="#DejaVuSans-38"/>
833 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
834 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
835 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
836 </g>
837 </g>
838 <g id="text_4">
839 <!-- Vmp≈351V -->
840 <g transform="translate(188.297192 81.930074) scale(0.08 -0.08)">
841 <defs>
842 <path id="DejaVuSans-56" d="M 1831 0
843L 50 4666
844L 709 4666
845L 2188 738
846L 3669 4666
847L 4325 4666
848L 2547 0
849L 1831 0
850z
851" transform="scale(0.015625)"/>
852 <path id="DejaVuSans-6d" d="M 3328 2828
853Q 3544 3216 3844 3400
854Q 4144 3584 4550 3584
855Q 5097 3584 5394 3201
856Q 5691 2819 5691 2113
857L 5691 0
858L 5113 0
859L 5113 2094
860Q 5113 2597 4934 2840
861Q 4756 3084 4391 3084
862Q 3944 3084 3684 2787
863Q 3425 2491 3425 1978
864L 3425 0
865L 2847 0
866L 2847 2094
867Q 2847 2600 2669 2842
868Q 2491 3084 2119 3084
869Q 1678 3084 1418 2786
870Q 1159 2488 1159 1978
871L 1159 0
872L 581 0
873L 581 3500
874L 1159 3500
875L 1159 2956
876Q 1356 3278 1631 3431
877Q 1906 3584 2284 3584
878Q 2666 3584 2933 3390
879Q 3200 3197 3328 2828
880z
881" transform="scale(0.015625)"/>
882 <path id="DejaVuSans-70" d="M 1159 525
883L 1159 -1331
884L 581 -1331
885L 581 3500
886L 1159 3500
887L 1159 2969
888Q 1341 3281 1617 3432
889Q 1894 3584 2278 3584
890Q 2916 3584 3314 3078
891Q 3713 2572 3713 1747
892Q 3713 922 3314 415
893Q 2916 -91 2278 -91
894Q 1894 -91 1617 61
895Q 1341 213 1159 525
896z
897M 3116 1747
898Q 3116 2381 2855 2742
899Q 2594 3103 2138 3103
900Q 1681 3103 1420 2742
901Q 1159 2381 1159 1747
902Q 1159 1113 1420 752
903Q 1681 391 2138 391
904Q 2594 391 2855 752
905Q 3116 1113 3116 1747
906z
907" transform="scale(0.015625)"/>
908 <path id="DejaVuSans-2248" d="M 4684 1947
909L 4684 1388
910Q 4356 1144 4076 1036
911Q 3797 928 3494 928
912Q 3150 928 2694 1113
913Q 2663 1125 2641 1134
914Q 2622 1141 2575 1159
915Q 2091 1350 1797 1350
916Q 1522 1350 1253 1231
917Q 984 1113 678 850
918L 678 1409
919Q 1006 1653 1286 1761
920Q 1566 1869 1869 1869
921Q 2213 1869 2672 1684
922Q 2706 1669 2722 1663
923Q 2741 1656 2788 1638
924Q 3272 1447 3566 1447
925Q 3834 1447 4098 1564
926Q 4363 1681 4684 1947
927z
928M 4684 3163
929L 4684 2606
930Q 4356 2359 4076 2251
931Q 3797 2144 3494 2144
932Q 3150 2144 2694 2328
933Q 2663 2341 2641 2350
934Q 2622 2356 2575 2375
935Q 2091 2566 1797 2566
936Q 1522 2566 1253 2447
937Q 984 2328 678 2069
938L 678 2625
939Q 1006 2869 1286 2976
940Q 1566 3084 1869 3084
941Q 2213 3084 2672 2900
942Q 2703 2888 2719 2881
943Q 2741 2872 2788 2853
944Q 3272 2663 3566 2663
945Q 3834 2663 4098 2780
946Q 4363 2897 4684 3163
947z
948" transform="scale(0.015625)"/>
949 <path id="DejaVuSans-33" d="M 2597 2516
950Q 3050 2419 3304 2112
951Q 3559 1806 3559 1356
952Q 3559 666 3084 287
953Q 2609 -91 1734 -91
954Q 1441 -91 1130 -33
955Q 819 25 488 141
956L 488 750
957Q 750 597 1062 519
958Q 1375 441 1716 441
959Q 2309 441 2620 675
960Q 2931 909 2931 1356
961Q 2931 1769 2642 2001
962Q 2353 2234 1838 2234
963L 1294 2234
964L 1294 2753
965L 1863 2753
966Q 2328 2753 2575 2939
967Q 2822 3125 2822 3475
968Q 2822 3834 2567 4026
969Q 2313 4219 1838 4219
970Q 1578 4219 1281 4162
971Q 984 4106 628 3988
972L 628 4550
973Q 988 4650 1302 4700
974Q 1616 4750 1894 4750
975Q 2613 4750 3031 4423
976Q 3450 4097 3450 3541
977Q 3450 3153 3228 2886
978Q 3006 2619 2597 2516
979z
980" transform="scale(0.015625)"/>
981 </defs>
982 <use xlink:href="#DejaVuSans-56"/>
983 <use xlink:href="#DejaVuSans-6d" transform="translate(68.408203 0)"/>
984 <use xlink:href="#DejaVuSans-70" transform="translate(165.820312 0)"/>
985 <use xlink:href="#DejaVuSans-2248" transform="translate(229.296875 0)"/>
986 <use xlink:href="#DejaVuSans-33" transform="translate(313.085938 0)"/>
987 <use xlink:href="#DejaVuSans-35" transform="translate(376.708984 0)"/>
988 <use xlink:href="#DejaVuSans-31" transform="translate(440.332031 0)"/>
989 <use xlink:href="#DejaVuSans-56" transform="translate(503.955078 0)"/>
990 </g>
991 <!-- coldVoc 492V -->
992 <g transform="translate(184.179067 89.672574) scale(0.08 -0.08)">
993 <defs>
994 <path id="DejaVuSans-63" d="M 3122 3366
995L 3122 2828
996Q 2878 2963 2633 3030
997Q 2388 3097 2138 3097
998Q 1578 3097 1268 2742
999Q 959 2388 959 1747
1000Q 959 1106 1268 751
1001Q 1578 397 2138 397
1002Q 2388 397 2633 464
1003Q 2878 531 3122 666
1004L 3122 134
1005Q 2881 22 2623 -34
1006Q 2366 -91 2075 -91
1007Q 1284 -91 818 406
1008Q 353 903 353 1747
1009Q 353 2603 823 3093
1010Q 1294 3584 2113 3584
1011Q 2378 3584 2631 3529
1012Q 2884 3475 3122 3366
1013z
1014" transform="scale(0.015625)"/>
1015 <path id="DejaVuSans-6f" d="M 1959 3097
1016Q 1497 3097 1228 2736
1017Q 959 2375 959 1747
1018Q 959 1119 1226 758
1019Q 1494 397 1959 397
1020Q 2419 397 2687 759
1021Q 2956 1122 2956 1747
1022Q 2956 2369 2687 2733
1023Q 2419 3097 1959 3097
1024z
1025M 1959 3584
1026Q 2709 3584 3137 3096
1027Q 3566 2609 3566 1747
1028Q 3566 888 3137 398
1029Q 2709 -91 1959 -91
1030Q 1206 -91 779 398
1031Q 353 888 353 1747
1032Q 353 2609 779 3096
1033Q 1206 3584 1959 3584
1034z
1035" transform="scale(0.015625)"/>
1036 <path id="DejaVuSans-6c" d="M 603 4863
1037L 1178 4863
1038L 1178 0
1039L 603 0
1040L 603 4863
1041z
1042" transform="scale(0.015625)"/>
1043 <path id="DejaVuSans-64" d="M 2906 2969
1044L 2906 4863
1045L 3481 4863
1046L 3481 0
1047L 2906 0
1048L 2906 525
1049Q 2725 213 2448 61
1050Q 2172 -91 1784 -91
1051Q 1150 -91 751 415
1052Q 353 922 353 1747
1053Q 353 2572 751 3078
1054Q 1150 3584 1784 3584
1055Q 2172 3584 2448 3432
1056Q 2725 3281 2906 2969
1057z
1058M 947 1747
1059Q 947 1113 1208 752
1060Q 1469 391 1925 391
1061Q 2381 391 2643 752
1062Q 2906 1113 2906 1747
1063Q 2906 2381 2643 2742
1064Q 2381 3103 1925 3103
1065Q 1469 3103 1208 2742
1066Q 947 2381 947 1747
1067z
1068" transform="scale(0.015625)"/>
1069 <path id="DejaVuSans-34" d="M 2419 4116
1070L 825 1625
1071L 2419 1625
1072L 2419 4116
1073z
1074M 2253 4666
1075L 3047 4666
1076L 3047 1625
1077L 3713 1625
1078L 3713 1100
1079L 3047 1100
1080L 3047 0
1081L 2419 0
1082L 2419 1100
1083L 313 1100
1084L 313 1709
1085L 2253 4666
1086z
1087" transform="scale(0.015625)"/>
1088 <path id="DejaVuSans-39" d="M 703 97
1089L 703 672
1090Q 941 559 1184 500
1091Q 1428 441 1663 441
1092Q 2288 441 2617 861
1093Q 2947 1281 2994 2138
1094Q 2813 1869 2534 1725
1095Q 2256 1581 1919 1581
1096Q 1219 1581 811 2004
1097Q 403 2428 403 3163
1098Q 403 3881 828 4315
1099Q 1253 4750 1959 4750
1100Q 2769 4750 3195 4129
1101Q 3622 3509 3622 2328
1102Q 3622 1225 3098 567
1103Q 2575 -91 1691 -91
1104Q 1453 -91 1209 -44
1105Q 966 3 703 97
1106z
1107M 1959 2075
1108Q 2384 2075 2632 2365
1109Q 2881 2656 2881 3163
1110Q 2881 3666 2632 3958
1111Q 2384 4250 1959 4250
1112Q 1534 4250 1286 3958
1113Q 1038 3666 1038 3163
1114Q 1038 2656 1286 2365
1115Q 1534 2075 1959 2075
1116z
1117" transform="scale(0.015625)"/>
1118 <path id="DejaVuSans-32" d="M 1228 531
1119L 3431 531
1120L 3431 0
1121L 469 0
1122L 469 531
1123Q 828 903 1448 1529
1124Q 2069 2156 2228 2338
1125Q 2531 2678 2651 2914
1126Q 2772 3150 2772 3378
1127Q 2772 3750 2511 3984
1128Q 2250 4219 1831 4219
1129Q 1534 4219 1204 4116
1130Q 875 4013 500 3803
1131L 500 4441
1132Q 881 4594 1212 4672
1133Q 1544 4750 1819 4750
1134Q 2544 4750 2975 4387
1135Q 3406 4025 3406 3419
1136Q 3406 3131 3298 2873
1137Q 3191 2616 2906 2266
1138Q 2828 2175 2409 1742
1139Q 1991 1309 1228 531
1140z
1141" transform="scale(0.015625)"/>
1142 </defs>
1143 <use xlink:href="#DejaVuSans-63"/>
1144 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1145 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1146 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1147 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
1148 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
1149 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
1150 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
1151 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
1152 <use xlink:href="#DejaVuSans-39" transform="translate(479.652344 0)"/>
1153 <use xlink:href="#DejaVuSans-32" transform="translate(543.275391 0)"/>
1154 <use xlink:href="#DejaVuSans-56" transform="translate(606.898438 0)"/>
1155 </g>
1156 </g>
1157 <g id="text_5">
1158 <!-- MPPT1 -->
1159 <g transform="translate(226.819354 40.386415) scale(0.09 -0.09)">
1160 <defs>
1161 <path id="DejaVuSans-4d" d="M 628 4666
1162L 1569 4666
1163L 2759 1491
1164L 3956 4666
1165L 4897 4666
1166L 4897 0
1167L 4281 0
1168L 4281 4097
1169L 3078 897
1170L 2444 897
1171L 1241 4097
1172L 1241 0
1173L 628 0
1174L 628 4666
1175z
1176" transform="scale(0.015625)"/>
1177 <path id="DejaVuSans-50" d="M 1259 4147
1178L 1259 2394
1179L 2053 2394
1180Q 2494 2394 2734 2622
1181Q 2975 2850 2975 3272
1182Q 2975 3691 2734 3919
1183Q 2494 4147 2053 4147
1184L 1259 4147
1185z
1186M 628 4666
1187L 2053 4666
1188Q 2838 4666 3239 4311
1189Q 3641 3956 3641 3272
1190Q 3641 2581 3239 2228
1191Q 2838 1875 2053 1875
1192L 1259 1875
1193L 1259 0
1194L 628 0
1195L 628 4666
1196z
1197" transform="scale(0.015625)"/>
1198 <path id="DejaVuSans-54" d="M -19 4666
1199L 3928 4666
1200L 3928 4134
1201L 2272 4134
1202L 2272 0
1203L 1638 0
1204L 1638 4134
1205L -19 4134
1206L -19 4666
1207z
1208" transform="scale(0.015625)"/>
1209 </defs>
1210 <use xlink:href="#DejaVuSans-4d"/>
1211 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1212 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1213 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1214 <use xlink:href="#DejaVuSans-31" transform="translate(267.96875 0)"/>
1215 </g>
1216 <!-- 18kPV -->
1217 <g transform="translate(227.616697 49.096728) scale(0.09 -0.09)">
1218 <defs>
1219 <path id="DejaVuSans-6b" d="M 581 4863
1220L 1159 4863
1221L 1159 1991
1222L 2875 3500
1223L 3609 3500
1224L 1753 1863
1225L 3688 0
1226L 2938 0
1227L 1159 1709
1228L 1159 0
1229L 581 0
1230L 581 4863
1231z
1232" transform="scale(0.015625)"/>
1233 </defs>
1234 <use xlink:href="#DejaVuSans-31"/>
1235 <use xlink:href="#DejaVuSans-38" transform="translate(63.623047 0)"/>
1236 <use xlink:href="#DejaVuSans-6b" transform="translate(127.246094 0)"/>
1237 <use xlink:href="#DejaVuSans-50" transform="translate(185.15625 0)"/>
1238 <use xlink:href="#DejaVuSans-56" transform="translate(245.458984 0)"/>
1239 </g>
1240 <!-- (2 strings) -->
1241 <g transform="translate(218.674354 57.80704) scale(0.09 -0.09)">
1242 <defs>
1243 <path id="DejaVuSans-73" d="M 2834 3397
1244L 2834 2853
1245Q 2591 2978 2328 3040
1246Q 2066 3103 1784 3103
1247Q 1356 3103 1142 2972
1248Q 928 2841 928 2578
1249Q 928 2378 1081 2264
1250Q 1234 2150 1697 2047
1251L 1894 2003
1252Q 2506 1872 2764 1633
1253Q 3022 1394 3022 966
1254Q 3022 478 2636 193
1255Q 2250 -91 1575 -91
1256Q 1294 -91 989 -36
1257Q 684 19 347 128
1258L 347 722
1259Q 666 556 975 473
1260Q 1284 391 1588 391
1261Q 1994 391 2212 530
1262Q 2431 669 2431 922
1263Q 2431 1156 2273 1281
1264Q 2116 1406 1581 1522
1265L 1381 1569
1266Q 847 1681 609 1914
1267Q 372 2147 372 2553
1268Q 372 3047 722 3315
1269Q 1072 3584 1716 3584
1270Q 2034 3584 2315 3537
1271Q 2597 3491 2834 3397
1272z
1273" transform="scale(0.015625)"/>
1274 </defs>
1275 <use xlink:href="#DejaVuSans-28"/>
1276 <use xlink:href="#DejaVuSans-32" transform="translate(39.013672 0)"/>
1277 <use xlink:href="#DejaVuSans-20" transform="translate(102.636719 0)"/>
1278 <use xlink:href="#DejaVuSans-73" transform="translate(134.423828 0)"/>
1279 <use xlink:href="#DejaVuSans-74" transform="translate(186.523438 0)"/>
1280 <use xlink:href="#DejaVuSans-72" transform="translate(225.732422 0)"/>
1281 <use xlink:href="#DejaVuSans-69" transform="translate(266.845703 0)"/>
1282 <use xlink:href="#DejaVuSans-6e" transform="translate(294.628906 0)"/>
1283 <use xlink:href="#DejaVuSans-67" transform="translate(358.007812 0)"/>
1284 <use xlink:href="#DejaVuSans-73" transform="translate(421.484375 0)"/>
1285 <use xlink:href="#DejaVuSans-29" transform="translate(473.583984 0)"/>
1286 </g>
1287 </g>
1288 <g id="text_6">
1289 <!-- String 2 -->
1290 <g transform="translate(44.322241 131.482056) scale(0.09 -0.09)">
1291 <use xlink:href="#DejaVuSans-53"/>
1292 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
1293 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
1294 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
1295 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
1296 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
1297 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
1298 <use xlink:href="#DejaVuSans-32" transform="translate(330.224609 0)"/>
1299 </g>
1300 <!-- 8S (+) -->
1301 <g transform="translate(47.612866 140.192369) scale(0.09 -0.09)">
1302 <use xlink:href="#DejaVuSans-38"/>
1303 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
1304 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
1305 <use xlink:href="#DejaVuSans-28" transform="translate(158.886719 0)"/>
1306 <use xlink:href="#DejaVuSans-2b" transform="translate(197.900391 0)"/>
1307 <use xlink:href="#DejaVuSans-29" transform="translate(281.689453 0)"/>
1308 </g>
1309 </g>
1310 <g id="text_7">
1311 <!-- 8× Waaree 575W -->
1312 <g transform="translate(111.393184 93.954041) scale(0.08 -0.08)">
1313 <use xlink:href="#DejaVuSans-38"/>
1314 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
1315 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
1316 <use xlink:href="#DejaVuSans-57" transform="translate(179.199219 0)"/>
1317 <use xlink:href="#DejaVuSans-61" transform="translate(271.701172 0)"/>
1318 <use xlink:href="#DejaVuSans-61" transform="translate(332.980469 0)"/>
1319 <use xlink:href="#DejaVuSans-72" transform="translate(394.259766 0)"/>
1320 <use xlink:href="#DejaVuSans-65" transform="translate(433.123047 0)"/>
1321 <use xlink:href="#DejaVuSans-65" transform="translate(494.646484 0)"/>
1322 <use xlink:href="#DejaVuSans-20" transform="translate(556.169922 0)"/>
1323 <use xlink:href="#DejaVuSans-35" transform="translate(587.957031 0)"/>
1324 <use xlink:href="#DejaVuSans-37" transform="translate(651.580078 0)"/>
1325 <use xlink:href="#DejaVuSans-35" transform="translate(715.203125 0)"/>
1326 <use xlink:href="#DejaVuSans-57" transform="translate(778.826172 0)"/>
1327 </g>
1328 </g>
1329 <g id="text_8">
1330 <!-- 8AWG -->
1331 <g transform="translate(175.716196 131.690025) scale(0.08 -0.08)">
1332 <use xlink:href="#DejaVuSans-38"/>
1333 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1334 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1335 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1336 </g>
1337 </g>
1338 <g id="text_9">
1339 <!-- Vmp≈351V -->
1340 <g transform="translate(188.297192 146.620331) scale(0.08 -0.08)">
1341 <use xlink:href="#DejaVuSans-56"/>
1342 <use xlink:href="#DejaVuSans-6d" transform="translate(68.408203 0)"/>
1343 <use xlink:href="#DejaVuSans-70" transform="translate(165.820312 0)"/>
1344 <use xlink:href="#DejaVuSans-2248" transform="translate(229.296875 0)"/>
1345 <use xlink:href="#DejaVuSans-33" transform="translate(313.085938 0)"/>
1346 <use xlink:href="#DejaVuSans-35" transform="translate(376.708984 0)"/>
1347 <use xlink:href="#DejaVuSans-31" transform="translate(440.332031 0)"/>
1348 <use xlink:href="#DejaVuSans-56" transform="translate(503.955078 0)"/>
1349 </g>
1350 <!-- coldVoc 492V -->
1351 <g transform="translate(184.179067 154.362831) scale(0.08 -0.08)">
1352 <use xlink:href="#DejaVuSans-63"/>
1353 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1354 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1355 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1356 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
1357 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
1358 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
1359 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
1360 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
1361 <use xlink:href="#DejaVuSans-39" transform="translate(479.652344 0)"/>
1362 <use xlink:href="#DejaVuSans-32" transform="translate(543.275391 0)"/>
1363 <use xlink:href="#DejaVuSans-56" transform="translate(606.898438 0)"/>
1364 </g>
1365 </g>
1366 <g id="text_10">
1367 <!-- MPPT1 -->
1368 <g transform="translate(226.819354 105.076673) scale(0.09 -0.09)">
1369 <use xlink:href="#DejaVuSans-4d"/>
1370 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1371 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1372 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1373 <use xlink:href="#DejaVuSans-31" transform="translate(267.96875 0)"/>
1374 </g>
1375 <!-- 18kPV -->
1376 <g transform="translate(227.616697 113.786986) scale(0.09 -0.09)">
1377 <use xlink:href="#DejaVuSans-31"/>
1378 <use xlink:href="#DejaVuSans-38" transform="translate(63.623047 0)"/>
1379 <use xlink:href="#DejaVuSans-6b" transform="translate(127.246094 0)"/>
1380 <use xlink:href="#DejaVuSans-50" transform="translate(185.15625 0)"/>
1381 <use xlink:href="#DejaVuSans-56" transform="translate(245.458984 0)"/>
1382 </g>
1383 <!-- (2 strings) -->
1384 <g transform="translate(218.674354 122.497298) scale(0.09 -0.09)">
1385 <use xlink:href="#DejaVuSans-28"/>
1386 <use xlink:href="#DejaVuSans-32" transform="translate(39.013672 0)"/>
1387 <use xlink:href="#DejaVuSans-20" transform="translate(102.636719 0)"/>
1388 <use xlink:href="#DejaVuSans-73" transform="translate(134.423828 0)"/>
1389 <use xlink:href="#DejaVuSans-74" transform="translate(186.523438 0)"/>
1390 <use xlink:href="#DejaVuSans-72" transform="translate(225.732422 0)"/>
1391 <use xlink:href="#DejaVuSans-69" transform="translate(266.845703 0)"/>
1392 <use xlink:href="#DejaVuSans-6e" transform="translate(294.628906 0)"/>
1393 <use xlink:href="#DejaVuSans-67" transform="translate(358.007812 0)"/>
1394 <use xlink:href="#DejaVuSans-73" transform="translate(421.484375 0)"/>
1395 <use xlink:href="#DejaVuSans-29" transform="translate(473.583984 0)"/>
1396 </g>
1397 </g>
1398 <g id="text_11">
1399 <!-- String 3 -->
1400 <g transform="translate(44.322241 196.172314) scale(0.09 -0.09)">
1401 <use xlink:href="#DejaVuSans-53"/>
1402 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
1403 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
1404 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
1405 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
1406 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
1407 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
1408 <use xlink:href="#DejaVuSans-33" transform="translate(330.224609 0)"/>
1409 </g>
1410 <!-- 8S (+) -->
1411 <g transform="translate(47.612866 204.882626) scale(0.09 -0.09)">
1412 <use xlink:href="#DejaVuSans-38"/>
1413 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
1414 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
1415 <use xlink:href="#DejaVuSans-28" transform="translate(158.886719 0)"/>
1416 <use xlink:href="#DejaVuSans-2b" transform="translate(197.900391 0)"/>
1417 <use xlink:href="#DejaVuSans-29" transform="translate(281.689453 0)"/>
1418 </g>
1419 </g>
1420 <g id="text_12">
1421 <!-- 8× Waaree 575W -->
1422 <g transform="translate(111.393184 158.644299) scale(0.08 -0.08)">
1423 <use xlink:href="#DejaVuSans-38"/>
1424 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
1425 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
1426 <use xlink:href="#DejaVuSans-57" transform="translate(179.199219 0)"/>
1427 <use xlink:href="#DejaVuSans-61" transform="translate(271.701172 0)"/>
1428 <use xlink:href="#DejaVuSans-61" transform="translate(332.980469 0)"/>
1429 <use xlink:href="#DejaVuSans-72" transform="translate(394.259766 0)"/>
1430 <use xlink:href="#DejaVuSans-65" transform="translate(433.123047 0)"/>
1431 <use xlink:href="#DejaVuSans-65" transform="translate(494.646484 0)"/>
1432 <use xlink:href="#DejaVuSans-20" transform="translate(556.169922 0)"/>
1433 <use xlink:href="#DejaVuSans-35" transform="translate(587.957031 0)"/>
1434 <use xlink:href="#DejaVuSans-37" transform="translate(651.580078 0)"/>
1435 <use xlink:href="#DejaVuSans-35" transform="translate(715.203125 0)"/>
1436 <use xlink:href="#DejaVuSans-57" transform="translate(778.826172 0)"/>
1437 </g>
1438 </g>
1439 <g id="text_13">
1440 <!-- 8AWG -->
1441 <g transform="translate(175.716196 196.380282) scale(0.08 -0.08)">
1442 <use xlink:href="#DejaVuSans-38"/>
1443 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1444 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1445 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1446 </g>
1447 </g>
1448 <g id="text_14">
1449 <!-- Vmp≈351V -->
1450 <g transform="translate(188.297192 211.310589) scale(0.08 -0.08)">
1451 <use xlink:href="#DejaVuSans-56"/>
1452 <use xlink:href="#DejaVuSans-6d" transform="translate(68.408203 0)"/>
1453 <use xlink:href="#DejaVuSans-70" transform="translate(165.820312 0)"/>
1454 <use xlink:href="#DejaVuSans-2248" transform="translate(229.296875 0)"/>
1455 <use xlink:href="#DejaVuSans-33" transform="translate(313.085938 0)"/>
1456 <use xlink:href="#DejaVuSans-35" transform="translate(376.708984 0)"/>
1457 <use xlink:href="#DejaVuSans-31" transform="translate(440.332031 0)"/>
1458 <use xlink:href="#DejaVuSans-56" transform="translate(503.955078 0)"/>
1459 </g>
1460 <!-- coldVoc 492V -->
1461 <g transform="translate(184.179067 219.053089) scale(0.08 -0.08)">
1462 <use xlink:href="#DejaVuSans-63"/>
1463 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1464 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1465 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1466 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
1467 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
1468 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
1469 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
1470 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
1471 <use xlink:href="#DejaVuSans-39" transform="translate(479.652344 0)"/>
1472 <use xlink:href="#DejaVuSans-32" transform="translate(543.275391 0)"/>
1473 <use xlink:href="#DejaVuSans-56" transform="translate(606.898438 0)"/>
1474 </g>
1475 </g>
1476 <g id="text_15">
1477 <!-- MPPT2 -->
1478 <g transform="translate(226.819354 178.477243) scale(0.09 -0.09)">
1479 <use xlink:href="#DejaVuSans-4d"/>
1480 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1481 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1482 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1483 <use xlink:href="#DejaVuSans-32" transform="translate(267.96875 0)"/>
1484 </g>
1485 <!-- 18kPV -->
1486 <g transform="translate(227.616697 187.187556) scale(0.09 -0.09)">
1487 <use xlink:href="#DejaVuSans-31"/>
1488 <use xlink:href="#DejaVuSans-38" transform="translate(63.623047 0)"/>
1489 <use xlink:href="#DejaVuSans-6b" transform="translate(127.246094 0)"/>
1490 <use xlink:href="#DejaVuSans-50" transform="translate(185.15625 0)"/>
1491 <use xlink:href="#DejaVuSans-56" transform="translate(245.458984 0)"/>
1492 </g>
1493 </g>
1494 <g id="text_16">
1495 <!-- String 4 -->
1496 <g transform="translate(44.322241 260.862571) scale(0.09 -0.09)">
1497 <use xlink:href="#DejaVuSans-53"/>
1498 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
1499 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
1500 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
1501 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
1502 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
1503 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
1504 <use xlink:href="#DejaVuSans-34" transform="translate(330.224609 0)"/>
1505 </g>
1506 <!-- 7S (+) -->
1507 <g transform="translate(47.612866 269.572884) scale(0.09 -0.09)">
1508 <use xlink:href="#DejaVuSans-37"/>
1509 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
1510 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
1511 <use xlink:href="#DejaVuSans-28" transform="translate(158.886719 0)"/>
1512 <use xlink:href="#DejaVuSans-2b" transform="translate(197.900391 0)"/>
1513 <use xlink:href="#DejaVuSans-29" transform="translate(281.689453 0)"/>
1514 </g>
1515 </g>
1516 <g id="text_17">
1517 <!-- 7× Waaree 575W -->
1518 <g transform="translate(111.393184 223.334556) scale(0.08 -0.08)">
1519 <use xlink:href="#DejaVuSans-37"/>
1520 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
1521 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
1522 <use xlink:href="#DejaVuSans-57" transform="translate(179.199219 0)"/>
1523 <use xlink:href="#DejaVuSans-61" transform="translate(271.701172 0)"/>
1524 <use xlink:href="#DejaVuSans-61" transform="translate(332.980469 0)"/>
1525 <use xlink:href="#DejaVuSans-72" transform="translate(394.259766 0)"/>
1526 <use xlink:href="#DejaVuSans-65" transform="translate(433.123047 0)"/>
1527 <use xlink:href="#DejaVuSans-65" transform="translate(494.646484 0)"/>
1528 <use xlink:href="#DejaVuSans-20" transform="translate(556.169922 0)"/>
1529 <use xlink:href="#DejaVuSans-35" transform="translate(587.957031 0)"/>
1530 <use xlink:href="#DejaVuSans-37" transform="translate(651.580078 0)"/>
1531 <use xlink:href="#DejaVuSans-35" transform="translate(715.203125 0)"/>
1532 <use xlink:href="#DejaVuSans-57" transform="translate(778.826172 0)"/>
1533 </g>
1534 </g>
1535 <g id="text_18">
1536 <!-- 8AWG -->
1537 <g transform="translate(175.716196 261.07054) scale(0.08 -0.08)">
1538 <use xlink:href="#DejaVuSans-38"/>
1539 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1540 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1541 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1542 </g>
1543 </g>
1544 <g id="text_19">
1545 <!-- Vmp≈307V -->
1546 <g transform="translate(188.297192 276.000846) scale(0.08 -0.08)">
1547 <defs>
1548 <path id="DejaVuSans-30" d="M 2034 4250
1549Q 1547 4250 1301 3770
1550Q 1056 3291 1056 2328
1551Q 1056 1369 1301 889
1552Q 1547 409 2034 409
1553Q 2525 409 2770 889
1554Q 3016 1369 3016 2328
1555Q 3016 3291 2770 3770
1556Q 2525 4250 2034 4250
1557z
1558M 2034 4750
1559Q 2819 4750 3233 4129
1560Q 3647 3509 3647 2328
1561Q 3647 1150 3233 529
1562Q 2819 -91 2034 -91
1563Q 1250 -91 836 529
1564Q 422 1150 422 2328
1565Q 422 3509 836 4129
1566Q 1250 4750 2034 4750
1567z
1568" transform="scale(0.015625)"/>
1569 </defs>
1570 <use xlink:href="#DejaVuSans-56"/>
1571 <use xlink:href="#DejaVuSans-6d" transform="translate(68.408203 0)"/>
1572 <use xlink:href="#DejaVuSans-70" transform="translate(165.820312 0)"/>
1573 <use xlink:href="#DejaVuSans-2248" transform="translate(229.296875 0)"/>
1574 <use xlink:href="#DejaVuSans-33" transform="translate(313.085938 0)"/>
1575 <use xlink:href="#DejaVuSans-30" transform="translate(376.708984 0)"/>
1576 <use xlink:href="#DejaVuSans-37" transform="translate(440.332031 0)"/>
1577 <use xlink:href="#DejaVuSans-56" transform="translate(503.955078 0)"/>
1578 </g>
1579 <!-- coldVoc 430V -->
1580 <g transform="translate(184.179067 283.743346) scale(0.08 -0.08)">
1581 <use xlink:href="#DejaVuSans-63"/>
1582 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1583 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1584 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1585 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
1586 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
1587 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
1588 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
1589 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
1590 <use xlink:href="#DejaVuSans-33" transform="translate(479.652344 0)"/>
1591 <use xlink:href="#DejaVuSans-30" transform="translate(543.275391 0)"/>
1592 <use xlink:href="#DejaVuSans-56" transform="translate(606.898438 0)"/>
1593 </g>
1594 </g>
1595 <g id="text_20">
1596 <!-- MPPT3 -->
1597 <g transform="translate(226.819354 243.167501) scale(0.09 -0.09)">
1598 <use xlink:href="#DejaVuSans-4d"/>
1599 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1600 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1601 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1602 <use xlink:href="#DejaVuSans-33" transform="translate(267.96875 0)"/>
1603 </g>
1604 <!-- 18kPV -->
1605 <g transform="translate(227.616697 251.877813) scale(0.09 -0.09)">
1606 <use xlink:href="#DejaVuSans-31"/>
1607 <use xlink:href="#DejaVuSans-38" transform="translate(63.623047 0)"/>
1608 <use xlink:href="#DejaVuSans-6b" transform="translate(127.246094 0)"/>
1609 <use xlink:href="#DejaVuSans-50" transform="translate(185.15625 0)"/>
1610 <use xlink:href="#DejaVuSans-56" transform="translate(245.458984 0)"/>
1611 </g>
1612 </g>
1613 <g id="text_21">
1614 <!-- FINAL-STATE DC STRINGS — 4 strings (8+8+8+7S) across 3 MPPTs -->
1615 <g transform="translate(0 14.748254) scale(0.13 -0.13)">
1616 <defs>
1617 <path id="DejaVuSans-46" d="M 628 4666
1618L 3309 4666
1619L 3309 4134
1620L 1259 4134
1621L 1259 2759
1622L 3109 2759
1623L 3109 2228
1624L 1259 2228
1625L 1259 0
1626L 628 0
1627L 628 4666
1628z
1629" transform="scale(0.015625)"/>
1630 <path id="DejaVuSans-49" d="M 628 4666
1631L 1259 4666
1632L 1259 0
1633L 628 0
1634L 628 4666
1635z
1636" transform="scale(0.015625)"/>
1637 <path id="DejaVuSans-4e" d="M 628 4666
1638L 1478 4666
1639L 3547 763
1640L 3547 4666
1641L 4159 4666
1642L 4159 0
1643L 3309 0
1644L 1241 3903
1645L 1241 0
1646L 628 0
1647L 628 4666
1648z
1649" transform="scale(0.015625)"/>
1650 <path id="DejaVuSans-4c" d="M 628 4666
1651L 1259 4666
1652L 1259 531
1653L 3531 531
1654L 3531 0
1655L 628 0
1656L 628 4666
1657z
1658" transform="scale(0.015625)"/>
1659 <path id="DejaVuSans-2d" d="M 313 2009
1660L 1997 2009
1661L 1997 1497
1662L 313 1497
1663L 313 2009
1664z
1665" transform="scale(0.015625)"/>
1666 <path id="DejaVuSans-45" d="M 628 4666
1667L 3578 4666
1668L 3578 4134
1669L 1259 4134
1670L 1259 2753
1671L 3481 2753
1672L 3481 2222
1673L 1259 2222
1674L 1259 531
1675L 3634 531
1676L 3634 0
1677L 628 0
1678L 628 4666
1679z
1680" transform="scale(0.015625)"/>
1681 <path id="DejaVuSans-44" d="M 1259 4147
1682L 1259 519
1683L 2022 519
1684Q 2988 519 3436 956
1685Q 3884 1394 3884 2338
1686Q 3884 3275 3436 3711
1687Q 2988 4147 2022 4147
1688L 1259 4147
1689z
1690M 628 4666
1691L 1925 4666
1692Q 3281 4666 3915 4102
1693Q 4550 3538 4550 2338
1694Q 4550 1131 3912 565
1695Q 3275 0 1925 0
1696L 628 0
1697L 628 4666
1698z
1699" transform="scale(0.015625)"/>
1700 <path id="DejaVuSans-43" d="M 4122 4306
1701L 4122 3641
1702Q 3803 3938 3442 4084
1703Q 3081 4231 2675 4231
1704Q 1875 4231 1450 3742
1705Q 1025 3253 1025 2328
1706Q 1025 1406 1450 917
1707Q 1875 428 2675 428
1708Q 3081 428 3442 575
1709Q 3803 722 4122 1019
1710L 4122 359
1711Q 3791 134 3420 21
1712Q 3050 -91 2638 -91
1713Q 1578 -91 968 557
1714Q 359 1206 359 2328
1715Q 359 3453 968 4101
1716Q 1578 4750 2638 4750
1717Q 3056 4750 3426 4639
1718Q 3797 4528 4122 4306
1719z
1720" transform="scale(0.015625)"/>
1721 <path id="DejaVuSans-52" d="M 2841 2188
1722Q 3044 2119 3236 1894
1723Q 3428 1669 3622 1275
1724L 4263 0
1725L 3584 0
1726L 2988 1197
1727Q 2756 1666 2539 1819
1728Q 2322 1972 1947 1972
1729L 1259 1972
1730L 1259 0
1731L 628 0
1732L 628 4666
1733L 2053 4666
1734Q 2853 4666 3247 4331
1735Q 3641 3997 3641 3322
1736Q 3641 2881 3436 2590
1737Q 3231 2300 2841 2188
1738z
1739M 1259 4147
1740L 1259 2491
1741L 2053 2491
1742Q 2509 2491 2742 2702
1743Q 2975 2913 2975 3322
1744Q 2975 3731 2742 3939
1745Q 2509 4147 2053 4147
1746L 1259 4147
1747z
1748" transform="scale(0.015625)"/>
1749 <path id="DejaVuSans-2014" d="M 313 1978
1750L 6088 1978
1751L 6088 1528
1752L 313 1528
1753L 313 1978
1754z
1755" transform="scale(0.015625)"/>
1756 </defs>
1757 <use xlink:href="#DejaVuSans-46"/>
1758 <use xlink:href="#DejaVuSans-49" transform="translate(57.519531 0)"/>
1759 <use xlink:href="#DejaVuSans-4e" transform="translate(87.011719 0)"/>
1760 <use xlink:href="#DejaVuSans-41" transform="translate(161.816406 0)"/>
1761 <use xlink:href="#DejaVuSans-4c" transform="translate(230.224609 0)"/>
1762 <use xlink:href="#DejaVuSans-2d" transform="translate(284.1875 0)"/>
1763 <use xlink:href="#DejaVuSans-53" transform="translate(320.271484 0)"/>
1764 <use xlink:href="#DejaVuSans-54" transform="translate(383.748047 0)"/>
1765 <use xlink:href="#DejaVuSans-41" transform="translate(437.082031 0)"/>
1766 <use xlink:href="#DejaVuSans-54" transform="translate(497.740234 0)"/>
1767 <use xlink:href="#DejaVuSans-45" transform="translate(558.824219 0)"/>
1768 <use xlink:href="#DejaVuSans-20" transform="translate(622.007812 0)"/>
1769 <use xlink:href="#DejaVuSans-44" transform="translate(653.794922 0)"/>
1770 <use xlink:href="#DejaVuSans-43" transform="translate(730.796875 0)"/>
1771 <use xlink:href="#DejaVuSans-20" transform="translate(800.621094 0)"/>
1772 <use xlink:href="#DejaVuSans-53" transform="translate(832.408203 0)"/>
1773 <use xlink:href="#DejaVuSans-54" transform="translate(895.884766 0)"/>
1774 <use xlink:href="#DejaVuSans-52" transform="translate(956.96875 0)"/>
1775 <use xlink:href="#DejaVuSans-49" transform="translate(1026.451172 0)"/>
1776 <use xlink:href="#DejaVuSans-4e" transform="translate(1055.943359 0)"/>
1777 <use xlink:href="#DejaVuSans-47" transform="translate(1130.748047 0)"/>
1778 <use xlink:href="#DejaVuSans-53" transform="translate(1208.238281 0)"/>
1779 <use xlink:href="#DejaVuSans-20" transform="translate(1271.714844 0)"/>
1780 <use xlink:href="#DejaVuSans-2014" transform="translate(1303.501953 0)"/>
1781 <use xlink:href="#DejaVuSans-20" transform="translate(1403.501953 0)"/>
1782 <use xlink:href="#DejaVuSans-34" transform="translate(1435.289062 0)"/>
1783 <use xlink:href="#DejaVuSans-20" transform="translate(1498.912109 0)"/>
1784 <use xlink:href="#DejaVuSans-73" transform="translate(1530.699219 0)"/>
1785 <use xlink:href="#DejaVuSans-74" transform="translate(1582.798828 0)"/>
1786 <use xlink:href="#DejaVuSans-72" transform="translate(1622.007812 0)"/>
1787 <use xlink:href="#DejaVuSans-69" transform="translate(1663.121094 0)"/>
1788 <use xlink:href="#DejaVuSans-6e" transform="translate(1690.904297 0)"/>
1789 <use xlink:href="#DejaVuSans-67" transform="translate(1754.283203 0)"/>
1790 <use xlink:href="#DejaVuSans-73" transform="translate(1817.759766 0)"/>
1791 <use xlink:href="#DejaVuSans-20" transform="translate(1869.859375 0)"/>
1792 <use xlink:href="#DejaVuSans-28" transform="translate(1901.646484 0)"/>
1793 <use xlink:href="#DejaVuSans-38" transform="translate(1940.660156 0)"/>
1794 <use xlink:href="#DejaVuSans-2b" transform="translate(2004.283203 0)"/>
1795 <use xlink:href="#DejaVuSans-38" transform="translate(2088.072266 0)"/>
1796 <use xlink:href="#DejaVuSans-2b" transform="translate(2151.695312 0)"/>
1797 <use xlink:href="#DejaVuSans-38" transform="translate(2235.484375 0)"/>
1798 <use xlink:href="#DejaVuSans-2b" transform="translate(2299.107422 0)"/>
1799 <use xlink:href="#DejaVuSans-37" transform="translate(2382.896484 0)"/>
1800 <use xlink:href="#DejaVuSans-53" transform="translate(2446.519531 0)"/>
1801 <use xlink:href="#DejaVuSans-29" transform="translate(2509.996094 0)"/>
1802 <use xlink:href="#DejaVuSans-20" transform="translate(2549.009766 0)"/>
1803 <use xlink:href="#DejaVuSans-61" transform="translate(2580.796875 0)"/>
1804 <use xlink:href="#DejaVuSans-63" transform="translate(2642.076172 0)"/>
1805 <use xlink:href="#DejaVuSans-72" transform="translate(2697.056641 0)"/>
1806 <use xlink:href="#DejaVuSans-6f" transform="translate(2735.919922 0)"/>
1807 <use xlink:href="#DejaVuSans-73" transform="translate(2797.101562 0)"/>
1808 <use xlink:href="#DejaVuSans-73" transform="translate(2849.201172 0)"/>
1809 <use xlink:href="#DejaVuSans-20" transform="translate(2901.300781 0)"/>
1810 <use xlink:href="#DejaVuSans-33" transform="translate(2933.087891 0)"/>
1811 <use xlink:href="#DejaVuSans-20" transform="translate(2996.710938 0)"/>
1812 <use xlink:href="#DejaVuSans-4d" transform="translate(3028.498047 0)"/>
1813 <use xlink:href="#DejaVuSans-50" transform="translate(3114.777344 0)"/>
1814 <use xlink:href="#DejaVuSans-50" transform="translate(3175.080078 0)"/>
1815 <use xlink:href="#DejaVuSans-54" transform="translate(3235.382812 0)"/>
1816 <use xlink:href="#DejaVuSans-73" transform="translate(3279.966797 0)"/>
1817 </g>
1818 </g>
1819 <g id="text_22">
1820 <!-- MPPT1 = 2×8S (paired) · MPPT2 = 8S · MPPT3 = 7S · 31 modules · 17825W DC -->
1821 <g transform="translate(58.396172 339.859064) scale(0.08 -0.08)">
1822 <defs>
1823 <path id="DejaVuSans-3d" d="M 678 2906
1824L 4684 2906
1825L 4684 2381
1826L 678 2381
1827L 678 2906
1828z
1829M 678 1631
1830L 4684 1631
1831L 4684 1100
1832L 678 1100
1833L 678 1631
1834z
1835" transform="scale(0.015625)"/>
1836 <path id="DejaVuSans-b7" d="M 684 2619
1837L 1344 2619
1838L 1344 1825
1839L 684 1825
1840L 684 2619
1841z
1842" transform="scale(0.015625)"/>
1843 <path id="DejaVuSans-75" d="M 544 1381
1844L 544 3500
1845L 1119 3500
1846L 1119 1403
1847Q 1119 906 1312 657
1848Q 1506 409 1894 409
1849Q 2359 409 2629 706
1850Q 2900 1003 2900 1516
1851L 2900 3500
1852L 3475 3500
1853L 3475 0
1854L 2900 0
1855L 2900 538
1856Q 2691 219 2414 64
1857Q 2138 -91 1772 -91
1858Q 1169 -91 856 284
1859Q 544 659 544 1381
1860z
1861M 1991 3584
1862L 1991 3584
1863z
1864" transform="scale(0.015625)"/>
1865 </defs>
1866 <use xlink:href="#DejaVuSans-4d"/>
1867 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1868 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1869 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1870 <use xlink:href="#DejaVuSans-31" transform="translate(267.96875 0)"/>
1871 <use xlink:href="#DejaVuSans-20" transform="translate(331.591797 0)"/>
1872 <use xlink:href="#DejaVuSans-3d" transform="translate(363.378906 0)"/>
1873 <use xlink:href="#DejaVuSans-20" transform="translate(447.167969 0)"/>
1874 <use xlink:href="#DejaVuSans-32" transform="translate(478.955078 0)"/>
1875 <use xlink:href="#DejaVuSans-d7" transform="translate(542.578125 0)"/>
1876 <use xlink:href="#DejaVuSans-38" transform="translate(626.367188 0)"/>
1877 <use xlink:href="#DejaVuSans-53" transform="translate(689.990234 0)"/>
1878 <use xlink:href="#DejaVuSans-20" transform="translate(753.466797 0)"/>
1879 <use xlink:href="#DejaVuSans-28" transform="translate(785.253906 0)"/>
1880 <use xlink:href="#DejaVuSans-70" transform="translate(824.267578 0)"/>
1881 <use xlink:href="#DejaVuSans-61" transform="translate(887.744141 0)"/>
1882 <use xlink:href="#DejaVuSans-69" transform="translate(949.023438 0)"/>
1883 <use xlink:href="#DejaVuSans-72" transform="translate(976.806641 0)"/>
1884 <use xlink:href="#DejaVuSans-65" transform="translate(1015.669922 0)"/>
1885 <use xlink:href="#DejaVuSans-64" transform="translate(1077.193359 0)"/>
1886 <use xlink:href="#DejaVuSans-29" transform="translate(1140.669922 0)"/>
1887 <use xlink:href="#DejaVuSans-20" transform="translate(1179.683594 0)"/>
1888 <use xlink:href="#DejaVuSans-b7" transform="translate(1211.470703 0)"/>
1889 <use xlink:href="#DejaVuSans-20" transform="translate(1243.257812 0)"/>
1890 <use xlink:href="#DejaVuSans-4d" transform="translate(1275.044922 0)"/>
1891 <use xlink:href="#DejaVuSans-50" transform="translate(1361.324219 0)"/>
1892 <use xlink:href="#DejaVuSans-50" transform="translate(1421.626953 0)"/>
1893 <use xlink:href="#DejaVuSans-54" transform="translate(1481.929688 0)"/>
1894 <use xlink:href="#DejaVuSans-32" transform="translate(1543.013672 0)"/>
1895 <use xlink:href="#DejaVuSans-20" transform="translate(1606.636719 0)"/>
1896 <use xlink:href="#DejaVuSans-3d" transform="translate(1638.423828 0)"/>
1897 <use xlink:href="#DejaVuSans-20" transform="translate(1722.212891 0)"/>
1898 <use xlink:href="#DejaVuSans-38" transform="translate(1754 0)"/>
1899 <use xlink:href="#DejaVuSans-53" transform="translate(1817.623047 0)"/>
1900 <use xlink:href="#DejaVuSans-20" transform="translate(1881.099609 0)"/>
1901 <use xlink:href="#DejaVuSans-b7" transform="translate(1912.886719 0)"/>
1902 <use xlink:href="#DejaVuSans-20" transform="translate(1944.673828 0)"/>
1903 <use xlink:href="#DejaVuSans-4d" transform="translate(1976.460938 0)"/>
1904 <use xlink:href="#DejaVuSans-50" transform="translate(2062.740234 0)"/>
1905 <use xlink:href="#DejaVuSans-50" transform="translate(2123.042969 0)"/>
1906 <use xlink:href="#DejaVuSans-54" transform="translate(2183.345703 0)"/>
1907 <use xlink:href="#DejaVuSans-33" transform="translate(2244.429688 0)"/>
1908 <use xlink:href="#DejaVuSans-20" transform="translate(2308.052734 0)"/>
1909 <use xlink:href="#DejaVuSans-3d" transform="translate(2339.839844 0)"/>
1910 <use xlink:href="#DejaVuSans-20" transform="translate(2423.628906 0)"/>
1911 <use xlink:href="#DejaVuSans-37" transform="translate(2455.416016 0)"/>
1912 <use xlink:href="#DejaVuSans-53" transform="translate(2519.039062 0)"/>
1913 <use xlink:href="#DejaVuSans-20" transform="translate(2582.515625 0)"/>
1914 <use xlink:href="#DejaVuSans-b7" transform="translate(2614.302734 0)"/>
1915 <use xlink:href="#DejaVuSans-20" transform="translate(2646.089844 0)"/>
1916 <use xlink:href="#DejaVuSans-33" transform="translate(2677.876953 0)"/>
1917 <use xlink:href="#DejaVuSans-31" transform="translate(2741.5 0)"/>
1918 <use xlink:href="#DejaVuSans-20" transform="translate(2805.123047 0)"/>
1919 <use xlink:href="#DejaVuSans-6d" transform="translate(2836.910156 0)"/>
1920 <use xlink:href="#DejaVuSans-6f" transform="translate(2934.322266 0)"/>
1921 <use xlink:href="#DejaVuSans-64" transform="translate(2995.503906 0)"/>
1922 <use xlink:href="#DejaVuSans-75" transform="translate(3058.980469 0)"/>
1923 <use xlink:href="#DejaVuSans-6c" transform="translate(3122.359375 0)"/>
1924 <use xlink:href="#DejaVuSans-65" transform="translate(3150.142578 0)"/>
1925 <use xlink:href="#DejaVuSans-73" transform="translate(3211.666016 0)"/>
1926 <use xlink:href="#DejaVuSans-20" transform="translate(3263.765625 0)"/>
1927 <use xlink:href="#DejaVuSans-b7" transform="translate(3295.552734 0)"/>
1928 <use xlink:href="#DejaVuSans-20" transform="translate(3327.339844 0)"/>
1929 <use xlink:href="#DejaVuSans-31" transform="translate(3359.126953 0)"/>
1930 <use xlink:href="#DejaVuSans-37" transform="translate(3422.75 0)"/>
1931 <use xlink:href="#DejaVuSans-38" transform="translate(3486.373047 0)"/>
1932 <use xlink:href="#DejaVuSans-32" transform="translate(3549.996094 0)"/>
1933 <use xlink:href="#DejaVuSans-35" transform="translate(3613.619141 0)"/>
1934 <use xlink:href="#DejaVuSans-57" transform="translate(3677.242188 0)"/>
1935 <use xlink:href="#DejaVuSans-20" transform="translate(3776.119141 0)"/>
1936 <use xlink:href="#DejaVuSans-44" transform="translate(3807.90625 0)"/>
1937 <use xlink:href="#DejaVuSans-43" transform="translate(3884.908203 0)"/>
1938 </g>
1939 <!-- MAX 8S: cold Voc 491.5V ≤ 550V fault / 600V abs -->
1940 <g transform="translate(117.363047 347.601564) scale(0.08 -0.08)">
1941 <defs>
1942 <path id="DejaVuSans-58" d="M 403 4666
1943L 1081 4666
1944L 2241 2931
1945L 3406 4666
1946L 4084 4666
1947L 2584 2425
1948L 4184 0
1949L 3506 0
1950L 2194 1984
1951L 872 0
1952L 191 0
1953L 1856 2491
1954L 403 4666
1955z
1956" transform="scale(0.015625)"/>
1957 <path id="DejaVuSans-3a" d="M 750 794
1958L 1409 794
1959L 1409 0
1960L 750 0
1961L 750 794
1962z
1963M 750 3309
1964L 1409 3309
1965L 1409 2516
1966L 750 2516
1967L 750 3309
1968z
1969" transform="scale(0.015625)"/>
1970 <path id="DejaVuSans-2e" d="M 684 794
1971L 1344 794
1972L 1344 0
1973L 684 0
1974L 684 794
1975z
1976" transform="scale(0.015625)"/>
1977 <path id="DejaVuSans-2264" d="M 4684 3175
1978L 1684 2309
1979L 4684 1453
1980L 4684 897
1981L 678 2047
1982L 678 2578
1983L 4684 3725
1984L 4684 3175
1985z
1986M 678 531
1987L 4684 531
1988L 4684 0
1989L 678 0
1990L 678 531
1991z
1992" transform="scale(0.015625)"/>
1993 <path id="DejaVuSans-66" d="M 2375 4863
1994L 2375 4384
1995L 1825 4384
1996Q 1516 4384 1395 4259
1997Q 1275 4134 1275 3809
1998L 1275 3500
1999L 2222 3500
2000L 2222 3053
2001L 1275 3053
2002L 1275 0
2003L 697 0
2004L 697 3053
2005L 147 3053
2006L 147 3500
2007L 697 3500
2008L 697 3744
2009Q 697 4328 969 4595
2010Q 1241 4863 1831 4863
2011L 2375 4863
2012z
2013" transform="scale(0.015625)"/>
2014 <path id="DejaVuSans-2f" d="M 1625 4666
2015L 2156 4666
2016L 531 -594
2017L 0 -594
2018L 1625 4666
2019z
2020" transform="scale(0.015625)"/>
2021 <path id="DejaVuSans-36" d="M 2113 2584
2022Q 1688 2584 1439 2293
2023Q 1191 2003 1191 1497
2024Q 1191 994 1439 701
2025Q 1688 409 2113 409
2026Q 2538 409 2786 701
2027Q 3034 994 3034 1497
2028Q 3034 2003 2786 2293
2029Q 2538 2584 2113 2584
2030z
2031M 3366 4563
2032L 3366 3988
2033Q 3128 4100 2886 4159
2034Q 2644 4219 2406 4219
2035Q 1781 4219 1451 3797
2036Q 1122 3375 1075 2522
2037Q 1259 2794 1537 2939
2038Q 1816 3084 2150 3084
2039Q 2853 3084 3261 2657
2040Q 3669 2231 3669 1497
2041Q 3669 778 3244 343
2042Q 2819 -91 2113 -91
2043Q 1303 -91 875 529
2044Q 447 1150 447 2328
2045Q 447 3434 972 4092
2046Q 1497 4750 2381 4750
2047Q 2619 4750 2861 4703
2048Q 3103 4656 3366 4563
2049z
2050" transform="scale(0.015625)"/>
2051 <path id="DejaVuSans-62" d="M 3116 1747
2052Q 3116 2381 2855 2742
2053Q 2594 3103 2138 3103
2054Q 1681 3103 1420 2742
2055Q 1159 2381 1159 1747
2056Q 1159 1113 1420 752
2057Q 1681 391 2138 391
2058Q 2594 391 2855 752
2059Q 3116 1113 3116 1747
2060z
2061M 1159 2969
2062Q 1341 3281 1617 3432
2063Q 1894 3584 2278 3584
2064Q 2916 3584 3314 3078
2065Q 3713 2572 3713 1747
2066Q 3713 922 3314 415
2067Q 2916 -91 2278 -91
2068Q 1894 -91 1617 61
2069Q 1341 213 1159 525
2070L 1159 0
2071L 581 0
2072L 581 4863
2073L 1159 4863
2074L 1159 2969
2075z
2076" transform="scale(0.015625)"/>
2077 </defs>
2078 <use xlink:href="#DejaVuSans-4d"/>
2079 <use xlink:href="#DejaVuSans-41" transform="translate(86.279297 0)"/>
2080 <use xlink:href="#DejaVuSans-58" transform="translate(154.6875 0)"/>
2081 <use xlink:href="#DejaVuSans-20" transform="translate(223.193359 0)"/>
2082 <use xlink:href="#DejaVuSans-38" transform="translate(254.980469 0)"/>
2083 <use xlink:href="#DejaVuSans-53" transform="translate(318.603516 0)"/>
2084 <use xlink:href="#DejaVuSans-3a" transform="translate(382.080078 0)"/>
2085 <use xlink:href="#DejaVuSans-20" transform="translate(415.771484 0)"/>
2086 <use xlink:href="#DejaVuSans-63" transform="translate(447.558594 0)"/>
2087 <use xlink:href="#DejaVuSans-6f" transform="translate(502.539062 0)"/>
2088 <use xlink:href="#DejaVuSans-6c" transform="translate(563.720703 0)"/>
2089 <use xlink:href="#DejaVuSans-64" transform="translate(591.503906 0)"/>
2090 <use xlink:href="#DejaVuSans-20" transform="translate(654.980469 0)"/>
2091 <use xlink:href="#DejaVuSans-56" transform="translate(686.767578 0)"/>
2092 <use xlink:href="#DejaVuSans-6f" transform="translate(747.425781 0)"/>
2093 <use xlink:href="#DejaVuSans-63" transform="translate(808.607422 0)"/>
2094 <use xlink:href="#DejaVuSans-20" transform="translate(863.587891 0)"/>
2095 <use xlink:href="#DejaVuSans-34" transform="translate(895.375 0)"/>
2096 <use xlink:href="#DejaVuSans-39" transform="translate(958.998047 0)"/>
2097 <use xlink:href="#DejaVuSans-31" transform="translate(1022.621094 0)"/>
2098 <use xlink:href="#DejaVuSans-2e" transform="translate(1086.244141 0)"/>
2099 <use xlink:href="#DejaVuSans-35" transform="translate(1118.03125 0)"/>
2100 <use xlink:href="#DejaVuSans-56" transform="translate(1181.654297 0)"/>
2101 <use xlink:href="#DejaVuSans-20" transform="translate(1250.0625 0)"/>
2102 <use xlink:href="#DejaVuSans-2264" transform="translate(1281.849609 0)"/>
2103 <use xlink:href="#DejaVuSans-20" transform="translate(1365.638672 0)"/>
2104 <use xlink:href="#DejaVuSans-35" transform="translate(1397.425781 0)"/>
2105 <use xlink:href="#DejaVuSans-35" transform="translate(1461.048828 0)"/>
2106 <use xlink:href="#DejaVuSans-30" transform="translate(1524.671875 0)"/>
2107 <use xlink:href="#DejaVuSans-56" transform="translate(1588.294922 0)"/>
2108 <use xlink:href="#DejaVuSans-20" transform="translate(1656.703125 0)"/>
2109 <use xlink:href="#DejaVuSans-66" transform="translate(1688.490234 0)"/>
2110 <use xlink:href="#DejaVuSans-61" transform="translate(1723.695312 0)"/>
2111 <use xlink:href="#DejaVuSans-75" transform="translate(1784.974609 0)"/>
2112 <use xlink:href="#DejaVuSans-6c" transform="translate(1848.353516 0)"/>
2113 <use xlink:href="#DejaVuSans-74" transform="translate(1876.136719 0)"/>
2114 <use xlink:href="#DejaVuSans-20" transform="translate(1915.345703 0)"/>
2115 <use xlink:href="#DejaVuSans-2f" transform="translate(1947.132812 0)"/>
2116 <use xlink:href="#DejaVuSans-20" transform="translate(1980.824219 0)"/>
2117 <use xlink:href="#DejaVuSans-36" transform="translate(2012.611328 0)"/>
2118 <use xlink:href="#DejaVuSans-30" transform="translate(2076.234375 0)"/>
2119 <use xlink:href="#DejaVuSans-30" transform="translate(2139.857422 0)"/>
2120 <use xlink:href="#DejaVuSans-56" transform="translate(2203.480469 0)"/>
2121 <use xlink:href="#DejaVuSans-20" transform="translate(2271.888672 0)"/>
2122 <use xlink:href="#DejaVuSans-61" transform="translate(2303.675781 0)"/>
2123 <use xlink:href="#DejaVuSans-62" transform="translate(2364.955078 0)"/>
2124 <use xlink:href="#DejaVuSans-73" transform="translate(2428.431641 0)"/>
2125 </g>
2126 <!-- NO source fuse (≤2 parallel strings, backfeed 17.3A ≤ 30A module) · no combiner -->
2127 <g transform="translate(52.134297 355.344064) scale(0.08 -0.08)">
2128 <defs>
2129 <path id="DejaVuSans-4f" d="M 2522 4238
2130Q 1834 4238 1429 3725
2131Q 1025 3213 1025 2328
2132Q 1025 1447 1429 934
2133Q 1834 422 2522 422
2134Q 3209 422 3611 934
2135Q 4013 1447 4013 2328
2136Q 4013 3213 3611 3725
2137Q 3209 4238 2522 4238
2138z
2139M 2522 4750
2140Q 3503 4750 4090 4092
2141Q 4678 3434 4678 2328
2142Q 4678 1225 4090 567
2143Q 3503 -91 2522 -91
2144Q 1538 -91 948 565
2145Q 359 1222 359 2328
2146Q 359 3434 948 4092
2147Q 1538 4750 2522 4750
2148z
2149" transform="scale(0.015625)"/>
2150 <path id="DejaVuSans-2c" d="M 750 794
2151L 1409 794
2152L 1409 256
2153L 897 -744
2154L 494 -744
2155L 750 256
2156L 750 794
2157z
2158" transform="scale(0.015625)"/>
2159 </defs>
2160 <use xlink:href="#DejaVuSans-4e"/>
2161 <use xlink:href="#DejaVuSans-4f" transform="translate(74.804688 0)"/>
2162 <use xlink:href="#DejaVuSans-20" transform="translate(153.515625 0)"/>
2163 <use xlink:href="#DejaVuSans-73" transform="translate(185.302734 0)"/>
2164 <use xlink:href="#DejaVuSans-6f" transform="translate(237.402344 0)"/>
2165 <use xlink:href="#DejaVuSans-75" transform="translate(298.583984 0)"/>
2166 <use xlink:href="#DejaVuSans-72" transform="translate(361.962891 0)"/>
2167 <use xlink:href="#DejaVuSans-63" transform="translate(400.826172 0)"/>
2168 <use xlink:href="#DejaVuSans-65" transform="translate(455.806641 0)"/>
2169 <use xlink:href="#DejaVuSans-20" transform="translate(517.330078 0)"/>
2170 <use xlink:href="#DejaVuSans-66" transform="translate(549.117188 0)"/>
2171 <use xlink:href="#DejaVuSans-75" transform="translate(584.322266 0)"/>
2172 <use xlink:href="#DejaVuSans-73" transform="translate(647.701172 0)"/>
2173 <use xlink:href="#DejaVuSans-65" transform="translate(699.800781 0)"/>
2174 <use xlink:href="#DejaVuSans-20" transform="translate(761.324219 0)"/>
2175 <use xlink:href="#DejaVuSans-28" transform="translate(793.111328 0)"/>
2176 <use xlink:href="#DejaVuSans-2264" transform="translate(832.125 0)"/>
2177 <use xlink:href="#DejaVuSans-32" transform="translate(915.914062 0)"/>
2178 <use xlink:href="#DejaVuSans-20" transform="translate(979.537109 0)"/>
2179 <use xlink:href="#DejaVuSans-70" transform="translate(1011.324219 0)"/>
2180 <use xlink:href="#DejaVuSans-61" transform="translate(1074.800781 0)"/>
2181 <use xlink:href="#DejaVuSans-72" transform="translate(1136.080078 0)"/>
2182 <use xlink:href="#DejaVuSans-61" transform="translate(1177.193359 0)"/>
2183 <use xlink:href="#DejaVuSans-6c" transform="translate(1238.472656 0)"/>
2184 <use xlink:href="#DejaVuSans-6c" transform="translate(1266.255859 0)"/>
2185 <use xlink:href="#DejaVuSans-65" transform="translate(1294.039062 0)"/>
2186 <use xlink:href="#DejaVuSans-6c" transform="translate(1355.5625 0)"/>
2187 <use xlink:href="#DejaVuSans-20" transform="translate(1383.345703 0)"/>
2188 <use xlink:href="#DejaVuSans-73" transform="translate(1415.132812 0)"/>
2189 <use xlink:href="#DejaVuSans-74" transform="translate(1467.232422 0)"/>
2190 <use xlink:href="#DejaVuSans-72" transform="translate(1506.441406 0)"/>
2191 <use xlink:href="#DejaVuSans-69" transform="translate(1547.554688 0)"/>
2192 <use xlink:href="#DejaVuSans-6e" transform="translate(1575.337891 0)"/>
2193 <use xlink:href="#DejaVuSans-67" transform="translate(1638.716797 0)"/>
2194 <use xlink:href="#DejaVuSans-73" transform="translate(1702.193359 0)"/>
2195 <use xlink:href="#DejaVuSans-2c" transform="translate(1754.292969 0)"/>
2196 <use xlink:href="#DejaVuSans-20" transform="translate(1786.080078 0)"/>
2197 <use xlink:href="#DejaVuSans-62" transform="translate(1817.867188 0)"/>
2198 <use xlink:href="#DejaVuSans-61" transform="translate(1881.34375 0)"/>
2199 <use xlink:href="#DejaVuSans-63" transform="translate(1942.623047 0)"/>
2200 <use xlink:href="#DejaVuSans-6b" transform="translate(1997.603516 0)"/>
2201 <use xlink:href="#DejaVuSans-66" transform="translate(2055.513672 0)"/>
2202 <use xlink:href="#DejaVuSans-65" transform="translate(2090.71875 0)"/>
2203 <use xlink:href="#DejaVuSans-65" transform="translate(2152.242188 0)"/>
2204 <use xlink:href="#DejaVuSans-64" transform="translate(2213.765625 0)"/>
2205 <use xlink:href="#DejaVuSans-20" transform="translate(2277.242188 0)"/>
2206 <use xlink:href="#DejaVuSans-31" transform="translate(2309.029297 0)"/>
2207 <use xlink:href="#DejaVuSans-37" transform="translate(2372.652344 0)"/>
2208 <use xlink:href="#DejaVuSans-2e" transform="translate(2436.275391 0)"/>
2209 <use xlink:href="#DejaVuSans-33" transform="translate(2468.0625 0)"/>
2210 <use xlink:href="#DejaVuSans-41" transform="translate(2531.685547 0)"/>
2211 <use xlink:href="#DejaVuSans-20" transform="translate(2600.09375 0)"/>
2212 <use xlink:href="#DejaVuSans-2264" transform="translate(2631.880859 0)"/>
2213 <use xlink:href="#DejaVuSans-20" transform="translate(2715.669922 0)"/>
2214 <use xlink:href="#DejaVuSans-33" transform="translate(2747.457031 0)"/>
2215 <use xlink:href="#DejaVuSans-30" transform="translate(2811.080078 0)"/>
2216 <use xlink:href="#DejaVuSans-41" transform="translate(2874.703125 0)"/>
2217 <use xlink:href="#DejaVuSans-20" transform="translate(2943.111328 0)"/>
2218 <use xlink:href="#DejaVuSans-6d" transform="translate(2974.898438 0)"/>
2219 <use xlink:href="#DejaVuSans-6f" transform="translate(3072.310547 0)"/>
2220 <use xlink:href="#DejaVuSans-64" transform="translate(3133.492188 0)"/>
2221 <use xlink:href="#DejaVuSans-75" transform="translate(3196.96875 0)"/>
2222 <use xlink:href="#DejaVuSans-6c" transform="translate(3260.347656 0)"/>
2223 <use xlink:href="#DejaVuSans-65" transform="translate(3288.130859 0)"/>
2224 <use xlink:href="#DejaVuSans-29" transform="translate(3349.654297 0)"/>
2225 <use xlink:href="#DejaVuSans-20" transform="translate(3388.667969 0)"/>
2226 <use xlink:href="#DejaVuSans-b7" transform="translate(3420.455078 0)"/>
2227 <use xlink:href="#DejaVuSans-20" transform="translate(3452.242188 0)"/>
2228 <use xlink:href="#DejaVuSans-6e" transform="translate(3484.029297 0)"/>
2229 <use xlink:href="#DejaVuSans-6f" transform="translate(3547.408203 0)"/>
2230 <use xlink:href="#DejaVuSans-20" transform="translate(3608.589844 0)"/>
2231 <use xlink:href="#DejaVuSans-63" transform="translate(3640.376953 0)"/>
2232 <use xlink:href="#DejaVuSans-6f" transform="translate(3695.357422 0)"/>
2233 <use xlink:href="#DejaVuSans-6d" transform="translate(3756.539062 0)"/>
2234 <use xlink:href="#DejaVuSans-62" transform="translate(3853.951172 0)"/>
2235 <use xlink:href="#DejaVuSans-69" transform="translate(3917.427734 0)"/>
2236 <use xlink:href="#DejaVuSans-6e" transform="translate(3945.210938 0)"/>
2237 <use xlink:href="#DejaVuSans-65" transform="translate(4008.589844 0)"/>
2238 <use xlink:href="#DejaVuSans-72" transform="translate(4070.113281 0)"/>
2239 </g>
2240 </g>
2241 </g>
2242 </g>
2243 <defs>
2244 <clipPath id="p797122bbab">
2245 <rect x="14.983047" y="0" width="403.2" height="362.045815"/>
2246 </clipPath>
2247 </defs>
2248</svg>
artifacts/phase2-pathB/phase2-bom.md +51 -0
……@@ -0,0 +1,51 @@
1# Phase 2 — Electrical Bill of Materials (added equipment, final state)
2
3**Quantities are computed** (string layout `01`, conductors `03`, battery `04`); **dollar figures are ESTIMATES**
4(sourced from Swarm §10 / Key Decisions / `09_phase2.py`), clearly labeled as such. The remaining **panels are $0**
5(already owned — sunk in the pallet). Structure / shed / racking / trenching civil are **out of scope**.
6
7Owner's chosen final state (2026-06-03): **sell the 6000XP → 1× EG4 18kPV**, **+1 Docan S3 (→ 2 total)**, battery adjacent,
817 remaining panels co-located on the reused 200 ft trench.
9
10## Major equipment
11
12| Item | Qty | Computed basis | Cost (estimate) | Source |
13|---|---|---|---|---|
14| **EG4 18kPV-12LV** hybrid inverter | 1 | 12 kW AC / 18 kW PV / 3 MPPT hosts all 31 panels (`01`) | **$4,500** retail | Swarm §10 |
15| — less **EG4 6000XP** resale (sold) | −1 | replaced; strong secondary market | **−$800 to −1,000** | Swarm §10 |
16| **EG4 18kPV net** | | | **≈ $3,500 – 3,700** | |
17| **Docan S3 16 kWh** pack (added) | +1 (→ 2 total) | 2 packs = 25.7 kWh usable; 124.7 A/pack ≤ 150 A BMS (`04`) | **$1,758 – 2,000** | Key Decisions |
18| **Waaree 575W** panels (remaining) | 17 (→ 31 total) | full pallet 17.8 kW (`01`/`09`) | **$0** (owned) | — |
19
20## Balance of system (computed gauges/ratings; estimated $)
21
22| Item | Qty / spec | Computed basis (`03`/`04`) | Notes |
23|---|---|---|---|
24| PV wire **8 AWG** THWN-2 / PV (90 °C) | ~1,600 ft (4 strings × 2 × 200 ft) | Vdrop-driven, 1.33 % @ 200 ft, 8 CCC | reuse Phase-1's ~800 ft (2 strings) + ~800 ft new |
25| PV EGC **10 AWG** | ~200 ft+ | 690.45 (no source OCPD) | — |
26| AC feeder **4 AWG** Cu + **8 AWG** EGC | ~10 ft ×2 + EGC | 50 A × 125 % → 70 A; 240.4(D) | upsize from Phase-1's 8 AWG |
27| **70 A 2-pole** breaker (AC output) | 1 | ≥ 125 % × 50 A (`03`) | replaces Phase-1's 35 A |
28| Battery **2/0** Cu (per-pack) + **6 AWG** EGC | 2 packs × ~5 ft ×2 | 124.7 A/pack, 175 A Class-T (`04`) | 1 set reused from Phase 1 |
29| Battery bank cable **2× 4/0** (or 400 kcmil / 2×2/0) per polarity | ~10 ft × 4 (2 parallel ×2) | 249 A, ≥ 312.5 A ampacity (`03`) | 2×4/0 = 460 A, low-loss, flexible |
30| **DC busbar, 250 A** (e.g. Lynx-style, + / −) | 1 | bank busing point for 2 packs (`03`/`04`) | — |
31| **175 A Class-T** fuse + holder (DC, 20 kAIC) | 2 (1 added) | per-pack primary OCP (`04`) | 1 reused from Phase 1 |
32| **Bank disconnect, 250 A DC** (lockable) | 1 | 690.15 / 706.30 / 480.7 | — |
33| Per-pack disconnects | 2 | 706.30 | — |
34| External DC/PV disconnect (load-break) | 1 | 690.13 service isolation (18kPV has integral) | — |
35| 2nd PV conduit (Sched-40 PVC) run | ~200 ft | split 8 CCC → 2 conduits (`03`/`05`) | squirrel/UV (Swarm §16) |
36| Lugs, MC4, labels/placards (690.53/54/56) | set | from computed ratings | ACTION item |
37| **No combiner box** | 0 | 18kPV takes strings direct (`01`, datasheet) | — |
38
39## Cost roll-up (ESTIMATE — not computed; energy/sizing above ARE computed)
40
41| Bundle line | Estimate |
42|---|---|
43| EG4 18kPV (net of 6000XP resale) | $3,500 – 3,700 |
44| +1 Docan S3 pack | $1,758 – 2,000 |
45| Remaining 17 Waaree panels | $0 (owned) |
46| BoS (PV/AC/battery wire, busbar, Class-T, 70 A breaker, bank disconnect, conduit, lugs, labels) | $800 – 1,500 |
47| **Total added (Phase 2, owner's chosen config)** | **≈ $6,060 – 7,200** |
48
49*This sits between `09_phase2.py`'s pre-baked "lean" and "recommended" bundles because the chosen config is the 18kPV (not a
50parallel 6000XP) with **only one added pack** (2 total, not 3). Excludes structure/shed/fire-code (out of scope) and the generator
51(Phase-1 infrastructure).*
artifacts/phase2-pathB/phase2-design.md +190 -0
……@@ -0,0 +1,190 @@
1# PRSM Off-Grid Solar — Phase 2 / Path B (1× EG4 18kPV) — RETAINED ALTERNATIVE
2
3> **STATUS — RETAINED ALTERNATIVE (not the selected build).** The owner selected **Path A (2× EG4 6000XP)** on 2026-06-03;
4> the build follows [`../phase2/`](../phase2/phase2-design.md). This Path-B (18kPV) design is fully validated and kept on file
5> as the documented alternative. Where the text below says "final"/"chosen", read it as "the Path-B design" — Path A is the build.
6
7**Scope:** Final full-build electrical state — re-string the full 31-panel pallet, expand the inverter,
8expand the battery bank, re-validate every conductor/OCPD, render the final-state diagrams. Structure,
9the battery shed, NFPA 855 fire code, and pricing-beyond-estimate are **out of scope (flagged, not engineered)**.
10**System (final):** 31× Waaree 575W (17.8 kW DC) → **1× EG4 18kPV-12LV** (12 kW AC / 18 kW PV, 3 MPPT) →
11**2× Docan S3** (25.7 kWh usable) → subfed main panel + generator AC-IN · off-grid · NE Vermont (NEK) · **NEC 2023**.
12**Date:** 2026-06-03 · **Builds on the validated Phase-1 design** (`artifacts/electrical-design.md`) — extends it, does not redo it.
13
14> **Code discipline (CLAUDE.md):** every load-bearing number below was computed by a script in `scripts/` (run with `--phase2`)
15> and is cited by filename. Nothing is estimated. Reproduce: `~/.venvs/prsm-electrical/bin/python scripts/0N_*.py --phase2`.
16> Computed outputs live in `artifacts/results/*_phase2.json`. The Phase-2 config is the `phase2:` block in `site.yaml`
17> (deep-merged over the base by `common.load_site(phase2=True)`), so `site.yaml` stays the single source and Phase-1 still reproduces.
18
19---
20
21## 0. Owner decisions (confirmed 2026-06-03) + the inverter that changed the rules
22
23| Decision | Choice | Driver |
24|---|---|---|
25| **Inverter path** | **B — sell the 6000XP, fit one EG4 18kPV** | Swarm §10 (>10 kW); only path that hosts all 31 panels |
26| **Battery count** | **2× Docan S3** (25.7 kWh usable) | Swarm §6 minimum; generator covers deep autonomy |
27| **Battery siting** | Adjacent to inverter (~10 ft, as Phase 1) | best Vdrop at the 250 A bank current |
28| **New PV runs** | 17 remaining panels co-located w/ Phase-1 array; reuse the 200 ft trench | no new trench leg |
29
30**The single most important Phase-2 finding:** the Phase-1 "**≤ 7S / ≤ 480 V**" rule was *specific to the 6000XP's*
31480 V design / 500 V absolute ceiling. The **EG4 18kPV raises the ceiling to 550 V (MPPT high-voltage fault protection) /
32600 V (absolute)**, so **8 modules in series (491.5 V cold) is now SAFE** — and it is what lets the full 31-panel pallet
33fit into the 18kPV's four string inputs. This was re-derived four independent ways (§1).
34
35---
36
37## 1. PV string configuration — the binding safety constraint · `scripts/01_string_sizing.py --phase2`
38
39**Result: 4 strings — MPPT1 = 8S + 8S (paired), MPPT2 = 8S, MPPT3 = 7S — 31 modules, 17,825 W DC.**
40
41Cold-weather open-circuit voltage (NEC 690.7) at the **−40 °C** NEK design low (same module as Phase 1), **incl. a bifacial rear-gain adder**:
42
43| Quantity | Value | Check |
44|---|---|---|
45| Voc per module, −40 °C (temp only) | **61.14 V** | analytic 690.7 linear |
46| Voc per module, pvlib CEC single-diode | **61.26 V** | independent — agrees to **0.12 V** |
47| Bifacial rear-gain adder | +0.30 V | rear 0.20 × bifaciality 0.80 |
48| **Voc per module used (cold + bifacial)** | **61.44 V** | binding value |
49| **Max modules in series ≤ 550 V** | **8** | NEC 690.7 binding result |
50| **8S string cold Voc (longest string)** | **491.5 V** | **≤ 550 V fault ceiling (PASS, 58.5 V margin)** · ≤ 600 V abs (108.5 V) |
51| 9S string cold Voc | 553.0 V | **FAILS 550 V (−3.0 V); REJECTED** — would nuisance-fault the MPPT in cold weather |
52
53**EG4 18kPV string-input topology (datasheet-confirmed):** 3 MPPTs, **inputs per MPPT = 2 / 1 / 1** (max 4 strings),
54max usable input 25 / 15 / 15 A, max Isc 31 / 19 / 19 A per MPPT. Each string is its own homerun to a dedicated input —
55**no combiner box** (per the datasheet). The 31-panel layout and per-MPPT validation:
56
57| MPPT | Strings | Cold Voc | Cold Vmp (≤500 V) | Hot Vmp (≥140 V) | Isc vs rating | Imp vs usable | Power |
58|---|---|---|---|---|---|---|---|
59| **MPPT1** | 2 × 8S (paired, equal) | 491.5 V ✓ | 430 V ✓ | 296 V ✓ | 27.7 / 31 A ✓ | 26.2 / 25 A → **minor peak clip** | 9,200 W |
60| **MPPT2** | 1 × 8S | 491.5 V ✓ | 430 V ✓ | 296 V ✓ | 13.9 / 19 A ✓ | 13.1 / 15 A ✓ | 4,600 W |
61| **MPPT3** | 1 × 7S | 430.1 V ✓ | 376 V ✓ | 259 V ✓ | 13.9 / 19 A ✓ | 13.1 / 15 A ✓ | 4,025 W |
62
63- **MPPT1 peak-current note (not a fault):** the two paralleled 8S strings draw Imp 26.2 A vs the 25 A *usable* input —
64 the MPPT current-clips ≈ 1.2 A only at rare full-STC peaks (negligible in a Vermont winter). It is **safe**: the combined
65 **Isc 27.7 A < 31 A MPPT1 short-circuit rating**, with 3.3 A margin.
66- **Array DC 17,825 W ≤ 18,000 W** max-utilized (and ≤ 21,000 W recommended). MPP voltages sit inside the 140–500 V window
67 in all conditions (8S cold Vmp 430 V is comfortably under the 500 V MPPT-track max — note this is why the 6000XP, with its
68 385 V MPPT max, could not have run 8S even if its voltage ceiling allowed it).
69
70**Quadruple-validated (a cold-Voc error is a safety issue):**
711. Analytic NEC 690.7 linear correction → module Voc **61.14 V**, 8S = 491.5 V.
722. pvlib CEC six-parameter single-diode → module Voc **61.26 V** (agrees to 0.12 V).
733. **vocmax** (the named NEC-690.7 tool, pinned venv) `01b_vocmax.py --phase2` → module Voc **61.14 V**, **max 8 modules ≤ 550 V**.
744. **Independent adversarial agent** (re-keyed the datasheet fresh, read no project files): *"8S = 491.5 V is the correct
75 safe maximum, clearing 550 V by 58.5 V (10.6%); 9S = 553 V must NOT be built — it overruns 550 V even before the bifacial
76 adder (550.25 V), and 'fits under 600' is a trap because the binding constraint is 550 V."*
77
78> **Carry-forward for SLD/labels:** array max system voltage = **491.5 V** (8S). Do not extend any string to 9S.
79
80---
81
82## 2. Conductors, voltage drop & overcurrent · `scripts/03_conductors.py --phase2`
83
84NEC 690.8 design current + 310.15(B)/(C) derates + 240.4(D) + Chapter 9 Table 8 voltage drop. Tables in `scripts/nec_tables.py`.
85
86| Run | Cont. current | Gauge (Cu) | Driver | Vdrop | OCPD | EGC |
87|---|---|---|---|---|---|---|
88| **PV string** array→18kPV (×4 homeruns) | Imp 13.11 A | **8 AWG** | voltage-drop | **1.33 %** @200 ft (0.99/1.33/1.66 % @150/200/250) | **none req.** (690.9(A) Exc.) | 10 AWG |
89| **AC output** 18kPV→main panel | 50 A | **4 AWG** | 240.4(D) | **0.13 %** | **70 A 2-pole** | 8 AWG |
90| **Battery per-pack** pack→busbar (×2) | 124.7 A | **2/0 AWG** | ampacity | **0.24 %** | **175 A Class-T** (each) | 6 AWG |
91| **Battery bank** busbar→18kPV | 249.3 A | **400 kcmil** (or 2×2/0 / 2×4/0) | ampacity | **0.31 %** | per-pack (see §3) | 4 AWG |
92
93- **PV string — voltage-drop-driven, holds 8 AWG.** Four strings now share the 200 ft trench = **8 current-carrying
94 conductors** (0.70 fill at 40 °C); 8 AWG still passes ampacity (derated 35 A ≥ 17.3 A req) and Vdrop ≤ 2 % across the full
95 150–250 ft range. **Split into two conduits** to relax the fill (recommended). 90 °C THWN-2 / PV wire in Sched-40 PVC.
96- **No PV source fusing (690.9(A) Exc.):** MPPT1 parallels only **2** strings → max fault backfeed from the one other string =
97 1.25 × Isc = **17.3 A ≤ 30 A module series fuse**. (Three or more parallel strings would require fuses.) MPPT2/3 are single strings.
98- **AC feeder jumps to 4 AWG / 70 A** for the 12 kW output (50 A continuous × 125 % = 62.5 A → 70 A; 240.4(D) forces 4 AWG so a
99 70 A breaker can protect it). *(6 AWG is permissible under the 240.4(B) next-size-up rule; 4 AWG is the conservative pick and
100 Vdrop is negligible either way.)*
101- **Battery bank cable:** 249 A continuous needs ≥ 312.5 A ampacity → **400 kcmil single**, or the practical **2× 2/0 (350 A)** /
102 **2× 4/0 (460 A)** parallel sets per polarity (flexible, common for EG4, and coordinate with the 2×175 A per-pack fuses = 350 A
103 aggregate). Each pack runs on **2/0** at 124.7 A.
104
105---
106
107## 3. Battery bank — discharge, C-rate, autonomy & Class-T fusing · `scripts/04_battery.py --phase2`
108
109At full 12 kW AC, bank discharge = **249.3 A** (12000 ÷ 0.94 ÷ 51.2 V), **capped at the inverter's 250 A limit**, split across 2 packs.
110
111**The inverter is the binding bank limit; the packs are not stressed.** The 2-pack combined BMS-honest capacity
112(2 × 150 A = **300 A**) and cell capacity (2 × 157 A = **314 A**) both exceed the 18kPV's **250 A** discharge cap, so:
113
114| Level | Current | Limit | Margin |
115|---|---|---|---|
116| **Bank vs inverter cap** (binding) | 249.3 A | 250 A | +0.7 A — inverter sized right for 12 kW |
117| **Per pack vs JK-BMS OCP** (binding per-pack) | 124.7 A | 150 A (300 s) | **+25 A (17 %)** |
118| Per pack vs EVE cell 0.5P | 124.7 A | 157 A | +32 A |
119| Per pack vs JK marketed | 124.7 A | 200 A | +75 A |
120
121- **C-rate:** 0.40C discharge, 0.40C charge (125 A/pack at the 250 A bank charge max) — both ≤ 0.5C. **PASS.**
122- **Surge (this is materially different from Phase 1):** the 18kPV's peak ratings are **minutes** long (13.5 kW w/o PV for 10 min,
123 15.5 kW w/ PV for 5 min), not the 6000XP's 3.5 s. The battery-only 13.5 kW surge = 281 A bank → **140.3 A/pack**, which stays
124 **under the 150 A / 300 s JK-BMS OCP** even over the full 10-minute window. The **2-pack split is what makes the minutes-long
125 surge safe** — a single pack could not. *(Note: at low battery SOC, ~48 V, the inverter's 250 A cap limits battery-only output
126 to ≈ 11.3 kW; full 12 kW from battery-only occurs only near nominal/high SOC. The real household load rarely approaches 12 kW.)*
127- **Autonomy (real Hardwick load):** 2 packs = 32.2 kWh nameplate / **25.7 kWh usable @ 80 % DoD**. Runtime 2.14 h at full 12 kW;
128 **0.77 day at the 33.5 kWh/day average**, 0.48 day at the 54.1 kWh August peak. **NEK winter still needs the generator** for
129 multi-day deficits (Swarm §2) — the bank is for daily cycling + surge, not deep autonomy (Swarm §6: Phase 2 = more PV, not more battery).
130- **Class-T fusing (per-pack = primary OCP):** **2 × 175 A Class-T** (DC-rated, 20 kAIC), one per pack, ≥ 125 % × 124.7 A and ≤ the
131 2/0 cable's 175 A. Layered protection: the **JK-BMS** protects cells (150 A/300 s OCP, 300 A short-circuit trip), each **Class-T**
132 protects that pack's cable and interrupts fault current. The bank conductor carries the 350 A aggregate of the two pack fuses
133 (→ 2×2/0 / 2×4/0 / 500 kcmil coordinate).
134- **Multi-pack BMS comms:** 2 packs run JK-BMS **master/slave**, one master → **18kPV via CAN (a single comms link** — simpler than
135 the two links a parallel-6000XP path needs). The 18kPV's native closed-loop is EG4-48 V; the Docan/JK pack runs via a CAN profile —
136 **confirm on arrival** (open-loop fallback is fully viable, no battery-life penalty).
137
138---
139
140## 4. Production vs the real load (full pallet) · `scripts/09_phase2.py`
141
142PVWatts v8, **17.82 kW**, fixed open rack (array_type 0), tilt 50°, az 180°, 14 % losses, DC:AC 1.49 (via `developer.nlr.gov`).
143
144| | kWh/day | vs the Hardwick load |
145|---|---|---|
146| **Annual** | **20,962 kWh/yr** | **171 % of the 12,237 kWh/yr load** (was 79 % at Phase 1) |
147| December (binding) | 34.0 | vs 26.6 winter load |
148| Winter avg | 43.1 | — |
149| Summer avg | 63.9 | vs 43.4 summer / 54.1 Aug peak |
150
151**Seasonal coverage (solar-only, × 0.85 usable):** winter **138 %**, summer **125 %**, **August peak 100 %** — the full pallet
152**meets every season including the August peak** that the 8 kW Phase-1 array missed (it covered only ~51 % of August). The MPPT1
153peak-clip (§1) is not modeled by PVWatts but is negligible given the array already over-produces. *(Run with a site-exact NREL
154key for final numbers; DEMO_KEY/documented inputs used here — immaterial to the safety calcs.)*
155
156---
157
158## 5. NEC 690 + 480/705/706/710 checklist · `scripts/05_nec_checklist.py --phase2`
159
160**16 PASS · 2 ACTION · 1 VERIFY (BMS comms) · 1 VERIFY-AHJ (rapid shutdown) · 1 N/A (off-grid interconnection) · 1 FLAG (NFPA 855 gate).**
161Full section-by-section evidence in [`phase2-nec-checklist.md`](phase2-nec-checklist.md). Highlights:
162
163- **690.7** max system voltage 491.5 V ≤ 550/600 V (PASS, quadruple-checked). **690.8/690.9** conductors + no PV source fusing (PASS).
164- **18kPV integrated protection** covers **690.11 (PV AFCI), 690.41(B) (GFDI + leakage monitor + SPD), 690.13 (integrated PV disconnect)**,
165 and the **690.12 RSD initiator** (datasheet cites NEC 2020 — **VERIFY-AHJ** for the NEC-2023 detached ground-mount whose conductors enter the dwelling).
166- **706 (ESS):** 2-pack arrangement, per-pack BMS + Class-T + disconnect, bank discharge within limits (PASS); **multi-pack CAN comms = VERIFY**.
167- **705 = N/A** (off-grid; generator AC-IN, main panel subfed with main breaker locked off, Swarm §17).
168- **ACTION:** array grounding electrode (690.47) and labels/placards (690.53/54/56) — carry forward from Phase 1.
169
170---
171
172## 6. Diagrams (final state) · `scripts/06_schematics.py --phase2` → `artifacts/phase2/`
173
174Rendered from the result JSONs so the ratings on the drawings equal the calc outputs:
175- **`sld.{png,svg}`** — 31-panel array → DC disconnect → **EG4 18kPV** (PV/AC/battery/gen-AC-IN) → subfed main panel, with all OCPD/
176 disconnect/conductor ratings + GEC.
177- **`dc-strings.{png,svg}`** — 4 strings (8+8+8+7S) across the 3 MPPTs (MPPT1 paired), polarity, "no source fuse / max 8S (491.5 V ≤ 550 V)".
178- **`battery-wiring.{png,svg}`** — 18kPV ↔ DC busbar ↔ 2× Docan S3, per-pack 175 A Class-T + disconnect, bank disconnect, master/slave → CAN.
179
180---
181
182## Bottom line
183
184The final-state configuration is electrically sound and code-compliant for off-grid NEC 2023. Selling the 6000XP for one **EG4 18kPV**
185deploys the **entire 31-panel pallet** at **8+8+8+7S** (491.5 V cold Voc, **58.5 V under the 550 V fault ceiling**, quadruple-verified),
186producing **20,962 kWh/yr (171 % of load, every season covered)**. Conductors — **8 AWG PV / 4 AWG 70 A AC / 2/0 per-pack / 400 kcmil
187(or 2×4/0) bank** — are all within ampacity and voltage-drop targets. The **2× Docan S3** bank delivers the inverter's full 250 A at
188**124.7 A/pack (17 % under the BMS OCP)**, with the 2-pack split keeping the 18kPV's minutes-long surge under the per-pack trip.
189Open decisions and gates — the **NFPA 855 fire-code gate** (out of scope), the 18kPV↔JK CAN profile, RSD AHJ stance, and the NREL key —
190are in [`phase2-open-issues.md`](phase2-open-issues.md); none change the validated electrical design.
artifacts/phase2-pathB/phase2-nec-checklist.md +33 -0
……@@ -0,0 +1,33 @@
1# Phase 2 — NEC 690 + 480/705/706/710 Checklist (Final State)
2
3**System:** 31× Waaree 575W → EG4 18kPV-12LV → 2× Docan S3 · off-grid · NEK Vermont · **NEC 2023**.
4Computed by `scripts/05_nec_checklist.py --phase2` from the `*_phase2.json` results (01/03/04). Every item cites a computed value.
5**Summary: 16 PASS · 2 ACTION · 1 VERIFY · 1 VERIFY-AHJ · 1 N/A · 1 FLAG.**
6
7| Section | Status | Topic & computed evidence |
8|---|---|---|
9| **690.7** | **PASS** | Max system voltage: longest string **8S cold Voc 491.5 V ≤ 550 V** MPPT-fault / 600 V abs (margin **58.5 V** to fault, 108.5 V to abs). Tmin −40 °C; analytic + pvlib + vocmax + independent agent agree. **9S = 553 V REJECTED** (> 550). |
10| **690.8(A)** | **PASS** | Max circuit current: per string Isc×1.25 = **17.3 A** (each string a dedicated homerun). MPPT1 internally combines 2 strings = **27.7 A** actual ≤ **31 A** MPPT1 Isc rating; MPPT2/3 single string ≤ 19 A. |
11| **690.8(B)** | **PASS** | Ampacity after 310.15 derates: PV **8 AWG** derated 35 A ≥ 17.3 A req (8 CCC, 0.70 fill); AC **4 AWG**; per-pack **2/0**; bank **400 kcmil** (or 2×2/0 / 2×4/0). |
12| **690.9 / 690.9(A) Ex** | **PASS** | PV source fusing **NOT required**: MPPT1 parallels only 2 strings → max backfeed 1.25×Isc = **17.3 A ≤ 30 A** module series fuse (3+ would need fuses). MPPT2/3 single string. No combiner. |
13| **690.9 / 240 / 480.9** | **PASS** | Battery OCP: **2× 175 A Class-T** (DC, 20 kAIC), one per pack, ≥ 125 % × 124.7 A/pack; ≤ 2/0 cable 175 A. Bank aggregate 350 A coordinated with the bank conductor. |
14| **690.9 / 710.15** | **PASS** | Inverter AC output OCP: **70 A 2-pole** ≥ 125 % × 50 A; protects 4 AWG (240.4(D)); EGC 8 AWG. |
15| **690.11** | **PASS** | DC arc-fault: EG4 18kPV **integrated PV AFCI** (690.11 / UL1699B, per datasheet). |
16| **690.12** | **VERIFY-AHJ** | Rapid shutdown: 18kPV **integrated RSD initiator** (datasheet cites NEC 2020:690.12). Detached ground-mount (not on a building) likely exempt, but PV/DC conductors enter the dwelling → confirm VT DPS stance for NEC 2023. |
17| **690.13 / 690.15** | **PASS** | Disconnects: 18kPV **integrated PV disconnect** + external load-break DC disc for service; **2 per-pack disconnects + a 250 A-class bank disconnect** within sight. |
18| **690.41(B)** | **PASS** | System grounding / GFDI: 18kPV **integrated PV ground-fault monitoring** + pole-sensitive leakage-current monitor + integrated SPD. |
19| **690.43 / 690.45** | **PASS** | EGCs (250.122): PV 10 AWG (no source OCPD), per-pack **6 AWG** (175 A), AC **8 AWG** (70 A), bank 4 AWG. Bond array frames + enclosures + battery busbar. |
20| **690.47** | **ACTION** | Array grounding electrode: drive a ground rod, **6 AWG Cu GEC** bonded to the dwelling GES (690.47(A)). Carry forward from Phase 1; verify for the expanded footprint. |
21| **690.31** | **PASS** | Wiring methods: PV in Sched-40 PVC conduit (squirrel/UV, Swarm §16); **8 AWG THWN-2 / PV wire 90 °C**. 4 strings → split across 2 conduits to relax the 8-CCC fill. |
22| **705** | **N/A** | No utility interconnection (off-grid, no 705.12 backfeed). Generator AC-IN to the 18kPV (200 A bypass / 90 A gen), main panel subfed with main breaker locked off (Swarm §17); transfer internal to the hybrid. |
23| **706.7 / 706.20** | **PASS** | ESS multi-pack: 2× Docan S3 (JK-PB2A16S20P BMS) in parallel on a DC busbar; each pack own BMS + Class-T + disconnect. Bank 249 A split **124.7 A/pack** — within the 150 A/300 s JK OCP (**17 % headroom**) and 157 A cell limit. C-rate 0.40C. |
24| **706.30 / 480.7** | **PASS** | ESS disconnecting means: per-pack disconnects + lockable bank disconnect within sight; the 18kPV battery port is the inverter-side disconnect; BMS opens on cell faults. |
25| **706.31 / 480.9** | **PASS** | ESS OCP: per-pack 175 A Class-T (20 kAIC > pack fault). Layered: JK-BMS (150 A/300 s OCP, 300 A SC) protects cells; Class-T protects each pack cable. |
26| **706.x / BMS comms** | **VERIFY** | Multi-pack comms: 2 packs JK-BMS master/slave, one master → 18kPV via **CAN (single link)**. 18kPV native closed-loop is EG4-48 V; Docan/JK via a CAN profile → **confirm on arrival**. Open-loop fallback fully viable. |
27| **710.15** | **PASS** | Stand-alone output: 18kPV 12 kW 120/240 V split-phase, output 50 A; off-grid, no backfeed. Continuous 8000 W/120 V leg covers the household peak; surge 13.5 kW (w/o PV). |
28| **690.53/54/56 / 110.21** | **ACTION** | Labels/placards: max system voltage **491.5 V** (690.53), inverter output 12 kW/50 A (690.54), RSD placard if AHJ requires (690.56(C)), DC disconnect + directory, per-pack battery hazard labels. |
29| **NFPA 855 / VT 2025 Fire Code** | **FLAG (OUT OF SCOPE)** | 2 packs = **32.2 kWh nameplate**. Swarm §4: even 2 packs (32 kWh) likely crosses the 20 kWh residential threshold (3 packs/48 kWh definitively) → detached non-combustible shed ≥ 10 ft, UL 9540 listing or AHJ hazard-mitigation analysis, + propane-heater combustion-air/ventilation/separation. **Not engineered here — pre-clear with VT DPS in writing before ordering the 2nd pack.** |
30| **Voltage drop (design target)** | **PASS** | DC **1.33 %** (150–250 ft: 0.99/1.33/1.66 %); per-pack 0.24 %; bank 0.31 %; AC 0.13 %. (Informational; not NEC-mandated.) |
31
32**Carry-forward from Phase 1 (unchanged):** the array grounding electrode (690.47) and label set (690.53/54/56) remain the two ACTION
33items; both are produced from the computed ratings above before inspection.
artifacts/phase2-pathB/phase2-open-issues.md +64 -0
……@@ -0,0 +1,64 @@
1# Phase 2 — Open Issues, Assumptions & Datasheet Gaps
2
3Nothing here changes the validated final-state design (see `phase2-design.md`); these are items to confirm/measure,
4flagged assumptions, datasheet gaps where I stated a defensible value, and the **out-of-scope gates**.
5
6## A. Confirm before buying wire / energizing
7
81. **Run lengths — confirmed by owner (2026-06-03):** battery **adjacent (~10 ft, designed at 10)**; remaining 17 panels
9 **co-located with the Phase-1 array, reusing the 150–250 ft trench (designed at 200 ft, swept 150/200/250)**. 8 AWG PV holds
10 ≤ 2 % across the whole range; measure the actual trench for *wire quantity*, not gauge.
112. **AC subfeed at 50 A / 70 A (Swarm §17).** The 12 kW output is now **50 A / 70 A 2-pole on 4 AWG** (up from Phase-1's 25 A/35 A/8 AWG).
12 Confirm the existing main panel's input lugs accept 4 AWG and a 70 A feed, and that its main breaker is lockable-off for the subfed arrangement.
133. **18kPV ↔ JK/Docan closed-loop comms (CAN).** The 18kPV's native closed-loop is EG4-48 V; the Docan/JK-PB2A16S20P pack runs via a
14 CAN profile. With 2 packs: JK master/slave, one master → 18kPV (a **single** comms link). **Confirm the profile on arrival;**
15 open-loop fallback is fully viable (no battery-life penalty). *(VERIFY item on the NEC checklist.)*
164. **690.12 rapid shutdown — AHJ stance (VERIFY-AHJ).** 18kPV has an integral RSD initiator (datasheet cites NEC 2020:690.12);
17 VT is NEC 2023. Detached ground-mount likely exempt, but PV conductors enter the dwelling — **get the VT DPS inspector's position in writing.**
185. **Sell the EG4 6000XP.** Path B economics assume ~$800–1,000 resale (Swarm §10). Confirm before committing; the 6000XP comes out
19 of service when the 18kPV is energized (single-inverter swap, not a parallel addition).
20
21## B. Inputs substituted with a defensible value (no datasheet/owner confirmation)
22
236. **NREL API key — not provided.** Production (`09_phase2.py`) ran on the documented inputs / DEMO_KEY → 20,962 kWh/yr. Rerun with
24 your key for site-exact numbers; immaterial to the safety calcs. Cold-Voc uses the documented **−40 °C** NEK low (conservative;
25 an NSRDB pull would only loosen it). Host verified empirically as `developer.nlr.gov`.
267. **Exact site lat/lon** (used 44.5, −72.0) and **tilt 50° / azimuth 180°** — affect production only; confirm for site-exact energy.
27
28## C. Datasheet gaps / vendor caveats (18kPV-specific)
29
308. **No published per-MPPT power cap on the 18kPV.** Only the per-MPPT *current* limits are given (25/15/15 A usable). **MPPT1 carries
31 16 panels (9.2 kW)** — its paired 8S strings draw Imp **26.2 A > the 25 A usable** limit, so the MPPT current-clips ≈ 1.2 A at rare
32 full-STC peaks. **Safe** (combined Isc 27.7 A < 31 A MPPT1 rating), a small harvest cap, not a fault. If you prefer zero clipping,
33 move ~1 panel off MPPT1 (e.g. 7+7 / 8 / 8 with one panel spare) — but the array already over-produces (§4 of the design).
349. **18kPV surge battery current is not datasheet-stated.** The peak ratings are given in AC watts over **minutes** (13.5 kW w/o PV /10 min,
35 15.5 kW w/ PV /5 min), not as a battery current. I assumed the **250 A discharge is continuous** and that the battery-side surge is
36 bounded by it: battery-only 13.5 kW = 281 A bank → **140 A/pack < the 150 A/300 s BMS OCP**, so no nuisance trip even over 10 minutes.
37 The **2-pack split is what makes this safe** (a single pack at 281 A would trip). Confirm if EG4 publishes a separate battery surge figure.
3810. **Full 12 kW battery-only is SOC-dependent.** At low SOC (~48 V) the 250 A cap limits battery-only output to ≈ 11.3 kW; full 12 kW
39 from battery-only requires near-nominal/high SOC. The real Hardwick load rarely approaches 12 kW (Aug peak ≈ 54 kWh/day ≈ 2.25 kW avg),
40 so this is a corner case, not an operating constraint.
4111. **Battery bank cable & fusing are engineer-selected** (no vendor spec). Bank conductor: **400 kcmil single** (335 A) or **2× 4/0 / 2× 2/0**
42 parallel (recommended — flexible, low-loss, and coordinates with the 350 A aggregate of the two 175 A pack fuses). Per-pack **175 A Class-T**
43 is the primary OCP (computed in `04`).
4412. **Verify the module SKU at receiving** — confirm **BiN-08-575 (Voc 52.30 V, 144-cell)**, same as Phase 1; a different SKU corrupts the cold-Voc.
45
46## D. Out-of-scope gates (flagged, NOT engineered here)
47
4813. **NFPA 855 / VT 2025 Fire Code — the single biggest non-electrical gate.** 2 packs = **32.2 kWh nameplate**. Per **Swarm §4**, even
49 2 packs likely cross the **20 kWh residential aggregate threshold** (3 packs / 48 kWh definitively). Triggers: detached non-combustible
50 battery shed ≥ 10 ft from the dwelling, **UL 9540 listing or an AHJ-approved Hazard Mitigation Analysis** for the unlisted Docan pack,
51 and combustion-air / ventilation / fire-separation handling for the **propane heater in a Li-battery enclosure**. **Pre-clear with the
52 VT DPS Division of Fire Safety in writing before ordering the 2nd pack.** *(This is the item most likely to be told "no" by the AHJ or insurer.)*
5314. **Insurance disclosure (Swarm §7).** Disclose the DIY + non-UL ESS (chemistry/kWh/location) to the carrier in writing; if excluded, shop
54 Co-op Insurance (Middlebury). Out of electrical scope.
5515. **Generator (Phase-1 infrastructure).** Assumed AC-IN to the 18kPV (200 A AC bypass / 90 A generator input), L14-30 inlet + interlock,
56 gen-assist charging on low SOC. Selection/sizing is not in electrical scope.
5716. **Battery shed / structure / racking / trenching civil** — out of scope (owner handles mounting/housing).
58
59## E. Validation status of the safety-critical result
60
61The full-pallet cold-Voc result (**8S, 491.5 V ≤ 550 V fault / 600 V abs**) is confirmed by **four independent methods**: analytic NEC 690.7,
62pvlib CEC single-diode, **vocmax** (the named tool, offline), and an **independent adversarial agent** that re-keyed the datasheet from scratch
63(read no project files) and reproduced 61.14 V/module → 491.5 V at 8S, confirming 8S safe and **9S (553 V) rejected**. The only vocmax capability
64not exercised is its NSRDB statistical worst-case, which needs the NREL key (item 6) and would only relax the already-conservative −40 °C result.
artifacts/phase2-pathB/sld.png +0 -0
(no content changes — binary or rename)
artifacts/phase2-pathB/sld.svg +2611 -0
……@@ -0,0 +1,2611 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="598.283761pt" height="804.24pt" viewBox="0 0 598.283761 804.24" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T02:23:51.102662</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M 0 804.24
25L 598.283761 804.24
26L 598.283761 0
27L 0 0
28L 0 804.24
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="patch_2">
34 <path d="M 63.016406 291.755082
35C 67.786385 291.755082 72.36164 289.859949 75.734524 286.487065
36C 79.107408 283.114181 81.00254 278.538926 81.00254 273.768948
37C 81.00254 268.998969 79.107408 264.423714 75.734524 261.05083
38C 72.36164 257.677946 67.786385 255.782813 63.016406 255.782813
39C 58.246428 255.782813 53.671173 257.677946 50.298289 261.05083
40C 46.925405 264.423714 45.030272 268.998969 45.030272 273.768948
41C 45.030272 278.538926 46.925405 283.114181 50.298289 286.487065
42C 53.671173 289.859949 58.246428 291.755082 63.016406 291.755082
43L 63.016406 291.755082
44z
45" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
46 </g>
47 <g id="line2d_1">
48 <path d="M 14.453844 273.768948
49L 45.030272 273.768948
50L 45.030272 273.768948
51M 81.00254 273.768948
52L 81.00254 273.768948
53L 111.578969 273.768948
54" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
55 </g>
56 <g id="line2d_2">
57 <path d="M 59.419179 269.272414
58L 59.419179 278.265481
59" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
60 </g>
61 <g id="line2d_3">
62 <path d="M 66.613633 263.876574
63L 66.613633 283.661321
64" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
65 </g>
66 <g id="line2d_4">
67 <path d="M 45.030272 273.768948
68L 59.419179 273.768948
69M 66.613633 273.768948
70L 81.00254 273.768948
71" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
72 </g>
73 <g id="line2d_5">
74 <path d="M 84.599767 241.393906
75L 80.167146 245.826528
76" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
77 </g>
78 <g id="patch_3">
79 <path d="M 82.074863 247.734245
80L 73.808087 252.185587
81L 78.259428 243.91881
82z
83" clip-path="url(#p764da30e8d)"/>
84 </g>
85 <g id="line2d_6">
86 <path d="M 91.794221 248.58836
87L 87.361599 253.020982
88" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
89 </g>
90 <g id="patch_4">
91 <path d="M 89.269317 254.928699
92L 81.00254 259.38004
93L 85.453882 251.113264
94z
95" clip-path="url(#p764da30e8d)"/>
96 </g>
97 <g id="line2d_7">
98 <path d="M 111.578969 273.768948
99L 158.342918 273.768948
100L 205.106867 273.768948
101" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
102 </g>
103 <g id="line2d_8">
104 <path d="M 205.106867 273.768948
105M 213.740211 270.171721
106L 233.884681 257.581427
107M 241.079135 273.768948
108" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
109 </g>
110 <g id="line2d_9">
111 <path d="M 213.740211 306.143989
112L 233.884681 293.553695
113" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
114 </g>
115 <g id="line2d_10">
116 <path d="M 223.093001 300.748149
117L 223.093001 266.574494
118" clip-path="url(#p764da30e8d)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
119 </g>
120 <g id="line2d_11">
121 <path d="M 205.106867 273.768948
122L 226.690228 273.768948
123L 248.273589 273.768948
124" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
125 </g>
126 <g id="line2d_12">
127 <path d="M 266.259723 318.734283
128L 366.982075 318.734283
129L 366.982075 228.803612
130L 266.259723 228.803612
131L 266.259723 318.734283
132" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
133 </g>
134 <g id="line2d_13">
135 <path d="M 266.259723 273.768948
136L 248.273589 273.768948
137" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
138 </g>
139 <g id="line2d_14">
140 <path d="M 366.982075 273.768948
141L 384.968209 273.768948
142" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
143 </g>
144 <g id="line2d_15">
145 <path d="M 316.620899 228.803612
146L 316.620899 210.817478
147" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
148 </g>
149 <g id="line2d_16">
150 <path d="M 284.245857 318.734283
151L 284.245857 336.720417
152" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
153 </g>
154 <g id="line2d_17">
155 <path d="M 348.995941 318.734283
156L 348.995941 336.720417
157" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
158 </g>
159 <g id="line2d_18">
160 <path d="M 316.620899 210.817478
161L 316.620899 185.63689
162L 316.620899 160.456302
163" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
164 </g>
165 <g id="line2d_19">
166 <path d="M 316.620899 160.456302
167M 313.023672 151.822958
168L 300.433378 131.678487
169M 316.620899 124.484033
170" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
171 </g>
172 <g id="line2d_20">
173 <path d="M 348.995941 151.822958
174L 336.405647 131.678487
175" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
176 </g>
177 <g id="line2d_21">
178 <path d="M 343.6001 142.470168
179L 309.426445 142.470168
180" clip-path="url(#p764da30e8d)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
181 </g>
182 <g id="line2d_22">
183 <path d="M 316.620899 160.456302
184L 316.620899 149.664621
185L 316.620899 138.872941
186" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
187 </g>
188 <g id="line2d_23">
189 <path d="M 316.620899 138.872941
190L 316.620899 108.296513
191L 307.627832 108.296513
192L 307.627832 72.324244
193L 325.613966 72.324244
194L 325.613966 108.296513
195L 316.620899 108.296513
196M 316.620899 72.324244
197L 316.620899 41.747816
198" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
199 </g>
200 <g id="line2d_24">
201 <path d="M 384.968209 273.768948
202L 417.343251 273.768948
203L 449.718292 273.768948
204" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
205 </g>
206 <g id="line2d_25">
207 <path d="M 449.718292 273.768948
208M 458.351637 270.171721
209L 478.496107 257.581427
210M 485.690561 273.768948
211" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
212 </g>
213 <g id="line2d_26">
214 <path d="M 458.351637 306.143989
215L 478.496107 293.553695
216" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
217 </g>
218 <g id="line2d_27">
219 <path d="M 467.704427 300.748149
220L 467.704427 266.574494
221" clip-path="url(#p764da30e8d)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
222 </g>
223 <g id="line2d_28">
224 <path d="M 449.718292 273.768948
225L 473.100267 273.768948
226L 496.482241 273.768948
227" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
228 </g>
229 <g id="line2d_29">
230 <path d="M 496.482241 273.768948
231L 527.05867 273.768948
232L 527.05867 264.775881
233L 563.030938 264.775881
234L 563.030938 282.762015
235L 527.05867 282.762015
236L 527.05867 273.768948
237M 563.030938 273.768948
238L 593.607366 273.768948
239" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
240 </g>
241 <g id="line2d_30">
242 <path d="M 284.245857 336.720417
243L 284.245857 352.907938
244L 284.245857 369.095459
245" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
246 </g>
247 <g id="line2d_31">
248 <path d="M 284.245857 369.095459
249M 287.843084 377.728804
250L 300.433378 397.873274
251M 284.245857 405.067728
252" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
253 </g>
254 <g id="line2d_32">
255 <path d="M 251.870816 377.728804
256L 264.46111 397.873274
257" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
258 </g>
259 <g id="line2d_33">
260 <path d="M 257.266656 387.081593
261L 291.440311 387.081593
262" clip-path="url(#p764da30e8d)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
263 </g>
264 <g id="line2d_34">
265 <path d="M 284.245857 369.095459
266L 284.245857 396.07466
267L 284.245857 423.053862
268" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
269 </g>
270 <g id="line2d_35">
271 <path d="M 284.245857 423.053862
272L 284.245857 453.63029
273L 293.238924 453.63029
274L 293.238924 489.602558
275L 275.25279 489.602558
276L 275.25279 453.63029
277L 284.245857 453.63029
278M 284.245857 489.602558
279L 284.245857 520.178987
280" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
281 </g>
282 <g id="line2d_36">
283 <path d="M 284.245857 520.178987
284L 284.245857 534.567894
285L 284.245857 548.956801
286" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
287 </g>
288 <g id="line2d_37">
289 <path d="M 284.245857 548.956801
290L 284.245857 579.53323
291L 293.238924 579.53323
292L 293.238924 615.505498
293L 275.25279 615.505498
294L 275.25279 579.53323
295L 284.245857 579.53323
296M 284.245857 615.505498
297L 284.245857 646.081926
298" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
299 </g>
300 <g id="line2d_38">
301 <path d="M 284.245857 579.53323
302L 284.245857 615.505498
303" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
304 </g>
305 <g id="line2d_39">
306 <path d="M 284.245857 646.081926
307L 284.245857 660.470834
308L 284.245857 674.859741
309" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
310 </g>
311 <g id="line2d_40">
312 <path d="M 284.245857 674.859741
313L 284.245857 713.305103
314M 284.245857 733.539504
315L 284.245857 771.984866
316" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
317 </g>
318 <g id="line2d_41">
319 <path d="M 297.735458 713.305103
320L 270.756257 713.305103
321" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
322 </g>
323 <g id="line2d_42">
324 <path d="M 290.990658 720.049903
325L 277.501057 720.049903
326" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
327 </g>
328 <g id="line2d_43">
329 <path d="M 297.735458 726.794704
330L 270.756257 726.794704
331" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
332 </g>
333 <g id="line2d_44">
334 <path d="M 290.990658 733.539504
335L 277.501057 733.539504
336" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
337 </g>
338 <g id="line2d_45">
339 <path d="M 348.995941 336.720417
340L 348.995941 358.303779
341L 348.995941 379.88714
342" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
343 </g>
344 <g id="line2d_46">
345 <path d="M 348.995941 379.88714
346L 348.995941 394.276047
347L 340.002873 394.276047
348L 357.989008 394.276047
349M 342.700794 398.592719
350L 355.291088 398.592719
351M 347.197327 402.909391
352L 350.794554 402.909391
353" clip-path="url(#p764da30e8d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
354 </g>
355 <g id="text_1">
356 <!-- PV ARRAY -->
357 <g transform="translate(38.736719 302.950746) scale(0.1 -0.1)">
358 <defs>
359 <path id="DejaVuSans-50" d="M 1259 4147
360L 1259 2394
361L 2053 2394
362Q 2494 2394 2734 2622
363Q 2975 2850 2975 3272
364Q 2975 3691 2734 3919
365Q 2494 4147 2053 4147
366L 1259 4147
367z
368M 628 4666
369L 2053 4666
370Q 2838 4666 3239 4311
371Q 3641 3956 3641 3272
372Q 3641 2581 3239 2228
373Q 2838 1875 2053 1875
374L 1259 1875
375L 1259 0
376L 628 0
377L 628 4666
378z
379" transform="scale(0.015625)"/>
380 <path id="DejaVuSans-56" d="M 1831 0
381L 50 4666
382L 709 4666
383L 2188 738
384L 3669 4666
385L 4325 4666
386L 2547 0
387L 1831 0
388z
389" transform="scale(0.015625)"/>
390 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
391 <path id="DejaVuSans-41" d="M 2188 4044
392L 1331 1722
393L 3047 1722
394L 2188 4044
395z
396M 1831 4666
397L 2547 4666
398L 4325 0
399L 3669 0
400L 3244 1197
401L 1141 1197
402L 716 0
403L 50 0
404L 1831 4666
405z
406" transform="scale(0.015625)"/>
407 <path id="DejaVuSans-52" d="M 2841 2188
408Q 3044 2119 3236 1894
409Q 3428 1669 3622 1275
410L 4263 0
411L 3584 0
412L 2988 1197
413Q 2756 1666 2539 1819
414Q 2322 1972 1947 1972
415L 1259 1972
416L 1259 0
417L 628 0
418L 628 4666
419L 2053 4666
420Q 2853 4666 3247 4331
421Q 3641 3997 3641 3322
422Q 3641 2881 3436 2590
423Q 3231 2300 2841 2188
424z
425M 1259 4147
426L 1259 2491
427L 2053 2491
428Q 2509 2491 2742 2702
429Q 2975 2913 2975 3322
430Q 2975 3731 2742 3939
431Q 2509 4147 2053 4147
432L 1259 4147
433z
434" transform="scale(0.015625)"/>
435 <path id="DejaVuSans-59" d="M -13 4666
436L 666 4666
437L 1959 2747
438L 3244 4666
439L 3922 4666
440L 2272 2222
441L 2272 0
442L 1638 0
443L 1638 2222
444L -13 4666
445z
446" transform="scale(0.015625)"/>
447 </defs>
448 <use xlink:href="#DejaVuSans-50"/>
449 <use xlink:href="#DejaVuSans-56" transform="translate(60.302734 0)"/>
450 <use xlink:href="#DejaVuSans-20" transform="translate(128.710938 0)"/>
451 <use xlink:href="#DejaVuSans-41" transform="translate(160.498047 0)"/>
452 <use xlink:href="#DejaVuSans-52" transform="translate(228.90625 0)"/>
453 <use xlink:href="#DejaVuSans-52" transform="translate(298.388672 0)"/>
454 <use xlink:href="#DejaVuSans-41" transform="translate(363.871094 0)"/>
455 <use xlink:href="#DejaVuSans-59" transform="translate(424.529297 0)"/>
456 </g>
457 <!-- 31×575W · 4 strings -->
458 <g transform="translate(11.482031 312.628871) scale(0.1 -0.1)">
459 <defs>
460 <path id="DejaVuSans-33" d="M 2597 2516
461Q 3050 2419 3304 2112
462Q 3559 1806 3559 1356
463Q 3559 666 3084 287
464Q 2609 -91 1734 -91
465Q 1441 -91 1130 -33
466Q 819 25 488 141
467L 488 750
468Q 750 597 1062 519
469Q 1375 441 1716 441
470Q 2309 441 2620 675
471Q 2931 909 2931 1356
472Q 2931 1769 2642 2001
473Q 2353 2234 1838 2234
474L 1294 2234
475L 1294 2753
476L 1863 2753
477Q 2328 2753 2575 2939
478Q 2822 3125 2822 3475
479Q 2822 3834 2567 4026
480Q 2313 4219 1838 4219
481Q 1578 4219 1281 4162
482Q 984 4106 628 3988
483L 628 4550
484Q 988 4650 1302 4700
485Q 1616 4750 1894 4750
486Q 2613 4750 3031 4423
487Q 3450 4097 3450 3541
488Q 3450 3153 3228 2886
489Q 3006 2619 2597 2516
490z
491" transform="scale(0.015625)"/>
492 <path id="DejaVuSans-31" d="M 794 531
493L 1825 531
494L 1825 4091
495L 703 3866
496L 703 4441
497L 1819 4666
498L 2450 4666
499L 2450 531
500L 3481 531
501L 3481 0
502L 794 0
503L 794 531
504z
505" transform="scale(0.015625)"/>
506 <path id="DejaVuSans-d7" d="M 4488 3438
507L 3059 2003
508L 4488 575
509L 4116 197
510L 2681 1631
511L 1247 197
512L 878 575
513L 2303 2003
514L 878 3438
515L 1247 3816
516L 2681 2381
517L 4116 3816
518L 4488 3438
519z
520" transform="scale(0.015625)"/>
521 <path id="DejaVuSans-35" d="M 691 4666
522L 3169 4666
523L 3169 4134
524L 1269 4134
525L 1269 2991
526Q 1406 3038 1543 3061
527Q 1681 3084 1819 3084
528Q 2600 3084 3056 2656
529Q 3513 2228 3513 1497
530Q 3513 744 3044 326
531Q 2575 -91 1722 -91
532Q 1428 -91 1123 -41
533Q 819 9 494 109
534L 494 744
535Q 775 591 1075 516
536Q 1375 441 1709 441
537Q 2250 441 2565 725
538Q 2881 1009 2881 1497
539Q 2881 1984 2565 2268
540Q 2250 2553 1709 2553
541Q 1456 2553 1204 2497
542Q 953 2441 691 2322
543L 691 4666
544z
545" transform="scale(0.015625)"/>
546 <path id="DejaVuSans-37" d="M 525 4666
547L 3525 4666
548L 3525 4397
549L 1831 0
550L 1172 0
551L 2766 4134
552L 525 4134
553L 525 4666
554z
555" transform="scale(0.015625)"/>
556 <path id="DejaVuSans-57" d="M 213 4666
557L 850 4666
558L 1831 722
559L 2809 4666
560L 3519 4666
561L 4500 722
562L 5478 4666
563L 6119 4666
564L 4947 0
565L 4153 0
566L 3169 4050
567L 2175 0
568L 1381 0
569L 213 4666
570z
571" transform="scale(0.015625)"/>
572 <path id="DejaVuSans-b7" d="M 684 2619
573L 1344 2619
574L 1344 1825
575L 684 1825
576L 684 2619
577z
578" transform="scale(0.015625)"/>
579 <path id="DejaVuSans-34" d="M 2419 4116
580L 825 1625
581L 2419 1625
582L 2419 4116
583z
584M 2253 4666
585L 3047 4666
586L 3047 1625
587L 3713 1625
588L 3713 1100
589L 3047 1100
590L 3047 0
591L 2419 0
592L 2419 1100
593L 313 1100
594L 313 1709
595L 2253 4666
596z
597" transform="scale(0.015625)"/>
598 <path id="DejaVuSans-73" d="M 2834 3397
599L 2834 2853
600Q 2591 2978 2328 3040
601Q 2066 3103 1784 3103
602Q 1356 3103 1142 2972
603Q 928 2841 928 2578
604Q 928 2378 1081 2264
605Q 1234 2150 1697 2047
606L 1894 2003
607Q 2506 1872 2764 1633
608Q 3022 1394 3022 966
609Q 3022 478 2636 193
610Q 2250 -91 1575 -91
611Q 1294 -91 989 -36
612Q 684 19 347 128
613L 347 722
614Q 666 556 975 473
615Q 1284 391 1588 391
616Q 1994 391 2212 530
617Q 2431 669 2431 922
618Q 2431 1156 2273 1281
619Q 2116 1406 1581 1522
620L 1381 1569
621Q 847 1681 609 1914
622Q 372 2147 372 2553
623Q 372 3047 722 3315
624Q 1072 3584 1716 3584
625Q 2034 3584 2315 3537
626Q 2597 3491 2834 3397
627z
628" transform="scale(0.015625)"/>
629 <path id="DejaVuSans-74" d="M 1172 4494
630L 1172 3500
631L 2356 3500
632L 2356 3053
633L 1172 3053
634L 1172 1153
635Q 1172 725 1289 603
636Q 1406 481 1766 481
637L 2356 481
638L 2356 0
639L 1766 0
640Q 1100 0 847 248
641Q 594 497 594 1153
642L 594 3053
643L 172 3053
644L 172 3500
645L 594 3500
646L 594 4494
647L 1172 4494
648z
649" transform="scale(0.015625)"/>
650 <path id="DejaVuSans-72" d="M 2631 2963
651Q 2534 3019 2420 3045
652Q 2306 3072 2169 3072
653Q 1681 3072 1420 2755
654Q 1159 2438 1159 1844
655L 1159 0
656L 581 0
657L 581 3500
658L 1159 3500
659L 1159 2956
660Q 1341 3275 1631 3429
661Q 1922 3584 2338 3584
662Q 2397 3584 2469 3576
663Q 2541 3569 2628 3553
664L 2631 2963
665z
666" transform="scale(0.015625)"/>
667 <path id="DejaVuSans-69" d="M 603 3500
668L 1178 3500
669L 1178 0
670L 603 0
671L 603 3500
672z
673M 603 4863
674L 1178 4863
675L 1178 4134
676L 603 4134
677L 603 4863
678z
679" transform="scale(0.015625)"/>
680 <path id="DejaVuSans-6e" d="M 3513 2113
681L 3513 0
682L 2938 0
683L 2938 2094
684Q 2938 2591 2744 2837
685Q 2550 3084 2163 3084
686Q 1697 3084 1428 2787
687Q 1159 2491 1159 1978
688L 1159 0
689L 581 0
690L 581 3500
691L 1159 3500
692L 1159 2956
693Q 1366 3272 1645 3428
694Q 1925 3584 2291 3584
695Q 2894 3584 3203 3211
696Q 3513 2838 3513 2113
697z
698" transform="scale(0.015625)"/>
699 <path id="DejaVuSans-67" d="M 2906 1791
700Q 2906 2416 2648 2759
701Q 2391 3103 1925 3103
702Q 1463 3103 1205 2759
703Q 947 2416 947 1791
704Q 947 1169 1205 825
705Q 1463 481 1925 481
706Q 2391 481 2648 825
707Q 2906 1169 2906 1791
708z
709M 3481 434
710Q 3481 -459 3084 -895
711Q 2688 -1331 1869 -1331
712Q 1566 -1331 1297 -1286
713Q 1028 -1241 775 -1147
714L 775 -588
715Q 1028 -725 1275 -790
716Q 1522 -856 1778 -856
717Q 2344 -856 2625 -561
718Q 2906 -266 2906 331
719L 2906 616
720Q 2728 306 2450 153
721Q 2172 0 1784 0
722Q 1141 0 747 490
723Q 353 981 353 1791
724Q 353 2603 747 3093
725Q 1141 3584 1784 3584
726Q 2172 3584 2450 3431
727Q 2728 3278 2906 2969
728L 2906 3500
729L 3481 3500
730L 3481 434
731z
732" transform="scale(0.015625)"/>
733 </defs>
734 <use xlink:href="#DejaVuSans-33"/>
735 <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
736 <use xlink:href="#DejaVuSans-d7" transform="translate(127.246094 0)"/>
737 <use xlink:href="#DejaVuSans-35" transform="translate(211.035156 0)"/>
738 <use xlink:href="#DejaVuSans-37" transform="translate(274.658203 0)"/>
739 <use xlink:href="#DejaVuSans-35" transform="translate(338.28125 0)"/>
740 <use xlink:href="#DejaVuSans-57" transform="translate(401.904297 0)"/>
741 <use xlink:href="#DejaVuSans-20" transform="translate(500.78125 0)"/>
742 <use xlink:href="#DejaVuSans-b7" transform="translate(532.568359 0)"/>
743 <use xlink:href="#DejaVuSans-20" transform="translate(564.355469 0)"/>
744 <use xlink:href="#DejaVuSans-34" transform="translate(596.142578 0)"/>
745 <use xlink:href="#DejaVuSans-20" transform="translate(659.765625 0)"/>
746 <use xlink:href="#DejaVuSans-73" transform="translate(691.552734 0)"/>
747 <use xlink:href="#DejaVuSans-74" transform="translate(743.652344 0)"/>
748 <use xlink:href="#DejaVuSans-72" transform="translate(782.861328 0)"/>
749 <use xlink:href="#DejaVuSans-69" transform="translate(823.974609 0)"/>
750 <use xlink:href="#DejaVuSans-6e" transform="translate(851.757812 0)"/>
751 <use xlink:href="#DejaVuSans-67" transform="translate(915.136719 0)"/>
752 <use xlink:href="#DejaVuSans-73" transform="translate(978.613281 0)"/>
753 </g>
754 <!-- 8+8+8+7S · 17825W DC -->
755 <g transform="translate(0 322.306996) scale(0.1 -0.1)">
756 <defs>
757 <path id="DejaVuSans-38" d="M 2034 2216
758Q 1584 2216 1326 1975
759Q 1069 1734 1069 1313
760Q 1069 891 1326 650
761Q 1584 409 2034 409
762Q 2484 409 2743 651
763Q 3003 894 3003 1313
764Q 3003 1734 2745 1975
765Q 2488 2216 2034 2216
766z
767M 1403 2484
768Q 997 2584 770 2862
769Q 544 3141 544 3541
770Q 544 4100 942 4425
771Q 1341 4750 2034 4750
772Q 2731 4750 3128 4425
773Q 3525 4100 3525 3541
774Q 3525 3141 3298 2862
775Q 3072 2584 2669 2484
776Q 3125 2378 3379 2068
777Q 3634 1759 3634 1313
778Q 3634 634 3220 271
779Q 2806 -91 2034 -91
780Q 1263 -91 848 271
781Q 434 634 434 1313
782Q 434 1759 690 2068
783Q 947 2378 1403 2484
784z
785M 1172 3481
786Q 1172 3119 1398 2916
787Q 1625 2713 2034 2713
788Q 2441 2713 2670 2916
789Q 2900 3119 2900 3481
790Q 2900 3844 2670 4047
791Q 2441 4250 2034 4250
792Q 1625 4250 1398 4047
793Q 1172 3844 1172 3481
794z
795" transform="scale(0.015625)"/>
796 <path id="DejaVuSans-2b" d="M 2944 4013
797L 2944 2272
798L 4684 2272
799L 4684 1741
800L 2944 1741
801L 2944 0
802L 2419 0
803L 2419 1741
804L 678 1741
805L 678 2272
806L 2419 2272
807L 2419 4013
808L 2944 4013
809z
810" transform="scale(0.015625)"/>
811 <path id="DejaVuSans-53" d="M 3425 4513
812L 3425 3897
813Q 3066 4069 2747 4153
814Q 2428 4238 2131 4238
815Q 1616 4238 1336 4038
816Q 1056 3838 1056 3469
817Q 1056 3159 1242 3001
818Q 1428 2844 1947 2747
819L 2328 2669
820Q 3034 2534 3370 2195
821Q 3706 1856 3706 1288
822Q 3706 609 3251 259
823Q 2797 -91 1919 -91
824Q 1588 -91 1214 -16
825Q 841 59 441 206
826L 441 856
827Q 825 641 1194 531
828Q 1563 422 1919 422
829Q 2459 422 2753 634
830Q 3047 847 3047 1241
831Q 3047 1584 2836 1778
832Q 2625 1972 2144 2069
833L 1759 2144
834Q 1053 2284 737 2584
835Q 422 2884 422 3419
836Q 422 4038 858 4394
837Q 1294 4750 2059 4750
838Q 2388 4750 2728 4690
839Q 3069 4631 3425 4513
840z
841" transform="scale(0.015625)"/>
842 <path id="DejaVuSans-32" d="M 1228 531
843L 3431 531
844L 3431 0
845L 469 0
846L 469 531
847Q 828 903 1448 1529
848Q 2069 2156 2228 2338
849Q 2531 2678 2651 2914
850Q 2772 3150 2772 3378
851Q 2772 3750 2511 3984
852Q 2250 4219 1831 4219
853Q 1534 4219 1204 4116
854Q 875 4013 500 3803
855L 500 4441
856Q 881 4594 1212 4672
857Q 1544 4750 1819 4750
858Q 2544 4750 2975 4387
859Q 3406 4025 3406 3419
860Q 3406 3131 3298 2873
861Q 3191 2616 2906 2266
862Q 2828 2175 2409 1742
863Q 1991 1309 1228 531
864z
865" transform="scale(0.015625)"/>
866 <path id="DejaVuSans-44" d="M 1259 4147
867L 1259 519
868L 2022 519
869Q 2988 519 3436 956
870Q 3884 1394 3884 2338
871Q 3884 3275 3436 3711
872Q 2988 4147 2022 4147
873L 1259 4147
874z
875M 628 4666
876L 1925 4666
877Q 3281 4666 3915 4102
878Q 4550 3538 4550 2338
879Q 4550 1131 3912 565
880Q 3275 0 1925 0
881L 628 0
882L 628 4666
883z
884" transform="scale(0.015625)"/>
885 <path id="DejaVuSans-43" d="M 4122 4306
886L 4122 3641
887Q 3803 3938 3442 4084
888Q 3081 4231 2675 4231
889Q 1875 4231 1450 3742
890Q 1025 3253 1025 2328
891Q 1025 1406 1450 917
892Q 1875 428 2675 428
893Q 3081 428 3442 575
894Q 3803 722 4122 1019
895L 4122 359
896Q 3791 134 3420 21
897Q 3050 -91 2638 -91
898Q 1578 -91 968 557
899Q 359 1206 359 2328
900Q 359 3453 968 4101
901Q 1578 4750 2638 4750
902Q 3056 4750 3426 4639
903Q 3797 4528 4122 4306
904z
905" transform="scale(0.015625)"/>
906 </defs>
907 <use xlink:href="#DejaVuSans-38"/>
908 <use xlink:href="#DejaVuSans-2b" transform="translate(63.623047 0)"/>
909 <use xlink:href="#DejaVuSans-38" transform="translate(147.412109 0)"/>
910 <use xlink:href="#DejaVuSans-2b" transform="translate(211.035156 0)"/>
911 <use xlink:href="#DejaVuSans-38" transform="translate(294.824219 0)"/>
912 <use xlink:href="#DejaVuSans-2b" transform="translate(358.447266 0)"/>
913 <use xlink:href="#DejaVuSans-37" transform="translate(442.236328 0)"/>
914 <use xlink:href="#DejaVuSans-53" transform="translate(505.859375 0)"/>
915 <use xlink:href="#DejaVuSans-20" transform="translate(569.335938 0)"/>
916 <use xlink:href="#DejaVuSans-b7" transform="translate(601.123047 0)"/>
917 <use xlink:href="#DejaVuSans-20" transform="translate(632.910156 0)"/>
918 <use xlink:href="#DejaVuSans-31" transform="translate(664.697266 0)"/>
919 <use xlink:href="#DejaVuSans-37" transform="translate(728.320312 0)"/>
920 <use xlink:href="#DejaVuSans-38" transform="translate(791.943359 0)"/>
921 <use xlink:href="#DejaVuSans-32" transform="translate(855.566406 0)"/>
922 <use xlink:href="#DejaVuSans-35" transform="translate(919.189453 0)"/>
923 <use xlink:href="#DejaVuSans-57" transform="translate(982.8125 0)"/>
924 <use xlink:href="#DejaVuSans-20" transform="translate(1081.689453 0)"/>
925 <use xlink:href="#DejaVuSans-44" transform="translate(1113.476562 0)"/>
926 <use xlink:href="#DejaVuSans-43" transform="translate(1190.478516 0)"/>
927 </g>
928 <!-- cold Voc 491.5V (≤550) -->
929 <g transform="translate(3.666406 331.985121) scale(0.1 -0.1)">
930 <defs>
931 <path id="DejaVuSans-63" d="M 3122 3366
932L 3122 2828
933Q 2878 2963 2633 3030
934Q 2388 3097 2138 3097
935Q 1578 3097 1268 2742
936Q 959 2388 959 1747
937Q 959 1106 1268 751
938Q 1578 397 2138 397
939Q 2388 397 2633 464
940Q 2878 531 3122 666
941L 3122 134
942Q 2881 22 2623 -34
943Q 2366 -91 2075 -91
944Q 1284 -91 818 406
945Q 353 903 353 1747
946Q 353 2603 823 3093
947Q 1294 3584 2113 3584
948Q 2378 3584 2631 3529
949Q 2884 3475 3122 3366
950z
951" transform="scale(0.015625)"/>
952 <path id="DejaVuSans-6f" d="M 1959 3097
953Q 1497 3097 1228 2736
954Q 959 2375 959 1747
955Q 959 1119 1226 758
956Q 1494 397 1959 397
957Q 2419 397 2687 759
958Q 2956 1122 2956 1747
959Q 2956 2369 2687 2733
960Q 2419 3097 1959 3097
961z
962M 1959 3584
963Q 2709 3584 3137 3096
964Q 3566 2609 3566 1747
965Q 3566 888 3137 398
966Q 2709 -91 1959 -91
967Q 1206 -91 779 398
968Q 353 888 353 1747
969Q 353 2609 779 3096
970Q 1206 3584 1959 3584
971z
972" transform="scale(0.015625)"/>
973 <path id="DejaVuSans-6c" d="M 603 4863
974L 1178 4863
975L 1178 0
976L 603 0
977L 603 4863
978z
979" transform="scale(0.015625)"/>
980 <path id="DejaVuSans-64" d="M 2906 2969
981L 2906 4863
982L 3481 4863
983L 3481 0
984L 2906 0
985L 2906 525
986Q 2725 213 2448 61
987Q 2172 -91 1784 -91
988Q 1150 -91 751 415
989Q 353 922 353 1747
990Q 353 2572 751 3078
991Q 1150 3584 1784 3584
992Q 2172 3584 2448 3432
993Q 2725 3281 2906 2969
994z
995M 947 1747
996Q 947 1113 1208 752
997Q 1469 391 1925 391
998Q 2381 391 2643 752
999Q 2906 1113 2906 1747
1000Q 2906 2381 2643 2742
1001Q 2381 3103 1925 3103
1002Q 1469 3103 1208 2742
1003Q 947 2381 947 1747
1004z
1005" transform="scale(0.015625)"/>
1006 <path id="DejaVuSans-39" d="M 703 97
1007L 703 672
1008Q 941 559 1184 500
1009Q 1428 441 1663 441
1010Q 2288 441 2617 861
1011Q 2947 1281 2994 2138
1012Q 2813 1869 2534 1725
1013Q 2256 1581 1919 1581
1014Q 1219 1581 811 2004
1015Q 403 2428 403 3163
1016Q 403 3881 828 4315
1017Q 1253 4750 1959 4750
1018Q 2769 4750 3195 4129
1019Q 3622 3509 3622 2328
1020Q 3622 1225 3098 567
1021Q 2575 -91 1691 -91
1022Q 1453 -91 1209 -44
1023Q 966 3 703 97
1024z
1025M 1959 2075
1026Q 2384 2075 2632 2365
1027Q 2881 2656 2881 3163
1028Q 2881 3666 2632 3958
1029Q 2384 4250 1959 4250
1030Q 1534 4250 1286 3958
1031Q 1038 3666 1038 3163
1032Q 1038 2656 1286 2365
1033Q 1534 2075 1959 2075
1034z
1035" transform="scale(0.015625)"/>
1036 <path id="DejaVuSans-2e" d="M 684 794
1037L 1344 794
1038L 1344 0
1039L 684 0
1040L 684 794
1041z
1042" transform="scale(0.015625)"/>
1043 <path id="DejaVuSans-28" d="M 1984 4856
1044Q 1566 4138 1362 3434
1045Q 1159 2731 1159 2009
1046Q 1159 1288 1364 580
1047Q 1569 -128 1984 -844
1048L 1484 -844
1049Q 1016 -109 783 600
1050Q 550 1309 550 2009
1051Q 550 2706 781 3412
1052Q 1013 4119 1484 4856
1053L 1984 4856
1054z
1055" transform="scale(0.015625)"/>
1056 <path id="DejaVuSans-2264" d="M 4684 3175
1057L 1684 2309
1058L 4684 1453
1059L 4684 897
1060L 678 2047
1061L 678 2578
1062L 4684 3725
1063L 4684 3175
1064z
1065M 678 531
1066L 4684 531
1067L 4684 0
1068L 678 0
1069L 678 531
1070z
1071" transform="scale(0.015625)"/>
1072 <path id="DejaVuSans-30" d="M 2034 4250
1073Q 1547 4250 1301 3770
1074Q 1056 3291 1056 2328
1075Q 1056 1369 1301 889
1076Q 1547 409 2034 409
1077Q 2525 409 2770 889
1078Q 3016 1369 3016 2328
1079Q 3016 3291 2770 3770
1080Q 2525 4250 2034 4250
1081z
1082M 2034 4750
1083Q 2819 4750 3233 4129
1084Q 3647 3509 3647 2328
1085Q 3647 1150 3233 529
1086Q 2819 -91 2034 -91
1087Q 1250 -91 836 529
1088Q 422 1150 422 2328
1089Q 422 3509 836 4129
1090Q 1250 4750 2034 4750
1091z
1092" transform="scale(0.015625)"/>
1093 <path id="DejaVuSans-29" d="M 513 4856
1094L 1013 4856
1095Q 1481 4119 1714 3412
1096Q 1947 2706 1947 2009
1097Q 1947 1309 1714 600
1098Q 1481 -109 1013 -844
1099L 513 -844
1100Q 928 -128 1133 580
1101Q 1338 1288 1338 2009
1102Q 1338 2731 1133 3434
1103Q 928 4138 513 4856
1104z
1105" transform="scale(0.015625)"/>
1106 </defs>
1107 <use xlink:href="#DejaVuSans-63"/>
1108 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1109 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1110 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1111 <use xlink:href="#DejaVuSans-20" transform="translate(207.421875 0)"/>
1112 <use xlink:href="#DejaVuSans-56" transform="translate(239.208984 0)"/>
1113 <use xlink:href="#DejaVuSans-6f" transform="translate(299.867188 0)"/>
1114 <use xlink:href="#DejaVuSans-63" transform="translate(361.048828 0)"/>
1115 <use xlink:href="#DejaVuSans-20" transform="translate(416.029297 0)"/>
1116 <use xlink:href="#DejaVuSans-34" transform="translate(447.816406 0)"/>
1117 <use xlink:href="#DejaVuSans-39" transform="translate(511.439453 0)"/>
1118 <use xlink:href="#DejaVuSans-31" transform="translate(575.0625 0)"/>
1119 <use xlink:href="#DejaVuSans-2e" transform="translate(638.685547 0)"/>
1120 <use xlink:href="#DejaVuSans-35" transform="translate(670.472656 0)"/>
1121 <use xlink:href="#DejaVuSans-56" transform="translate(734.095703 0)"/>
1122 <use xlink:href="#DejaVuSans-20" transform="translate(802.503906 0)"/>
1123 <use xlink:href="#DejaVuSans-28" transform="translate(834.291016 0)"/>
1124 <use xlink:href="#DejaVuSans-2264" transform="translate(873.304688 0)"/>
1125 <use xlink:href="#DejaVuSans-35" transform="translate(957.09375 0)"/>
1126 <use xlink:href="#DejaVuSans-35" transform="translate(1020.716797 0)"/>
1127 <use xlink:href="#DejaVuSans-30" transform="translate(1084.339844 0)"/>
1128 <use xlink:href="#DejaVuSans-29" transform="translate(1147.962891 0)"/>
1129 </g>
1130 </g>
1131 <g id="text_2">
1132 <!-- 8AWG×200ft -->
1133 <g transform="translate(125.83198 258.413908) scale(0.1 -0.1)">
1134 <defs>
1135 <path id="DejaVuSans-47" d="M 3809 666
1136L 3809 1919
1137L 2778 1919
1138L 2778 2438
1139L 4434 2438
1140L 4434 434
1141Q 4069 175 3628 42
1142Q 3188 -91 2688 -91
1143Q 1594 -91 976 548
1144Q 359 1188 359 2328
1145Q 359 3472 976 4111
1146Q 1594 4750 2688 4750
1147Q 3144 4750 3555 4637
1148Q 3966 4525 4313 4306
1149L 4313 3634
1150Q 3963 3931 3569 4081
1151Q 3175 4231 2741 4231
1152Q 1884 4231 1454 3753
1153Q 1025 3275 1025 2328
1154Q 1025 1384 1454 906
1155Q 1884 428 2741 428
1156Q 3075 428 3337 486
1157Q 3600 544 3809 666
1158z
1159" transform="scale(0.015625)"/>
1160 <path id="DejaVuSans-66" d="M 2375 4863
1161L 2375 4384
1162L 1825 4384
1163Q 1516 4384 1395 4259
1164Q 1275 4134 1275 3809
1165L 1275 3500
1166L 2222 3500
1167L 2222 3053
1168L 1275 3053
1169L 1275 0
1170L 697 0
1171L 697 3053
1172L 147 3053
1173L 147 3500
1174L 697 3500
1175L 697 3744
1176Q 697 4328 969 4595
1177Q 1241 4863 1831 4863
1178L 2375 4863
1179z
1180" transform="scale(0.015625)"/>
1181 </defs>
1182 <use xlink:href="#DejaVuSans-38"/>
1183 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1184 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1185 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1186 <use xlink:href="#DejaVuSans-d7" transform="translate(302.898438 0)"/>
1187 <use xlink:href="#DejaVuSans-32" transform="translate(386.6875 0)"/>
1188 <use xlink:href="#DejaVuSans-30" transform="translate(450.310547 0)"/>
1189 <use xlink:href="#DejaVuSans-30" transform="translate(513.933594 0)"/>
1190 <use xlink:href="#DejaVuSans-66" transform="translate(577.556641 0)"/>
1191 <use xlink:href="#DejaVuSans-74" transform="translate(611.011719 0)"/>
1192 </g>
1193 <!-- 1.329% · 4 homeruns -->
1194 <g transform="translate(104.567918 268.092033) scale(0.1 -0.1)">
1195 <defs>
1196 <path id="DejaVuSans-25" d="M 4653 2053
1197Q 4381 2053 4226 1822
1198Q 4072 1591 4072 1178
1199Q 4072 772 4226 539
1200Q 4381 306 4653 306
1201Q 4919 306 5073 539
1202Q 5228 772 5228 1178
1203Q 5228 1588 5073 1820
1204Q 4919 2053 4653 2053
1205z
1206M 4653 2450
1207Q 5147 2450 5437 2106
1208Q 5728 1763 5728 1178
1209Q 5728 594 5436 251
1210Q 5144 -91 4653 -91
1211Q 4153 -91 3862 251
1212Q 3572 594 3572 1178
1213Q 3572 1766 3864 2108
1214Q 4156 2450 4653 2450
1215z
1216M 1428 4353
1217Q 1159 4353 1004 4120
1218Q 850 3888 850 3481
1219Q 850 3069 1003 2837
1220Q 1156 2606 1428 2606
1221Q 1700 2606 1854 2837
1222Q 2009 3069 2009 3481
1223Q 2009 3884 1853 4118
1224Q 1697 4353 1428 4353
1225z
1226M 4250 4750
1227L 4750 4750
1228L 1831 -91
1229L 1331 -91
1230L 4250 4750
1231z
1232M 1428 4750
1233Q 1922 4750 2215 4408
1234Q 2509 4066 2509 3481
1235Q 2509 2891 2217 2550
1236Q 1925 2209 1428 2209
1237Q 931 2209 642 2551
1238Q 353 2894 353 3481
1239Q 353 4063 643 4406
1240Q 934 4750 1428 4750
1241z
1242" transform="scale(0.015625)"/>
1243 <path id="DejaVuSans-68" d="M 3513 2113
1244L 3513 0
1245L 2938 0
1246L 2938 2094
1247Q 2938 2591 2744 2837
1248Q 2550 3084 2163 3084
1249Q 1697 3084 1428 2787
1250Q 1159 2491 1159 1978
1251L 1159 0
1252L 581 0
1253L 581 4863
1254L 1159 4863
1255L 1159 2956
1256Q 1366 3272 1645 3428
1257Q 1925 3584 2291 3584
1258Q 2894 3584 3203 3211
1259Q 3513 2838 3513 2113
1260z
1261" transform="scale(0.015625)"/>
1262 <path id="DejaVuSans-6d" d="M 3328 2828
1263Q 3544 3216 3844 3400
1264Q 4144 3584 4550 3584
1265Q 5097 3584 5394 3201
1266Q 5691 2819 5691 2113
1267L 5691 0
1268L 5113 0
1269L 5113 2094
1270Q 5113 2597 4934 2840
1271Q 4756 3084 4391 3084
1272Q 3944 3084 3684 2787
1273Q 3425 2491 3425 1978
1274L 3425 0
1275L 2847 0
1276L 2847 2094
1277Q 2847 2600 2669 2842
1278Q 2491 3084 2119 3084
1279Q 1678 3084 1418 2786
1280Q 1159 2488 1159 1978
1281L 1159 0
1282L 581 0
1283L 581 3500
1284L 1159 3500
1285L 1159 2956
1286Q 1356 3278 1631 3431
1287Q 1906 3584 2284 3584
1288Q 2666 3584 2933 3390
1289Q 3200 3197 3328 2828
1290z
1291" transform="scale(0.015625)"/>
1292 <path id="DejaVuSans-65" d="M 3597 1894
1293L 3597 1613
1294L 953 1613
1295Q 991 1019 1311 708
1296Q 1631 397 2203 397
1297Q 2534 397 2845 478
1298Q 3156 559 3463 722
1299L 3463 178
1300Q 3153 47 2828 -22
1301Q 2503 -91 2169 -91
1302Q 1331 -91 842 396
1303Q 353 884 353 1716
1304Q 353 2575 817 3079
1305Q 1281 3584 2069 3584
1306Q 2775 3584 3186 3129
1307Q 3597 2675 3597 1894
1308z
1309M 3022 2063
1310Q 3016 2534 2758 2815
1311Q 2500 3097 2075 3097
1312Q 1594 3097 1305 2825
1313Q 1016 2553 972 2059
1314L 3022 2063
1315z
1316" transform="scale(0.015625)"/>
1317 <path id="DejaVuSans-75" d="M 544 1381
1318L 544 3500
1319L 1119 3500
1320L 1119 1403
1321Q 1119 906 1312 657
1322Q 1506 409 1894 409
1323Q 2359 409 2629 706
1324Q 2900 1003 2900 1516
1325L 2900 3500
1326L 3475 3500
1327L 3475 0
1328L 2900 0
1329L 2900 538
1330Q 2691 219 2414 64
1331Q 2138 -91 1772 -91
1332Q 1169 -91 856 284
1333Q 544 659 544 1381
1334z
1335M 1991 3584
1336L 1991 3584
1337z
1338" transform="scale(0.015625)"/>
1339 </defs>
1340 <use xlink:href="#DejaVuSans-31"/>
1341 <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
1342 <use xlink:href="#DejaVuSans-33" transform="translate(95.410156 0)"/>
1343 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1344 <use xlink:href="#DejaVuSans-39" transform="translate(222.65625 0)"/>
1345 <use xlink:href="#DejaVuSans-25" transform="translate(286.279297 0)"/>
1346 <use xlink:href="#DejaVuSans-20" transform="translate(381.298828 0)"/>
1347 <use xlink:href="#DejaVuSans-b7" transform="translate(413.085938 0)"/>
1348 <use xlink:href="#DejaVuSans-20" transform="translate(444.873047 0)"/>
1349 <use xlink:href="#DejaVuSans-34" transform="translate(476.660156 0)"/>
1350 <use xlink:href="#DejaVuSans-20" transform="translate(540.283203 0)"/>
1351 <use xlink:href="#DejaVuSans-68" transform="translate(572.070312 0)"/>
1352 <use xlink:href="#DejaVuSans-6f" transform="translate(635.449219 0)"/>
1353 <use xlink:href="#DejaVuSans-6d" transform="translate(696.630859 0)"/>
1354 <use xlink:href="#DejaVuSans-65" transform="translate(794.042969 0)"/>
1355 <use xlink:href="#DejaVuSans-72" transform="translate(855.566406 0)"/>
1356 <use xlink:href="#DejaVuSans-75" transform="translate(896.679688 0)"/>
1357 <use xlink:href="#DejaVuSans-6e" transform="translate(960.058594 0)"/>
1358 <use xlink:href="#DejaVuSans-73" transform="translate(1023.4375 0)"/>
1359 </g>
1360 </g>
1361 <g id="patch_5">
1362 <path d="M 209.423539 278.08562
1363C 210.568334 278.08562 211.666395 277.630788 212.475887 276.821296
1364C 213.285379 276.011804 213.740211 274.913742 213.740211 273.768948
1365C 213.740211 272.624153 213.285379 271.526092 212.475887 270.716599
1366C 211.666395 269.907107 210.568334 269.452275 209.423539 269.452275
1367C 208.278744 269.452275 207.180683 269.907107 206.371191 270.716599
1368C 205.561699 271.526092 205.106867 272.624153 205.106867 273.768948
1369C 205.106867 274.913742 205.561699 276.011804 206.371191 276.821296
1370C 207.180683 277.630788 208.278744 278.08562 209.423539 278.08562
1371z
1372" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1373 </g>
1374 <g id="patch_6">
1375 <path d="M 236.762463 278.08562
1376C 237.907258 278.08562 239.005319 277.630788 239.814811 276.821296
1377C 240.624303 276.011804 241.079135 274.913742 241.079135 273.768948
1378C 241.079135 272.624153 240.624303 271.526092 239.814811 270.716599
1379C 239.005319 269.907107 237.907258 269.452275 236.762463 269.452275
1380C 235.617668 269.452275 234.519607 269.907107 233.710115 270.716599
1381C 232.900623 271.526092 232.445791 272.624153 232.445791 273.768948
1382C 232.445791 274.913742 232.900623 276.011804 233.710115 276.821296
1383C 234.519607 277.630788 235.617668 278.08562 236.762463 278.08562
1384z
1385" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1386 </g>
1387 <g id="patch_7">
1388 <path d="M 209.423539 314.057888
1389C 210.568334 314.057888 211.666395 313.603057 212.475887 312.793564
1390C 213.285379 311.984072 213.740211 310.886011 213.740211 309.741216
1391C 213.740211 308.596421 213.285379 307.49836 212.475887 306.688868
1392C 211.666395 305.879376 210.568334 305.424544 209.423539 305.424544
1393C 208.278744 305.424544 207.180683 305.879376 206.371191 306.688868
1394C 205.561699 307.49836 205.106867 308.596421 205.106867 309.741216
1395C 205.106867 310.886011 205.561699 311.984072 206.371191 312.793564
1396C 207.180683 313.603057 208.278744 314.057888 209.423539 314.057888
1397z
1398" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1399 </g>
1400 <g id="patch_8">
1401 <path d="M 236.762463 314.057888
1402C 237.907258 314.057888 239.005319 313.603057 239.814811 312.793564
1403C 240.624303 311.984072 241.079135 310.886011 241.079135 309.741216
1404C 241.079135 308.596421 240.624303 307.49836 239.814811 306.688868
1405C 239.005319 305.879376 237.907258 305.424544 236.762463 305.424544
1406C 235.617668 305.424544 234.519607 305.879376 233.710115 306.688868
1407C 232.900623 307.49836 232.445791 308.596421 232.445791 309.741216
1408C 232.445791 310.886011 232.900623 311.984072 233.710115 312.793564
1409C 234.519607 313.603057 235.617668 314.057888 236.762463 314.057888
1410z
1411" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1412 </g>
1413 <g id="text_3">
1414 <!-- DC -->
1415 <g transform="translate(215.751595 325.253553) scale(0.1 -0.1)">
1416 <use xlink:href="#DejaVuSans-44"/>
1417 <use xlink:href="#DejaVuSans-43" transform="translate(77.001953 0)"/>
1418 </g>
1419 <!-- disc -->
1420 <g transform="translate(213.175813 334.931678) scale(0.1 -0.1)">
1421 <use xlink:href="#DejaVuSans-64"/>
1422 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1423 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1424 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1425 </g>
1426 </g>
1427 <g id="text_4">
1428 <!-- PV -->
1429 <g transform="translate(271.655563 277.632073) scale(0.14 -0.14)">
1430 <use xlink:href="#DejaVuSans-50"/>
1431 <use xlink:href="#DejaVuSans-56" transform="translate(60.302734 0)"/>
1432 </g>
1433 </g>
1434 <g id="text_5">
1435 <!-- AC -->
1436 <g transform="translate(342.478422 277.632073) scale(0.14 -0.14)">
1437 <use xlink:href="#DejaVuSans-41"/>
1438 <use xlink:href="#DejaVuSans-43" transform="translate(66.658203 0)"/>
1439 </g>
1440 </g>
1441 <g id="text_6">
1442 <!-- ACIN -->
1443 <g transform="translate(299.765118 244.837265) scale(0.14 -0.14)">
1444 <defs>
1445 <path id="DejaVuSans-49" d="M 628 4666
1446L 1259 4666
1447L 1259 0
1448L 628 0
1449L 628 4666
1450z
1451" transform="scale(0.015625)"/>
1452 <path id="DejaVuSans-4e" d="M 628 4666
1453L 1478 4666
1454L 3547 763
1455L 3547 4666
1456L 4159 4666
1457L 4159 0
1458L 3309 0
1459L 1241 3903
1460L 1241 0
1461L 628 0
1462L 628 4666
1463z
1464" transform="scale(0.015625)"/>
1465 </defs>
1466 <use xlink:href="#DejaVuSans-41"/>
1467 <use xlink:href="#DejaVuSans-43" transform="translate(66.658203 0)"/>
1468 <use xlink:href="#DejaVuSans-49" transform="translate(136.482422 0)"/>
1469 <use xlink:href="#DejaVuSans-4e" transform="translate(165.974609 0)"/>
1470 </g>
1471 </g>
1472 <g id="text_7">
1473 <!-- BATP -->
1474 <g transform="translate(266.701014 310.42688) scale(0.14 -0.14)">
1475 <defs>
1476 <path id="DejaVuSans-42" d="M 1259 2228
1477L 1259 519
1478L 2272 519
1479Q 2781 519 3026 730
1480Q 3272 941 3272 1375
1481Q 3272 1813 3026 2020
1482Q 2781 2228 2272 2228
1483L 1259 2228
1484z
1485M 1259 4147
1486L 1259 2741
1487L 2194 2741
1488Q 2656 2741 2882 2914
1489Q 3109 3088 3109 3444
1490Q 3109 3797 2882 3972
1491Q 2656 4147 2194 4147
1492L 1259 4147
1493z
1494M 628 4666
1495L 2241 4666
1496Q 2963 4666 3353 4366
1497Q 3744 4066 3744 3513
1498Q 3744 3084 3544 2831
1499Q 3344 2578 2956 2516
1500Q 3422 2416 3680 2098
1501Q 3938 1781 3938 1306
1502Q 3938 681 3513 340
1503Q 3088 0 2303 0
1504L 628 0
1505L 628 4666
1506z
1507" transform="scale(0.015625)"/>
1508 <path id="DejaVuSans-54" d="M -19 4666
1509L 3928 4666
1510L 3928 4134
1511L 2272 4134
1512L 2272 0
1513L 1638 0
1514L 1638 4134
1515L -19 4134
1516L -19 4666
1517z
1518" transform="scale(0.015625)"/>
1519 </defs>
1520 <use xlink:href="#DejaVuSans-42"/>
1521 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
1522 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
1523 <use xlink:href="#DejaVuSans-50" transform="translate(190.345703 0)"/>
1524 </g>
1525 </g>
1526 <g id="text_8">
1527 <!-- GND -->
1528 <g transform="translate(332.945159 310.42688) scale(0.14 -0.14)">
1529 <use xlink:href="#DejaVuSans-47"/>
1530 <use xlink:href="#DejaVuSans-4e" transform="translate(77.490234 0)"/>
1531 <use xlink:href="#DejaVuSans-44" transform="translate(152.294922 0)"/>
1532 </g>
1533 </g>
1534 <g id="text_9">
1535 <!-- EG4 18kPV · 12kW 120/240V -->
1536 <g transform="translate(255.195938 212.542986) scale(0.09 -0.09)">
1537 <defs>
1538 <path id="DejaVuSans-45" d="M 628 4666
1539L 3578 4666
1540L 3578 4134
1541L 1259 4134
1542L 1259 2753
1543L 3481 2753
1544L 3481 2222
1545L 1259 2222
1546L 1259 531
1547L 3634 531
1548L 3634 0
1549L 628 0
1550L 628 4666
1551z
1552" transform="scale(0.015625)"/>
1553 <path id="DejaVuSans-6b" d="M 581 4863
1554L 1159 4863
1555L 1159 1991
1556L 2875 3500
1557L 3609 3500
1558L 1753 1863
1559L 3688 0
1560L 2938 0
1561L 1159 1709
1562L 1159 0
1563L 581 0
1564L 581 4863
1565z
1566" transform="scale(0.015625)"/>
1567 <path id="DejaVuSans-2f" d="M 1625 4666
1568L 2156 4666
1569L 531 -594
1570L 0 -594
1571L 1625 4666
1572z
1573" transform="scale(0.015625)"/>
1574 </defs>
1575 <use xlink:href="#DejaVuSans-45"/>
1576 <use xlink:href="#DejaVuSans-47" transform="translate(63.183594 0)"/>
1577 <use xlink:href="#DejaVuSans-34" transform="translate(140.673828 0)"/>
1578 <use xlink:href="#DejaVuSans-20" transform="translate(204.296875 0)"/>
1579 <use xlink:href="#DejaVuSans-31" transform="translate(236.083984 0)"/>
1580 <use xlink:href="#DejaVuSans-38" transform="translate(299.707031 0)"/>
1581 <use xlink:href="#DejaVuSans-6b" transform="translate(363.330078 0)"/>
1582 <use xlink:href="#DejaVuSans-50" transform="translate(421.240234 0)"/>
1583 <use xlink:href="#DejaVuSans-56" transform="translate(481.542969 0)"/>
1584 <use xlink:href="#DejaVuSans-20" transform="translate(549.951172 0)"/>
1585 <use xlink:href="#DejaVuSans-b7" transform="translate(581.738281 0)"/>
1586 <use xlink:href="#DejaVuSans-20" transform="translate(613.525391 0)"/>
1587 <use xlink:href="#DejaVuSans-31" transform="translate(645.3125 0)"/>
1588 <use xlink:href="#DejaVuSans-32" transform="translate(708.935547 0)"/>
1589 <use xlink:href="#DejaVuSans-6b" transform="translate(772.558594 0)"/>
1590 <use xlink:href="#DejaVuSans-57" transform="translate(830.46875 0)"/>
1591 <use xlink:href="#DejaVuSans-20" transform="translate(929.345703 0)"/>
1592 <use xlink:href="#DejaVuSans-31" transform="translate(961.132812 0)"/>
1593 <use xlink:href="#DejaVuSans-32" transform="translate(1024.755859 0)"/>
1594 <use xlink:href="#DejaVuSans-30" transform="translate(1088.378906 0)"/>
1595 <use xlink:href="#DejaVuSans-2f" transform="translate(1152.001953 0)"/>
1596 <use xlink:href="#DejaVuSans-32" transform="translate(1185.693359 0)"/>
1597 <use xlink:href="#DejaVuSans-34" transform="translate(1249.316406 0)"/>
1598 <use xlink:href="#DejaVuSans-30" transform="translate(1312.939453 0)"/>
1599 <use xlink:href="#DejaVuSans-56" transform="translate(1376.5625 0)"/>
1600 </g>
1601 <!-- 3 MPPT · 18kW PV · RSD·AFCI·GFDI -->
1602 <g transform="translate(241.970157 221.253298) scale(0.09 -0.09)">
1603 <defs>
1604 <path id="DejaVuSans-4d" d="M 628 4666
1605L 1569 4666
1606L 2759 1491
1607L 3956 4666
1608L 4897 4666
1609L 4897 0
1610L 4281 0
1611L 4281 4097
1612L 3078 897
1613L 2444 897
1614L 1241 4097
1615L 1241 0
1616L 628 0
1617L 628 4666
1618z
1619" transform="scale(0.015625)"/>
1620 <path id="DejaVuSans-46" d="M 628 4666
1621L 3309 4666
1622L 3309 4134
1623L 1259 4134
1624L 1259 2759
1625L 3109 2759
1626L 3109 2228
1627L 1259 2228
1628L 1259 0
1629L 628 0
1630L 628 4666
1631z
1632" transform="scale(0.015625)"/>
1633 </defs>
1634 <use xlink:href="#DejaVuSans-33"/>
1635 <use xlink:href="#DejaVuSans-20" transform="translate(63.623047 0)"/>
1636 <use xlink:href="#DejaVuSans-4d" transform="translate(95.410156 0)"/>
1637 <use xlink:href="#DejaVuSans-50" transform="translate(181.689453 0)"/>
1638 <use xlink:href="#DejaVuSans-50" transform="translate(241.992188 0)"/>
1639 <use xlink:href="#DejaVuSans-54" transform="translate(302.294922 0)"/>
1640 <use xlink:href="#DejaVuSans-20" transform="translate(363.378906 0)"/>
1641 <use xlink:href="#DejaVuSans-b7" transform="translate(395.166016 0)"/>
1642 <use xlink:href="#DejaVuSans-20" transform="translate(426.953125 0)"/>
1643 <use xlink:href="#DejaVuSans-31" transform="translate(458.740234 0)"/>
1644 <use xlink:href="#DejaVuSans-38" transform="translate(522.363281 0)"/>
1645 <use xlink:href="#DejaVuSans-6b" transform="translate(585.986328 0)"/>
1646 <use xlink:href="#DejaVuSans-57" transform="translate(643.896484 0)"/>
1647 <use xlink:href="#DejaVuSans-20" transform="translate(742.773438 0)"/>
1648 <use xlink:href="#DejaVuSans-50" transform="translate(774.560547 0)"/>
1649 <use xlink:href="#DejaVuSans-56" transform="translate(834.863281 0)"/>
1650 <use xlink:href="#DejaVuSans-20" transform="translate(903.271484 0)"/>
1651 <use xlink:href="#DejaVuSans-b7" transform="translate(935.058594 0)"/>
1652 <use xlink:href="#DejaVuSans-20" transform="translate(966.845703 0)"/>
1653 <use xlink:href="#DejaVuSans-52" transform="translate(998.632812 0)"/>
1654 <use xlink:href="#DejaVuSans-53" transform="translate(1068.115234 0)"/>
1655 <use xlink:href="#DejaVuSans-44" transform="translate(1131.591797 0)"/>
1656 <use xlink:href="#DejaVuSans-b7" transform="translate(1208.59375 0)"/>
1657 <use xlink:href="#DejaVuSans-41" transform="translate(1240.380859 0)"/>
1658 <use xlink:href="#DejaVuSans-46" transform="translate(1308.789062 0)"/>
1659 <use xlink:href="#DejaVuSans-43" transform="translate(1366.308594 0)"/>
1660 <use xlink:href="#DejaVuSans-49" transform="translate(1436.132812 0)"/>
1661 <use xlink:href="#DejaVuSans-b7" transform="translate(1465.625 0)"/>
1662 <use xlink:href="#DejaVuSans-47" transform="translate(1497.412109 0)"/>
1663 <use xlink:href="#DejaVuSans-46" transform="translate(1574.902344 0)"/>
1664 <use xlink:href="#DejaVuSans-44" transform="translate(1632.421875 0)"/>
1665 <use xlink:href="#DejaVuSans-49" transform="translate(1709.423828 0)"/>
1666 </g>
1667 </g>
1668 <g id="patch_9">
1669 <path d="M 316.620899 160.456302
1670C 317.765694 160.456302 318.863755 160.00147 319.673247 159.191978
1671C 320.482739 158.382486 320.937571 157.284425 320.937571 156.13963
1672C 320.937571 154.994835 320.482739 153.896774 319.673247 153.087282
1673C 318.863755 152.277789 317.765694 151.822958 316.620899 151.822958
1674C 315.476104 151.822958 314.378043 152.277789 313.568551 153.087282
1675C 312.759059 153.896774 312.304227 154.994835 312.304227 156.13963
1676C 312.304227 157.284425 312.759059 158.382486 313.568551 159.191978
1677C 314.378043 160.00147 315.476104 160.456302 316.620899 160.456302
1678z
1679" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1680 </g>
1681 <g id="patch_10">
1682 <path d="M 316.620899 133.117378
1683C 317.765694 133.117378 318.863755 132.662546 319.673247 131.853054
1684C 320.482739 131.043562 320.937571 129.945501 320.937571 128.800706
1685C 320.937571 127.655911 320.482739 126.55785 319.673247 125.748358
1686C 318.863755 124.938865 317.765694 124.484033 316.620899 124.484033
1687C 315.476104 124.484033 314.378043 124.938865 313.568551 125.748358
1688C 312.759059 126.55785 312.304227 127.655911 312.304227 128.800706
1689C 312.304227 129.945501 312.759059 131.043562 313.568551 131.853054
1690C 314.378043 132.662546 315.476104 133.117378 316.620899 133.117378
1691z
1692" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1693 </g>
1694 <g id="patch_11">
1695 <path d="M 352.593167 160.456302
1696C 353.737962 160.456302 354.836023 160.00147 355.645516 159.191978
1697C 356.455008 158.382486 356.90984 157.284425 356.90984 156.13963
1698C 356.90984 154.994835 356.455008 153.896774 355.645516 153.087282
1699C 354.836023 152.277789 353.737962 151.822958 352.593167 151.822958
1700C 351.448373 151.822958 350.350311 152.277789 349.540819 153.087282
1701C 348.731327 153.896774 348.276495 154.994835 348.276495 156.13963
1702C 348.276495 157.284425 348.731327 158.382486 349.540819 159.191978
1703C 350.350311 160.00147 351.448373 160.456302 352.593167 160.456302
1704z
1705" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1706 </g>
1707 <g id="patch_12">
1708 <path d="M 352.593167 133.117378
1709C 353.737962 133.117378 354.836023 132.662546 355.645516 131.853054
1710C 356.455008 131.043562 356.90984 129.945501 356.90984 128.800706
1711C 356.90984 127.655911 356.455008 126.55785 355.645516 125.748358
1712C 354.836023 124.938865 353.737962 124.484033 352.593167 124.484033
1713C 351.448373 124.484033 350.350311 124.938865 349.540819 125.748358
1714C 348.731327 126.55785 348.276495 127.655911 348.276495 128.800706
1715C 348.276495 129.945501 348.731327 131.043562 349.540819 131.853054
1716C 350.350311 132.662546 351.448373 133.117378 352.593167 133.117378
1717z
1718" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1719 </g>
1720 <g id="text_10">
1721 <!-- gen AC-IN -->
1722 <g transform="translate(306.3045 119.015088) scale(0.09 -0.09)">
1723 <defs>
1724 <path id="DejaVuSans-2d" d="M 313 2009
1725L 1997 2009
1726L 1997 1497
1727L 313 1497
1728L 313 2009
1729z
1730" transform="scale(0.015625)"/>
1731 </defs>
1732 <use xlink:href="#DejaVuSans-67"/>
1733 <use xlink:href="#DejaVuSans-65" transform="translate(63.476562 0)"/>
1734 <use xlink:href="#DejaVuSans-6e" transform="translate(125 0)"/>
1735 <use xlink:href="#DejaVuSans-20" transform="translate(188.378906 0)"/>
1736 <use xlink:href="#DejaVuSans-41" transform="translate(220.166016 0)"/>
1737 <use xlink:href="#DejaVuSans-43" transform="translate(286.824219 0)"/>
1738 <use xlink:href="#DejaVuSans-2d" transform="translate(356.648438 0)"/>
1739 <use xlink:href="#DejaVuSans-49" transform="translate(392.732422 0)"/>
1740 <use xlink:href="#DejaVuSans-4e" transform="translate(422.224609 0)"/>
1741 </g>
1742 </g>
1743 <g id="text_11">
1744 <!-- GENERATOR -->
1745 <g transform="translate(254.903105 88.646628) scale(0.08 -0.08)">
1746 <defs>
1747 <path id="DejaVuSans-4f" d="M 2522 4238
1748Q 1834 4238 1429 3725
1749Q 1025 3213 1025 2328
1750Q 1025 1447 1429 934
1751Q 1834 422 2522 422
1752Q 3209 422 3611 934
1753Q 4013 1447 4013 2328
1754Q 4013 3213 3611 3725
1755Q 3209 4238 2522 4238
1756z
1757M 2522 4750
1758Q 3503 4750 4090 4092
1759Q 4678 3434 4678 2328
1760Q 4678 1225 4090 567
1761Q 3503 -91 2522 -91
1762Q 1538 -91 948 565
1763Q 359 1222 359 2328
1764Q 359 3434 948 4092
1765Q 1538 4750 2522 4750
1766z
1767" transform="scale(0.015625)"/>
1768 </defs>
1769 <use xlink:href="#DejaVuSans-47"/>
1770 <use xlink:href="#DejaVuSans-45" transform="translate(77.490234 0)"/>
1771 <use xlink:href="#DejaVuSans-4e" transform="translate(140.673828 0)"/>
1772 <use xlink:href="#DejaVuSans-45" transform="translate(215.478516 0)"/>
1773 <use xlink:href="#DejaVuSans-52" transform="translate(278.662109 0)"/>
1774 <use xlink:href="#DejaVuSans-41" transform="translate(344.144531 0)"/>
1775 <use xlink:href="#DejaVuSans-54" transform="translate(404.802734 0)"/>
1776 <use xlink:href="#DejaVuSans-4f" transform="translate(465.886719 0)"/>
1777 <use xlink:href="#DejaVuSans-52" transform="translate(544.597656 0)"/>
1778 </g>
1779 <!-- 200A bypass · 90A gen -->
1780 <g transform="translate(211.721855 96.389128) scale(0.08 -0.08)">
1781 <defs>
1782 <path id="DejaVuSans-62" d="M 3116 1747
1783Q 3116 2381 2855 2742
1784Q 2594 3103 2138 3103
1785Q 1681 3103 1420 2742
1786Q 1159 2381 1159 1747
1787Q 1159 1113 1420 752
1788Q 1681 391 2138 391
1789Q 2594 391 2855 752
1790Q 3116 1113 3116 1747
1791z
1792M 1159 2969
1793Q 1341 3281 1617 3432
1794Q 1894 3584 2278 3584
1795Q 2916 3584 3314 3078
1796Q 3713 2572 3713 1747
1797Q 3713 922 3314 415
1798Q 2916 -91 2278 -91
1799Q 1894 -91 1617 61
1800Q 1341 213 1159 525
1801L 1159 0
1802L 581 0
1803L 581 4863
1804L 1159 4863
1805L 1159 2969
1806z
1807" transform="scale(0.015625)"/>
1808 <path id="DejaVuSans-79" d="M 2059 -325
1809Q 1816 -950 1584 -1140
1810Q 1353 -1331 966 -1331
1811L 506 -1331
1812L 506 -850
1813L 844 -850
1814Q 1081 -850 1212 -737
1815Q 1344 -625 1503 -206
1816L 1606 56
1817L 191 3500
1818L 800 3500
1819L 1894 763
1820L 2988 3500
1821L 3597 3500
1822L 2059 -325
1823z
1824" transform="scale(0.015625)"/>
1825 <path id="DejaVuSans-70" d="M 1159 525
1826L 1159 -1331
1827L 581 -1331
1828L 581 3500
1829L 1159 3500
1830L 1159 2969
1831Q 1341 3281 1617 3432
1832Q 1894 3584 2278 3584
1833Q 2916 3584 3314 3078
1834Q 3713 2572 3713 1747
1835Q 3713 922 3314 415
1836Q 2916 -91 2278 -91
1837Q 1894 -91 1617 61
1838Q 1341 213 1159 525
1839z
1840M 3116 1747
1841Q 3116 2381 2855 2742
1842Q 2594 3103 2138 3103
1843Q 1681 3103 1420 2742
1844Q 1159 2381 1159 1747
1845Q 1159 1113 1420 752
1846Q 1681 391 2138 391
1847Q 2594 391 2855 752
1848Q 3116 1113 3116 1747
1849z
1850" transform="scale(0.015625)"/>
1851 <path id="DejaVuSans-61" d="M 2194 1759
1852Q 1497 1759 1228 1600
1853Q 959 1441 959 1056
1854Q 959 750 1161 570
1855Q 1363 391 1709 391
1856Q 2188 391 2477 730
1857Q 2766 1069 2766 1631
1858L 2766 1759
1859L 2194 1759
1860z
1861M 3341 1997
1862L 3341 0
1863L 2766 0
1864L 2766 531
1865Q 2569 213 2275 61
1866Q 1981 -91 1556 -91
1867Q 1019 -91 701 211
1868Q 384 513 384 1019
1869Q 384 1609 779 1909
1870Q 1175 2209 1959 2209
1871L 2766 2209
1872L 2766 2266
1873Q 2766 2663 2505 2880
1874Q 2244 3097 1772 3097
1875Q 1472 3097 1187 3025
1876Q 903 2953 641 2809
1877L 641 3341
1878Q 956 3463 1253 3523
1879Q 1550 3584 1831 3584
1880Q 2591 3584 2966 3190
1881Q 3341 2797 3341 1997
1882z
1883" transform="scale(0.015625)"/>
1884 </defs>
1885 <use xlink:href="#DejaVuSans-32"/>
1886 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1887 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1888 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1889 <use xlink:href="#DejaVuSans-20" transform="translate(259.277344 0)"/>
1890 <use xlink:href="#DejaVuSans-62" transform="translate(291.064453 0)"/>
1891 <use xlink:href="#DejaVuSans-79" transform="translate(354.541016 0)"/>
1892 <use xlink:href="#DejaVuSans-70" transform="translate(413.720703 0)"/>
1893 <use xlink:href="#DejaVuSans-61" transform="translate(477.197266 0)"/>
1894 <use xlink:href="#DejaVuSans-73" transform="translate(538.476562 0)"/>
1895 <use xlink:href="#DejaVuSans-73" transform="translate(590.576172 0)"/>
1896 <use xlink:href="#DejaVuSans-20" transform="translate(642.675781 0)"/>
1897 <use xlink:href="#DejaVuSans-b7" transform="translate(674.462891 0)"/>
1898 <use xlink:href="#DejaVuSans-20" transform="translate(706.25 0)"/>
1899 <use xlink:href="#DejaVuSans-39" transform="translate(738.037109 0)"/>
1900 <use xlink:href="#DejaVuSans-30" transform="translate(801.660156 0)"/>
1901 <use xlink:href="#DejaVuSans-41" transform="translate(865.283203 0)"/>
1902 <use xlink:href="#DejaVuSans-20" transform="translate(933.691406 0)"/>
1903 <use xlink:href="#DejaVuSans-67" transform="translate(965.478516 0)"/>
1904 <use xlink:href="#DejaVuSans-65" transform="translate(1028.955078 0)"/>
1905 <use xlink:href="#DejaVuSans-6e" transform="translate(1090.478516 0)"/>
1906 </g>
1907 </g>
1908 <g id="patch_13">
1909 <path d="M 454.034965 278.08562
1910C 455.179759 278.08562 456.277821 277.630788 457.087313 276.821296
1911C 457.896805 276.011804 458.351637 274.913742 458.351637 273.768948
1912C 458.351637 272.624153 457.896805 271.526092 457.087313 270.716599
1913C 456.277821 269.907107 455.179759 269.452275 454.034965 269.452275
1914C 452.89017 269.452275 451.792109 269.907107 450.982616 270.716599
1915C 450.173124 271.526092 449.718292 272.624153 449.718292 273.768948
1916C 449.718292 274.913742 450.173124 276.011804 450.982616 276.821296
1917C 451.792109 277.630788 452.89017 278.08562 454.034965 278.08562
1918z
1919" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1920 </g>
1921 <g id="patch_14">
1922 <path d="M 481.373889 278.08562
1923C 482.518683 278.08562 483.616745 277.630788 484.426237 276.821296
1924C 485.235729 276.011804 485.690561 274.913742 485.690561 273.768948
1925C 485.690561 272.624153 485.235729 271.526092 484.426237 270.716599
1926C 483.616745 269.907107 482.518683 269.452275 481.373889 269.452275
1927C 480.229094 269.452275 479.131033 269.907107 478.32154 270.716599
1928C 477.512048 271.526092 477.057216 272.624153 477.057216 273.768948
1929C 477.057216 274.913742 477.512048 276.011804 478.32154 276.821296
1930C 479.131033 277.630788 480.229094 278.08562 481.373889 278.08562
1931z
1932" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1933 </g>
1934 <g id="patch_15">
1935 <path d="M 454.034965 314.057888
1936C 455.179759 314.057888 456.277821 313.603057 457.087313 312.793564
1937C 457.896805 311.984072 458.351637 310.886011 458.351637 309.741216
1938C 458.351637 308.596421 457.896805 307.49836 457.087313 306.688868
1939C 456.277821 305.879376 455.179759 305.424544 454.034965 305.424544
1940C 452.89017 305.424544 451.792109 305.879376 450.982616 306.688868
1941C 450.173124 307.49836 449.718292 308.596421 449.718292 309.741216
1942C 449.718292 310.886011 450.173124 311.984072 450.982616 312.793564
1943C 451.792109 313.603057 452.89017 314.057888 454.034965 314.057888
1944z
1945" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1946 </g>
1947 <g id="patch_16">
1948 <path d="M 481.373889 314.057888
1949C 482.518683 314.057888 483.616745 313.603057 484.426237 312.793564
1950C 485.235729 311.984072 485.690561 310.886011 485.690561 309.741216
1951C 485.690561 308.596421 485.235729 307.49836 484.426237 306.688868
1952C 483.616745 305.879376 482.518683 305.424544 481.373889 305.424544
1953C 480.229094 305.424544 479.131033 305.879376 478.32154 306.688868
1954C 477.512048 307.49836 477.057216 308.596421 477.057216 309.741216
1955C 477.057216 310.886011 477.512048 311.984072 478.32154 312.793564
1956C 479.131033 313.603057 480.229094 314.057888 481.373889 314.057888
1957z
1958" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1959 </g>
1960 <g id="text_12">
1961 <!-- 70A -->
1962 <g transform="translate(457.921614 242.226387) scale(0.1 -0.1)">
1963 <use xlink:href="#DejaVuSans-37"/>
1964 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1965 <use xlink:href="#DejaVuSans-41" transform="translate(127.246094 0)"/>
1966 </g>
1967 <!-- 2-pole -->
1968 <g transform="translate(452.020052 251.904512) scale(0.1 -0.1)">
1969 <use xlink:href="#DejaVuSans-32"/>
1970 <use xlink:href="#DejaVuSans-2d" transform="translate(63.623047 0)"/>
1971 <use xlink:href="#DejaVuSans-70" transform="translate(99.707031 0)"/>
1972 <use xlink:href="#DejaVuSans-6f" transform="translate(163.183594 0)"/>
1973 <use xlink:href="#DejaVuSans-6c" transform="translate(224.365234 0)"/>
1974 <use xlink:href="#DejaVuSans-65" transform="translate(252.148438 0)"/>
1975 </g>
1976 </g>
1977 <g id="text_13">
1978 <!-- MAIN PANEL -->
1979 <g transform="translate(517.737538 241.88631) scale(0.09 -0.09)">
1980 <defs>
1981 <path id="DejaVuSans-4c" d="M 628 4666
1982L 1259 4666
1983L 1259 531
1984L 3531 531
1985L 3531 0
1986L 628 0
1987L 628 4666
1988z
1989" transform="scale(0.015625)"/>
1990 </defs>
1991 <use xlink:href="#DejaVuSans-4d"/>
1992 <use xlink:href="#DejaVuSans-41" transform="translate(86.279297 0)"/>
1993 <use xlink:href="#DejaVuSans-49" transform="translate(154.6875 0)"/>
1994 <use xlink:href="#DejaVuSans-4e" transform="translate(184.179688 0)"/>
1995 <use xlink:href="#DejaVuSans-20" transform="translate(258.984375 0)"/>
1996 <use xlink:href="#DejaVuSans-50" transform="translate(290.771484 0)"/>
1997 <use xlink:href="#DejaVuSans-41" transform="translate(344.699219 0)"/>
1998 <use xlink:href="#DejaVuSans-4e" transform="translate(413.107422 0)"/>
1999 <use xlink:href="#DejaVuSans-45" transform="translate(487.912109 0)"/>
2000 <use xlink:href="#DejaVuSans-4c" transform="translate(551.095703 0)"/>
2001 </g>
2002 <!-- subfed (main off) -->
2003 <g transform="translate(506.245663 250.596622) scale(0.09 -0.09)">
2004 <use xlink:href="#DejaVuSans-73"/>
2005 <use xlink:href="#DejaVuSans-75" transform="translate(52.099609 0)"/>
2006 <use xlink:href="#DejaVuSans-62" transform="translate(115.478516 0)"/>
2007 <use xlink:href="#DejaVuSans-66" transform="translate(178.955078 0)"/>
2008 <use xlink:href="#DejaVuSans-65" transform="translate(214.160156 0)"/>
2009 <use xlink:href="#DejaVuSans-64" transform="translate(275.683594 0)"/>
2010 <use xlink:href="#DejaVuSans-20" transform="translate(339.160156 0)"/>
2011 <use xlink:href="#DejaVuSans-28" transform="translate(370.947266 0)"/>
2012 <use xlink:href="#DejaVuSans-6d" transform="translate(409.960938 0)"/>
2013 <use xlink:href="#DejaVuSans-61" transform="translate(507.373047 0)"/>
2014 <use xlink:href="#DejaVuSans-69" transform="translate(568.652344 0)"/>
2015 <use xlink:href="#DejaVuSans-6e" transform="translate(596.435547 0)"/>
2016 <use xlink:href="#DejaVuSans-20" transform="translate(659.814453 0)"/>
2017 <use xlink:href="#DejaVuSans-6f" transform="translate(691.601562 0)"/>
2018 <use xlink:href="#DejaVuSans-66" transform="translate(752.783203 0)"/>
2019 <use xlink:href="#DejaVuSans-66" transform="translate(787.988281 0)"/>
2020 <use xlink:href="#DejaVuSans-29" transform="translate(823.193359 0)"/>
2021 </g>
2022 <!-- 4AWG×10ft -->
2023 <g transform="translate(518.648085 259.306935) scale(0.09 -0.09)">
2024 <use xlink:href="#DejaVuSans-34"/>
2025 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
2026 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
2027 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
2028 <use xlink:href="#DejaVuSans-d7" transform="translate(302.898438 0)"/>
2029 <use xlink:href="#DejaVuSans-31" transform="translate(386.6875 0)"/>
2030 <use xlink:href="#DejaVuSans-30" transform="translate(450.310547 0)"/>
2031 <use xlink:href="#DejaVuSans-66" transform="translate(513.933594 0)"/>
2032 <use xlink:href="#DejaVuSans-74" transform="translate(547.388672 0)"/>
2033 </g>
2034 </g>
2035 <g id="patch_17">
2036 <path d="M 284.245857 377.728804
2037C 285.390652 377.728804 286.488713 377.273972 287.298206 376.464479
2038C 288.107698 375.654987 288.56253 374.556926 288.56253 373.412131
2039C 288.56253 372.267336 288.107698 371.169275 287.298206 370.359783
2040C 286.488713 369.550291 285.390652 369.095459 284.245857 369.095459
2041C 283.101062 369.095459 282.003001 369.550291 281.193509 370.359783
2042C 280.384017 371.169275 279.929185 372.267336 279.929185 373.412131
2043C 279.929185 374.556926 280.384017 375.654987 281.193509 376.464479
2044C 282.003001 377.273972 283.101062 377.728804 284.245857 377.728804
2045z
2046" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
2047 </g>
2048 <g id="patch_18">
2049 <path d="M 284.245857 405.067728
2050C 285.390652 405.067728 286.488713 404.612896 287.298206 403.803404
2051C 288.107698 402.993911 288.56253 401.89585 288.56253 400.751055
2052C 288.56253 399.60626 288.107698 398.508199 287.298206 397.698707
2053C 286.488713 396.889215 285.390652 396.434383 284.245857 396.434383
2054C 283.101062 396.434383 282.003001 396.889215 281.193509 397.698707
2055C 280.384017 398.508199 279.929185 399.60626 279.929185 400.751055
2056C 279.929185 401.89585 280.384017 402.993911 281.193509 403.803404
2057C 282.003001 404.612896 283.101062 405.067728 284.245857 405.067728
2058z
2059" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
2060 </g>
2061 <g id="patch_19">
2062 <path d="M 248.273589 377.728804
2063C 249.418384 377.728804 250.516445 377.273972 251.325937 376.464479
2064C 252.135429 375.654987 252.590261 374.556926 252.590261 373.412131
2065C 252.590261 372.267336 252.135429 371.169275 251.325937 370.359783
2066C 250.516445 369.550291 249.418384 369.095459 248.273589 369.095459
2067C 247.128794 369.095459 246.030733 369.550291 245.221241 370.359783
2068C 244.411748 371.169275 243.956917 372.267336 243.956917 373.412131
2069C 243.956917 374.556926 244.411748 375.654987 245.221241 376.464479
2070C 246.030733 377.273972 247.128794 377.728804 248.273589 377.728804
2071z
2072" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
2073 </g>
2074 <g id="patch_20">
2075 <path d="M 248.273589 405.067728
2076C 249.418384 405.067728 250.516445 404.612896 251.325937 403.803404
2077C 252.135429 402.993911 252.590261 401.89585 252.590261 400.751055
2078C 252.590261 399.60626 252.135429 398.508199 251.325937 397.698707
2079C 250.516445 396.889215 249.418384 396.434383 248.273589 396.434383
2080C 247.128794 396.434383 246.030733 396.889215 245.221241 397.698707
2081C 244.411748 398.508199 243.956917 399.60626 243.956917 400.751055
2082C 243.956917 401.89585 244.411748 402.993911 245.221241 403.803404
2083C 246.030733 404.612896 247.128794 405.067728 248.273589 405.067728
2084z
2085" clip-path="url(#p764da30e8d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
2086 </g>
2087 <g id="text_14">
2088 <!-- bank disc 250A -->
2089 <g transform="translate(241.505772 363.834482) scale(0.08 -0.08)">
2090 <use xlink:href="#DejaVuSans-62"/>
2091 <use xlink:href="#DejaVuSans-61" transform="translate(63.476562 0)"/>
2092 <use xlink:href="#DejaVuSans-6e" transform="translate(124.755859 0)"/>
2093 <use xlink:href="#DejaVuSans-6b" transform="translate(188.134766 0)"/>
2094 <use xlink:href="#DejaVuSans-20" transform="translate(246.044922 0)"/>
2095 <use xlink:href="#DejaVuSans-64" transform="translate(277.832031 0)"/>
2096 <use xlink:href="#DejaVuSans-69" transform="translate(341.308594 0)"/>
2097 <use xlink:href="#DejaVuSans-73" transform="translate(369.091797 0)"/>
2098 <use xlink:href="#DejaVuSans-63" transform="translate(421.191406 0)"/>
2099 <use xlink:href="#DejaVuSans-20" transform="translate(476.171875 0)"/>
2100 <use xlink:href="#DejaVuSans-32" transform="translate(507.958984 0)"/>
2101 <use xlink:href="#DejaVuSans-35" transform="translate(571.582031 0)"/>
2102 <use xlink:href="#DejaVuSans-30" transform="translate(635.205078 0)"/>
2103 <use xlink:href="#DejaVuSans-41" transform="translate(698.828125 0)"/>
2104 </g>
2105 </g>
2106 <g id="text_15">
2107 <!-- bank 400kcmil / 2×4/0 -->
2108 <g transform="translate(238.638982 432.729839) scale(0.08 -0.08)">
2109 <use xlink:href="#DejaVuSans-62"/>
2110 <use xlink:href="#DejaVuSans-61" transform="translate(63.476562 0)"/>
2111 <use xlink:href="#DejaVuSans-6e" transform="translate(124.755859 0)"/>
2112 <use xlink:href="#DejaVuSans-6b" transform="translate(188.134766 0)"/>
2113 <use xlink:href="#DejaVuSans-20" transform="translate(246.044922 0)"/>
2114 <use xlink:href="#DejaVuSans-34" transform="translate(277.832031 0)"/>
2115 <use xlink:href="#DejaVuSans-30" transform="translate(341.455078 0)"/>
2116 <use xlink:href="#DejaVuSans-30" transform="translate(405.078125 0)"/>
2117 <use xlink:href="#DejaVuSans-6b" transform="translate(468.701172 0)"/>
2118 <use xlink:href="#DejaVuSans-63" transform="translate(526.611328 0)"/>
2119 <use xlink:href="#DejaVuSans-6d" transform="translate(581.591797 0)"/>
2120 <use xlink:href="#DejaVuSans-69" transform="translate(679.003906 0)"/>
2121 <use xlink:href="#DejaVuSans-6c" transform="translate(706.787109 0)"/>
2122 <use xlink:href="#DejaVuSans-20" transform="translate(734.570312 0)"/>
2123 <use xlink:href="#DejaVuSans-2f" transform="translate(766.357422 0)"/>
2124 <use xlink:href="#DejaVuSans-20" transform="translate(800.048828 0)"/>
2125 <use xlink:href="#DejaVuSans-32" transform="translate(831.835938 0)"/>
2126 <use xlink:href="#DejaVuSans-d7" transform="translate(895.458984 0)"/>
2127 <use xlink:href="#DejaVuSans-34" transform="translate(979.248047 0)"/>
2128 <use xlink:href="#DejaVuSans-2f" transform="translate(1042.871094 0)"/>
2129 <use xlink:href="#DejaVuSans-30" transform="translate(1076.5625 0)"/>
2130 </g>
2131 <!-- ×10ft · 249A · 0.313% -->
2132 <g transform="translate(239.647107 440.472339) scale(0.08 -0.08)">
2133 <use xlink:href="#DejaVuSans-d7"/>
2134 <use xlink:href="#DejaVuSans-31" transform="translate(83.789062 0)"/>
2135 <use xlink:href="#DejaVuSans-30" transform="translate(147.412109 0)"/>
2136 <use xlink:href="#DejaVuSans-66" transform="translate(211.035156 0)"/>
2137 <use xlink:href="#DejaVuSans-74" transform="translate(244.490234 0)"/>
2138 <use xlink:href="#DejaVuSans-20" transform="translate(283.699219 0)"/>
2139 <use xlink:href="#DejaVuSans-b7" transform="translate(315.486328 0)"/>
2140 <use xlink:href="#DejaVuSans-20" transform="translate(347.273438 0)"/>
2141 <use xlink:href="#DejaVuSans-32" transform="translate(379.060547 0)"/>
2142 <use xlink:href="#DejaVuSans-34" transform="translate(442.683594 0)"/>
2143 <use xlink:href="#DejaVuSans-39" transform="translate(506.306641 0)"/>
2144 <use xlink:href="#DejaVuSans-41" transform="translate(569.929688 0)"/>
2145 <use xlink:href="#DejaVuSans-20" transform="translate(638.337891 0)"/>
2146 <use xlink:href="#DejaVuSans-b7" transform="translate(670.125 0)"/>
2147 <use xlink:href="#DejaVuSans-20" transform="translate(701.912109 0)"/>
2148 <use xlink:href="#DejaVuSans-30" transform="translate(733.699219 0)"/>
2149 <use xlink:href="#DejaVuSans-2e" transform="translate(797.322266 0)"/>
2150 <use xlink:href="#DejaVuSans-33" transform="translate(829.109375 0)"/>
2151 <use xlink:href="#DejaVuSans-31" transform="translate(892.732422 0)"/>
2152 <use xlink:href="#DejaVuSans-33" transform="translate(956.355469 0)"/>
2153 <use xlink:href="#DejaVuSans-25" transform="translate(1019.978516 0)"/>
2154 </g>
2155 </g>
2156 <g id="text_16">
2157 <!-- DC BUSBAR (250A) -->
2158 <g transform="translate(185.30197 474.099862) scale(0.09 -0.09)">
2159 <defs>
2160 <path id="DejaVuSans-55" d="M 556 4666
2161L 1191 4666
2162L 1191 1831
2163Q 1191 1081 1462 751
2164Q 1734 422 2344 422
2165Q 2950 422 3222 751
2166Q 3494 1081 3494 1831
2167L 3494 4666
2168L 4128 4666
2169L 4128 1753
2170Q 4128 841 3676 375
2171Q 3225 -91 2344 -91
2172Q 1459 -91 1007 375
2173Q 556 841 556 1753
2174L 556 4666
2175z
2176" transform="scale(0.015625)"/>
2177 </defs>
2178 <use xlink:href="#DejaVuSans-44"/>
2179 <use xlink:href="#DejaVuSans-43" transform="translate(77.001953 0)"/>
2180 <use xlink:href="#DejaVuSans-20" transform="translate(146.826172 0)"/>
2181 <use xlink:href="#DejaVuSans-42" transform="translate(178.613281 0)"/>
2182 <use xlink:href="#DejaVuSans-55" transform="translate(247.216797 0)"/>
2183 <use xlink:href="#DejaVuSans-53" transform="translate(320.410156 0)"/>
2184 <use xlink:href="#DejaVuSans-42" transform="translate(383.886719 0)"/>
2185 <use xlink:href="#DejaVuSans-41" transform="translate(452.490234 0)"/>
2186 <use xlink:href="#DejaVuSans-52" transform="translate(520.898438 0)"/>
2187 <use xlink:href="#DejaVuSans-20" transform="translate(590.380859 0)"/>
2188 <use xlink:href="#DejaVuSans-28" transform="translate(622.167969 0)"/>
2189 <use xlink:href="#DejaVuSans-32" transform="translate(661.181641 0)"/>
2190 <use xlink:href="#DejaVuSans-35" transform="translate(724.804688 0)"/>
2191 <use xlink:href="#DejaVuSans-30" transform="translate(788.427734 0)"/>
2192 <use xlink:href="#DejaVuSans-41" transform="translate(852.050781 0)"/>
2193 <use xlink:href="#DejaVuSans-29" transform="translate(920.458984 0)"/>
2194 </g>
2195 </g>
2196 <g id="text_17">
2197 <!-- 2× 175A Class-T -->
2198 <g transform="translate(251.390857 543.695825) scale(0.08 -0.08)">
2199 <use xlink:href="#DejaVuSans-32"/>
2200 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
2201 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
2202 <use xlink:href="#DejaVuSans-31" transform="translate(179.199219 0)"/>
2203 <use xlink:href="#DejaVuSans-37" transform="translate(242.822266 0)"/>
2204 <use xlink:href="#DejaVuSans-35" transform="translate(306.445312 0)"/>
2205 <use xlink:href="#DejaVuSans-41" transform="translate(370.068359 0)"/>
2206 <use xlink:href="#DejaVuSans-20" transform="translate(438.476562 0)"/>
2207 <use xlink:href="#DejaVuSans-43" transform="translate(470.263672 0)"/>
2208 <use xlink:href="#DejaVuSans-6c" transform="translate(540.087891 0)"/>
2209 <use xlink:href="#DejaVuSans-61" transform="translate(567.871094 0)"/>
2210 <use xlink:href="#DejaVuSans-73" transform="translate(629.150391 0)"/>
2211 <use xlink:href="#DejaVuSans-73" transform="translate(681.25 0)"/>
2212 <use xlink:href="#DejaVuSans-2d" transform="translate(733.349609 0)"/>
2213 <use xlink:href="#DejaVuSans-54" transform="translate(760.308594 0)"/>
2214 </g>
2215 </g>
2216 <g id="text_18">
2217 <!-- 2× Docan S3 · 51.2V -->
2218 <g transform="translate(242.552732 781.660843) scale(0.08 -0.08)">
2219 <use xlink:href="#DejaVuSans-32"/>
2220 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
2221 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
2222 <use xlink:href="#DejaVuSans-44" transform="translate(179.199219 0)"/>
2223 <use xlink:href="#DejaVuSans-6f" transform="translate(256.201172 0)"/>
2224 <use xlink:href="#DejaVuSans-63" transform="translate(317.382812 0)"/>
2225 <use xlink:href="#DejaVuSans-61" transform="translate(372.363281 0)"/>
2226 <use xlink:href="#DejaVuSans-6e" transform="translate(433.642578 0)"/>
2227 <use xlink:href="#DejaVuSans-20" transform="translate(497.021484 0)"/>
2228 <use xlink:href="#DejaVuSans-53" transform="translate(528.808594 0)"/>
2229 <use xlink:href="#DejaVuSans-33" transform="translate(592.285156 0)"/>
2230 <use xlink:href="#DejaVuSans-20" transform="translate(655.908203 0)"/>
2231 <use xlink:href="#DejaVuSans-b7" transform="translate(687.695312 0)"/>
2232 <use xlink:href="#DejaVuSans-20" transform="translate(719.482422 0)"/>
2233 <use xlink:href="#DejaVuSans-35" transform="translate(751.269531 0)"/>
2234 <use xlink:href="#DejaVuSans-31" transform="translate(814.892578 0)"/>
2235 <use xlink:href="#DejaVuSans-2e" transform="translate(878.515625 0)"/>
2236 <use xlink:href="#DejaVuSans-32" transform="translate(910.302734 0)"/>
2237 <use xlink:href="#DejaVuSans-56" transform="translate(973.925781 0)"/>
2238 </g>
2239 <!-- 25.73kWh usable (80% DoD) -->
2240 <g transform="translate(226.373357 789.403343) scale(0.08 -0.08)">
2241 <use xlink:href="#DejaVuSans-32"/>
2242 <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
2243 <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2244 <use xlink:href="#DejaVuSans-37" transform="translate(159.033203 0)"/>
2245 <use xlink:href="#DejaVuSans-33" transform="translate(222.65625 0)"/>
2246 <use xlink:href="#DejaVuSans-6b" transform="translate(286.279297 0)"/>
2247 <use xlink:href="#DejaVuSans-57" transform="translate(344.189453 0)"/>
2248 <use xlink:href="#DejaVuSans-68" transform="translate(443.066406 0)"/>
2249 <use xlink:href="#DejaVuSans-20" transform="translate(506.445312 0)"/>
2250 <use xlink:href="#DejaVuSans-75" transform="translate(538.232422 0)"/>
2251 <use xlink:href="#DejaVuSans-73" transform="translate(601.611328 0)"/>
2252 <use xlink:href="#DejaVuSans-61" transform="translate(653.710938 0)"/>
2253 <use xlink:href="#DejaVuSans-62" transform="translate(714.990234 0)"/>
2254 <use xlink:href="#DejaVuSans-6c" transform="translate(778.466797 0)"/>
2255 <use xlink:href="#DejaVuSans-65" transform="translate(806.25 0)"/>
2256 <use xlink:href="#DejaVuSans-20" transform="translate(867.773438 0)"/>
2257 <use xlink:href="#DejaVuSans-28" transform="translate(899.560547 0)"/>
2258 <use xlink:href="#DejaVuSans-38" transform="translate(938.574219 0)"/>
2259 <use xlink:href="#DejaVuSans-30" transform="translate(1002.197266 0)"/>
2260 <use xlink:href="#DejaVuSans-25" transform="translate(1065.820312 0)"/>
2261 <use xlink:href="#DejaVuSans-20" transform="translate(1160.839844 0)"/>
2262 <use xlink:href="#DejaVuSans-44" transform="translate(1192.626953 0)"/>
2263 <use xlink:href="#DejaVuSans-6f" transform="translate(1269.628906 0)"/>
2264 <use xlink:href="#DejaVuSans-44" transform="translate(1330.810547 0)"/>
2265 <use xlink:href="#DejaVuSans-29" transform="translate(1407.8125 0)"/>
2266 </g>
2267 <!-- 2/0Cu/pack · 0.235% · JK-BMS→CAN -->
2268 <g transform="translate(213.457107 797.145843) scale(0.08 -0.08)">
2269 <defs>
2270 <path id="DejaVuSans-4a" d="M 628 4666
2271L 1259 4666
2272L 1259 325
2273Q 1259 -519 939 -900
2274Q 619 -1281 -91 -1281
2275L -331 -1281
2276L -331 -750
2277L -134 -750
2278Q 284 -750 456 -515
2279Q 628 -281 628 325
2280L 628 4666
2281z
2282" transform="scale(0.015625)"/>
2283 <path id="DejaVuSans-4b" d="M 628 4666
2284L 1259 4666
2285L 1259 2694
2286L 3353 4666
2287L 4166 4666
2288L 1850 2491
2289L 4331 0
2290L 3500 0
2291L 1259 2247
2292L 1259 0
2293L 628 0
2294L 628 4666
2295z
2296" transform="scale(0.015625)"/>
2297 <path id="DejaVuSans-2192" d="M 5050 2147
2298L 5050 1866
2299L 3822 638
2300L 3447 1013
2301L 4175 1741
2302L 366 1741
2303L 366 2272
2304L 4175 2272
2305L 3447 3000
2306L 3822 3375
2307L 5050 2147
2308z
2309" transform="scale(0.015625)"/>
2310 </defs>
2311 <use xlink:href="#DejaVuSans-32"/>
2312 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
2313 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
2314 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
2315 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
2316 <use xlink:href="#DejaVuSans-2f" transform="translate(294.140625 0)"/>
2317 <use xlink:href="#DejaVuSans-70" transform="translate(327.832031 0)"/>
2318 <use xlink:href="#DejaVuSans-61" transform="translate(391.308594 0)"/>
2319 <use xlink:href="#DejaVuSans-63" transform="translate(452.587891 0)"/>
2320 <use xlink:href="#DejaVuSans-6b" transform="translate(507.568359 0)"/>
2321 <use xlink:href="#DejaVuSans-20" transform="translate(565.478516 0)"/>
2322 <use xlink:href="#DejaVuSans-b7" transform="translate(597.265625 0)"/>
2323 <use xlink:href="#DejaVuSans-20" transform="translate(629.052734 0)"/>
2324 <use xlink:href="#DejaVuSans-30" transform="translate(660.839844 0)"/>
2325 <use xlink:href="#DejaVuSans-2e" transform="translate(724.462891 0)"/>
2326 <use xlink:href="#DejaVuSans-32" transform="translate(756.25 0)"/>
2327 <use xlink:href="#DejaVuSans-33" transform="translate(819.873047 0)"/>
2328 <use xlink:href="#DejaVuSans-35" transform="translate(883.496094 0)"/>
2329 <use xlink:href="#DejaVuSans-25" transform="translate(947.119141 0)"/>
2330 <use xlink:href="#DejaVuSans-20" transform="translate(1042.138672 0)"/>
2331 <use xlink:href="#DejaVuSans-b7" transform="translate(1073.925781 0)"/>
2332 <use xlink:href="#DejaVuSans-20" transform="translate(1105.712891 0)"/>
2333 <use xlink:href="#DejaVuSans-4a" transform="translate(1137.5 0)"/>
2334 <use xlink:href="#DejaVuSans-4b" transform="translate(1166.992188 0)"/>
2335 <use xlink:href="#DejaVuSans-2d" transform="translate(1222.068359 0)"/>
2336 <use xlink:href="#DejaVuSans-42" transform="translate(1254.527344 0)"/>
2337 <use xlink:href="#DejaVuSans-4d" transform="translate(1323.130859 0)"/>
2338 <use xlink:href="#DejaVuSans-53" transform="translate(1409.410156 0)"/>
2339 <use xlink:href="#DejaVuSans-2192" transform="translate(1472.886719 0)"/>
2340 <use xlink:href="#DejaVuSans-43" transform="translate(1556.675781 0)"/>
2341 <use xlink:href="#DejaVuSans-41" transform="translate(1626.5 0)"/>
2342 <use xlink:href="#DejaVuSans-4e" transform="translate(1694.908203 0)"/>
2343 </g>
2344 </g>
2345 <g id="text_19">
2346 <!-- GEC 6AWG -->
2347 <g transform="translate(361.586235 389.734516) scale(0.08 -0.08)">
2348 <defs>
2349 <path id="DejaVuSans-36" d="M 2113 2584
2350Q 1688 2584 1439 2293
2351Q 1191 2003 1191 1497
2352Q 1191 994 1439 701
2353Q 1688 409 2113 409
2354Q 2538 409 2786 701
2355Q 3034 994 3034 1497
2356Q 3034 2003 2786 2293
2357Q 2538 2584 2113 2584
2358z
2359M 3366 4563
2360L 3366 3988
2361Q 3128 4100 2886 4159
2362Q 2644 4219 2406 4219
2363Q 1781 4219 1451 3797
2364Q 1122 3375 1075 2522
2365Q 1259 2794 1537 2939
2366Q 1816 3084 2150 3084
2367Q 2853 3084 3261 2657
2368Q 3669 2231 3669 1497
2369Q 3669 778 3244 343
2370Q 2819 -91 2113 -91
2371Q 1303 -91 875 529
2372Q 447 1150 447 2328
2373Q 447 3434 972 4092
2374Q 1497 4750 2381 4750
2375Q 2619 4750 2861 4703
2376Q 3103 4656 3366 4563
2377z
2378" transform="scale(0.015625)"/>
2379 </defs>
2380 <use xlink:href="#DejaVuSans-47"/>
2381 <use xlink:href="#DejaVuSans-45" transform="translate(77.490234 0)"/>
2382 <use xlink:href="#DejaVuSans-43" transform="translate(140.673828 0)"/>
2383 <use xlink:href="#DejaVuSans-20" transform="translate(210.498047 0)"/>
2384 <use xlink:href="#DejaVuSans-36" transform="translate(242.285156 0)"/>
2385 <use xlink:href="#DejaVuSans-41" transform="translate(305.908203 0)"/>
2386 <use xlink:href="#DejaVuSans-57" transform="translate(368.816406 0)"/>
2387 <use xlink:href="#DejaVuSans-47" transform="translate(467.693359 0)"/>
2388 </g>
2389 <!-- 690.47 -->
2390 <g transform="translate(361.586235 397.477016) scale(0.08 -0.08)">
2391 <use xlink:href="#DejaVuSans-36"/>
2392 <use xlink:href="#DejaVuSans-39" transform="translate(63.623047 0)"/>
2393 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
2394 <use xlink:href="#DejaVuSans-2e" transform="translate(190.869141 0)"/>
2395 <use xlink:href="#DejaVuSans-34" transform="translate(222.65625 0)"/>
2396 <use xlink:href="#DejaVuSans-37" transform="translate(286.279297 0)"/>
2397 </g>
2398 </g>
2399 <g id="text_20">
2400 <!-- FINAL-STATE SINGLE-LINE — PRSM OFF-GRID PV (Phase 2) -->
2401 <g transform="translate(131.498751 14.758575) scale(0.13 -0.13)">
2402 <defs>
2403 <path id="DejaVuSans-2014" d="M 313 1978
2404L 6088 1978
2405L 6088 1528
2406L 313 1528
2407L 313 1978
2408z
2409" transform="scale(0.015625)"/>
2410 </defs>
2411 <use xlink:href="#DejaVuSans-46"/>
2412 <use xlink:href="#DejaVuSans-49" transform="translate(57.519531 0)"/>
2413 <use xlink:href="#DejaVuSans-4e" transform="translate(87.011719 0)"/>
2414 <use xlink:href="#DejaVuSans-41" transform="translate(161.816406 0)"/>
2415 <use xlink:href="#DejaVuSans-4c" transform="translate(230.224609 0)"/>
2416 <use xlink:href="#DejaVuSans-2d" transform="translate(284.1875 0)"/>
2417 <use xlink:href="#DejaVuSans-53" transform="translate(320.271484 0)"/>
2418 <use xlink:href="#DejaVuSans-54" transform="translate(383.748047 0)"/>
2419 <use xlink:href="#DejaVuSans-41" transform="translate(437.082031 0)"/>
2420 <use xlink:href="#DejaVuSans-54" transform="translate(497.740234 0)"/>
2421 <use xlink:href="#DejaVuSans-45" transform="translate(558.824219 0)"/>
2422 <use xlink:href="#DejaVuSans-20" transform="translate(622.007812 0)"/>
2423 <use xlink:href="#DejaVuSans-53" transform="translate(653.794922 0)"/>
2424 <use xlink:href="#DejaVuSans-49" transform="translate(717.271484 0)"/>
2425 <use xlink:href="#DejaVuSans-4e" transform="translate(746.763672 0)"/>
2426 <use xlink:href="#DejaVuSans-47" transform="translate(821.568359 0)"/>
2427 <use xlink:href="#DejaVuSans-4c" transform="translate(899.058594 0)"/>
2428 <use xlink:href="#DejaVuSans-45" transform="translate(954.771484 0)"/>
2429 <use xlink:href="#DejaVuSans-2d" transform="translate(1017.955078 0)"/>
2430 <use xlink:href="#DejaVuSans-4c" transform="translate(1054.039062 0)"/>
2431 <use xlink:href="#DejaVuSans-49" transform="translate(1109.751953 0)"/>
2432 <use xlink:href="#DejaVuSans-4e" transform="translate(1139.244141 0)"/>
2433 <use xlink:href="#DejaVuSans-45" transform="translate(1214.048828 0)"/>
2434 <use xlink:href="#DejaVuSans-20" transform="translate(1277.232422 0)"/>
2435 <use xlink:href="#DejaVuSans-2014" transform="translate(1309.019531 0)"/>
2436 <use xlink:href="#DejaVuSans-20" transform="translate(1409.019531 0)"/>
2437 <use xlink:href="#DejaVuSans-50" transform="translate(1440.806641 0)"/>
2438 <use xlink:href="#DejaVuSans-52" transform="translate(1501.109375 0)"/>
2439 <use xlink:href="#DejaVuSans-53" transform="translate(1570.591797 0)"/>
2440 <use xlink:href="#DejaVuSans-4d" transform="translate(1634.068359 0)"/>
2441 <use xlink:href="#DejaVuSans-20" transform="translate(1720.347656 0)"/>
2442 <use xlink:href="#DejaVuSans-4f" transform="translate(1752.134766 0)"/>
2443 <use xlink:href="#DejaVuSans-46" transform="translate(1830.845703 0)"/>
2444 <use xlink:href="#DejaVuSans-46" transform="translate(1888.365234 0)"/>
2445 <use xlink:href="#DejaVuSans-2d" transform="translate(1945.884766 0)"/>
2446 <use xlink:href="#DejaVuSans-47" transform="translate(1985.59375 0)"/>
2447 <use xlink:href="#DejaVuSans-52" transform="translate(2063.083984 0)"/>
2448 <use xlink:href="#DejaVuSans-49" transform="translate(2132.566406 0)"/>
2449 <use xlink:href="#DejaVuSans-44" transform="translate(2162.058594 0)"/>
2450 <use xlink:href="#DejaVuSans-20" transform="translate(2239.060547 0)"/>
2451 <use xlink:href="#DejaVuSans-50" transform="translate(2270.847656 0)"/>
2452 <use xlink:href="#DejaVuSans-56" transform="translate(2331.150391 0)"/>
2453 <use xlink:href="#DejaVuSans-20" transform="translate(2399.558594 0)"/>
2454 <use xlink:href="#DejaVuSans-28" transform="translate(2431.345703 0)"/>
2455 <use xlink:href="#DejaVuSans-50" transform="translate(2470.359375 0)"/>
2456 <use xlink:href="#DejaVuSans-68" transform="translate(2530.662109 0)"/>
2457 <use xlink:href="#DejaVuSans-61" transform="translate(2594.041016 0)"/>
2458 <use xlink:href="#DejaVuSans-73" transform="translate(2655.320312 0)"/>
2459 <use xlink:href="#DejaVuSans-65" transform="translate(2707.419922 0)"/>
2460 <use xlink:href="#DejaVuSans-20" transform="translate(2768.943359 0)"/>
2461 <use xlink:href="#DejaVuSans-32" transform="translate(2800.730469 0)"/>
2462 <use xlink:href="#DejaVuSans-29" transform="translate(2864.353516 0)"/>
2463 </g>
2464 </g>
2465 <g id="text_21">
2466 <!-- PRSM OFF-GRID PV — PATH B / 18kPV (RETAINED ALTERNATIVE) · NEK Vermont · NEC 2023 · ratings trace to scripts 01/03/04 -->
2467 <g transform="translate(70.659376 38.559476) scale(0.08 -0.08)">
2468 <defs>
2469 <path id="DejaVuSans-48" d="M 628 4666
2470L 1259 4666
2471L 1259 2753
2472L 3553 2753
2473L 3553 4666
2474L 4184 4666
2475L 4184 0
2476L 3553 0
2477L 3553 2222
2478L 1259 2222
2479L 1259 0
2480L 628 0
2481L 628 4666
2482z
2483" transform="scale(0.015625)"/>
2484 </defs>
2485 <use xlink:href="#DejaVuSans-50"/>
2486 <use xlink:href="#DejaVuSans-52" transform="translate(60.302734 0)"/>
2487 <use xlink:href="#DejaVuSans-53" transform="translate(129.785156 0)"/>
2488 <use xlink:href="#DejaVuSans-4d" transform="translate(193.261719 0)"/>
2489 <use xlink:href="#DejaVuSans-20" transform="translate(279.541016 0)"/>
2490 <use xlink:href="#DejaVuSans-4f" transform="translate(311.328125 0)"/>
2491 <use xlink:href="#DejaVuSans-46" transform="translate(390.039062 0)"/>
2492 <use xlink:href="#DejaVuSans-46" transform="translate(447.558594 0)"/>
2493 <use xlink:href="#DejaVuSans-2d" transform="translate(505.078125 0)"/>
2494 <use xlink:href="#DejaVuSans-47" transform="translate(544.787109 0)"/>
2495 <use xlink:href="#DejaVuSans-52" transform="translate(622.277344 0)"/>
2496 <use xlink:href="#DejaVuSans-49" transform="translate(691.759766 0)"/>
2497 <use xlink:href="#DejaVuSans-44" transform="translate(721.251953 0)"/>
2498 <use xlink:href="#DejaVuSans-20" transform="translate(798.253906 0)"/>
2499 <use xlink:href="#DejaVuSans-50" transform="translate(830.041016 0)"/>
2500 <use xlink:href="#DejaVuSans-56" transform="translate(890.34375 0)"/>
2501 <use xlink:href="#DejaVuSans-20" transform="translate(958.751953 0)"/>
2502 <use xlink:href="#DejaVuSans-2014" transform="translate(990.539062 0)"/>
2503 <use xlink:href="#DejaVuSans-20" transform="translate(1090.539062 0)"/>
2504 <use xlink:href="#DejaVuSans-50" transform="translate(1122.326172 0)"/>
2505 <use xlink:href="#DejaVuSans-41" transform="translate(1176.253906 0)"/>
2506 <use xlink:href="#DejaVuSans-54" transform="translate(1236.912109 0)"/>
2507 <use xlink:href="#DejaVuSans-48" transform="translate(1297.996094 0)"/>
2508 <use xlink:href="#DejaVuSans-20" transform="translate(1373.191406 0)"/>
2509 <use xlink:href="#DejaVuSans-42" transform="translate(1404.978516 0)"/>
2510 <use xlink:href="#DejaVuSans-20" transform="translate(1473.582031 0)"/>
2511 <use xlink:href="#DejaVuSans-2f" transform="translate(1505.369141 0)"/>
2512 <use xlink:href="#DejaVuSans-20" transform="translate(1539.060547 0)"/>
2513 <use xlink:href="#DejaVuSans-31" transform="translate(1570.847656 0)"/>
2514 <use xlink:href="#DejaVuSans-38" transform="translate(1634.470703 0)"/>
2515 <use xlink:href="#DejaVuSans-6b" transform="translate(1698.09375 0)"/>
2516 <use xlink:href="#DejaVuSans-50" transform="translate(1756.003906 0)"/>
2517 <use xlink:href="#DejaVuSans-56" transform="translate(1816.306641 0)"/>
2518 <use xlink:href="#DejaVuSans-20" transform="translate(1884.714844 0)"/>
2519 <use xlink:href="#DejaVuSans-28" transform="translate(1916.501953 0)"/>
2520 <use xlink:href="#DejaVuSans-52" transform="translate(1955.515625 0)"/>
2521 <use xlink:href="#DejaVuSans-45" transform="translate(2024.998047 0)"/>
2522 <use xlink:href="#DejaVuSans-54" transform="translate(2088.181641 0)"/>
2523 <use xlink:href="#DejaVuSans-41" transform="translate(2141.515625 0)"/>
2524 <use xlink:href="#DejaVuSans-49" transform="translate(2209.923828 0)"/>
2525 <use xlink:href="#DejaVuSans-4e" transform="translate(2239.416016 0)"/>
2526 <use xlink:href="#DejaVuSans-45" transform="translate(2314.220703 0)"/>
2527 <use xlink:href="#DejaVuSans-44" transform="translate(2377.404297 0)"/>
2528 <use xlink:href="#DejaVuSans-20" transform="translate(2454.40625 0)"/>
2529 <use xlink:href="#DejaVuSans-41" transform="translate(2486.193359 0)"/>
2530 <use xlink:href="#DejaVuSans-4c" transform="translate(2554.601562 0)"/>
2531 <use xlink:href="#DejaVuSans-54" transform="translate(2596.564453 0)"/>
2532 <use xlink:href="#DejaVuSans-45" transform="translate(2657.648438 0)"/>
2533 <use xlink:href="#DejaVuSans-52" transform="translate(2720.832031 0)"/>
2534 <use xlink:href="#DejaVuSans-4e" transform="translate(2790.314453 0)"/>
2535 <use xlink:href="#DejaVuSans-41" transform="translate(2865.119141 0)"/>
2536 <use xlink:href="#DejaVuSans-54" transform="translate(2925.777344 0)"/>
2537 <use xlink:href="#DejaVuSans-49" transform="translate(2986.861328 0)"/>
2538 <use xlink:href="#DejaVuSans-56" transform="translate(3016.353516 0)"/>
2539 <use xlink:href="#DejaVuSans-45" transform="translate(3084.761719 0)"/>
2540 <use xlink:href="#DejaVuSans-29" transform="translate(3147.945312 0)"/>
2541 <use xlink:href="#DejaVuSans-20" transform="translate(3186.958984 0)"/>
2542 <use xlink:href="#DejaVuSans-b7" transform="translate(3218.746094 0)"/>
2543 <use xlink:href="#DejaVuSans-20" transform="translate(3250.533203 0)"/>
2544 <use xlink:href="#DejaVuSans-4e" transform="translate(3282.320312 0)"/>
2545 <use xlink:href="#DejaVuSans-45" transform="translate(3357.125 0)"/>
2546 <use xlink:href="#DejaVuSans-4b" transform="translate(3420.308594 0)"/>
2547 <use xlink:href="#DejaVuSans-20" transform="translate(3485.884766 0)"/>
2548 <use xlink:href="#DejaVuSans-56" transform="translate(3517.671875 0)"/>
2549 <use xlink:href="#DejaVuSans-65" transform="translate(3578.330078 0)"/>
2550 <use xlink:href="#DejaVuSans-72" transform="translate(3639.853516 0)"/>
2551 <use xlink:href="#DejaVuSans-6d" transform="translate(3679.216797 0)"/>
2552 <use xlink:href="#DejaVuSans-6f" transform="translate(3776.628906 0)"/>
2553 <use xlink:href="#DejaVuSans-6e" transform="translate(3837.810547 0)"/>
2554 <use xlink:href="#DejaVuSans-74" transform="translate(3901.189453 0)"/>
2555 <use xlink:href="#DejaVuSans-20" transform="translate(3940.398438 0)"/>
2556 <use xlink:href="#DejaVuSans-b7" transform="translate(3972.185547 0)"/>
2557 <use xlink:href="#DejaVuSans-20" transform="translate(4003.972656 0)"/>
2558 <use xlink:href="#DejaVuSans-4e" transform="translate(4035.759766 0)"/>
2559 <use xlink:href="#DejaVuSans-45" transform="translate(4110.564453 0)"/>
2560 <use xlink:href="#DejaVuSans-43" transform="translate(4173.748047 0)"/>
2561 <use xlink:href="#DejaVuSans-20" transform="translate(4243.572266 0)"/>
2562 <use xlink:href="#DejaVuSans-32" transform="translate(4275.359375 0)"/>
2563 <use xlink:href="#DejaVuSans-30" transform="translate(4338.982422 0)"/>
2564 <use xlink:href="#DejaVuSans-32" transform="translate(4402.605469 0)"/>
2565 <use xlink:href="#DejaVuSans-33" transform="translate(4466.228516 0)"/>
2566 <use xlink:href="#DejaVuSans-20" transform="translate(4529.851562 0)"/>
2567 <use xlink:href="#DejaVuSans-b7" transform="translate(4561.638672 0)"/>
2568 <use xlink:href="#DejaVuSans-20" transform="translate(4593.425781 0)"/>
2569 <use xlink:href="#DejaVuSans-72" transform="translate(4625.212891 0)"/>
2570 <use xlink:href="#DejaVuSans-61" transform="translate(4666.326172 0)"/>
2571 <use xlink:href="#DejaVuSans-74" transform="translate(4727.605469 0)"/>
2572 <use xlink:href="#DejaVuSans-69" transform="translate(4766.814453 0)"/>
2573 <use xlink:href="#DejaVuSans-6e" transform="translate(4794.597656 0)"/>
2574 <use xlink:href="#DejaVuSans-67" transform="translate(4857.976562 0)"/>
2575 <use xlink:href="#DejaVuSans-73" transform="translate(4921.453125 0)"/>
2576 <use xlink:href="#DejaVuSans-20" transform="translate(4973.552734 0)"/>
2577 <use xlink:href="#DejaVuSans-74" transform="translate(5005.339844 0)"/>
2578 <use xlink:href="#DejaVuSans-72" transform="translate(5044.548828 0)"/>
2579 <use xlink:href="#DejaVuSans-61" transform="translate(5085.662109 0)"/>
2580 <use xlink:href="#DejaVuSans-63" transform="translate(5146.941406 0)"/>
2581 <use xlink:href="#DejaVuSans-65" transform="translate(5201.921875 0)"/>
2582 <use xlink:href="#DejaVuSans-20" transform="translate(5263.445312 0)"/>
2583 <use xlink:href="#DejaVuSans-74" transform="translate(5295.232422 0)"/>
2584 <use xlink:href="#DejaVuSans-6f" transform="translate(5334.441406 0)"/>
2585 <use xlink:href="#DejaVuSans-20" transform="translate(5395.623047 0)"/>
2586 <use xlink:href="#DejaVuSans-73" transform="translate(5427.410156 0)"/>
2587 <use xlink:href="#DejaVuSans-63" transform="translate(5479.509766 0)"/>
2588 <use xlink:href="#DejaVuSans-72" transform="translate(5534.490234 0)"/>
2589 <use xlink:href="#DejaVuSans-69" transform="translate(5575.603516 0)"/>
2590 <use xlink:href="#DejaVuSans-70" transform="translate(5603.386719 0)"/>
2591 <use xlink:href="#DejaVuSans-74" transform="translate(5666.863281 0)"/>
2592 <use xlink:href="#DejaVuSans-73" transform="translate(5706.072266 0)"/>
2593 <use xlink:href="#DejaVuSans-20" transform="translate(5758.171875 0)"/>
2594 <use xlink:href="#DejaVuSans-30" transform="translate(5789.958984 0)"/>
2595 <use xlink:href="#DejaVuSans-31" transform="translate(5853.582031 0)"/>
2596 <use xlink:href="#DejaVuSans-2f" transform="translate(5917.205078 0)"/>
2597 <use xlink:href="#DejaVuSans-30" transform="translate(5950.896484 0)"/>
2598 <use xlink:href="#DejaVuSans-33" transform="translate(6014.519531 0)"/>
2599 <use xlink:href="#DejaVuSans-2f" transform="translate(6078.142578 0)"/>
2600 <use xlink:href="#DejaVuSans-30" transform="translate(6111.833984 0)"/>
2601 <use xlink:href="#DejaVuSans-34" transform="translate(6175.457031 0)"/>
2602 </g>
2603 </g>
2604 </g>
2605 </g>
2606 <defs>
2607 <clipPath id="p764da30e8d">
2608 <rect x="3.872002" y="0" width="594.41176" height="804.24"/>
2609 </clipPath>
2610 </defs>
2611</svg>
artifacts/phase2/battery-wiring.png +0 -0
(no content changes — binary or rename)
artifacts/phase2/battery-wiring.svg +2252 -0
……@@ -0,0 +1,2252 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="549.449688pt" height="385.92pt" viewBox="0 0 549.449688 385.92" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T02:23:47.949678</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M 0 385.92
25L 549.449687 385.92
26L 549.449687 0
27L 0 0
28L 0 385.92
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="line2d_1">
34 <path d="M 271.130804 194.457517
35L 271.130804 147.735
36L 271.130804 101.012483
37" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
38 </g>
39 <g id="line2d_2">
40 <path d="M 271.130804 194.457517
41L 271.130804 241.180033
42L 271.130804 287.90255
43" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
44 </g>
45 <g id="line2d_3">
46 <path d="M 271.130804 136.952881
47L 253.160605 136.952881
48L 235.190407 136.952881
49" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
50 </g>
51 <g id="line2d_4">
52 <path d="M 235.190407 136.952881
53L 233.393387 136.952881
54L 233.393387 145.93798
55L 197.452989 145.93798
56L 197.452989 127.967781
57L 233.393387 127.967781
58L 233.393387 136.952881
59M 197.452989 136.952881
60L 195.65597 136.952881
61" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
62 </g>
63 <g id="line2d_5">
64 <path d="M 233.393387 136.952881
65L 197.452989 136.952881
66" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
67 </g>
68 <g id="line2d_6">
69 <path d="M 195.65597 136.952881
70M 187.030274 140.546921
71L 166.903652 153.12606
72M 159.715572 136.952881
73" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
74 </g>
75 <g id="line2d_7">
76 <path d="M 187.030274 104.606523
77L 166.903652 117.185662
78" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
79 </g>
80 <g id="line2d_8">
81 <path d="M 177.685771 109.997583
82L 177.685771 144.14096
83" clip-path="url(#pd0bad0f173)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
84 </g>
85 <g id="line2d_9">
86 <path d="M 195.65597 136.952881
87L 185.996988 136.952881
88M 165.780514 136.952881
89L 156.121532 136.952881
90" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
91 </g>
92 <g id="line2d_10">
93 <path d="M 185.996988 150.43053
94L 185.996988 123.475232
95" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
96 </g>
97 <g id="line2d_11">
98 <path d="M 179.258163 143.691705
99L 179.258163 130.214056
100" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
101 </g>
102 <g id="line2d_12">
103 <path d="M 172.519339 150.43053
104L 172.519339 123.475232
105" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
106 </g>
107 <g id="line2d_13">
108 <path d="M 165.780514 143.691705
109L 165.780514 130.214056
110" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
111 </g>
112 <g id="line2d_14">
113 <path d="M 271.130804 251.962152
114L 253.160605 251.962152
115L 235.190407 251.962152
116" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
117 </g>
118 <g id="line2d_15">
119 <path d="M 235.190407 251.962152
120L 233.393387 251.962152
121L 233.393387 260.947252
122L 197.452989 260.947252
123L 197.452989 242.977053
124L 233.393387 242.977053
125L 233.393387 251.962152
126M 197.452989 251.962152
127L 195.65597 251.962152
128" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
129 </g>
130 <g id="line2d_16">
131 <path d="M 233.393387 251.962152
132L 197.452989 251.962152
133" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
134 </g>
135 <g id="line2d_17">
136 <path d="M 195.65597 251.962152
137M 187.030274 255.556192
138L 166.903652 268.135331
139M 159.715572 251.962152
140" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
141 </g>
142 <g id="line2d_18">
143 <path d="M 187.030274 219.615795
144L 166.903652 232.194934
145" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
146 </g>
147 <g id="line2d_19">
148 <path d="M 177.685771 225.006854
149L 177.685771 259.150232
150" clip-path="url(#pd0bad0f173)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
151 </g>
152 <g id="line2d_20">
153 <path d="M 195.65597 251.962152
154L 185.996988 251.962152
155M 165.780514 251.962152
156L 156.121532 251.962152
157" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
158 </g>
159 <g id="line2d_21">
160 <path d="M 185.996988 265.439801
161L 185.996988 238.484503
162" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
163 </g>
164 <g id="line2d_22">
165 <path d="M 179.258163 258.700977
166L 179.258163 245.223328
167" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
168 </g>
169 <g id="line2d_23">
170 <path d="M 172.519339 265.439801
171L 172.519339 238.484503
172" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
173 </g>
174 <g id="line2d_24">
175 <path d="M 165.780514 258.700977
176L 165.780514 245.223328
177" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
178 </g>
179 <g id="line2d_25">
180 <path d="M 271.130804 136.952881
181L 289.101003 136.952881
182L 307.071201 136.952881
183" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
184 </g>
185 <g id="line2d_26">
186 <path d="M 307.071201 136.952881
187L 308.868221 136.952881
188L 308.868221 127.967781
189L 344.808619 127.967781
190L 344.808619 145.93798
191L 308.868221 145.93798
192L 308.868221 136.952881
193M 344.808619 136.952881
194L 346.605638 136.952881
195" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
196 </g>
197 <g id="line2d_27">
198 <path d="M 308.868221 136.952881
199L 344.808619 136.952881
200" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
201 </g>
202 <g id="line2d_28">
203 <path d="M 346.605638 136.952881
204M 355.231334 133.358841
205L 375.357956 120.779702
206M 382.546036 136.952881
207" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
208 </g>
209 <g id="line2d_29">
210 <path d="M 355.231334 169.299238
211L 375.357956 156.720099
212" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
213 </g>
214 <g id="line2d_30">
215 <path d="M 364.575837 163.908179
216L 364.575837 129.764801
217" clip-path="url(#pd0bad0f173)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
218 </g>
219 <g id="line2d_31">
220 <path d="M 346.605638 136.952881
221L 348.402658 136.952881
222L 348.402658 127.967781
223L 384.343056 127.967781
224L 384.343056 145.93798
225L 348.402658 145.93798
226L 348.402658 136.952881
227M 384.343056 136.952881
228L 386.140076 136.952881
229" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
230 </g>
231 <g id="line2d_32">
232 <path d="M 271.130804 251.962152
233L 289.101003 251.962152
234L 307.071201 251.962152
235" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
236 </g>
237 <g id="line2d_33">
238 <path d="M 307.071201 251.962152
239L 308.868221 251.962152
240L 308.868221 242.977053
241L 344.808619 242.977053
242L 344.808619 260.947252
243L 308.868221 260.947252
244L 308.868221 251.962152
245M 344.808619 251.962152
246L 346.605638 251.962152
247" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
248 </g>
249 <g id="line2d_34">
250 <path d="M 308.868221 251.962152
251L 344.808619 251.962152
252" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
253 </g>
254 <g id="line2d_35">
255 <path d="M 346.605638 251.962152
256M 355.231334 248.368113
257L 375.357956 235.788974
258M 382.546036 251.962152
259" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
260 </g>
261 <g id="line2d_36">
262 <path d="M 355.231334 284.30851
263L 375.357956 271.729371
264" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
265 </g>
266 <g id="line2d_37">
267 <path d="M 364.575837 278.91745
268L 364.575837 244.774073
269" clip-path="url(#pd0bad0f173)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
270 </g>
271 <g id="line2d_38">
272 <path d="M 346.605638 251.962152
273L 348.402658 251.962152
274L 348.402658 242.977053
275L 384.343056 242.977053
276L 384.343056 260.947252
277L 348.402658 260.947252
278L 348.402658 251.962152
279M 384.343056 251.962152
280L 386.140076 251.962152
281" clip-path="url(#pd0bad0f173)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
282 </g>
283 <g id="text_1">
284 <!-- DC BUSBAR -->
285 <g transform="translate(248.157266 196.179838) scale(0.09 -0.09)">
286 <defs>
287 <path id="DejaVuSans-44" d="M 1259 4147
288L 1259 519
289L 2022 519
290Q 2988 519 3436 956
291Q 3884 1394 3884 2338
292Q 3884 3275 3436 3711
293Q 2988 4147 2022 4147
294L 1259 4147
295z
296M 628 4666
297L 1925 4666
298Q 3281 4666 3915 4102
299Q 4550 3538 4550 2338
300Q 4550 1131 3912 565
301Q 3275 0 1925 0
302L 628 0
303L 628 4666
304z
305" transform="scale(0.015625)"/>
306 <path id="DejaVuSans-43" d="M 4122 4306
307L 4122 3641
308Q 3803 3938 3442 4084
309Q 3081 4231 2675 4231
310Q 1875 4231 1450 3742
311Q 1025 3253 1025 2328
312Q 1025 1406 1450 917
313Q 1875 428 2675 428
314Q 3081 428 3442 575
315Q 3803 722 4122 1019
316L 4122 359
317Q 3791 134 3420 21
318Q 3050 -91 2638 -91
319Q 1578 -91 968 557
320Q 359 1206 359 2328
321Q 359 3453 968 4101
322Q 1578 4750 2638 4750
323Q 3056 4750 3426 4639
324Q 3797 4528 4122 4306
325z
326" transform="scale(0.015625)"/>
327 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
328 <path id="DejaVuSans-42" d="M 1259 2228
329L 1259 519
330L 2272 519
331Q 2781 519 3026 730
332Q 3272 941 3272 1375
333Q 3272 1813 3026 2020
334Q 2781 2228 2272 2228
335L 1259 2228
336z
337M 1259 4147
338L 1259 2741
339L 2194 2741
340Q 2656 2741 2882 2914
341Q 3109 3088 3109 3444
342Q 3109 3797 2882 3972
343Q 2656 4147 2194 4147
344L 1259 4147
345z
346M 628 4666
347L 2241 4666
348Q 2963 4666 3353 4366
349Q 3744 4066 3744 3513
350Q 3744 3084 3544 2831
351Q 3344 2578 2956 2516
352Q 3422 2416 3680 2098
353Q 3938 1781 3938 1306
354Q 3938 681 3513 340
355Q 3088 0 2303 0
356L 628 0
357L 628 4666
358z
359" transform="scale(0.015625)"/>
360 <path id="DejaVuSans-55" d="M 556 4666
361L 1191 4666
362L 1191 1831
363Q 1191 1081 1462 751
364Q 1734 422 2344 422
365Q 2950 422 3222 751
366Q 3494 1081 3494 1831
367L 3494 4666
368L 4128 4666
369L 4128 1753
370Q 4128 841 3676 375
371Q 3225 -91 2344 -91
372Q 1459 -91 1007 375
373Q 556 841 556 1753
374L 556 4666
375z
376" transform="scale(0.015625)"/>
377 <path id="DejaVuSans-53" d="M 3425 4513
378L 3425 3897
379Q 3066 4069 2747 4153
380Q 2428 4238 2131 4238
381Q 1616 4238 1336 4038
382Q 1056 3838 1056 3469
383Q 1056 3159 1242 3001
384Q 1428 2844 1947 2747
385L 2328 2669
386Q 3034 2534 3370 2195
387Q 3706 1856 3706 1288
388Q 3706 609 3251 259
389Q 2797 -91 1919 -91
390Q 1588 -91 1214 -16
391Q 841 59 441 206
392L 441 856
393Q 825 641 1194 531
394Q 1563 422 1919 422
395Q 2459 422 2753 634
396Q 3047 847 3047 1241
397Q 3047 1584 2836 1778
398Q 2625 1972 2144 2069
399L 1759 2144
400Q 1053 2284 737 2584
401Q 422 2884 422 3419
402Q 422 4038 858 4394
403Q 1294 4750 2059 4750
404Q 2388 4750 2728 4690
405Q 3069 4631 3425 4513
406z
407" transform="scale(0.015625)"/>
408 <path id="DejaVuSans-41" d="M 2188 4044
409L 1331 1722
410L 3047 1722
411L 2188 4044
412z
413M 1831 4666
414L 2547 4666
415L 4325 0
416L 3669 0
417L 3244 1197
418L 1141 1197
419L 716 0
420L 50 0
421L 1831 4666
422z
423" transform="scale(0.015625)"/>
424 <path id="DejaVuSans-52" d="M 2841 2188
425Q 3044 2119 3236 1894
426Q 3428 1669 3622 1275
427L 4263 0
428L 3584 0
429L 2988 1197
430Q 2756 1666 2539 1819
431Q 2322 1972 1947 1972
432L 1259 1972
433L 1259 0
434L 628 0
435L 628 4666
436L 2053 4666
437Q 2853 4666 3247 4331
438Q 3641 3997 3641 3322
439Q 3641 2881 3436 2590
440Q 3231 2300 2841 2188
441z
442M 1259 4147
443L 1259 2491
444L 2053 2491
445Q 2509 2491 2742 2702
446Q 2975 2913 2975 3322
447Q 2975 3731 2742 3939
448Q 2509 4147 2053 4147
449L 1259 4147
450z
451" transform="scale(0.015625)"/>
452 </defs>
453 <use xlink:href="#DejaVuSans-44"/>
454 <use xlink:href="#DejaVuSans-43" transform="translate(77.001953 0)"/>
455 <use xlink:href="#DejaVuSans-20" transform="translate(146.826172 0)"/>
456 <use xlink:href="#DejaVuSans-42" transform="translate(178.613281 0)"/>
457 <use xlink:href="#DejaVuSans-55" transform="translate(247.216797 0)"/>
458 <use xlink:href="#DejaVuSans-53" transform="translate(320.410156 0)"/>
459 <use xlink:href="#DejaVuSans-42" transform="translate(383.886719 0)"/>
460 <use xlink:href="#DejaVuSans-41" transform="translate(452.490234 0)"/>
461 <use xlink:href="#DejaVuSans-52" transform="translate(520.898438 0)"/>
462 </g>
463 <!-- 250A -->
464 <g transform="translate(263.057187 204.89015) scale(0.09 -0.09)">
465 <defs>
466 <path id="DejaVuSans-32" d="M 1228 531
467L 3431 531
468L 3431 0
469L 469 0
470L 469 531
471Q 828 903 1448 1529
472Q 2069 2156 2228 2338
473Q 2531 2678 2651 2914
474Q 2772 3150 2772 3378
475Q 2772 3750 2511 3984
476Q 2250 4219 1831 4219
477Q 1534 4219 1204 4116
478Q 875 4013 500 3803
479L 500 4441
480Q 881 4594 1212 4672
481Q 1544 4750 1819 4750
482Q 2544 4750 2975 4387
483Q 3406 4025 3406 3419
484Q 3406 3131 3298 2873
485Q 3191 2616 2906 2266
486Q 2828 2175 2409 1742
487Q 1991 1309 1228 531
488z
489" transform="scale(0.015625)"/>
490 <path id="DejaVuSans-35" d="M 691 4666
491L 3169 4666
492L 3169 4134
493L 1269 4134
494L 1269 2991
495Q 1406 3038 1543 3061
496Q 1681 3084 1819 3084
497Q 2600 3084 3056 2656
498Q 3513 2228 3513 1497
499Q 3513 744 3044 326
500Q 2575 -91 1722 -91
501Q 1428 -91 1123 -41
502Q 819 9 494 109
503L 494 744
504Q 775 591 1075 516
505Q 1375 441 1709 441
506Q 2250 441 2565 725
507Q 2881 1009 2881 1497
508Q 2881 1984 2565 2268
509Q 2250 2553 1709 2553
510Q 1456 2553 1204 2497
511Q 953 2441 691 2322
512L 691 4666
513z
514" transform="scale(0.015625)"/>
515 <path id="DejaVuSans-30" d="M 2034 4250
516Q 1547 4250 1301 3770
517Q 1056 3291 1056 2328
518Q 1056 1369 1301 889
519Q 1547 409 2034 409
520Q 2525 409 2770 889
521Q 3016 1369 3016 2328
522Q 3016 3291 2770 3770
523Q 2525 4250 2034 4250
524z
525M 2034 4750
526Q 2819 4750 3233 4129
527Q 3647 3509 3647 2328
528Q 3647 1150 3233 529
529Q 2819 -91 2034 -91
530Q 1250 -91 836 529
531Q 422 1150 422 2328
532Q 422 3509 836 4129
533Q 1250 4750 2034 4750
534z
535" transform="scale(0.015625)"/>
536 </defs>
537 <use xlink:href="#DejaVuSans-32"/>
538 <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
539 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
540 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
541 </g>
542 </g>
543 <g id="text_2">
544 <!-- 175A -->
545 <g transform="translate(206.348344 116.143273) scale(0.07 -0.07)">
546 <defs>
547 <path id="DejaVuSans-31" d="M 794 531
548L 1825 531
549L 1825 4091
550L 703 3866
551L 703 4441
552L 1819 4666
553L 2450 4666
554L 2450 531
555L 3481 531
556L 3481 0
557L 794 0
558L 794 531
559z
560" transform="scale(0.015625)"/>
561 <path id="DejaVuSans-37" d="M 525 4666
562L 3525 4666
563L 3525 4397
564L 1831 0
565L 1172 0
566L 2766 4134
567L 525 4134
568L 525 4666
569z
570" transform="scale(0.015625)"/>
571 </defs>
572 <use xlink:href="#DejaVuSans-31"/>
573 <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
574 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
575 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
576 </g>
577 <!-- Class-T -->
578 <g transform="translate(203.13436 122.91796) scale(0.07 -0.07)">
579 <defs>
580 <path id="DejaVuSans-6c" d="M 603 4863
581L 1178 4863
582L 1178 0
583L 603 0
584L 603 4863
585z
586" transform="scale(0.015625)"/>
587 <path id="DejaVuSans-61" d="M 2194 1759
588Q 1497 1759 1228 1600
589Q 959 1441 959 1056
590Q 959 750 1161 570
591Q 1363 391 1709 391
592Q 2188 391 2477 730
593Q 2766 1069 2766 1631
594L 2766 1759
595L 2194 1759
596z
597M 3341 1997
598L 3341 0
599L 2766 0
600L 2766 531
601Q 2569 213 2275 61
602Q 1981 -91 1556 -91
603Q 1019 -91 701 211
604Q 384 513 384 1019
605Q 384 1609 779 1909
606Q 1175 2209 1959 2209
607L 2766 2209
608L 2766 2266
609Q 2766 2663 2505 2880
610Q 2244 3097 1772 3097
611Q 1472 3097 1187 3025
612Q 903 2953 641 2809
613L 641 3341
614Q 956 3463 1253 3523
615Q 1550 3584 1831 3584
616Q 2591 3584 2966 3190
617Q 3341 2797 3341 1997
618z
619" transform="scale(0.015625)"/>
620 <path id="DejaVuSans-73" d="M 2834 3397
621L 2834 2853
622Q 2591 2978 2328 3040
623Q 2066 3103 1784 3103
624Q 1356 3103 1142 2972
625Q 928 2841 928 2578
626Q 928 2378 1081 2264
627Q 1234 2150 1697 2047
628L 1894 2003
629Q 2506 1872 2764 1633
630Q 3022 1394 3022 966
631Q 3022 478 2636 193
632Q 2250 -91 1575 -91
633Q 1294 -91 989 -36
634Q 684 19 347 128
635L 347 722
636Q 666 556 975 473
637Q 1284 391 1588 391
638Q 1994 391 2212 530
639Q 2431 669 2431 922
640Q 2431 1156 2273 1281
641Q 2116 1406 1581 1522
642L 1381 1569
643Q 847 1681 609 1914
644Q 372 2147 372 2553
645Q 372 3047 722 3315
646Q 1072 3584 1716 3584
647Q 2034 3584 2315 3537
648Q 2597 3491 2834 3397
649z
650" transform="scale(0.015625)"/>
651 <path id="DejaVuSans-2d" d="M 313 2009
652L 1997 2009
653L 1997 1497
654L 313 1497
655L 313 2009
656z
657" transform="scale(0.015625)"/>
658 <path id="DejaVuSans-54" d="M -19 4666
659L 3928 4666
660L 3928 4134
661L 2272 4134
662L 2272 0
663L 1638 0
664L 1638 4134
665L -19 4134
666L -19 4666
667z
668" transform="scale(0.015625)"/>
669 </defs>
670 <use xlink:href="#DejaVuSans-43"/>
671 <use xlink:href="#DejaVuSans-6c" transform="translate(69.824219 0)"/>
672 <use xlink:href="#DejaVuSans-61" transform="translate(97.607422 0)"/>
673 <use xlink:href="#DejaVuSans-73" transform="translate(158.886719 0)"/>
674 <use xlink:href="#DejaVuSans-73" transform="translate(210.986328 0)"/>
675 <use xlink:href="#DejaVuSans-2d" transform="translate(263.085938 0)"/>
676 <use xlink:href="#DejaVuSans-54" transform="translate(290.044922 0)"/>
677 </g>
678 </g>
679 <g id="patch_2">
680 <path d="M 191.343122 141.265728
681C 192.486902 141.265728 193.583991 140.8113 194.392766 140.002525
682C 195.201541 139.19375 195.65597 138.096661 195.65597 136.952881
683C 195.65597 135.8091 195.201541 134.712012 194.392766 133.903237
684C 193.583991 133.094462 192.486902 132.640033 191.343122 132.640033
685C 190.199341 132.640033 189.102253 133.094462 188.293478 133.903237
686C 187.484703 134.712012 187.030274 135.8091 187.030274 136.952881
687C 187.030274 138.096661 187.484703 139.19375 188.293478 140.002525
688C 189.102253 140.8113 190.199341 141.265728 191.343122 141.265728
689z
690" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
691 </g>
692 <g id="patch_3">
693 <path d="M 164.02842 141.265728
694C 165.1722 141.265728 166.269289 140.8113 167.078064 140.002525
695C 167.886839 139.19375 168.341268 138.096661 168.341268 136.952881
696C 168.341268 135.8091 167.886839 134.712012 167.078064 133.903237
697C 166.269289 133.094462 165.1722 132.640033 164.02842 132.640033
698C 162.884639 132.640033 161.787551 133.094462 160.978776 133.903237
699C 160.170001 134.712012 159.715572 135.8091 159.715572 136.952881
700C 159.715572 138.096661 160.170001 139.19375 160.978776 140.002525
701C 161.787551 140.8113 162.884639 141.265728 164.02842 141.265728
702z
703" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
704 </g>
705 <g id="patch_4">
706 <path d="M 191.343122 105.325331
707C 192.486902 105.325331 193.583991 104.870902 194.392766 104.062127
708C 195.201541 103.253352 195.65597 102.156264 195.65597 101.012483
709C 195.65597 99.868703 195.201541 98.771615 194.392766 97.96284
710C 193.583991 97.154065 192.486902 96.699636 191.343122 96.699636
711C 190.199341 96.699636 189.102253 97.154065 188.293478 97.96284
712C 187.484703 98.771615 187.030274 99.868703 187.030274 101.012483
713C 187.030274 102.156264 187.484703 103.253352 188.293478 104.062127
714C 189.102253 104.870902 190.199341 105.325331 191.343122 105.325331
715z
716" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
717 </g>
718 <g id="patch_5">
719 <path d="M 164.02842 105.325331
720C 165.1722 105.325331 166.269289 104.870902 167.078064 104.062127
721C 167.886839 103.253352 168.341268 102.156264 168.341268 101.012483
722C 168.341268 99.868703 167.886839 98.771615 167.078064 97.96284
723C 166.269289 97.154065 165.1722 96.699636 164.02842 96.699636
724C 162.884639 96.699636 161.787551 97.154065 160.978776 97.96284
725C 160.170001 98.771615 159.715572 99.868703 159.715572 101.012483
726C 159.715572 102.156264 160.170001 103.253352 160.978776 104.062127
727C 161.787551 104.870902 162.884639 105.325331 164.02842 105.325331
728z
729" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
730 </g>
731 <g id="text_3">
732 <!-- disc -->
733 <g transform="translate(170.74374 162.039006) scale(0.07 -0.07)">
734 <defs>
735 <path id="DejaVuSans-64" d="M 2906 2969
736L 2906 4863
737L 3481 4863
738L 3481 0
739L 2906 0
740L 2906 525
741Q 2725 213 2448 61
742Q 2172 -91 1784 -91
743Q 1150 -91 751 415
744Q 353 922 353 1747
745Q 353 2572 751 3078
746Q 1150 3584 1784 3584
747Q 2172 3584 2448 3432
748Q 2725 3281 2906 2969
749z
750M 947 1747
751Q 947 1113 1208 752
752Q 1469 391 1925 391
753Q 2381 391 2643 752
754Q 2906 1113 2906 1747
755Q 2906 2381 2643 2742
756Q 2381 3103 1925 3103
757Q 1469 3103 1208 2742
758Q 947 2381 947 1747
759z
760" transform="scale(0.015625)"/>
761 <path id="DejaVuSans-69" d="M 603 3500
762L 1178 3500
763L 1178 0
764L 603 0
765L 603 3500
766z
767M 603 4863
768L 1178 4863
769L 1178 4134
770L 603 4134
771L 603 4863
772z
773" transform="scale(0.015625)"/>
774 <path id="DejaVuSans-63" d="M 3122 3366
775L 3122 2828
776Q 2878 2963 2633 3030
777Q 2388 3097 2138 3097
778Q 1578 3097 1268 2742
779Q 959 2388 959 1747
780Q 959 1106 1268 751
781Q 1578 397 2138 397
782Q 2388 397 2633 464
783Q 2878 531 3122 666
784L 3122 134
785Q 2881 22 2623 -34
786Q 2366 -91 2075 -91
787Q 1284 -91 818 406
788Q 353 903 353 1747
789Q 353 2603 823 3093
790Q 1294 3584 2113 3584
791Q 2378 3584 2631 3529
792Q 2884 3475 3122 3366
793z
794" transform="scale(0.015625)"/>
795 </defs>
796 <use xlink:href="#DejaVuSans-64"/>
797 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
798 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
799 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
800 </g>
801 </g>
802 <g id="text_4">
803 <!-- Docan S3 #1 -->
804 <g transform="translate(152.931485 104.876036) scale(0.07 -0.07)">
805 <defs>
806 <path id="DejaVuSans-6f" d="M 1959 3097
807Q 1497 3097 1228 2736
808Q 959 2375 959 1747
809Q 959 1119 1226 758
810Q 1494 397 1959 397
811Q 2419 397 2687 759
812Q 2956 1122 2956 1747
813Q 2956 2369 2687 2733
814Q 2419 3097 1959 3097
815z
816M 1959 3584
817Q 2709 3584 3137 3096
818Q 3566 2609 3566 1747
819Q 3566 888 3137 398
820Q 2709 -91 1959 -91
821Q 1206 -91 779 398
822Q 353 888 353 1747
823Q 353 2609 779 3096
824Q 1206 3584 1959 3584
825z
826" transform="scale(0.015625)"/>
827 <path id="DejaVuSans-6e" d="M 3513 2113
828L 3513 0
829L 2938 0
830L 2938 2094
831Q 2938 2591 2744 2837
832Q 2550 3084 2163 3084
833Q 1697 3084 1428 2787
834Q 1159 2491 1159 1978
835L 1159 0
836L 581 0
837L 581 3500
838L 1159 3500
839L 1159 2956
840Q 1366 3272 1645 3428
841Q 1925 3584 2291 3584
842Q 2894 3584 3203 3211
843Q 3513 2838 3513 2113
844z
845" transform="scale(0.015625)"/>
846 <path id="DejaVuSans-33" d="M 2597 2516
847Q 3050 2419 3304 2112
848Q 3559 1806 3559 1356
849Q 3559 666 3084 287
850Q 2609 -91 1734 -91
851Q 1441 -91 1130 -33
852Q 819 25 488 141
853L 488 750
854Q 750 597 1062 519
855Q 1375 441 1716 441
856Q 2309 441 2620 675
857Q 2931 909 2931 1356
858Q 2931 1769 2642 2001
859Q 2353 2234 1838 2234
860L 1294 2234
861L 1294 2753
862L 1863 2753
863Q 2328 2753 2575 2939
864Q 2822 3125 2822 3475
865Q 2822 3834 2567 4026
866Q 2313 4219 1838 4219
867Q 1578 4219 1281 4162
868Q 984 4106 628 3988
869L 628 4550
870Q 988 4650 1302 4700
871Q 1616 4750 1894 4750
872Q 2613 4750 3031 4423
873Q 3450 4097 3450 3541
874Q 3450 3153 3228 2886
875Q 3006 2619 2597 2516
876z
877" transform="scale(0.015625)"/>
878 <path id="DejaVuSans-23" d="M 3272 2816
879L 2363 2816
880L 2100 1772
881L 3016 1772
882L 3272 2816
883z
884M 2803 4594
885L 2478 3297
886L 3391 3297
887L 3719 4594
888L 4219 4594
889L 3897 3297
890L 4872 3297
891L 4872 2816
892L 3775 2816
893L 3519 1772
894L 4513 1772
895L 4513 1294
896L 3397 1294
897L 3072 0
898L 2572 0
899L 2894 1294
900L 1978 1294
901L 1656 0
902L 1153 0
903L 1478 1294
904L 494 1294
905L 494 1772
906L 1594 1772
907L 1856 2816
908L 850 2816
909L 850 3297
910L 1978 3297
911L 2297 4594
912L 2803 4594
913z
914" transform="scale(0.015625)"/>
915 </defs>
916 <use xlink:href="#DejaVuSans-44"/>
917 <use xlink:href="#DejaVuSans-6f" transform="translate(77.001953 0)"/>
918 <use xlink:href="#DejaVuSans-63" transform="translate(138.183594 0)"/>
919 <use xlink:href="#DejaVuSans-61" transform="translate(193.164062 0)"/>
920 <use xlink:href="#DejaVuSans-6e" transform="translate(254.443359 0)"/>
921 <use xlink:href="#DejaVuSans-20" transform="translate(317.822266 0)"/>
922 <use xlink:href="#DejaVuSans-53" transform="translate(349.609375 0)"/>
923 <use xlink:href="#DejaVuSans-33" transform="translate(413.085938 0)"/>
924 <use xlink:href="#DejaVuSans-20" transform="translate(476.708984 0)"/>
925 <use xlink:href="#DejaVuSans-23" transform="translate(508.496094 0)"/>
926 <use xlink:href="#DejaVuSans-31" transform="translate(592.285156 0)"/>
927 </g>
928 <!-- 51.2V·16.08kWh -->
929 <g transform="translate(146.863907 111.650723) scale(0.07 -0.07)">
930 <defs>
931 <path id="DejaVuSans-2e" d="M 684 794
932L 1344 794
933L 1344 0
934L 684 0
935L 684 794
936z
937" transform="scale(0.015625)"/>
938 <path id="DejaVuSans-56" d="M 1831 0
939L 50 4666
940L 709 4666
941L 2188 738
942L 3669 4666
943L 4325 4666
944L 2547 0
945L 1831 0
946z
947" transform="scale(0.015625)"/>
948 <path id="DejaVuSans-b7" d="M 684 2619
949L 1344 2619
950L 1344 1825
951L 684 1825
952L 684 2619
953z
954" transform="scale(0.015625)"/>
955 <path id="DejaVuSans-36" d="M 2113 2584
956Q 1688 2584 1439 2293
957Q 1191 2003 1191 1497
958Q 1191 994 1439 701
959Q 1688 409 2113 409
960Q 2538 409 2786 701
961Q 3034 994 3034 1497
962Q 3034 2003 2786 2293
963Q 2538 2584 2113 2584
964z
965M 3366 4563
966L 3366 3988
967Q 3128 4100 2886 4159
968Q 2644 4219 2406 4219
969Q 1781 4219 1451 3797
970Q 1122 3375 1075 2522
971Q 1259 2794 1537 2939
972Q 1816 3084 2150 3084
973Q 2853 3084 3261 2657
974Q 3669 2231 3669 1497
975Q 3669 778 3244 343
976Q 2819 -91 2113 -91
977Q 1303 -91 875 529
978Q 447 1150 447 2328
979Q 447 3434 972 4092
980Q 1497 4750 2381 4750
981Q 2619 4750 2861 4703
982Q 3103 4656 3366 4563
983z
984" transform="scale(0.015625)"/>
985 <path id="DejaVuSans-38" d="M 2034 2216
986Q 1584 2216 1326 1975
987Q 1069 1734 1069 1313
988Q 1069 891 1326 650
989Q 1584 409 2034 409
990Q 2484 409 2743 651
991Q 3003 894 3003 1313
992Q 3003 1734 2745 1975
993Q 2488 2216 2034 2216
994z
995M 1403 2484
996Q 997 2584 770 2862
997Q 544 3141 544 3541
998Q 544 4100 942 4425
999Q 1341 4750 2034 4750
1000Q 2731 4750 3128 4425
1001Q 3525 4100 3525 3541
1002Q 3525 3141 3298 2862
1003Q 3072 2584 2669 2484
1004Q 3125 2378 3379 2068
1005Q 3634 1759 3634 1313
1006Q 3634 634 3220 271
1007Q 2806 -91 2034 -91
1008Q 1263 -91 848 271
1009Q 434 634 434 1313
1010Q 434 1759 690 2068
1011Q 947 2378 1403 2484
1012z
1013M 1172 3481
1014Q 1172 3119 1398 2916
1015Q 1625 2713 2034 2713
1016Q 2441 2713 2670 2916
1017Q 2900 3119 2900 3481
1018Q 2900 3844 2670 4047
1019Q 2441 4250 2034 4250
1020Q 1625 4250 1398 4047
1021Q 1172 3844 1172 3481
1022z
1023" transform="scale(0.015625)"/>
1024 <path id="DejaVuSans-6b" d="M 581 4863
1025L 1159 4863
1026L 1159 1991
1027L 2875 3500
1028L 3609 3500
1029L 1753 1863
1030L 3688 0
1031L 2938 0
1032L 1159 1709
1033L 1159 0
1034L 581 0
1035L 581 4863
1036z
1037" transform="scale(0.015625)"/>
1038 <path id="DejaVuSans-57" d="M 213 4666
1039L 850 4666
1040L 1831 722
1041L 2809 4666
1042L 3519 4666
1043L 4500 722
1044L 5478 4666
1045L 6119 4666
1046L 4947 0
1047L 4153 0
1048L 3169 4050
1049L 2175 0
1050L 1381 0
1051L 213 4666
1052z
1053" transform="scale(0.015625)"/>
1054 <path id="DejaVuSans-68" d="M 3513 2113
1055L 3513 0
1056L 2938 0
1057L 2938 2094
1058Q 2938 2591 2744 2837
1059Q 2550 3084 2163 3084
1060Q 1697 3084 1428 2787
1061Q 1159 2491 1159 1978
1062L 1159 0
1063L 581 0
1064L 581 4863
1065L 1159 4863
1066L 1159 2956
1067Q 1366 3272 1645 3428
1068Q 1925 3584 2291 3584
1069Q 2894 3584 3203 3211
1070Q 3513 2838 3513 2113
1071z
1072" transform="scale(0.015625)"/>
1073 </defs>
1074 <use xlink:href="#DejaVuSans-35"/>
1075 <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
1076 <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1077 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1078 <use xlink:href="#DejaVuSans-56" transform="translate(222.65625 0)"/>
1079 <use xlink:href="#DejaVuSans-b7" transform="translate(291.064453 0)"/>
1080 <use xlink:href="#DejaVuSans-31" transform="translate(322.851562 0)"/>
1081 <use xlink:href="#DejaVuSans-36" transform="translate(386.474609 0)"/>
1082 <use xlink:href="#DejaVuSans-2e" transform="translate(450.097656 0)"/>
1083 <use xlink:href="#DejaVuSans-30" transform="translate(481.884766 0)"/>
1084 <use xlink:href="#DejaVuSans-38" transform="translate(545.507812 0)"/>
1085 <use xlink:href="#DejaVuSans-6b" transform="translate(609.130859 0)"/>
1086 <use xlink:href="#DejaVuSans-57" transform="translate(667.041016 0)"/>
1087 <use xlink:href="#DejaVuSans-68" transform="translate(765.917969 0)"/>
1088 </g>
1089 <!-- 2/0Cu -->
1090 <g transform="translate(165.593829 118.425411) scale(0.07 -0.07)">
1091 <defs>
1092 <path id="DejaVuSans-2f" d="M 1625 4666
1093L 2156 4666
1094L 531 -594
1095L 0 -594
1096L 1625 4666
1097z
1098" transform="scale(0.015625)"/>
1099 <path id="DejaVuSans-75" d="M 544 1381
1100L 544 3500
1101L 1119 3500
1102L 1119 1403
1103Q 1119 906 1312 657
1104Q 1506 409 1894 409
1105Q 2359 409 2629 706
1106Q 2900 1003 2900 1516
1107L 2900 3500
1108L 3475 3500
1109L 3475 0
1110L 2900 0
1111L 2900 538
1112Q 2691 219 2414 64
1113Q 2138 -91 1772 -91
1114Q 1169 -91 856 284
1115Q 544 659 544 1381
1116z
1117M 1991 3584
1118L 1991 3584
1119z
1120" transform="scale(0.015625)"/>
1121 </defs>
1122 <use xlink:href="#DejaVuSans-32"/>
1123 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
1124 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
1125 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
1126 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
1127 </g>
1128 </g>
1129 <g id="text_5">
1130 <!-- 175A -->
1131 <g transform="translate(206.348344 231.152544) scale(0.07 -0.07)">
1132 <use xlink:href="#DejaVuSans-31"/>
1133 <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
1134 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
1135 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1136 </g>
1137 <!-- Class-T -->
1138 <g transform="translate(203.13436 237.927232) scale(0.07 -0.07)">
1139 <use xlink:href="#DejaVuSans-43"/>
1140 <use xlink:href="#DejaVuSans-6c" transform="translate(69.824219 0)"/>
1141 <use xlink:href="#DejaVuSans-61" transform="translate(97.607422 0)"/>
1142 <use xlink:href="#DejaVuSans-73" transform="translate(158.886719 0)"/>
1143 <use xlink:href="#DejaVuSans-73" transform="translate(210.986328 0)"/>
1144 <use xlink:href="#DejaVuSans-2d" transform="translate(263.085938 0)"/>
1145 <use xlink:href="#DejaVuSans-54" transform="translate(290.044922 0)"/>
1146 </g>
1147 </g>
1148 <g id="patch_6">
1149 <path d="M 191.343122 256.275
1150C 192.486902 256.275 193.583991 255.820571 194.392766 255.011796
1151C 195.201541 254.203021 195.65597 253.105933 195.65597 251.962152
1152C 195.65597 250.818372 195.201541 249.721283 194.392766 248.912508
1153C 193.583991 248.103733 192.486902 247.649305 191.343122 247.649305
1154C 190.199341 247.649305 189.102253 248.103733 188.293478 248.912508
1155C 187.484703 249.721283 187.030274 250.818372 187.030274 251.962152
1156C 187.030274 253.105933 187.484703 254.203021 188.293478 255.011796
1157C 189.102253 255.820571 190.199341 256.275 191.343122 256.275
1158z
1159" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1160 </g>
1161 <g id="patch_7">
1162 <path d="M 164.02842 256.275
1163C 165.1722 256.275 166.269289 255.820571 167.078064 255.011796
1164C 167.886839 254.203021 168.341268 253.105933 168.341268 251.962152
1165C 168.341268 250.818372 167.886839 249.721283 167.078064 248.912508
1166C 166.269289 248.103733 165.1722 247.649305 164.02842 247.649305
1167C 162.884639 247.649305 161.787551 248.103733 160.978776 248.912508
1168C 160.170001 249.721283 159.715572 250.818372 159.715572 251.962152
1169C 159.715572 253.105933 160.170001 254.203021 160.978776 255.011796
1170C 161.787551 255.820571 162.884639 256.275 164.02842 256.275
1171z
1172" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1173 </g>
1174 <g id="patch_8">
1175 <path d="M 191.343122 220.334603
1176C 192.486902 220.334603 193.583991 219.880174 194.392766 219.071399
1177C 195.201541 218.262624 195.65597 217.165536 195.65597 216.021755
1178C 195.65597 214.877974 195.201541 213.780886 194.392766 212.972111
1179C 193.583991 212.163336 192.486902 211.708907 191.343122 211.708907
1180C 190.199341 211.708907 189.102253 212.163336 188.293478 212.972111
1181C 187.484703 213.780886 187.030274 214.877974 187.030274 216.021755
1182C 187.030274 217.165536 187.484703 218.262624 188.293478 219.071399
1183C 189.102253 219.880174 190.199341 220.334603 191.343122 220.334603
1184z
1185" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1186 </g>
1187 <g id="patch_9">
1188 <path d="M 164.02842 220.334603
1189C 165.1722 220.334603 166.269289 219.880174 167.078064 219.071399
1190C 167.886839 218.262624 168.341268 217.165536 168.341268 216.021755
1191C 168.341268 214.877974 167.886839 213.780886 167.078064 212.972111
1192C 166.269289 212.163336 165.1722 211.708907 164.02842 211.708907
1193C 162.884639 211.708907 161.787551 212.163336 160.978776 212.972111
1194C 160.170001 213.780886 159.715572 214.877974 159.715572 216.021755
1195C 159.715572 217.165536 160.170001 218.262624 160.978776 219.071399
1196C 161.787551 219.880174 162.884639 220.334603 164.02842 220.334603
1197z
1198" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1199 </g>
1200 <g id="text_6">
1201 <!-- disc -->
1202 <g transform="translate(170.74374 277.048277) scale(0.07 -0.07)">
1203 <use xlink:href="#DejaVuSans-64"/>
1204 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1205 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1206 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1207 </g>
1208 </g>
1209 <g id="text_7">
1210 <!-- Docan S3 #2 -->
1211 <g transform="translate(152.931485 219.885307) scale(0.07 -0.07)">
1212 <use xlink:href="#DejaVuSans-44"/>
1213 <use xlink:href="#DejaVuSans-6f" transform="translate(77.001953 0)"/>
1214 <use xlink:href="#DejaVuSans-63" transform="translate(138.183594 0)"/>
1215 <use xlink:href="#DejaVuSans-61" transform="translate(193.164062 0)"/>
1216 <use xlink:href="#DejaVuSans-6e" transform="translate(254.443359 0)"/>
1217 <use xlink:href="#DejaVuSans-20" transform="translate(317.822266 0)"/>
1218 <use xlink:href="#DejaVuSans-53" transform="translate(349.609375 0)"/>
1219 <use xlink:href="#DejaVuSans-33" transform="translate(413.085938 0)"/>
1220 <use xlink:href="#DejaVuSans-20" transform="translate(476.708984 0)"/>
1221 <use xlink:href="#DejaVuSans-23" transform="translate(508.496094 0)"/>
1222 <use xlink:href="#DejaVuSans-32" transform="translate(592.285156 0)"/>
1223 </g>
1224 <!-- 51.2V·16.08kWh -->
1225 <g transform="translate(146.863907 226.659995) scale(0.07 -0.07)">
1226 <use xlink:href="#DejaVuSans-35"/>
1227 <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
1228 <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1229 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1230 <use xlink:href="#DejaVuSans-56" transform="translate(222.65625 0)"/>
1231 <use xlink:href="#DejaVuSans-b7" transform="translate(291.064453 0)"/>
1232 <use xlink:href="#DejaVuSans-31" transform="translate(322.851562 0)"/>
1233 <use xlink:href="#DejaVuSans-36" transform="translate(386.474609 0)"/>
1234 <use xlink:href="#DejaVuSans-2e" transform="translate(450.097656 0)"/>
1235 <use xlink:href="#DejaVuSans-30" transform="translate(481.884766 0)"/>
1236 <use xlink:href="#DejaVuSans-38" transform="translate(545.507812 0)"/>
1237 <use xlink:href="#DejaVuSans-6b" transform="translate(609.130859 0)"/>
1238 <use xlink:href="#DejaVuSans-57" transform="translate(667.041016 0)"/>
1239 <use xlink:href="#DejaVuSans-68" transform="translate(765.917969 0)"/>
1240 </g>
1241 <!-- 2/0Cu -->
1242 <g transform="translate(165.593829 233.434682) scale(0.07 -0.07)">
1243 <use xlink:href="#DejaVuSans-32"/>
1244 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
1245 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
1246 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
1247 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
1248 </g>
1249 </g>
1250 <g id="text_8">
1251 <!-- 175A -->
1252 <g transform="translate(317.763576 116.143273) scale(0.07 -0.07)">
1253 <use xlink:href="#DejaVuSans-31"/>
1254 <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
1255 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
1256 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1257 </g>
1258 <!-- Class-T -->
1259 <g transform="translate(314.549592 122.91796) scale(0.07 -0.07)">
1260 <use xlink:href="#DejaVuSans-43"/>
1261 <use xlink:href="#DejaVuSans-6c" transform="translate(69.824219 0)"/>
1262 <use xlink:href="#DejaVuSans-61" transform="translate(97.607422 0)"/>
1263 <use xlink:href="#DejaVuSans-73" transform="translate(158.886719 0)"/>
1264 <use xlink:href="#DejaVuSans-73" transform="translate(210.986328 0)"/>
1265 <use xlink:href="#DejaVuSans-2d" transform="translate(263.085938 0)"/>
1266 <use xlink:href="#DejaVuSans-54" transform="translate(290.044922 0)"/>
1267 </g>
1268 </g>
1269 <g id="patch_10">
1270 <path d="M 350.918486 141.265728
1271C 352.062267 141.265728 353.159355 140.8113 353.96813 140.002525
1272C 354.776905 139.19375 355.231334 138.096661 355.231334 136.952881
1273C 355.231334 135.8091 354.776905 134.712012 353.96813 133.903237
1274C 353.159355 133.094462 352.062267 132.640033 350.918486 132.640033
1275C 349.774706 132.640033 348.677617 133.094462 347.868842 133.903237
1276C 347.060067 134.712012 346.605638 135.8091 346.605638 136.952881
1277C 346.605638 138.096661 347.060067 139.19375 347.868842 140.002525
1278C 348.677617 140.8113 349.774706 141.265728 350.918486 141.265728
1279z
1280" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1281 </g>
1282 <g id="patch_11">
1283 <path d="M 378.233188 141.265728
1284C 379.376969 141.265728 380.474057 140.8113 381.282832 140.002525
1285C 382.091607 139.19375 382.546036 138.096661 382.546036 136.952881
1286C 382.546036 135.8091 382.091607 134.712012 381.282832 133.903237
1287C 380.474057 133.094462 379.376969 132.640033 378.233188 132.640033
1288C 377.089408 132.640033 375.992319 133.094462 375.183544 133.903237
1289C 374.374769 134.712012 373.92034 135.8091 373.92034 136.952881
1290C 373.92034 138.096661 374.374769 139.19375 375.183544 140.002525
1291C 375.992319 140.8113 377.089408 141.265728 378.233188 141.265728
1292z
1293" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1294 </g>
1295 <g id="patch_12">
1296 <path d="M 350.918486 177.206126
1297C 352.062267 177.206126 353.159355 176.751697 353.96813 175.942922
1298C 354.776905 175.134147 355.231334 174.037059 355.231334 172.893278
1299C 355.231334 171.749498 354.776905 170.652409 353.96813 169.843634
1300C 353.159355 169.034859 352.062267 168.58043 350.918486 168.58043
1301C 349.774706 168.58043 348.677617 169.034859 347.868842 169.843634
1302C 347.060067 170.652409 346.605638 171.749498 346.605638 172.893278
1303C 346.605638 174.037059 347.060067 175.134147 347.868842 175.942922
1304C 348.677617 176.751697 349.774706 177.206126 350.918486 177.206126
1305z
1306" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1307 </g>
1308 <g id="patch_13">
1309 <path d="M 378.233188 177.206126
1310C 379.376969 177.206126 380.474057 176.751697 381.282832 175.942922
1311C 382.091607 175.134147 382.546036 174.037059 382.546036 172.893278
1312C 382.546036 171.749498 382.091607 170.652409 381.282832 169.843634
1313C 380.474057 169.034859 379.376969 168.58043 378.233188 168.58043
1314C 377.089408 168.58043 375.992319 169.034859 375.183544 169.843634
1315C 374.374769 170.652409 373.92034 171.749498 373.92034 172.893278
1316C 373.92034 174.037059 374.374769 175.134147 375.183544 175.942922
1317C 375.992319 176.751697 377.089408 177.206126 378.233188 177.206126
1318z
1319" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1320 </g>
1321 <g id="text_9">
1322 <!-- disc -->
1323 <g transform="translate(357.633806 186.119072) scale(0.07 -0.07)">
1324 <use xlink:href="#DejaVuSans-64"/>
1325 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1326 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1327 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1328 </g>
1329 </g>
1330 <g id="text_10">
1331 <!-- 6000XP #1 -->
1332 <g transform="translate(346.685357 109.368585) scale(0.07 -0.07)">
1333 <defs>
1334 <path id="DejaVuSans-58" d="M 403 4666
1335L 1081 4666
1336L 2241 2931
1337L 3406 4666
1338L 4084 4666
1339L 2584 2425
1340L 4184 0
1341L 3506 0
1342L 2194 1984
1343L 872 0
1344L 191 0
1345L 1856 2491
1346L 403 4666
1347z
1348" transform="scale(0.015625)"/>
1349 <path id="DejaVuSans-50" d="M 1259 4147
1350L 1259 2394
1351L 2053 2394
1352Q 2494 2394 2734 2622
1353Q 2975 2850 2975 3272
1354Q 2975 3691 2734 3919
1355Q 2494 4147 2053 4147
1356L 1259 4147
1357z
1358M 628 4666
1359L 2053 4666
1360Q 2838 4666 3239 4311
1361Q 3641 3956 3641 3272
1362Q 3641 2581 3239 2228
1363Q 2838 1875 2053 1875
1364L 1259 1875
1365L 1259 0
1366L 628 0
1367L 628 4666
1368z
1369" transform="scale(0.015625)"/>
1370 </defs>
1371 <use xlink:href="#DejaVuSans-36"/>
1372 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1373 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1374 <use xlink:href="#DejaVuSans-30" transform="translate(190.869141 0)"/>
1375 <use xlink:href="#DejaVuSans-58" transform="translate(254.492188 0)"/>
1376 <use xlink:href="#DejaVuSans-50" transform="translate(322.998047 0)"/>
1377 <use xlink:href="#DejaVuSans-20" transform="translate(383.300781 0)"/>
1378 <use xlink:href="#DejaVuSans-23" transform="translate(415.087891 0)"/>
1379 <use xlink:href="#DejaVuSans-31" transform="translate(498.876953 0)"/>
1380 </g>
1381 <!-- BAT max140A -->
1382 <g transform="translate(341.898013 116.143273) scale(0.07 -0.07)">
1383 <defs>
1384 <path id="DejaVuSans-6d" d="M 3328 2828
1385Q 3544 3216 3844 3400
1386Q 4144 3584 4550 3584
1387Q 5097 3584 5394 3201
1388Q 5691 2819 5691 2113
1389L 5691 0
1390L 5113 0
1391L 5113 2094
1392Q 5113 2597 4934 2840
1393Q 4756 3084 4391 3084
1394Q 3944 3084 3684 2787
1395Q 3425 2491 3425 1978
1396L 3425 0
1397L 2847 0
1398L 2847 2094
1399Q 2847 2600 2669 2842
1400Q 2491 3084 2119 3084
1401Q 1678 3084 1418 2786
1402Q 1159 2488 1159 1978
1403L 1159 0
1404L 581 0
1405L 581 3500
1406L 1159 3500
1407L 1159 2956
1408Q 1356 3278 1631 3431
1409Q 1906 3584 2284 3584
1410Q 2666 3584 2933 3390
1411Q 3200 3197 3328 2828
1412z
1413" transform="scale(0.015625)"/>
1414 <path id="DejaVuSans-78" d="M 3513 3500
1415L 2247 1797
1416L 3578 0
1417L 2900 0
1418L 1881 1375
1419L 863 0
1420L 184 0
1421L 1544 1831
1422L 300 3500
1423L 978 3500
1424L 1906 2253
1425L 2834 3500
1426L 3513 3500
1427z
1428" transform="scale(0.015625)"/>
1429 <path id="DejaVuSans-34" d="M 2419 4116
1430L 825 1625
1431L 2419 1625
1432L 2419 4116
1433z
1434M 2253 4666
1435L 3047 4666
1436L 3047 1625
1437L 3713 1625
1438L 3713 1100
1439L 3047 1100
1440L 3047 0
1441L 2419 0
1442L 2419 1100
1443L 313 1100
1444L 313 1709
1445L 2253 4666
1446z
1447" transform="scale(0.015625)"/>
1448 </defs>
1449 <use xlink:href="#DejaVuSans-42"/>
1450 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
1451 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
1452 <use xlink:href="#DejaVuSans-20" transform="translate(190.345703 0)"/>
1453 <use xlink:href="#DejaVuSans-6d" transform="translate(222.132812 0)"/>
1454 <use xlink:href="#DejaVuSans-61" transform="translate(319.544922 0)"/>
1455 <use xlink:href="#DejaVuSans-78" transform="translate(380.824219 0)"/>
1456 <use xlink:href="#DejaVuSans-31" transform="translate(440.003906 0)"/>
1457 <use xlink:href="#DejaVuSans-34" transform="translate(503.626953 0)"/>
1458 <use xlink:href="#DejaVuSans-30" transform="translate(567.25 0)"/>
1459 <use xlink:href="#DejaVuSans-41" transform="translate(630.873047 0)"/>
1460 </g>
1461 <!-- 2/0Cu -->
1462 <g transform="translate(356.077935 122.91796) scale(0.07 -0.07)">
1463 <use xlink:href="#DejaVuSans-32"/>
1464 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
1465 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
1466 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
1467 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
1468 </g>
1469 </g>
1470 <g id="text_11">
1471 <!-- 175A -->
1472 <g transform="translate(317.763576 231.152544) scale(0.07 -0.07)">
1473 <use xlink:href="#DejaVuSans-31"/>
1474 <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
1475 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
1476 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1477 </g>
1478 <!-- Class-T -->
1479 <g transform="translate(314.549592 237.927232) scale(0.07 -0.07)">
1480 <use xlink:href="#DejaVuSans-43"/>
1481 <use xlink:href="#DejaVuSans-6c" transform="translate(69.824219 0)"/>
1482 <use xlink:href="#DejaVuSans-61" transform="translate(97.607422 0)"/>
1483 <use xlink:href="#DejaVuSans-73" transform="translate(158.886719 0)"/>
1484 <use xlink:href="#DejaVuSans-73" transform="translate(210.986328 0)"/>
1485 <use xlink:href="#DejaVuSans-2d" transform="translate(263.085938 0)"/>
1486 <use xlink:href="#DejaVuSans-54" transform="translate(290.044922 0)"/>
1487 </g>
1488 </g>
1489 <g id="patch_14">
1490 <path d="M 350.918486 256.275
1491C 352.062267 256.275 353.159355 255.820571 353.96813 255.011796
1492C 354.776905 254.203021 355.231334 253.105933 355.231334 251.962152
1493C 355.231334 250.818372 354.776905 249.721283 353.96813 248.912508
1494C 353.159355 248.103733 352.062267 247.649305 350.918486 247.649305
1495C 349.774706 247.649305 348.677617 248.103733 347.868842 248.912508
1496C 347.060067 249.721283 346.605638 250.818372 346.605638 251.962152
1497C 346.605638 253.105933 347.060067 254.203021 347.868842 255.011796
1498C 348.677617 255.820571 349.774706 256.275 350.918486 256.275
1499z
1500" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1501 </g>
1502 <g id="patch_15">
1503 <path d="M 378.233188 256.275
1504C 379.376969 256.275 380.474057 255.820571 381.282832 255.011796
1505C 382.091607 254.203021 382.546036 253.105933 382.546036 251.962152
1506C 382.546036 250.818372 382.091607 249.721283 381.282832 248.912508
1507C 380.474057 248.103733 379.376969 247.649305 378.233188 247.649305
1508C 377.089408 247.649305 375.992319 248.103733 375.183544 248.912508
1509C 374.374769 249.721283 373.92034 250.818372 373.92034 251.962152
1510C 373.92034 253.105933 374.374769 254.203021 375.183544 255.011796
1511C 375.992319 255.820571 377.089408 256.275 378.233188 256.275
1512z
1513" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1514 </g>
1515 <g id="patch_16">
1516 <path d="M 350.918486 292.215397
1517C 352.062267 292.215397 353.159355 291.760969 353.96813 290.952194
1518C 354.776905 290.143419 355.231334 289.04633 355.231334 287.90255
1519C 355.231334 286.758769 354.776905 285.661681 353.96813 284.852906
1520C 353.159355 284.044131 352.062267 283.589702 350.918486 283.589702
1521C 349.774706 283.589702 348.677617 284.044131 347.868842 284.852906
1522C 347.060067 285.661681 346.605638 286.758769 346.605638 287.90255
1523C 346.605638 289.04633 347.060067 290.143419 347.868842 290.952194
1524C 348.677617 291.760969 349.774706 292.215397 350.918486 292.215397
1525z
1526" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1527 </g>
1528 <g id="patch_17">
1529 <path d="M 378.233188 292.215397
1530C 379.376969 292.215397 380.474057 291.760969 381.282832 290.952194
1531C 382.091607 290.143419 382.546036 289.04633 382.546036 287.90255
1532C 382.546036 286.758769 382.091607 285.661681 381.282832 284.852906
1533C 380.474057 284.044131 379.376969 283.589702 378.233188 283.589702
1534C 377.089408 283.589702 375.992319 284.044131 375.183544 284.852906
1535C 374.374769 285.661681 373.92034 286.758769 373.92034 287.90255
1536C 373.92034 289.04633 374.374769 290.143419 375.183544 290.952194
1537C 375.992319 291.760969 377.089408 292.215397 378.233188 292.215397
1538z
1539" clip-path="url(#pd0bad0f173)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1540 </g>
1541 <g id="text_12">
1542 <!-- disc -->
1543 <g transform="translate(357.633806 301.128343) scale(0.07 -0.07)">
1544 <use xlink:href="#DejaVuSans-64"/>
1545 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1546 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1547 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1548 </g>
1549 </g>
1550 <g id="text_13">
1551 <!-- 6000XP #2 -->
1552 <g transform="translate(346.685357 224.377857) scale(0.07 -0.07)">
1553 <use xlink:href="#DejaVuSans-36"/>
1554 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1555 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1556 <use xlink:href="#DejaVuSans-30" transform="translate(190.869141 0)"/>
1557 <use xlink:href="#DejaVuSans-58" transform="translate(254.492188 0)"/>
1558 <use xlink:href="#DejaVuSans-50" transform="translate(322.998047 0)"/>
1559 <use xlink:href="#DejaVuSans-20" transform="translate(383.300781 0)"/>
1560 <use xlink:href="#DejaVuSans-23" transform="translate(415.087891 0)"/>
1561 <use xlink:href="#DejaVuSans-32" transform="translate(498.876953 0)"/>
1562 </g>
1563 <!-- BAT max140A -->
1564 <g transform="translate(341.898013 231.152544) scale(0.07 -0.07)">
1565 <use xlink:href="#DejaVuSans-42"/>
1566 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
1567 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
1568 <use xlink:href="#DejaVuSans-20" transform="translate(190.345703 0)"/>
1569 <use xlink:href="#DejaVuSans-6d" transform="translate(222.132812 0)"/>
1570 <use xlink:href="#DejaVuSans-61" transform="translate(319.544922 0)"/>
1571 <use xlink:href="#DejaVuSans-78" transform="translate(380.824219 0)"/>
1572 <use xlink:href="#DejaVuSans-31" transform="translate(440.003906 0)"/>
1573 <use xlink:href="#DejaVuSans-34" transform="translate(503.626953 0)"/>
1574 <use xlink:href="#DejaVuSans-30" transform="translate(567.25 0)"/>
1575 <use xlink:href="#DejaVuSans-41" transform="translate(630.873047 0)"/>
1576 </g>
1577 <!-- 2/0Cu -->
1578 <g transform="translate(356.077935 237.927232) scale(0.07 -0.07)">
1579 <use xlink:href="#DejaVuSans-32"/>
1580 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
1581 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
1582 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
1583 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
1584 </g>
1585 </g>
1586 <g id="text_14">
1587 <!-- PATH-A BATTERY WIRING — busbar: 2 packs → 2× 6000XP -->
1588 <g transform="translate(86.193359 14.748678) scale(0.13 -0.13)">
1589 <defs>
1590 <path id="DejaVuSans-48" d="M 628 4666
1591L 1259 4666
1592L 1259 2753
1593L 3553 2753
1594L 3553 4666
1595L 4184 4666
1596L 4184 0
1597L 3553 0
1598L 3553 2222
1599L 1259 2222
1600L 1259 0
1601L 628 0
1602L 628 4666
1603z
1604" transform="scale(0.015625)"/>
1605 <path id="DejaVuSans-45" d="M 628 4666
1606L 3578 4666
1607L 3578 4134
1608L 1259 4134
1609L 1259 2753
1610L 3481 2753
1611L 3481 2222
1612L 1259 2222
1613L 1259 531
1614L 3634 531
1615L 3634 0
1616L 628 0
1617L 628 4666
1618z
1619" transform="scale(0.015625)"/>
1620 <path id="DejaVuSans-59" d="M -13 4666
1621L 666 4666
1622L 1959 2747
1623L 3244 4666
1624L 3922 4666
1625L 2272 2222
1626L 2272 0
1627L 1638 0
1628L 1638 2222
1629L -13 4666
1630z
1631" transform="scale(0.015625)"/>
1632 <path id="DejaVuSans-49" d="M 628 4666
1633L 1259 4666
1634L 1259 0
1635L 628 0
1636L 628 4666
1637z
1638" transform="scale(0.015625)"/>
1639 <path id="DejaVuSans-4e" d="M 628 4666
1640L 1478 4666
1641L 3547 763
1642L 3547 4666
1643L 4159 4666
1644L 4159 0
1645L 3309 0
1646L 1241 3903
1647L 1241 0
1648L 628 0
1649L 628 4666
1650z
1651" transform="scale(0.015625)"/>
1652 <path id="DejaVuSans-47" d="M 3809 666
1653L 3809 1919
1654L 2778 1919
1655L 2778 2438
1656L 4434 2438
1657L 4434 434
1658Q 4069 175 3628 42
1659Q 3188 -91 2688 -91
1660Q 1594 -91 976 548
1661Q 359 1188 359 2328
1662Q 359 3472 976 4111
1663Q 1594 4750 2688 4750
1664Q 3144 4750 3555 4637
1665Q 3966 4525 4313 4306
1666L 4313 3634
1667Q 3963 3931 3569 4081
1668Q 3175 4231 2741 4231
1669Q 1884 4231 1454 3753
1670Q 1025 3275 1025 2328
1671Q 1025 1384 1454 906
1672Q 1884 428 2741 428
1673Q 3075 428 3337 486
1674Q 3600 544 3809 666
1675z
1676" transform="scale(0.015625)"/>
1677 <path id="DejaVuSans-2014" d="M 313 1978
1678L 6088 1978
1679L 6088 1528
1680L 313 1528
1681L 313 1978
1682z
1683" transform="scale(0.015625)"/>
1684 <path id="DejaVuSans-62" d="M 3116 1747
1685Q 3116 2381 2855 2742
1686Q 2594 3103 2138 3103
1687Q 1681 3103 1420 2742
1688Q 1159 2381 1159 1747
1689Q 1159 1113 1420 752
1690Q 1681 391 2138 391
1691Q 2594 391 2855 752
1692Q 3116 1113 3116 1747
1693z
1694M 1159 2969
1695Q 1341 3281 1617 3432
1696Q 1894 3584 2278 3584
1697Q 2916 3584 3314 3078
1698Q 3713 2572 3713 1747
1699Q 3713 922 3314 415
1700Q 2916 -91 2278 -91
1701Q 1894 -91 1617 61
1702Q 1341 213 1159 525
1703L 1159 0
1704L 581 0
1705L 581 4863
1706L 1159 4863
1707L 1159 2969
1708z
1709" transform="scale(0.015625)"/>
1710 <path id="DejaVuSans-72" d="M 2631 2963
1711Q 2534 3019 2420 3045
1712Q 2306 3072 2169 3072
1713Q 1681 3072 1420 2755
1714Q 1159 2438 1159 1844
1715L 1159 0
1716L 581 0
1717L 581 3500
1718L 1159 3500
1719L 1159 2956
1720Q 1341 3275 1631 3429
1721Q 1922 3584 2338 3584
1722Q 2397 3584 2469 3576
1723Q 2541 3569 2628 3553
1724L 2631 2963
1725z
1726" transform="scale(0.015625)"/>
1727 <path id="DejaVuSans-3a" d="M 750 794
1728L 1409 794
1729L 1409 0
1730L 750 0
1731L 750 794
1732z
1733M 750 3309
1734L 1409 3309
1735L 1409 2516
1736L 750 2516
1737L 750 3309
1738z
1739" transform="scale(0.015625)"/>
1740 <path id="DejaVuSans-70" d="M 1159 525
1741L 1159 -1331
1742L 581 -1331
1743L 581 3500
1744L 1159 3500
1745L 1159 2969
1746Q 1341 3281 1617 3432
1747Q 1894 3584 2278 3584
1748Q 2916 3584 3314 3078
1749Q 3713 2572 3713 1747
1750Q 3713 922 3314 415
1751Q 2916 -91 2278 -91
1752Q 1894 -91 1617 61
1753Q 1341 213 1159 525
1754z
1755M 3116 1747
1756Q 3116 2381 2855 2742
1757Q 2594 3103 2138 3103
1758Q 1681 3103 1420 2742
1759Q 1159 2381 1159 1747
1760Q 1159 1113 1420 752
1761Q 1681 391 2138 391
1762Q 2594 391 2855 752
1763Q 3116 1113 3116 1747
1764z
1765" transform="scale(0.015625)"/>
1766 <path id="DejaVuSans-2192" d="M 5050 2147
1767L 5050 1866
1768L 3822 638
1769L 3447 1013
1770L 4175 1741
1771L 366 1741
1772L 366 2272
1773L 4175 2272
1774L 3447 3000
1775L 3822 3375
1776L 5050 2147
1777z
1778" transform="scale(0.015625)"/>
1779 <path id="DejaVuSans-d7" d="M 4488 3438
1780L 3059 2003
1781L 4488 575
1782L 4116 197
1783L 2681 1631
1784L 1247 197
1785L 878 575
1786L 2303 2003
1787L 878 3438
1788L 1247 3816
1789L 2681 2381
1790L 4116 3816
1791L 4488 3438
1792z
1793" transform="scale(0.015625)"/>
1794 </defs>
1795 <use xlink:href="#DejaVuSans-50"/>
1796 <use xlink:href="#DejaVuSans-41" transform="translate(53.927734 0)"/>
1797 <use xlink:href="#DejaVuSans-54" transform="translate(114.585938 0)"/>
1798 <use xlink:href="#DejaVuSans-48" transform="translate(175.669922 0)"/>
1799 <use xlink:href="#DejaVuSans-2d" transform="translate(250.865234 0)"/>
1800 <use xlink:href="#DejaVuSans-41" transform="translate(284.699219 0)"/>
1801 <use xlink:href="#DejaVuSans-20" transform="translate(353.107422 0)"/>
1802 <use xlink:href="#DejaVuSans-42" transform="translate(384.894531 0)"/>
1803 <use xlink:href="#DejaVuSans-41" transform="translate(453.498047 0)"/>
1804 <use xlink:href="#DejaVuSans-54" transform="translate(514.15625 0)"/>
1805 <use xlink:href="#DejaVuSans-54" transform="translate(573.490234 0)"/>
1806 <use xlink:href="#DejaVuSans-45" transform="translate(634.574219 0)"/>
1807 <use xlink:href="#DejaVuSans-52" transform="translate(697.757812 0)"/>
1808 <use xlink:href="#DejaVuSans-59" transform="translate(760.865234 0)"/>
1809 <use xlink:href="#DejaVuSans-20" transform="translate(821.949219 0)"/>
1810 <use xlink:href="#DejaVuSans-57" transform="translate(853.736328 0)"/>
1811 <use xlink:href="#DejaVuSans-49" transform="translate(952.613281 0)"/>
1812 <use xlink:href="#DejaVuSans-52" transform="translate(982.105469 0)"/>
1813 <use xlink:href="#DejaVuSans-49" transform="translate(1051.587891 0)"/>
1814 <use xlink:href="#DejaVuSans-4e" transform="translate(1081.080078 0)"/>
1815 <use xlink:href="#DejaVuSans-47" transform="translate(1155.884766 0)"/>
1816 <use xlink:href="#DejaVuSans-20" transform="translate(1233.375 0)"/>
1817 <use xlink:href="#DejaVuSans-2014" transform="translate(1265.162109 0)"/>
1818 <use xlink:href="#DejaVuSans-20" transform="translate(1365.162109 0)"/>
1819 <use xlink:href="#DejaVuSans-62" transform="translate(1396.949219 0)"/>
1820 <use xlink:href="#DejaVuSans-75" transform="translate(1460.425781 0)"/>
1821 <use xlink:href="#DejaVuSans-73" transform="translate(1523.804688 0)"/>
1822 <use xlink:href="#DejaVuSans-62" transform="translate(1575.904297 0)"/>
1823 <use xlink:href="#DejaVuSans-61" transform="translate(1639.380859 0)"/>
1824 <use xlink:href="#DejaVuSans-72" transform="translate(1700.660156 0)"/>
1825 <use xlink:href="#DejaVuSans-3a" transform="translate(1740.023438 0)"/>
1826 <use xlink:href="#DejaVuSans-20" transform="translate(1773.714844 0)"/>
1827 <use xlink:href="#DejaVuSans-32" transform="translate(1805.501953 0)"/>
1828 <use xlink:href="#DejaVuSans-20" transform="translate(1869.125 0)"/>
1829 <use xlink:href="#DejaVuSans-70" transform="translate(1900.912109 0)"/>
1830 <use xlink:href="#DejaVuSans-61" transform="translate(1964.388672 0)"/>
1831 <use xlink:href="#DejaVuSans-63" transform="translate(2025.667969 0)"/>
1832 <use xlink:href="#DejaVuSans-6b" transform="translate(2080.648438 0)"/>
1833 <use xlink:href="#DejaVuSans-73" transform="translate(2138.558594 0)"/>
1834 <use xlink:href="#DejaVuSans-20" transform="translate(2190.658203 0)"/>
1835 <use xlink:href="#DejaVuSans-2192" transform="translate(2222.445312 0)"/>
1836 <use xlink:href="#DejaVuSans-20" transform="translate(2306.234375 0)"/>
1837 <use xlink:href="#DejaVuSans-32" transform="translate(2338.021484 0)"/>
1838 <use xlink:href="#DejaVuSans-d7" transform="translate(2401.644531 0)"/>
1839 <use xlink:href="#DejaVuSans-20" transform="translate(2485.433594 0)"/>
1840 <use xlink:href="#DejaVuSans-36" transform="translate(2517.220703 0)"/>
1841 <use xlink:href="#DejaVuSans-30" transform="translate(2580.84375 0)"/>
1842 <use xlink:href="#DejaVuSans-30" transform="translate(2644.466797 0)"/>
1843 <use xlink:href="#DejaVuSans-30" transform="translate(2708.089844 0)"/>
1844 <use xlink:href="#DejaVuSans-58" transform="translate(2771.712891 0)"/>
1845 <use xlink:href="#DejaVuSans-50" transform="translate(2840.21875 0)"/>
1846 </g>
1847 </g>
1848 <g id="text_15">
1849 <!-- Bank 252A @12kW → 126A/pack (17% under 150A BMS) + 126A/inverter (14A under 140A) · 0.401C · 4× 175A Class-T · 2× JK-BMS → CAN (one per inverter) -->
1850 <g transform="translate(-0 379.685106) scale(0.07 -0.07)">
1851 <defs>
1852 <path id="DejaVuSans-40" d="M 2381 1678
1853Q 2381 1231 2603 976
1854Q 2825 722 3213 722
1855Q 3597 722 3817 978
1856Q 4038 1234 4038 1678
1857Q 4038 2116 3813 2373
1858Q 3588 2631 3206 2631
1859Q 2828 2631 2604 2375
1860Q 2381 2119 2381 1678
1861z
1862M 4084 744
1863Q 3897 503 3655 389
1864Q 3413 275 3091 275
1865Q 2553 275 2217 664
1866Q 1881 1053 1881 1678
1867Q 1881 2303 2218 2693
1868Q 2556 3084 3091 3084
1869Q 3413 3084 3656 2967
1870Q 3900 2850 4084 2613
1871L 4084 3022
1872L 4531 3022
1873L 4531 722
1874Q 4988 791 5245 1139
1875Q 5503 1488 5503 2041
1876Q 5503 2375 5404 2669
1877Q 5306 2963 5106 3213
1878Q 4781 3622 4314 3839
1879Q 3847 4056 3297 4056
1880Q 2913 4056 2559 3954
1881Q 2206 3853 1906 3653
1882Q 1416 3334 1139 2817
1883Q 863 2300 863 1697
1884Q 863 1200 1042 765
1885Q 1222 331 1563 0
1886Q 1891 -325 2322 -495
1887Q 2753 -666 3244 -666
1888Q 3647 -666 4036 -530
1889Q 4425 -394 4750 -141
1890L 5031 -488
1891Q 4641 -791 4180 -952
1892Q 3719 -1113 3244 -1113
1893Q 2666 -1113 2153 -908
1894Q 1641 -703 1241 -313
1895Q 841 78 631 592
1896Q 422 1106 422 1697
1897Q 422 2266 634 2781
1898Q 847 3297 1241 3688
1899Q 1644 4084 2172 4295
1900Q 2700 4506 3291 4506
1901Q 3953 4506 4520 4234
1902Q 5088 3963 5472 3463
1903Q 5706 3156 5829 2797
1904Q 5953 2438 5953 2053
1905Q 5953 1231 5456 756
1906Q 4959 281 4084 263
1907L 4084 744
1908z
1909" transform="scale(0.015625)"/>
1910 <path id="DejaVuSans-28" d="M 1984 4856
1911Q 1566 4138 1362 3434
1912Q 1159 2731 1159 2009
1913Q 1159 1288 1364 580
1914Q 1569 -128 1984 -844
1915L 1484 -844
1916Q 1016 -109 783 600
1917Q 550 1309 550 2009
1918Q 550 2706 781 3412
1919Q 1013 4119 1484 4856
1920L 1984 4856
1921z
1922" transform="scale(0.015625)"/>
1923 <path id="DejaVuSans-25" d="M 4653 2053
1924Q 4381 2053 4226 1822
1925Q 4072 1591 4072 1178
1926Q 4072 772 4226 539
1927Q 4381 306 4653 306
1928Q 4919 306 5073 539
1929Q 5228 772 5228 1178
1930Q 5228 1588 5073 1820
1931Q 4919 2053 4653 2053
1932z
1933M 4653 2450
1934Q 5147 2450 5437 2106
1935Q 5728 1763 5728 1178
1936Q 5728 594 5436 251
1937Q 5144 -91 4653 -91
1938Q 4153 -91 3862 251
1939Q 3572 594 3572 1178
1940Q 3572 1766 3864 2108
1941Q 4156 2450 4653 2450
1942z
1943M 1428 4353
1944Q 1159 4353 1004 4120
1945Q 850 3888 850 3481
1946Q 850 3069 1003 2837
1947Q 1156 2606 1428 2606
1948Q 1700 2606 1854 2837
1949Q 2009 3069 2009 3481
1950Q 2009 3884 1853 4118
1951Q 1697 4353 1428 4353
1952z
1953M 4250 4750
1954L 4750 4750
1955L 1831 -91
1956L 1331 -91
1957L 4250 4750
1958z
1959M 1428 4750
1960Q 1922 4750 2215 4408
1961Q 2509 4066 2509 3481
1962Q 2509 2891 2217 2550
1963Q 1925 2209 1428 2209
1964Q 931 2209 642 2551
1965Q 353 2894 353 3481
1966Q 353 4063 643 4406
1967Q 934 4750 1428 4750
1968z
1969" transform="scale(0.015625)"/>
1970 <path id="DejaVuSans-65" d="M 3597 1894
1971L 3597 1613
1972L 953 1613
1973Q 991 1019 1311 708
1974Q 1631 397 2203 397
1975Q 2534 397 2845 478
1976Q 3156 559 3463 722
1977L 3463 178
1978Q 3153 47 2828 -22
1979Q 2503 -91 2169 -91
1980Q 1331 -91 842 396
1981Q 353 884 353 1716
1982Q 353 2575 817 3079
1983Q 1281 3584 2069 3584
1984Q 2775 3584 3186 3129
1985Q 3597 2675 3597 1894
1986z
1987M 3022 2063
1988Q 3016 2534 2758 2815
1989Q 2500 3097 2075 3097
1990Q 1594 3097 1305 2825
1991Q 1016 2553 972 2059
1992L 3022 2063
1993z
1994" transform="scale(0.015625)"/>
1995 <path id="DejaVuSans-4d" d="M 628 4666
1996L 1569 4666
1997L 2759 1491
1998L 3956 4666
1999L 4897 4666
2000L 4897 0
2001L 4281 0
2002L 4281 4097
2003L 3078 897
2004L 2444 897
2005L 1241 4097
2006L 1241 0
2007L 628 0
2008L 628 4666
2009z
2010" transform="scale(0.015625)"/>
2011 <path id="DejaVuSans-29" d="M 513 4856
2012L 1013 4856
2013Q 1481 4119 1714 3412
2014Q 1947 2706 1947 2009
2015Q 1947 1309 1714 600
2016Q 1481 -109 1013 -844
2017L 513 -844
2018Q 928 -128 1133 580
2019Q 1338 1288 1338 2009
2020Q 1338 2731 1133 3434
2021Q 928 4138 513 4856
2022z
2023" transform="scale(0.015625)"/>
2024 <path id="DejaVuSans-2b" d="M 2944 4013
2025L 2944 2272
2026L 4684 2272
2027L 4684 1741
2028L 2944 1741
2029L 2944 0
2030L 2419 0
2031L 2419 1741
2032L 678 1741
2033L 678 2272
2034L 2419 2272
2035L 2419 4013
2036L 2944 4013
2037z
2038" transform="scale(0.015625)"/>
2039 <path id="DejaVuSans-76" d="M 191 3500
2040L 800 3500
2041L 1894 563
2042L 2988 3500
2043L 3597 3500
2044L 2284 0
2045L 1503 0
2046L 191 3500
2047z
2048" transform="scale(0.015625)"/>
2049 <path id="DejaVuSans-74" d="M 1172 4494
2050L 1172 3500
2051L 2356 3500
2052L 2356 3053
2053L 1172 3053
2054L 1172 1153
2055Q 1172 725 1289 603
2056Q 1406 481 1766 481
2057L 2356 481
2058L 2356 0
2059L 1766 0
2060Q 1100 0 847 248
2061Q 594 497 594 1153
2062L 594 3053
2063L 172 3053
2064L 172 3500
2065L 594 3500
2066L 594 4494
2067L 1172 4494
2068z
2069" transform="scale(0.015625)"/>
2070 <path id="DejaVuSans-4a" d="M 628 4666
2071L 1259 4666
2072L 1259 325
2073Q 1259 -519 939 -900
2074Q 619 -1281 -91 -1281
2075L -331 -1281
2076L -331 -750
2077L -134 -750
2078Q 284 -750 456 -515
2079Q 628 -281 628 325
2080L 628 4666
2081z
2082" transform="scale(0.015625)"/>
2083 <path id="DejaVuSans-4b" d="M 628 4666
2084L 1259 4666
2085L 1259 2694
2086L 3353 4666
2087L 4166 4666
2088L 1850 2491
2089L 4331 0
2090L 3500 0
2091L 1259 2247
2092L 1259 0
2093L 628 0
2094L 628 4666
2095z
2096" transform="scale(0.015625)"/>
2097 </defs>
2098 <use xlink:href="#DejaVuSans-42"/>
2099 <use xlink:href="#DejaVuSans-61" transform="translate(68.603516 0)"/>
2100 <use xlink:href="#DejaVuSans-6e" transform="translate(129.882812 0)"/>
2101 <use xlink:href="#DejaVuSans-6b" transform="translate(193.261719 0)"/>
2102 <use xlink:href="#DejaVuSans-20" transform="translate(251.171875 0)"/>
2103 <use xlink:href="#DejaVuSans-32" transform="translate(282.958984 0)"/>
2104 <use xlink:href="#DejaVuSans-35" transform="translate(346.582031 0)"/>
2105 <use xlink:href="#DejaVuSans-32" transform="translate(410.205078 0)"/>
2106 <use xlink:href="#DejaVuSans-41" transform="translate(473.828125 0)"/>
2107 <use xlink:href="#DejaVuSans-20" transform="translate(542.236328 0)"/>
2108 <use xlink:href="#DejaVuSans-40" transform="translate(574.023438 0)"/>
2109 <use xlink:href="#DejaVuSans-31" transform="translate(674.023438 0)"/>
2110 <use xlink:href="#DejaVuSans-32" transform="translate(737.646484 0)"/>
2111 <use xlink:href="#DejaVuSans-6b" transform="translate(801.269531 0)"/>
2112 <use xlink:href="#DejaVuSans-57" transform="translate(859.179688 0)"/>
2113 <use xlink:href="#DejaVuSans-20" transform="translate(958.056641 0)"/>
2114 <use xlink:href="#DejaVuSans-2192" transform="translate(989.84375 0)"/>
2115 <use xlink:href="#DejaVuSans-20" transform="translate(1073.632812 0)"/>
2116 <use xlink:href="#DejaVuSans-31" transform="translate(1105.419922 0)"/>
2117 <use xlink:href="#DejaVuSans-32" transform="translate(1169.042969 0)"/>
2118 <use xlink:href="#DejaVuSans-36" transform="translate(1232.666016 0)"/>
2119 <use xlink:href="#DejaVuSans-41" transform="translate(1296.289062 0)"/>
2120 <use xlink:href="#DejaVuSans-2f" transform="translate(1364.697266 0)"/>
2121 <use xlink:href="#DejaVuSans-70" transform="translate(1398.388672 0)"/>
2122 <use xlink:href="#DejaVuSans-61" transform="translate(1461.865234 0)"/>
2123 <use xlink:href="#DejaVuSans-63" transform="translate(1523.144531 0)"/>
2124 <use xlink:href="#DejaVuSans-6b" transform="translate(1578.125 0)"/>
2125 <use xlink:href="#DejaVuSans-20" transform="translate(1636.035156 0)"/>
2126 <use xlink:href="#DejaVuSans-28" transform="translate(1667.822266 0)"/>
2127 <use xlink:href="#DejaVuSans-31" transform="translate(1706.835938 0)"/>
2128 <use xlink:href="#DejaVuSans-37" transform="translate(1770.458984 0)"/>
2129 <use xlink:href="#DejaVuSans-25" transform="translate(1834.082031 0)"/>
2130 <use xlink:href="#DejaVuSans-20" transform="translate(1929.101562 0)"/>
2131 <use xlink:href="#DejaVuSans-75" transform="translate(1960.888672 0)"/>
2132 <use xlink:href="#DejaVuSans-6e" transform="translate(2024.267578 0)"/>
2133 <use xlink:href="#DejaVuSans-64" transform="translate(2087.646484 0)"/>
2134 <use xlink:href="#DejaVuSans-65" transform="translate(2151.123047 0)"/>
2135 <use xlink:href="#DejaVuSans-72" transform="translate(2212.646484 0)"/>
2136 <use xlink:href="#DejaVuSans-20" transform="translate(2253.759766 0)"/>
2137 <use xlink:href="#DejaVuSans-31" transform="translate(2285.546875 0)"/>
2138 <use xlink:href="#DejaVuSans-35" transform="translate(2349.169922 0)"/>
2139 <use xlink:href="#DejaVuSans-30" transform="translate(2412.792969 0)"/>
2140 <use xlink:href="#DejaVuSans-41" transform="translate(2476.416016 0)"/>
2141 <use xlink:href="#DejaVuSans-20" transform="translate(2544.824219 0)"/>
2142 <use xlink:href="#DejaVuSans-42" transform="translate(2576.611328 0)"/>
2143 <use xlink:href="#DejaVuSans-4d" transform="translate(2645.214844 0)"/>
2144 <use xlink:href="#DejaVuSans-53" transform="translate(2731.494141 0)"/>
2145 <use xlink:href="#DejaVuSans-29" transform="translate(2794.970703 0)"/>
2146 <use xlink:href="#DejaVuSans-20" transform="translate(2833.984375 0)"/>
2147 <use xlink:href="#DejaVuSans-2b" transform="translate(2865.771484 0)"/>
2148 <use xlink:href="#DejaVuSans-20" transform="translate(2949.560547 0)"/>
2149 <use xlink:href="#DejaVuSans-31" transform="translate(2981.347656 0)"/>
2150 <use xlink:href="#DejaVuSans-32" transform="translate(3044.970703 0)"/>
2151 <use xlink:href="#DejaVuSans-36" transform="translate(3108.59375 0)"/>
2152 <use xlink:href="#DejaVuSans-41" transform="translate(3172.216797 0)"/>
2153 <use xlink:href="#DejaVuSans-2f" transform="translate(3240.625 0)"/>
2154 <use xlink:href="#DejaVuSans-69" transform="translate(3274.316406 0)"/>
2155 <use xlink:href="#DejaVuSans-6e" transform="translate(3302.099609 0)"/>
2156 <use xlink:href="#DejaVuSans-76" transform="translate(3365.478516 0)"/>
2157 <use xlink:href="#DejaVuSans-65" transform="translate(3424.658203 0)"/>
2158 <use xlink:href="#DejaVuSans-72" transform="translate(3486.181641 0)"/>
2159 <use xlink:href="#DejaVuSans-74" transform="translate(3527.294922 0)"/>
2160 <use xlink:href="#DejaVuSans-65" transform="translate(3566.503906 0)"/>
2161 <use xlink:href="#DejaVuSans-72" transform="translate(3628.027344 0)"/>
2162 <use xlink:href="#DejaVuSans-20" transform="translate(3669.140625 0)"/>
2163 <use xlink:href="#DejaVuSans-28" transform="translate(3700.927734 0)"/>
2164 <use xlink:href="#DejaVuSans-31" transform="translate(3739.941406 0)"/>
2165 <use xlink:href="#DejaVuSans-34" transform="translate(3803.564453 0)"/>
2166 <use xlink:href="#DejaVuSans-41" transform="translate(3867.1875 0)"/>
2167 <use xlink:href="#DejaVuSans-20" transform="translate(3935.595703 0)"/>
2168 <use xlink:href="#DejaVuSans-75" transform="translate(3967.382812 0)"/>
2169 <use xlink:href="#DejaVuSans-6e" transform="translate(4030.761719 0)"/>
2170 <use xlink:href="#DejaVuSans-64" transform="translate(4094.140625 0)"/>
2171 <use xlink:href="#DejaVuSans-65" transform="translate(4157.617188 0)"/>
2172 <use xlink:href="#DejaVuSans-72" transform="translate(4219.140625 0)"/>
2173 <use xlink:href="#DejaVuSans-20" transform="translate(4260.253906 0)"/>
2174 <use xlink:href="#DejaVuSans-31" transform="translate(4292.041016 0)"/>
2175 <use xlink:href="#DejaVuSans-34" transform="translate(4355.664062 0)"/>
2176 <use xlink:href="#DejaVuSans-30" transform="translate(4419.287109 0)"/>
2177 <use xlink:href="#DejaVuSans-41" transform="translate(4482.910156 0)"/>
2178 <use xlink:href="#DejaVuSans-29" transform="translate(4551.318359 0)"/>
2179 <use xlink:href="#DejaVuSans-20" transform="translate(4590.332031 0)"/>
2180 <use xlink:href="#DejaVuSans-b7" transform="translate(4622.119141 0)"/>
2181 <use xlink:href="#DejaVuSans-20" transform="translate(4653.90625 0)"/>
2182 <use xlink:href="#DejaVuSans-30" transform="translate(4685.693359 0)"/>
2183 <use xlink:href="#DejaVuSans-2e" transform="translate(4749.316406 0)"/>
2184 <use xlink:href="#DejaVuSans-34" transform="translate(4781.103516 0)"/>
2185 <use xlink:href="#DejaVuSans-30" transform="translate(4844.726562 0)"/>
2186 <use xlink:href="#DejaVuSans-31" transform="translate(4908.349609 0)"/>
2187 <use xlink:href="#DejaVuSans-43" transform="translate(4971.972656 0)"/>
2188 <use xlink:href="#DejaVuSans-20" transform="translate(5041.796875 0)"/>
2189 <use xlink:href="#DejaVuSans-b7" transform="translate(5073.583984 0)"/>
2190 <use xlink:href="#DejaVuSans-20" transform="translate(5105.371094 0)"/>
2191 <use xlink:href="#DejaVuSans-34" transform="translate(5137.158203 0)"/>
2192 <use xlink:href="#DejaVuSans-d7" transform="translate(5200.78125 0)"/>
2193 <use xlink:href="#DejaVuSans-20" transform="translate(5284.570312 0)"/>
2194 <use xlink:href="#DejaVuSans-31" transform="translate(5316.357422 0)"/>
2195 <use xlink:href="#DejaVuSans-37" transform="translate(5379.980469 0)"/>
2196 <use xlink:href="#DejaVuSans-35" transform="translate(5443.603516 0)"/>
2197 <use xlink:href="#DejaVuSans-41" transform="translate(5507.226562 0)"/>
2198 <use xlink:href="#DejaVuSans-20" transform="translate(5575.634766 0)"/>
2199 <use xlink:href="#DejaVuSans-43" transform="translate(5607.421875 0)"/>
2200 <use xlink:href="#DejaVuSans-6c" transform="translate(5677.246094 0)"/>
2201 <use xlink:href="#DejaVuSans-61" transform="translate(5705.029297 0)"/>
2202 <use xlink:href="#DejaVuSans-73" transform="translate(5766.308594 0)"/>
2203 <use xlink:href="#DejaVuSans-73" transform="translate(5818.408203 0)"/>
2204 <use xlink:href="#DejaVuSans-2d" transform="translate(5870.507812 0)"/>
2205 <use xlink:href="#DejaVuSans-54" transform="translate(5897.466797 0)"/>
2206 <use xlink:href="#DejaVuSans-20" transform="translate(5958.550781 0)"/>
2207 <use xlink:href="#DejaVuSans-b7" transform="translate(5990.337891 0)"/>
2208 <use xlink:href="#DejaVuSans-20" transform="translate(6022.125 0)"/>
2209 <use xlink:href="#DejaVuSans-32" transform="translate(6053.912109 0)"/>
2210 <use xlink:href="#DejaVuSans-d7" transform="translate(6117.535156 0)"/>
2211 <use xlink:href="#DejaVuSans-20" transform="translate(6201.324219 0)"/>
2212 <use xlink:href="#DejaVuSans-4a" transform="translate(6233.111328 0)"/>
2213 <use xlink:href="#DejaVuSans-4b" transform="translate(6262.603516 0)"/>
2214 <use xlink:href="#DejaVuSans-2d" transform="translate(6317.679688 0)"/>
2215 <use xlink:href="#DejaVuSans-42" transform="translate(6350.138672 0)"/>
2216 <use xlink:href="#DejaVuSans-4d" transform="translate(6418.742188 0)"/>
2217 <use xlink:href="#DejaVuSans-53" transform="translate(6505.021484 0)"/>
2218 <use xlink:href="#DejaVuSans-20" transform="translate(6568.498047 0)"/>
2219 <use xlink:href="#DejaVuSans-2192" transform="translate(6600.285156 0)"/>
2220 <use xlink:href="#DejaVuSans-20" transform="translate(6684.074219 0)"/>
2221 <use xlink:href="#DejaVuSans-43" transform="translate(6715.861328 0)"/>
2222 <use xlink:href="#DejaVuSans-41" transform="translate(6785.685547 0)"/>
2223 <use xlink:href="#DejaVuSans-4e" transform="translate(6854.09375 0)"/>
2224 <use xlink:href="#DejaVuSans-20" transform="translate(6928.898438 0)"/>
2225 <use xlink:href="#DejaVuSans-28" transform="translate(6960.685547 0)"/>
2226 <use xlink:href="#DejaVuSans-6f" transform="translate(6999.699219 0)"/>
2227 <use xlink:href="#DejaVuSans-6e" transform="translate(7060.880859 0)"/>
2228 <use xlink:href="#DejaVuSans-65" transform="translate(7124.259766 0)"/>
2229 <use xlink:href="#DejaVuSans-20" transform="translate(7185.783203 0)"/>
2230 <use xlink:href="#DejaVuSans-70" transform="translate(7217.570312 0)"/>
2231 <use xlink:href="#DejaVuSans-65" transform="translate(7281.046875 0)"/>
2232 <use xlink:href="#DejaVuSans-72" transform="translate(7342.570312 0)"/>
2233 <use xlink:href="#DejaVuSans-20" transform="translate(7383.683594 0)"/>
2234 <use xlink:href="#DejaVuSans-69" transform="translate(7415.470703 0)"/>
2235 <use xlink:href="#DejaVuSans-6e" transform="translate(7443.253906 0)"/>
2236 <use xlink:href="#DejaVuSans-76" transform="translate(7506.632812 0)"/>
2237 <use xlink:href="#DejaVuSans-65" transform="translate(7565.8125 0)"/>
2238 <use xlink:href="#DejaVuSans-72" transform="translate(7627.335938 0)"/>
2239 <use xlink:href="#DejaVuSans-74" transform="translate(7668.449219 0)"/>
2240 <use xlink:href="#DejaVuSans-65" transform="translate(7707.658203 0)"/>
2241 <use xlink:href="#DejaVuSans-72" transform="translate(7769.181641 0)"/>
2242 <use xlink:href="#DejaVuSans-29" transform="translate(7810.294922 0)"/>
2243 </g>
2244 </g>
2245 </g>
2246 </g>
2247 <defs>
2248 <clipPath id="pd0bad0f173">
2249 <rect x="26.834938" y="0" width="495.779811" height="385.92"/>
2250 </clipPath>
2251 </defs>
2252</svg>
artifacts/phase2/dc-strings.png +0 -0
(no content changes — binary or rename)
artifacts/phase2/dc-strings.svg +2210 -0
……@@ -0,0 +1,2210 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="420.7525pt" height="354.838503pt" viewBox="0 0 420.7525 354.838503" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T02:23:47.018068</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M 0 354.838503
25L 420.7525 354.838503
26L 420.7525 0
27L 0 0
28L 0 354.838503
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="patch_2">
34 <path d="M 129.42678 90.323618
35C 134.197458 90.323618 138.773384 88.428208 142.146762 85.054829
36C 145.520141 81.681451 147.415551 77.105525 147.415551 72.334847
37C 147.415551 67.564169 145.520141 62.988244 142.146762 59.614865
38C 138.773384 56.241487 134.197458 54.346076 129.42678 54.346076
39C 124.656102 54.346076 120.080177 56.241487 116.706798 59.614865
40C 113.33342 62.988244 111.438009 67.564169 111.438009 72.334847
41C 111.438009 77.105525 113.33342 81.681451 116.706798 85.054829
42C 120.080177 88.428208 124.656102 90.323618 129.42678 90.323618
43L 129.42678 90.323618
44z
45" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
46 </g>
47 <g id="patch_3">
48 <path d="M 129.42678 155.083194
49C 134.197458 155.083194 138.773384 153.187784 142.146762 149.814405
50C 145.520141 146.441026 147.415551 141.865101 147.415551 137.094423
51C 147.415551 132.323745 145.520141 127.74782 142.146762 124.374441
52C 138.773384 121.001062 134.197458 119.105652 129.42678 119.105652
53C 124.656102 119.105652 120.080177 121.001062 116.706798 124.374441
54C 113.33342 127.74782 111.438009 132.323745 111.438009 137.094423
55C 111.438009 141.865101 113.33342 146.441026 116.706798 149.814405
56C 120.080177 153.187784 124.656102 155.083194 129.42678 155.083194
57L 129.42678 155.083194
58z
59" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
60 </g>
61 <g id="patch_4">
62 <path d="M 129.42678 219.84277
63C 134.197458 219.84277 138.773384 217.947359 142.146762 214.573981
64C 145.520141 211.200602 147.415551 206.624677 147.415551 201.853999
65C 147.415551 197.083321 145.520141 192.507395 142.146762 189.134017
66C 138.773384 185.760638 134.197458 183.865228 129.42678 183.865228
67C 124.656102 183.865228 120.080177 185.760638 116.706798 189.134017
68C 113.33342 192.507395 111.438009 197.083321 111.438009 201.853999
69C 111.438009 206.624677 113.33342 211.200602 116.706798 214.573981
70C 120.080177 217.947359 124.656102 219.84277 129.42678 219.84277
71L 129.42678 219.84277
72z
73" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
74 </g>
75 <g id="patch_5">
76 <path d="M 129.42678 284.602346
77C 134.197458 284.602346 138.773384 282.706935 142.146762 279.333557
78C 145.520141 275.960178 147.415551 271.384252 147.415551 266.613575
79C 147.415551 261.842897 145.520141 257.266971 142.146762 253.893593
80C 138.773384 250.520214 134.197458 248.624803 129.42678 248.624803
81C 124.656102 248.624803 120.080177 250.520214 116.706798 253.893593
82C 113.33342 257.266971 111.438009 261.842897 111.438009 266.613575
83C 111.438009 271.384252 113.33342 275.960178 116.706798 279.333557
84C 120.080177 282.706935 124.656102 284.602346 129.42678 284.602346
85L 129.42678 284.602346
86z
87" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
88 </g>
89 <g id="line2d_1">
90 <path d="M 106.041378 72.334847
91L 111.438009 72.334847
92L 111.438009 72.334847
93M 147.415551 72.334847
94L 147.415551 72.334847
95L 152.812183 72.334847
96" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
97 </g>
98 <g id="line2d_2">
99 <path d="M 125.829026 67.837654
100L 125.829026 76.83204
101" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
102 </g>
103 <g id="line2d_3">
104 <path d="M 133.024534 62.441023
105L 133.024534 82.228671
106" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
107 </g>
108 <g id="line2d_4">
109 <path d="M 111.438009 72.334847
110L 125.829026 72.334847
111M 133.024534 72.334847
112L 147.415551 72.334847
113" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
114 </g>
115 <g id="line2d_5">
116 <path d="M 151.013306 39.955059
117L 146.580034 44.388331
118" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
119 </g>
120 <g id="patch_6">
121 <path d="M 148.488031 46.296328
122L 140.220043 50.748322
123L 144.672037 42.480334
124z
125" clip-path="url(#p7831103559)"/>
126 </g>
127 <g id="line2d_6">
128 <path d="M 158.208814 47.150568
129L 153.775542 51.583839
130" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
131 </g>
132 <g id="patch_7">
133 <path d="M 155.68354 53.491837
134L 147.415551 57.94383
135L 151.867545 49.675842
136z
137" clip-path="url(#p7831103559)"/>
138 </g>
139 <g id="line2d_7">
140 <path d="M 152.812183 72.334847
141L 170.800954 72.334847
142L 188.789725 72.334847
143" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
144 </g>
145 <g id="line2d_8">
146 <path d="M 188.789725 72.334847
147L 194.186356 72.334847
148L 199.582987 72.334847
149" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
150 </g>
151 <g id="line2d_9">
152 <path d="M 199.582987 72.334847
153L 204.979619 72.334847
154L 204.979619 63.340462
155L 240.957161 63.340462
156L 240.957161 81.329233
157L 204.979619 81.329233
158L 204.979619 72.334847
159M 240.957161 72.334847
160L 246.353792 72.334847
161" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
162 </g>
163 <g id="line2d_10">
164 <path d="M 106.041378 137.094423
165L 111.438009 137.094423
166L 111.438009 137.094423
167M 147.415551 137.094423
168L 147.415551 137.094423
169L 152.812183 137.094423
170" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
171 </g>
172 <g id="line2d_11">
173 <path d="M 125.829026 132.59723
174L 125.829026 141.591616
175" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
176 </g>
177 <g id="line2d_12">
178 <path d="M 133.024534 127.200599
179L 133.024534 146.988247
180" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
181 </g>
182 <g id="line2d_13">
183 <path d="M 111.438009 137.094423
184L 125.829026 137.094423
185M 133.024534 137.094423
186L 147.415551 137.094423
187" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
188 </g>
189 <g id="line2d_14">
190 <path d="M 151.013306 104.714635
191L 146.580034 109.147907
192" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
193 </g>
194 <g id="patch_8">
195 <path d="M 148.488031 111.055904
196L 140.220043 115.507898
197L 144.672037 107.239909
198z
199" clip-path="url(#p7831103559)"/>
200 </g>
201 <g id="line2d_15">
202 <path d="M 158.208814 111.910143
203L 153.775542 116.343415
204" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
205 </g>
206 <g id="patch_9">
207 <path d="M 155.68354 118.251412
208L 147.415551 122.703406
209L 151.867545 114.435418
210z
211" clip-path="url(#p7831103559)"/>
212 </g>
213 <g id="line2d_16">
214 <path d="M 152.812183 137.094423
215L 170.800954 137.094423
216L 188.789725 137.094423
217" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
218 </g>
219 <g id="line2d_17">
220 <path d="M 188.789725 137.094423
221L 194.186356 137.094423
222L 199.582987 137.094423
223" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
224 </g>
225 <g id="line2d_18">
226 <path d="M 199.582987 137.094423
227L 204.979619 137.094423
228L 204.979619 128.100037
229L 240.957161 128.100037
230L 240.957161 146.088808
231L 204.979619 146.088808
232L 204.979619 137.094423
233M 240.957161 137.094423
234L 246.353792 137.094423
235" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
236 </g>
237 <g id="line2d_19">
238 <path d="M 106.041378 201.853999
239L 111.438009 201.853999
240L 111.438009 201.853999
241M 147.415551 201.853999
242L 147.415551 201.853999
243L 152.812183 201.853999
244" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
245 </g>
246 <g id="line2d_20">
247 <path d="M 125.829026 197.356806
248L 125.829026 206.351192
249" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
250 </g>
251 <g id="line2d_21">
252 <path d="M 133.024534 191.960175
253L 133.024534 211.747823
254" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
255 </g>
256 <g id="line2d_22">
257 <path d="M 111.438009 201.853999
258L 125.829026 201.853999
259M 133.024534 201.853999
260L 147.415551 201.853999
261" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
262 </g>
263 <g id="line2d_23">
264 <path d="M 151.013306 169.474211
265L 146.580034 173.907482
266" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
267 </g>
268 <g id="patch_10">
269 <path d="M 148.488031 175.81548
270L 140.220043 180.267473
271L 144.672037 171.999485
272z
273" clip-path="url(#p7831103559)"/>
274 </g>
275 <g id="line2d_24">
276 <path d="M 158.208814 176.669719
277L 153.775542 181.102991
278" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
279 </g>
280 <g id="patch_11">
281 <path d="M 155.68354 183.010988
282L 147.415551 187.462982
283L 151.867545 179.194994
284z
285" clip-path="url(#p7831103559)"/>
286 </g>
287 <g id="line2d_25">
288 <path d="M 152.812183 201.853999
289L 170.800954 201.853999
290L 188.789725 201.853999
291" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
292 </g>
293 <g id="line2d_26">
294 <path d="M 188.789725 201.853999
295L 194.186356 201.853999
296L 199.582987 201.853999
297" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
298 </g>
299 <g id="line2d_27">
300 <path d="M 199.582987 201.853999
301L 204.979619 201.853999
302L 204.979619 192.859613
303L 240.957161 192.859613
304L 240.957161 210.848384
305L 204.979619 210.848384
306L 204.979619 201.853999
307M 240.957161 201.853999
308L 246.353792 201.853999
309" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
310 </g>
311 <g id="line2d_28">
312 <path d="M 106.041378 266.613575
313L 111.438009 266.613575
314L 111.438009 266.613575
315M 147.415551 266.613575
316L 147.415551 266.613575
317L 152.812183 266.613575
318" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
319 </g>
320 <g id="line2d_29">
321 <path d="M 125.829026 262.116382
322L 125.829026 271.110767
323" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
324 </g>
325 <g id="line2d_30">
326 <path d="M 133.024534 256.71975
327L 133.024534 276.507399
328" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
329 </g>
330 <g id="line2d_31">
331 <path d="M 111.438009 266.613575
332L 125.829026 266.613575
333M 133.024534 266.613575
334L 147.415551 266.613575
335" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
336 </g>
337 <g id="line2d_32">
338 <path d="M 151.013306 234.233787
339L 146.580034 238.667058
340" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
341 </g>
342 <g id="patch_12">
343 <path d="M 148.488031 240.575056
344L 140.220043 245.027049
345L 144.672037 236.759061
346z
347" clip-path="url(#p7831103559)"/>
348 </g>
349 <g id="line2d_33">
350 <path d="M 158.208814 241.429295
351L 153.775542 245.862567
352" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
353 </g>
354 <g id="patch_13">
355 <path d="M 155.68354 247.770564
356L 147.415551 252.222558
357L 151.867545 243.954569
358z
359" clip-path="url(#p7831103559)"/>
360 </g>
361 <g id="line2d_34">
362 <path d="M 152.812183 266.613575
363L 170.800954 266.613575
364L 188.789725 266.613575
365" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
366 </g>
367 <g id="line2d_35">
368 <path d="M 188.789725 266.613575
369L 194.186356 266.613575
370L 199.582987 266.613575
371" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
372 </g>
373 <g id="line2d_36">
374 <path d="M 199.582987 266.613575
375L 204.979619 266.613575
376L 204.979619 257.619189
377L 240.957161 257.619189
378L 240.957161 275.60796
379L 204.979619 275.60796
380L 204.979619 266.613575
381M 240.957161 266.613575
382L 246.353792 266.613575
383" clip-path="url(#p7831103559)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
384 </g>
385 <g id="text_1">
386 <!-- String 1 -->
387 <g transform="translate(30.754342 66.865374) scale(0.09 -0.09)">
388 <defs>
389 <path id="DejaVuSans-53" d="M 3425 4513
390L 3425 3897
391Q 3066 4069 2747 4153
392Q 2428 4238 2131 4238
393Q 1616 4238 1336 4038
394Q 1056 3838 1056 3469
395Q 1056 3159 1242 3001
396Q 1428 2844 1947 2747
397L 2328 2669
398Q 3034 2534 3370 2195
399Q 3706 1856 3706 1288
400Q 3706 609 3251 259
401Q 2797 -91 1919 -91
402Q 1588 -91 1214 -16
403Q 841 59 441 206
404L 441 856
405Q 825 641 1194 531
406Q 1563 422 1919 422
407Q 2459 422 2753 634
408Q 3047 847 3047 1241
409Q 3047 1584 2836 1778
410Q 2625 1972 2144 2069
411L 1759 2144
412Q 1053 2284 737 2584
413Q 422 2884 422 3419
414Q 422 4038 858 4394
415Q 1294 4750 2059 4750
416Q 2388 4750 2728 4690
417Q 3069 4631 3425 4513
418z
419" transform="scale(0.015625)"/>
420 <path id="DejaVuSans-74" d="M 1172 4494
421L 1172 3500
422L 2356 3500
423L 2356 3053
424L 1172 3053
425L 1172 1153
426Q 1172 725 1289 603
427Q 1406 481 1766 481
428L 2356 481
429L 2356 0
430L 1766 0
431Q 1100 0 847 248
432Q 594 497 594 1153
433L 594 3053
434L 172 3053
435L 172 3500
436L 594 3500
437L 594 4494
438L 1172 4494
439z
440" transform="scale(0.015625)"/>
441 <path id="DejaVuSans-72" d="M 2631 2963
442Q 2534 3019 2420 3045
443Q 2306 3072 2169 3072
444Q 1681 3072 1420 2755
445Q 1159 2438 1159 1844
446L 1159 0
447L 581 0
448L 581 3500
449L 1159 3500
450L 1159 2956
451Q 1341 3275 1631 3429
452Q 1922 3584 2338 3584
453Q 2397 3584 2469 3576
454Q 2541 3569 2628 3553
455L 2631 2963
456z
457" transform="scale(0.015625)"/>
458 <path id="DejaVuSans-69" d="M 603 3500
459L 1178 3500
460L 1178 0
461L 603 0
462L 603 3500
463z
464M 603 4863
465L 1178 4863
466L 1178 4134
467L 603 4134
468L 603 4863
469z
470" transform="scale(0.015625)"/>
471 <path id="DejaVuSans-6e" d="M 3513 2113
472L 3513 0
473L 2938 0
474L 2938 2094
475Q 2938 2591 2744 2837
476Q 2550 3084 2163 3084
477Q 1697 3084 1428 2787
478Q 1159 2491 1159 1978
479L 1159 0
480L 581 0
481L 581 3500
482L 1159 3500
483L 1159 2956
484Q 1366 3272 1645 3428
485Q 1925 3584 2291 3584
486Q 2894 3584 3203 3211
487Q 3513 2838 3513 2113
488z
489" transform="scale(0.015625)"/>
490 <path id="DejaVuSans-67" d="M 2906 1791
491Q 2906 2416 2648 2759
492Q 2391 3103 1925 3103
493Q 1463 3103 1205 2759
494Q 947 2416 947 1791
495Q 947 1169 1205 825
496Q 1463 481 1925 481
497Q 2391 481 2648 825
498Q 2906 1169 2906 1791
499z
500M 3481 434
501Q 3481 -459 3084 -895
502Q 2688 -1331 1869 -1331
503Q 1566 -1331 1297 -1286
504Q 1028 -1241 775 -1147
505L 775 -588
506Q 1028 -725 1275 -790
507Q 1522 -856 1778 -856
508Q 2344 -856 2625 -561
509Q 2906 -266 2906 331
510L 2906 616
511Q 2728 306 2450 153
512Q 2172 0 1784 0
513Q 1141 0 747 490
514Q 353 981 353 1791
515Q 353 2603 747 3093
516Q 1141 3584 1784 3584
517Q 2172 3584 2450 3431
518Q 2728 3278 2906 2969
519L 2906 3500
520L 3481 3500
521L 3481 434
522z
523" transform="scale(0.015625)"/>
524 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
525 <path id="DejaVuSans-31" d="M 794 531
526L 1825 531
527L 1825 4091
528L 703 3866
529L 703 4441
530L 1819 4666
531L 2450 4666
532L 2450 531
533L 3481 531
534L 3481 0
535L 794 0
536L 794 531
537z
538" transform="scale(0.015625)"/>
539 </defs>
540 <use xlink:href="#DejaVuSans-53"/>
541 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
542 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
543 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
544 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
545 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
546 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
547 <use xlink:href="#DejaVuSans-31" transform="translate(330.224609 0)"/>
548 </g>
549 <!-- 7S (+) -->
550 <g transform="translate(34.044967 75.575687) scale(0.09 -0.09)">
551 <defs>
552 <path id="DejaVuSans-37" d="M 525 4666
553L 3525 4666
554L 3525 4397
555L 1831 0
556L 1172 0
557L 2766 4134
558L 525 4134
559L 525 4666
560z
561" transform="scale(0.015625)"/>
562 <path id="DejaVuSans-28" d="M 1984 4856
563Q 1566 4138 1362 3434
564Q 1159 2731 1159 2009
565Q 1159 1288 1364 580
566Q 1569 -128 1984 -844
567L 1484 -844
568Q 1016 -109 783 600
569Q 550 1309 550 2009
570Q 550 2706 781 3412
571Q 1013 4119 1484 4856
572L 1984 4856
573z
574" transform="scale(0.015625)"/>
575 <path id="DejaVuSans-2b" d="M 2944 4013
576L 2944 2272
577L 4684 2272
578L 4684 1741
579L 2944 1741
580L 2944 0
581L 2419 0
582L 2419 1741
583L 678 1741
584L 678 2272
585L 2419 2272
586L 2419 4013
587L 2944 4013
588z
589" transform="scale(0.015625)"/>
590 <path id="DejaVuSans-29" d="M 513 4856
591L 1013 4856
592Q 1481 4119 1714 3412
593Q 1947 2706 1947 2009
594Q 1947 1309 1714 600
595Q 1481 -109 1013 -844
596L 513 -844
597Q 928 -128 1133 580
598Q 1338 1288 1338 2009
599Q 1338 2731 1133 3434
600Q 928 4138 513 4856
601z
602" transform="scale(0.015625)"/>
603 </defs>
604 <use xlink:href="#DejaVuSans-37"/>
605 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
606 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
607 <use xlink:href="#DejaVuSans-28" transform="translate(158.886719 0)"/>
608 <use xlink:href="#DejaVuSans-2b" transform="translate(197.900391 0)"/>
609 <use xlink:href="#DejaVuSans-29" transform="translate(281.689453 0)"/>
610 </g>
611 </g>
612 <g id="text_2">
613 <!-- 7× Waaree 575W -->
614 <g transform="translate(97.016346 29.296924) scale(0.08 -0.08)">
615 <defs>
616 <path id="DejaVuSans-d7" d="M 4488 3438
617L 3059 2003
618L 4488 575
619L 4116 197
620L 2681 1631
621L 1247 197
622L 878 575
623L 2303 2003
624L 878 3438
625L 1247 3816
626L 2681 2381
627L 4116 3816
628L 4488 3438
629z
630" transform="scale(0.015625)"/>
631 <path id="DejaVuSans-57" d="M 213 4666
632L 850 4666
633L 1831 722
634L 2809 4666
635L 3519 4666
636L 4500 722
637L 5478 4666
638L 6119 4666
639L 4947 0
640L 4153 0
641L 3169 4050
642L 2175 0
643L 1381 0
644L 213 4666
645z
646" transform="scale(0.015625)"/>
647 <path id="DejaVuSans-61" d="M 2194 1759
648Q 1497 1759 1228 1600
649Q 959 1441 959 1056
650Q 959 750 1161 570
651Q 1363 391 1709 391
652Q 2188 391 2477 730
653Q 2766 1069 2766 1631
654L 2766 1759
655L 2194 1759
656z
657M 3341 1997
658L 3341 0
659L 2766 0
660L 2766 531
661Q 2569 213 2275 61
662Q 1981 -91 1556 -91
663Q 1019 -91 701 211
664Q 384 513 384 1019
665Q 384 1609 779 1909
666Q 1175 2209 1959 2209
667L 2766 2209
668L 2766 2266
669Q 2766 2663 2505 2880
670Q 2244 3097 1772 3097
671Q 1472 3097 1187 3025
672Q 903 2953 641 2809
673L 641 3341
674Q 956 3463 1253 3523
675Q 1550 3584 1831 3584
676Q 2591 3584 2966 3190
677Q 3341 2797 3341 1997
678z
679" transform="scale(0.015625)"/>
680 <path id="DejaVuSans-65" d="M 3597 1894
681L 3597 1613
682L 953 1613
683Q 991 1019 1311 708
684Q 1631 397 2203 397
685Q 2534 397 2845 478
686Q 3156 559 3463 722
687L 3463 178
688Q 3153 47 2828 -22
689Q 2503 -91 2169 -91
690Q 1331 -91 842 396
691Q 353 884 353 1716
692Q 353 2575 817 3079
693Q 1281 3584 2069 3584
694Q 2775 3584 3186 3129
695Q 3597 2675 3597 1894
696z
697M 3022 2063
698Q 3016 2534 2758 2815
699Q 2500 3097 2075 3097
700Q 1594 3097 1305 2825
701Q 1016 2553 972 2059
702L 3022 2063
703z
704" transform="scale(0.015625)"/>
705 <path id="DejaVuSans-35" d="M 691 4666
706L 3169 4666
707L 3169 4134
708L 1269 4134
709L 1269 2991
710Q 1406 3038 1543 3061
711Q 1681 3084 1819 3084
712Q 2600 3084 3056 2656
713Q 3513 2228 3513 1497
714Q 3513 744 3044 326
715Q 2575 -91 1722 -91
716Q 1428 -91 1123 -41
717Q 819 9 494 109
718L 494 744
719Q 775 591 1075 516
720Q 1375 441 1709 441
721Q 2250 441 2565 725
722Q 2881 1009 2881 1497
723Q 2881 1984 2565 2268
724Q 2250 2553 1709 2553
725Q 1456 2553 1204 2497
726Q 953 2441 691 2322
727L 691 4666
728z
729" transform="scale(0.015625)"/>
730 </defs>
731 <use xlink:href="#DejaVuSans-37"/>
732 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
733 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
734 <use xlink:href="#DejaVuSans-57" transform="translate(179.199219 0)"/>
735 <use xlink:href="#DejaVuSans-61" transform="translate(271.701172 0)"/>
736 <use xlink:href="#DejaVuSans-61" transform="translate(332.980469 0)"/>
737 <use xlink:href="#DejaVuSans-72" transform="translate(394.259766 0)"/>
738 <use xlink:href="#DejaVuSans-65" transform="translate(433.123047 0)"/>
739 <use xlink:href="#DejaVuSans-65" transform="translate(494.646484 0)"/>
740 <use xlink:href="#DejaVuSans-20" transform="translate(556.169922 0)"/>
741 <use xlink:href="#DejaVuSans-35" transform="translate(587.957031 0)"/>
742 <use xlink:href="#DejaVuSans-37" transform="translate(651.580078 0)"/>
743 <use xlink:href="#DejaVuSans-35" transform="translate(715.203125 0)"/>
744 <use xlink:href="#DejaVuSans-57" transform="translate(778.826172 0)"/>
745 </g>
746 </g>
747 <g id="text_3">
748 <!-- 8AWG -->
749 <g transform="translate(158.685329 67.073343) scale(0.08 -0.08)">
750 <defs>
751 <path id="DejaVuSans-38" d="M 2034 2216
752Q 1584 2216 1326 1975
753Q 1069 1734 1069 1313
754Q 1069 891 1326 650
755Q 1584 409 2034 409
756Q 2484 409 2743 651
757Q 3003 894 3003 1313
758Q 3003 1734 2745 1975
759Q 2488 2216 2034 2216
760z
761M 1403 2484
762Q 997 2584 770 2862
763Q 544 3141 544 3541
764Q 544 4100 942 4425
765Q 1341 4750 2034 4750
766Q 2731 4750 3128 4425
767Q 3525 4100 3525 3541
768Q 3525 3141 3298 2862
769Q 3072 2584 2669 2484
770Q 3125 2378 3379 2068
771Q 3634 1759 3634 1313
772Q 3634 634 3220 271
773Q 2806 -91 2034 -91
774Q 1263 -91 848 271
775Q 434 634 434 1313
776Q 434 1759 690 2068
777Q 947 2378 1403 2484
778z
779M 1172 3481
780Q 1172 3119 1398 2916
781Q 1625 2713 2034 2713
782Q 2441 2713 2670 2916
783Q 2900 3119 2900 3481
784Q 2900 3844 2670 4047
785Q 2441 4250 2034 4250
786Q 1625 4250 1398 4047
787Q 1172 3844 1172 3481
788z
789" transform="scale(0.015625)"/>
790 <path id="DejaVuSans-41" d="M 2188 4044
791L 1331 1722
792L 3047 1722
793L 2188 4044
794z
795M 1831 4666
796L 2547 4666
797L 4325 0
798L 3669 0
799L 3244 1197
800L 1141 1197
801L 716 0
802L 50 0
803L 1831 4666
804z
805" transform="scale(0.015625)"/>
806 <path id="DejaVuSans-47" d="M 3809 666
807L 3809 1919
808L 2778 1919
809L 2778 2438
810L 4434 2438
811L 4434 434
812Q 4069 175 3628 42
813Q 3188 -91 2688 -91
814Q 1594 -91 976 548
815Q 359 1188 359 2328
816Q 359 3472 976 4111
817Q 1594 4750 2688 4750
818Q 3144 4750 3555 4637
819Q 3966 4525 4313 4306
820L 4313 3634
821Q 3963 3931 3569 4081
822Q 3175 4231 2741 4231
823Q 1884 4231 1454 3753
824Q 1025 3275 1025 2328
825Q 1025 1384 1454 906
826Q 1884 428 2741 428
827Q 3075 428 3337 486
828Q 3600 544 3809 666
829z
830" transform="scale(0.015625)"/>
831 </defs>
832 <use xlink:href="#DejaVuSans-38"/>
833 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
834 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
835 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
836 </g>
837 </g>
838 <g id="text_4">
839 <!-- Vmp≈307V -->
840 <g transform="translate(171.291356 82.011351) scale(0.08 -0.08)">
841 <defs>
842 <path id="DejaVuSans-56" d="M 1831 0
843L 50 4666
844L 709 4666
845L 2188 738
846L 3669 4666
847L 4325 4666
848L 2547 0
849L 1831 0
850z
851" transform="scale(0.015625)"/>
852 <path id="DejaVuSans-6d" d="M 3328 2828
853Q 3544 3216 3844 3400
854Q 4144 3584 4550 3584
855Q 5097 3584 5394 3201
856Q 5691 2819 5691 2113
857L 5691 0
858L 5113 0
859L 5113 2094
860Q 5113 2597 4934 2840
861Q 4756 3084 4391 3084
862Q 3944 3084 3684 2787
863Q 3425 2491 3425 1978
864L 3425 0
865L 2847 0
866L 2847 2094
867Q 2847 2600 2669 2842
868Q 2491 3084 2119 3084
869Q 1678 3084 1418 2786
870Q 1159 2488 1159 1978
871L 1159 0
872L 581 0
873L 581 3500
874L 1159 3500
875L 1159 2956
876Q 1356 3278 1631 3431
877Q 1906 3584 2284 3584
878Q 2666 3584 2933 3390
879Q 3200 3197 3328 2828
880z
881" transform="scale(0.015625)"/>
882 <path id="DejaVuSans-70" d="M 1159 525
883L 1159 -1331
884L 581 -1331
885L 581 3500
886L 1159 3500
887L 1159 2969
888Q 1341 3281 1617 3432
889Q 1894 3584 2278 3584
890Q 2916 3584 3314 3078
891Q 3713 2572 3713 1747
892Q 3713 922 3314 415
893Q 2916 -91 2278 -91
894Q 1894 -91 1617 61
895Q 1341 213 1159 525
896z
897M 3116 1747
898Q 3116 2381 2855 2742
899Q 2594 3103 2138 3103
900Q 1681 3103 1420 2742
901Q 1159 2381 1159 1747
902Q 1159 1113 1420 752
903Q 1681 391 2138 391
904Q 2594 391 2855 752
905Q 3116 1113 3116 1747
906z
907" transform="scale(0.015625)"/>
908 <path id="DejaVuSans-2248" d="M 4684 1947
909L 4684 1388
910Q 4356 1144 4076 1036
911Q 3797 928 3494 928
912Q 3150 928 2694 1113
913Q 2663 1125 2641 1134
914Q 2622 1141 2575 1159
915Q 2091 1350 1797 1350
916Q 1522 1350 1253 1231
917Q 984 1113 678 850
918L 678 1409
919Q 1006 1653 1286 1761
920Q 1566 1869 1869 1869
921Q 2213 1869 2672 1684
922Q 2706 1669 2722 1663
923Q 2741 1656 2788 1638
924Q 3272 1447 3566 1447
925Q 3834 1447 4098 1564
926Q 4363 1681 4684 1947
927z
928M 4684 3163
929L 4684 2606
930Q 4356 2359 4076 2251
931Q 3797 2144 3494 2144
932Q 3150 2144 2694 2328
933Q 2663 2341 2641 2350
934Q 2622 2356 2575 2375
935Q 2091 2566 1797 2566
936Q 1522 2566 1253 2447
937Q 984 2328 678 2069
938L 678 2625
939Q 1006 2869 1286 2976
940Q 1566 3084 1869 3084
941Q 2213 3084 2672 2900
942Q 2703 2888 2719 2881
943Q 2741 2872 2788 2853
944Q 3272 2663 3566 2663
945Q 3834 2663 4098 2780
946Q 4363 2897 4684 3163
947z
948" transform="scale(0.015625)"/>
949 <path id="DejaVuSans-33" d="M 2597 2516
950Q 3050 2419 3304 2112
951Q 3559 1806 3559 1356
952Q 3559 666 3084 287
953Q 2609 -91 1734 -91
954Q 1441 -91 1130 -33
955Q 819 25 488 141
956L 488 750
957Q 750 597 1062 519
958Q 1375 441 1716 441
959Q 2309 441 2620 675
960Q 2931 909 2931 1356
961Q 2931 1769 2642 2001
962Q 2353 2234 1838 2234
963L 1294 2234
964L 1294 2753
965L 1863 2753
966Q 2328 2753 2575 2939
967Q 2822 3125 2822 3475
968Q 2822 3834 2567 4026
969Q 2313 4219 1838 4219
970Q 1578 4219 1281 4162
971Q 984 4106 628 3988
972L 628 4550
973Q 988 4650 1302 4700
974Q 1616 4750 1894 4750
975Q 2613 4750 3031 4423
976Q 3450 4097 3450 3541
977Q 3450 3153 3228 2886
978Q 3006 2619 2597 2516
979z
980" transform="scale(0.015625)"/>
981 <path id="DejaVuSans-30" d="M 2034 4250
982Q 1547 4250 1301 3770
983Q 1056 3291 1056 2328
984Q 1056 1369 1301 889
985Q 1547 409 2034 409
986Q 2525 409 2770 889
987Q 3016 1369 3016 2328
988Q 3016 3291 2770 3770
989Q 2525 4250 2034 4250
990z
991M 2034 4750
992Q 2819 4750 3233 4129
993Q 3647 3509 3647 2328
994Q 3647 1150 3233 529
995Q 2819 -91 2034 -91
996Q 1250 -91 836 529
997Q 422 1150 422 2328
998Q 422 3509 836 4129
999Q 1250 4750 2034 4750
1000z
1001" transform="scale(0.015625)"/>
1002 </defs>
1003 <use xlink:href="#DejaVuSans-56"/>
1004 <use xlink:href="#DejaVuSans-6d" transform="translate(68.408203 0)"/>
1005 <use xlink:href="#DejaVuSans-70" transform="translate(165.820312 0)"/>
1006 <use xlink:href="#DejaVuSans-2248" transform="translate(229.296875 0)"/>
1007 <use xlink:href="#DejaVuSans-33" transform="translate(313.085938 0)"/>
1008 <use xlink:href="#DejaVuSans-30" transform="translate(376.708984 0)"/>
1009 <use xlink:href="#DejaVuSans-37" transform="translate(440.332031 0)"/>
1010 <use xlink:href="#DejaVuSans-56" transform="translate(503.955078 0)"/>
1011 </g>
1012 <!-- coldVoc 430.1V -->
1013 <g transform="translate(163.356981 89.753851) scale(0.08 -0.08)">
1014 <defs>
1015 <path id="DejaVuSans-63" d="M 3122 3366
1016L 3122 2828
1017Q 2878 2963 2633 3030
1018Q 2388 3097 2138 3097
1019Q 1578 3097 1268 2742
1020Q 959 2388 959 1747
1021Q 959 1106 1268 751
1022Q 1578 397 2138 397
1023Q 2388 397 2633 464
1024Q 2878 531 3122 666
1025L 3122 134
1026Q 2881 22 2623 -34
1027Q 2366 -91 2075 -91
1028Q 1284 -91 818 406
1029Q 353 903 353 1747
1030Q 353 2603 823 3093
1031Q 1294 3584 2113 3584
1032Q 2378 3584 2631 3529
1033Q 2884 3475 3122 3366
1034z
1035" transform="scale(0.015625)"/>
1036 <path id="DejaVuSans-6f" d="M 1959 3097
1037Q 1497 3097 1228 2736
1038Q 959 2375 959 1747
1039Q 959 1119 1226 758
1040Q 1494 397 1959 397
1041Q 2419 397 2687 759
1042Q 2956 1122 2956 1747
1043Q 2956 2369 2687 2733
1044Q 2419 3097 1959 3097
1045z
1046M 1959 3584
1047Q 2709 3584 3137 3096
1048Q 3566 2609 3566 1747
1049Q 3566 888 3137 398
1050Q 2709 -91 1959 -91
1051Q 1206 -91 779 398
1052Q 353 888 353 1747
1053Q 353 2609 779 3096
1054Q 1206 3584 1959 3584
1055z
1056" transform="scale(0.015625)"/>
1057 <path id="DejaVuSans-6c" d="M 603 4863
1058L 1178 4863
1059L 1178 0
1060L 603 0
1061L 603 4863
1062z
1063" transform="scale(0.015625)"/>
1064 <path id="DejaVuSans-64" d="M 2906 2969
1065L 2906 4863
1066L 3481 4863
1067L 3481 0
1068L 2906 0
1069L 2906 525
1070Q 2725 213 2448 61
1071Q 2172 -91 1784 -91
1072Q 1150 -91 751 415
1073Q 353 922 353 1747
1074Q 353 2572 751 3078
1075Q 1150 3584 1784 3584
1076Q 2172 3584 2448 3432
1077Q 2725 3281 2906 2969
1078z
1079M 947 1747
1080Q 947 1113 1208 752
1081Q 1469 391 1925 391
1082Q 2381 391 2643 752
1083Q 2906 1113 2906 1747
1084Q 2906 2381 2643 2742
1085Q 2381 3103 1925 3103
1086Q 1469 3103 1208 2742
1087Q 947 2381 947 1747
1088z
1089" transform="scale(0.015625)"/>
1090 <path id="DejaVuSans-34" d="M 2419 4116
1091L 825 1625
1092L 2419 1625
1093L 2419 4116
1094z
1095M 2253 4666
1096L 3047 4666
1097L 3047 1625
1098L 3713 1625
1099L 3713 1100
1100L 3047 1100
1101L 3047 0
1102L 2419 0
1103L 2419 1100
1104L 313 1100
1105L 313 1709
1106L 2253 4666
1107z
1108" transform="scale(0.015625)"/>
1109 <path id="DejaVuSans-2e" d="M 684 794
1110L 1344 794
1111L 1344 0
1112L 684 0
1113L 684 794
1114z
1115" transform="scale(0.015625)"/>
1116 </defs>
1117 <use xlink:href="#DejaVuSans-63"/>
1118 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1119 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1120 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1121 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
1122 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
1123 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
1124 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
1125 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
1126 <use xlink:href="#DejaVuSans-33" transform="translate(479.652344 0)"/>
1127 <use xlink:href="#DejaVuSans-30" transform="translate(543.275391 0)"/>
1128 <use xlink:href="#DejaVuSans-2e" transform="translate(606.898438 0)"/>
1129 <use xlink:href="#DejaVuSans-31" transform="translate(638.685547 0)"/>
1130 <use xlink:href="#DejaVuSans-56" transform="translate(702.308594 0)"/>
1131 </g>
1132 </g>
1133 <g id="text_5">
1134 <!-- 6000XP #1 -->
1135 <g transform="translate(200.46839 50.336457) scale(0.08 -0.08)">
1136 <defs>
1137 <path id="DejaVuSans-36" d="M 2113 2584
1138Q 1688 2584 1439 2293
1139Q 1191 2003 1191 1497
1140Q 1191 994 1439 701
1141Q 1688 409 2113 409
1142Q 2538 409 2786 701
1143Q 3034 994 3034 1497
1144Q 3034 2003 2786 2293
1145Q 2538 2584 2113 2584
1146z
1147M 3366 4563
1148L 3366 3988
1149Q 3128 4100 2886 4159
1150Q 2644 4219 2406 4219
1151Q 1781 4219 1451 3797
1152Q 1122 3375 1075 2522
1153Q 1259 2794 1537 2939
1154Q 1816 3084 2150 3084
1155Q 2853 3084 3261 2657
1156Q 3669 2231 3669 1497
1157Q 3669 778 3244 343
1158Q 2819 -91 2113 -91
1159Q 1303 -91 875 529
1160Q 447 1150 447 2328
1161Q 447 3434 972 4092
1162Q 1497 4750 2381 4750
1163Q 2619 4750 2861 4703
1164Q 3103 4656 3366 4563
1165z
1166" transform="scale(0.015625)"/>
1167 <path id="DejaVuSans-58" d="M 403 4666
1168L 1081 4666
1169L 2241 2931
1170L 3406 4666
1171L 4084 4666
1172L 2584 2425
1173L 4184 0
1174L 3506 0
1175L 2194 1984
1176L 872 0
1177L 191 0
1178L 1856 2491
1179L 403 4666
1180z
1181" transform="scale(0.015625)"/>
1182 <path id="DejaVuSans-50" d="M 1259 4147
1183L 1259 2394
1184L 2053 2394
1185Q 2494 2394 2734 2622
1186Q 2975 2850 2975 3272
1187Q 2975 3691 2734 3919
1188Q 2494 4147 2053 4147
1189L 1259 4147
1190z
1191M 628 4666
1192L 2053 4666
1193Q 2838 4666 3239 4311
1194Q 3641 3956 3641 3272
1195Q 3641 2581 3239 2228
1196Q 2838 1875 2053 1875
1197L 1259 1875
1198L 1259 0
1199L 628 0
1200L 628 4666
1201z
1202" transform="scale(0.015625)"/>
1203 <path id="DejaVuSans-23" d="M 3272 2816
1204L 2363 2816
1205L 2100 1772
1206L 3016 1772
1207L 3272 2816
1208z
1209M 2803 4594
1210L 2478 3297
1211L 3391 3297
1212L 3719 4594
1213L 4219 4594
1214L 3897 3297
1215L 4872 3297
1216L 4872 2816
1217L 3775 2816
1218L 3519 1772
1219L 4513 1772
1220L 4513 1294
1221L 3397 1294
1222L 3072 0
1223L 2572 0
1224L 2894 1294
1225L 1978 1294
1226L 1656 0
1227L 1153 0
1228L 1478 1294
1229L 494 1294
1230L 494 1772
1231L 1594 1772
1232L 1856 2816
1233L 850 2816
1234L 850 3297
1235L 1978 3297
1236L 2297 4594
1237L 2803 4594
1238z
1239" transform="scale(0.015625)"/>
1240 </defs>
1241 <use xlink:href="#DejaVuSans-36"/>
1242 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1243 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1244 <use xlink:href="#DejaVuSans-30" transform="translate(190.869141 0)"/>
1245 <use xlink:href="#DejaVuSans-58" transform="translate(254.492188 0)"/>
1246 <use xlink:href="#DejaVuSans-50" transform="translate(322.998047 0)"/>
1247 <use xlink:href="#DejaVuSans-20" transform="translate(383.300781 0)"/>
1248 <use xlink:href="#DejaVuSans-23" transform="translate(415.087891 0)"/>
1249 <use xlink:href="#DejaVuSans-31" transform="translate(498.876953 0)"/>
1250 </g>
1251 <!-- MPPT1 -->
1252 <g transform="translate(209.705265 58.078957) scale(0.08 -0.08)">
1253 <defs>
1254 <path id="DejaVuSans-4d" d="M 628 4666
1255L 1569 4666
1256L 2759 1491
1257L 3956 4666
1258L 4897 4666
1259L 4897 0
1260L 4281 0
1261L 4281 4097
1262L 3078 897
1263L 2444 897
1264L 1241 4097
1265L 1241 0
1266L 628 0
1267L 628 4666
1268z
1269" transform="scale(0.015625)"/>
1270 <path id="DejaVuSans-54" d="M -19 4666
1271L 3928 4666
1272L 3928 4134
1273L 2272 4134
1274L 2272 0
1275L 1638 0
1276L 1638 4134
1277L -19 4134
1278L -19 4666
1279z
1280" transform="scale(0.015625)"/>
1281 </defs>
1282 <use xlink:href="#DejaVuSans-4d"/>
1283 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1284 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1285 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1286 <use xlink:href="#DejaVuSans-31" transform="translate(267.96875 0)"/>
1287 </g>
1288 </g>
1289 <g id="text_6">
1290 <!-- String 2 -->
1291 <g transform="translate(30.754342 131.62495) scale(0.09 -0.09)">
1292 <defs>
1293 <path id="DejaVuSans-32" d="M 1228 531
1294L 3431 531
1295L 3431 0
1296L 469 0
1297L 469 531
1298Q 828 903 1448 1529
1299Q 2069 2156 2228 2338
1300Q 2531 2678 2651 2914
1301Q 2772 3150 2772 3378
1302Q 2772 3750 2511 3984
1303Q 2250 4219 1831 4219
1304Q 1534 4219 1204 4116
1305Q 875 4013 500 3803
1306L 500 4441
1307Q 881 4594 1212 4672
1308Q 1544 4750 1819 4750
1309Q 2544 4750 2975 4387
1310Q 3406 4025 3406 3419
1311Q 3406 3131 3298 2873
1312Q 3191 2616 2906 2266
1313Q 2828 2175 2409 1742
1314Q 1991 1309 1228 531
1315z
1316" transform="scale(0.015625)"/>
1317 </defs>
1318 <use xlink:href="#DejaVuSans-53"/>
1319 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
1320 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
1321 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
1322 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
1323 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
1324 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
1325 <use xlink:href="#DejaVuSans-32" transform="translate(330.224609 0)"/>
1326 </g>
1327 <!-- 7S (+) -->
1328 <g transform="translate(34.044967 140.335262) scale(0.09 -0.09)">
1329 <use xlink:href="#DejaVuSans-37"/>
1330 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
1331 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
1332 <use xlink:href="#DejaVuSans-28" transform="translate(158.886719 0)"/>
1333 <use xlink:href="#DejaVuSans-2b" transform="translate(197.900391 0)"/>
1334 <use xlink:href="#DejaVuSans-29" transform="translate(281.689453 0)"/>
1335 </g>
1336 </g>
1337 <g id="text_7">
1338 <!-- 7× Waaree 575W -->
1339 <g transform="translate(97.016346 94.0565) scale(0.08 -0.08)">
1340 <use xlink:href="#DejaVuSans-37"/>
1341 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
1342 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
1343 <use xlink:href="#DejaVuSans-57" transform="translate(179.199219 0)"/>
1344 <use xlink:href="#DejaVuSans-61" transform="translate(271.701172 0)"/>
1345 <use xlink:href="#DejaVuSans-61" transform="translate(332.980469 0)"/>
1346 <use xlink:href="#DejaVuSans-72" transform="translate(394.259766 0)"/>
1347 <use xlink:href="#DejaVuSans-65" transform="translate(433.123047 0)"/>
1348 <use xlink:href="#DejaVuSans-65" transform="translate(494.646484 0)"/>
1349 <use xlink:href="#DejaVuSans-20" transform="translate(556.169922 0)"/>
1350 <use xlink:href="#DejaVuSans-35" transform="translate(587.957031 0)"/>
1351 <use xlink:href="#DejaVuSans-37" transform="translate(651.580078 0)"/>
1352 <use xlink:href="#DejaVuSans-35" transform="translate(715.203125 0)"/>
1353 <use xlink:href="#DejaVuSans-57" transform="translate(778.826172 0)"/>
1354 </g>
1355 </g>
1356 <g id="text_8">
1357 <!-- 8AWG -->
1358 <g transform="translate(158.685329 131.832919) scale(0.08 -0.08)">
1359 <use xlink:href="#DejaVuSans-38"/>
1360 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1361 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1362 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1363 </g>
1364 </g>
1365 <g id="text_9">
1366 <!-- Vmp≈307V -->
1367 <g transform="translate(171.291356 146.770927) scale(0.08 -0.08)">
1368 <use xlink:href="#DejaVuSans-56"/>
1369 <use xlink:href="#DejaVuSans-6d" transform="translate(68.408203 0)"/>
1370 <use xlink:href="#DejaVuSans-70" transform="translate(165.820312 0)"/>
1371 <use xlink:href="#DejaVuSans-2248" transform="translate(229.296875 0)"/>
1372 <use xlink:href="#DejaVuSans-33" transform="translate(313.085938 0)"/>
1373 <use xlink:href="#DejaVuSans-30" transform="translate(376.708984 0)"/>
1374 <use xlink:href="#DejaVuSans-37" transform="translate(440.332031 0)"/>
1375 <use xlink:href="#DejaVuSans-56" transform="translate(503.955078 0)"/>
1376 </g>
1377 <!-- coldVoc 430.1V -->
1378 <g transform="translate(163.356981 154.513427) scale(0.08 -0.08)">
1379 <use xlink:href="#DejaVuSans-63"/>
1380 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1381 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1382 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1383 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
1384 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
1385 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
1386 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
1387 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
1388 <use xlink:href="#DejaVuSans-33" transform="translate(479.652344 0)"/>
1389 <use xlink:href="#DejaVuSans-30" transform="translate(543.275391 0)"/>
1390 <use xlink:href="#DejaVuSans-2e" transform="translate(606.898438 0)"/>
1391 <use xlink:href="#DejaVuSans-31" transform="translate(638.685547 0)"/>
1392 <use xlink:href="#DejaVuSans-56" transform="translate(702.308594 0)"/>
1393 </g>
1394 </g>
1395 <g id="text_10">
1396 <!-- 6000XP #1 -->
1397 <g transform="translate(200.46839 115.096033) scale(0.08 -0.08)">
1398 <use xlink:href="#DejaVuSans-36"/>
1399 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1400 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1401 <use xlink:href="#DejaVuSans-30" transform="translate(190.869141 0)"/>
1402 <use xlink:href="#DejaVuSans-58" transform="translate(254.492188 0)"/>
1403 <use xlink:href="#DejaVuSans-50" transform="translate(322.998047 0)"/>
1404 <use xlink:href="#DejaVuSans-20" transform="translate(383.300781 0)"/>
1405 <use xlink:href="#DejaVuSans-23" transform="translate(415.087891 0)"/>
1406 <use xlink:href="#DejaVuSans-31" transform="translate(498.876953 0)"/>
1407 </g>
1408 <!-- MPPT2 -->
1409 <g transform="translate(209.705265 122.838533) scale(0.08 -0.08)">
1410 <use xlink:href="#DejaVuSans-4d"/>
1411 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1412 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1413 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1414 <use xlink:href="#DejaVuSans-32" transform="translate(267.96875 0)"/>
1415 </g>
1416 </g>
1417 <g id="text_11">
1418 <!-- String 3 -->
1419 <g transform="translate(30.754342 196.384526) scale(0.09 -0.09)">
1420 <use xlink:href="#DejaVuSans-53"/>
1421 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
1422 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
1423 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
1424 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
1425 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
1426 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
1427 <use xlink:href="#DejaVuSans-33" transform="translate(330.224609 0)"/>
1428 </g>
1429 <!-- 7S (+) -->
1430 <g transform="translate(34.044967 205.094838) scale(0.09 -0.09)">
1431 <use xlink:href="#DejaVuSans-37"/>
1432 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
1433 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
1434 <use xlink:href="#DejaVuSans-28" transform="translate(158.886719 0)"/>
1435 <use xlink:href="#DejaVuSans-2b" transform="translate(197.900391 0)"/>
1436 <use xlink:href="#DejaVuSans-29" transform="translate(281.689453 0)"/>
1437 </g>
1438 </g>
1439 <g id="text_12">
1440 <!-- 7× Waaree 575W -->
1441 <g transform="translate(97.016346 158.816075) scale(0.08 -0.08)">
1442 <use xlink:href="#DejaVuSans-37"/>
1443 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
1444 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
1445 <use xlink:href="#DejaVuSans-57" transform="translate(179.199219 0)"/>
1446 <use xlink:href="#DejaVuSans-61" transform="translate(271.701172 0)"/>
1447 <use xlink:href="#DejaVuSans-61" transform="translate(332.980469 0)"/>
1448 <use xlink:href="#DejaVuSans-72" transform="translate(394.259766 0)"/>
1449 <use xlink:href="#DejaVuSans-65" transform="translate(433.123047 0)"/>
1450 <use xlink:href="#DejaVuSans-65" transform="translate(494.646484 0)"/>
1451 <use xlink:href="#DejaVuSans-20" transform="translate(556.169922 0)"/>
1452 <use xlink:href="#DejaVuSans-35" transform="translate(587.957031 0)"/>
1453 <use xlink:href="#DejaVuSans-37" transform="translate(651.580078 0)"/>
1454 <use xlink:href="#DejaVuSans-35" transform="translate(715.203125 0)"/>
1455 <use xlink:href="#DejaVuSans-57" transform="translate(778.826172 0)"/>
1456 </g>
1457 </g>
1458 <g id="text_13">
1459 <!-- 8AWG -->
1460 <g transform="translate(158.685329 196.592495) scale(0.08 -0.08)">
1461 <use xlink:href="#DejaVuSans-38"/>
1462 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1463 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1464 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1465 </g>
1466 </g>
1467 <g id="text_14">
1468 <!-- Vmp≈307V -->
1469 <g transform="translate(171.291356 211.530503) scale(0.08 -0.08)">
1470 <use xlink:href="#DejaVuSans-56"/>
1471 <use xlink:href="#DejaVuSans-6d" transform="translate(68.408203 0)"/>
1472 <use xlink:href="#DejaVuSans-70" transform="translate(165.820312 0)"/>
1473 <use xlink:href="#DejaVuSans-2248" transform="translate(229.296875 0)"/>
1474 <use xlink:href="#DejaVuSans-33" transform="translate(313.085938 0)"/>
1475 <use xlink:href="#DejaVuSans-30" transform="translate(376.708984 0)"/>
1476 <use xlink:href="#DejaVuSans-37" transform="translate(440.332031 0)"/>
1477 <use xlink:href="#DejaVuSans-56" transform="translate(503.955078 0)"/>
1478 </g>
1479 <!-- coldVoc 430.1V -->
1480 <g transform="translate(163.356981 219.273003) scale(0.08 -0.08)">
1481 <use xlink:href="#DejaVuSans-63"/>
1482 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1483 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1484 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1485 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
1486 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
1487 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
1488 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
1489 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
1490 <use xlink:href="#DejaVuSans-33" transform="translate(479.652344 0)"/>
1491 <use xlink:href="#DejaVuSans-30" transform="translate(543.275391 0)"/>
1492 <use xlink:href="#DejaVuSans-2e" transform="translate(606.898438 0)"/>
1493 <use xlink:href="#DejaVuSans-31" transform="translate(638.685547 0)"/>
1494 <use xlink:href="#DejaVuSans-56" transform="translate(702.308594 0)"/>
1495 </g>
1496 </g>
1497 <g id="text_15">
1498 <!-- 6000XP #2 -->
1499 <g transform="translate(200.46839 179.855609) scale(0.08 -0.08)">
1500 <use xlink:href="#DejaVuSans-36"/>
1501 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1502 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1503 <use xlink:href="#DejaVuSans-30" transform="translate(190.869141 0)"/>
1504 <use xlink:href="#DejaVuSans-58" transform="translate(254.492188 0)"/>
1505 <use xlink:href="#DejaVuSans-50" transform="translate(322.998047 0)"/>
1506 <use xlink:href="#DejaVuSans-20" transform="translate(383.300781 0)"/>
1507 <use xlink:href="#DejaVuSans-23" transform="translate(415.087891 0)"/>
1508 <use xlink:href="#DejaVuSans-32" transform="translate(498.876953 0)"/>
1509 </g>
1510 <!-- MPPT1 -->
1511 <g transform="translate(209.705265 187.598109) scale(0.08 -0.08)">
1512 <use xlink:href="#DejaVuSans-4d"/>
1513 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1514 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1515 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1516 <use xlink:href="#DejaVuSans-31" transform="translate(267.96875 0)"/>
1517 </g>
1518 </g>
1519 <g id="text_16">
1520 <!-- String 4 -->
1521 <g transform="translate(30.754342 261.144102) scale(0.09 -0.09)">
1522 <use xlink:href="#DejaVuSans-53"/>
1523 <use xlink:href="#DejaVuSans-74" transform="translate(63.476562 0)"/>
1524 <use xlink:href="#DejaVuSans-72" transform="translate(102.685547 0)"/>
1525 <use xlink:href="#DejaVuSans-69" transform="translate(143.798828 0)"/>
1526 <use xlink:href="#DejaVuSans-6e" transform="translate(171.582031 0)"/>
1527 <use xlink:href="#DejaVuSans-67" transform="translate(234.960938 0)"/>
1528 <use xlink:href="#DejaVuSans-20" transform="translate(298.4375 0)"/>
1529 <use xlink:href="#DejaVuSans-34" transform="translate(330.224609 0)"/>
1530 </g>
1531 <!-- 7S (+) -->
1532 <g transform="translate(34.044967 269.854414) scale(0.09 -0.09)">
1533 <use xlink:href="#DejaVuSans-37"/>
1534 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
1535 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
1536 <use xlink:href="#DejaVuSans-28" transform="translate(158.886719 0)"/>
1537 <use xlink:href="#DejaVuSans-2b" transform="translate(197.900391 0)"/>
1538 <use xlink:href="#DejaVuSans-29" transform="translate(281.689453 0)"/>
1539 </g>
1540 </g>
1541 <g id="text_17">
1542 <!-- 7× Waaree 575W -->
1543 <g transform="translate(97.016346 223.575651) scale(0.08 -0.08)">
1544 <use xlink:href="#DejaVuSans-37"/>
1545 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
1546 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
1547 <use xlink:href="#DejaVuSans-57" transform="translate(179.199219 0)"/>
1548 <use xlink:href="#DejaVuSans-61" transform="translate(271.701172 0)"/>
1549 <use xlink:href="#DejaVuSans-61" transform="translate(332.980469 0)"/>
1550 <use xlink:href="#DejaVuSans-72" transform="translate(394.259766 0)"/>
1551 <use xlink:href="#DejaVuSans-65" transform="translate(433.123047 0)"/>
1552 <use xlink:href="#DejaVuSans-65" transform="translate(494.646484 0)"/>
1553 <use xlink:href="#DejaVuSans-20" transform="translate(556.169922 0)"/>
1554 <use xlink:href="#DejaVuSans-35" transform="translate(587.957031 0)"/>
1555 <use xlink:href="#DejaVuSans-37" transform="translate(651.580078 0)"/>
1556 <use xlink:href="#DejaVuSans-35" transform="translate(715.203125 0)"/>
1557 <use xlink:href="#DejaVuSans-57" transform="translate(778.826172 0)"/>
1558 </g>
1559 </g>
1560 <g id="text_18">
1561 <!-- 8AWG -->
1562 <g transform="translate(158.685329 261.35207) scale(0.08 -0.08)">
1563 <use xlink:href="#DejaVuSans-38"/>
1564 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1565 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1566 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1567 </g>
1568 </g>
1569 <g id="text_19">
1570 <!-- Vmp≈307V -->
1571 <g transform="translate(171.291356 276.290079) scale(0.08 -0.08)">
1572 <use xlink:href="#DejaVuSans-56"/>
1573 <use xlink:href="#DejaVuSans-6d" transform="translate(68.408203 0)"/>
1574 <use xlink:href="#DejaVuSans-70" transform="translate(165.820312 0)"/>
1575 <use xlink:href="#DejaVuSans-2248" transform="translate(229.296875 0)"/>
1576 <use xlink:href="#DejaVuSans-33" transform="translate(313.085938 0)"/>
1577 <use xlink:href="#DejaVuSans-30" transform="translate(376.708984 0)"/>
1578 <use xlink:href="#DejaVuSans-37" transform="translate(440.332031 0)"/>
1579 <use xlink:href="#DejaVuSans-56" transform="translate(503.955078 0)"/>
1580 </g>
1581 <!-- coldVoc 430.1V -->
1582 <g transform="translate(163.356981 284.032579) scale(0.08 -0.08)">
1583 <use xlink:href="#DejaVuSans-63"/>
1584 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
1585 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
1586 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
1587 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
1588 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
1589 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
1590 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
1591 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
1592 <use xlink:href="#DejaVuSans-33" transform="translate(479.652344 0)"/>
1593 <use xlink:href="#DejaVuSans-30" transform="translate(543.275391 0)"/>
1594 <use xlink:href="#DejaVuSans-2e" transform="translate(606.898438 0)"/>
1595 <use xlink:href="#DejaVuSans-31" transform="translate(638.685547 0)"/>
1596 <use xlink:href="#DejaVuSans-56" transform="translate(702.308594 0)"/>
1597 </g>
1598 </g>
1599 <g id="text_20">
1600 <!-- 6000XP #2 -->
1601 <g transform="translate(200.46839 244.615185) scale(0.08 -0.08)">
1602 <use xlink:href="#DejaVuSans-36"/>
1603 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1604 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1605 <use xlink:href="#DejaVuSans-30" transform="translate(190.869141 0)"/>
1606 <use xlink:href="#DejaVuSans-58" transform="translate(254.492188 0)"/>
1607 <use xlink:href="#DejaVuSans-50" transform="translate(322.998047 0)"/>
1608 <use xlink:href="#DejaVuSans-20" transform="translate(383.300781 0)"/>
1609 <use xlink:href="#DejaVuSans-23" transform="translate(415.087891 0)"/>
1610 <use xlink:href="#DejaVuSans-32" transform="translate(498.876953 0)"/>
1611 </g>
1612 <!-- MPPT2 -->
1613 <g transform="translate(209.705265 252.357685) scale(0.08 -0.08)">
1614 <use xlink:href="#DejaVuSans-4d"/>
1615 <use xlink:href="#DejaVuSans-50" transform="translate(86.279297 0)"/>
1616 <use xlink:href="#DejaVuSans-50" transform="translate(146.582031 0)"/>
1617 <use xlink:href="#DejaVuSans-54" transform="translate(206.884766 0)"/>
1618 <use xlink:href="#DejaVuSans-32" transform="translate(267.96875 0)"/>
1619 </g>
1620 </g>
1621 <g id="text_21">
1622 <!-- PATH-A DC STRINGS — 4× 7S, two strings per 6000XP -->
1623 <g transform="translate(34.724922 14.760213) scale(0.13 -0.13)">
1624 <defs>
1625 <path id="DejaVuSans-48" d="M 628 4666
1626L 1259 4666
1627L 1259 2753
1628L 3553 2753
1629L 3553 4666
1630L 4184 4666
1631L 4184 0
1632L 3553 0
1633L 3553 2222
1634L 1259 2222
1635L 1259 0
1636L 628 0
1637L 628 4666
1638z
1639" transform="scale(0.015625)"/>
1640 <path id="DejaVuSans-2d" d="M 313 2009
1641L 1997 2009
1642L 1997 1497
1643L 313 1497
1644L 313 2009
1645z
1646" transform="scale(0.015625)"/>
1647 <path id="DejaVuSans-44" d="M 1259 4147
1648L 1259 519
1649L 2022 519
1650Q 2988 519 3436 956
1651Q 3884 1394 3884 2338
1652Q 3884 3275 3436 3711
1653Q 2988 4147 2022 4147
1654L 1259 4147
1655z
1656M 628 4666
1657L 1925 4666
1658Q 3281 4666 3915 4102
1659Q 4550 3538 4550 2338
1660Q 4550 1131 3912 565
1661Q 3275 0 1925 0
1662L 628 0
1663L 628 4666
1664z
1665" transform="scale(0.015625)"/>
1666 <path id="DejaVuSans-43" d="M 4122 4306
1667L 4122 3641
1668Q 3803 3938 3442 4084
1669Q 3081 4231 2675 4231
1670Q 1875 4231 1450 3742
1671Q 1025 3253 1025 2328
1672Q 1025 1406 1450 917
1673Q 1875 428 2675 428
1674Q 3081 428 3442 575
1675Q 3803 722 4122 1019
1676L 4122 359
1677Q 3791 134 3420 21
1678Q 3050 -91 2638 -91
1679Q 1578 -91 968 557
1680Q 359 1206 359 2328
1681Q 359 3453 968 4101
1682Q 1578 4750 2638 4750
1683Q 3056 4750 3426 4639
1684Q 3797 4528 4122 4306
1685z
1686" transform="scale(0.015625)"/>
1687 <path id="DejaVuSans-52" d="M 2841 2188
1688Q 3044 2119 3236 1894
1689Q 3428 1669 3622 1275
1690L 4263 0
1691L 3584 0
1692L 2988 1197
1693Q 2756 1666 2539 1819
1694Q 2322 1972 1947 1972
1695L 1259 1972
1696L 1259 0
1697L 628 0
1698L 628 4666
1699L 2053 4666
1700Q 2853 4666 3247 4331
1701Q 3641 3997 3641 3322
1702Q 3641 2881 3436 2590
1703Q 3231 2300 2841 2188
1704z
1705M 1259 4147
1706L 1259 2491
1707L 2053 2491
1708Q 2509 2491 2742 2702
1709Q 2975 2913 2975 3322
1710Q 2975 3731 2742 3939
1711Q 2509 4147 2053 4147
1712L 1259 4147
1713z
1714" transform="scale(0.015625)"/>
1715 <path id="DejaVuSans-49" d="M 628 4666
1716L 1259 4666
1717L 1259 0
1718L 628 0
1719L 628 4666
1720z
1721" transform="scale(0.015625)"/>
1722 <path id="DejaVuSans-4e" d="M 628 4666
1723L 1478 4666
1724L 3547 763
1725L 3547 4666
1726L 4159 4666
1727L 4159 0
1728L 3309 0
1729L 1241 3903
1730L 1241 0
1731L 628 0
1732L 628 4666
1733z
1734" transform="scale(0.015625)"/>
1735 <path id="DejaVuSans-2014" d="M 313 1978
1736L 6088 1978
1737L 6088 1528
1738L 313 1528
1739L 313 1978
1740z
1741" transform="scale(0.015625)"/>
1742 <path id="DejaVuSans-2c" d="M 750 794
1743L 1409 794
1744L 1409 256
1745L 897 -744
1746L 494 -744
1747L 750 256
1748L 750 794
1749z
1750" transform="scale(0.015625)"/>
1751 <path id="DejaVuSans-77" d="M 269 3500
1752L 844 3500
1753L 1563 769
1754L 2278 3500
1755L 2956 3500
1756L 3675 769
1757L 4391 3500
1758L 4966 3500
1759L 4050 0
1760L 3372 0
1761L 2619 2869
1762L 1863 0
1763L 1184 0
1764L 269 3500
1765z
1766" transform="scale(0.015625)"/>
1767 <path id="DejaVuSans-73" d="M 2834 3397
1768L 2834 2853
1769Q 2591 2978 2328 3040
1770Q 2066 3103 1784 3103
1771Q 1356 3103 1142 2972
1772Q 928 2841 928 2578
1773Q 928 2378 1081 2264
1774Q 1234 2150 1697 2047
1775L 1894 2003
1776Q 2506 1872 2764 1633
1777Q 3022 1394 3022 966
1778Q 3022 478 2636 193
1779Q 2250 -91 1575 -91
1780Q 1294 -91 989 -36
1781Q 684 19 347 128
1782L 347 722
1783Q 666 556 975 473
1784Q 1284 391 1588 391
1785Q 1994 391 2212 530
1786Q 2431 669 2431 922
1787Q 2431 1156 2273 1281
1788Q 2116 1406 1581 1522
1789L 1381 1569
1790Q 847 1681 609 1914
1791Q 372 2147 372 2553
1792Q 372 3047 722 3315
1793Q 1072 3584 1716 3584
1794Q 2034 3584 2315 3537
1795Q 2597 3491 2834 3397
1796z
1797" transform="scale(0.015625)"/>
1798 </defs>
1799 <use xlink:href="#DejaVuSans-50"/>
1800 <use xlink:href="#DejaVuSans-41" transform="translate(53.927734 0)"/>
1801 <use xlink:href="#DejaVuSans-54" transform="translate(114.585938 0)"/>
1802 <use xlink:href="#DejaVuSans-48" transform="translate(175.669922 0)"/>
1803 <use xlink:href="#DejaVuSans-2d" transform="translate(250.865234 0)"/>
1804 <use xlink:href="#DejaVuSans-41" transform="translate(284.699219 0)"/>
1805 <use xlink:href="#DejaVuSans-20" transform="translate(353.107422 0)"/>
1806 <use xlink:href="#DejaVuSans-44" transform="translate(384.894531 0)"/>
1807 <use xlink:href="#DejaVuSans-43" transform="translate(461.896484 0)"/>
1808 <use xlink:href="#DejaVuSans-20" transform="translate(531.720703 0)"/>
1809 <use xlink:href="#DejaVuSans-53" transform="translate(563.507812 0)"/>
1810 <use xlink:href="#DejaVuSans-54" transform="translate(626.984375 0)"/>
1811 <use xlink:href="#DejaVuSans-52" transform="translate(688.068359 0)"/>
1812 <use xlink:href="#DejaVuSans-49" transform="translate(757.550781 0)"/>
1813 <use xlink:href="#DejaVuSans-4e" transform="translate(787.042969 0)"/>
1814 <use xlink:href="#DejaVuSans-47" transform="translate(861.847656 0)"/>
1815 <use xlink:href="#DejaVuSans-53" transform="translate(939.337891 0)"/>
1816 <use xlink:href="#DejaVuSans-20" transform="translate(1002.814453 0)"/>
1817 <use xlink:href="#DejaVuSans-2014" transform="translate(1034.601562 0)"/>
1818 <use xlink:href="#DejaVuSans-20" transform="translate(1134.601562 0)"/>
1819 <use xlink:href="#DejaVuSans-34" transform="translate(1166.388672 0)"/>
1820 <use xlink:href="#DejaVuSans-d7" transform="translate(1230.011719 0)"/>
1821 <use xlink:href="#DejaVuSans-20" transform="translate(1313.800781 0)"/>
1822 <use xlink:href="#DejaVuSans-37" transform="translate(1345.587891 0)"/>
1823 <use xlink:href="#DejaVuSans-53" transform="translate(1409.210938 0)"/>
1824 <use xlink:href="#DejaVuSans-2c" transform="translate(1472.6875 0)"/>
1825 <use xlink:href="#DejaVuSans-20" transform="translate(1504.474609 0)"/>
1826 <use xlink:href="#DejaVuSans-74" transform="translate(1536.261719 0)"/>
1827 <use xlink:href="#DejaVuSans-77" transform="translate(1575.470703 0)"/>
1828 <use xlink:href="#DejaVuSans-6f" transform="translate(1657.257812 0)"/>
1829 <use xlink:href="#DejaVuSans-20" transform="translate(1718.439453 0)"/>
1830 <use xlink:href="#DejaVuSans-73" transform="translate(1750.226562 0)"/>
1831 <use xlink:href="#DejaVuSans-74" transform="translate(1802.326172 0)"/>
1832 <use xlink:href="#DejaVuSans-72" transform="translate(1841.535156 0)"/>
1833 <use xlink:href="#DejaVuSans-69" transform="translate(1882.648438 0)"/>
1834 <use xlink:href="#DejaVuSans-6e" transform="translate(1910.431641 0)"/>
1835 <use xlink:href="#DejaVuSans-67" transform="translate(1973.810547 0)"/>
1836 <use xlink:href="#DejaVuSans-73" transform="translate(2037.287109 0)"/>
1837 <use xlink:href="#DejaVuSans-20" transform="translate(2089.386719 0)"/>
1838 <use xlink:href="#DejaVuSans-70" transform="translate(2121.173828 0)"/>
1839 <use xlink:href="#DejaVuSans-65" transform="translate(2184.650391 0)"/>
1840 <use xlink:href="#DejaVuSans-72" transform="translate(2246.173828 0)"/>
1841 <use xlink:href="#DejaVuSans-20" transform="translate(2287.287109 0)"/>
1842 <use xlink:href="#DejaVuSans-36" transform="translate(2319.074219 0)"/>
1843 <use xlink:href="#DejaVuSans-30" transform="translate(2382.697266 0)"/>
1844 <use xlink:href="#DejaVuSans-30" transform="translate(2446.320312 0)"/>
1845 <use xlink:href="#DejaVuSans-30" transform="translate(2509.943359 0)"/>
1846 <use xlink:href="#DejaVuSans-58" transform="translate(2573.566406 0)"/>
1847 <use xlink:href="#DejaVuSans-50" transform="translate(2642.072266 0)"/>
1848 </g>
1849 </g>
1850 <g id="text_22">
1851 <!-- #1: MPPT1+MPPT2 (7S+7S) · #2: MPPT1+MPPT2 (7S+7S) · 28 modules · 16100W DC -->
1852 <g transform="translate(39.06125 340.502663) scale(0.08 -0.08)">
1853 <defs>
1854 <path id="DejaVuSans-3a" d="M 750 794
1855L 1409 794
1856L 1409 0
1857L 750 0
1858L 750 794
1859z
1860M 750 3309
1861L 1409 3309
1862L 1409 2516
1863L 750 2516
1864L 750 3309
1865z
1866" transform="scale(0.015625)"/>
1867 <path id="DejaVuSans-b7" d="M 684 2619
1868L 1344 2619
1869L 1344 1825
1870L 684 1825
1871L 684 2619
1872z
1873" transform="scale(0.015625)"/>
1874 <path id="DejaVuSans-75" d="M 544 1381
1875L 544 3500
1876L 1119 3500
1877L 1119 1403
1878Q 1119 906 1312 657
1879Q 1506 409 1894 409
1880Q 2359 409 2629 706
1881Q 2900 1003 2900 1516
1882L 2900 3500
1883L 3475 3500
1884L 3475 0
1885L 2900 0
1886L 2900 538
1887Q 2691 219 2414 64
1888Q 2138 -91 1772 -91
1889Q 1169 -91 856 284
1890Q 544 659 544 1381
1891z
1892M 1991 3584
1893L 1991 3584
1894z
1895" transform="scale(0.015625)"/>
1896 </defs>
1897 <use xlink:href="#DejaVuSans-23"/>
1898 <use xlink:href="#DejaVuSans-31" transform="translate(83.789062 0)"/>
1899 <use xlink:href="#DejaVuSans-3a" transform="translate(147.412109 0)"/>
1900 <use xlink:href="#DejaVuSans-20" transform="translate(181.103516 0)"/>
1901 <use xlink:href="#DejaVuSans-4d" transform="translate(212.890625 0)"/>
1902 <use xlink:href="#DejaVuSans-50" transform="translate(299.169922 0)"/>
1903 <use xlink:href="#DejaVuSans-50" transform="translate(359.472656 0)"/>
1904 <use xlink:href="#DejaVuSans-54" transform="translate(419.775391 0)"/>
1905 <use xlink:href="#DejaVuSans-31" transform="translate(480.859375 0)"/>
1906 <use xlink:href="#DejaVuSans-2b" transform="translate(544.482422 0)"/>
1907 <use xlink:href="#DejaVuSans-4d" transform="translate(628.271484 0)"/>
1908 <use xlink:href="#DejaVuSans-50" transform="translate(714.550781 0)"/>
1909 <use xlink:href="#DejaVuSans-50" transform="translate(774.853516 0)"/>
1910 <use xlink:href="#DejaVuSans-54" transform="translate(835.15625 0)"/>
1911 <use xlink:href="#DejaVuSans-32" transform="translate(896.240234 0)"/>
1912 <use xlink:href="#DejaVuSans-20" transform="translate(959.863281 0)"/>
1913 <use xlink:href="#DejaVuSans-28" transform="translate(991.650391 0)"/>
1914 <use xlink:href="#DejaVuSans-37" transform="translate(1030.664062 0)"/>
1915 <use xlink:href="#DejaVuSans-53" transform="translate(1094.287109 0)"/>
1916 <use xlink:href="#DejaVuSans-2b" transform="translate(1157.763672 0)"/>
1917 <use xlink:href="#DejaVuSans-37" transform="translate(1241.552734 0)"/>
1918 <use xlink:href="#DejaVuSans-53" transform="translate(1305.175781 0)"/>
1919 <use xlink:href="#DejaVuSans-29" transform="translate(1368.652344 0)"/>
1920 <use xlink:href="#DejaVuSans-20" transform="translate(1407.666016 0)"/>
1921 <use xlink:href="#DejaVuSans-b7" transform="translate(1439.453125 0)"/>
1922 <use xlink:href="#DejaVuSans-20" transform="translate(1471.240234 0)"/>
1923 <use xlink:href="#DejaVuSans-23" transform="translate(1503.027344 0)"/>
1924 <use xlink:href="#DejaVuSans-32" transform="translate(1586.816406 0)"/>
1925 <use xlink:href="#DejaVuSans-3a" transform="translate(1650.439453 0)"/>
1926 <use xlink:href="#DejaVuSans-20" transform="translate(1684.130859 0)"/>
1927 <use xlink:href="#DejaVuSans-4d" transform="translate(1715.917969 0)"/>
1928 <use xlink:href="#DejaVuSans-50" transform="translate(1802.197266 0)"/>
1929 <use xlink:href="#DejaVuSans-50" transform="translate(1862.5 0)"/>
1930 <use xlink:href="#DejaVuSans-54" transform="translate(1922.802734 0)"/>
1931 <use xlink:href="#DejaVuSans-31" transform="translate(1983.886719 0)"/>
1932 <use xlink:href="#DejaVuSans-2b" transform="translate(2047.509766 0)"/>
1933 <use xlink:href="#DejaVuSans-4d" transform="translate(2131.298828 0)"/>
1934 <use xlink:href="#DejaVuSans-50" transform="translate(2217.578125 0)"/>
1935 <use xlink:href="#DejaVuSans-50" transform="translate(2277.880859 0)"/>
1936 <use xlink:href="#DejaVuSans-54" transform="translate(2338.183594 0)"/>
1937 <use xlink:href="#DejaVuSans-32" transform="translate(2399.267578 0)"/>
1938 <use xlink:href="#DejaVuSans-20" transform="translate(2462.890625 0)"/>
1939 <use xlink:href="#DejaVuSans-28" transform="translate(2494.677734 0)"/>
1940 <use xlink:href="#DejaVuSans-37" transform="translate(2533.691406 0)"/>
1941 <use xlink:href="#DejaVuSans-53" transform="translate(2597.314453 0)"/>
1942 <use xlink:href="#DejaVuSans-2b" transform="translate(2660.791016 0)"/>
1943 <use xlink:href="#DejaVuSans-37" transform="translate(2744.580078 0)"/>
1944 <use xlink:href="#DejaVuSans-53" transform="translate(2808.203125 0)"/>
1945 <use xlink:href="#DejaVuSans-29" transform="translate(2871.679688 0)"/>
1946 <use xlink:href="#DejaVuSans-20" transform="translate(2910.693359 0)"/>
1947 <use xlink:href="#DejaVuSans-b7" transform="translate(2942.480469 0)"/>
1948 <use xlink:href="#DejaVuSans-20" transform="translate(2974.267578 0)"/>
1949 <use xlink:href="#DejaVuSans-32" transform="translate(3006.054688 0)"/>
1950 <use xlink:href="#DejaVuSans-38" transform="translate(3069.677734 0)"/>
1951 <use xlink:href="#DejaVuSans-20" transform="translate(3133.300781 0)"/>
1952 <use xlink:href="#DejaVuSans-6d" transform="translate(3165.087891 0)"/>
1953 <use xlink:href="#DejaVuSans-6f" transform="translate(3262.5 0)"/>
1954 <use xlink:href="#DejaVuSans-64" transform="translate(3323.681641 0)"/>
1955 <use xlink:href="#DejaVuSans-75" transform="translate(3387.158203 0)"/>
1956 <use xlink:href="#DejaVuSans-6c" transform="translate(3450.537109 0)"/>
1957 <use xlink:href="#DejaVuSans-65" transform="translate(3478.320312 0)"/>
1958 <use xlink:href="#DejaVuSans-73" transform="translate(3539.84375 0)"/>
1959 <use xlink:href="#DejaVuSans-20" transform="translate(3591.943359 0)"/>
1960 <use xlink:href="#DejaVuSans-b7" transform="translate(3623.730469 0)"/>
1961 <use xlink:href="#DejaVuSans-20" transform="translate(3655.517578 0)"/>
1962 <use xlink:href="#DejaVuSans-31" transform="translate(3687.304688 0)"/>
1963 <use xlink:href="#DejaVuSans-36" transform="translate(3750.927734 0)"/>
1964 <use xlink:href="#DejaVuSans-31" transform="translate(3814.550781 0)"/>
1965 <use xlink:href="#DejaVuSans-30" transform="translate(3878.173828 0)"/>
1966 <use xlink:href="#DejaVuSans-30" transform="translate(3941.796875 0)"/>
1967 <use xlink:href="#DejaVuSans-57" transform="translate(4005.419922 0)"/>
1968 <use xlink:href="#DejaVuSans-20" transform="translate(4104.296875 0)"/>
1969 <use xlink:href="#DejaVuSans-44" transform="translate(4136.083984 0)"/>
1970 <use xlink:href="#DejaVuSans-43" transform="translate(4213.085938 0)"/>
1971 </g>
1972 <!-- 7S cold Voc 430.1V ≤ 480V design / 500V abs · 1 string/MPPT → NO source fuse · 3 panels held as spares -->
1973 <g transform="translate(0 348.245163) scale(0.08 -0.08)">
1974 <defs>
1975 <path id="DejaVuSans-2264" d="M 4684 3175
1976L 1684 2309
1977L 4684 1453
1978L 4684 897
1979L 678 2047
1980L 678 2578
1981L 4684 3725
1982L 4684 3175
1983z
1984M 678 531
1985L 4684 531
1986L 4684 0
1987L 678 0
1988L 678 531
1989z
1990" transform="scale(0.015625)"/>
1991 <path id="DejaVuSans-2f" d="M 1625 4666
1992L 2156 4666
1993L 531 -594
1994L 0 -594
1995L 1625 4666
1996z
1997" transform="scale(0.015625)"/>
1998 <path id="DejaVuSans-62" d="M 3116 1747
1999Q 3116 2381 2855 2742
2000Q 2594 3103 2138 3103
2001Q 1681 3103 1420 2742
2002Q 1159 2381 1159 1747
2003Q 1159 1113 1420 752
2004Q 1681 391 2138 391
2005Q 2594 391 2855 752
2006Q 3116 1113 3116 1747
2007z
2008M 1159 2969
2009Q 1341 3281 1617 3432
2010Q 1894 3584 2278 3584
2011Q 2916 3584 3314 3078
2012Q 3713 2572 3713 1747
2013Q 3713 922 3314 415
2014Q 2916 -91 2278 -91
2015Q 1894 -91 1617 61
2016Q 1341 213 1159 525
2017L 1159 0
2018L 581 0
2019L 581 4863
2020L 1159 4863
2021L 1159 2969
2022z
2023" transform="scale(0.015625)"/>
2024 <path id="DejaVuSans-2192" d="M 5050 2147
2025L 5050 1866
2026L 3822 638
2027L 3447 1013
2028L 4175 1741
2029L 366 1741
2030L 366 2272
2031L 4175 2272
2032L 3447 3000
2033L 3822 3375
2034L 5050 2147
2035z
2036" transform="scale(0.015625)"/>
2037 <path id="DejaVuSans-4f" d="M 2522 4238
2038Q 1834 4238 1429 3725
2039Q 1025 3213 1025 2328
2040Q 1025 1447 1429 934
2041Q 1834 422 2522 422
2042Q 3209 422 3611 934
2043Q 4013 1447 4013 2328
2044Q 4013 3213 3611 3725
2045Q 3209 4238 2522 4238
2046z
2047M 2522 4750
2048Q 3503 4750 4090 4092
2049Q 4678 3434 4678 2328
2050Q 4678 1225 4090 567
2051Q 3503 -91 2522 -91
2052Q 1538 -91 948 565
2053Q 359 1222 359 2328
2054Q 359 3434 948 4092
2055Q 1538 4750 2522 4750
2056z
2057" transform="scale(0.015625)"/>
2058 <path id="DejaVuSans-66" d="M 2375 4863
2059L 2375 4384
2060L 1825 4384
2061Q 1516 4384 1395 4259
2062Q 1275 4134 1275 3809
2063L 1275 3500
2064L 2222 3500
2065L 2222 3053
2066L 1275 3053
2067L 1275 0
2068L 697 0
2069L 697 3053
2070L 147 3053
2071L 147 3500
2072L 697 3500
2073L 697 3744
2074Q 697 4328 969 4595
2075Q 1241 4863 1831 4863
2076L 2375 4863
2077z
2078" transform="scale(0.015625)"/>
2079 <path id="DejaVuSans-68" d="M 3513 2113
2080L 3513 0
2081L 2938 0
2082L 2938 2094
2083Q 2938 2591 2744 2837
2084Q 2550 3084 2163 3084
2085Q 1697 3084 1428 2787
2086Q 1159 2491 1159 1978
2087L 1159 0
2088L 581 0
2089L 581 4863
2090L 1159 4863
2091L 1159 2956
2092Q 1366 3272 1645 3428
2093Q 1925 3584 2291 3584
2094Q 2894 3584 3203 3211
2095Q 3513 2838 3513 2113
2096z
2097" transform="scale(0.015625)"/>
2098 </defs>
2099 <use xlink:href="#DejaVuSans-37"/>
2100 <use xlink:href="#DejaVuSans-53" transform="translate(63.623047 0)"/>
2101 <use xlink:href="#DejaVuSans-20" transform="translate(127.099609 0)"/>
2102 <use xlink:href="#DejaVuSans-63" transform="translate(158.886719 0)"/>
2103 <use xlink:href="#DejaVuSans-6f" transform="translate(213.867188 0)"/>
2104 <use xlink:href="#DejaVuSans-6c" transform="translate(275.048828 0)"/>
2105 <use xlink:href="#DejaVuSans-64" transform="translate(302.832031 0)"/>
2106 <use xlink:href="#DejaVuSans-20" transform="translate(366.308594 0)"/>
2107 <use xlink:href="#DejaVuSans-56" transform="translate(398.095703 0)"/>
2108 <use xlink:href="#DejaVuSans-6f" transform="translate(458.753906 0)"/>
2109 <use xlink:href="#DejaVuSans-63" transform="translate(519.935547 0)"/>
2110 <use xlink:href="#DejaVuSans-20" transform="translate(574.916016 0)"/>
2111 <use xlink:href="#DejaVuSans-34" transform="translate(606.703125 0)"/>
2112 <use xlink:href="#DejaVuSans-33" transform="translate(670.326172 0)"/>
2113 <use xlink:href="#DejaVuSans-30" transform="translate(733.949219 0)"/>
2114 <use xlink:href="#DejaVuSans-2e" transform="translate(797.572266 0)"/>
2115 <use xlink:href="#DejaVuSans-31" transform="translate(829.359375 0)"/>
2116 <use xlink:href="#DejaVuSans-56" transform="translate(892.982422 0)"/>
2117 <use xlink:href="#DejaVuSans-20" transform="translate(961.390625 0)"/>
2118 <use xlink:href="#DejaVuSans-2264" transform="translate(993.177734 0)"/>
2119 <use xlink:href="#DejaVuSans-20" transform="translate(1076.966797 0)"/>
2120 <use xlink:href="#DejaVuSans-34" transform="translate(1108.753906 0)"/>
2121 <use xlink:href="#DejaVuSans-38" transform="translate(1172.376953 0)"/>
2122 <use xlink:href="#DejaVuSans-30" transform="translate(1236 0)"/>
2123 <use xlink:href="#DejaVuSans-56" transform="translate(1299.623047 0)"/>
2124 <use xlink:href="#DejaVuSans-20" transform="translate(1368.03125 0)"/>
2125 <use xlink:href="#DejaVuSans-64" transform="translate(1399.818359 0)"/>
2126 <use xlink:href="#DejaVuSans-65" transform="translate(1463.294922 0)"/>
2127 <use xlink:href="#DejaVuSans-73" transform="translate(1524.818359 0)"/>
2128 <use xlink:href="#DejaVuSans-69" transform="translate(1576.917969 0)"/>
2129 <use xlink:href="#DejaVuSans-67" transform="translate(1604.701172 0)"/>
2130 <use xlink:href="#DejaVuSans-6e" transform="translate(1668.177734 0)"/>
2131 <use xlink:href="#DejaVuSans-20" transform="translate(1731.556641 0)"/>
2132 <use xlink:href="#DejaVuSans-2f" transform="translate(1763.34375 0)"/>
2133 <use xlink:href="#DejaVuSans-20" transform="translate(1797.035156 0)"/>
2134 <use xlink:href="#DejaVuSans-35" transform="translate(1828.822266 0)"/>
2135 <use xlink:href="#DejaVuSans-30" transform="translate(1892.445312 0)"/>
2136 <use xlink:href="#DejaVuSans-30" transform="translate(1956.068359 0)"/>
2137 <use xlink:href="#DejaVuSans-56" transform="translate(2019.691406 0)"/>
2138 <use xlink:href="#DejaVuSans-20" transform="translate(2088.099609 0)"/>
2139 <use xlink:href="#DejaVuSans-61" transform="translate(2119.886719 0)"/>
2140 <use xlink:href="#DejaVuSans-62" transform="translate(2181.166016 0)"/>
2141 <use xlink:href="#DejaVuSans-73" transform="translate(2244.642578 0)"/>
2142 <use xlink:href="#DejaVuSans-20" transform="translate(2296.742188 0)"/>
2143 <use xlink:href="#DejaVuSans-b7" transform="translate(2328.529297 0)"/>
2144 <use xlink:href="#DejaVuSans-20" transform="translate(2360.316406 0)"/>
2145 <use xlink:href="#DejaVuSans-31" transform="translate(2392.103516 0)"/>
2146 <use xlink:href="#DejaVuSans-20" transform="translate(2455.726562 0)"/>
2147 <use xlink:href="#DejaVuSans-73" transform="translate(2487.513672 0)"/>
2148 <use xlink:href="#DejaVuSans-74" transform="translate(2539.613281 0)"/>
2149 <use xlink:href="#DejaVuSans-72" transform="translate(2578.822266 0)"/>
2150 <use xlink:href="#DejaVuSans-69" transform="translate(2619.935547 0)"/>
2151 <use xlink:href="#DejaVuSans-6e" transform="translate(2647.71875 0)"/>
2152 <use xlink:href="#DejaVuSans-67" transform="translate(2711.097656 0)"/>
2153 <use xlink:href="#DejaVuSans-2f" transform="translate(2774.574219 0)"/>
2154 <use xlink:href="#DejaVuSans-4d" transform="translate(2808.265625 0)"/>
2155 <use xlink:href="#DejaVuSans-50" transform="translate(2894.544922 0)"/>
2156 <use xlink:href="#DejaVuSans-50" transform="translate(2954.847656 0)"/>
2157 <use xlink:href="#DejaVuSans-54" transform="translate(3015.150391 0)"/>
2158 <use xlink:href="#DejaVuSans-20" transform="translate(3076.234375 0)"/>
2159 <use xlink:href="#DejaVuSans-2192" transform="translate(3108.021484 0)"/>
2160 <use xlink:href="#DejaVuSans-20" transform="translate(3191.810547 0)"/>
2161 <use xlink:href="#DejaVuSans-4e" transform="translate(3223.597656 0)"/>
2162 <use xlink:href="#DejaVuSans-4f" transform="translate(3298.402344 0)"/>
2163 <use xlink:href="#DejaVuSans-20" transform="translate(3377.113281 0)"/>
2164 <use xlink:href="#DejaVuSans-73" transform="translate(3408.900391 0)"/>
2165 <use xlink:href="#DejaVuSans-6f" transform="translate(3461 0)"/>
2166 <use xlink:href="#DejaVuSans-75" transform="translate(3522.181641 0)"/>
2167 <use xlink:href="#DejaVuSans-72" transform="translate(3585.560547 0)"/>
2168 <use xlink:href="#DejaVuSans-63" transform="translate(3624.423828 0)"/>
2169 <use xlink:href="#DejaVuSans-65" transform="translate(3679.404297 0)"/>
2170 <use xlink:href="#DejaVuSans-20" transform="translate(3740.927734 0)"/>
2171 <use xlink:href="#DejaVuSans-66" transform="translate(3772.714844 0)"/>
2172 <use xlink:href="#DejaVuSans-75" transform="translate(3807.919922 0)"/>
2173 <use xlink:href="#DejaVuSans-73" transform="translate(3871.298828 0)"/>
2174 <use xlink:href="#DejaVuSans-65" transform="translate(3923.398438 0)"/>
2175 <use xlink:href="#DejaVuSans-20" transform="translate(3984.921875 0)"/>
2176 <use xlink:href="#DejaVuSans-b7" transform="translate(4016.708984 0)"/>
2177 <use xlink:href="#DejaVuSans-20" transform="translate(4048.496094 0)"/>
2178 <use xlink:href="#DejaVuSans-33" transform="translate(4080.283203 0)"/>
2179 <use xlink:href="#DejaVuSans-20" transform="translate(4143.90625 0)"/>
2180 <use xlink:href="#DejaVuSans-70" transform="translate(4175.693359 0)"/>
2181 <use xlink:href="#DejaVuSans-61" transform="translate(4239.169922 0)"/>
2182 <use xlink:href="#DejaVuSans-6e" transform="translate(4300.449219 0)"/>
2183 <use xlink:href="#DejaVuSans-65" transform="translate(4363.828125 0)"/>
2184 <use xlink:href="#DejaVuSans-6c" transform="translate(4425.351562 0)"/>
2185 <use xlink:href="#DejaVuSans-73" transform="translate(4453.134766 0)"/>
2186 <use xlink:href="#DejaVuSans-20" transform="translate(4505.234375 0)"/>
2187 <use xlink:href="#DejaVuSans-68" transform="translate(4537.021484 0)"/>
2188 <use xlink:href="#DejaVuSans-65" transform="translate(4600.400391 0)"/>
2189 <use xlink:href="#DejaVuSans-6c" transform="translate(4661.923828 0)"/>
2190 <use xlink:href="#DejaVuSans-64" transform="translate(4689.707031 0)"/>
2191 <use xlink:href="#DejaVuSans-20" transform="translate(4753.183594 0)"/>
2192 <use xlink:href="#DejaVuSans-61" transform="translate(4784.970703 0)"/>
2193 <use xlink:href="#DejaVuSans-73" transform="translate(4846.25 0)"/>
2194 <use xlink:href="#DejaVuSans-20" transform="translate(4898.349609 0)"/>
2195 <use xlink:href="#DejaVuSans-73" transform="translate(4930.136719 0)"/>
2196 <use xlink:href="#DejaVuSans-70" transform="translate(4982.236328 0)"/>
2197 <use xlink:href="#DejaVuSans-61" transform="translate(5045.712891 0)"/>
2198 <use xlink:href="#DejaVuSans-72" transform="translate(5106.992188 0)"/>
2199 <use xlink:href="#DejaVuSans-65" transform="translate(5145.855469 0)"/>
2200 <use xlink:href="#DejaVuSans-73" transform="translate(5207.378906 0)"/>
2201 </g>
2202 </g>
2203 </g>
2204 </g>
2205 <defs>
2206 <clipPath id="p7831103559">
2207 <rect x="18.13625" y="0" width="384.48" height="354.838503"/>
2208 </clipPath>
2209 </defs>
2210</svg>
artifacts/phase2/phase2-bom.md +43 -0
……@@ -0,0 +1,43 @@
1# Phase 2 — **Path-A** Bill of Materials (2× EG4 6000XP, 28 panels + 3 spares)
2
3Quantities **computed** (`11_pathA.py`, conductors via the validated `03` sizing); dollar figures are **labeled
4ESTIMATES** (Swarm §10 / Key Decisions / `09_phase2.py`). **Panels $0** (owned). Structure / shed / fire code out of scope.
5
6## Major equipment
7
8| Item | Qty | Computed basis | Cost (estimate) |
9|---|---|---|---|
10| **EG4 6000XP** inverter (added; keep the existing one → 2 total) | +1 | 2×6 kW AC / 2×8 kW PV / 2×140 A batt; 4 MPPT host 4×7S | **$1,549 + ~$150 parallel kit ≈ $1,699** |
11| **Docan S3 16 kWh** pack (added → 2 total) | +1 | 2 packs = 25.7 kWh usable; 126 A/pack ≤ 150 A BMS | **$1,758 – 2,000** |
12| **Waaree 575W** panels — **28 wired + 3 SPARES** | 31 (3 reserve) | 4×7S = 16.1 kW (`11`); spares replace failed Grade-B modules | **$0** (owned) |
13
14*No 6000XP resale (you keep the Phase-1 unit) — that's the ~$1,900 saving vs Path B's 18kPV swap.*
15
16## Balance of system (computed gauges/ratings; estimated $)
17
18| Item | Qty / spec | Computed basis (`11`) |
19|---|---|---|
20| PV wire **8 AWG** THWN-2/PV + **10 AWG** EGC | ~1,600 ft (4 strings × 2 × 200 ft) | 1.33 % @200 ft, 8 CCC; reuse Phase-1's ~800 ft |
21| AC per-unit **8 AWG** + **35 A 2-pole** breaker | 2 sets (one per 6000XP) | 25 A × 125 % → 35 A (= Phase-1) |
22| AC combined feeder **4 AWG** + **70 A 2-pole** | ~10 ft | 50 A × 125 % → 70 A; 240.4(D) |
23| **EG4 parallel kit / comms cabling** | 1 | combine 2× 6000XP outputs + sync |
24| **AC combiner busbar / small subpanel** | 1 | combine 2× 35 A → 70 A feed |
25| Battery **2/0** Cu (per-pack ×2 + per-inverter ×2) + **6 AWG** EGC | 4 short sets | 126 A each; busbar topology (no 400 kcmil needed) |
26| **DC busbar, 250 A** | 1 | 2 packs in + 2 inverters out |
27| **175 A Class-T** fuse + holder (DC, 20 kAIC) | **4** (2 packs + 2 inverter inputs) | per-pack + per-6000XP-input OCP |
28| **Bank disconnect 250 A DC** + per-pack/per-inverter disconnects | set | 690.15 / 706.30 / 480.7 |
29| 2nd PV conduit (Sched-40 PVC) | ~200 ft | split 8 CCC → 2 conduits |
30| Lugs, MC4, labels/placards | set | from computed ratings |
31
32## Cost roll-up (ESTIMATE)
33
34| Line | Estimate |
35|---|---|
36| +1 EG4 6000XP (with parallel kit) | $1,699 |
37| +1 Docan S3 pack | $1,758 – 2,000 |
38| 28 panels wired + 3 spares | $0 (owned) |
39| BoS (PV/AC/battery wire, parallel kit, busbar, 4× Class-T, 2×35 A + 70 A breakers, disconnects, conduit, lugs) | $800 – 1,500 |
40| **Total added (Path A)** | **≈ $4,260 – 5,200** |
41
42**≈ $1,900 less than Path B** (~$6,060–7,200). Path A keeps the existing 6000XP (no resale risk), adds an N+1 second inverter,
43and reserves 3 spare panels — trading ~9 % production and some August-peak margin for cost, redundancy, and spares.
artifacts/phase2/phase2-design.md +121 -0
……@@ -0,0 +1,121 @@
1# PRSM Off-Grid Solar — Phase 2 / **SELECTED BUILD: Path A** (2× EG4 6000XP)
2
3> **STATUS — SELECTED (owner decision, 2026-06-03).** This is the chosen final-state build. The **Path B (1× EG4 18kPV)**
4> design is **retained as the documented alternative** in [`../phase2-pathB/`](../phase2-pathB/phase2-design.md). §6 has the A-vs-B comparison.
5
6**Wires 28 of the 31 panels (4×7S, 16.1 kW)** to **two paralleled EG4 6000XP** inverters; the **3 remaining panels are held as
7field spares** (to replace a cracked/degraded Grade-B module without re-sourcing the SKU). Owner's other choices unchanged:
8**2× Docan S3**, battery adjacent (~10 ft), 200 ft trench. Off-grid · NEK Vermont · **NEC 2023**.
9**Date:** 2026-06-03 · Computed by `scripts/11_pathA.py` (conductors reuse the validated `03` sizing) + `scripts/10_compare_inverter_paths.py` (production). Every load-bearing number is script-computed and cited.
10
11> Reproduce: `~/.venvs/prsm-electrical/bin/python scripts/11_pathA.py` then `scripts/06_schematics.py --pathA`.
12> Results: `artifacts/results/11_pathA.json`, `10_compare.json`. Diagrams: this folder (`sld`, `dc-strings`, `battery-wiring`).
13
14---
15
16## 1. PV strings — the validated Phase-1 7S, replicated ×4
17
18**4 strings of 7S** (one per MPPT, 2 MPPTs per 6000XP), 28 modules, **16.1 kW DC**. String safety is **identical to the
19quadruple-validated Phase-1 result** (same module, same 6000XP 480/500 V ceilings):
20
21| Quantity | Value | Check |
22|---|---|---|
23| 7S string cold Voc (−40 °C + bifacial) | **430.1 V** | **≤ 480 V design (PASS, 50 V margin)** · ≤ 500 V abs (70 V) |
24| Per MPPT (1 string) | Isc 13.87 A / Imp 13.11 A | ≤ 25 A Isc rating / ≤ 17 A input ✓ |
25| String power | 4,025 W | ≤ 5,000 W oversize cap (≈25 W clip at STC) |
26| Array DC | 16,100 W | vs 16,000 W usable (2×8 kW) — essentially at the cap |
27
28No 8S anywhere; the lower 430 V string voltage sits **50 V further from its ceiling** than Path B's 491.5 V. **No PV source
29fusing** (exactly 1 string per MPPT → no parallel strings to backfeed). No combiner.
30
31## 2. Conductors · `scripts/11_pathA.py` (NEC 690.8 / 310.15 / 240.4 / Ch.9 T8)
32
33| Run | Current | Gauge (Cu) | Driver | Vdrop | OCPD |
34|---|---|---|---|---|---|
35| **PV string** array→6000XP (×4 homeruns) | 13.11 A | **8 AWG** | voltage-drop | 1.33 % @200 ft | none (690.9(A)) |
36| **AC per-unit** 6000XP→combiner (×2) | 25 A | **8 AWG** | 240.4(D) | 0.16 % | **35 A 2-pole** (each) |
37| **AC combined** combiner→main panel | 50 A | **4 AWG** | 240.4(D) | 0.13 % | **70 A 2-pole** |
38| **Battery per-pack** pack→busbar (×2) | 126 A | **2/0** | ampacity | 0.24 % | 175 A Class-T |
39| **Battery per-inverter** busbar→6000XP (×2) | 126 A | **2/0** | ampacity | 0.48 % | 175 A Class-T |
40
41**Cleaner battery cabling than Path B:** because the 12 kW load splits across **two** inverter inputs (126 A each), every
42battery cable is **2/0** — there is no single 250 A run, so **no 400 kcmil / parallel-4/0** is needed. The bank busbar (250 A+)
43is fed by 2 packs (126 A each) and feeds 2 inverters (126 A each). AC: each 6000XP has its own **35 A/8 AWG** output combining
44at the parallel busbar to **70 A/4 AWG** for the main-panel feed.
45
46## 3. Battery bank · `scripts/11_pathA.py`
47
48At 12 kW the bank delivers **252 A** (eff 0.93), split 126 A/pack and 126 A/inverter:
49
50| Level | Current | Limit | Margin |
51|---|---|---|---|
52| Bank vs **2×140 A inverter limit** | 252 A | **280 A** | **+28 A (10 %)** — more than Path B's 0.7 A |
53| Per inverter vs one 6000XP | 126 A | 140 A | +14 A — identical to validated Phase 1 |
54| Per pack vs JK-BMS OCP (binding) | 126 A | 150 A (300 s) | **+24 A (17 %)** |
55| Per pack vs EVE cell 0.5P | 126 A | 157 A | +31 A |
56
57- **C-rate** 0.40C discharge / 0.40C charge (250 A bank charge ÷ 2). **PASS.**
58- **Surge:** 2×12 kW/**3.5 s** = 504 A bank → 252 A/pack — above the 150 A OCP and 157 A cell, but **3.5 s ≪ the 300 s OCP delay**
59 and **< the 300 A short-circuit trip**, so it's a safe transient (same logic as Phase 1; brief vs the 18kPV's minutes-long surge).
60- **Autonomy:** identical to Path B — **25.7 kWh usable**, 0.77 day @ avg / 0.48 day @ peak; generator backfills.
61- **Class-T fusing: 4× 175 A** (one per pack + one per 6000XP battery input, per the 6000XP manual), DC-rated, 20 kAIC, ≤ 2/0 cable 175 A. Layered with each JK-BMS.
62- **Comms: TWO JK→Pylontech-CAN links** (one per 6000XP) to configure (Swarm §9). Open-loop fallback fully viable.
63
64## 4. Production vs load · `scripts/10_compare_inverter_paths.py`
65
66**19,213 kWh/yr = 157 % of the 12,237 kWh/yr load** (PVWatts v8, 16.1 kW, same site/tilt/azimuth as Phase 1).
67
68| Coverage (solar-only ×0.85) | Winter | Summer | **August peak** |
69|---|---|---|---|
70| Path A (16.1 kW) | 128 % ✓ | 113 % ✓ | **91 %** — short |
71| (Path B reference, 17.8 kW) | 138 % | 125 % | 100 % |
72
73Winter (Dec 31.3 kWh/day vs 26.6 load) and summer are fully covered. **The single August peak day is ~91 %** on solar-only
74with the conservative 0.85 round-trip factor — much of August load is daytime cooling used directly (no round-trip), and the
75battery + generator backfill any genuine gap, so it's a *margin* difference, not a failure. Production is **1,749 kWh/yr (9 %)
76less than Path B** — immaterial to the annual balance.
77
78## 5. NEC checklist (deltas vs Path B) · `scripts/11_pathA.py`
79
80| Section | Status | Evidence |
81|---|---|---|
82| 690.7 | PASS | Max system voltage **430.1 V (7S)** ≤ 480 V design / 500 V abs (validated ×4). |
83| 690.8(A) | PASS | Per string Isc×1.25 = 17.3 A; 1 string/MPPT → Isc 13.87 A ≤ 25 A, Imp 13.11 A ≤ 17 A. |
84| 690.9(A) Ex | PASS | **No PV source fusing** — exactly 1 string per MPPT (no parallel strings). |
85| 690.9 / 710.15 | PASS | AC OCPD: **2× 35 A 2-pole** (8 AWG) at the parallel busbar; **combined 70 A** (4 AWG) to the panel. |
86| 690.11 / 690.41(B) | PASS | Each 6000XP integrated PV AFCI + GFDI/isolation (×2 units). |
87| 690.12 | VERIFY-AHJ | Each 6000XP supplies an RSD initiator if required (same AHJ question as Phase 1 / Path B). |
88| 690.13 / 690.15 | PASS | Each 6000XP integrated DC disconnect; bank + per-pack + per-inverter disconnects. |
89| 690.9 / 480.9 / 706.31 | PASS | **4× 175 A Class-T** (2 packs + 2 inverter inputs), 20 kAIC, ≤ 2/0 cable 175 A. |
90| 705 | N/A | Off-grid; two inverters **paralleled** (EG4 parallel kit), not utility-interactive; main panel subfed, main off. |
91| 706.7 | PASS | 2-pack bank on a busbar feeding 2 inverters; 252 A split 126 A/pack (17 % under BMS) + 126 A/inverter (14 A under 140 A). |
92| 706.x comms | VERIFY | **Two** JK→Pylontech-CAN links to configure (vs one for Path B). Open-loop fallback viable. |
93| Redundancy | NOTE | **N+1**: one 6000XP can keep ~half the system (8 kW PV / 6 kW AC) running if the other fails. |
94| 690.53/54/56 | ACTION | Labels: max system voltage 430 V, 2× inverter output ratings, disconnects, battery hazard. |
95| NFPA 855 | FLAG | Same gate as Path B — 2 packs (32 kWh) per Swarm §4 may cross the 20 kWh threshold; out of scope. |
96
97## 6. Path A vs Path B — the tradeoff (both script-computed)
98
99| | **Path A** (2×6000XP / 28 / 4×7S) | **Path B** (18kPV / 31) |
100|---|---|---|
101| Panels wired / **spares** | 28 / **3 spares** | 31 / 0 |
102| Production | 19,213 kWh (157 %) | 20,962 kWh (171 %) |
103| August peak coverage | 91 % | 100 % |
104| Battery limit headroom | **+28 A** (280 A) | +0.7 A (250 A) |
105| String cold Voc | 430 V (50 V margin) | 491.5 V (58.5 V margin) |
106| Inverters / comms links | 2 / **2** | 1 / **1** |
107| PV future headroom | −100 W (maxed) | +180 W |
108| Redundancy | **N+1 (one unit survives)** | single point of failure |
109| Cost (estimate) | **baseline** | +~$1,900 |
110
111**Path A was selected** for spare panels + inverter redundancy + lower cost + a more-conservative 7S string, accepting 9 % less
112production and a slightly battery/generator-dependent August peak. **Path B** (the retained alternative in
113[`../phase2-pathB/`](../phase2-pathB/phase2-design.md)) trades that for full August coverage, future PV headroom, single comms, and
114one clean enclosure at +~$1,900. For this remote, off-grid, Grade-B, generator-backed site, **Path A is the better fit** — the
115"reserved" 3 panels become insurance, and the August gap is covered by infrastructure (battery + generator) that exists anyway.
116
117---
118
119**Deliverables (this folder = the selected build):** [`phase2-design.md`](phase2-design.md) · [`phase2-nec-checklist.md`](phase2-nec-checklist.md) · [`phase2-bom.md`](phase2-bom.md) · [`phase2-open-issues.md`](phase2-open-issues.md) · diagrams [`sld`](sld.png) / [`dc-strings`](dc-strings.png) / [`battery-wiring`](battery-wiring.png) (PNG + SVG).
120**Retained alternative:** Path B (1× EG4 18kPV) in [`../phase2-pathB/`](../phase2-pathB/phase2-design.md).
121**Out of scope (flagged, same as Path B):** NFPA 855 / fire code, battery shed/structure, generator selection, pricing beyond estimate.
artifacts/phase2/phase2-nec-checklist.md +34 -0
……@@ -0,0 +1,34 @@
1# Phase 2 — NEC Checklist (SELECTED BUILD: Path A, 2× EG4 6000XP)
2
3**System:** 28× Waaree 575W (4×7S) → 2× EG4 6000XP (parallel) → 2× Docan S3 · off-grid · NEK Vermont · **NEC 2023**.
4Computed by `scripts/11_pathA.py` from the validated string (`01`) + the reused `03` conductor sizing. Every item cites a computed value.
5*(Path B / 18kPV is the retained alternative — its checklist is in [`../phase2-pathB/phase2-nec-checklist.md`](../phase2-pathB/phase2-nec-checklist.md).)*
6
7| Section | Status | Topic & computed evidence |
8|---|---|---|
9| **690.7** | **PASS** | Max system voltage: **7S cold Voc 430.1 V ≤ 480 V** design / 500 V abs (margin **50 V** / 70 V). Same module + 6000XP ceilings as Phase 1; **quadruple-validated** (analytic + pvlib + vocmax + independent agent). Replicated ×4 strings. |
10| **690.8(A)** | **PASS** | Max circuit current: per string Isc×1.25 = **17.3 A**; exactly 1 string/MPPT → Isc 13.87 A ≤ **25 A** MPPT rating, Imp 13.11 A ≤ **17 A** input. |
11| **690.8(B)** | **PASS** | Ampacity after 310.15 derates: PV **8 AWG** (8 CCC, 0.70 fill); AC per-unit **8 AWG** / combined **4 AWG**; battery all **2/0**. |
12| **690.9 / 690.9(A) Ex** | **PASS** | **No PV source fusing** — exactly 1 string per MPPT (no parallel strings) on either 6000XP, so no backfeed can exceed the 30 A module fuse. No combiner. |
13| **690.9 / 240 / 480.9** | **PASS** | Battery OCP: **4× 175 A Class-T** (DC, 20 kAIC) — one per pack + one per 6000XP battery input — ≥ 125 % × 126 A; ≤ 2/0 cable 175 A. |
14| **690.9 / 710.15** | **PASS** | AC OCPD: **2× 35 A 2-pole** (8 AWG) per 6000XP at the parallel busbar; **combined 70 A 2-pole** (4 AWG) to the main panel. |
15| **690.11** | **PASS** | DC arc-fault: each 6000XP integrated PV AFCI (×2 units). |
16| **690.12** | **VERIFY-AHJ** | Rapid shutdown: each 6000XP supplies an RSD initiator if required. Detached ground-mount likely exempt, but conductors enter the dwelling → confirm VT DPS stance (same question as Phase 1). |
17| **690.13 / 690.15** | **PASS** | Disconnects: each 6000XP integrated DC disconnect; **bank disconnect + 2 per-pack + 2 per-inverter** disconnects, within sight. |
18| **690.41(B)** | **PASS** | System grounding / GFDI: each 6000XP integrated PV ground-fault / isolation monitoring (×2 units). |
19| **690.43 / 690.45** | **PASS** | EGCs (250.122): PV 10 AWG, per-pack & per-inverter **6 AWG** (175 A), AC per-unit 10 AWG / combined 8 AWG (70 A). Bond array frames + enclosures + busbar. |
20| **690.47** | **ACTION** | Array grounding electrode: drive a rod, 6 AWG Cu GEC bonded to the dwelling GES (690.47(A)). Carry forward from Phase 1. |
21| **690.31** | **PASS** | Wiring methods: PV in Sched-40 PVC conduit (squirrel/UV, Swarm §16); 8 AWG THWN-2 / PV 90 °C; 4 strings → split across 2 conduits. |
22| **705** | **N/A** | Off-grid; the two inverters are **paralleled via the EG4 parallel kit** (not utility-interactive). Generator AC-IN; main panel subfed, main breaker locked off (Swarm §17). |
23| **706.7 / 706.20** | **PASS** | ESS: 2× Docan S3 on a DC busbar feeding **2 inverters**; bank 252 A split **126 A/pack** (17 % under the 150 A BMS OCP, 157 A cell) + **126 A/inverter** (14 A under the 140 A 6000XP limit — identical to validated Phase 1). C-rate 0.40C. |
24| **706.30 / 480.7** | **PASS** | ESS disconnecting means: bank + per-pack + per-inverter disconnects (lockable, within sight); each 6000XP battery port is its inverter-side disconnect; each JK-BMS opens on cell faults. |
25| **706.31 / 480.9** | **PASS** | ESS OCP: 4× 175 A Class-T, 20 kAIC. Layered: each JK-BMS (150 A/300 s OCP, 300 A SC) protects cells; Class-T protects each cable. |
26| **706.x / BMS comms** | **VERIFY** | **TWO** JK→Pylontech-CAN links (one per 6000XP) to configure (Swarm §9: ~2–4 hrs each, intermittent CAN drops). Open-loop fallback fully viable (no battery-life penalty). |
27| **Parallel inverters** | **VERIFY** | The two 6000XP units must run **compatible firmware** and share the EG4 parallel/comms kit; confirm versions match on arrival. |
28| **710.15** | **PASS** | Stand-alone output: 2× 6000XP paralleled = 12 kW 120/240 V split-phase, 50 A combined; off-grid, no backfeed. |
29| **690.53/54/56 / 110.21** | **ACTION** | Labels/placards: max system voltage **430 V** (690.53), **2× inverter output ratings** (690.54), RSD placard if AHJ requires, disconnects + directory, per-pack battery hazard. |
30| **Redundancy (resilience NOTE)** | **NOTE** | **N+1:** if one 6000XP fails, the other can keep ~half the system (8 kW PV / 6 kW AC) running — a real off-grid benefit vs a single inverter. |
31| **NFPA 855 / VT 2025 Fire Code** | **FLAG (OUT OF SCOPE)** | 2 packs = **32.2 kWh nameplate** — per Swarm §4 likely crosses the 20 kWh residential threshold → detached non-combustible shed ≥ 10 ft, UL 9540 or AHJ HMA, propane-enclosure ventilation. **Not engineered — pre-clear with VT DPS before ordering the 2nd pack.** |
32| **Voltage drop (target)** | **PASS** | PV 1.33 %; per-pack 0.24 %; per-inverter 0.48 %; AC per-unit 0.16 % / combined 0.13 %. (Informational.) |
33
34**Summary: ~17 PASS · 2 ACTION · 2 VERIFY (BMS comms, parallel firmware) · 1 VERIFY-AHJ (RSD) · 1 N/A · 1 FLAG (NFPA 855), + N+1 redundancy note.**
artifacts/phase2/phase2-open-issues.md +53 -0
……@@ -0,0 +1,53 @@
1# Phase 2 — Open Issues, Assumptions & Gates (SELECTED BUILD: Path A, 2× EG4 6000XP)
2
3Nothing here changes the validated Path-A design (see [`phase2-design.md`](phase2-design.md)); these are items to confirm/measure,
4flagged assumptions, and the out-of-scope gates. *(Path B / 18kPV is the retained alternative in [`../phase2-pathB/`](../phase2-pathB/phase2-open-issues.md).)*
5
6## A. Confirm before buying wire / energizing
7
81. **Run lengths — confirmed by owner (2026-06-03):** battery **adjacent (~10 ft)**; 28 wired panels **co-located with the Phase-1
9 array, reusing the 150–250 ft trench (designed 200 ft, swept)**. 8 AWG PV holds ≤ 2 % across the range; measure for wire *quantity*.
102. **AC subfeed (Swarm §17).** Path A produces **2× 25 A (35 A/8 AWG) unit outputs combining to 50 A (70 A/4 AWG)** at the parallel
11 busbar. Confirm the AC combiner/parallel arrangement and that the existing main panel accepts the 70 A feed with its main breaker lockable-off.
123. **EG4 parallel kit + matched firmware (Path-A specific).** The two 6000XP units must share the EG4 parallel/comms kit and run
13 **compatible firmware**. Confirm the kit part number and that both units' firmware versions match on arrival.
144. **TWO JK→Pylontech-CAN comms links (Path-A specific, Swarm §9).** One per 6000XP — budget ~2–4 hrs each (CAN ID, 500 kbps, termination).
15 Known intermittent CAN drops auto-recover to voltage-only. **Open-loop fallback fully viable.** (Path B needs only one link — a real simplicity edge for B.)
165. **690.12 rapid shutdown — AHJ stance (VERIFY-AHJ).** Each 6000XP has an RSD initiator; get the VT DPS inspector's position in writing for the detached ground-mount.
176. **Keep the existing 6000XP.** Path A adds a *second* 6000XP (no resale of the first) — confirm the existing unit's firmware/health before paralleling.
18
19## B. Inputs substituted with a defensible value
20
217. **NREL API key — not provided.** Production (`10_compare_inverter_paths.py`) ran on documented inputs / DEMO_KEY → **19,213 kWh/yr**
22 (cached in `artifacts/results/10_compare.json`). A fresh re-run needs the DEMO_KEY rate limit to clear or a real key (`developer.nrel.gov`,
23 host `developer.nlr.gov`). Immaterial to the safety calcs; cold-Voc uses the conservative documented −40 °C.
248. **Exact site lat/lon** (44.5, −72.0) and **tilt 50° / azimuth 180°** — affect production only; confirm for site-exact energy.
25
26## C. Path-A design notes / caveats
27
289. **August peak is ~91 % solar-covered** (vs Path B's 100 %) — the 16.1 kW array is 9 % smaller. With the conservative 0.85
29 round-trip factor; daytime cooling load used directly (no round-trip) makes the real coverage higher, and the **battery + generator
30 backfill** the gap. December and all other months are fully covered (Dec 31.3 vs 26.6 load). Accepted tradeoff for the spares/redundancy/cost.
3110. **PV input is essentially maxed (−100 W):** 16.1 kW DC on 16 kW usable (2× 8 kW). **No room to add more PV later** without a third
32 inverter — a deliberate consequence of holding 3 panels as spares rather than wiring them.
3311. **3 spare panels — store properly.** Keep the 3 reserved Waaree modules dry, supported, and labeled; verify they match the wired
34 batch (BiN-08-575, Voc 52.30 V) at receiving so a future swap is plug-compatible.
3512. **Battery cabling & fusing are engineer-selected** (no vendor spec). All battery cables are **2/0** (busbar topology — no 400 kcmil
36 needed since the load splits across 2 inverters). **4× 175 A Class-T** (2 packs + 2 inverter inputs), 20 kAIC.
3713. **Surge is a 3.5 s transient.** 2×12 kW surge = 504 A bank / 252 A per pack — above the 150 A OCP/157 A cell, but **3.5 s ≪ the
38 300 s OCP delay and < the 300 A SC trip**, so no trip (same logic as Phase 1). Brief, unlike the 18kPV's minutes-long surge.
39
40## D. Out-of-scope gates (flagged, NOT engineered)
41
4214. **NFPA 855 / VT 2025 Fire Code — the biggest non-electrical gate.** 2 packs = 32.2 kWh nameplate; per Swarm §4 likely crosses the
43 20 kWh residential threshold → detached non-combustible shed ≥ 10 ft, UL 9540 listing or AHJ Hazard Mitigation Analysis, + propane-heater
44 combustion-air/ventilation/separation. **Pre-clear with VT DPS in writing before ordering the 2nd pack.**
4515. **Insurance disclosure (Swarm §7)** — disclose the DIY + non-UL ESS in writing; if excluded, shop Co-op Insurance (Middlebury).
4616. **Generator (Phase-1 infrastructure)** — AC-IN to the parallel 6000XP pair (each 50 A passthrough / per the parallel kit), L14-30 inlet + interlock, gen-assist on low SOC.
4717. **Battery shed / structure / racking / trenching** — out of scope (owner handles mounting/housing).
48
49## E. Validation status of the safety-critical result
50
51The Path-A string is the **already quadruple-validated Phase-1 7S result** (430.1 V ≤ 480 V): analytic NEC 690.7, pvlib CEC single-diode,
52**vocmax**, and an independent adversarial agent. Replicated ×4 across the four MPPTs (2 per 6000XP); no 8S anywhere, so the 430 V string
53sits **50 V below its ceiling** — the most conservative string voltage of either path.
artifacts/phase2/sld.png +0 -0
(no content changes — binary or rename)
artifacts/phase2/sld.svg +2668 -0
……@@ -0,0 +1,2668 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="593.028292pt" height="804.24pt" viewBox="0 0 593.028292 804.24" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T02:23:45.928383</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M 0 804.24
25L 593.028292 804.24
26L 593.028292 0
27L 0 0
28L 0 804.24
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="patch_2">
34 <path d="M 57.760937 291.755082
35C 62.530916 291.755082 67.106171 289.859949 70.479055 286.487065
36C 73.851939 283.114181 75.747072 278.538926 75.747072 273.768948
37C 75.747072 268.998969 73.851939 264.423714 70.479055 261.05083
38C 67.106171 257.677946 62.530916 255.782813 57.760937 255.782813
39C 52.990959 255.782813 48.415704 257.677946 45.04282 261.05083
40C 41.669936 264.423714 39.774803 268.998969 39.774803 273.768948
41C 39.774803 278.538926 41.669936 283.114181 45.04282 286.487065
42C 48.415704 289.859949 52.990959 291.755082 57.760937 291.755082
43L 57.760937 291.755082
44z
45" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
46 </g>
47 <g id="line2d_1">
48 <path d="M 9.198375 273.768948
49L 39.774803 273.768948
50L 39.774803 273.768948
51M 75.747072 273.768948
52L 75.747072 273.768948
53L 106.3235 273.768948
54" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
55 </g>
56 <g id="line2d_2">
57 <path d="M 54.163711 269.272414
58L 54.163711 278.265481
59" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
60 </g>
61 <g id="line2d_3">
62 <path d="M 61.358164 263.876574
63L 61.358164 283.661321
64" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
65 </g>
66 <g id="line2d_4">
67 <path d="M 39.774803 273.768948
68L 54.163711 273.768948
69M 61.358164 273.768948
70L 75.747072 273.768948
71" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
72 </g>
73 <g id="line2d_5">
74 <path d="M 79.344299 241.393906
75L 74.911677 245.826528
76" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
77 </g>
78 <g id="patch_3">
79 <path d="M 76.819394 247.734245
80L 68.552618 252.185587
81L 73.003959 243.91881
82z
83" clip-path="url(#p07038a8d6d)"/>
84 </g>
85 <g id="line2d_6">
86 <path d="M 86.538752 248.58836
87L 82.10613 253.020982
88" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
89 </g>
90 <g id="patch_4">
91 <path d="M 84.013848 254.928699
92L 75.747072 259.38004
93L 80.198413 251.113264
94z
95" clip-path="url(#p07038a8d6d)"/>
96 </g>
97 <g id="line2d_7">
98 <path d="M 106.3235 273.768948
99L 153.087449 273.768948
100L 199.851398 273.768948
101" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
102 </g>
103 <g id="line2d_8">
104 <path d="M 199.851398 273.768948
105M 208.484742 270.171721
106L 228.629213 257.581427
107M 235.823666 273.768948
108" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
109 </g>
110 <g id="line2d_9">
111 <path d="M 208.484742 306.143989
112L 228.629213 293.553695
113" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
114 </g>
115 <g id="line2d_10">
116 <path d="M 217.837532 300.748149
117L 217.837532 266.574494
118" clip-path="url(#p07038a8d6d)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
119 </g>
120 <g id="line2d_11">
121 <path d="M 199.851398 273.768948
122L 221.434759 273.768948
123L 243.01812 273.768948
124" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
125 </g>
126 <g id="line2d_12">
127 <path d="M 261.004254 318.734283
128L 361.726606 318.734283
129L 361.726606 228.803612
130L 261.004254 228.803612
131L 261.004254 318.734283
132" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
133 </g>
134 <g id="line2d_13">
135 <path d="M 261.004254 273.768948
136L 243.01812 273.768948
137" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
138 </g>
139 <g id="line2d_14">
140 <path d="M 361.726606 273.768948
141L 379.71274 273.768948
142" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
143 </g>
144 <g id="line2d_15">
145 <path d="M 311.36543 228.803612
146L 311.36543 210.817478
147" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
148 </g>
149 <g id="line2d_16">
150 <path d="M 278.990389 318.734283
151L 278.990389 336.720417
152" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
153 </g>
154 <g id="line2d_17">
155 <path d="M 343.740472 318.734283
156L 343.740472 336.720417
157" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
158 </g>
159 <g id="line2d_18">
160 <path d="M 311.36543 210.817478
161L 311.36543 185.63689
162L 311.36543 160.456302
163" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
164 </g>
165 <g id="line2d_19">
166 <path d="M 311.36543 160.456302
167M 307.768203 151.822958
168L 295.177909 131.678487
169M 311.36543 124.484033
170" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
171 </g>
172 <g id="line2d_20">
173 <path d="M 343.740472 151.822958
174L 331.150178 131.678487
175" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
176 </g>
177 <g id="line2d_21">
178 <path d="M 338.344632 142.470168
179L 304.170977 142.470168
180" clip-path="url(#p07038a8d6d)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
181 </g>
182 <g id="line2d_22">
183 <path d="M 311.36543 160.456302
184L 311.36543 149.664621
185L 311.36543 138.872941
186" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
187 </g>
188 <g id="line2d_23">
189 <path d="M 311.36543 138.872941
190L 311.36543 108.296513
191L 302.372363 108.296513
192L 302.372363 72.324244
193L 320.358497 72.324244
194L 320.358497 108.296513
195L 311.36543 108.296513
196M 311.36543 72.324244
197L 311.36543 41.747816
198" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
199 </g>
200 <g id="line2d_24">
201 <path d="M 379.71274 273.768948
202L 412.087782 273.768948
203L 444.462824 273.768948
204" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
205 </g>
206 <g id="line2d_25">
207 <path d="M 444.462824 273.768948
208M 453.096168 270.171721
209L 473.240638 257.581427
210M 480.435092 273.768948
211" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
212 </g>
213 <g id="line2d_26">
214 <path d="M 453.096168 306.143989
215L 473.240638 293.553695
216" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
217 </g>
218 <g id="line2d_27">
219 <path d="M 462.448958 300.748149
220L 462.448958 266.574494
221" clip-path="url(#p07038a8d6d)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
222 </g>
223 <g id="line2d_28">
224 <path d="M 444.462824 273.768948
225L 467.844798 273.768948
226L 491.226773 273.768948
227" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
228 </g>
229 <g id="line2d_29">
230 <path d="M 491.226773 273.768948
231L 521.803201 273.768948
232L 521.803201 264.775881
233L 557.775469 264.775881
234L 557.775469 282.762015
235L 521.803201 282.762015
236L 521.803201 273.768948
237M 557.775469 273.768948
238L 588.351897 273.768948
239" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
240 </g>
241 <g id="line2d_30">
242 <path d="M 278.990389 336.720417
243L 278.990389 352.907938
244L 278.990389 369.095459
245" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
246 </g>
247 <g id="line2d_31">
248 <path d="M 278.990389 369.095459
249M 282.587615 377.728804
250L 295.177909 397.873274
251M 278.990389 405.067728
252" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
253 </g>
254 <g id="line2d_32">
255 <path d="M 246.615347 377.728804
256L 259.205641 397.873274
257" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
258 </g>
259 <g id="line2d_33">
260 <path d="M 252.011187 387.081593
261L 286.184842 387.081593
262" clip-path="url(#p07038a8d6d)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
263 </g>
264 <g id="line2d_34">
265 <path d="M 278.990389 369.095459
266L 278.990389 396.07466
267L 278.990389 423.053862
268" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
269 </g>
270 <g id="line2d_35">
271 <path d="M 278.990389 423.053862
272L 278.990389 453.63029
273L 287.983456 453.63029
274L 287.983456 489.602558
275L 269.997321 489.602558
276L 269.997321 453.63029
277L 278.990389 453.63029
278M 278.990389 489.602558
279L 278.990389 520.178987
280" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
281 </g>
282 <g id="line2d_36">
283 <path d="M 278.990389 520.178987
284L 278.990389 534.567894
285L 278.990389 548.956801
286" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
287 </g>
288 <g id="line2d_37">
289 <path d="M 278.990389 548.956801
290L 278.990389 579.53323
291L 287.983456 579.53323
292L 287.983456 615.505498
293L 269.997321 615.505498
294L 269.997321 579.53323
295L 278.990389 579.53323
296M 278.990389 615.505498
297L 278.990389 646.081926
298" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
299 </g>
300 <g id="line2d_38">
301 <path d="M 278.990389 579.53323
302L 278.990389 615.505498
303" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
304 </g>
305 <g id="line2d_39">
306 <path d="M 278.990389 646.081926
307L 278.990389 660.470834
308L 278.990389 674.859741
309" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
310 </g>
311 <g id="line2d_40">
312 <path d="M 278.990389 674.859741
313L 278.990389 713.305103
314M 278.990389 733.539504
315L 278.990389 771.984866
316" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
317 </g>
318 <g id="line2d_41">
319 <path d="M 292.479989 713.305103
320L 265.500788 713.305103
321" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
322 </g>
323 <g id="line2d_42">
324 <path d="M 285.735189 720.049903
325L 272.245588 720.049903
326" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
327 </g>
328 <g id="line2d_43">
329 <path d="M 292.479989 726.794704
330L 265.500788 726.794704
331" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
332 </g>
333 <g id="line2d_44">
334 <path d="M 285.735189 733.539504
335L 272.245588 733.539504
336" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
337 </g>
338 <g id="line2d_45">
339 <path d="M 343.740472 336.720417
340L 343.740472 358.303779
341L 343.740472 379.88714
342" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
343 </g>
344 <g id="line2d_46">
345 <path d="M 343.740472 379.88714
346L 343.740472 394.276047
347L 334.747405 394.276047
348L 352.733539 394.276047
349M 337.445325 398.592719
350L 350.035619 398.592719
351M 341.941858 402.909391
352L 345.539085 402.909391
353" clip-path="url(#p07038a8d6d)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
354 </g>
355 <g id="text_1">
356 <!-- PV ARRAY -->
357 <g transform="translate(33.48125 302.950746) scale(0.1 -0.1)">
358 <defs>
359 <path id="DejaVuSans-50" d="M 1259 4147
360L 1259 2394
361L 2053 2394
362Q 2494 2394 2734 2622
363Q 2975 2850 2975 3272
364Q 2975 3691 2734 3919
365Q 2494 4147 2053 4147
366L 1259 4147
367z
368M 628 4666
369L 2053 4666
370Q 2838 4666 3239 4311
371Q 3641 3956 3641 3272
372Q 3641 2581 3239 2228
373Q 2838 1875 2053 1875
374L 1259 1875
375L 1259 0
376L 628 0
377L 628 4666
378z
379" transform="scale(0.015625)"/>
380 <path id="DejaVuSans-56" d="M 1831 0
381L 50 4666
382L 709 4666
383L 2188 738
384L 3669 4666
385L 4325 4666
386L 2547 0
387L 1831 0
388z
389" transform="scale(0.015625)"/>
390 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
391 <path id="DejaVuSans-41" d="M 2188 4044
392L 1331 1722
393L 3047 1722
394L 2188 4044
395z
396M 1831 4666
397L 2547 4666
398L 4325 0
399L 3669 0
400L 3244 1197
401L 1141 1197
402L 716 0
403L 50 0
404L 1831 4666
405z
406" transform="scale(0.015625)"/>
407 <path id="DejaVuSans-52" d="M 2841 2188
408Q 3044 2119 3236 1894
409Q 3428 1669 3622 1275
410L 4263 0
411L 3584 0
412L 2988 1197
413Q 2756 1666 2539 1819
414Q 2322 1972 1947 1972
415L 1259 1972
416L 1259 0
417L 628 0
418L 628 4666
419L 2053 4666
420Q 2853 4666 3247 4331
421Q 3641 3997 3641 3322
422Q 3641 2881 3436 2590
423Q 3231 2300 2841 2188
424z
425M 1259 4147
426L 1259 2491
427L 2053 2491
428Q 2509 2491 2742 2702
429Q 2975 2913 2975 3322
430Q 2975 3731 2742 3939
431Q 2509 4147 2053 4147
432L 1259 4147
433z
434" transform="scale(0.015625)"/>
435 <path id="DejaVuSans-59" d="M -13 4666
436L 666 4666
437L 1959 2747
438L 3244 4666
439L 3922 4666
440L 2272 2222
441L 2272 0
442L 1638 0
443L 1638 2222
444L -13 4666
445z
446" transform="scale(0.015625)"/>
447 </defs>
448 <use xlink:href="#DejaVuSans-50"/>
449 <use xlink:href="#DejaVuSans-56" transform="translate(60.302734 0)"/>
450 <use xlink:href="#DejaVuSans-20" transform="translate(128.710938 0)"/>
451 <use xlink:href="#DejaVuSans-41" transform="translate(160.498047 0)"/>
452 <use xlink:href="#DejaVuSans-52" transform="translate(228.90625 0)"/>
453 <use xlink:href="#DejaVuSans-52" transform="translate(298.388672 0)"/>
454 <use xlink:href="#DejaVuSans-41" transform="translate(363.871094 0)"/>
455 <use xlink:href="#DejaVuSans-59" transform="translate(424.529297 0)"/>
456 </g>
457 <!-- 28×575W · 4×7S -->
458 <g transform="translate(14.227344 312.628871) scale(0.1 -0.1)">
459 <defs>
460 <path id="DejaVuSans-32" d="M 1228 531
461L 3431 531
462L 3431 0
463L 469 0
464L 469 531
465Q 828 903 1448 1529
466Q 2069 2156 2228 2338
467Q 2531 2678 2651 2914
468Q 2772 3150 2772 3378
469Q 2772 3750 2511 3984
470Q 2250 4219 1831 4219
471Q 1534 4219 1204 4116
472Q 875 4013 500 3803
473L 500 4441
474Q 881 4594 1212 4672
475Q 1544 4750 1819 4750
476Q 2544 4750 2975 4387
477Q 3406 4025 3406 3419
478Q 3406 3131 3298 2873
479Q 3191 2616 2906 2266
480Q 2828 2175 2409 1742
481Q 1991 1309 1228 531
482z
483" transform="scale(0.015625)"/>
484 <path id="DejaVuSans-38" d="M 2034 2216
485Q 1584 2216 1326 1975
486Q 1069 1734 1069 1313
487Q 1069 891 1326 650
488Q 1584 409 2034 409
489Q 2484 409 2743 651
490Q 3003 894 3003 1313
491Q 3003 1734 2745 1975
492Q 2488 2216 2034 2216
493z
494M 1403 2484
495Q 997 2584 770 2862
496Q 544 3141 544 3541
497Q 544 4100 942 4425
498Q 1341 4750 2034 4750
499Q 2731 4750 3128 4425
500Q 3525 4100 3525 3541
501Q 3525 3141 3298 2862
502Q 3072 2584 2669 2484
503Q 3125 2378 3379 2068
504Q 3634 1759 3634 1313
505Q 3634 634 3220 271
506Q 2806 -91 2034 -91
507Q 1263 -91 848 271
508Q 434 634 434 1313
509Q 434 1759 690 2068
510Q 947 2378 1403 2484
511z
512M 1172 3481
513Q 1172 3119 1398 2916
514Q 1625 2713 2034 2713
515Q 2441 2713 2670 2916
516Q 2900 3119 2900 3481
517Q 2900 3844 2670 4047
518Q 2441 4250 2034 4250
519Q 1625 4250 1398 4047
520Q 1172 3844 1172 3481
521z
522" transform="scale(0.015625)"/>
523 <path id="DejaVuSans-d7" d="M 4488 3438
524L 3059 2003
525L 4488 575
526L 4116 197
527L 2681 1631
528L 1247 197
529L 878 575
530L 2303 2003
531L 878 3438
532L 1247 3816
533L 2681 2381
534L 4116 3816
535L 4488 3438
536z
537" transform="scale(0.015625)"/>
538 <path id="DejaVuSans-35" d="M 691 4666
539L 3169 4666
540L 3169 4134
541L 1269 4134
542L 1269 2991
543Q 1406 3038 1543 3061
544Q 1681 3084 1819 3084
545Q 2600 3084 3056 2656
546Q 3513 2228 3513 1497
547Q 3513 744 3044 326
548Q 2575 -91 1722 -91
549Q 1428 -91 1123 -41
550Q 819 9 494 109
551L 494 744
552Q 775 591 1075 516
553Q 1375 441 1709 441
554Q 2250 441 2565 725
555Q 2881 1009 2881 1497
556Q 2881 1984 2565 2268
557Q 2250 2553 1709 2553
558Q 1456 2553 1204 2497
559Q 953 2441 691 2322
560L 691 4666
561z
562" transform="scale(0.015625)"/>
563 <path id="DejaVuSans-37" d="M 525 4666
564L 3525 4666
565L 3525 4397
566L 1831 0
567L 1172 0
568L 2766 4134
569L 525 4134
570L 525 4666
571z
572" transform="scale(0.015625)"/>
573 <path id="DejaVuSans-57" d="M 213 4666
574L 850 4666
575L 1831 722
576L 2809 4666
577L 3519 4666
578L 4500 722
579L 5478 4666
580L 6119 4666
581L 4947 0
582L 4153 0
583L 3169 4050
584L 2175 0
585L 1381 0
586L 213 4666
587z
588" transform="scale(0.015625)"/>
589 <path id="DejaVuSans-b7" d="M 684 2619
590L 1344 2619
591L 1344 1825
592L 684 1825
593L 684 2619
594z
595" transform="scale(0.015625)"/>
596 <path id="DejaVuSans-34" d="M 2419 4116
597L 825 1625
598L 2419 1625
599L 2419 4116
600z
601M 2253 4666
602L 3047 4666
603L 3047 1625
604L 3713 1625
605L 3713 1100
606L 3047 1100
607L 3047 0
608L 2419 0
609L 2419 1100
610L 313 1100
611L 313 1709
612L 2253 4666
613z
614" transform="scale(0.015625)"/>
615 <path id="DejaVuSans-53" d="M 3425 4513
616L 3425 3897
617Q 3066 4069 2747 4153
618Q 2428 4238 2131 4238
619Q 1616 4238 1336 4038
620Q 1056 3838 1056 3469
621Q 1056 3159 1242 3001
622Q 1428 2844 1947 2747
623L 2328 2669
624Q 3034 2534 3370 2195
625Q 3706 1856 3706 1288
626Q 3706 609 3251 259
627Q 2797 -91 1919 -91
628Q 1588 -91 1214 -16
629Q 841 59 441 206
630L 441 856
631Q 825 641 1194 531
632Q 1563 422 1919 422
633Q 2459 422 2753 634
634Q 3047 847 3047 1241
635Q 3047 1584 2836 1778
636Q 2625 1972 2144 2069
637L 1759 2144
638Q 1053 2284 737 2584
639Q 422 2884 422 3419
640Q 422 4038 858 4394
641Q 1294 4750 2059 4750
642Q 2388 4750 2728 4690
643Q 3069 4631 3425 4513
644z
645" transform="scale(0.015625)"/>
646 </defs>
647 <use xlink:href="#DejaVuSans-32"/>
648 <use xlink:href="#DejaVuSans-38" transform="translate(63.623047 0)"/>
649 <use xlink:href="#DejaVuSans-d7" transform="translate(127.246094 0)"/>
650 <use xlink:href="#DejaVuSans-35" transform="translate(211.035156 0)"/>
651 <use xlink:href="#DejaVuSans-37" transform="translate(274.658203 0)"/>
652 <use xlink:href="#DejaVuSans-35" transform="translate(338.28125 0)"/>
653 <use xlink:href="#DejaVuSans-57" transform="translate(401.904297 0)"/>
654 <use xlink:href="#DejaVuSans-20" transform="translate(500.78125 0)"/>
655 <use xlink:href="#DejaVuSans-b7" transform="translate(532.568359 0)"/>
656 <use xlink:href="#DejaVuSans-20" transform="translate(564.355469 0)"/>
657 <use xlink:href="#DejaVuSans-34" transform="translate(596.142578 0)"/>
658 <use xlink:href="#DejaVuSans-d7" transform="translate(659.765625 0)"/>
659 <use xlink:href="#DejaVuSans-37" transform="translate(743.554688 0)"/>
660 <use xlink:href="#DejaVuSans-53" transform="translate(807.177734 0)"/>
661 </g>
662 <!-- 16100W DC -->
663 <g transform="translate(27.980469 322.306996) scale(0.1 -0.1)">
664 <defs>
665 <path id="DejaVuSans-31" d="M 794 531
666L 1825 531
667L 1825 4091
668L 703 3866
669L 703 4441
670L 1819 4666
671L 2450 4666
672L 2450 531
673L 3481 531
674L 3481 0
675L 794 0
676L 794 531
677z
678" transform="scale(0.015625)"/>
679 <path id="DejaVuSans-36" d="M 2113 2584
680Q 1688 2584 1439 2293
681Q 1191 2003 1191 1497
682Q 1191 994 1439 701
683Q 1688 409 2113 409
684Q 2538 409 2786 701
685Q 3034 994 3034 1497
686Q 3034 2003 2786 2293
687Q 2538 2584 2113 2584
688z
689M 3366 4563
690L 3366 3988
691Q 3128 4100 2886 4159
692Q 2644 4219 2406 4219
693Q 1781 4219 1451 3797
694Q 1122 3375 1075 2522
695Q 1259 2794 1537 2939
696Q 1816 3084 2150 3084
697Q 2853 3084 3261 2657
698Q 3669 2231 3669 1497
699Q 3669 778 3244 343
700Q 2819 -91 2113 -91
701Q 1303 -91 875 529
702Q 447 1150 447 2328
703Q 447 3434 972 4092
704Q 1497 4750 2381 4750
705Q 2619 4750 2861 4703
706Q 3103 4656 3366 4563
707z
708" transform="scale(0.015625)"/>
709 <path id="DejaVuSans-30" d="M 2034 4250
710Q 1547 4250 1301 3770
711Q 1056 3291 1056 2328
712Q 1056 1369 1301 889
713Q 1547 409 2034 409
714Q 2525 409 2770 889
715Q 3016 1369 3016 2328
716Q 3016 3291 2770 3770
717Q 2525 4250 2034 4250
718z
719M 2034 4750
720Q 2819 4750 3233 4129
721Q 3647 3509 3647 2328
722Q 3647 1150 3233 529
723Q 2819 -91 2034 -91
724Q 1250 -91 836 529
725Q 422 1150 422 2328
726Q 422 3509 836 4129
727Q 1250 4750 2034 4750
728z
729" transform="scale(0.015625)"/>
730 <path id="DejaVuSans-44" d="M 1259 4147
731L 1259 519
732L 2022 519
733Q 2988 519 3436 956
734Q 3884 1394 3884 2338
735Q 3884 3275 3436 3711
736Q 2988 4147 2022 4147
737L 1259 4147
738z
739M 628 4666
740L 1925 4666
741Q 3281 4666 3915 4102
742Q 4550 3538 4550 2338
743Q 4550 1131 3912 565
744Q 3275 0 1925 0
745L 628 0
746L 628 4666
747z
748" transform="scale(0.015625)"/>
749 <path id="DejaVuSans-43" d="M 4122 4306
750L 4122 3641
751Q 3803 3938 3442 4084
752Q 3081 4231 2675 4231
753Q 1875 4231 1450 3742
754Q 1025 3253 1025 2328
755Q 1025 1406 1450 917
756Q 1875 428 2675 428
757Q 3081 428 3442 575
758Q 3803 722 4122 1019
759L 4122 359
760Q 3791 134 3420 21
761Q 3050 -91 2638 -91
762Q 1578 -91 968 557
763Q 359 1206 359 2328
764Q 359 3453 968 4101
765Q 1578 4750 2638 4750
766Q 3056 4750 3426 4639
767Q 3797 4528 4122 4306
768z
769" transform="scale(0.015625)"/>
770 </defs>
771 <use xlink:href="#DejaVuSans-31"/>
772 <use xlink:href="#DejaVuSans-36" transform="translate(63.623047 0)"/>
773 <use xlink:href="#DejaVuSans-31" transform="translate(127.246094 0)"/>
774 <use xlink:href="#DejaVuSans-30" transform="translate(190.869141 0)"/>
775 <use xlink:href="#DejaVuSans-30" transform="translate(254.492188 0)"/>
776 <use xlink:href="#DejaVuSans-57" transform="translate(318.115234 0)"/>
777 <use xlink:href="#DejaVuSans-20" transform="translate(416.992188 0)"/>
778 <use xlink:href="#DejaVuSans-44" transform="translate(448.779297 0)"/>
779 <use xlink:href="#DejaVuSans-43" transform="translate(525.78125 0)"/>
780 </g>
781 <!-- coldVoc 430.1V (≤480) -->
782 <g transform="translate(-0 331.985121) scale(0.1 -0.1)">
783 <defs>
784 <path id="DejaVuSans-63" d="M 3122 3366
785L 3122 2828
786Q 2878 2963 2633 3030
787Q 2388 3097 2138 3097
788Q 1578 3097 1268 2742
789Q 959 2388 959 1747
790Q 959 1106 1268 751
791Q 1578 397 2138 397
792Q 2388 397 2633 464
793Q 2878 531 3122 666
794L 3122 134
795Q 2881 22 2623 -34
796Q 2366 -91 2075 -91
797Q 1284 -91 818 406
798Q 353 903 353 1747
799Q 353 2603 823 3093
800Q 1294 3584 2113 3584
801Q 2378 3584 2631 3529
802Q 2884 3475 3122 3366
803z
804" transform="scale(0.015625)"/>
805 <path id="DejaVuSans-6f" d="M 1959 3097
806Q 1497 3097 1228 2736
807Q 959 2375 959 1747
808Q 959 1119 1226 758
809Q 1494 397 1959 397
810Q 2419 397 2687 759
811Q 2956 1122 2956 1747
812Q 2956 2369 2687 2733
813Q 2419 3097 1959 3097
814z
815M 1959 3584
816Q 2709 3584 3137 3096
817Q 3566 2609 3566 1747
818Q 3566 888 3137 398
819Q 2709 -91 1959 -91
820Q 1206 -91 779 398
821Q 353 888 353 1747
822Q 353 2609 779 3096
823Q 1206 3584 1959 3584
824z
825" transform="scale(0.015625)"/>
826 <path id="DejaVuSans-6c" d="M 603 4863
827L 1178 4863
828L 1178 0
829L 603 0
830L 603 4863
831z
832" transform="scale(0.015625)"/>
833 <path id="DejaVuSans-64" d="M 2906 2969
834L 2906 4863
835L 3481 4863
836L 3481 0
837L 2906 0
838L 2906 525
839Q 2725 213 2448 61
840Q 2172 -91 1784 -91
841Q 1150 -91 751 415
842Q 353 922 353 1747
843Q 353 2572 751 3078
844Q 1150 3584 1784 3584
845Q 2172 3584 2448 3432
846Q 2725 3281 2906 2969
847z
848M 947 1747
849Q 947 1113 1208 752
850Q 1469 391 1925 391
851Q 2381 391 2643 752
852Q 2906 1113 2906 1747
853Q 2906 2381 2643 2742
854Q 2381 3103 1925 3103
855Q 1469 3103 1208 2742
856Q 947 2381 947 1747
857z
858" transform="scale(0.015625)"/>
859 <path id="DejaVuSans-33" d="M 2597 2516
860Q 3050 2419 3304 2112
861Q 3559 1806 3559 1356
862Q 3559 666 3084 287
863Q 2609 -91 1734 -91
864Q 1441 -91 1130 -33
865Q 819 25 488 141
866L 488 750
867Q 750 597 1062 519
868Q 1375 441 1716 441
869Q 2309 441 2620 675
870Q 2931 909 2931 1356
871Q 2931 1769 2642 2001
872Q 2353 2234 1838 2234
873L 1294 2234
874L 1294 2753
875L 1863 2753
876Q 2328 2753 2575 2939
877Q 2822 3125 2822 3475
878Q 2822 3834 2567 4026
879Q 2313 4219 1838 4219
880Q 1578 4219 1281 4162
881Q 984 4106 628 3988
882L 628 4550
883Q 988 4650 1302 4700
884Q 1616 4750 1894 4750
885Q 2613 4750 3031 4423
886Q 3450 4097 3450 3541
887Q 3450 3153 3228 2886
888Q 3006 2619 2597 2516
889z
890" transform="scale(0.015625)"/>
891 <path id="DejaVuSans-2e" d="M 684 794
892L 1344 794
893L 1344 0
894L 684 0
895L 684 794
896z
897" transform="scale(0.015625)"/>
898 <path id="DejaVuSans-28" d="M 1984 4856
899Q 1566 4138 1362 3434
900Q 1159 2731 1159 2009
901Q 1159 1288 1364 580
902Q 1569 -128 1984 -844
903L 1484 -844
904Q 1016 -109 783 600
905Q 550 1309 550 2009
906Q 550 2706 781 3412
907Q 1013 4119 1484 4856
908L 1984 4856
909z
910" transform="scale(0.015625)"/>
911 <path id="DejaVuSans-2264" d="M 4684 3175
912L 1684 2309
913L 4684 1453
914L 4684 897
915L 678 2047
916L 678 2578
917L 4684 3725
918L 4684 3175
919z
920M 678 531
921L 4684 531
922L 4684 0
923L 678 0
924L 678 531
925z
926" transform="scale(0.015625)"/>
927 <path id="DejaVuSans-29" d="M 513 4856
928L 1013 4856
929Q 1481 4119 1714 3412
930Q 1947 2706 1947 2009
931Q 1947 1309 1714 600
932Q 1481 -109 1013 -844
933L 513 -844
934Q 928 -128 1133 580
935Q 1338 1288 1338 2009
936Q 1338 2731 1133 3434
937Q 928 4138 513 4856
938z
939" transform="scale(0.015625)"/>
940 </defs>
941 <use xlink:href="#DejaVuSans-63"/>
942 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
943 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
944 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
945 <use xlink:href="#DejaVuSans-56" transform="translate(207.421875 0)"/>
946 <use xlink:href="#DejaVuSans-6f" transform="translate(268.080078 0)"/>
947 <use xlink:href="#DejaVuSans-63" transform="translate(329.261719 0)"/>
948 <use xlink:href="#DejaVuSans-20" transform="translate(384.242188 0)"/>
949 <use xlink:href="#DejaVuSans-34" transform="translate(416.029297 0)"/>
950 <use xlink:href="#DejaVuSans-33" transform="translate(479.652344 0)"/>
951 <use xlink:href="#DejaVuSans-30" transform="translate(543.275391 0)"/>
952 <use xlink:href="#DejaVuSans-2e" transform="translate(606.898438 0)"/>
953 <use xlink:href="#DejaVuSans-31" transform="translate(638.685547 0)"/>
954 <use xlink:href="#DejaVuSans-56" transform="translate(702.308594 0)"/>
955 <use xlink:href="#DejaVuSans-20" transform="translate(770.716797 0)"/>
956 <use xlink:href="#DejaVuSans-28" transform="translate(802.503906 0)"/>
957 <use xlink:href="#DejaVuSans-2264" transform="translate(841.517578 0)"/>
958 <use xlink:href="#DejaVuSans-34" transform="translate(925.306641 0)"/>
959 <use xlink:href="#DejaVuSans-38" transform="translate(988.929688 0)"/>
960 <use xlink:href="#DejaVuSans-30" transform="translate(1052.552734 0)"/>
961 <use xlink:href="#DejaVuSans-29" transform="translate(1116.175781 0)"/>
962 </g>
963 </g>
964 <g id="text_2">
965 <!-- 8AWG×200ft -->
966 <g transform="translate(120.576511 258.413908) scale(0.1 -0.1)">
967 <defs>
968 <path id="DejaVuSans-47" d="M 3809 666
969L 3809 1919
970L 2778 1919
971L 2778 2438
972L 4434 2438
973L 4434 434
974Q 4069 175 3628 42
975Q 3188 -91 2688 -91
976Q 1594 -91 976 548
977Q 359 1188 359 2328
978Q 359 3472 976 4111
979Q 1594 4750 2688 4750
980Q 3144 4750 3555 4637
981Q 3966 4525 4313 4306
982L 4313 3634
983Q 3963 3931 3569 4081
984Q 3175 4231 2741 4231
985Q 1884 4231 1454 3753
986Q 1025 3275 1025 2328
987Q 1025 1384 1454 906
988Q 1884 428 2741 428
989Q 3075 428 3337 486
990Q 3600 544 3809 666
991z
992" transform="scale(0.015625)"/>
993 <path id="DejaVuSans-66" d="M 2375 4863
994L 2375 4384
995L 1825 4384
996Q 1516 4384 1395 4259
997Q 1275 4134 1275 3809
998L 1275 3500
999L 2222 3500
1000L 2222 3053
1001L 1275 3053
1002L 1275 0
1003L 697 0
1004L 697 3053
1005L 147 3053
1006L 147 3500
1007L 697 3500
1008L 697 3744
1009Q 697 4328 969 4595
1010Q 1241 4863 1831 4863
1011L 2375 4863
1012z
1013" transform="scale(0.015625)"/>
1014 <path id="DejaVuSans-74" d="M 1172 4494
1015L 1172 3500
1016L 2356 3500
1017L 2356 3053
1018L 1172 3053
1019L 1172 1153
1020Q 1172 725 1289 603
1021Q 1406 481 1766 481
1022L 2356 481
1023L 2356 0
1024L 1766 0
1025Q 1100 0 847 248
1026Q 594 497 594 1153
1027L 594 3053
1028L 172 3053
1029L 172 3500
1030L 594 3500
1031L 594 4494
1032L 1172 4494
1033z
1034" transform="scale(0.015625)"/>
1035 </defs>
1036 <use xlink:href="#DejaVuSans-38"/>
1037 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1038 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1039 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1040 <use xlink:href="#DejaVuSans-d7" transform="translate(302.898438 0)"/>
1041 <use xlink:href="#DejaVuSans-32" transform="translate(386.6875 0)"/>
1042 <use xlink:href="#DejaVuSans-30" transform="translate(450.310547 0)"/>
1043 <use xlink:href="#DejaVuSans-30" transform="translate(513.933594 0)"/>
1044 <use xlink:href="#DejaVuSans-66" transform="translate(577.556641 0)"/>
1045 <use xlink:href="#DejaVuSans-74" transform="translate(611.011719 0)"/>
1046 </g>
1047 <!-- 1.329% · 4 homeruns -->
1048 <g transform="translate(99.312449 268.092033) scale(0.1 -0.1)">
1049 <defs>
1050 <path id="DejaVuSans-39" d="M 703 97
1051L 703 672
1052Q 941 559 1184 500
1053Q 1428 441 1663 441
1054Q 2288 441 2617 861
1055Q 2947 1281 2994 2138
1056Q 2813 1869 2534 1725
1057Q 2256 1581 1919 1581
1058Q 1219 1581 811 2004
1059Q 403 2428 403 3163
1060Q 403 3881 828 4315
1061Q 1253 4750 1959 4750
1062Q 2769 4750 3195 4129
1063Q 3622 3509 3622 2328
1064Q 3622 1225 3098 567
1065Q 2575 -91 1691 -91
1066Q 1453 -91 1209 -44
1067Q 966 3 703 97
1068z
1069M 1959 2075
1070Q 2384 2075 2632 2365
1071Q 2881 2656 2881 3163
1072Q 2881 3666 2632 3958
1073Q 2384 4250 1959 4250
1074Q 1534 4250 1286 3958
1075Q 1038 3666 1038 3163
1076Q 1038 2656 1286 2365
1077Q 1534 2075 1959 2075
1078z
1079" transform="scale(0.015625)"/>
1080 <path id="DejaVuSans-25" d="M 4653 2053
1081Q 4381 2053 4226 1822
1082Q 4072 1591 4072 1178
1083Q 4072 772 4226 539
1084Q 4381 306 4653 306
1085Q 4919 306 5073 539
1086Q 5228 772 5228 1178
1087Q 5228 1588 5073 1820
1088Q 4919 2053 4653 2053
1089z
1090M 4653 2450
1091Q 5147 2450 5437 2106
1092Q 5728 1763 5728 1178
1093Q 5728 594 5436 251
1094Q 5144 -91 4653 -91
1095Q 4153 -91 3862 251
1096Q 3572 594 3572 1178
1097Q 3572 1766 3864 2108
1098Q 4156 2450 4653 2450
1099z
1100M 1428 4353
1101Q 1159 4353 1004 4120
1102Q 850 3888 850 3481
1103Q 850 3069 1003 2837
1104Q 1156 2606 1428 2606
1105Q 1700 2606 1854 2837
1106Q 2009 3069 2009 3481
1107Q 2009 3884 1853 4118
1108Q 1697 4353 1428 4353
1109z
1110M 4250 4750
1111L 4750 4750
1112L 1831 -91
1113L 1331 -91
1114L 4250 4750
1115z
1116M 1428 4750
1117Q 1922 4750 2215 4408
1118Q 2509 4066 2509 3481
1119Q 2509 2891 2217 2550
1120Q 1925 2209 1428 2209
1121Q 931 2209 642 2551
1122Q 353 2894 353 3481
1123Q 353 4063 643 4406
1124Q 934 4750 1428 4750
1125z
1126" transform="scale(0.015625)"/>
1127 <path id="DejaVuSans-68" d="M 3513 2113
1128L 3513 0
1129L 2938 0
1130L 2938 2094
1131Q 2938 2591 2744 2837
1132Q 2550 3084 2163 3084
1133Q 1697 3084 1428 2787
1134Q 1159 2491 1159 1978
1135L 1159 0
1136L 581 0
1137L 581 4863
1138L 1159 4863
1139L 1159 2956
1140Q 1366 3272 1645 3428
1141Q 1925 3584 2291 3584
1142Q 2894 3584 3203 3211
1143Q 3513 2838 3513 2113
1144z
1145" transform="scale(0.015625)"/>
1146 <path id="DejaVuSans-6d" d="M 3328 2828
1147Q 3544 3216 3844 3400
1148Q 4144 3584 4550 3584
1149Q 5097 3584 5394 3201
1150Q 5691 2819 5691 2113
1151L 5691 0
1152L 5113 0
1153L 5113 2094
1154Q 5113 2597 4934 2840
1155Q 4756 3084 4391 3084
1156Q 3944 3084 3684 2787
1157Q 3425 2491 3425 1978
1158L 3425 0
1159L 2847 0
1160L 2847 2094
1161Q 2847 2600 2669 2842
1162Q 2491 3084 2119 3084
1163Q 1678 3084 1418 2786
1164Q 1159 2488 1159 1978
1165L 1159 0
1166L 581 0
1167L 581 3500
1168L 1159 3500
1169L 1159 2956
1170Q 1356 3278 1631 3431
1171Q 1906 3584 2284 3584
1172Q 2666 3584 2933 3390
1173Q 3200 3197 3328 2828
1174z
1175" transform="scale(0.015625)"/>
1176 <path id="DejaVuSans-65" d="M 3597 1894
1177L 3597 1613
1178L 953 1613
1179Q 991 1019 1311 708
1180Q 1631 397 2203 397
1181Q 2534 397 2845 478
1182Q 3156 559 3463 722
1183L 3463 178
1184Q 3153 47 2828 -22
1185Q 2503 -91 2169 -91
1186Q 1331 -91 842 396
1187Q 353 884 353 1716
1188Q 353 2575 817 3079
1189Q 1281 3584 2069 3584
1190Q 2775 3584 3186 3129
1191Q 3597 2675 3597 1894
1192z
1193M 3022 2063
1194Q 3016 2534 2758 2815
1195Q 2500 3097 2075 3097
1196Q 1594 3097 1305 2825
1197Q 1016 2553 972 2059
1198L 3022 2063
1199z
1200" transform="scale(0.015625)"/>
1201 <path id="DejaVuSans-72" d="M 2631 2963
1202Q 2534 3019 2420 3045
1203Q 2306 3072 2169 3072
1204Q 1681 3072 1420 2755
1205Q 1159 2438 1159 1844
1206L 1159 0
1207L 581 0
1208L 581 3500
1209L 1159 3500
1210L 1159 2956
1211Q 1341 3275 1631 3429
1212Q 1922 3584 2338 3584
1213Q 2397 3584 2469 3576
1214Q 2541 3569 2628 3553
1215L 2631 2963
1216z
1217" transform="scale(0.015625)"/>
1218 <path id="DejaVuSans-75" d="M 544 1381
1219L 544 3500
1220L 1119 3500
1221L 1119 1403
1222Q 1119 906 1312 657
1223Q 1506 409 1894 409
1224Q 2359 409 2629 706
1225Q 2900 1003 2900 1516
1226L 2900 3500
1227L 3475 3500
1228L 3475 0
1229L 2900 0
1230L 2900 538
1231Q 2691 219 2414 64
1232Q 2138 -91 1772 -91
1233Q 1169 -91 856 284
1234Q 544 659 544 1381
1235z
1236M 1991 3584
1237L 1991 3584
1238z
1239" transform="scale(0.015625)"/>
1240 <path id="DejaVuSans-6e" d="M 3513 2113
1241L 3513 0
1242L 2938 0
1243L 2938 2094
1244Q 2938 2591 2744 2837
1245Q 2550 3084 2163 3084
1246Q 1697 3084 1428 2787
1247Q 1159 2491 1159 1978
1248L 1159 0
1249L 581 0
1250L 581 3500
1251L 1159 3500
1252L 1159 2956
1253Q 1366 3272 1645 3428
1254Q 1925 3584 2291 3584
1255Q 2894 3584 3203 3211
1256Q 3513 2838 3513 2113
1257z
1258" transform="scale(0.015625)"/>
1259 <path id="DejaVuSans-73" d="M 2834 3397
1260L 2834 2853
1261Q 2591 2978 2328 3040
1262Q 2066 3103 1784 3103
1263Q 1356 3103 1142 2972
1264Q 928 2841 928 2578
1265Q 928 2378 1081 2264
1266Q 1234 2150 1697 2047
1267L 1894 2003
1268Q 2506 1872 2764 1633
1269Q 3022 1394 3022 966
1270Q 3022 478 2636 193
1271Q 2250 -91 1575 -91
1272Q 1294 -91 989 -36
1273Q 684 19 347 128
1274L 347 722
1275Q 666 556 975 473
1276Q 1284 391 1588 391
1277Q 1994 391 2212 530
1278Q 2431 669 2431 922
1279Q 2431 1156 2273 1281
1280Q 2116 1406 1581 1522
1281L 1381 1569
1282Q 847 1681 609 1914
1283Q 372 2147 372 2553
1284Q 372 3047 722 3315
1285Q 1072 3584 1716 3584
1286Q 2034 3584 2315 3537
1287Q 2597 3491 2834 3397
1288z
1289" transform="scale(0.015625)"/>
1290 </defs>
1291 <use xlink:href="#DejaVuSans-31"/>
1292 <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
1293 <use xlink:href="#DejaVuSans-33" transform="translate(95.410156 0)"/>
1294 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1295 <use xlink:href="#DejaVuSans-39" transform="translate(222.65625 0)"/>
1296 <use xlink:href="#DejaVuSans-25" transform="translate(286.279297 0)"/>
1297 <use xlink:href="#DejaVuSans-20" transform="translate(381.298828 0)"/>
1298 <use xlink:href="#DejaVuSans-b7" transform="translate(413.085938 0)"/>
1299 <use xlink:href="#DejaVuSans-20" transform="translate(444.873047 0)"/>
1300 <use xlink:href="#DejaVuSans-34" transform="translate(476.660156 0)"/>
1301 <use xlink:href="#DejaVuSans-20" transform="translate(540.283203 0)"/>
1302 <use xlink:href="#DejaVuSans-68" transform="translate(572.070312 0)"/>
1303 <use xlink:href="#DejaVuSans-6f" transform="translate(635.449219 0)"/>
1304 <use xlink:href="#DejaVuSans-6d" transform="translate(696.630859 0)"/>
1305 <use xlink:href="#DejaVuSans-65" transform="translate(794.042969 0)"/>
1306 <use xlink:href="#DejaVuSans-72" transform="translate(855.566406 0)"/>
1307 <use xlink:href="#DejaVuSans-75" transform="translate(896.679688 0)"/>
1308 <use xlink:href="#DejaVuSans-6e" transform="translate(960.058594 0)"/>
1309 <use xlink:href="#DejaVuSans-73" transform="translate(1023.4375 0)"/>
1310 </g>
1311 </g>
1312 <g id="patch_5">
1313 <path d="M 204.16807 278.08562
1314C 205.312865 278.08562 206.410926 277.630788 207.220418 276.821296
1315C 208.029911 276.011804 208.484742 274.913742 208.484742 273.768948
1316C 208.484742 272.624153 208.029911 271.526092 207.220418 270.716599
1317C 206.410926 269.907107 205.312865 269.452275 204.16807 269.452275
1318C 203.023275 269.452275 201.925214 269.907107 201.115722 270.716599
1319C 200.30623 271.526092 199.851398 272.624153 199.851398 273.768948
1320C 199.851398 274.913742 200.30623 276.011804 201.115722 276.821296
1321C 201.925214 277.630788 203.023275 278.08562 204.16807 278.08562
1322z
1323" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1324 </g>
1325 <g id="patch_6">
1326 <path d="M 231.506994 278.08562
1327C 232.651789 278.08562 233.74985 277.630788 234.559342 276.821296
1328C 235.368835 276.011804 235.823666 274.913742 235.823666 273.768948
1329C 235.823666 272.624153 235.368835 271.526092 234.559342 270.716599
1330C 233.74985 269.907107 232.651789 269.452275 231.506994 269.452275
1331C 230.362199 269.452275 229.264138 269.907107 228.454646 270.716599
1332C 227.645154 271.526092 227.190322 272.624153 227.190322 273.768948
1333C 227.190322 274.913742 227.645154 276.011804 228.454646 276.821296
1334C 229.264138 277.630788 230.362199 278.08562 231.506994 278.08562
1335z
1336" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1337 </g>
1338 <g id="patch_7">
1339 <path d="M 204.16807 314.057888
1340C 205.312865 314.057888 206.410926 313.603057 207.220418 312.793564
1341C 208.029911 311.984072 208.484742 310.886011 208.484742 309.741216
1342C 208.484742 308.596421 208.029911 307.49836 207.220418 306.688868
1343C 206.410926 305.879376 205.312865 305.424544 204.16807 305.424544
1344C 203.023275 305.424544 201.925214 305.879376 201.115722 306.688868
1345C 200.30623 307.49836 199.851398 308.596421 199.851398 309.741216
1346C 199.851398 310.886011 200.30623 311.984072 201.115722 312.793564
1347C 201.925214 313.603057 203.023275 314.057888 204.16807 314.057888
1348z
1349" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1350 </g>
1351 <g id="patch_8">
1352 <path d="M 231.506994 314.057888
1353C 232.651789 314.057888 233.74985 313.603057 234.559342 312.793564
1354C 235.368835 311.984072 235.823666 310.886011 235.823666 309.741216
1355C 235.823666 308.596421 235.368835 307.49836 234.559342 306.688868
1356C 233.74985 305.879376 232.651789 305.424544 231.506994 305.424544
1357C 230.362199 305.424544 229.264138 305.879376 228.454646 306.688868
1358C 227.645154 307.49836 227.190322 308.596421 227.190322 309.741216
1359C 227.190322 310.886011 227.645154 311.984072 228.454646 312.793564
1360C 229.264138 313.603057 230.362199 314.057888 231.506994 314.057888
1361z
1362" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1363 </g>
1364 <g id="text_3">
1365 <!-- DC -->
1366 <g transform="translate(210.496126 325.253553) scale(0.1 -0.1)">
1367 <use xlink:href="#DejaVuSans-44"/>
1368 <use xlink:href="#DejaVuSans-43" transform="translate(77.001953 0)"/>
1369 </g>
1370 <!-- disc -->
1371 <g transform="translate(207.920345 334.931678) scale(0.1 -0.1)">
1372 <defs>
1373 <path id="DejaVuSans-69" d="M 603 3500
1374L 1178 3500
1375L 1178 0
1376L 603 0
1377L 603 3500
1378z
1379M 603 4863
1380L 1178 4863
1381L 1178 4134
1382L 603 4134
1383L 603 4863
1384z
1385" transform="scale(0.015625)"/>
1386 </defs>
1387 <use xlink:href="#DejaVuSans-64"/>
1388 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1389 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1390 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1391 </g>
1392 </g>
1393 <g id="text_4">
1394 <!-- PV -->
1395 <g transform="translate(266.400095 277.632073) scale(0.14 -0.14)">
1396 <use xlink:href="#DejaVuSans-50"/>
1397 <use xlink:href="#DejaVuSans-56" transform="translate(60.302734 0)"/>
1398 </g>
1399 </g>
1400 <g id="text_5">
1401 <!-- AC -->
1402 <g transform="translate(337.222953 277.632073) scale(0.14 -0.14)">
1403 <use xlink:href="#DejaVuSans-41"/>
1404 <use xlink:href="#DejaVuSans-43" transform="translate(66.658203 0)"/>
1405 </g>
1406 </g>
1407 <g id="text_6">
1408 <!-- ACIN -->
1409 <g transform="translate(294.509649 244.837265) scale(0.14 -0.14)">
1410 <defs>
1411 <path id="DejaVuSans-49" d="M 628 4666
1412L 1259 4666
1413L 1259 0
1414L 628 0
1415L 628 4666
1416z
1417" transform="scale(0.015625)"/>
1418 <path id="DejaVuSans-4e" d="M 628 4666
1419L 1478 4666
1420L 3547 763
1421L 3547 4666
1422L 4159 4666
1423L 4159 0
1424L 3309 0
1425L 1241 3903
1426L 1241 0
1427L 628 0
1428L 628 4666
1429z
1430" transform="scale(0.015625)"/>
1431 </defs>
1432 <use xlink:href="#DejaVuSans-41"/>
1433 <use xlink:href="#DejaVuSans-43" transform="translate(66.658203 0)"/>
1434 <use xlink:href="#DejaVuSans-49" transform="translate(136.482422 0)"/>
1435 <use xlink:href="#DejaVuSans-4e" transform="translate(165.974609 0)"/>
1436 </g>
1437 </g>
1438 <g id="text_7">
1439 <!-- BATP -->
1440 <g transform="translate(261.445545 310.42688) scale(0.14 -0.14)">
1441 <defs>
1442 <path id="DejaVuSans-42" d="M 1259 2228
1443L 1259 519
1444L 2272 519
1445Q 2781 519 3026 730
1446Q 3272 941 3272 1375
1447Q 3272 1813 3026 2020
1448Q 2781 2228 2272 2228
1449L 1259 2228
1450z
1451M 1259 4147
1452L 1259 2741
1453L 2194 2741
1454Q 2656 2741 2882 2914
1455Q 3109 3088 3109 3444
1456Q 3109 3797 2882 3972
1457Q 2656 4147 2194 4147
1458L 1259 4147
1459z
1460M 628 4666
1461L 2241 4666
1462Q 2963 4666 3353 4366
1463Q 3744 4066 3744 3513
1464Q 3744 3084 3544 2831
1465Q 3344 2578 2956 2516
1466Q 3422 2416 3680 2098
1467Q 3938 1781 3938 1306
1468Q 3938 681 3513 340
1469Q 3088 0 2303 0
1470L 628 0
1471L 628 4666
1472z
1473" transform="scale(0.015625)"/>
1474 <path id="DejaVuSans-54" d="M -19 4666
1475L 3928 4666
1476L 3928 4134
1477L 2272 4134
1478L 2272 0
1479L 1638 0
1480L 1638 4134
1481L -19 4134
1482L -19 4666
1483z
1484" transform="scale(0.015625)"/>
1485 </defs>
1486 <use xlink:href="#DejaVuSans-42"/>
1487 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
1488 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
1489 <use xlink:href="#DejaVuSans-50" transform="translate(190.345703 0)"/>
1490 </g>
1491 </g>
1492 <g id="text_8">
1493 <!-- GND -->
1494 <g transform="translate(327.689691 310.42688) scale(0.14 -0.14)">
1495 <use xlink:href="#DejaVuSans-47"/>
1496 <use xlink:href="#DejaVuSans-4e" transform="translate(77.490234 0)"/>
1497 <use xlink:href="#DejaVuSans-44" transform="translate(152.294922 0)"/>
1498 </g>
1499 </g>
1500 <g id="text_9">
1501 <!-- 2× EG4 6000XP (parallel) · 12kW -->
1502 <g transform="translate(240.271798 212.542986) scale(0.09 -0.09)">
1503 <defs>
1504 <path id="DejaVuSans-45" d="M 628 4666
1505L 3578 4666
1506L 3578 4134
1507L 1259 4134
1508L 1259 2753
1509L 3481 2753
1510L 3481 2222
1511L 1259 2222
1512L 1259 531
1513L 3634 531
1514L 3634 0
1515L 628 0
1516L 628 4666
1517z
1518" transform="scale(0.015625)"/>
1519 <path id="DejaVuSans-58" d="M 403 4666
1520L 1081 4666
1521L 2241 2931
1522L 3406 4666
1523L 4084 4666
1524L 2584 2425
1525L 4184 0
1526L 3506 0
1527L 2194 1984
1528L 872 0
1529L 191 0
1530L 1856 2491
1531L 403 4666
1532z
1533" transform="scale(0.015625)"/>
1534 <path id="DejaVuSans-70" d="M 1159 525
1535L 1159 -1331
1536L 581 -1331
1537L 581 3500
1538L 1159 3500
1539L 1159 2969
1540Q 1341 3281 1617 3432
1541Q 1894 3584 2278 3584
1542Q 2916 3584 3314 3078
1543Q 3713 2572 3713 1747
1544Q 3713 922 3314 415
1545Q 2916 -91 2278 -91
1546Q 1894 -91 1617 61
1547Q 1341 213 1159 525
1548z
1549M 3116 1747
1550Q 3116 2381 2855 2742
1551Q 2594 3103 2138 3103
1552Q 1681 3103 1420 2742
1553Q 1159 2381 1159 1747
1554Q 1159 1113 1420 752
1555Q 1681 391 2138 391
1556Q 2594 391 2855 752
1557Q 3116 1113 3116 1747
1558z
1559" transform="scale(0.015625)"/>
1560 <path id="DejaVuSans-61" d="M 2194 1759
1561Q 1497 1759 1228 1600
1562Q 959 1441 959 1056
1563Q 959 750 1161 570
1564Q 1363 391 1709 391
1565Q 2188 391 2477 730
1566Q 2766 1069 2766 1631
1567L 2766 1759
1568L 2194 1759
1569z
1570M 3341 1997
1571L 3341 0
1572L 2766 0
1573L 2766 531
1574Q 2569 213 2275 61
1575Q 1981 -91 1556 -91
1576Q 1019 -91 701 211
1577Q 384 513 384 1019
1578Q 384 1609 779 1909
1579Q 1175 2209 1959 2209
1580L 2766 2209
1581L 2766 2266
1582Q 2766 2663 2505 2880
1583Q 2244 3097 1772 3097
1584Q 1472 3097 1187 3025
1585Q 903 2953 641 2809
1586L 641 3341
1587Q 956 3463 1253 3523
1588Q 1550 3584 1831 3584
1589Q 2591 3584 2966 3190
1590Q 3341 2797 3341 1997
1591z
1592" transform="scale(0.015625)"/>
1593 <path id="DejaVuSans-6b" d="M 581 4863
1594L 1159 4863
1595L 1159 1991
1596L 2875 3500
1597L 3609 3500
1598L 1753 1863
1599L 3688 0
1600L 2938 0
1601L 1159 1709
1602L 1159 0
1603L 581 0
1604L 581 4863
1605z
1606" transform="scale(0.015625)"/>
1607 </defs>
1608 <use xlink:href="#DejaVuSans-32"/>
1609 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
1610 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
1611 <use xlink:href="#DejaVuSans-45" transform="translate(179.199219 0)"/>
1612 <use xlink:href="#DejaVuSans-47" transform="translate(242.382812 0)"/>
1613 <use xlink:href="#DejaVuSans-34" transform="translate(319.873047 0)"/>
1614 <use xlink:href="#DejaVuSans-20" transform="translate(383.496094 0)"/>
1615 <use xlink:href="#DejaVuSans-36" transform="translate(415.283203 0)"/>
1616 <use xlink:href="#DejaVuSans-30" transform="translate(478.90625 0)"/>
1617 <use xlink:href="#DejaVuSans-30" transform="translate(542.529297 0)"/>
1618 <use xlink:href="#DejaVuSans-30" transform="translate(606.152344 0)"/>
1619 <use xlink:href="#DejaVuSans-58" transform="translate(669.775391 0)"/>
1620 <use xlink:href="#DejaVuSans-50" transform="translate(738.28125 0)"/>
1621 <use xlink:href="#DejaVuSans-20" transform="translate(798.583984 0)"/>
1622 <use xlink:href="#DejaVuSans-28" transform="translate(830.371094 0)"/>
1623 <use xlink:href="#DejaVuSans-70" transform="translate(869.384766 0)"/>
1624 <use xlink:href="#DejaVuSans-61" transform="translate(932.861328 0)"/>
1625 <use xlink:href="#DejaVuSans-72" transform="translate(994.140625 0)"/>
1626 <use xlink:href="#DejaVuSans-61" transform="translate(1035.253906 0)"/>
1627 <use xlink:href="#DejaVuSans-6c" transform="translate(1096.533203 0)"/>
1628 <use xlink:href="#DejaVuSans-6c" transform="translate(1124.316406 0)"/>
1629 <use xlink:href="#DejaVuSans-65" transform="translate(1152.099609 0)"/>
1630 <use xlink:href="#DejaVuSans-6c" transform="translate(1213.623047 0)"/>
1631 <use xlink:href="#DejaVuSans-29" transform="translate(1241.40625 0)"/>
1632 <use xlink:href="#DejaVuSans-20" transform="translate(1280.419922 0)"/>
1633 <use xlink:href="#DejaVuSans-b7" transform="translate(1312.207031 0)"/>
1634 <use xlink:href="#DejaVuSans-20" transform="translate(1343.994141 0)"/>
1635 <use xlink:href="#DejaVuSans-31" transform="translate(1375.78125 0)"/>
1636 <use xlink:href="#DejaVuSans-32" transform="translate(1439.404297 0)"/>
1637 <use xlink:href="#DejaVuSans-6b" transform="translate(1503.027344 0)"/>
1638 <use xlink:href="#DejaVuSans-57" transform="translate(1560.9375 0)"/>
1639 </g>
1640 <!-- 4 MPPT · 16kW PV · RSD·AFCI·GFDI ×2 -->
1641 <g transform="translate(228.650548 221.253298) scale(0.09 -0.09)">
1642 <defs>
1643 <path id="DejaVuSans-4d" d="M 628 4666
1644L 1569 4666
1645L 2759 1491
1646L 3956 4666
1647L 4897 4666
1648L 4897 0
1649L 4281 0
1650L 4281 4097
1651L 3078 897
1652L 2444 897
1653L 1241 4097
1654L 1241 0
1655L 628 0
1656L 628 4666
1657z
1658" transform="scale(0.015625)"/>
1659 <path id="DejaVuSans-46" d="M 628 4666
1660L 3309 4666
1661L 3309 4134
1662L 1259 4134
1663L 1259 2759
1664L 3109 2759
1665L 3109 2228
1666L 1259 2228
1667L 1259 0
1668L 628 0
1669L 628 4666
1670z
1671" transform="scale(0.015625)"/>
1672 </defs>
1673 <use xlink:href="#DejaVuSans-34"/>
1674 <use xlink:href="#DejaVuSans-20" transform="translate(63.623047 0)"/>
1675 <use xlink:href="#DejaVuSans-4d" transform="translate(95.410156 0)"/>
1676 <use xlink:href="#DejaVuSans-50" transform="translate(181.689453 0)"/>
1677 <use xlink:href="#DejaVuSans-50" transform="translate(241.992188 0)"/>
1678 <use xlink:href="#DejaVuSans-54" transform="translate(302.294922 0)"/>
1679 <use xlink:href="#DejaVuSans-20" transform="translate(363.378906 0)"/>
1680 <use xlink:href="#DejaVuSans-b7" transform="translate(395.166016 0)"/>
1681 <use xlink:href="#DejaVuSans-20" transform="translate(426.953125 0)"/>
1682 <use xlink:href="#DejaVuSans-31" transform="translate(458.740234 0)"/>
1683 <use xlink:href="#DejaVuSans-36" transform="translate(522.363281 0)"/>
1684 <use xlink:href="#DejaVuSans-6b" transform="translate(585.986328 0)"/>
1685 <use xlink:href="#DejaVuSans-57" transform="translate(643.896484 0)"/>
1686 <use xlink:href="#DejaVuSans-20" transform="translate(742.773438 0)"/>
1687 <use xlink:href="#DejaVuSans-50" transform="translate(774.560547 0)"/>
1688 <use xlink:href="#DejaVuSans-56" transform="translate(834.863281 0)"/>
1689 <use xlink:href="#DejaVuSans-20" transform="translate(903.271484 0)"/>
1690 <use xlink:href="#DejaVuSans-b7" transform="translate(935.058594 0)"/>
1691 <use xlink:href="#DejaVuSans-20" transform="translate(966.845703 0)"/>
1692 <use xlink:href="#DejaVuSans-52" transform="translate(998.632812 0)"/>
1693 <use xlink:href="#DejaVuSans-53" transform="translate(1068.115234 0)"/>
1694 <use xlink:href="#DejaVuSans-44" transform="translate(1131.591797 0)"/>
1695 <use xlink:href="#DejaVuSans-b7" transform="translate(1208.59375 0)"/>
1696 <use xlink:href="#DejaVuSans-41" transform="translate(1240.380859 0)"/>
1697 <use xlink:href="#DejaVuSans-46" transform="translate(1308.789062 0)"/>
1698 <use xlink:href="#DejaVuSans-43" transform="translate(1366.308594 0)"/>
1699 <use xlink:href="#DejaVuSans-49" transform="translate(1436.132812 0)"/>
1700 <use xlink:href="#DejaVuSans-b7" transform="translate(1465.625 0)"/>
1701 <use xlink:href="#DejaVuSans-47" transform="translate(1497.412109 0)"/>
1702 <use xlink:href="#DejaVuSans-46" transform="translate(1574.902344 0)"/>
1703 <use xlink:href="#DejaVuSans-44" transform="translate(1632.421875 0)"/>
1704 <use xlink:href="#DejaVuSans-49" transform="translate(1709.423828 0)"/>
1705 <use xlink:href="#DejaVuSans-20" transform="translate(1738.916016 0)"/>
1706 <use xlink:href="#DejaVuSans-d7" transform="translate(1770.703125 0)"/>
1707 <use xlink:href="#DejaVuSans-32" transform="translate(1854.492188 0)"/>
1708 </g>
1709 </g>
1710 <g id="patch_9">
1711 <path d="M 311.36543 160.456302
1712C 312.510225 160.456302 313.608286 160.00147 314.417778 159.191978
1713C 315.227271 158.382486 315.682102 157.284425 315.682102 156.13963
1714C 315.682102 154.994835 315.227271 153.896774 314.417778 153.087282
1715C 313.608286 152.277789 312.510225 151.822958 311.36543 151.822958
1716C 310.220635 151.822958 309.122574 152.277789 308.313082 153.087282
1717C 307.50359 153.896774 307.048758 154.994835 307.048758 156.13963
1718C 307.048758 157.284425 307.50359 158.382486 308.313082 159.191978
1719C 309.122574 160.00147 310.220635 160.456302 311.36543 160.456302
1720z
1721" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1722 </g>
1723 <g id="patch_10">
1724 <path d="M 311.36543 133.117378
1725C 312.510225 133.117378 313.608286 132.662546 314.417778 131.853054
1726C 315.227271 131.043562 315.682102 129.945501 315.682102 128.800706
1727C 315.682102 127.655911 315.227271 126.55785 314.417778 125.748358
1728C 313.608286 124.938865 312.510225 124.484033 311.36543 124.484033
1729C 310.220635 124.484033 309.122574 124.938865 308.313082 125.748358
1730C 307.50359 126.55785 307.048758 127.655911 307.048758 128.800706
1731C 307.048758 129.945501 307.50359 131.043562 308.313082 131.853054
1732C 309.122574 132.662546 310.220635 133.117378 311.36543 133.117378
1733z
1734" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1735 </g>
1736 <g id="patch_11">
1737 <path d="M 347.337699 160.456302
1738C 348.482494 160.456302 349.580555 160.00147 350.390047 159.191978
1739C 351.199539 158.382486 351.654371 157.284425 351.654371 156.13963
1740C 351.654371 154.994835 351.199539 153.896774 350.390047 153.087282
1741C 349.580555 152.277789 348.482494 151.822958 347.337699 151.822958
1742C 346.192904 151.822958 345.094843 152.277789 344.28535 153.087282
1743C 343.475858 153.896774 343.021026 154.994835 343.021026 156.13963
1744C 343.021026 157.284425 343.475858 158.382486 344.28535 159.191978
1745C 345.094843 160.00147 346.192904 160.456302 347.337699 160.456302
1746z
1747" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1748 </g>
1749 <g id="patch_12">
1750 <path d="M 347.337699 133.117378
1751C 348.482494 133.117378 349.580555 132.662546 350.390047 131.853054
1752C 351.199539 131.043562 351.654371 129.945501 351.654371 128.800706
1753C 351.654371 127.655911 351.199539 126.55785 350.390047 125.748358
1754C 349.580555 124.938865 348.482494 124.484033 347.337699 124.484033
1755C 346.192904 124.484033 345.094843 124.938865 344.28535 125.748358
1756C 343.475858 126.55785 343.021026 127.655911 343.021026 128.800706
1757C 343.021026 129.945501 343.475858 131.043562 344.28535 131.853054
1758C 345.094843 132.662546 346.192904 133.117378 347.337699 133.117378
1759z
1760" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1761 </g>
1762 <g id="text_10">
1763 <!-- gen AC-IN -->
1764 <g transform="translate(301.049031 119.015088) scale(0.09 -0.09)">
1765 <defs>
1766 <path id="DejaVuSans-67" d="M 2906 1791
1767Q 2906 2416 2648 2759
1768Q 2391 3103 1925 3103
1769Q 1463 3103 1205 2759
1770Q 947 2416 947 1791
1771Q 947 1169 1205 825
1772Q 1463 481 1925 481
1773Q 2391 481 2648 825
1774Q 2906 1169 2906 1791
1775z
1776M 3481 434
1777Q 3481 -459 3084 -895
1778Q 2688 -1331 1869 -1331
1779Q 1566 -1331 1297 -1286
1780Q 1028 -1241 775 -1147
1781L 775 -588
1782Q 1028 -725 1275 -790
1783Q 1522 -856 1778 -856
1784Q 2344 -856 2625 -561
1785Q 2906 -266 2906 331
1786L 2906 616
1787Q 2728 306 2450 153
1788Q 2172 0 1784 0
1789Q 1141 0 747 490
1790Q 353 981 353 1791
1791Q 353 2603 747 3093
1792Q 1141 3584 1784 3584
1793Q 2172 3584 2450 3431
1794Q 2728 3278 2906 2969
1795L 2906 3500
1796L 3481 3500
1797L 3481 434
1798z
1799" transform="scale(0.015625)"/>
1800 <path id="DejaVuSans-2d" d="M 313 2009
1801L 1997 2009
1802L 1997 1497
1803L 313 1497
1804L 313 2009
1805z
1806" transform="scale(0.015625)"/>
1807 </defs>
1808 <use xlink:href="#DejaVuSans-67"/>
1809 <use xlink:href="#DejaVuSans-65" transform="translate(63.476562 0)"/>
1810 <use xlink:href="#DejaVuSans-6e" transform="translate(125 0)"/>
1811 <use xlink:href="#DejaVuSans-20" transform="translate(188.378906 0)"/>
1812 <use xlink:href="#DejaVuSans-41" transform="translate(220.166016 0)"/>
1813 <use xlink:href="#DejaVuSans-43" transform="translate(286.824219 0)"/>
1814 <use xlink:href="#DejaVuSans-2d" transform="translate(356.648438 0)"/>
1815 <use xlink:href="#DejaVuSans-49" transform="translate(392.732422 0)"/>
1816 <use xlink:href="#DejaVuSans-4e" transform="translate(422.224609 0)"/>
1817 </g>
1818 </g>
1819 <g id="text_11">
1820 <!-- GENERATOR -->
1821 <g transform="translate(249.647636 88.646628) scale(0.08 -0.08)">
1822 <defs>
1823 <path id="DejaVuSans-4f" d="M 2522 4238
1824Q 1834 4238 1429 3725
1825Q 1025 3213 1025 2328
1826Q 1025 1447 1429 934
1827Q 1834 422 2522 422
1828Q 3209 422 3611 934
1829Q 4013 1447 4013 2328
1830Q 4013 3213 3611 3725
1831Q 3209 4238 2522 4238
1832z
1833M 2522 4750
1834Q 3503 4750 4090 4092
1835Q 4678 3434 4678 2328
1836Q 4678 1225 4090 567
1837Q 3503 -91 2522 -91
1838Q 1538 -91 948 565
1839Q 359 1222 359 2328
1840Q 359 3434 948 4092
1841Q 1538 4750 2522 4750
1842z
1843" transform="scale(0.015625)"/>
1844 </defs>
1845 <use xlink:href="#DejaVuSans-47"/>
1846 <use xlink:href="#DejaVuSans-45" transform="translate(77.490234 0)"/>
1847 <use xlink:href="#DejaVuSans-4e" transform="translate(140.673828 0)"/>
1848 <use xlink:href="#DejaVuSans-45" transform="translate(215.478516 0)"/>
1849 <use xlink:href="#DejaVuSans-52" transform="translate(278.662109 0)"/>
1850 <use xlink:href="#DejaVuSans-41" transform="translate(344.144531 0)"/>
1851 <use xlink:href="#DejaVuSans-54" transform="translate(404.802734 0)"/>
1852 <use xlink:href="#DejaVuSans-4f" transform="translate(465.886719 0)"/>
1853 <use xlink:href="#DejaVuSans-52" transform="translate(544.597656 0)"/>
1854 </g>
1855 <!-- 200A bypass · 90A gen -->
1856 <g transform="translate(206.466386 96.389128) scale(0.08 -0.08)">
1857 <defs>
1858 <path id="DejaVuSans-62" d="M 3116 1747
1859Q 3116 2381 2855 2742
1860Q 2594 3103 2138 3103
1861Q 1681 3103 1420 2742
1862Q 1159 2381 1159 1747
1863Q 1159 1113 1420 752
1864Q 1681 391 2138 391
1865Q 2594 391 2855 752
1866Q 3116 1113 3116 1747
1867z
1868M 1159 2969
1869Q 1341 3281 1617 3432
1870Q 1894 3584 2278 3584
1871Q 2916 3584 3314 3078
1872Q 3713 2572 3713 1747
1873Q 3713 922 3314 415
1874Q 2916 -91 2278 -91
1875Q 1894 -91 1617 61
1876Q 1341 213 1159 525
1877L 1159 0
1878L 581 0
1879L 581 4863
1880L 1159 4863
1881L 1159 2969
1882z
1883" transform="scale(0.015625)"/>
1884 <path id="DejaVuSans-79" d="M 2059 -325
1885Q 1816 -950 1584 -1140
1886Q 1353 -1331 966 -1331
1887L 506 -1331
1888L 506 -850
1889L 844 -850
1890Q 1081 -850 1212 -737
1891Q 1344 -625 1503 -206
1892L 1606 56
1893L 191 3500
1894L 800 3500
1895L 1894 763
1896L 2988 3500
1897L 3597 3500
1898L 2059 -325
1899z
1900" transform="scale(0.015625)"/>
1901 </defs>
1902 <use xlink:href="#DejaVuSans-32"/>
1903 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1904 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1905 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1906 <use xlink:href="#DejaVuSans-20" transform="translate(259.277344 0)"/>
1907 <use xlink:href="#DejaVuSans-62" transform="translate(291.064453 0)"/>
1908 <use xlink:href="#DejaVuSans-79" transform="translate(354.541016 0)"/>
1909 <use xlink:href="#DejaVuSans-70" transform="translate(413.720703 0)"/>
1910 <use xlink:href="#DejaVuSans-61" transform="translate(477.197266 0)"/>
1911 <use xlink:href="#DejaVuSans-73" transform="translate(538.476562 0)"/>
1912 <use xlink:href="#DejaVuSans-73" transform="translate(590.576172 0)"/>
1913 <use xlink:href="#DejaVuSans-20" transform="translate(642.675781 0)"/>
1914 <use xlink:href="#DejaVuSans-b7" transform="translate(674.462891 0)"/>
1915 <use xlink:href="#DejaVuSans-20" transform="translate(706.25 0)"/>
1916 <use xlink:href="#DejaVuSans-39" transform="translate(738.037109 0)"/>
1917 <use xlink:href="#DejaVuSans-30" transform="translate(801.660156 0)"/>
1918 <use xlink:href="#DejaVuSans-41" transform="translate(865.283203 0)"/>
1919 <use xlink:href="#DejaVuSans-20" transform="translate(933.691406 0)"/>
1920 <use xlink:href="#DejaVuSans-67" transform="translate(965.478516 0)"/>
1921 <use xlink:href="#DejaVuSans-65" transform="translate(1028.955078 0)"/>
1922 <use xlink:href="#DejaVuSans-6e" transform="translate(1090.478516 0)"/>
1923 </g>
1924 </g>
1925 <g id="patch_13">
1926 <path d="M 448.779496 278.08562
1927C 449.924291 278.08562 451.022352 277.630788 451.831844 276.821296
1928C 452.641336 276.011804 453.096168 274.913742 453.096168 273.768948
1929C 453.096168 272.624153 452.641336 271.526092 451.831844 270.716599
1930C 451.022352 269.907107 449.924291 269.452275 448.779496 269.452275
1931C 447.634701 269.452275 446.53664 269.907107 445.727148 270.716599
1932C 444.917655 271.526092 444.462824 272.624153 444.462824 273.768948
1933C 444.462824 274.913742 444.917655 276.011804 445.727148 276.821296
1934C 446.53664 277.630788 447.634701 278.08562 448.779496 278.08562
1935z
1936" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1937 </g>
1938 <g id="patch_14">
1939 <path d="M 476.11842 278.08562
1940C 477.263215 278.08562 478.361276 277.630788 479.170768 276.821296
1941C 479.98026 276.011804 480.435092 274.913742 480.435092 273.768948
1942C 480.435092 272.624153 479.98026 271.526092 479.170768 270.716599
1943C 478.361276 269.907107 477.263215 269.452275 476.11842 269.452275
1944C 474.973625 269.452275 473.875564 269.907107 473.066072 270.716599
1945C 472.256579 271.526092 471.801748 272.624153 471.801748 273.768948
1946C 471.801748 274.913742 472.256579 276.011804 473.066072 276.821296
1947C 473.875564 277.630788 474.973625 278.08562 476.11842 278.08562
1948z
1949" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1950 </g>
1951 <g id="patch_15">
1952 <path d="M 448.779496 314.057888
1953C 449.924291 314.057888 451.022352 313.603057 451.831844 312.793564
1954C 452.641336 311.984072 453.096168 310.886011 453.096168 309.741216
1955C 453.096168 308.596421 452.641336 307.49836 451.831844 306.688868
1956C 451.022352 305.879376 449.924291 305.424544 448.779496 305.424544
1957C 447.634701 305.424544 446.53664 305.879376 445.727148 306.688868
1958C 444.917655 307.49836 444.462824 308.596421 444.462824 309.741216
1959C 444.462824 310.886011 444.917655 311.984072 445.727148 312.793564
1960C 446.53664 313.603057 447.634701 314.057888 448.779496 314.057888
1961z
1962" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1963 </g>
1964 <g id="patch_16">
1965 <path d="M 476.11842 314.057888
1966C 477.263215 314.057888 478.361276 313.603057 479.170768 312.793564
1967C 479.98026 311.984072 480.435092 310.886011 480.435092 309.741216
1968C 480.435092 308.596421 479.98026 307.49836 479.170768 306.688868
1969C 478.361276 305.879376 477.263215 305.424544 476.11842 305.424544
1970C 474.973625 305.424544 473.875564 305.879376 473.066072 306.688868
1971C 472.256579 307.49836 471.801748 308.596421 471.801748 309.741216
1972C 471.801748 310.886011 472.256579 311.984072 473.066072 312.793564
1973C 473.875564 313.603057 474.973625 314.057888 476.11842 314.057888
1974z
1975" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1976 </g>
1977 <g id="text_12">
1978 <!-- 70A -->
1979 <g transform="translate(452.666145 242.226387) scale(0.1 -0.1)">
1980 <use xlink:href="#DejaVuSans-37"/>
1981 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1982 <use xlink:href="#DejaVuSans-41" transform="translate(127.246094 0)"/>
1983 </g>
1984 <!-- 2-pole -->
1985 <g transform="translate(446.764583 251.904512) scale(0.1 -0.1)">
1986 <use xlink:href="#DejaVuSans-32"/>
1987 <use xlink:href="#DejaVuSans-2d" transform="translate(63.623047 0)"/>
1988 <use xlink:href="#DejaVuSans-70" transform="translate(99.707031 0)"/>
1989 <use xlink:href="#DejaVuSans-6f" transform="translate(163.183594 0)"/>
1990 <use xlink:href="#DejaVuSans-6c" transform="translate(224.365234 0)"/>
1991 <use xlink:href="#DejaVuSans-65" transform="translate(252.148438 0)"/>
1992 </g>
1993 </g>
1994 <g id="text_13">
1995 <!-- MAIN PANEL -->
1996 <g transform="translate(512.482069 241.88631) scale(0.09 -0.09)">
1997 <defs>
1998 <path id="DejaVuSans-4c" d="M 628 4666
1999L 1259 4666
2000L 1259 531
2001L 3531 531
2002L 3531 0
2003L 628 0
2004L 628 4666
2005z
2006" transform="scale(0.015625)"/>
2007 </defs>
2008 <use xlink:href="#DejaVuSans-4d"/>
2009 <use xlink:href="#DejaVuSans-41" transform="translate(86.279297 0)"/>
2010 <use xlink:href="#DejaVuSans-49" transform="translate(154.6875 0)"/>
2011 <use xlink:href="#DejaVuSans-4e" transform="translate(184.179688 0)"/>
2012 <use xlink:href="#DejaVuSans-20" transform="translate(258.984375 0)"/>
2013 <use xlink:href="#DejaVuSans-50" transform="translate(290.771484 0)"/>
2014 <use xlink:href="#DejaVuSans-41" transform="translate(344.699219 0)"/>
2015 <use xlink:href="#DejaVuSans-4e" transform="translate(413.107422 0)"/>
2016 <use xlink:href="#DejaVuSans-45" transform="translate(487.912109 0)"/>
2017 <use xlink:href="#DejaVuSans-4c" transform="translate(551.095703 0)"/>
2018 </g>
2019 <!-- subfed (main off) -->
2020 <g transform="translate(500.990194 250.596622) scale(0.09 -0.09)">
2021 <use xlink:href="#DejaVuSans-73"/>
2022 <use xlink:href="#DejaVuSans-75" transform="translate(52.099609 0)"/>
2023 <use xlink:href="#DejaVuSans-62" transform="translate(115.478516 0)"/>
2024 <use xlink:href="#DejaVuSans-66" transform="translate(178.955078 0)"/>
2025 <use xlink:href="#DejaVuSans-65" transform="translate(214.160156 0)"/>
2026 <use xlink:href="#DejaVuSans-64" transform="translate(275.683594 0)"/>
2027 <use xlink:href="#DejaVuSans-20" transform="translate(339.160156 0)"/>
2028 <use xlink:href="#DejaVuSans-28" transform="translate(370.947266 0)"/>
2029 <use xlink:href="#DejaVuSans-6d" transform="translate(409.960938 0)"/>
2030 <use xlink:href="#DejaVuSans-61" transform="translate(507.373047 0)"/>
2031 <use xlink:href="#DejaVuSans-69" transform="translate(568.652344 0)"/>
2032 <use xlink:href="#DejaVuSans-6e" transform="translate(596.435547 0)"/>
2033 <use xlink:href="#DejaVuSans-20" transform="translate(659.814453 0)"/>
2034 <use xlink:href="#DejaVuSans-6f" transform="translate(691.601562 0)"/>
2035 <use xlink:href="#DejaVuSans-66" transform="translate(752.783203 0)"/>
2036 <use xlink:href="#DejaVuSans-66" transform="translate(787.988281 0)"/>
2037 <use xlink:href="#DejaVuSans-29" transform="translate(823.193359 0)"/>
2038 </g>
2039 <!-- 4AWG (2×35A→70A) -->
2040 <g transform="translate(493.203788 259.306935) scale(0.09 -0.09)">
2041 <defs>
2042 <path id="DejaVuSans-2192" d="M 5050 2147
2043L 5050 1866
2044L 3822 638
2045L 3447 1013
2046L 4175 1741
2047L 366 1741
2048L 366 2272
2049L 4175 2272
2050L 3447 3000
2051L 3822 3375
2052L 5050 2147
2053z
2054" transform="scale(0.015625)"/>
2055 </defs>
2056 <use xlink:href="#DejaVuSans-34"/>
2057 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
2058 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
2059 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
2060 <use xlink:href="#DejaVuSans-20" transform="translate(302.898438 0)"/>
2061 <use xlink:href="#DejaVuSans-28" transform="translate(334.685547 0)"/>
2062 <use xlink:href="#DejaVuSans-32" transform="translate(373.699219 0)"/>
2063 <use xlink:href="#DejaVuSans-d7" transform="translate(437.322266 0)"/>
2064 <use xlink:href="#DejaVuSans-33" transform="translate(521.111328 0)"/>
2065 <use xlink:href="#DejaVuSans-35" transform="translate(584.734375 0)"/>
2066 <use xlink:href="#DejaVuSans-41" transform="translate(648.357422 0)"/>
2067 <use xlink:href="#DejaVuSans-2192" transform="translate(716.765625 0)"/>
2068 <use xlink:href="#DejaVuSans-37" transform="translate(800.554688 0)"/>
2069 <use xlink:href="#DejaVuSans-30" transform="translate(864.177734 0)"/>
2070 <use xlink:href="#DejaVuSans-41" transform="translate(927.800781 0)"/>
2071 <use xlink:href="#DejaVuSans-29" transform="translate(996.208984 0)"/>
2072 </g>
2073 </g>
2074 <g id="patch_17">
2075 <path d="M 278.990389 377.728804
2076C 280.135183 377.728804 281.233245 377.273972 282.042737 376.464479
2077C 282.852229 375.654987 283.307061 374.556926 283.307061 373.412131
2078C 283.307061 372.267336 282.852229 371.169275 282.042737 370.359783
2079C 281.233245 369.550291 280.135183 369.095459 278.990389 369.095459
2080C 277.845594 369.095459 276.747533 369.550291 275.93804 370.359783
2081C 275.128548 371.169275 274.673716 372.267336 274.673716 373.412131
2082C 274.673716 374.556926 275.128548 375.654987 275.93804 376.464479
2083C 276.747533 377.273972 277.845594 377.728804 278.990389 377.728804
2084z
2085" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
2086 </g>
2087 <g id="patch_18">
2088 <path d="M 278.990389 405.067728
2089C 280.135183 405.067728 281.233245 404.612896 282.042737 403.803404
2090C 282.852229 402.993911 283.307061 401.89585 283.307061 400.751055
2091C 283.307061 399.60626 282.852229 398.508199 282.042737 397.698707
2092C 281.233245 396.889215 280.135183 396.434383 278.990389 396.434383
2093C 277.845594 396.434383 276.747533 396.889215 275.93804 397.698707
2094C 275.128548 398.508199 274.673716 399.60626 274.673716 400.751055
2095C 274.673716 401.89585 275.128548 402.993911 275.93804 403.803404
2096C 276.747533 404.612896 277.845594 405.067728 278.990389 405.067728
2097z
2098" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
2099 </g>
2100 <g id="patch_19">
2101 <path d="M 243.01812 377.728804
2102C 244.162915 377.728804 245.260976 377.273972 246.070468 376.464479
2103C 246.879961 375.654987 247.334792 374.556926 247.334792 373.412131
2104C 247.334792 372.267336 246.879961 371.169275 246.070468 370.359783
2105C 245.260976 369.550291 244.162915 369.095459 243.01812 369.095459
2106C 241.873325 369.095459 240.775264 369.550291 239.965772 370.359783
2107C 239.15628 371.169275 238.701448 372.267336 238.701448 373.412131
2108C 238.701448 374.556926 239.15628 375.654987 239.965772 376.464479
2109C 240.775264 377.273972 241.873325 377.728804 243.01812 377.728804
2110z
2111" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
2112 </g>
2113 <g id="patch_20">
2114 <path d="M 243.01812 405.067728
2115C 244.162915 405.067728 245.260976 404.612896 246.070468 403.803404
2116C 246.879961 402.993911 247.334792 401.89585 247.334792 400.751055
2117C 247.334792 399.60626 246.879961 398.508199 246.070468 397.698707
2118C 245.260976 396.889215 244.162915 396.434383 243.01812 396.434383
2119C 241.873325 396.434383 240.775264 396.889215 239.965772 397.698707
2120C 239.15628 398.508199 238.701448 399.60626 238.701448 400.751055
2121C 238.701448 401.89585 239.15628 402.993911 239.965772 403.803404
2122C 240.775264 404.612896 241.873325 405.067728 243.01812 405.067728
2123z
2124" clip-path="url(#p07038a8d6d)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
2125 </g>
2126 <g id="text_14">
2127 <!-- bank disc 250A -->
2128 <g transform="translate(236.250304 363.834482) scale(0.08 -0.08)">
2129 <use xlink:href="#DejaVuSans-62"/>
2130 <use xlink:href="#DejaVuSans-61" transform="translate(63.476562 0)"/>
2131 <use xlink:href="#DejaVuSans-6e" transform="translate(124.755859 0)"/>
2132 <use xlink:href="#DejaVuSans-6b" transform="translate(188.134766 0)"/>
2133 <use xlink:href="#DejaVuSans-20" transform="translate(246.044922 0)"/>
2134 <use xlink:href="#DejaVuSans-64" transform="translate(277.832031 0)"/>
2135 <use xlink:href="#DejaVuSans-69" transform="translate(341.308594 0)"/>
2136 <use xlink:href="#DejaVuSans-73" transform="translate(369.091797 0)"/>
2137 <use xlink:href="#DejaVuSans-63" transform="translate(421.191406 0)"/>
2138 <use xlink:href="#DejaVuSans-20" transform="translate(476.171875 0)"/>
2139 <use xlink:href="#DejaVuSans-32" transform="translate(507.958984 0)"/>
2140 <use xlink:href="#DejaVuSans-35" transform="translate(571.582031 0)"/>
2141 <use xlink:href="#DejaVuSans-30" transform="translate(635.205078 0)"/>
2142 <use xlink:href="#DejaVuSans-41" transform="translate(698.828125 0)"/>
2143 </g>
2144 </g>
2145 <g id="text_15">
2146 <!-- 2/0Cu/inverter · 126A ea -->
2147 <g transform="translate(229.715389 432.729839) scale(0.08 -0.08)">
2148 <defs>
2149 <path id="DejaVuSans-2f" d="M 1625 4666
2150L 2156 4666
2151L 531 -594
2152L 0 -594
2153L 1625 4666
2154z
2155" transform="scale(0.015625)"/>
2156 <path id="DejaVuSans-76" d="M 191 3500
2157L 800 3500
2158L 1894 563
2159L 2988 3500
2160L 3597 3500
2161L 2284 0
2162L 1503 0
2163L 191 3500
2164z
2165" transform="scale(0.015625)"/>
2166 </defs>
2167 <use xlink:href="#DejaVuSans-32"/>
2168 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
2169 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
2170 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
2171 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
2172 <use xlink:href="#DejaVuSans-2f" transform="translate(294.140625 0)"/>
2173 <use xlink:href="#DejaVuSans-69" transform="translate(327.832031 0)"/>
2174 <use xlink:href="#DejaVuSans-6e" transform="translate(355.615234 0)"/>
2175 <use xlink:href="#DejaVuSans-76" transform="translate(418.994141 0)"/>
2176 <use xlink:href="#DejaVuSans-65" transform="translate(478.173828 0)"/>
2177 <use xlink:href="#DejaVuSans-72" transform="translate(539.697266 0)"/>
2178 <use xlink:href="#DejaVuSans-74" transform="translate(580.810547 0)"/>
2179 <use xlink:href="#DejaVuSans-65" transform="translate(620.019531 0)"/>
2180 <use xlink:href="#DejaVuSans-72" transform="translate(681.542969 0)"/>
2181 <use xlink:href="#DejaVuSans-20" transform="translate(722.65625 0)"/>
2182 <use xlink:href="#DejaVuSans-b7" transform="translate(754.443359 0)"/>
2183 <use xlink:href="#DejaVuSans-20" transform="translate(786.230469 0)"/>
2184 <use xlink:href="#DejaVuSans-31" transform="translate(818.017578 0)"/>
2185 <use xlink:href="#DejaVuSans-32" transform="translate(881.640625 0)"/>
2186 <use xlink:href="#DejaVuSans-36" transform="translate(945.263672 0)"/>
2187 <use xlink:href="#DejaVuSans-41" transform="translate(1008.886719 0)"/>
2188 <use xlink:href="#DejaVuSans-20" transform="translate(1077.294922 0)"/>
2189 <use xlink:href="#DejaVuSans-65" transform="translate(1109.082031 0)"/>
2190 <use xlink:href="#DejaVuSans-61" transform="translate(1170.605469 0)"/>
2191 </g>
2192 <!-- (2 inverters tap the bus) -->
2193 <g transform="translate(230.081014 440.472339) scale(0.08 -0.08)">
2194 <use xlink:href="#DejaVuSans-28"/>
2195 <use xlink:href="#DejaVuSans-32" transform="translate(39.013672 0)"/>
2196 <use xlink:href="#DejaVuSans-20" transform="translate(102.636719 0)"/>
2197 <use xlink:href="#DejaVuSans-69" transform="translate(134.423828 0)"/>
2198 <use xlink:href="#DejaVuSans-6e" transform="translate(162.207031 0)"/>
2199 <use xlink:href="#DejaVuSans-76" transform="translate(225.585938 0)"/>
2200 <use xlink:href="#DejaVuSans-65" transform="translate(284.765625 0)"/>
2201 <use xlink:href="#DejaVuSans-72" transform="translate(346.289062 0)"/>
2202 <use xlink:href="#DejaVuSans-74" transform="translate(387.402344 0)"/>
2203 <use xlink:href="#DejaVuSans-65" transform="translate(426.611328 0)"/>
2204 <use xlink:href="#DejaVuSans-72" transform="translate(488.134766 0)"/>
2205 <use xlink:href="#DejaVuSans-73" transform="translate(529.248047 0)"/>
2206 <use xlink:href="#DejaVuSans-20" transform="translate(581.347656 0)"/>
2207 <use xlink:href="#DejaVuSans-74" transform="translate(613.134766 0)"/>
2208 <use xlink:href="#DejaVuSans-61" transform="translate(652.34375 0)"/>
2209 <use xlink:href="#DejaVuSans-70" transform="translate(713.623047 0)"/>
2210 <use xlink:href="#DejaVuSans-20" transform="translate(777.099609 0)"/>
2211 <use xlink:href="#DejaVuSans-74" transform="translate(808.886719 0)"/>
2212 <use xlink:href="#DejaVuSans-68" transform="translate(848.095703 0)"/>
2213 <use xlink:href="#DejaVuSans-65" transform="translate(911.474609 0)"/>
2214 <use xlink:href="#DejaVuSans-20" transform="translate(972.998047 0)"/>
2215 <use xlink:href="#DejaVuSans-62" transform="translate(1004.785156 0)"/>
2216 <use xlink:href="#DejaVuSans-75" transform="translate(1068.261719 0)"/>
2217 <use xlink:href="#DejaVuSans-73" transform="translate(1131.640625 0)"/>
2218 <use xlink:href="#DejaVuSans-29" transform="translate(1183.740234 0)"/>
2219 </g>
2220 </g>
2221 <g id="text_16">
2222 <!-- DC BUSBAR (250A) -->
2223 <g transform="translate(180.046501 474.099862) scale(0.09 -0.09)">
2224 <defs>
2225 <path id="DejaVuSans-55" d="M 556 4666
2226L 1191 4666
2227L 1191 1831
2228Q 1191 1081 1462 751
2229Q 1734 422 2344 422
2230Q 2950 422 3222 751
2231Q 3494 1081 3494 1831
2232L 3494 4666
2233L 4128 4666
2234L 4128 1753
2235Q 4128 841 3676 375
2236Q 3225 -91 2344 -91
2237Q 1459 -91 1007 375
2238Q 556 841 556 1753
2239L 556 4666
2240z
2241" transform="scale(0.015625)"/>
2242 </defs>
2243 <use xlink:href="#DejaVuSans-44"/>
2244 <use xlink:href="#DejaVuSans-43" transform="translate(77.001953 0)"/>
2245 <use xlink:href="#DejaVuSans-20" transform="translate(146.826172 0)"/>
2246 <use xlink:href="#DejaVuSans-42" transform="translate(178.613281 0)"/>
2247 <use xlink:href="#DejaVuSans-55" transform="translate(247.216797 0)"/>
2248 <use xlink:href="#DejaVuSans-53" transform="translate(320.410156 0)"/>
2249 <use xlink:href="#DejaVuSans-42" transform="translate(383.886719 0)"/>
2250 <use xlink:href="#DejaVuSans-41" transform="translate(452.490234 0)"/>
2251 <use xlink:href="#DejaVuSans-52" transform="translate(520.898438 0)"/>
2252 <use xlink:href="#DejaVuSans-20" transform="translate(590.380859 0)"/>
2253 <use xlink:href="#DejaVuSans-28" transform="translate(622.167969 0)"/>
2254 <use xlink:href="#DejaVuSans-32" transform="translate(661.181641 0)"/>
2255 <use xlink:href="#DejaVuSans-35" transform="translate(724.804688 0)"/>
2256 <use xlink:href="#DejaVuSans-30" transform="translate(788.427734 0)"/>
2257 <use xlink:href="#DejaVuSans-41" transform="translate(852.050781 0)"/>
2258 <use xlink:href="#DejaVuSans-29" transform="translate(920.458984 0)"/>
2259 </g>
2260 </g>
2261 <g id="text_17">
2262 <!-- 4× 175A Class-T -->
2263 <g transform="translate(246.135389 535.953325) scale(0.08 -0.08)">
2264 <use xlink:href="#DejaVuSans-34"/>
2265 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
2266 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
2267 <use xlink:href="#DejaVuSans-31" transform="translate(179.199219 0)"/>
2268 <use xlink:href="#DejaVuSans-37" transform="translate(242.822266 0)"/>
2269 <use xlink:href="#DejaVuSans-35" transform="translate(306.445312 0)"/>
2270 <use xlink:href="#DejaVuSans-41" transform="translate(370.068359 0)"/>
2271 <use xlink:href="#DejaVuSans-20" transform="translate(438.476562 0)"/>
2272 <use xlink:href="#DejaVuSans-43" transform="translate(470.263672 0)"/>
2273 <use xlink:href="#DejaVuSans-6c" transform="translate(540.087891 0)"/>
2274 <use xlink:href="#DejaVuSans-61" transform="translate(567.871094 0)"/>
2275 <use xlink:href="#DejaVuSans-73" transform="translate(629.150391 0)"/>
2276 <use xlink:href="#DejaVuSans-73" transform="translate(681.25 0)"/>
2277 <use xlink:href="#DejaVuSans-2d" transform="translate(733.349609 0)"/>
2278 <use xlink:href="#DejaVuSans-54" transform="translate(760.308594 0)"/>
2279 </g>
2280 <!-- (2 packs + 2 inverters) -->
2281 <g transform="translate(232.875389 543.695825) scale(0.08 -0.08)">
2282 <defs>
2283 <path id="DejaVuSans-2b" d="M 2944 4013
2284L 2944 2272
2285L 4684 2272
2286L 4684 1741
2287L 2944 1741
2288L 2944 0
2289L 2419 0
2290L 2419 1741
2291L 678 1741
2292L 678 2272
2293L 2419 2272
2294L 2419 4013
2295L 2944 4013
2296z
2297" transform="scale(0.015625)"/>
2298 </defs>
2299 <use xlink:href="#DejaVuSans-28"/>
2300 <use xlink:href="#DejaVuSans-32" transform="translate(39.013672 0)"/>
2301 <use xlink:href="#DejaVuSans-20" transform="translate(102.636719 0)"/>
2302 <use xlink:href="#DejaVuSans-70" transform="translate(134.423828 0)"/>
2303 <use xlink:href="#DejaVuSans-61" transform="translate(197.900391 0)"/>
2304 <use xlink:href="#DejaVuSans-63" transform="translate(259.179688 0)"/>
2305 <use xlink:href="#DejaVuSans-6b" transform="translate(314.160156 0)"/>
2306 <use xlink:href="#DejaVuSans-73" transform="translate(372.070312 0)"/>
2307 <use xlink:href="#DejaVuSans-20" transform="translate(424.169922 0)"/>
2308 <use xlink:href="#DejaVuSans-2b" transform="translate(455.957031 0)"/>
2309 <use xlink:href="#DejaVuSans-20" transform="translate(539.746094 0)"/>
2310 <use xlink:href="#DejaVuSans-32" transform="translate(571.533203 0)"/>
2311 <use xlink:href="#DejaVuSans-20" transform="translate(635.15625 0)"/>
2312 <use xlink:href="#DejaVuSans-69" transform="translate(666.943359 0)"/>
2313 <use xlink:href="#DejaVuSans-6e" transform="translate(694.726562 0)"/>
2314 <use xlink:href="#DejaVuSans-76" transform="translate(758.105469 0)"/>
2315 <use xlink:href="#DejaVuSans-65" transform="translate(817.285156 0)"/>
2316 <use xlink:href="#DejaVuSans-72" transform="translate(878.808594 0)"/>
2317 <use xlink:href="#DejaVuSans-74" transform="translate(919.921875 0)"/>
2318 <use xlink:href="#DejaVuSans-65" transform="translate(959.130859 0)"/>
2319 <use xlink:href="#DejaVuSans-72" transform="translate(1020.654297 0)"/>
2320 <use xlink:href="#DejaVuSans-73" transform="translate(1061.767578 0)"/>
2321 <use xlink:href="#DejaVuSans-29" transform="translate(1113.867188 0)"/>
2322 </g>
2323 </g>
2324 <g id="text_18">
2325 <!-- 2× Docan S3 · 51.2V -->
2326 <g transform="translate(237.297264 781.660843) scale(0.08 -0.08)">
2327 <use xlink:href="#DejaVuSans-32"/>
2328 <use xlink:href="#DejaVuSans-d7" transform="translate(63.623047 0)"/>
2329 <use xlink:href="#DejaVuSans-20" transform="translate(147.412109 0)"/>
2330 <use xlink:href="#DejaVuSans-44" transform="translate(179.199219 0)"/>
2331 <use xlink:href="#DejaVuSans-6f" transform="translate(256.201172 0)"/>
2332 <use xlink:href="#DejaVuSans-63" transform="translate(317.382812 0)"/>
2333 <use xlink:href="#DejaVuSans-61" transform="translate(372.363281 0)"/>
2334 <use xlink:href="#DejaVuSans-6e" transform="translate(433.642578 0)"/>
2335 <use xlink:href="#DejaVuSans-20" transform="translate(497.021484 0)"/>
2336 <use xlink:href="#DejaVuSans-53" transform="translate(528.808594 0)"/>
2337 <use xlink:href="#DejaVuSans-33" transform="translate(592.285156 0)"/>
2338 <use xlink:href="#DejaVuSans-20" transform="translate(655.908203 0)"/>
2339 <use xlink:href="#DejaVuSans-b7" transform="translate(687.695312 0)"/>
2340 <use xlink:href="#DejaVuSans-20" transform="translate(719.482422 0)"/>
2341 <use xlink:href="#DejaVuSans-35" transform="translate(751.269531 0)"/>
2342 <use xlink:href="#DejaVuSans-31" transform="translate(814.892578 0)"/>
2343 <use xlink:href="#DejaVuSans-2e" transform="translate(878.515625 0)"/>
2344 <use xlink:href="#DejaVuSans-32" transform="translate(910.302734 0)"/>
2345 <use xlink:href="#DejaVuSans-56" transform="translate(973.925781 0)"/>
2346 </g>
2347 <!-- 25.73kWh usable (80% DoD) -->
2348 <g transform="translate(221.117889 789.403343) scale(0.08 -0.08)">
2349 <use xlink:href="#DejaVuSans-32"/>
2350 <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
2351 <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2352 <use xlink:href="#DejaVuSans-37" transform="translate(159.033203 0)"/>
2353 <use xlink:href="#DejaVuSans-33" transform="translate(222.65625 0)"/>
2354 <use xlink:href="#DejaVuSans-6b" transform="translate(286.279297 0)"/>
2355 <use xlink:href="#DejaVuSans-57" transform="translate(344.189453 0)"/>
2356 <use xlink:href="#DejaVuSans-68" transform="translate(443.066406 0)"/>
2357 <use xlink:href="#DejaVuSans-20" transform="translate(506.445312 0)"/>
2358 <use xlink:href="#DejaVuSans-75" transform="translate(538.232422 0)"/>
2359 <use xlink:href="#DejaVuSans-73" transform="translate(601.611328 0)"/>
2360 <use xlink:href="#DejaVuSans-61" transform="translate(653.710938 0)"/>
2361 <use xlink:href="#DejaVuSans-62" transform="translate(714.990234 0)"/>
2362 <use xlink:href="#DejaVuSans-6c" transform="translate(778.466797 0)"/>
2363 <use xlink:href="#DejaVuSans-65" transform="translate(806.25 0)"/>
2364 <use xlink:href="#DejaVuSans-20" transform="translate(867.773438 0)"/>
2365 <use xlink:href="#DejaVuSans-28" transform="translate(899.560547 0)"/>
2366 <use xlink:href="#DejaVuSans-38" transform="translate(938.574219 0)"/>
2367 <use xlink:href="#DejaVuSans-30" transform="translate(1002.197266 0)"/>
2368 <use xlink:href="#DejaVuSans-25" transform="translate(1065.820312 0)"/>
2369 <use xlink:href="#DejaVuSans-20" transform="translate(1160.839844 0)"/>
2370 <use xlink:href="#DejaVuSans-44" transform="translate(1192.626953 0)"/>
2371 <use xlink:href="#DejaVuSans-6f" transform="translate(1269.628906 0)"/>
2372 <use xlink:href="#DejaVuSans-44" transform="translate(1330.810547 0)"/>
2373 <use xlink:href="#DejaVuSans-29" transform="translate(1407.8125 0)"/>
2374 </g>
2375 <!-- 2/0Cu/pack · 0.238% · JK-BMS×2 → CAN -->
2376 <g transform="translate(199.762264 797.145843) scale(0.08 -0.08)">
2377 <defs>
2378 <path id="DejaVuSans-4a" d="M 628 4666
2379L 1259 4666
2380L 1259 325
2381Q 1259 -519 939 -900
2382Q 619 -1281 -91 -1281
2383L -331 -1281
2384L -331 -750
2385L -134 -750
2386Q 284 -750 456 -515
2387Q 628 -281 628 325
2388L 628 4666
2389z
2390" transform="scale(0.015625)"/>
2391 <path id="DejaVuSans-4b" d="M 628 4666
2392L 1259 4666
2393L 1259 2694
2394L 3353 4666
2395L 4166 4666
2396L 1850 2491
2397L 4331 0
2398L 3500 0
2399L 1259 2247
2400L 1259 0
2401L 628 0
2402L 628 4666
2403z
2404" transform="scale(0.015625)"/>
2405 </defs>
2406 <use xlink:href="#DejaVuSans-32"/>
2407 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
2408 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
2409 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
2410 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
2411 <use xlink:href="#DejaVuSans-2f" transform="translate(294.140625 0)"/>
2412 <use xlink:href="#DejaVuSans-70" transform="translate(327.832031 0)"/>
2413 <use xlink:href="#DejaVuSans-61" transform="translate(391.308594 0)"/>
2414 <use xlink:href="#DejaVuSans-63" transform="translate(452.587891 0)"/>
2415 <use xlink:href="#DejaVuSans-6b" transform="translate(507.568359 0)"/>
2416 <use xlink:href="#DejaVuSans-20" transform="translate(565.478516 0)"/>
2417 <use xlink:href="#DejaVuSans-b7" transform="translate(597.265625 0)"/>
2418 <use xlink:href="#DejaVuSans-20" transform="translate(629.052734 0)"/>
2419 <use xlink:href="#DejaVuSans-30" transform="translate(660.839844 0)"/>
2420 <use xlink:href="#DejaVuSans-2e" transform="translate(724.462891 0)"/>
2421 <use xlink:href="#DejaVuSans-32" transform="translate(756.25 0)"/>
2422 <use xlink:href="#DejaVuSans-33" transform="translate(819.873047 0)"/>
2423 <use xlink:href="#DejaVuSans-38" transform="translate(883.496094 0)"/>
2424 <use xlink:href="#DejaVuSans-25" transform="translate(947.119141 0)"/>
2425 <use xlink:href="#DejaVuSans-20" transform="translate(1042.138672 0)"/>
2426 <use xlink:href="#DejaVuSans-b7" transform="translate(1073.925781 0)"/>
2427 <use xlink:href="#DejaVuSans-20" transform="translate(1105.712891 0)"/>
2428 <use xlink:href="#DejaVuSans-4a" transform="translate(1137.5 0)"/>
2429 <use xlink:href="#DejaVuSans-4b" transform="translate(1166.992188 0)"/>
2430 <use xlink:href="#DejaVuSans-2d" transform="translate(1222.068359 0)"/>
2431 <use xlink:href="#DejaVuSans-42" transform="translate(1254.527344 0)"/>
2432 <use xlink:href="#DejaVuSans-4d" transform="translate(1323.130859 0)"/>
2433 <use xlink:href="#DejaVuSans-53" transform="translate(1409.410156 0)"/>
2434 <use xlink:href="#DejaVuSans-d7" transform="translate(1472.886719 0)"/>
2435 <use xlink:href="#DejaVuSans-32" transform="translate(1556.675781 0)"/>
2436 <use xlink:href="#DejaVuSans-20" transform="translate(1620.298828 0)"/>
2437 <use xlink:href="#DejaVuSans-2192" transform="translate(1652.085938 0)"/>
2438 <use xlink:href="#DejaVuSans-20" transform="translate(1735.875 0)"/>
2439 <use xlink:href="#DejaVuSans-43" transform="translate(1767.662109 0)"/>
2440 <use xlink:href="#DejaVuSans-41" transform="translate(1837.486328 0)"/>
2441 <use xlink:href="#DejaVuSans-4e" transform="translate(1905.894531 0)"/>
2442 </g>
2443 </g>
2444 <g id="text_19">
2445 <!-- GEC 6AWG -->
2446 <g transform="translate(356.330766 389.734516) scale(0.08 -0.08)">
2447 <use xlink:href="#DejaVuSans-47"/>
2448 <use xlink:href="#DejaVuSans-45" transform="translate(77.490234 0)"/>
2449 <use xlink:href="#DejaVuSans-43" transform="translate(140.673828 0)"/>
2450 <use xlink:href="#DejaVuSans-20" transform="translate(210.498047 0)"/>
2451 <use xlink:href="#DejaVuSans-36" transform="translate(242.285156 0)"/>
2452 <use xlink:href="#DejaVuSans-41" transform="translate(305.908203 0)"/>
2453 <use xlink:href="#DejaVuSans-57" transform="translate(368.816406 0)"/>
2454 <use xlink:href="#DejaVuSans-47" transform="translate(467.693359 0)"/>
2455 </g>
2456 <!-- 690.47 -->
2457 <g transform="translate(356.330766 397.477016) scale(0.08 -0.08)">
2458 <use xlink:href="#DejaVuSans-36"/>
2459 <use xlink:href="#DejaVuSans-39" transform="translate(63.623047 0)"/>
2460 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
2461 <use xlink:href="#DejaVuSans-2e" transform="translate(190.869141 0)"/>
2462 <use xlink:href="#DejaVuSans-34" transform="translate(222.65625 0)"/>
2463 <use xlink:href="#DejaVuSans-37" transform="translate(286.279297 0)"/>
2464 </g>
2465 </g>
2466 <g id="text_20">
2467 <!-- PATH-A SINGLE-LINE — 2× EG4 6000XP (parallel) -->
2468 <g transform="translate(155.560313 14.758575) scale(0.13 -0.13)">
2469 <defs>
2470 <path id="DejaVuSans-48" d="M 628 4666
2471L 1259 4666
2472L 1259 2753
2473L 3553 2753
2474L 3553 4666
2475L 4184 4666
2476L 4184 0
2477L 3553 0
2478L 3553 2222
2479L 1259 2222
2480L 1259 0
2481L 628 0
2482L 628 4666
2483z
2484" transform="scale(0.015625)"/>
2485 <path id="DejaVuSans-2014" d="M 313 1978
2486L 6088 1978
2487L 6088 1528
2488L 313 1528
2489L 313 1978
2490z
2491" transform="scale(0.015625)"/>
2492 </defs>
2493 <use xlink:href="#DejaVuSans-50"/>
2494 <use xlink:href="#DejaVuSans-41" transform="translate(53.927734 0)"/>
2495 <use xlink:href="#DejaVuSans-54" transform="translate(114.585938 0)"/>
2496 <use xlink:href="#DejaVuSans-48" transform="translate(175.669922 0)"/>
2497 <use xlink:href="#DejaVuSans-2d" transform="translate(250.865234 0)"/>
2498 <use xlink:href="#DejaVuSans-41" transform="translate(284.699219 0)"/>
2499 <use xlink:href="#DejaVuSans-20" transform="translate(353.107422 0)"/>
2500 <use xlink:href="#DejaVuSans-53" transform="translate(384.894531 0)"/>
2501 <use xlink:href="#DejaVuSans-49" transform="translate(448.371094 0)"/>
2502 <use xlink:href="#DejaVuSans-4e" transform="translate(477.863281 0)"/>
2503 <use xlink:href="#DejaVuSans-47" transform="translate(552.667969 0)"/>
2504 <use xlink:href="#DejaVuSans-4c" transform="translate(630.158203 0)"/>
2505 <use xlink:href="#DejaVuSans-45" transform="translate(685.871094 0)"/>
2506 <use xlink:href="#DejaVuSans-2d" transform="translate(749.054688 0)"/>
2507 <use xlink:href="#DejaVuSans-4c" transform="translate(785.138672 0)"/>
2508 <use xlink:href="#DejaVuSans-49" transform="translate(840.851562 0)"/>
2509 <use xlink:href="#DejaVuSans-4e" transform="translate(870.34375 0)"/>
2510 <use xlink:href="#DejaVuSans-45" transform="translate(945.148438 0)"/>
2511 <use xlink:href="#DejaVuSans-20" transform="translate(1008.332031 0)"/>
2512 <use xlink:href="#DejaVuSans-2014" transform="translate(1040.119141 0)"/>
2513 <use xlink:href="#DejaVuSans-20" transform="translate(1140.119141 0)"/>
2514 <use xlink:href="#DejaVuSans-32" transform="translate(1171.90625 0)"/>
2515 <use xlink:href="#DejaVuSans-d7" transform="translate(1235.529297 0)"/>
2516 <use xlink:href="#DejaVuSans-20" transform="translate(1319.318359 0)"/>
2517 <use xlink:href="#DejaVuSans-45" transform="translate(1351.105469 0)"/>
2518 <use xlink:href="#DejaVuSans-47" transform="translate(1414.289062 0)"/>
2519 <use xlink:href="#DejaVuSans-34" transform="translate(1491.779297 0)"/>
2520 <use xlink:href="#DejaVuSans-20" transform="translate(1555.402344 0)"/>
2521 <use xlink:href="#DejaVuSans-36" transform="translate(1587.189453 0)"/>
2522 <use xlink:href="#DejaVuSans-30" transform="translate(1650.8125 0)"/>
2523 <use xlink:href="#DejaVuSans-30" transform="translate(1714.435547 0)"/>
2524 <use xlink:href="#DejaVuSans-30" transform="translate(1778.058594 0)"/>
2525 <use xlink:href="#DejaVuSans-58" transform="translate(1841.681641 0)"/>
2526 <use xlink:href="#DejaVuSans-50" transform="translate(1910.1875 0)"/>
2527 <use xlink:href="#DejaVuSans-20" transform="translate(1970.490234 0)"/>
2528 <use xlink:href="#DejaVuSans-28" transform="translate(2002.277344 0)"/>
2529 <use xlink:href="#DejaVuSans-70" transform="translate(2041.291016 0)"/>
2530 <use xlink:href="#DejaVuSans-61" transform="translate(2104.767578 0)"/>
2531 <use xlink:href="#DejaVuSans-72" transform="translate(2166.046875 0)"/>
2532 <use xlink:href="#DejaVuSans-61" transform="translate(2207.160156 0)"/>
2533 <use xlink:href="#DejaVuSans-6c" transform="translate(2268.439453 0)"/>
2534 <use xlink:href="#DejaVuSans-6c" transform="translate(2296.222656 0)"/>
2535 <use xlink:href="#DejaVuSans-65" transform="translate(2324.005859 0)"/>
2536 <use xlink:href="#DejaVuSans-6c" transform="translate(2385.529297 0)"/>
2537 <use xlink:href="#DejaVuSans-29" transform="translate(2413.3125 0)"/>
2538 </g>
2539 </g>
2540 <g id="text_21">
2541 <!-- PRSM OFF-GRID PV — SELECTED BUILD · PATH A (2× EG4 6000XP) · NEK Vermont · NEC 2023 · ratings trace to scripts 01/11 -->
2542 <g transform="translate(66.136407 38.559476) scale(0.08 -0.08)">
2543 <use xlink:href="#DejaVuSans-50"/>
2544 <use xlink:href="#DejaVuSans-52" transform="translate(60.302734 0)"/>
2545 <use xlink:href="#DejaVuSans-53" transform="translate(129.785156 0)"/>
2546 <use xlink:href="#DejaVuSans-4d" transform="translate(193.261719 0)"/>
2547 <use xlink:href="#DejaVuSans-20" transform="translate(279.541016 0)"/>
2548 <use xlink:href="#DejaVuSans-4f" transform="translate(311.328125 0)"/>
2549 <use xlink:href="#DejaVuSans-46" transform="translate(390.039062 0)"/>
2550 <use xlink:href="#DejaVuSans-46" transform="translate(447.558594 0)"/>
2551 <use xlink:href="#DejaVuSans-2d" transform="translate(505.078125 0)"/>
2552 <use xlink:href="#DejaVuSans-47" transform="translate(544.787109 0)"/>
2553 <use xlink:href="#DejaVuSans-52" transform="translate(622.277344 0)"/>
2554 <use xlink:href="#DejaVuSans-49" transform="translate(691.759766 0)"/>
2555 <use xlink:href="#DejaVuSans-44" transform="translate(721.251953 0)"/>
2556 <use xlink:href="#DejaVuSans-20" transform="translate(798.253906 0)"/>
2557 <use xlink:href="#DejaVuSans-50" transform="translate(830.041016 0)"/>
2558 <use xlink:href="#DejaVuSans-56" transform="translate(890.34375 0)"/>
2559 <use xlink:href="#DejaVuSans-20" transform="translate(958.751953 0)"/>
2560 <use xlink:href="#DejaVuSans-2014" transform="translate(990.539062 0)"/>
2561 <use xlink:href="#DejaVuSans-20" transform="translate(1090.539062 0)"/>
2562 <use xlink:href="#DejaVuSans-53" transform="translate(1122.326172 0)"/>
2563 <use xlink:href="#DejaVuSans-45" transform="translate(1185.802734 0)"/>
2564 <use xlink:href="#DejaVuSans-4c" transform="translate(1248.986328 0)"/>
2565 <use xlink:href="#DejaVuSans-45" transform="translate(1304.699219 0)"/>
2566 <use xlink:href="#DejaVuSans-43" transform="translate(1367.882812 0)"/>
2567 <use xlink:href="#DejaVuSans-54" transform="translate(1437.707031 0)"/>
2568 <use xlink:href="#DejaVuSans-45" transform="translate(1498.791016 0)"/>
2569 <use xlink:href="#DejaVuSans-44" transform="translate(1561.974609 0)"/>
2570 <use xlink:href="#DejaVuSans-20" transform="translate(1638.976562 0)"/>
2571 <use xlink:href="#DejaVuSans-42" transform="translate(1670.763672 0)"/>
2572 <use xlink:href="#DejaVuSans-55" transform="translate(1739.367188 0)"/>
2573 <use xlink:href="#DejaVuSans-49" transform="translate(1812.560547 0)"/>
2574 <use xlink:href="#DejaVuSans-4c" transform="translate(1842.052734 0)"/>
2575 <use xlink:href="#DejaVuSans-44" transform="translate(1897.765625 0)"/>
2576 <use xlink:href="#DejaVuSans-20" transform="translate(1974.767578 0)"/>
2577 <use xlink:href="#DejaVuSans-b7" transform="translate(2006.554688 0)"/>
2578 <use xlink:href="#DejaVuSans-20" transform="translate(2038.341797 0)"/>
2579 <use xlink:href="#DejaVuSans-50" transform="translate(2070.128906 0)"/>
2580 <use xlink:href="#DejaVuSans-41" transform="translate(2124.056641 0)"/>
2581 <use xlink:href="#DejaVuSans-54" transform="translate(2184.714844 0)"/>
2582 <use xlink:href="#DejaVuSans-48" transform="translate(2245.798828 0)"/>
2583 <use xlink:href="#DejaVuSans-20" transform="translate(2320.994141 0)"/>
2584 <use xlink:href="#DejaVuSans-41" transform="translate(2352.78125 0)"/>
2585 <use xlink:href="#DejaVuSans-20" transform="translate(2421.189453 0)"/>
2586 <use xlink:href="#DejaVuSans-28" transform="translate(2452.976562 0)"/>
2587 <use xlink:href="#DejaVuSans-32" transform="translate(2491.990234 0)"/>
2588 <use xlink:href="#DejaVuSans-d7" transform="translate(2555.613281 0)"/>
2589 <use xlink:href="#DejaVuSans-20" transform="translate(2639.402344 0)"/>
2590 <use xlink:href="#DejaVuSans-45" transform="translate(2671.189453 0)"/>
2591 <use xlink:href="#DejaVuSans-47" transform="translate(2734.373047 0)"/>
2592 <use xlink:href="#DejaVuSans-34" transform="translate(2811.863281 0)"/>
2593 <use xlink:href="#DejaVuSans-20" transform="translate(2875.486328 0)"/>
2594 <use xlink:href="#DejaVuSans-36" transform="translate(2907.273438 0)"/>
2595 <use xlink:href="#DejaVuSans-30" transform="translate(2970.896484 0)"/>
2596 <use xlink:href="#DejaVuSans-30" transform="translate(3034.519531 0)"/>
2597 <use xlink:href="#DejaVuSans-30" transform="translate(3098.142578 0)"/>
2598 <use xlink:href="#DejaVuSans-58" transform="translate(3161.765625 0)"/>
2599 <use xlink:href="#DejaVuSans-50" transform="translate(3230.271484 0)"/>
2600 <use xlink:href="#DejaVuSans-29" transform="translate(3290.574219 0)"/>
2601 <use xlink:href="#DejaVuSans-20" transform="translate(3329.587891 0)"/>
2602 <use xlink:href="#DejaVuSans-b7" transform="translate(3361.375 0)"/>
2603 <use xlink:href="#DejaVuSans-20" transform="translate(3393.162109 0)"/>
2604 <use xlink:href="#DejaVuSans-4e" transform="translate(3424.949219 0)"/>
2605 <use xlink:href="#DejaVuSans-45" transform="translate(3499.753906 0)"/>
2606 <use xlink:href="#DejaVuSans-4b" transform="translate(3562.9375 0)"/>
2607 <use xlink:href="#DejaVuSans-20" transform="translate(3628.513672 0)"/>
2608 <use xlink:href="#DejaVuSans-56" transform="translate(3660.300781 0)"/>
2609 <use xlink:href="#DejaVuSans-65" transform="translate(3720.958984 0)"/>
2610 <use xlink:href="#DejaVuSans-72" transform="translate(3782.482422 0)"/>
2611 <use xlink:href="#DejaVuSans-6d" transform="translate(3821.845703 0)"/>
2612 <use xlink:href="#DejaVuSans-6f" transform="translate(3919.257812 0)"/>
2613 <use xlink:href="#DejaVuSans-6e" transform="translate(3980.439453 0)"/>
2614 <use xlink:href="#DejaVuSans-74" transform="translate(4043.818359 0)"/>
2615 <use xlink:href="#DejaVuSans-20" transform="translate(4083.027344 0)"/>
2616 <use xlink:href="#DejaVuSans-b7" transform="translate(4114.814453 0)"/>
2617 <use xlink:href="#DejaVuSans-20" transform="translate(4146.601562 0)"/>
2618 <use xlink:href="#DejaVuSans-4e" transform="translate(4178.388672 0)"/>
2619 <use xlink:href="#DejaVuSans-45" transform="translate(4253.193359 0)"/>
2620 <use xlink:href="#DejaVuSans-43" transform="translate(4316.376953 0)"/>
2621 <use xlink:href="#DejaVuSans-20" transform="translate(4386.201172 0)"/>
2622 <use xlink:href="#DejaVuSans-32" transform="translate(4417.988281 0)"/>
2623 <use xlink:href="#DejaVuSans-30" transform="translate(4481.611328 0)"/>
2624 <use xlink:href="#DejaVuSans-32" transform="translate(4545.234375 0)"/>
2625 <use xlink:href="#DejaVuSans-33" transform="translate(4608.857422 0)"/>
2626 <use xlink:href="#DejaVuSans-20" transform="translate(4672.480469 0)"/>
2627 <use xlink:href="#DejaVuSans-b7" transform="translate(4704.267578 0)"/>
2628 <use xlink:href="#DejaVuSans-20" transform="translate(4736.054688 0)"/>
2629 <use xlink:href="#DejaVuSans-72" transform="translate(4767.841797 0)"/>
2630 <use xlink:href="#DejaVuSans-61" transform="translate(4808.955078 0)"/>
2631 <use xlink:href="#DejaVuSans-74" transform="translate(4870.234375 0)"/>
2632 <use xlink:href="#DejaVuSans-69" transform="translate(4909.443359 0)"/>
2633 <use xlink:href="#DejaVuSans-6e" transform="translate(4937.226562 0)"/>
2634 <use xlink:href="#DejaVuSans-67" transform="translate(5000.605469 0)"/>
2635 <use xlink:href="#DejaVuSans-73" transform="translate(5064.082031 0)"/>
2636 <use xlink:href="#DejaVuSans-20" transform="translate(5116.181641 0)"/>
2637 <use xlink:href="#DejaVuSans-74" transform="translate(5147.96875 0)"/>
2638 <use xlink:href="#DejaVuSans-72" transform="translate(5187.177734 0)"/>
2639 <use xlink:href="#DejaVuSans-61" transform="translate(5228.291016 0)"/>
2640 <use xlink:href="#DejaVuSans-63" transform="translate(5289.570312 0)"/>
2641 <use xlink:href="#DejaVuSans-65" transform="translate(5344.550781 0)"/>
2642 <use xlink:href="#DejaVuSans-20" transform="translate(5406.074219 0)"/>
2643 <use xlink:href="#DejaVuSans-74" transform="translate(5437.861328 0)"/>
2644 <use xlink:href="#DejaVuSans-6f" transform="translate(5477.070312 0)"/>
2645 <use xlink:href="#DejaVuSans-20" transform="translate(5538.251953 0)"/>
2646 <use xlink:href="#DejaVuSans-73" transform="translate(5570.039062 0)"/>
2647 <use xlink:href="#DejaVuSans-63" transform="translate(5622.138672 0)"/>
2648 <use xlink:href="#DejaVuSans-72" transform="translate(5677.119141 0)"/>
2649 <use xlink:href="#DejaVuSans-69" transform="translate(5718.232422 0)"/>
2650 <use xlink:href="#DejaVuSans-70" transform="translate(5746.015625 0)"/>
2651 <use xlink:href="#DejaVuSans-74" transform="translate(5809.492188 0)"/>
2652 <use xlink:href="#DejaVuSans-73" transform="translate(5848.701172 0)"/>
2653 <use xlink:href="#DejaVuSans-20" transform="translate(5900.800781 0)"/>
2654 <use xlink:href="#DejaVuSans-30" transform="translate(5932.587891 0)"/>
2655 <use xlink:href="#DejaVuSans-31" transform="translate(5996.210938 0)"/>
2656 <use xlink:href="#DejaVuSans-2f" transform="translate(6059.833984 0)"/>
2657 <use xlink:href="#DejaVuSans-31" transform="translate(6093.525391 0)"/>
2658 <use xlink:href="#DejaVuSans-31" transform="translate(6157.148438 0)"/>
2659 </g>
2660 </g>
2661 </g>
2662 </g>
2663 <defs>
2664 <clipPath id="p07038a8d6d">
2665 <rect x="2.123829" y="0" width="590.904463" height="804.24"/>
2666 </clipPath>
2667 </defs>
2668</svg>
artifacts/results/01_string.json +79 -0
……@@ -0,0 +1,79 @@
1{
2 "tmin_C": -40,
3 "tmin_source": "NREL_API_KEY not set (using documented design low)",
4 "voc_cold_module_temp_V": 61.14,
5 "bifacial_adder_V": 0.3,
6 "voc_cold_module_V": 61.44,
7 "voc_cold_module_pvlib_V": 61.258106425756864,
8 "max_modules_series_le_480": 7,
9 "n_series": 7,
10 "n_strings": 2,
11 "modules_total": 14,
12 "string_cold_voc_V": 430.1,
13 "inv_design_ceiling_V": 480,
14 "inv_abs_ceiling_V": 500,
15 "margin_to_480_V": 49.9,
16 "margin_to_500_V": 69.9,
17 "string_cold_vmp_V": 376.1,
18 "string_hot_vmp_V": 259.2,
19 "mppt_window_V": [
20 120,
21 385
22 ],
23 "string_power_W": 4025,
24 "string_imp_A": 13.11,
25 "string_isc_A": 13.87,
26 "array_dc_W": 8050,
27 "verdict": "PASS",
28 "sweep": [
29 {
30 "N": 4,
31 "voc_cold_string_V": 245.8,
32 "le_design": true,
33 "le_abs": true,
34 "margin_to_design_V": 234.2
35 },
36 {
37 "N": 5,
38 "voc_cold_string_V": 307.2,
39 "le_design": true,
40 "le_abs": true,
41 "margin_to_design_V": 172.8
42 },
43 {
44 "N": 6,
45 "voc_cold_string_V": 368.6,
46 "le_design": true,
47 "le_abs": true,
48 "margin_to_design_V": 111.4
49 },
50 {
51 "N": 7,
52 "voc_cold_string_V": 430.1,
53 "le_design": true,
54 "le_abs": true,
55 "margin_to_design_V": 49.9
56 },
57 {
58 "N": 8,
59 "voc_cold_string_V": 491.5,
60 "le_design": false,
61 "le_abs": true,
62 "margin_to_design_V": -11.5
63 },
64 {
65 "N": 9,
66 "voc_cold_string_V": 553.0,
67 "le_design": false,
68 "le_abs": false,
69 "margin_to_design_V": -73.0
70 },
71 {
72 "N": 10,
73 "voc_cold_string_V": 614.4,
74 "le_design": false,
75 "le_abs": false,
76 "margin_to_design_V": -134.4
77 }
78 ]
79}
artifacts/results/01_string_phase2.json +182 -0
……@@ -0,0 +1,182 @@
1{
2 "phase": "phase2",
3 "inverter": "EG4 18kPV-12LV (48V split-phase hybrid)",
4 "tmin_C": -40,
5 "tmin_source": "NREL_API_KEY not set (using documented design low)",
6 "voc_cold_module_temp_V": 61.14,
7 "bifacial_adder_V": 0.3,
8 "voc_cold_module_V": 61.44,
9 "voc_cold_module_pvlib_V": 61.258106425756864,
10 "max_modules_series_le_design": 8,
11 "modules_total": 31,
12 "n_strings": 4,
13 "max_string_series": 8,
14 "min_string_series": 7,
15 "n_series": 8,
16 "string_cold_voc_V": 491.5,
17 "string_imp_A": 13.11,
18 "string_isc_A": 13.87,
19 "pv_vref_worst_V": 307.0,
20 "array_dc_W": 17825,
21 "mppt_window_V": [
22 140,
23 500
24 ],
25 "inv_design_ceiling_V": 550,
26 "inv_abs_ceiling_V": 600,
27 "margin_to_design_V": 58.5,
28 "margin_to_abs_V": 108.5,
29 "margin_to_500_V": 108.5,
30 "layout": [
31 {
32 "mppt": 0,
33 "lengths": [
34 8,
35 8
36 ]
37 },
38 {
39 "mppt": 1,
40 "lengths": [
41 8
42 ]
43 },
44 {
45 "mppt": 2,
46 "lengths": [
47 7
48 ]
49 }
50 ],
51 "per_mppt": [
52 {
53 "mppt": 1,
54 "n_parallel": 2,
55 "n_series": 8,
56 "lengths": [
57 8,
58 8
59 ],
60 "equal_parallel": true,
61 "string_cold_voc_V": 491.5,
62 "string_cold_vmp_V": 429.8,
63 "string_hot_vmp_V": 296.2,
64 "combined_imp_A": 26.22,
65 "usable_a_limit": 25,
66 "combined_isc_A": 27.74,
67 "isc_a_limit": 31,
68 "current_clips_at_mpp": true,
69 "power_W": 9200,
70 "checks": {
71 "voc": true,
72 "vmp_hi": true,
73 "vmp_lo": true,
74 "isc": true,
75 "equal_parallel": true
76 }
77 },
78 {
79 "mppt": 2,
80 "n_parallel": 1,
81 "n_series": 8,
82 "lengths": [
83 8
84 ],
85 "equal_parallel": true,
86 "string_cold_voc_V": 491.5,
87 "string_cold_vmp_V": 429.8,
88 "string_hot_vmp_V": 296.2,
89 "combined_imp_A": 13.11,
90 "usable_a_limit": 15,
91 "combined_isc_A": 13.87,
92 "isc_a_limit": 19,
93 "current_clips_at_mpp": false,
94 "power_W": 4600,
95 "checks": {
96 "voc": true,
97 "vmp_hi": true,
98 "vmp_lo": true,
99 "isc": true,
100 "equal_parallel": true
101 }
102 },
103 {
104 "mppt": 3,
105 "n_parallel": 1,
106 "n_series": 7,
107 "lengths": [
108 7
109 ],
110 "equal_parallel": true,
111 "string_cold_voc_V": 430.1,
112 "string_cold_vmp_V": 376.1,
113 "string_hot_vmp_V": 259.2,
114 "combined_imp_A": 13.11,
115 "usable_a_limit": 15,
116 "combined_isc_A": 13.87,
117 "isc_a_limit": 19,
118 "current_clips_at_mpp": false,
119 "power_W": 4025,
120 "checks": {
121 "voc": true,
122 "vmp_hi": true,
123 "vmp_lo": true,
124 "isc": true,
125 "equal_parallel": true
126 }
127 }
128 ],
129 "any_current_clip": true,
130 "verdict": "PASS",
131 "sweep": [
132 {
133 "N": 4,
134 "voc_cold_string_V": 245.8,
135 "le_design": true,
136 "le_abs": true,
137 "margin_to_design_V": 304.2
138 },
139 {
140 "N": 5,
141 "voc_cold_string_V": 307.2,
142 "le_design": true,
143 "le_abs": true,
144 "margin_to_design_V": 242.8
145 },
146 {
147 "N": 6,
148 "voc_cold_string_V": 368.6,
149 "le_design": true,
150 "le_abs": true,
151 "margin_to_design_V": 181.4
152 },
153 {
154 "N": 7,
155 "voc_cold_string_V": 430.1,
156 "le_design": true,
157 "le_abs": true,
158 "margin_to_design_V": 119.9
159 },
160 {
161 "N": 8,
162 "voc_cold_string_V": 491.5,
163 "le_design": true,
164 "le_abs": true,
165 "margin_to_design_V": 58.5
166 },
167 {
168 "N": 9,
169 "voc_cold_string_V": 553.0,
170 "le_design": false,
171 "le_abs": true,
172 "margin_to_design_V": -3.0
173 },
174 {
175 "N": 10,
176 "voc_cold_string_V": 614.4,
177 "le_design": false,
178 "le_abs": false,
179 "margin_to_design_V": -64.4
180 }
181 ]
182}
artifacts/results/01b_vocmax.json +15 -0
……@@ -0,0 +1,15 @@
1{
2 "phase": "phase1",
3 "vocmax_version": "1.0.1",
4 "voc_module_stc_V": 52.3,
5 "voc_module_cold_V": 61.14,
6 "tmin_C": -40,
7 "design_ceiling_V": 480,
8 "abs_ceiling_V": 500,
9 "string_series_checked": 7,
10 "string_cold_voc_V": 428.0,
11 "max_series_le_design": 7,
12 "max_series_le_abs": 8,
13 "verdict": "7S PASS",
14 "note": "offline full-sun Sandia Voc (=linear 690.7); NSRDB statistical run needs NREL key"
15}
artifacts/results/01b_vocmax_phase2.json +15 -0
……@@ -0,0 +1,15 @@
1{
2 "phase": "phase2",
3 "vocmax_version": "1.0.1",
4 "voc_module_stc_V": 52.3,
5 "voc_module_cold_V": 61.14,
6 "tmin_C": -40,
7 "design_ceiling_V": 550,
8 "abs_ceiling_V": 600,
9 "string_series_checked": 8,
10 "string_cold_voc_V": 489.1,
11 "max_series_le_design": 8,
12 "max_series_le_abs": 9,
13 "verdict": "8S PASS",
14 "note": "offline full-sun Sandia Voc (=linear 690.7); NSRDB statistical run needs NREL key"
15}
artifacts/results/02_production.json +27 -0
……@@ -0,0 +1,27 @@
1{
2 "status": "ok",
3 "verified_host": "https://developer.nlr.gov",
4 "system_kw": 8.05,
5 "ac_annual_kwh": 9622,
6 "capacity_factor_pct": 13.6454072357225,
7 "ac_monthly_kwh": [
8 754,
9 749,
10 1015,
11 895,
12 883,
13 830,
14 910,
15 916,
16 896,
17 710,
18 577,
19 487
20 ],
21 "dec_kwh_day": 15.7,
22 "jan_kwh_day": 24.3,
23 "jun_kwh_day": 27.7,
24 "string_dc_W": 4025,
25 "array_dc_W": 8050,
26 "dc_ac_ratio": 1.34
27}
artifacts/results/03_conductors.json +80 -0
……@@ -0,0 +1,80 @@
1{
2 "pv_string": {
3 "run": "PV string (array->inverter, per MPPT)",
4 "mode": "pv",
5 "length_ft": 200,
6 "vref_V": 307.0,
7 "current_A": 13.11,
8 "req_ampacity_term_A": 21.7,
9 "req_ampacity_derated_A": 17.3,
10 "ambient_C": 40,
11 "ccc": 4,
12 "temp_factor90": 0.91,
13 "fill_factor": 0.8,
14 "ampacity_gauge": "12",
15 "ampacity_75C_A": 25,
16 "ampacity_derated90_A": 21.8,
17 "final_gauge_AWG": "8",
18 "gauge_driver": "voltage-drop",
19 "vdrop_pct": 1.329,
20 "vdrop_V": 4.08,
21 "target_pct": 2.0,
22 "ocpd_A": null,
23 "ocpd_note": "n/a",
24 "egc_AWG": null,
25 "vdrop_sweep_pct": {
26 "150": 0.997,
27 "200": 1.329,
28 "250": 1.661
29 }
30 },
31 "battery": {
32 "run": "Battery <-> inverter",
33 "mode": "continuous",
34 "length_ft": 10,
35 "vref_V": 51.2,
36 "current_A": 126.01,
37 "req_ampacity_term_A": 157.5,
38 "req_ampacity_derated_A": 157.5,
39 "ambient_C": 30,
40 "ccc": 2,
41 "temp_factor90": 1.0,
42 "fill_factor": 1.0,
43 "ampacity_gauge": "2/0",
44 "ampacity_75C_A": 175,
45 "ampacity_derated90_A": 195.0,
46 "final_gauge_AWG": "2/0",
47 "gauge_driver": "ampacity",
48 "vdrop_pct": 0.476,
49 "vdrop_V": 0.244,
50 "target_pct": 1.0,
51 "ocpd_A": 175,
52 "ocpd_note": "OK",
53 "egc_AWG": "6",
54 "recommended_upsize_AWG": "4/0"
55 },
56 "ac_output": {
57 "run": "AC output (inverter->main panel)",
58 "mode": "continuous",
59 "length_ft": 10,
60 "vref_V": 240.0,
61 "current_A": 25.0,
62 "req_ampacity_term_A": 31.2,
63 "req_ampacity_derated_A": 31.2,
64 "ambient_C": 30,
65 "ccc": 2,
66 "temp_factor90": 1.0,
67 "fill_factor": 1.0,
68 "ampacity_gauge": "10",
69 "ampacity_75C_A": 35,
70 "ampacity_derated90_A": 40.0,
71 "final_gauge_AWG": "8",
72 "gauge_driver": "240.4(D) OCPD",
73 "vdrop_pct": 0.162,
74 "vdrop_V": 0.389,
75 "target_pct": 2.0,
76 "ocpd_A": 35,
77 "ocpd_note": "OK",
78 "egc_AWG": "10"
79 }
80}
artifacts/results/03_conductors_phase2.json +113 -0
……@@ -0,0 +1,113 @@
1{
2 "pv_string": {
3 "run": "PV string (array->18kPV input, per string)",
4 "mode": "pv",
5 "length_ft": 200,
6 "vref_V": 307.0,
7 "current_A": 13.11,
8 "req_ampacity_term_A": 21.7,
9 "req_ampacity_derated_A": 17.3,
10 "ambient_C": 40,
11 "ccc": 8,
12 "temp_factor90": 0.91,
13 "fill_factor": 0.7,
14 "ampacity_gauge": "12",
15 "ampacity_75C_A": 25,
16 "ampacity_derated90_A": 19.1,
17 "final_gauge_AWG": "8",
18 "gauge_driver": "voltage-drop",
19 "vdrop_pct": 1.329,
20 "vdrop_V": 4.08,
21 "target_pct": 2.0,
22 "ocpd_A": null,
23 "ocpd_note": "n/a",
24 "egc_AWG": null,
25 "vdrop_sweep_pct": {
26 "150": 0.997,
27 "200": 1.329,
28 "250": 1.661
29 },
30 "n_strings": 4,
31 "source_fuse_required": false,
32 "parallel_backfeed_A": 17.3
33 },
34 "ac_output": {
35 "run": "AC output (18kPV->main panel)",
36 "mode": "continuous",
37 "length_ft": 10,
38 "vref_V": 240.0,
39 "current_A": 50,
40 "req_ampacity_term_A": 62.5,
41 "req_ampacity_derated_A": 62.5,
42 "ambient_C": 30,
43 "ccc": 2,
44 "temp_factor90": 1.0,
45 "fill_factor": 1.0,
46 "ampacity_gauge": "6",
47 "ampacity_75C_A": 65,
48 "ampacity_derated90_A": 75.0,
49 "final_gauge_AWG": "4",
50 "gauge_driver": "240.4(D) OCPD",
51 "vdrop_pct": 0.128,
52 "vdrop_V": 0.308,
53 "target_pct": 2.0,
54 "ocpd_A": 70,
55 "ocpd_note": "OK",
56 "egc_AWG": "8"
57 },
58 "battery_per_pack": {
59 "run": "Battery per-pack (pack->busbar)",
60 "mode": "continuous",
61 "length_ft": 5,
62 "vref_V": 51.2,
63 "current_A": 124.67,
64 "req_ampacity_term_A": 155.8,
65 "req_ampacity_derated_A": 155.8,
66 "ambient_C": 30,
67 "ccc": 2,
68 "temp_factor90": 1.0,
69 "fill_factor": 1.0,
70 "ampacity_gauge": "2/0",
71 "ampacity_75C_A": 175,
72 "ampacity_derated90_A": 195.0,
73 "final_gauge_AWG": "2/0",
74 "gauge_driver": "ampacity",
75 "vdrop_pct": 0.235,
76 "vdrop_V": 0.121,
77 "target_pct": 1.0,
78 "ocpd_A": 175,
79 "ocpd_note": "OK",
80 "egc_AWG": "6",
81 "count": 2
82 },
83 "battery_bank": {
84 "run": "Battery bank (busbar->18kPV)",
85 "mode": "continuous",
86 "length_ft": 10,
87 "vref_V": 51.2,
88 "current_A": 249.34,
89 "req_ampacity_term_A": 311.7,
90 "req_ampacity_derated_A": 311.7,
91 "ambient_C": 30,
92 "ccc": 2,
93 "temp_factor90": 1.0,
94 "fill_factor": 1.0,
95 "ampacity_gauge": "400",
96 "ampacity_75C_A": 335,
97 "ampacity_derated90_A": 380.0,
98 "final_gauge_AWG": "400",
99 "gauge_driver": "ampacity",
100 "vdrop_pct": 0.313,
101 "vdrop_V": 0.16,
102 "target_pct": 1.0,
103 "ocpd_A": null,
104 "ocpd_note": "n/a",
105 "egc_AWG": null,
106 "req_continuous_A": 311.7,
107 "parallel_alt": {
108 "2x2/0_A": 350,
109 "2x4/0_A": 460,
110 "single_min": "400"
111 }
112 }
113}
artifacts/results/04_battery.json +26 -0
……@@ -0,0 +1,26 @@
1{
2 "discharge_A_6kW": 126.0,
3 "limits_A": {
4 "inverter max discharge": 140,
5 "JK-BMS OCP trip (300s)": 150,
6 "EVE cell-honest (0.5P)": 157,
7 "JK-BMS marketed max": 200
8 },
9 "binding_limit": {
10 "name": "inverter max discharge",
11 "A": 140,
12 "headroom_A": 14.0
13 },
14 "discharge_C": 0.401,
15 "charge_C_pv": 0.398,
16 "surge_A": 252.0,
17 "surge_note": "transient only; one pack cannot sustain >6kW continuously \u2014 Phase-2 second pack relieves surge headroom",
18 "runtime_full_h": 2.68,
19 "runtime_full_80dod_h": 2.14,
20 "runtime_1p5kw_80dod_h": 8.6,
21 "classT_fuse_A": 175,
22 "cable_AWG": "2/0",
23 "cable_ampacity_A": 175,
24 "fuse_cable_ok": true,
25 "verdict": "PASS"
26}
artifacts/results/04_battery_phase2.json +40 -0
……@@ -0,0 +1,40 @@
1{
2 "phase": "phase2",
3 "pack_count": 2,
4 "bank_discharge_A_12kW": 249.3,
5 "bank_demand_A": 249.3,
6 "per_pack_discharge_A": 124.7,
7 "bank_limit": {
8 "name": "inverter max discharge",
9 "A": 250,
10 "headroom_A": 0.7
11 },
12 "per_pack_limits_A": {
13 "JK-BMS OCP trip (300s)": 150,
14 "EVE cell-honest (0.5P)": 157,
15 "JK-BMS marketed max": 200
16 },
17 "per_pack_binding": {
18 "name": "JK-BMS OCP trip (300s)",
19 "A": 150,
20 "headroom_A": 25.3
21 },
22 "per_pack_discharge_C": 0.397,
23 "per_pack_charge_C": 0.398,
24 "surge_bank_A": 280.5,
25 "surge_per_pack_A": 140.3,
26 "surge_note": "2-pack split keeps per-pack surge 140A under the 150A/300s BMS OCP even over the 18kPV's 10-min peak window (the single-pack Phase-1 case relied on the 3.5s 6000XP surge being too brief).",
27 "bank_usable_kwh": 32.16,
28 "bank_usable_kwh_80dod": 25.73,
29 "runtime_12kw_80dod_h": 2.14,
30 "days_at_avg_load": 0.77,
31 "days_at_aug_peak": 0.48,
32 "per_pack_classT_fuse_A": 175,
33 "per_pack_cable_AWG": "2/0",
34 "per_pack_cable_ampacity_A": 175,
35 "bank_aggregate_fuse_A": 350,
36 "bank_cable_single_AWG": "400",
37 "fuse_cable_ok": true,
38 "verdict": "PASS",
39 "comms_note": "2 packs: JK-BMS master/slave, one master -> 18kPV via CAN (single link). 18kPV native closed-loop is EG4-48V; Docan/JK via a CAN profile \u2014 confirm on arrival. Open-loop fallback fully viable (no battery-life penalty)."
40}
artifacts/results/05_checklist.json +131 -0
……@@ -0,0 +1,131 @@
1{
2 "nec_cycle": "2023",
3 "checks": [
4 {
5 "section": "690.7",
6 "topic": "Max system voltage (cold Voc)",
7 "status": "PASS",
8 "evidence": "7S cold Voc 430.1 V <= 480 V design / 500 V abs (margin 69.9 V). Tmin -40C; analytic+pvlib agree."
9 },
10 {
11 "section": "690.8(A)",
12 "topic": "Max circuit current (Isc x 1.25)",
13 "status": "PASS",
14 "evidence": "PV source max current 17.3 A (Isc 13.87 x 1.25)."
15 },
16 {
17 "section": "690.8(B)",
18 "topic": "Conductor ampacity after 310.15 derates",
19 "status": "PASS",
20 "evidence": "PV string 8 Cu: 75C 25A, derated 21.8A >= req 17.3A."
21 },
22 {
23 "section": "690.9 / 690.9(A) Ex",
24 "topic": "PV source overcurrent (string fusing)",
25 "status": "PASS",
26 "evidence": "Not required: 1 string per MPPT (no parallel strings), so no source-circuit fault current can exceed module 30A series-fuse rating. Each MPPT isolated."
27 },
28 {
29 "section": "690.9 / 240 / 480.9",
30 "topic": "Battery overcurrent (Class-T)",
31 "status": "PASS",
32 "evidence": "175A Class-T (DC, 20kAIC) >= 125%x126.0A; <= cable 2/0 ampacity 175A."
33 },
34 {
35 "section": "690.9 / 710.15",
36 "topic": "Inverter AC output overcurrent",
37 "status": "PASS",
38 "evidence": "35A 2-pole >= 125% x 25.0A; protects 8 Cu (240.4(D))."
39 },
40 {
41 "section": "690.12",
42 "topic": "Rapid shutdown",
43 "status": "VERIFY-AHJ",
44 "evidence": "Ground-mounted array NOT on a building: 690.12 (NEC 2023) applies to PV on/in buildings. 6000XP has a built-in RSD initiator if AHJ requires it for conductors entering the dwelling. Confirm AHJ stance for the detached ground-mount."
45 },
46 {
47 "section": "690.13",
48 "topic": "PV disconnecting means",
49 "status": "PASS",
50 "evidence": "6000XP integrated DC switch per MPPT; add an external load-break PV/DC disconnect at the inverter for service isolation."
51 },
52 {
53 "section": "690.15",
54 "topic": "Disconnect for equipment",
55 "status": "PASS",
56 "evidence": "Battery disconnect (switch or the Class-T fused disconnect) within sight of inverter."
57 },
58 {
59 "section": "690.11 / 690.41",
60 "topic": "DC arc-fault + system grounding (GFDI)",
61 "status": "PASS",
62 "evidence": "6000XP integrated PV AFCI (690.11) and PV ground-fault/isolation protection (690.41/690.5)."
63 },
64 {
65 "section": "690.43",
66 "topic": "Equipment grounding & bonding",
67 "status": "PASS",
68 "evidence": "EGCs: PV 10 / battery 6 / AC 10 AWG Cu; bond array frames + all enclosures."
69 },
70 {
71 "section": "690.45",
72 "topic": "Size of EGC (250.122)",
73 "status": "PASS",
74 "evidence": "Battery EGC 6 AWG (OCPD 175A); AC EGC 10 AWG (OCPD 35A); PV EGC min 10 AWG (no source OCPD)."
75 },
76 {
77 "section": "690.47",
78 "topic": "Grounding electrode (array + DC)",
79 "status": "ACTION",
80 "evidence": "Ground-mount: drive an array grounding electrode (rod) and bond per 690.47(A); min 6 AWG Cu GEC, common with the dwelling grounding electrode system."
81 },
82 {
83 "section": "690.31",
84 "topic": "Wiring methods",
85 "status": "PASS",
86 "evidence": "PV in conduit (Sched-40 PVC, squirrel/UV protection per Swarm \u00a716); 8 Cu PV wire/THWN-2 90C."
87 },
88 {
89 "section": "706.30 / 480.7",
90 "topic": "ESS disconnecting means",
91 "status": "PASS",
92 "evidence": "Battery disconnect + Class-T fuse; lockable; within sight of the ESS."
93 },
94 {
95 "section": "706.31 / 480.9",
96 "topic": "ESS overcurrent protection",
97 "status": "PASS",
98 "evidence": "175A Class-T at the battery positive, interrupt 20kAIC > pack fault current."
99 },
100 {
101 "section": "710.15",
102 "topic": "Stand-alone system output",
103 "status": "PASS",
104 "evidence": "6000XP 6kW 120/240 split-phase; output 25.0A; no utility backfeed (off-grid)."
105 },
106 {
107 "section": "705",
108 "topic": "Interconnection (120% / backfeed)",
109 "status": "N/A",
110 "evidence": "Off-grid, no utility interconnection. Main panel subfed with main breaker locked off (Swarm \u00a717)."
111 },
112 {
113 "section": "690.53/690.54/690.56/110.21",
114 "topic": "Labels & placards",
115 "status": "ACTION",
116 "evidence": "Required: max system voltage (690.53), inverter output rating (690.54), rapid-shutdown placard if applicable (690.56(C)), DC disconnect & directory, battery hazard label. Generate per the computed ratings."
117 },
118 {
119 "section": "Voltage drop (design target)",
120 "topic": "DC<=2% / batt<=1% / AC<=2%",
121 "status": "PASS",
122 "evidence": "DC 1.329% (150-250ft: {'150': 0.997, '200': 1.329, '250': 1.661}); battery 0.476%; AC 0.162%. (Informational; not NEC-mandated.)"
123 }
124 ],
125 "summary": {
126 "PASS": 16,
127 "VERIFY-AHJ": 1,
128 "ACTION": 2,
129 "N/A": 1
130 }
131}
artifacts/results/05_checklist_phase2.json +146 -0
……@@ -0,0 +1,146 @@
1{
2 "phase": "phase2",
3 "nec_cycle": "2023",
4 "checks": [
5 {
6 "section": "690.7",
7 "topic": "Max system voltage (cold Voc)",
8 "status": "PASS",
9 "evidence": "Longest string 8S cold Voc 491.5 V <= 550 V MPPT-fault / 600 V abs (margin 58.5 V to fault, 108.5 V to abs). Tmin -40C; analytic+pvlib+vocmax+independent agent agree. 9S=553V REJECTED (>550)."
10 },
11 {
12 "section": "690.8(A)",
13 "topic": "Max circuit current",
14 "status": "PASS",
15 "evidence": "Per string Isc x1.25 = 17.3 A (each string a dedicated homerun). MPPT1 internally combines 2 strings = 27.7 A actual <= 31 A MPPT1 Isc rating; MPPT2/3 single string <= 19 A."
16 },
17 {
18 "section": "690.8(B)",
19 "topic": "Conductor ampacity after 310.15 derates",
20 "status": "PASS",
21 "evidence": "PV 8Cu derated 19.1A >= 17.3A (8 CCC, 0.70 fill); AC 4Cu; per-pack 2/0Cu; bank 400kcmil (or 2x2/0 / 2x4/0)."
22 },
23 {
24 "section": "690.9 / 690.9(A) Ex",
25 "topic": "PV source-circuit overcurrent (fusing)",
26 "status": "PASS",
27 "evidence": "NOT required: MPPT1 parallels only 2 strings -> max backfeed 1.25xIsc=17.3A <= module 30A series fuse (3+ parallel strings would require fuses). MPPT2/3 single string. No combiner."
28 },
29 {
30 "section": "690.9 / 240 / 480.9",
31 "topic": "Battery overcurrent (per-pack Class-T)",
32 "status": "PASS",
33 "evidence": "2x 175A Class-T (DC, 20kAIC), one per pack, >= 125% x 124.7A/pack; <= 2/0 cable 175A. Bank aggregate 350A coordinated with the bank conductor."
34 },
35 {
36 "section": "690.9 / 710.15",
37 "topic": "Inverter AC output overcurrent",
38 "status": "PASS",
39 "evidence": "70A 2-pole >= 125% x 50A; protects 4Cu (240.4(D)); EGC 8AWG."
40 },
41 {
42 "section": "690.11",
43 "topic": "DC arc-fault (AFCI)",
44 "status": "PASS",
45 "evidence": "EG4 18kPV integrated PV AFCI (690.11 / UL1699B, per datasheet)."
46 },
47 {
48 "section": "690.12",
49 "topic": "Rapid shutdown",
50 "status": "VERIFY-AHJ",
51 "evidence": "18kPV has an integrated RSD initiator (datasheet cites NEC 2020:690.12). Detached ground-mount (not on a building) is likely exempt, but PV/DC conductors enter the dwelling -> confirm the VT DPS inspector's stance for NEC 2023. Initiator present if required."
52 },
53 {
54 "section": "690.13 / 690.15",
55 "topic": "PV + equipment disconnects",
56 "status": "PASS",
57 "evidence": "18kPV integrated PV disconnect; add an external load-break DC/PV disconnect for service. Battery: 2 per-pack disconnects + a 249A-class bank disconnect within sight of the inverter."
58 },
59 {
60 "section": "690.41(B)",
61 "topic": "System grounding / GFDI",
62 "status": "PASS",
63 "evidence": "18kPV integrated PV ground-fault monitoring (690.41(B)) + pole-sensitive leakage-current monitor + integrated SPD (per datasheet)."
64 },
65 {
66 "section": "690.43 / 690.45",
67 "topic": "Equipment grounding & EGC size (250.122)",
68 "status": "PASS",
69 "evidence": "EGCs: PV 10AWG (no source OCPD), per-pack 6AWG (175A), AC 8AWG (70A), bank 4AWG (sized to disconnect). Bond all array frames + enclosures + the battery busbar."
70 },
71 {
72 "section": "690.47",
73 "topic": "Grounding electrode (array + DC)",
74 "status": "ACTION",
75 "evidence": "Ground-mount: drive an array grounding electrode (rod), 6AWG Cu GEC bonded to the dwelling GES (690.47(A)). Carries forward from Phase 1; verify for the expanded array footprint."
76 },
77 {
78 "section": "690.31",
79 "topic": "Wiring methods",
80 "status": "PASS",
81 "evidence": "PV in Sched-40 PVC conduit (squirrel/UV, Swarm \u00a716); 8Cu THWN-2/PV 90C. 4 strings -> split across 2 conduits to relax the 8-CCC fill."
82 },
83 {
84 "section": "705",
85 "topic": "Interconnection (utility)",
86 "status": "N/A",
87 "evidence": "Off-grid, no utility interconnection (no 705.12 backfeed limit). Generator AC-IN to the 18kPV (200A AC bypass / 90A gen) with the main panel subfed and its main breaker locked off (Swarm \u00a717); transfer is internal to the hybrid inverter."
88 },
89 {
90 "section": "706.7 / 706.20",
91 "topic": "ESS \u2014 multi-pack arrangement & control",
92 "status": "PASS",
93 "evidence": "2x Docan S3 (LFP, JK-PB2A16S20P BMS) in parallel on a DC busbar. Each pack has its own BMS + Class-T + disconnect. Bank discharge 249A split 124.7A/pack \u2014 within the 150A/300s JK OCP (17% headroom) and the 157A EVE-cell limit. C-rate 0.397C."
94 },
95 {
96 "section": "706.30 / 480.7",
97 "topic": "ESS disconnecting means",
98 "status": "PASS",
99 "evidence": "Per-pack disconnects + a bank disconnect (lockable, within sight of the ESS); the 18kPV battery port is the inverter-side disconnect. BMS opens on cell-level faults."
100 },
101 {
102 "section": "706.31 / 480.9",
103 "topic": "ESS overcurrent protection",
104 "status": "PASS",
105 "evidence": "Per-pack 175A Class-T (20kAIC > pack prospective fault). Layered: JK-BMS (150A/300s OCP, 300A SC) protects cells; Class-T protects each pack cable."
106 },
107 {
108 "section": "706.x / BMS comms",
109 "topic": "Multi-pack BMS communications",
110 "status": "VERIFY",
111 "evidence": "2 packs: JK-BMS master/slave, one master -> 18kPV via CAN (a SINGLE comms link, vs 2 for a parallel-6000XP path). 18kPV native closed-loop is EG4-48V; the Docan/JK pack runs via a CAN profile -> confirm on arrival. Open-loop fallback fully viable (no battery-life penalty)."
112 },
113 {
114 "section": "710.15",
115 "topic": "Stand-alone system output",
116 "status": "PASS",
117 "evidence": "18kPV 12kW 120/240V split-phase, output 50A; off-grid, no utility backfeed. Continuous line 8000W/120V leg covers the household peak; surge 13.5kW (w/o PV)."
118 },
119 {
120 "section": "690.53/54/56 / 110.21",
121 "topic": "Labels & placards",
122 "status": "ACTION",
123 "evidence": "Max system voltage 491.5V (690.53), inverter output 12kW/50A (690.54), RSD placard if AHJ requires (690.56(C)), DC disconnect + directory, per-pack battery hazard labels. Generate from these computed ratings."
124 },
125 {
126 "section": "NFPA 855 / VT 2025 Fire Code",
127 "topic": "ESS fire code (OUT OF SCOPE \u2014 GATE)",
128 "status": "FLAG",
129 "evidence": "2 packs = 32.2kWh nameplate. Swarm \u00a74: even 2 packs (32kWh) likely crosses the 20kWh residential threshold (3 packs/48kWh definitively) -> detached non-combustible shed >=10ft, UL9540 listing or AHJ hazard-mitigation analysis, + propane-heater combustion-air/ventilation/separation. NOT engineered here \u2014 pre-clear with VT DPS in writing before ordering the 2nd pack."
130 },
131 {
132 "section": "Voltage drop (design target)",
133 "topic": "DC<=2% / batt<=1% / AC<=2%",
134 "status": "PASS",
135 "evidence": "DC 1.329% (150-250ft: {'150': 0.997, '200': 1.329, '250': 1.661}); per-pack 0.235%; bank 0.313%; AC 0.128%. (Informational; not NEC-mandated.)"
136 }
137 ],
138 "summary": {
139 "PASS": 16,
140 "VERIFY-AHJ": 1,
141 "ACTION": 2,
142 "N/A": 1,
143 "VERIFY": 1,
144 "FLAG": 1
145 }
146}
artifacts/results/07_load_capacity.json +67 -0
……@@ -0,0 +1,67 @@
1{
2 "production_kwh_day": {
3 "Deep winter (Dec)": 15.7,
4 "Winter avg (Dec-Jan)": 20.0,
5 "Shoulder (Mar/Apr/Sep/Oct)": 28.8,
6 "Summer (Jun)": 27.7,
7 "Annual avg": 26.4
8 },
9 "usage_band": [
10 0.85,
11 0.95
12 ],
13 "supportable_daily_load_kwh": [
14 {
15 "season": "Deep winter (Dec)",
16 "ac_kwh_day": 15.7,
17 "supportable_kwh_day": [
18 13,
19 15
20 ]
21 },
22 {
23 "season": "Winter avg (Dec-Jan)",
24 "ac_kwh_day": 20.0,
25 "supportable_kwh_day": [
26 17,
27 19
28 ]
29 },
30 {
31 "season": "Shoulder (Mar/Apr/Sep/Oct)",
32 "ac_kwh_day": 28.8,
33 "supportable_kwh_day": [
34 24,
35 27
36 ]
37 },
38 {
39 "season": "Summer (Jun)",
40 "ac_kwh_day": 27.7,
41 "supportable_kwh_day": [
42 24,
43 26
44 ]
45 },
46 {
47 "season": "Annual avg",
48 "ac_kwh_day": 26.4,
49 "supportable_kwh_day": [
50 22,
51 25
52 ]
53 }
54 ],
55 "inverter_continuous_W": 6000,
56 "inverter_surge_W": 12000,
57 "per_leg_A": 25,
58 "battery_usable_kwh_80dod": 12.9,
59 "days_autonomy": {
60 "5": 2.58,
61 "8": 1.61,
62 "10": 1.29,
63 "13": 0.99,
64 "20": 0.65
65 },
66 "note": "capacity envelope, not a load study; generator backfills winter deficit"
67}
artifacts/results/08_load_actual.json +59 -0
……@@ -0,0 +1,59 @@
1{
2 "source": "data/hardwick_usage.csv",
3 "last12_kwh_yr": 12237,
4 "monthly_avg_kwh": 1020,
5 "daily_avg_kwh": 33.5,
6 "min_month_kwh": 744,
7 "max_month_kwh": 1677,
8 "seasonal_daily_kwh": {
9 "winter": 26.6,
10 "shoulder": 31.9,
11 "summer": 43.4
12 },
13 "august_peak_kwh_day": 54.1,
14 "vs_supportable": {
15 "winter": {
16 "actual_kwh_day": 26.6,
17 "supportable": [
18 17,
19 19
20 ],
21 "solar_prod_kwh_day": 20.0,
22 "solar_covers_pct": 75
23 },
24 "shoulder": {
25 "actual_kwh_day": 31.9,
26 "supportable": [
27 24,
28 27
29 ],
30 "solar_prod_kwh_day": 28.8,
31 "solar_covers_pct": 90
32 },
33 "summer": {
34 "actual_kwh_day": 43.4,
35 "supportable": [
36 24,
37 26
38 ],
39 "solar_prod_kwh_day": 27.7,
40 "solar_covers_pct": 64
41 },
42 "August": {
43 "actual_kwh_day": 54.1,
44 "supportable": [
45 24,
46 26
47 ],
48 "solar_prod_kwh_day": 27.7,
49 "solar_covers_pct": 51
50 }
51 },
52 "annual_production_kwh": 9622,
53 "array_pct_of_load": 79,
54 "annual_cost_usd": 2778.53,
55 "weighted_avg_cost_per_kwh": 0.227,
56 "min_monthly_bill_usd": 170.71,
57 "max_monthly_bill_usd": 384.45,
58 "verdict": "Phase-1 (~8 kW / 16 kWh) offsets ~half (Aug) to ~90% (shoulder) of this load by season; full off-grid coverage needs load reduction (propane/shedding) + the Phase-2 PV expansion + 2nd battery. Confirms Swarm 'Phase 2 = more PV'."
59}
artifacts/results/09_phase2.json +36 -0
……@@ -0,0 +1,36 @@
1{
2 "remaining_panels": 17,
3 "kw_full_pallet": 17.82,
4 "full_pallet_annual_kwh": 20962,
5 "array_pct_of_load": 171,
6 "dec_kwh_day": 34.0,
7 "winter_kwh_day": 43.1,
8 "summer_kwh_day": 63.9,
9 "panels_added_cost": 0,
10 "inverter_parallel_6000xp": 1699,
11 "inverter_18kpv_swap_net": [
12 3500,
13 3700
14 ],
15 "battery_plus1_pack": [
16 1758,
17 2000
18 ],
19 "battery_plus2_packs": [
20 3516,
21 4000
22 ],
23 "bos": [
24 800,
25 1500
26 ],
27 "bundle_lean_usd": [
28 4257,
29 5199
30 ],
31 "bundle_recommended_usd": [
32 7816,
33 9200
34 ],
35 "note": "panels $0 (owned); cost figures estimates (Swarm \u00a710/Key Decisions); energy computed"
36}
artifacts/results/10_compare.json +66 -0
……@@ -0,0 +1,66 @@
1{
2 "path_A": {
3 "name": "A: 2x EG4 6000XP",
4 "panels": 28,
5 "strings": 4,
6 "series": "4x7S",
7 "kw": 16.1,
8 "pv_usable_w": 16000,
9 "ac_w": 12000,
10 "batt_lim_a": 280,
11 "eff": 0.93,
12 "string_voc": 430.1,
13 "voc_ceiling": 480,
14 "mppts": 4,
15 "units": 2,
16 "comms_links": 2,
17 "spares": 3,
18 "annual": 19213,
19 "dec": 31.3,
20 "winter": 39.9,
21 "summer": 57.7,
22 "pct_load": 157,
23 "cov_winter": 128,
24 "cov_summer": 113,
25 "cov_aug": 91,
26 "host": "developer.nlr.gov",
27 "pv_headroom_w": -100.00000000000182,
28 "i_bank": 252.0,
29 "i_pack": 126.0,
30 "batt_headroom_a": 28.0,
31 "meets_all_seasons": false
32 },
33 "path_B": {
34 "name": "B: 1x EG4 18kPV",
35 "panels": 31,
36 "strings": 4,
37 "series": "8+8+8+7S",
38 "kw": 17.82,
39 "pv_usable_w": 18000,
40 "ac_w": 12000,
41 "batt_lim_a": 250,
42 "eff": 0.94,
43 "string_voc": 491.5,
44 "voc_ceiling": 550,
45 "mppts": 3,
46 "units": 1,
47 "comms_links": 1,
48 "spares": 0,
49 "annual": 20962,
50 "dec": 34.0,
51 "winter": 43.1,
52 "summer": 63.9,
53 "pct_load": 171,
54 "cov_winter": 138,
55 "cov_summer": 125,
56 "cov_aug": 100,
57 "host": "developer.nlr.gov",
58 "pv_headroom_w": 180.0,
59 "i_bank": 249.3,
60 "i_pack": 124.7,
61 "batt_headroom_a": 0.7,
62 "meets_all_seasons": true
63 },
64 "production_delta_kwh": 1749,
65 "note": "production/loading computed (PVWatts + datasheet limits); cost is estimate"
66}
artifacts/results/11_pathA.json +241 -0
……@@ -0,0 +1,241 @@
1{
2 "meta": {
3 "path": "A",
4 "inverters": 2,
5 "panels": 28,
6 "spares": 3,
7 "kw": 16.1,
8 "strings": 4,
9 "n_series": 7,
10 "string_cold_voc_V": 430.1,
11 "voc_ceiling_V": 480,
12 "array_dc_W": 16100,
13 "pv_usable_W": 16000
14 },
15 "pv_string": {
16 "run": "PV string (array->6000XP MPPT, per string)",
17 "mode": "pv",
18 "length_ft": 200,
19 "vref_V": 307.0,
20 "current_A": 13.11,
21 "req_ampacity_term_A": 21.7,
22 "req_ampacity_derated_A": 17.3,
23 "ambient_C": 40,
24 "ccc": 8,
25 "temp_factor90": 0.91,
26 "fill_factor": 0.7,
27 "ampacity_gauge": "12",
28 "ampacity_75C_A": 25,
29 "ampacity_derated90_A": 19.1,
30 "final_gauge_AWG": "8",
31 "gauge_driver": "voltage-drop",
32 "vdrop_pct": 1.329,
33 "vdrop_V": 4.08,
34 "target_pct": 2.0,
35 "ocpd_A": null,
36 "ocpd_note": "n/a",
37 "egc_AWG": null,
38 "vdrop_sweep_pct": {
39 "150": 0.997,
40 "200": 1.329,
41 "250": 1.661
42 },
43 "source_fuse_required": false
44 },
45 "ac_per_unit": {
46 "run": "AC per-unit (6000XP->AC combiner)",
47 "mode": "continuous",
48 "length_ft": 10,
49 "vref_V": 240.0,
50 "current_A": 25,
51 "req_ampacity_term_A": 31.2,
52 "req_ampacity_derated_A": 31.2,
53 "ambient_C": 30,
54 "ccc": 2,
55 "temp_factor90": 1.0,
56 "fill_factor": 1.0,
57 "ampacity_gauge": "10",
58 "ampacity_75C_A": 35,
59 "ampacity_derated90_A": 40.0,
60 "final_gauge_AWG": "8",
61 "gauge_driver": "240.4(D) OCPD",
62 "vdrop_pct": 0.162,
63 "vdrop_V": 0.389,
64 "target_pct": 2.0,
65 "ocpd_A": 35,
66 "ocpd_note": "OK",
67 "egc_AWG": "10"
68 },
69 "ac_combined": {
70 "run": "AC combined (busbar->main panel)",
71 "mode": "continuous",
72 "length_ft": 10,
73 "vref_V": 240.0,
74 "current_A": 50,
75 "req_ampacity_term_A": 62.5,
76 "req_ampacity_derated_A": 62.5,
77 "ambient_C": 30,
78 "ccc": 2,
79 "temp_factor90": 1.0,
80 "fill_factor": 1.0,
81 "ampacity_gauge": "6",
82 "ampacity_75C_A": 65,
83 "ampacity_derated90_A": 75.0,
84 "final_gauge_AWG": "4",
85 "gauge_driver": "240.4(D) OCPD",
86 "vdrop_pct": 0.128,
87 "vdrop_V": 0.308,
88 "target_pct": 2.0,
89 "ocpd_A": 70,
90 "ocpd_note": "OK",
91 "egc_AWG": "8"
92 },
93 "battery_per_pack": {
94 "run": "Battery per-pack (pack->busbar)",
95 "mode": "continuous",
96 "length_ft": 5,
97 "vref_V": 51.2,
98 "current_A": 126.01,
99 "req_ampacity_term_A": 157.5,
100 "req_ampacity_derated_A": 157.5,
101 "ambient_C": 30,
102 "ccc": 2,
103 "temp_factor90": 1.0,
104 "fill_factor": 1.0,
105 "ampacity_gauge": "2/0",
106 "ampacity_75C_A": 175,
107 "ampacity_derated90_A": 195.0,
108 "final_gauge_AWG": "2/0",
109 "gauge_driver": "ampacity",
110 "vdrop_pct": 0.238,
111 "vdrop_V": 0.122,
112 "target_pct": 1.0,
113 "ocpd_A": 175,
114 "ocpd_note": "OK",
115 "egc_AWG": "6"
116 },
117 "battery_per_inverter": {
118 "run": "Battery per-inverter (busbar->6000XP)",
119 "mode": "continuous",
120 "length_ft": 10,
121 "vref_V": 51.2,
122 "current_A": 126.01,
123 "req_ampacity_term_A": 157.5,
124 "req_ampacity_derated_A": 157.5,
125 "ambient_C": 30,
126 "ccc": 2,
127 "temp_factor90": 1.0,
128 "fill_factor": 1.0,
129 "ampacity_gauge": "2/0",
130 "ampacity_75C_A": 175,
131 "ampacity_derated90_A": 195.0,
132 "final_gauge_AWG": "2/0",
133 "gauge_driver": "ampacity",
134 "vdrop_pct": 0.476,
135 "vdrop_V": 0.244,
136 "target_pct": 1.0,
137 "ocpd_A": 175,
138 "ocpd_note": "OK",
139 "egc_AWG": "6"
140 },
141 "bank": {
142 "i_bank_A": 252.0,
143 "i_pack_A": 126.0,
144 "i_inv_A": 126.0,
145 "busbar_A": 250
146 },
147 "limits": {
148 "bank_limit_A": 280,
149 "bank_headroom_A": 28.0,
150 "per_inv_limit_A": 140,
151 "per_inv_headroom_A": 14.0,
152 "per_pack_binding": "JK-BMS OCP (300s)",
153 "per_pack_binding_A": 150,
154 "per_pack_headroom_A": 24.0,
155 "c_dis": 0.401,
156 "c_chg": 0.398,
157 "surge_bank_A": 504.0,
158 "surge_pack_A": 252.0,
159 "surge_duration_s": 3.5,
160 "bank_usable_kwh_80dod": 25.73,
161 "days_avg": 0.77,
162 "days_peak": 0.48,
163 "classT_fuse_A": 175,
164 "classT_count": 4
165 },
166 "production": {
167 "annual_kwh": 19213,
168 "pct_load": 157,
169 "cov_winter": 128,
170 "cov_summer": 113,
171 "cov_aug": 91,
172 "meets_all_seasons": false
173 },
174 "nec_checks": [
175 {
176 "section": "690.7",
177 "status": "PASS",
178 "evidence": "Max system voltage 430.1V (7S) <= 480V design / 500V abs (validated x4 strings)."
179 },
180 {
181 "section": "690.8(A)",
182 "status": "PASS",
183 "evidence": "Per string Isc x1.25 = 17.3A; 1 string/MPPT -> Isc 13.87A <= 25A MPPT rating, Imp 13.11A <= 17A input."
184 },
185 {
186 "section": "690.9(A) Ex",
187 "status": "PASS",
188 "evidence": "NO PV source fusing: exactly 1 string per MPPT (no parallel strings) on either 6000XP."
189 },
190 {
191 "section": "690.9 / 710.15",
192 "status": "PASS",
193 "evidence": "AC OCPD: per-unit 35A 2-pole x2 (8AWG) at the parallel busbar; combined 70A (4AWG) to main panel."
194 },
195 {
196 "section": "690.11/690.41(B)",
197 "status": "PASS",
198 "evidence": "Each 6000XP has integrated PV AFCI + GFDI/isolation (x2 units)."
199 },
200 {
201 "section": "690.12",
202 "status": "VERIFY-AHJ",
203 "evidence": "Each 6000XP supplies an RSD initiator if required; same ground-mount/AHJ question as Phase 1/Path B."
204 },
205 {
206 "section": "690.13/690.15",
207 "status": "PASS",
208 "evidence": "Each 6000XP integrated DC disconnect; bank + per-pack + per-inverter disconnects."
209 },
210 {
211 "section": "690.9/480.9/706.31",
212 "status": "PASS",
213 "evidence": "4x 175A Class-T (2 packs + 2 inverter inputs), 20kAIC, <= 2/0 cable 175A."
214 },
215 {
216 "section": "705",
217 "status": "N/A",
218 "evidence": "Off-grid. Two inverters PARALLELED (EG4 parallel kit), not utility-interactive; main panel subfed, main breaker locked off."
219 },
220 {
221 "section": "706.7",
222 "status": "PASS",
223 "evidence": "2-pack bank on a busbar feeding 2 inverters; bank 252A split 126A/pack (17% under 150A BMS) and 126A/inverter (14A under 140A)."
224 },
225 {
226 "section": "706.x comms",
227 "status": "VERIFY",
228 "evidence": "TWO JK->Pylontech-CAN links (one per 6000XP) to configure (Swarm \u00a79). Open-loop fallback viable."
229 },
230 {
231 "section": "Redundancy",
232 "status": "NOTE",
233 "evidence": "N+1: one 6000XP can keep ~half the system (8kW PV / 6kW AC) running if the other fails."
234 },
235 {
236 "section": "690.53/54/56",
237 "status": "ACTION",
238 "evidence": "Labels: max system voltage 430.1V, 2x inverter output ratings, disconnects, battery hazard."
239 }
240 ]
241}
artifacts/sld.png +0 -0
(no content changes — binary or rename)
artifacts/sld.svg +2096 -0
……@@ -0,0 +1,2096 @@
1<?xml version="1.0" encoding="utf-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="534.819659pt" height="533.52pt" viewBox="0 0 534.819659 533.52" xmlns="http://www.w3.org/2000/svg" version="1.1">
5 <metadata>
6 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
7 <cc:Work>
8 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9 <dc:date>2026-06-03T01:20:57.397200</dc:date>
10 <dc:format>image/svg+xml</dc:format>
11 <dc:creator>
12 <cc:Agent>
13 <dc:title>Matplotlib v3.10.9, https://matplotlib.org/</dc:title>
14 </cc:Agent>
15 </dc:creator>
16 </cc:Work>
17 </rdf:RDF>
18 </metadata>
19 <defs>
20 <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
21 </defs>
22 <g id="figure_1">
23 <g id="patch_1">
24 <path d="M 0 533.52
25L 534.819659 533.52
26L 534.819659 0
27L 0 0
28L 0 533.52
29z
30" style="fill: none"/>
31 </g>
32 <g id="axes_1">
33 <g id="patch_2">
34 <path d="M 51.466495 176.733624
35C 56.238898 176.733624 60.816479 174.837528 64.191078 171.462929
36C 67.565677 168.08833 69.461773 163.510749 69.461773 158.738346
37C 69.461773 153.965942 67.565677 149.388362 64.191078 146.013763
38C 60.816479 142.639164 56.238898 140.743068 51.466495 140.743068
39C 46.694091 140.743068 42.116511 142.639164 38.741912 146.013763
40C 35.367313 149.388362 33.471217 153.965942 33.471217 158.738346
41C 33.471217 163.510749 35.367313 168.08833 38.741912 171.462929
42C 42.116511 174.837528 46.694091 176.733624 51.466495 176.733624
43L 51.466495 176.733624
44z
45" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
46 </g>
47 <g id="line2d_1">
48 <path d="M 4.678772 158.738346
49L 33.471217 158.738346
50L 33.471217 158.738346
51M 69.461773 158.738346
52L 69.461773 158.738346
53L 98.254217 158.738346
54" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
55 </g>
56 <g id="line2d_2">
57 <path d="M 47.867439 154.239526
58L 47.867439 163.237165
59" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
60 </g>
61 <g id="line2d_3">
62 <path d="M 55.06555 148.840943
63L 55.06555 168.635749
64" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
65 </g>
66 <g id="line2d_4">
67 <path d="M 33.471217 158.738346
68L 47.867439 158.738346
69M 55.06555 158.738346
70L 69.461773 158.738346
71" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
72 </g>
73 <g id="line2d_5">
74 <path d="M 73.060828 126.346846
75L 68.625953 130.781721
76" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
77 </g>
78 <g id="patch_3">
79 <path d="M 70.53464 132.690408
80L 62.263662 137.144012
81L 66.717266 128.873033
82z
83" clip-path="url(#pc591430356)"/>
84 </g>
85 <g id="line2d_6">
86 <path d="M 80.258939 133.544957
87L 75.824064 137.979832
88" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
89 </g>
90 <g id="patch_4">
91 <path d="M 77.732752 139.888519
92L 69.461773 144.342123
93L 73.915377 136.071144
94z
95" clip-path="url(#pc591430356)"/>
96 </g>
97 <g id="line2d_7">
98 <path d="M 98.254217 158.738346
99L 141.442884 158.738346
100L 184.631551 158.738346
101" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
102 </g>
103 <g id="line2d_8">
104 <path d="M 184.631551 158.738346
105M 193.269285 155.13929
106L 213.423996 142.542596
107M 220.622107 158.738346
108" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
109 </g>
110 <g id="line2d_9">
111 <path d="M 193.269285 191.129846
112L 213.423996 178.533151
113" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
114 </g>
115 <g id="line2d_10">
116 <path d="M 202.626829 185.731263
117L 202.626829 151.540235
118" clip-path="url(#pc591430356)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
119 </g>
120 <g id="line2d_11">
121 <path d="M 184.631551 158.738346
122L 202.626829 158.738346
123L 220.622107 158.738346
124" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
125 </g>
126 <g id="line2d_12">
127 <path d="M 238.617385 203.72654
128L 339.390941 203.72654
129L 339.390941 113.750151
130L 238.617385 113.750151
131L 238.617385 203.72654
132" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
133 </g>
134 <g id="line2d_13">
135 <path d="M 238.617385 158.738346
136L 220.622107 158.738346
137" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
138 </g>
139 <g id="line2d_14">
140 <path d="M 339.390941 158.738346
141L 357.386219 158.738346
142" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
143 </g>
144 <g id="line2d_15">
145 <path d="M 256.612663 203.72654
146L 256.612663 221.721818
147" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
148 </g>
149 <g id="line2d_16">
150 <path d="M 321.395663 203.72654
151L 321.395663 221.721818
152" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
153 </g>
154 <g id="line2d_17">
155 <path d="M 357.386219 158.738346
156L 386.178664 158.738346
157L 414.971108 158.738346
158" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
159 </g>
160 <g id="line2d_18">
161 <path d="M 414.971108 158.738346
162M 423.608842 155.13929
163L 443.763553 142.542596
164M 450.961664 158.738346
165" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
166 </g>
167 <g id="line2d_19">
168 <path d="M 423.608842 191.129846
169L 443.763553 178.533151
170" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
171 </g>
172 <g id="line2d_20">
173 <path d="M 432.966386 185.731263
174L 432.966386 151.540235
175" clip-path="url(#pc591430356)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
176 </g>
177 <g id="line2d_21">
178 <path d="M 414.971108 158.738346
179L 425.768275 158.738346
180L 436.565442 158.738346
181" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
182 </g>
183 <g id="line2d_22">
184 <path d="M 436.565442 158.738346
185L 465.357886 158.738346
186L 465.357886 149.740707
187L 501.348442 149.740707
188L 501.348442 167.735985
189L 465.357886 167.735985
190L 465.357886 158.738346
191M 501.348442 158.738346
192L 530.140887 158.738346
193" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
194 </g>
195 <g id="line2d_23">
196 <path d="M 256.612663 221.721818
197L 256.612663 246.915207
198L 256.612663 272.108596
199" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
200 </g>
201 <g id="line2d_24">
202 <path d="M 256.612663 272.108596
203L 256.612663 300.901041
204L 265.610302 300.901041
205L 265.610302 336.891597
206L 247.615024 336.891597
207L 247.615024 300.901041
208L 256.612663 300.901041
209M 256.612663 336.891597
210L 256.612663 365.684042
211" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
212 </g>
213 <g id="line2d_25">
214 <path d="M 256.612663 300.901041
215L 256.612663 336.891597
216" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
217 </g>
218 <g id="line2d_26">
219 <path d="M 256.612663 365.684042
220L 256.612663 374.68168
221L 256.612663 383.679319
222" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
223 </g>
224 <g id="line2d_27">
225 <path d="M 256.612663 383.679319
226M 260.211718 392.317053
227L 272.808413 412.471764
228M 256.612663 419.669875
229" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
230 </g>
231 <g id="line2d_28">
232 <path d="M 224.221163 392.317053
233L 236.817857 412.471764
234" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
235 </g>
236 <g id="line2d_29">
237 <path d="M 229.619746 401.674597
238L 263.810774 401.674597
239" clip-path="url(#pc591430356)" style="fill: none; stroke-dasharray: 2,3.3; stroke-dashoffset: 0; stroke: #000000; stroke-width: 2"/>
240 </g>
241 <g id="line2d_30">
242 <path d="M 256.612663 383.679319
243L 256.612663 392.676958
244L 256.612663 401.674597
245" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
246 </g>
247 <g id="line2d_31">
248 <path d="M 256.612663 401.674597
249L 256.612663 438.339976
250M 256.612663 458.584664
251L 256.612663 495.250042
252" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
253 </g>
254 <g id="line2d_32">
255 <path d="M 270.109121 438.339976
256L 243.116204 438.339976
257" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
258 </g>
259 <g id="line2d_33">
260 <path d="M 263.360892 445.088205
261L 249.864434 445.088205
262" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
263 </g>
264 <g id="line2d_34">
265 <path d="M 270.109121 451.836434
266L 243.116204 451.836434
267" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
268 </g>
269 <g id="line2d_35">
270 <path d="M 263.360892 458.584664
271L 249.864434 458.584664
272" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
273 </g>
274 <g id="line2d_36">
275 <path d="M 321.395663 221.721818
276L 321.395663 243.316152
277L 321.395663 264.910485
278" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
279 </g>
280 <g id="line2d_37">
281 <path d="M 321.395663 264.910485
282L 321.395663 279.306708
283L 312.398024 279.306708
284L 330.393302 279.306708
285M 315.097316 283.625574
286L 327.69401 283.625574
287M 319.596135 287.944441
288L 323.195191 287.944441
289" clip-path="url(#pc591430356)" style="fill: none; stroke: #000000; stroke-width: 2; stroke-linecap: round"/>
290 </g>
291 <g id="text_1">
292 <!-- PV ARRAY -->
293 <g transform="translate(27.186807 187.931117) scale(0.1 -0.1)">
294 <defs>
295 <path id="DejaVuSans-50" d="M 1259 4147
296L 1259 2394
297L 2053 2394
298Q 2494 2394 2734 2622
299Q 2975 2850 2975 3272
300Q 2975 3691 2734 3919
301Q 2494 4147 2053 4147
302L 1259 4147
303z
304M 628 4666
305L 2053 4666
306Q 2838 4666 3239 4311
307Q 3641 3956 3641 3272
308Q 3641 2581 3239 2228
309Q 2838 1875 2053 1875
310L 1259 1875
311L 1259 0
312L 628 0
313L 628 4666
314z
315" transform="scale(0.015625)"/>
316 <path id="DejaVuSans-56" d="M 1831 0
317L 50 4666
318L 709 4666
319L 2188 738
320L 3669 4666
321L 4325 4666
322L 2547 0
323L 1831 0
324z
325" transform="scale(0.015625)"/>
326 <path id="DejaVuSans-20" transform="scale(0.015625)"/>
327 <path id="DejaVuSans-41" d="M 2188 4044
328L 1331 1722
329L 3047 1722
330L 2188 4044
331z
332M 1831 4666
333L 2547 4666
334L 4325 0
335L 3669 0
336L 3244 1197
337L 1141 1197
338L 716 0
339L 50 0
340L 1831 4666
341z
342" transform="scale(0.015625)"/>
343 <path id="DejaVuSans-52" d="M 2841 2188
344Q 3044 2119 3236 1894
345Q 3428 1669 3622 1275
346L 4263 0
347L 3584 0
348L 2988 1197
349Q 2756 1666 2539 1819
350Q 2322 1972 1947 1972
351L 1259 1972
352L 1259 0
353L 628 0
354L 628 4666
355L 2053 4666
356Q 2853 4666 3247 4331
357Q 3641 3997 3641 3322
358Q 3641 2881 3436 2590
359Q 3231 2300 2841 2188
360z
361M 1259 4147
362L 1259 2491
363L 2053 2491
364Q 2509 2491 2742 2702
365Q 2975 2913 2975 3322
366Q 2975 3731 2742 3939
367Q 2509 4147 2053 4147
368L 1259 4147
369z
370" transform="scale(0.015625)"/>
371 <path id="DejaVuSans-59" d="M -13 4666
372L 666 4666
373L 1959 2747
374L 3244 4666
375L 3922 4666
376L 2272 2222
377L 2272 0
378L 1638 0
379L 1638 2222
380L -13 4666
381z
382" transform="scale(0.015625)"/>
383 </defs>
384 <use xlink:href="#DejaVuSans-50"/>
385 <use xlink:href="#DejaVuSans-56" transform="translate(60.302734 0)"/>
386 <use xlink:href="#DejaVuSans-20" transform="translate(128.710938 0)"/>
387 <use xlink:href="#DejaVuSans-41" transform="translate(160.498047 0)"/>
388 <use xlink:href="#DejaVuSans-52" transform="translate(228.90625 0)"/>
389 <use xlink:href="#DejaVuSans-52" transform="translate(298.388672 0)"/>
390 <use xlink:href="#DejaVuSans-41" transform="translate(363.871094 0)"/>
391 <use xlink:href="#DejaVuSans-59" transform="translate(424.529297 0)"/>
392 </g>
393 <!-- 14×575W · 2×7S -->
394 <g transform="translate(7.932901 197.609242) scale(0.1 -0.1)">
395 <defs>
396 <path id="DejaVuSans-31" d="M 794 531
397L 1825 531
398L 1825 4091
399L 703 3866
400L 703 4441
401L 1819 4666
402L 2450 4666
403L 2450 531
404L 3481 531
405L 3481 0
406L 794 0
407L 794 531
408z
409" transform="scale(0.015625)"/>
410 <path id="DejaVuSans-34" d="M 2419 4116
411L 825 1625
412L 2419 1625
413L 2419 4116
414z
415M 2253 4666
416L 3047 4666
417L 3047 1625
418L 3713 1625
419L 3713 1100
420L 3047 1100
421L 3047 0
422L 2419 0
423L 2419 1100
424L 313 1100
425L 313 1709
426L 2253 4666
427z
428" transform="scale(0.015625)"/>
429 <path id="DejaVuSans-d7" d="M 4488 3438
430L 3059 2003
431L 4488 575
432L 4116 197
433L 2681 1631
434L 1247 197
435L 878 575
436L 2303 2003
437L 878 3438
438L 1247 3816
439L 2681 2381
440L 4116 3816
441L 4488 3438
442z
443" transform="scale(0.015625)"/>
444 <path id="DejaVuSans-35" d="M 691 4666
445L 3169 4666
446L 3169 4134
447L 1269 4134
448L 1269 2991
449Q 1406 3038 1543 3061
450Q 1681 3084 1819 3084
451Q 2600 3084 3056 2656
452Q 3513 2228 3513 1497
453Q 3513 744 3044 326
454Q 2575 -91 1722 -91
455Q 1428 -91 1123 -41
456Q 819 9 494 109
457L 494 744
458Q 775 591 1075 516
459Q 1375 441 1709 441
460Q 2250 441 2565 725
461Q 2881 1009 2881 1497
462Q 2881 1984 2565 2268
463Q 2250 2553 1709 2553
464Q 1456 2553 1204 2497
465Q 953 2441 691 2322
466L 691 4666
467z
468" transform="scale(0.015625)"/>
469 <path id="DejaVuSans-37" d="M 525 4666
470L 3525 4666
471L 3525 4397
472L 1831 0
473L 1172 0
474L 2766 4134
475L 525 4134
476L 525 4666
477z
478" transform="scale(0.015625)"/>
479 <path id="DejaVuSans-57" d="M 213 4666
480L 850 4666
481L 1831 722
482L 2809 4666
483L 3519 4666
484L 4500 722
485L 5478 4666
486L 6119 4666
487L 4947 0
488L 4153 0
489L 3169 4050
490L 2175 0
491L 1381 0
492L 213 4666
493z
494" transform="scale(0.015625)"/>
495 <path id="DejaVuSans-b7" d="M 684 2619
496L 1344 2619
497L 1344 1825
498L 684 1825
499L 684 2619
500z
501" transform="scale(0.015625)"/>
502 <path id="DejaVuSans-32" d="M 1228 531
503L 3431 531
504L 3431 0
505L 469 0
506L 469 531
507Q 828 903 1448 1529
508Q 2069 2156 2228 2338
509Q 2531 2678 2651 2914
510Q 2772 3150 2772 3378
511Q 2772 3750 2511 3984
512Q 2250 4219 1831 4219
513Q 1534 4219 1204 4116
514Q 875 4013 500 3803
515L 500 4441
516Q 881 4594 1212 4672
517Q 1544 4750 1819 4750
518Q 2544 4750 2975 4387
519Q 3406 4025 3406 3419
520Q 3406 3131 3298 2873
521Q 3191 2616 2906 2266
522Q 2828 2175 2409 1742
523Q 1991 1309 1228 531
524z
525" transform="scale(0.015625)"/>
526 <path id="DejaVuSans-53" d="M 3425 4513
527L 3425 3897
528Q 3066 4069 2747 4153
529Q 2428 4238 2131 4238
530Q 1616 4238 1336 4038
531Q 1056 3838 1056 3469
532Q 1056 3159 1242 3001
533Q 1428 2844 1947 2747
534L 2328 2669
535Q 3034 2534 3370 2195
536Q 3706 1856 3706 1288
537Q 3706 609 3251 259
538Q 2797 -91 1919 -91
539Q 1588 -91 1214 -16
540Q 841 59 441 206
541L 441 856
542Q 825 641 1194 531
543Q 1563 422 1919 422
544Q 2459 422 2753 634
545Q 3047 847 3047 1241
546Q 3047 1584 2836 1778
547Q 2625 1972 2144 2069
548L 1759 2144
549Q 1053 2284 737 2584
550Q 422 2884 422 3419
551Q 422 4038 858 4394
552Q 1294 4750 2059 4750
553Q 2388 4750 2728 4690
554Q 3069 4631 3425 4513
555z
556" transform="scale(0.015625)"/>
557 </defs>
558 <use xlink:href="#DejaVuSans-31"/>
559 <use xlink:href="#DejaVuSans-34" transform="translate(63.623047 0)"/>
560 <use xlink:href="#DejaVuSans-d7" transform="translate(127.246094 0)"/>
561 <use xlink:href="#DejaVuSans-35" transform="translate(211.035156 0)"/>
562 <use xlink:href="#DejaVuSans-37" transform="translate(274.658203 0)"/>
563 <use xlink:href="#DejaVuSans-35" transform="translate(338.28125 0)"/>
564 <use xlink:href="#DejaVuSans-57" transform="translate(401.904297 0)"/>
565 <use xlink:href="#DejaVuSans-20" transform="translate(500.78125 0)"/>
566 <use xlink:href="#DejaVuSans-b7" transform="translate(532.568359 0)"/>
567 <use xlink:href="#DejaVuSans-20" transform="translate(564.355469 0)"/>
568 <use xlink:href="#DejaVuSans-32" transform="translate(596.142578 0)"/>
569 <use xlink:href="#DejaVuSans-d7" transform="translate(659.765625 0)"/>
570 <use xlink:href="#DejaVuSans-37" transform="translate(743.554688 0)"/>
571 <use xlink:href="#DejaVuSans-53" transform="translate(807.177734 0)"/>
572 </g>
573 <!-- 8050W DC -->
574 <g transform="translate(24.867276 207.287367) scale(0.1 -0.1)">
575 <defs>
576 <path id="DejaVuSans-38" d="M 2034 2216
577Q 1584 2216 1326 1975
578Q 1069 1734 1069 1313
579Q 1069 891 1326 650
580Q 1584 409 2034 409
581Q 2484 409 2743 651
582Q 3003 894 3003 1313
583Q 3003 1734 2745 1975
584Q 2488 2216 2034 2216
585z
586M 1403 2484
587Q 997 2584 770 2862
588Q 544 3141 544 3541
589Q 544 4100 942 4425
590Q 1341 4750 2034 4750
591Q 2731 4750 3128 4425
592Q 3525 4100 3525 3541
593Q 3525 3141 3298 2862
594Q 3072 2584 2669 2484
595Q 3125 2378 3379 2068
596Q 3634 1759 3634 1313
597Q 3634 634 3220 271
598Q 2806 -91 2034 -91
599Q 1263 -91 848 271
600Q 434 634 434 1313
601Q 434 1759 690 2068
602Q 947 2378 1403 2484
603z
604M 1172 3481
605Q 1172 3119 1398 2916
606Q 1625 2713 2034 2713
607Q 2441 2713 2670 2916
608Q 2900 3119 2900 3481
609Q 2900 3844 2670 4047
610Q 2441 4250 2034 4250
611Q 1625 4250 1398 4047
612Q 1172 3844 1172 3481
613z
614" transform="scale(0.015625)"/>
615 <path id="DejaVuSans-30" d="M 2034 4250
616Q 1547 4250 1301 3770
617Q 1056 3291 1056 2328
618Q 1056 1369 1301 889
619Q 1547 409 2034 409
620Q 2525 409 2770 889
621Q 3016 1369 3016 2328
622Q 3016 3291 2770 3770
623Q 2525 4250 2034 4250
624z
625M 2034 4750
626Q 2819 4750 3233 4129
627Q 3647 3509 3647 2328
628Q 3647 1150 3233 529
629Q 2819 -91 2034 -91
630Q 1250 -91 836 529
631Q 422 1150 422 2328
632Q 422 3509 836 4129
633Q 1250 4750 2034 4750
634z
635" transform="scale(0.015625)"/>
636 <path id="DejaVuSans-44" d="M 1259 4147
637L 1259 519
638L 2022 519
639Q 2988 519 3436 956
640Q 3884 1394 3884 2338
641Q 3884 3275 3436 3711
642Q 2988 4147 2022 4147
643L 1259 4147
644z
645M 628 4666
646L 1925 4666
647Q 3281 4666 3915 4102
648Q 4550 3538 4550 2338
649Q 4550 1131 3912 565
650Q 3275 0 1925 0
651L 628 0
652L 628 4666
653z
654" transform="scale(0.015625)"/>
655 <path id="DejaVuSans-43" d="M 4122 4306
656L 4122 3641
657Q 3803 3938 3442 4084
658Q 3081 4231 2675 4231
659Q 1875 4231 1450 3742
660Q 1025 3253 1025 2328
661Q 1025 1406 1450 917
662Q 1875 428 2675 428
663Q 3081 428 3442 575
664Q 3803 722 4122 1019
665L 4122 359
666Q 3791 134 3420 21
667Q 3050 -91 2638 -91
668Q 1578 -91 968 557
669Q 359 1206 359 2328
670Q 359 3453 968 4101
671Q 1578 4750 2638 4750
672Q 3056 4750 3426 4639
673Q 3797 4528 4122 4306
674z
675" transform="scale(0.015625)"/>
676 </defs>
677 <use xlink:href="#DejaVuSans-38"/>
678 <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
679 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
680 <use xlink:href="#DejaVuSans-30" transform="translate(190.869141 0)"/>
681 <use xlink:href="#DejaVuSans-57" transform="translate(254.492188 0)"/>
682 <use xlink:href="#DejaVuSans-20" transform="translate(353.369141 0)"/>
683 <use xlink:href="#DejaVuSans-44" transform="translate(385.15625 0)"/>
684 <use xlink:href="#DejaVuSans-43" transform="translate(462.158203 0)"/>
685 </g>
686 <!-- cold Voc 430.1V -->
687 <g transform="translate(11.340714 216.965492) scale(0.1 -0.1)">
688 <defs>
689 <path id="DejaVuSans-63" d="M 3122 3366
690L 3122 2828
691Q 2878 2963 2633 3030
692Q 2388 3097 2138 3097
693Q 1578 3097 1268 2742
694Q 959 2388 959 1747
695Q 959 1106 1268 751
696Q 1578 397 2138 397
697Q 2388 397 2633 464
698Q 2878 531 3122 666
699L 3122 134
700Q 2881 22 2623 -34
701Q 2366 -91 2075 -91
702Q 1284 -91 818 406
703Q 353 903 353 1747
704Q 353 2603 823 3093
705Q 1294 3584 2113 3584
706Q 2378 3584 2631 3529
707Q 2884 3475 3122 3366
708z
709" transform="scale(0.015625)"/>
710 <path id="DejaVuSans-6f" d="M 1959 3097
711Q 1497 3097 1228 2736
712Q 959 2375 959 1747
713Q 959 1119 1226 758
714Q 1494 397 1959 397
715Q 2419 397 2687 759
716Q 2956 1122 2956 1747
717Q 2956 2369 2687 2733
718Q 2419 3097 1959 3097
719z
720M 1959 3584
721Q 2709 3584 3137 3096
722Q 3566 2609 3566 1747
723Q 3566 888 3137 398
724Q 2709 -91 1959 -91
725Q 1206 -91 779 398
726Q 353 888 353 1747
727Q 353 2609 779 3096
728Q 1206 3584 1959 3584
729z
730" transform="scale(0.015625)"/>
731 <path id="DejaVuSans-6c" d="M 603 4863
732L 1178 4863
733L 1178 0
734L 603 0
735L 603 4863
736z
737" transform="scale(0.015625)"/>
738 <path id="DejaVuSans-64" d="M 2906 2969
739L 2906 4863
740L 3481 4863
741L 3481 0
742L 2906 0
743L 2906 525
744Q 2725 213 2448 61
745Q 2172 -91 1784 -91
746Q 1150 -91 751 415
747Q 353 922 353 1747
748Q 353 2572 751 3078
749Q 1150 3584 1784 3584
750Q 2172 3584 2448 3432
751Q 2725 3281 2906 2969
752z
753M 947 1747
754Q 947 1113 1208 752
755Q 1469 391 1925 391
756Q 2381 391 2643 752
757Q 2906 1113 2906 1747
758Q 2906 2381 2643 2742
759Q 2381 3103 1925 3103
760Q 1469 3103 1208 2742
761Q 947 2381 947 1747
762z
763" transform="scale(0.015625)"/>
764 <path id="DejaVuSans-33" d="M 2597 2516
765Q 3050 2419 3304 2112
766Q 3559 1806 3559 1356
767Q 3559 666 3084 287
768Q 2609 -91 1734 -91
769Q 1441 -91 1130 -33
770Q 819 25 488 141
771L 488 750
772Q 750 597 1062 519
773Q 1375 441 1716 441
774Q 2309 441 2620 675
775Q 2931 909 2931 1356
776Q 2931 1769 2642 2001
777Q 2353 2234 1838 2234
778L 1294 2234
779L 1294 2753
780L 1863 2753
781Q 2328 2753 2575 2939
782Q 2822 3125 2822 3475
783Q 2822 3834 2567 4026
784Q 2313 4219 1838 4219
785Q 1578 4219 1281 4162
786Q 984 4106 628 3988
787L 628 4550
788Q 988 4650 1302 4700
789Q 1616 4750 1894 4750
790Q 2613 4750 3031 4423
791Q 3450 4097 3450 3541
792Q 3450 3153 3228 2886
793Q 3006 2619 2597 2516
794z
795" transform="scale(0.015625)"/>
796 <path id="DejaVuSans-2e" d="M 684 794
797L 1344 794
798L 1344 0
799L 684 0
800L 684 794
801z
802" transform="scale(0.015625)"/>
803 </defs>
804 <use xlink:href="#DejaVuSans-63"/>
805 <use xlink:href="#DejaVuSans-6f" transform="translate(54.980469 0)"/>
806 <use xlink:href="#DejaVuSans-6c" transform="translate(116.162109 0)"/>
807 <use xlink:href="#DejaVuSans-64" transform="translate(143.945312 0)"/>
808 <use xlink:href="#DejaVuSans-20" transform="translate(207.421875 0)"/>
809 <use xlink:href="#DejaVuSans-56" transform="translate(239.208984 0)"/>
810 <use xlink:href="#DejaVuSans-6f" transform="translate(299.867188 0)"/>
811 <use xlink:href="#DejaVuSans-63" transform="translate(361.048828 0)"/>
812 <use xlink:href="#DejaVuSans-20" transform="translate(416.029297 0)"/>
813 <use xlink:href="#DejaVuSans-34" transform="translate(447.816406 0)"/>
814 <use xlink:href="#DejaVuSans-33" transform="translate(511.439453 0)"/>
815 <use xlink:href="#DejaVuSans-30" transform="translate(575.0625 0)"/>
816 <use xlink:href="#DejaVuSans-2e" transform="translate(638.685547 0)"/>
817 <use xlink:href="#DejaVuSans-31" transform="translate(670.472656 0)"/>
818 <use xlink:href="#DejaVuSans-56" transform="translate(734.095703 0)"/>
819 </g>
820 </g>
821 <g id="text_2">
822 <!-- 8AWG·200ft -->
823 <g transform="translate(111.532728 143.381478) scale(0.1 -0.1)">
824 <defs>
825 <path id="DejaVuSans-47" d="M 3809 666
826L 3809 1919
827L 2778 1919
828L 2778 2438
829L 4434 2438
830L 4434 434
831Q 4069 175 3628 42
832Q 3188 -91 2688 -91
833Q 1594 -91 976 548
834Q 359 1188 359 2328
835Q 359 3472 976 4111
836Q 1594 4750 2688 4750
837Q 3144 4750 3555 4637
838Q 3966 4525 4313 4306
839L 4313 3634
840Q 3963 3931 3569 4081
841Q 3175 4231 2741 4231
842Q 1884 4231 1454 3753
843Q 1025 3275 1025 2328
844Q 1025 1384 1454 906
845Q 1884 428 2741 428
846Q 3075 428 3337 486
847Q 3600 544 3809 666
848z
849" transform="scale(0.015625)"/>
850 <path id="DejaVuSans-66" d="M 2375 4863
851L 2375 4384
852L 1825 4384
853Q 1516 4384 1395 4259
854Q 1275 4134 1275 3809
855L 1275 3500
856L 2222 3500
857L 2222 3053
858L 1275 3053
859L 1275 0
860L 697 0
861L 697 3053
862L 147 3053
863L 147 3500
864L 697 3500
865L 697 3744
866Q 697 4328 969 4595
867Q 1241 4863 1831 4863
868L 2375 4863
869z
870" transform="scale(0.015625)"/>
871 <path id="DejaVuSans-74" d="M 1172 4494
872L 1172 3500
873L 2356 3500
874L 2356 3053
875L 1172 3053
876L 1172 1153
877Q 1172 725 1289 603
878Q 1406 481 1766 481
879L 2356 481
880L 2356 0
881L 1766 0
882Q 1100 0 847 248
883Q 594 497 594 1153
884L 594 3053
885L 172 3053
886L 172 3500
887L 594 3500
888L 594 4494
889L 1172 4494
890z
891" transform="scale(0.015625)"/>
892 </defs>
893 <use xlink:href="#DejaVuSans-38"/>
894 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
895 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
896 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
897 <use xlink:href="#DejaVuSans-b7" transform="translate(302.898438 0)"/>
898 <use xlink:href="#DejaVuSans-32" transform="translate(334.685547 0)"/>
899 <use xlink:href="#DejaVuSans-30" transform="translate(398.308594 0)"/>
900 <use xlink:href="#DejaVuSans-30" transform="translate(461.931641 0)"/>
901 <use xlink:href="#DejaVuSans-66" transform="translate(525.554688 0)"/>
902 <use xlink:href="#DejaVuSans-74" transform="translate(559.009766 0)"/>
903 </g>
904 <!-- 1.329% -->
905 <g transform="translate(122.37804 153.059603) scale(0.1 -0.1)">
906 <defs>
907 <path id="DejaVuSans-39" d="M 703 97
908L 703 672
909Q 941 559 1184 500
910Q 1428 441 1663 441
911Q 2288 441 2617 861
912Q 2947 1281 2994 2138
913Q 2813 1869 2534 1725
914Q 2256 1581 1919 1581
915Q 1219 1581 811 2004
916Q 403 2428 403 3163
917Q 403 3881 828 4315
918Q 1253 4750 1959 4750
919Q 2769 4750 3195 4129
920Q 3622 3509 3622 2328
921Q 3622 1225 3098 567
922Q 2575 -91 1691 -91
923Q 1453 -91 1209 -44
924Q 966 3 703 97
925z
926M 1959 2075
927Q 2384 2075 2632 2365
928Q 2881 2656 2881 3163
929Q 2881 3666 2632 3958
930Q 2384 4250 1959 4250
931Q 1534 4250 1286 3958
932Q 1038 3666 1038 3163
933Q 1038 2656 1286 2365
934Q 1534 2075 1959 2075
935z
936" transform="scale(0.015625)"/>
937 <path id="DejaVuSans-25" d="M 4653 2053
938Q 4381 2053 4226 1822
939Q 4072 1591 4072 1178
940Q 4072 772 4226 539
941Q 4381 306 4653 306
942Q 4919 306 5073 539
943Q 5228 772 5228 1178
944Q 5228 1588 5073 1820
945Q 4919 2053 4653 2053
946z
947M 4653 2450
948Q 5147 2450 5437 2106
949Q 5728 1763 5728 1178
950Q 5728 594 5436 251
951Q 5144 -91 4653 -91
952Q 4153 -91 3862 251
953Q 3572 594 3572 1178
954Q 3572 1766 3864 2108
955Q 4156 2450 4653 2450
956z
957M 1428 4353
958Q 1159 4353 1004 4120
959Q 850 3888 850 3481
960Q 850 3069 1003 2837
961Q 1156 2606 1428 2606
962Q 1700 2606 1854 2837
963Q 2009 3069 2009 3481
964Q 2009 3884 1853 4118
965Q 1697 4353 1428 4353
966z
967M 4250 4750
968L 4750 4750
969L 1831 -91
970L 1331 -91
971L 4250 4750
972z
973M 1428 4750
974Q 1922 4750 2215 4408
975Q 2509 4066 2509 3481
976Q 2509 2891 2217 2550
977Q 1925 2209 1428 2209
978Q 931 2209 642 2551
979Q 353 2894 353 3481
980Q 353 4063 643 4406
981Q 934 4750 1428 4750
982z
983" transform="scale(0.015625)"/>
984 </defs>
985 <use xlink:href="#DejaVuSans-31"/>
986 <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
987 <use xlink:href="#DejaVuSans-33" transform="translate(95.410156 0)"/>
988 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
989 <use xlink:href="#DejaVuSans-39" transform="translate(222.65625 0)"/>
990 <use xlink:href="#DejaVuSans-25" transform="translate(286.279297 0)"/>
991 </g>
992 </g>
993 <g id="patch_5">
994 <path d="M 188.950418 163.057212
995C 190.095795 163.057212 191.194414 162.602149 192.004318 161.792246
996C 192.814222 160.982342 193.269285 159.883723 193.269285 158.738346
997C 193.269285 157.592969 192.814222 156.49435 192.004318 155.684446
998C 191.194414 154.874542 190.095795 154.419479 188.950418 154.419479
999C 187.805041 154.419479 186.706422 154.874542 185.896518 155.684446
1000C 185.086614 156.49435 184.631551 157.592969 184.631551 158.738346
1001C 184.631551 159.883723 185.086614 160.982342 185.896518 161.792246
1002C 186.706422 162.602149 187.805041 163.057212 188.950418 163.057212
1003z
1004" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1005 </g>
1006 <g id="patch_6">
1007 <path d="M 216.30324 163.057212
1008C 217.448617 163.057212 218.547236 162.602149 219.35714 161.792246
1009C 220.167044 160.982342 220.622107 159.883723 220.622107 158.738346
1010C 220.622107 157.592969 220.167044 156.49435 219.35714 155.684446
1011C 218.547236 154.874542 217.448617 154.419479 216.30324 154.419479
1012C 215.157863 154.419479 214.059244 154.874542 213.24934 155.684446
1013C 212.439437 156.49435 211.984374 157.592969 211.984374 158.738346
1014C 211.984374 159.883723 212.439437 160.982342 213.24934 161.792246
1015C 214.059244 162.602149 215.157863 163.057212 216.30324 163.057212
1016z
1017" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1018 </g>
1019 <g id="patch_7">
1020 <path d="M 188.950418 199.047768
1021C 190.095795 199.047768 191.194414 198.592705 192.004318 197.782801
1022C 192.814222 196.972898 193.269285 195.874278 193.269285 194.728902
1023C 193.269285 193.583525 192.814222 192.484905 192.004318 191.675002
1024C 191.194414 190.865098 190.095795 190.410035 188.950418 190.410035
1025C 187.805041 190.410035 186.706422 190.865098 185.896518 191.675002
1026C 185.086614 192.484905 184.631551 193.583525 184.631551 194.728902
1027C 184.631551 195.874278 185.086614 196.972898 185.896518 197.782801
1028C 186.706422 198.592705 187.805041 199.047768 188.950418 199.047768
1029z
1030" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1031 </g>
1032 <g id="patch_8">
1033 <path d="M 216.30324 199.047768
1034C 217.448617 199.047768 218.547236 198.592705 219.35714 197.782801
1035C 220.167044 196.972898 220.622107 195.874278 220.622107 194.728902
1036C 220.622107 193.583525 220.167044 192.484905 219.35714 191.675002
1037C 218.547236 190.865098 217.448617 190.410035 216.30324 190.410035
1038C 215.157863 190.410035 214.059244 190.865098 213.24934 191.675002
1039C 212.439437 192.484905 211.984374 193.583525 211.984374 194.728902
1040C 211.984374 195.874278 212.439437 196.972898 213.24934 197.782801
1041C 214.059244 198.592705 215.157863 199.047768 216.30324 199.047768
1042z
1043" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1044 </g>
1045 <g id="text_3">
1046 <!-- DC -->
1047 <g transform="translate(195.285423 210.245261) scale(0.1 -0.1)">
1048 <use xlink:href="#DejaVuSans-44"/>
1049 <use xlink:href="#DejaVuSans-43" transform="translate(77.001953 0)"/>
1050 </g>
1051 <!-- disc -->
1052 <g transform="translate(192.709642 219.923386) scale(0.1 -0.1)">
1053 <defs>
1054 <path id="DejaVuSans-69" d="M 603 3500
1055L 1178 3500
1056L 1178 0
1057L 603 0
1058L 603 3500
1059z
1060M 603 4863
1061L 1178 4863
1062L 1178 4134
1063L 603 4134
1064L 603 4863
1065z
1066" transform="scale(0.015625)"/>
1067 <path id="DejaVuSans-73" d="M 2834 3397
1068L 2834 2853
1069Q 2591 2978 2328 3040
1070Q 2066 3103 1784 3103
1071Q 1356 3103 1142 2972
1072Q 928 2841 928 2578
1073Q 928 2378 1081 2264
1074Q 1234 2150 1697 2047
1075L 1894 2003
1076Q 2506 1872 2764 1633
1077Q 3022 1394 3022 966
1078Q 3022 478 2636 193
1079Q 2250 -91 1575 -91
1080Q 1294 -91 989 -36
1081Q 684 19 347 128
1082L 347 722
1083Q 666 556 975 473
1084Q 1284 391 1588 391
1085Q 1994 391 2212 530
1086Q 2431 669 2431 922
1087Q 2431 1156 2273 1281
1088Q 2116 1406 1581 1522
1089L 1381 1569
1090Q 847 1681 609 1914
1091Q 372 2147 372 2553
1092Q 372 3047 722 3315
1093Q 1072 3584 1716 3584
1094Q 2034 3584 2315 3537
1095Q 2597 3491 2834 3397
1096z
1097" transform="scale(0.015625)"/>
1098 </defs>
1099 <use xlink:href="#DejaVuSans-64"/>
1100 <use xlink:href="#DejaVuSans-69" transform="translate(63.476562 0)"/>
1101 <use xlink:href="#DejaVuSans-73" transform="translate(91.259766 0)"/>
1102 <use xlink:href="#DejaVuSans-63" transform="translate(143.359375 0)"/>
1103 </g>
1104 </g>
1105 <g id="text_4">
1106 <!-- PV -->
1107 <g transform="translate(244.015968 162.601471) scale(0.14 -0.14)">
1108 <use xlink:href="#DejaVuSans-50"/>
1109 <use xlink:href="#DejaVuSans-56" transform="translate(60.302734 0)"/>
1110 </g>
1111 </g>
1112 <g id="text_5">
1113 <!-- AC -->
1114 <g transform="translate(314.884545 162.601471) scale(0.14 -0.14)">
1115 <use xlink:href="#DejaVuSans-41"/>
1116 <use xlink:href="#DejaVuSans-43" transform="translate(66.658203 0)"/>
1117 </g>
1118 </g>
1119 <g id="text_6">
1120 <!-- BATP -->
1121 <g transform="translate(239.067819 195.416395) scale(0.14 -0.14)">
1122 <defs>
1123 <path id="DejaVuSans-42" d="M 1259 2228
1124L 1259 519
1125L 2272 519
1126Q 2781 519 3026 730
1127Q 3272 941 3272 1375
1128Q 3272 1813 3026 2020
1129Q 2781 2228 2272 2228
1130L 1259 2228
1131z
1132M 1259 4147
1133L 1259 2741
1134L 2194 2741
1135Q 2656 2741 2882 2914
1136Q 3109 3088 3109 3444
1137Q 3109 3797 2882 3972
1138Q 2656 4147 2194 4147
1139L 1259 4147
1140z
1141M 628 4666
1142L 2241 4666
1143Q 2963 4666 3353 4366
1144Q 3744 4066 3744 3513
1145Q 3744 3084 3544 2831
1146Q 3344 2578 2956 2516
1147Q 3422 2416 3680 2098
1148Q 3938 1781 3938 1306
1149Q 3938 681 3513 340
1150Q 3088 0 2303 0
1151L 628 0
1152L 628 4666
1153z
1154" transform="scale(0.015625)"/>
1155 <path id="DejaVuSans-54" d="M -19 4666
1156L 3928 4666
1157L 3928 4134
1158L 2272 4134
1159L 2272 0
1160L 1638 0
1161L 1638 4134
1162L -19 4134
1163L -19 4666
1164z
1165" transform="scale(0.015625)"/>
1166 </defs>
1167 <use xlink:href="#DejaVuSans-42"/>
1168 <use xlink:href="#DejaVuSans-41" transform="translate(68.603516 0)"/>
1169 <use xlink:href="#DejaVuSans-54" transform="translate(129.261719 0)"/>
1170 <use xlink:href="#DejaVuSans-50" transform="translate(190.345703 0)"/>
1171 </g>
1172 </g>
1173 <g id="text_7">
1174 <!-- GND -->
1175 <g transform="translate(305.344882 195.416395) scale(0.14 -0.14)">
1176 <defs>
1177 <path id="DejaVuSans-4e" d="M 628 4666
1178L 1478 4666
1179L 3547 763
1180L 3547 4666
1181L 4159 4666
1182L 4159 0
1183L 3309 0
1184L 1241 3903
1185L 1241 0
1186L 628 0
1187L 628 4666
1188z
1189" transform="scale(0.015625)"/>
1190 </defs>
1191 <use xlink:href="#DejaVuSans-47"/>
1192 <use xlink:href="#DejaVuSans-4e" transform="translate(77.490234 0)"/>
1193 <use xlink:href="#DejaVuSans-44" transform="translate(152.294922 0)"/>
1194 </g>
1195 </g>
1196 <g id="text_8">
1197 <!-- EG4 6000XP -->
1198 <g transform="translate(261.634469 143.381478) scale(0.1 -0.1)">
1199 <defs>
1200 <path id="DejaVuSans-45" d="M 628 4666
1201L 3578 4666
1202L 3578 4134
1203L 1259 4134
1204L 1259 2753
1205L 3481 2753
1206L 3481 2222
1207L 1259 2222
1208L 1259 531
1209L 3634 531
1210L 3634 0
1211L 628 0
1212L 628 4666
1213z
1214" transform="scale(0.015625)"/>
1215 <path id="DejaVuSans-36" d="M 2113 2584
1216Q 1688 2584 1439 2293
1217Q 1191 2003 1191 1497
1218Q 1191 994 1439 701
1219Q 1688 409 2113 409
1220Q 2538 409 2786 701
1221Q 3034 994 3034 1497
1222Q 3034 2003 2786 2293
1223Q 2538 2584 2113 2584
1224z
1225M 3366 4563
1226L 3366 3988
1227Q 3128 4100 2886 4159
1228Q 2644 4219 2406 4219
1229Q 1781 4219 1451 3797
1230Q 1122 3375 1075 2522
1231Q 1259 2794 1537 2939
1232Q 1816 3084 2150 3084
1233Q 2853 3084 3261 2657
1234Q 3669 2231 3669 1497
1235Q 3669 778 3244 343
1236Q 2819 -91 2113 -91
1237Q 1303 -91 875 529
1238Q 447 1150 447 2328
1239Q 447 3434 972 4092
1240Q 1497 4750 2381 4750
1241Q 2619 4750 2861 4703
1242Q 3103 4656 3366 4563
1243z
1244" transform="scale(0.015625)"/>
1245 <path id="DejaVuSans-58" d="M 403 4666
1246L 1081 4666
1247L 2241 2931
1248L 3406 4666
1249L 4084 4666
1250L 2584 2425
1251L 4184 0
1252L 3506 0
1253L 2194 1984
1254L 872 0
1255L 191 0
1256L 1856 2491
1257L 403 4666
1258z
1259" transform="scale(0.015625)"/>
1260 </defs>
1261 <use xlink:href="#DejaVuSans-45"/>
1262 <use xlink:href="#DejaVuSans-47" transform="translate(63.183594 0)"/>
1263 <use xlink:href="#DejaVuSans-34" transform="translate(140.673828 0)"/>
1264 <use xlink:href="#DejaVuSans-20" transform="translate(204.296875 0)"/>
1265 <use xlink:href="#DejaVuSans-36" transform="translate(236.083984 0)"/>
1266 <use xlink:href="#DejaVuSans-30" transform="translate(299.707031 0)"/>
1267 <use xlink:href="#DejaVuSans-30" transform="translate(363.330078 0)"/>
1268 <use xlink:href="#DejaVuSans-30" transform="translate(426.953125 0)"/>
1269 <use xlink:href="#DejaVuSans-58" transform="translate(490.576172 0)"/>
1270 <use xlink:href="#DejaVuSans-50" transform="translate(559.082031 0)"/>
1271 </g>
1272 <!-- 6kW 120/240V -->
1273 <g transform="translate(255.801656 153.059603) scale(0.1 -0.1)">
1274 <defs>
1275 <path id="DejaVuSans-6b" d="M 581 4863
1276L 1159 4863
1277L 1159 1991
1278L 2875 3500
1279L 3609 3500
1280L 1753 1863
1281L 3688 0
1282L 2938 0
1283L 1159 1709
1284L 1159 0
1285L 581 0
1286L 581 4863
1287z
1288" transform="scale(0.015625)"/>
1289 <path id="DejaVuSans-2f" d="M 1625 4666
1290L 2156 4666
1291L 531 -594
1292L 0 -594
1293L 1625 4666
1294z
1295" transform="scale(0.015625)"/>
1296 </defs>
1297 <use xlink:href="#DejaVuSans-36"/>
1298 <use xlink:href="#DejaVuSans-6b" transform="translate(63.623047 0)"/>
1299 <use xlink:href="#DejaVuSans-57" transform="translate(121.533203 0)"/>
1300 <use xlink:href="#DejaVuSans-20" transform="translate(220.410156 0)"/>
1301 <use xlink:href="#DejaVuSans-31" transform="translate(252.197266 0)"/>
1302 <use xlink:href="#DejaVuSans-32" transform="translate(315.820312 0)"/>
1303 <use xlink:href="#DejaVuSans-30" transform="translate(379.443359 0)"/>
1304 <use xlink:href="#DejaVuSans-2f" transform="translate(443.066406 0)"/>
1305 <use xlink:href="#DejaVuSans-32" transform="translate(476.757812 0)"/>
1306 <use xlink:href="#DejaVuSans-34" transform="translate(540.380859 0)"/>
1307 <use xlink:href="#DejaVuSans-30" transform="translate(604.003906 0)"/>
1308 <use xlink:href="#DejaVuSans-56" transform="translate(667.626953 0)"/>
1309 </g>
1310 <!-- dual MPPT -->
1311 <g transform="translate(266.820406 162.737728) scale(0.1 -0.1)">
1312 <defs>
1313 <path id="DejaVuSans-75" d="M 544 1381
1314L 544 3500
1315L 1119 3500
1316L 1119 1403
1317Q 1119 906 1312 657
1318Q 1506 409 1894 409
1319Q 2359 409 2629 706
1320Q 2900 1003 2900 1516
1321L 2900 3500
1322L 3475 3500
1323L 3475 0
1324L 2900 0
1325L 2900 538
1326Q 2691 219 2414 64
1327Q 2138 -91 1772 -91
1328Q 1169 -91 856 284
1329Q 544 659 544 1381
1330z
1331M 1991 3584
1332L 1991 3584
1333z
1334" transform="scale(0.015625)"/>
1335 <path id="DejaVuSans-61" d="M 2194 1759
1336Q 1497 1759 1228 1600
1337Q 959 1441 959 1056
1338Q 959 750 1161 570
1339Q 1363 391 1709 391
1340Q 2188 391 2477 730
1341Q 2766 1069 2766 1631
1342L 2766 1759
1343L 2194 1759
1344z
1345M 3341 1997
1346L 3341 0
1347L 2766 0
1348L 2766 531
1349Q 2569 213 2275 61
1350Q 1981 -91 1556 -91
1351Q 1019 -91 701 211
1352Q 384 513 384 1019
1353Q 384 1609 779 1909
1354Q 1175 2209 1959 2209
1355L 2766 2209
1356L 2766 2266
1357Q 2766 2663 2505 2880
1358Q 2244 3097 1772 3097
1359Q 1472 3097 1187 3025
1360Q 903 2953 641 2809
1361L 641 3341
1362Q 956 3463 1253 3523
1363Q 1550 3584 1831 3584
1364Q 2591 3584 2966 3190
1365Q 3341 2797 3341 1997
1366z
1367" transform="scale(0.015625)"/>
1368 <path id="DejaVuSans-4d" d="M 628 4666
1369L 1569 4666
1370L 2759 1491
1371L 3956 4666
1372L 4897 4666
1373L 4897 0
1374L 4281 0
1375L 4281 4097
1376L 3078 897
1377L 2444 897
1378L 1241 4097
1379L 1241 0
1380L 628 0
1381L 628 4666
1382z
1383" transform="scale(0.015625)"/>
1384 </defs>
1385 <use xlink:href="#DejaVuSans-64"/>
1386 <use xlink:href="#DejaVuSans-75" transform="translate(63.476562 0)"/>
1387 <use xlink:href="#DejaVuSans-61" transform="translate(126.855469 0)"/>
1388 <use xlink:href="#DejaVuSans-6c" transform="translate(188.134766 0)"/>
1389 <use xlink:href="#DejaVuSans-20" transform="translate(215.917969 0)"/>
1390 <use xlink:href="#DejaVuSans-4d" transform="translate(247.705078 0)"/>
1391 <use xlink:href="#DejaVuSans-50" transform="translate(333.984375 0)"/>
1392 <use xlink:href="#DejaVuSans-50" transform="translate(394.287109 0)"/>
1393 <use xlink:href="#DejaVuSans-54" transform="translate(454.589844 0)"/>
1394 </g>
1395 <!-- RSD·AFCI·GFDI -->
1396 <g transform="translate(255.589156 172.415853) scale(0.1 -0.1)">
1397 <defs>
1398 <path id="DejaVuSans-46" d="M 628 4666
1399L 3309 4666
1400L 3309 4134
1401L 1259 4134
1402L 1259 2759
1403L 3109 2759
1404L 3109 2228
1405L 1259 2228
1406L 1259 0
1407L 628 0
1408L 628 4666
1409z
1410" transform="scale(0.015625)"/>
1411 <path id="DejaVuSans-49" d="M 628 4666
1412L 1259 4666
1413L 1259 0
1414L 628 0
1415L 628 4666
1416z
1417" transform="scale(0.015625)"/>
1418 </defs>
1419 <use xlink:href="#DejaVuSans-52"/>
1420 <use xlink:href="#DejaVuSans-53" transform="translate(69.482422 0)"/>
1421 <use xlink:href="#DejaVuSans-44" transform="translate(132.958984 0)"/>
1422 <use xlink:href="#DejaVuSans-b7" transform="translate(209.960938 0)"/>
1423 <use xlink:href="#DejaVuSans-41" transform="translate(241.748047 0)"/>
1424 <use xlink:href="#DejaVuSans-46" transform="translate(310.15625 0)"/>
1425 <use xlink:href="#DejaVuSans-43" transform="translate(367.675781 0)"/>
1426 <use xlink:href="#DejaVuSans-49" transform="translate(437.5 0)"/>
1427 <use xlink:href="#DejaVuSans-b7" transform="translate(466.992188 0)"/>
1428 <use xlink:href="#DejaVuSans-47" transform="translate(498.779297 0)"/>
1429 <use xlink:href="#DejaVuSans-46" transform="translate(576.269531 0)"/>
1430 <use xlink:href="#DejaVuSans-44" transform="translate(633.789062 0)"/>
1431 <use xlink:href="#DejaVuSans-49" transform="translate(710.791016 0)"/>
1432 </g>
1433 </g>
1434 <g id="patch_9">
1435 <path d="M 419.289975 163.057212
1436C 420.435352 163.057212 421.533971 162.602149 422.343875 161.792246
1437C 423.153779 160.982342 423.608842 159.883723 423.608842 158.738346
1438C 423.608842 157.592969 423.153779 156.49435 422.343875 155.684446
1439C 421.533971 154.874542 420.435352 154.419479 419.289975 154.419479
1440C 418.144598 154.419479 417.045979 154.874542 416.236075 155.684446
1441C 415.426171 156.49435 414.971108 157.592969 414.971108 158.738346
1442C 414.971108 159.883723 415.426171 160.982342 416.236075 161.792246
1443C 417.045979 162.602149 418.144598 163.057212 419.289975 163.057212
1444z
1445" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1446 </g>
1447 <g id="patch_10">
1448 <path d="M 446.642797 163.057212
1449C 447.788174 163.057212 448.886793 162.602149 449.696697 161.792246
1450C 450.506601 160.982342 450.961664 159.883723 450.961664 158.738346
1451C 450.961664 157.592969 450.506601 156.49435 449.696697 155.684446
1452C 448.886793 154.874542 447.788174 154.419479 446.642797 154.419479
1453C 445.49742 154.419479 444.398801 154.874542 443.588897 155.684446
1454C 442.778994 156.49435 442.323931 157.592969 442.323931 158.738346
1455C 442.323931 159.883723 442.778994 160.982342 443.588897 161.792246
1456C 444.398801 162.602149 445.49742 163.057212 446.642797 163.057212
1457z
1458" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1459 </g>
1460 <g id="patch_11">
1461 <path d="M 419.289975 199.047768
1462C 420.435352 199.047768 421.533971 198.592705 422.343875 197.782801
1463C 423.153779 196.972898 423.608842 195.874278 423.608842 194.728902
1464C 423.608842 193.583525 423.153779 192.484905 422.343875 191.675002
1465C 421.533971 190.865098 420.435352 190.410035 419.289975 190.410035
1466C 418.144598 190.410035 417.045979 190.865098 416.236075 191.675002
1467C 415.426171 192.484905 414.971108 193.583525 414.971108 194.728902
1468C 414.971108 195.874278 415.426171 196.972898 416.236075 197.782801
1469C 417.045979 198.592705 418.144598 199.047768 419.289975 199.047768
1470z
1471" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1472 </g>
1473 <g id="patch_12">
1474 <path d="M 446.642797 199.047768
1475C 447.788174 199.047768 448.886793 198.592705 449.696697 197.782801
1476C 450.506601 196.972898 450.961664 195.874278 450.961664 194.728902
1477C 450.961664 193.583525 450.506601 192.484905 449.696697 191.675002
1478C 448.886793 190.865098 447.788174 190.410035 446.642797 190.410035
1479C 445.49742 190.410035 444.398801 190.865098 443.588897 191.675002
1480C 442.778994 192.484905 442.323931 193.583525 442.323931 194.728902
1481C 442.323931 195.874278 442.778994 196.972898 443.588897 197.782801
1482C 444.398801 198.592705 445.49742 199.047768 446.642797 199.047768
1483z
1484" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1485 </g>
1486 <g id="text_9">
1487 <!-- 35A -->
1488 <g transform="translate(423.183574 127.185728) scale(0.1 -0.1)">
1489 <use xlink:href="#DejaVuSans-33"/>
1490 <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
1491 <use xlink:href="#DejaVuSans-41" transform="translate(127.246094 0)"/>
1492 </g>
1493 <!-- 2-pole -->
1494 <g transform="translate(417.282011 136.863853) scale(0.1 -0.1)">
1495 <defs>
1496 <path id="DejaVuSans-2d" d="M 313 2009
1497L 1997 2009
1498L 1997 1497
1499L 313 1497
1500L 313 2009
1501z
1502" transform="scale(0.015625)"/>
1503 <path id="DejaVuSans-70" d="M 1159 525
1504L 1159 -1331
1505L 581 -1331
1506L 581 3500
1507L 1159 3500
1508L 1159 2969
1509Q 1341 3281 1617 3432
1510Q 1894 3584 2278 3584
1511Q 2916 3584 3314 3078
1512Q 3713 2572 3713 1747
1513Q 3713 922 3314 415
1514Q 2916 -91 2278 -91
1515Q 1894 -91 1617 61
1516Q 1341 213 1159 525
1517z
1518M 3116 1747
1519Q 3116 2381 2855 2742
1520Q 2594 3103 2138 3103
1521Q 1681 3103 1420 2742
1522Q 1159 2381 1159 1747
1523Q 1159 1113 1420 752
1524Q 1681 391 2138 391
1525Q 2594 391 2855 752
1526Q 3116 1113 3116 1747
1527z
1528" transform="scale(0.015625)"/>
1529 <path id="DejaVuSans-65" d="M 3597 1894
1530L 3597 1613
1531L 953 1613
1532Q 991 1019 1311 708
1533Q 1631 397 2203 397
1534Q 2534 397 2845 478
1535Q 3156 559 3463 722
1536L 3463 178
1537Q 3153 47 2828 -22
1538Q 2503 -91 2169 -91
1539Q 1331 -91 842 396
1540Q 353 884 353 1716
1541Q 353 2575 817 3079
1542Q 1281 3584 2069 3584
1543Q 2775 3584 3186 3129
1544Q 3597 2675 3597 1894
1545z
1546M 3022 2063
1547Q 3016 2534 2758 2815
1548Q 2500 3097 2075 3097
1549Q 1594 3097 1305 2825
1550Q 1016 2553 972 2059
1551L 3022 2063
1552z
1553" transform="scale(0.015625)"/>
1554 </defs>
1555 <use xlink:href="#DejaVuSans-32"/>
1556 <use xlink:href="#DejaVuSans-2d" transform="translate(63.623047 0)"/>
1557 <use xlink:href="#DejaVuSans-70" transform="translate(99.707031 0)"/>
1558 <use xlink:href="#DejaVuSans-6f" transform="translate(163.183594 0)"/>
1559 <use xlink:href="#DejaVuSans-6c" transform="translate(224.365234 0)"/>
1560 <use xlink:href="#DejaVuSans-65" transform="translate(252.148438 0)"/>
1561 </g>
1562 </g>
1563 <g id="text_10">
1564 <!-- MAIN PANEL -->
1565 <g transform="translate(456.045899 126.849307) scale(0.09 -0.09)">
1566 <defs>
1567 <path id="DejaVuSans-4c" d="M 628 4666
1568L 1259 4666
1569L 1259 531
1570L 3531 531
1571L 3531 0
1572L 628 0
1573L 628 4666
1574z
1575" transform="scale(0.015625)"/>
1576 </defs>
1577 <use xlink:href="#DejaVuSans-4d"/>
1578 <use xlink:href="#DejaVuSans-41" transform="translate(86.279297 0)"/>
1579 <use xlink:href="#DejaVuSans-49" transform="translate(154.6875 0)"/>
1580 <use xlink:href="#DejaVuSans-4e" transform="translate(184.179688 0)"/>
1581 <use xlink:href="#DejaVuSans-20" transform="translate(258.984375 0)"/>
1582 <use xlink:href="#DejaVuSans-50" transform="translate(290.771484 0)"/>
1583 <use xlink:href="#DejaVuSans-41" transform="translate(344.699219 0)"/>
1584 <use xlink:href="#DejaVuSans-4e" transform="translate(413.107422 0)"/>
1585 <use xlink:href="#DejaVuSans-45" transform="translate(487.912109 0)"/>
1586 <use xlink:href="#DejaVuSans-4c" transform="translate(551.095703 0)"/>
1587 </g>
1588 <!-- subfed -->
1589 <g transform="translate(468.09043 135.55962) scale(0.09 -0.09)">
1590 <defs>
1591 <path id="DejaVuSans-62" d="M 3116 1747
1592Q 3116 2381 2855 2742
1593Q 2594 3103 2138 3103
1594Q 1681 3103 1420 2742
1595Q 1159 2381 1159 1747
1596Q 1159 1113 1420 752
1597Q 1681 391 2138 391
1598Q 2594 391 2855 752
1599Q 3116 1113 3116 1747
1600z
1601M 1159 2969
1602Q 1341 3281 1617 3432
1603Q 1894 3584 2278 3584
1604Q 2916 3584 3314 3078
1605Q 3713 2572 3713 1747
1606Q 3713 922 3314 415
1607Q 2916 -91 2278 -91
1608Q 1894 -91 1617 61
1609Q 1341 213 1159 525
1610L 1159 0
1611L 581 0
1612L 581 4863
1613L 1159 4863
1614L 1159 2969
1615z
1616" transform="scale(0.015625)"/>
1617 </defs>
1618 <use xlink:href="#DejaVuSans-73"/>
1619 <use xlink:href="#DejaVuSans-75" transform="translate(52.099609 0)"/>
1620 <use xlink:href="#DejaVuSans-62" transform="translate(115.478516 0)"/>
1621 <use xlink:href="#DejaVuSans-66" transform="translate(178.955078 0)"/>
1622 <use xlink:href="#DejaVuSans-65" transform="translate(214.160156 0)"/>
1623 <use xlink:href="#DejaVuSans-64" transform="translate(275.683594 0)"/>
1624 </g>
1625 <!-- 8AWG·10ft -->
1626 <g transform="translate(459.297149 144.269932) scale(0.09 -0.09)">
1627 <use xlink:href="#DejaVuSans-38"/>
1628 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1629 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1630 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1631 <use xlink:href="#DejaVuSans-b7" transform="translate(302.898438 0)"/>
1632 <use xlink:href="#DejaVuSans-31" transform="translate(334.685547 0)"/>
1633 <use xlink:href="#DejaVuSans-30" transform="translate(398.308594 0)"/>
1634 <use xlink:href="#DejaVuSans-66" transform="translate(461.931641 0)"/>
1635 <use xlink:href="#DejaVuSans-74" transform="translate(495.386719 0)"/>
1636 </g>
1637 </g>
1638 <g id="text_11">
1639 <!-- 175A Class-T -->
1640 <g transform="translate(224.504069 376.881535) scale(0.1 -0.1)">
1641 <use xlink:href="#DejaVuSans-31"/>
1642 <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
1643 <use xlink:href="#DejaVuSans-35" transform="translate(127.246094 0)"/>
1644 <use xlink:href="#DejaVuSans-41" transform="translate(190.869141 0)"/>
1645 <use xlink:href="#DejaVuSans-20" transform="translate(259.277344 0)"/>
1646 <use xlink:href="#DejaVuSans-43" transform="translate(291.064453 0)"/>
1647 <use xlink:href="#DejaVuSans-6c" transform="translate(360.888672 0)"/>
1648 <use xlink:href="#DejaVuSans-61" transform="translate(388.671875 0)"/>
1649 <use xlink:href="#DejaVuSans-73" transform="translate(449.951172 0)"/>
1650 <use xlink:href="#DejaVuSans-73" transform="translate(502.050781 0)"/>
1651 <use xlink:href="#DejaVuSans-2d" transform="translate(554.150391 0)"/>
1652 <use xlink:href="#DejaVuSans-54" transform="translate(581.109375 0)"/>
1653 </g>
1654 </g>
1655 <g id="patch_13">
1656 <path d="M 256.612663 392.317053
1657C 257.75804 392.317053 258.856659 391.86199 259.666563 391.052086
1658C 260.476466 390.242182 260.931529 389.143563 260.931529 387.998186
1659C 260.931529 386.852809 260.476466 385.75419 259.666563 384.944286
1660C 258.856659 384.134382 257.75804 383.679319 256.612663 383.679319
1661C 255.467286 383.679319 254.368667 384.134382 253.558763 384.944286
1662C 252.748859 385.75419 252.293796 386.852809 252.293796 387.998186
1663C 252.293796 389.143563 252.748859 390.242182 253.558763 391.052086
1664C 254.368667 391.86199 255.467286 392.317053 256.612663 392.317053
1665z
1666" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1667 </g>
1668 <g id="patch_14">
1669 <path d="M 256.612663 419.669875
1670C 257.75804 419.669875 258.856659 419.214812 259.666563 418.404908
1671C 260.476466 417.595005 260.931529 416.496385 260.931529 415.351009
1672C 260.931529 414.205632 260.476466 413.107012 259.666563 412.297109
1673C 258.856659 411.487205 257.75804 411.032142 256.612663 411.032142
1674C 255.467286 411.032142 254.368667 411.487205 253.558763 412.297109
1675C 252.748859 413.107012 252.293796 414.205632 252.293796 415.351009
1676C 252.293796 416.496385 252.748859 417.595005 253.558763 418.404908
1677C 254.368667 419.214812 255.467286 419.669875 256.612663 419.669875
1678z
1679" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1680 </g>
1681 <g id="patch_15">
1682 <path d="M 220.622107 392.317053
1683C 221.767484 392.317053 222.866103 391.86199 223.676007 391.052086
1684C 224.485911 390.242182 224.940974 389.143563 224.940974 387.998186
1685C 224.940974 386.852809 224.485911 385.75419 223.676007 384.944286
1686C 222.866103 384.134382 221.767484 383.679319 220.622107 383.679319
1687C 219.47673 383.679319 218.378111 384.134382 217.568207 384.944286
1688C 216.758303 385.75419 216.30324 386.852809 216.30324 387.998186
1689C 216.30324 389.143563 216.758303 390.242182 217.568207 391.052086
1690C 218.378111 391.86199 219.47673 392.317053 220.622107 392.317053
1691z
1692" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1693 </g>
1694 <g id="patch_16">
1695 <path d="M 220.622107 419.669875
1696C 221.767484 419.669875 222.866103 419.214812 223.676007 418.404908
1697C 224.485911 417.595005 224.940974 416.496385 224.940974 415.351009
1698C 224.940974 414.205632 224.485911 413.107012 223.676007 412.297109
1699C 222.866103 411.487205 221.767484 411.032142 220.622107 411.032142
1700C 219.47673 411.032142 218.378111 411.487205 217.568207 412.297109
1701C 216.758303 413.107012 216.30324 414.205632 216.30324 415.351009
1702C 216.30324 416.496385 216.758303 417.595005 217.568207 418.404908
1703C 218.378111 419.214812 219.47673 419.669875 220.622107 419.669875
1704z
1705" clip-path="url(#pc591430356)" style="fill: #ffffff; stroke: #000000; stroke-width: 2; stroke-linejoin: miter"/>
1706 </g>
1707 <g id="text_12">
1708 <!-- batt disc -->
1709 <g transform="translate(222.890983 430.867368) scale(0.1 -0.1)">
1710 <use xlink:href="#DejaVuSans-62"/>
1711 <use xlink:href="#DejaVuSans-61" transform="translate(63.476562 0)"/>
1712 <use xlink:href="#DejaVuSans-74" transform="translate(124.755859 0)"/>
1713 <use xlink:href="#DejaVuSans-74" transform="translate(163.964844 0)"/>
1714 <use xlink:href="#DejaVuSans-20" transform="translate(203.173828 0)"/>
1715 <use xlink:href="#DejaVuSans-64" transform="translate(234.960938 0)"/>
1716 <use xlink:href="#DejaVuSans-69" transform="translate(298.4375 0)"/>
1717 <use xlink:href="#DejaVuSans-73" transform="translate(326.220703 0)"/>
1718 <use xlink:href="#DejaVuSans-63" transform="translate(378.320312 0)"/>
1719 </g>
1720 </g>
1721 <g id="text_13">
1722 <!-- Docan S3 -->
1723 <g transform="translate(232.776725 506.447535) scale(0.1 -0.1)">
1724 <defs>
1725 <path id="DejaVuSans-6e" d="M 3513 2113
1726L 3513 0
1727L 2938 0
1728L 2938 2094
1729Q 2938 2591 2744 2837
1730Q 2550 3084 2163 3084
1731Q 1697 3084 1428 2787
1732Q 1159 2491 1159 1978
1733L 1159 0
1734L 581 0
1735L 581 3500
1736L 1159 3500
1737L 1159 2956
1738Q 1366 3272 1645 3428
1739Q 1925 3584 2291 3584
1740Q 2894 3584 3203 3211
1741Q 3513 2838 3513 2113
1742z
1743" transform="scale(0.015625)"/>
1744 </defs>
1745 <use xlink:href="#DejaVuSans-44"/>
1746 <use xlink:href="#DejaVuSans-6f" transform="translate(77.001953 0)"/>
1747 <use xlink:href="#DejaVuSans-63" transform="translate(138.183594 0)"/>
1748 <use xlink:href="#DejaVuSans-61" transform="translate(193.164062 0)"/>
1749 <use xlink:href="#DejaVuSans-6e" transform="translate(254.443359 0)"/>
1750 <use xlink:href="#DejaVuSans-20" transform="translate(317.822266 0)"/>
1751 <use xlink:href="#DejaVuSans-53" transform="translate(349.609375 0)"/>
1752 <use xlink:href="#DejaVuSans-33" transform="translate(413.085938 0)"/>
1753 </g>
1754 <!-- 51.2V 16.08kWh -->
1755 <g transform="translate(215.1486 516.12566) scale(0.1 -0.1)">
1756 <defs>
1757 <path id="DejaVuSans-68" d="M 3513 2113
1758L 3513 0
1759L 2938 0
1760L 2938 2094
1761Q 2938 2591 2744 2837
1762Q 2550 3084 2163 3084
1763Q 1697 3084 1428 2787
1764Q 1159 2491 1159 1978
1765L 1159 0
1766L 581 0
1767L 581 4863
1768L 1159 4863
1769L 1159 2956
1770Q 1366 3272 1645 3428
1771Q 1925 3584 2291 3584
1772Q 2894 3584 3203 3211
1773Q 3513 2838 3513 2113
1774z
1775" transform="scale(0.015625)"/>
1776 </defs>
1777 <use xlink:href="#DejaVuSans-35"/>
1778 <use xlink:href="#DejaVuSans-31" transform="translate(63.623047 0)"/>
1779 <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1780 <use xlink:href="#DejaVuSans-32" transform="translate(159.033203 0)"/>
1781 <use xlink:href="#DejaVuSans-56" transform="translate(222.65625 0)"/>
1782 <use xlink:href="#DejaVuSans-20" transform="translate(291.064453 0)"/>
1783 <use xlink:href="#DejaVuSans-31" transform="translate(322.851562 0)"/>
1784 <use xlink:href="#DejaVuSans-36" transform="translate(386.474609 0)"/>
1785 <use xlink:href="#DejaVuSans-2e" transform="translate(450.097656 0)"/>
1786 <use xlink:href="#DejaVuSans-30" transform="translate(481.884766 0)"/>
1787 <use xlink:href="#DejaVuSans-38" transform="translate(545.507812 0)"/>
1788 <use xlink:href="#DejaVuSans-6b" transform="translate(609.130859 0)"/>
1789 <use xlink:href="#DejaVuSans-57" transform="translate(667.041016 0)"/>
1790 <use xlink:href="#DejaVuSans-68" transform="translate(765.917969 0)"/>
1791 </g>
1792 <!-- 2/0Cu·10ft·0.476% -->
1793 <g transform="translate(209.66735 525.803785) scale(0.1 -0.1)">
1794 <use xlink:href="#DejaVuSans-32"/>
1795 <use xlink:href="#DejaVuSans-2f" transform="translate(63.623047 0)"/>
1796 <use xlink:href="#DejaVuSans-30" transform="translate(97.314453 0)"/>
1797 <use xlink:href="#DejaVuSans-43" transform="translate(160.9375 0)"/>
1798 <use xlink:href="#DejaVuSans-75" transform="translate(230.761719 0)"/>
1799 <use xlink:href="#DejaVuSans-b7" transform="translate(294.140625 0)"/>
1800 <use xlink:href="#DejaVuSans-31" transform="translate(325.927734 0)"/>
1801 <use xlink:href="#DejaVuSans-30" transform="translate(389.550781 0)"/>
1802 <use xlink:href="#DejaVuSans-66" transform="translate(453.173828 0)"/>
1803 <use xlink:href="#DejaVuSans-74" transform="translate(486.628906 0)"/>
1804 <use xlink:href="#DejaVuSans-b7" transform="translate(525.837891 0)"/>
1805 <use xlink:href="#DejaVuSans-30" transform="translate(557.625 0)"/>
1806 <use xlink:href="#DejaVuSans-2e" transform="translate(621.248047 0)"/>
1807 <use xlink:href="#DejaVuSans-34" transform="translate(653.035156 0)"/>
1808 <use xlink:href="#DejaVuSans-37" transform="translate(716.658203 0)"/>
1809 <use xlink:href="#DejaVuSans-36" transform="translate(780.28125 0)"/>
1810 <use xlink:href="#DejaVuSans-25" transform="translate(843.904297 0)"/>
1811 </g>
1812 </g>
1813 <g id="text_14">
1814 <!-- GEC -->
1815 <g transform="translate(333.992358 270.892463) scale(0.08 -0.08)">
1816 <use xlink:href="#DejaVuSans-47"/>
1817 <use xlink:href="#DejaVuSans-45" transform="translate(77.490234 0)"/>
1818 <use xlink:href="#DejaVuSans-43" transform="translate(140.673828 0)"/>
1819 </g>
1820 <!-- 6AWG -->
1821 <g transform="translate(333.992358 278.634963) scale(0.08 -0.08)">
1822 <use xlink:href="#DejaVuSans-36"/>
1823 <use xlink:href="#DejaVuSans-41" transform="translate(63.623047 0)"/>
1824 <use xlink:href="#DejaVuSans-57" transform="translate(126.53125 0)"/>
1825 <use xlink:href="#DejaVuSans-47" transform="translate(225.408203 0)"/>
1826 </g>
1827 <!-- 690.47 -->
1828 <g transform="translate(333.992358 286.377463) scale(0.08 -0.08)">
1829 <use xlink:href="#DejaVuSans-36"/>
1830 <use xlink:href="#DejaVuSans-39" transform="translate(63.623047 0)"/>
1831 <use xlink:href="#DejaVuSans-30" transform="translate(127.246094 0)"/>
1832 <use xlink:href="#DejaVuSans-2e" transform="translate(190.869141 0)"/>
1833 <use xlink:href="#DejaVuSans-34" transform="translate(222.65625 0)"/>
1834 <use xlink:href="#DejaVuSans-37" transform="translate(286.279297 0)"/>
1835 </g>
1836 </g>
1837 <g id="text_15">
1838 <!-- SINGLE-LINE DIAGRAM — PRSM OFF-GRID PV -->
1839 <g transform="translate(146.458844 14.764255) scale(0.13 -0.13)">
1840 <defs>
1841 <path id="DejaVuSans-2014" d="M 313 1978
1842L 6088 1978
1843L 6088 1528
1844L 313 1528
1845L 313 1978
1846z
1847" transform="scale(0.015625)"/>
1848 <path id="DejaVuSans-4f" d="M 2522 4238
1849Q 1834 4238 1429 3725
1850Q 1025 3213 1025 2328
1851Q 1025 1447 1429 934
1852Q 1834 422 2522 422
1853Q 3209 422 3611 934
1854Q 4013 1447 4013 2328
1855Q 4013 3213 3611 3725
1856Q 3209 4238 2522 4238
1857z
1858M 2522 4750
1859Q 3503 4750 4090 4092
1860Q 4678 3434 4678 2328
1861Q 4678 1225 4090 567
1862Q 3503 -91 2522 -91
1863Q 1538 -91 948 565
1864Q 359 1222 359 2328
1865Q 359 3434 948 4092
1866Q 1538 4750 2522 4750
1867z
1868" transform="scale(0.015625)"/>
1869 </defs>
1870 <use xlink:href="#DejaVuSans-53"/>
1871 <use xlink:href="#DejaVuSans-49" transform="translate(63.476562 0)"/>
1872 <use xlink:href="#DejaVuSans-4e" transform="translate(92.96875 0)"/>
1873 <use xlink:href="#DejaVuSans-47" transform="translate(167.773438 0)"/>
1874 <use xlink:href="#DejaVuSans-4c" transform="translate(245.263672 0)"/>
1875 <use xlink:href="#DejaVuSans-45" transform="translate(300.976562 0)"/>
1876 <use xlink:href="#DejaVuSans-2d" transform="translate(364.160156 0)"/>
1877 <use xlink:href="#DejaVuSans-4c" transform="translate(400.244141 0)"/>
1878 <use xlink:href="#DejaVuSans-49" transform="translate(455.957031 0)"/>
1879 <use xlink:href="#DejaVuSans-4e" transform="translate(485.449219 0)"/>
1880 <use xlink:href="#DejaVuSans-45" transform="translate(560.253906 0)"/>
1881 <use xlink:href="#DejaVuSans-20" transform="translate(623.4375 0)"/>
1882 <use xlink:href="#DejaVuSans-44" transform="translate(655.224609 0)"/>
1883 <use xlink:href="#DejaVuSans-49" transform="translate(732.226562 0)"/>
1884 <use xlink:href="#DejaVuSans-41" transform="translate(761.71875 0)"/>
1885 <use xlink:href="#DejaVuSans-47" transform="translate(828.376953 0)"/>
1886 <use xlink:href="#DejaVuSans-52" transform="translate(905.867188 0)"/>
1887 <use xlink:href="#DejaVuSans-41" transform="translate(971.349609 0)"/>
1888 <use xlink:href="#DejaVuSans-4d" transform="translate(1039.757812 0)"/>
1889 <use xlink:href="#DejaVuSans-20" transform="translate(1126.037109 0)"/>
1890 <use xlink:href="#DejaVuSans-2014" transform="translate(1157.824219 0)"/>
1891 <use xlink:href="#DejaVuSans-20" transform="translate(1257.824219 0)"/>
1892 <use xlink:href="#DejaVuSans-50" transform="translate(1289.611328 0)"/>
1893 <use xlink:href="#DejaVuSans-52" transform="translate(1349.914062 0)"/>
1894 <use xlink:href="#DejaVuSans-53" transform="translate(1419.396484 0)"/>
1895 <use xlink:href="#DejaVuSans-4d" transform="translate(1482.873047 0)"/>
1896 <use xlink:href="#DejaVuSans-20" transform="translate(1569.152344 0)"/>
1897 <use xlink:href="#DejaVuSans-4f" transform="translate(1600.939453 0)"/>
1898 <use xlink:href="#DejaVuSans-46" transform="translate(1679.650391 0)"/>
1899 <use xlink:href="#DejaVuSans-46" transform="translate(1737.169922 0)"/>
1900 <use xlink:href="#DejaVuSans-2d" transform="translate(1794.689453 0)"/>
1901 <use xlink:href="#DejaVuSans-47" transform="translate(1834.398438 0)"/>
1902 <use xlink:href="#DejaVuSans-52" transform="translate(1911.888672 0)"/>
1903 <use xlink:href="#DejaVuSans-49" transform="translate(1981.371094 0)"/>
1904 <use xlink:href="#DejaVuSans-44" transform="translate(2010.863281 0)"/>
1905 <use xlink:href="#DejaVuSans-20" transform="translate(2087.865234 0)"/>
1906 <use xlink:href="#DejaVuSans-50" transform="translate(2119.652344 0)"/>
1907 <use xlink:href="#DejaVuSans-56" transform="translate(2179.955078 0)"/>
1908 </g>
1909 </g>
1910 <g id="text_16">
1911 <!-- PRSM OFF-GRID PV · NEK Vermont · NEC 2023 · ratings trace to scripts 01/03/04 -->
1912 <g transform="translate(132.171969 45.776067) scale(0.08 -0.08)">
1913 <defs>
1914 <path id="DejaVuSans-4b" d="M 628 4666
1915L 1259 4666
1916L 1259 2694
1917L 3353 4666
1918L 4166 4666
1919L 1850 2491
1920L 4331 0
1921L 3500 0
1922L 1259 2247
1923L 1259 0
1924L 628 0
1925L 628 4666
1926z
1927" transform="scale(0.015625)"/>
1928 <path id="DejaVuSans-72" d="M 2631 2963
1929Q 2534 3019 2420 3045
1930Q 2306 3072 2169 3072
1931Q 1681 3072 1420 2755
1932Q 1159 2438 1159 1844
1933L 1159 0
1934L 581 0
1935L 581 3500
1936L 1159 3500
1937L 1159 2956
1938Q 1341 3275 1631 3429
1939Q 1922 3584 2338 3584
1940Q 2397 3584 2469 3576
1941Q 2541 3569 2628 3553
1942L 2631 2963
1943z
1944" transform="scale(0.015625)"/>
1945 <path id="DejaVuSans-6d" d="M 3328 2828
1946Q 3544 3216 3844 3400
1947Q 4144 3584 4550 3584
1948Q 5097 3584 5394 3201
1949Q 5691 2819 5691 2113
1950L 5691 0
1951L 5113 0
1952L 5113 2094
1953Q 5113 2597 4934 2840
1954Q 4756 3084 4391 3084
1955Q 3944 3084 3684 2787
1956Q 3425 2491 3425 1978
1957L 3425 0
1958L 2847 0
1959L 2847 2094
1960Q 2847 2600 2669 2842
1961Q 2491 3084 2119 3084
1962Q 1678 3084 1418 2786
1963Q 1159 2488 1159 1978
1964L 1159 0
1965L 581 0
1966L 581 3500
1967L 1159 3500
1968L 1159 2956
1969Q 1356 3278 1631 3431
1970Q 1906 3584 2284 3584
1971Q 2666 3584 2933 3390
1972Q 3200 3197 3328 2828
1973z
1974" transform="scale(0.015625)"/>
1975 <path id="DejaVuSans-67" d="M 2906 1791
1976Q 2906 2416 2648 2759
1977Q 2391 3103 1925 3103
1978Q 1463 3103 1205 2759
1979Q 947 2416 947 1791
1980Q 947 1169 1205 825
1981Q 1463 481 1925 481
1982Q 2391 481 2648 825
1983Q 2906 1169 2906 1791
1984z
1985M 3481 434
1986Q 3481 -459 3084 -895
1987Q 2688 -1331 1869 -1331
1988Q 1566 -1331 1297 -1286
1989Q 1028 -1241 775 -1147
1990L 775 -588
1991Q 1028 -725 1275 -790
1992Q 1522 -856 1778 -856
1993Q 2344 -856 2625 -561
1994Q 2906 -266 2906 331
1995L 2906 616
1996Q 2728 306 2450 153
1997Q 2172 0 1784 0
1998Q 1141 0 747 490
1999Q 353 981 353 1791
2000Q 353 2603 747 3093
2001Q 1141 3584 1784 3584
2002Q 2172 3584 2450 3431
2003Q 2728 3278 2906 2969
2004L 2906 3500
2005L 3481 3500
2006L 3481 434
2007z
2008" transform="scale(0.015625)"/>
2009 </defs>
2010 <use xlink:href="#DejaVuSans-50"/>
2011 <use xlink:href="#DejaVuSans-52" transform="translate(60.302734 0)"/>
2012 <use xlink:href="#DejaVuSans-53" transform="translate(129.785156 0)"/>
2013 <use xlink:href="#DejaVuSans-4d" transform="translate(193.261719 0)"/>
2014 <use xlink:href="#DejaVuSans-20" transform="translate(279.541016 0)"/>
2015 <use xlink:href="#DejaVuSans-4f" transform="translate(311.328125 0)"/>
2016 <use xlink:href="#DejaVuSans-46" transform="translate(390.039062 0)"/>
2017 <use xlink:href="#DejaVuSans-46" transform="translate(447.558594 0)"/>
2018 <use xlink:href="#DejaVuSans-2d" transform="translate(505.078125 0)"/>
2019 <use xlink:href="#DejaVuSans-47" transform="translate(544.787109 0)"/>
2020 <use xlink:href="#DejaVuSans-52" transform="translate(622.277344 0)"/>
2021 <use xlink:href="#DejaVuSans-49" transform="translate(691.759766 0)"/>
2022 <use xlink:href="#DejaVuSans-44" transform="translate(721.251953 0)"/>
2023 <use xlink:href="#DejaVuSans-20" transform="translate(798.253906 0)"/>
2024 <use xlink:href="#DejaVuSans-50" transform="translate(830.041016 0)"/>
2025 <use xlink:href="#DejaVuSans-56" transform="translate(890.34375 0)"/>
2026 <use xlink:href="#DejaVuSans-20" transform="translate(958.751953 0)"/>
2027 <use xlink:href="#DejaVuSans-b7" transform="translate(990.539062 0)"/>
2028 <use xlink:href="#DejaVuSans-20" transform="translate(1022.326172 0)"/>
2029 <use xlink:href="#DejaVuSans-4e" transform="translate(1054.113281 0)"/>
2030 <use xlink:href="#DejaVuSans-45" transform="translate(1128.917969 0)"/>
2031 <use xlink:href="#DejaVuSans-4b" transform="translate(1192.101562 0)"/>
2032 <use xlink:href="#DejaVuSans-20" transform="translate(1257.677734 0)"/>
2033 <use xlink:href="#DejaVuSans-56" transform="translate(1289.464844 0)"/>
2034 <use xlink:href="#DejaVuSans-65" transform="translate(1350.123047 0)"/>
2035 <use xlink:href="#DejaVuSans-72" transform="translate(1411.646484 0)"/>
2036 <use xlink:href="#DejaVuSans-6d" transform="translate(1451.009766 0)"/>
2037 <use xlink:href="#DejaVuSans-6f" transform="translate(1548.421875 0)"/>
2038 <use xlink:href="#DejaVuSans-6e" transform="translate(1609.603516 0)"/>
2039 <use xlink:href="#DejaVuSans-74" transform="translate(1672.982422 0)"/>
2040 <use xlink:href="#DejaVuSans-20" transform="translate(1712.191406 0)"/>
2041 <use xlink:href="#DejaVuSans-b7" transform="translate(1743.978516 0)"/>
2042 <use xlink:href="#DejaVuSans-20" transform="translate(1775.765625 0)"/>
2043 <use xlink:href="#DejaVuSans-4e" transform="translate(1807.552734 0)"/>
2044 <use xlink:href="#DejaVuSans-45" transform="translate(1882.357422 0)"/>
2045 <use xlink:href="#DejaVuSans-43" transform="translate(1945.541016 0)"/>
2046 <use xlink:href="#DejaVuSans-20" transform="translate(2015.365234 0)"/>
2047 <use xlink:href="#DejaVuSans-32" transform="translate(2047.152344 0)"/>
2048 <use xlink:href="#DejaVuSans-30" transform="translate(2110.775391 0)"/>
2049 <use xlink:href="#DejaVuSans-32" transform="translate(2174.398438 0)"/>
2050 <use xlink:href="#DejaVuSans-33" transform="translate(2238.021484 0)"/>
2051 <use xlink:href="#DejaVuSans-20" transform="translate(2301.644531 0)"/>
2052 <use xlink:href="#DejaVuSans-b7" transform="translate(2333.431641 0)"/>
2053 <use xlink:href="#DejaVuSans-20" transform="translate(2365.21875 0)"/>
2054 <use xlink:href="#DejaVuSans-72" transform="translate(2397.005859 0)"/>
2055 <use xlink:href="#DejaVuSans-61" transform="translate(2438.119141 0)"/>
2056 <use xlink:href="#DejaVuSans-74" transform="translate(2499.398438 0)"/>
2057 <use xlink:href="#DejaVuSans-69" transform="translate(2538.607422 0)"/>
2058 <use xlink:href="#DejaVuSans-6e" transform="translate(2566.390625 0)"/>
2059 <use xlink:href="#DejaVuSans-67" transform="translate(2629.769531 0)"/>
2060 <use xlink:href="#DejaVuSans-73" transform="translate(2693.246094 0)"/>
2061 <use xlink:href="#DejaVuSans-20" transform="translate(2745.345703 0)"/>
2062 <use xlink:href="#DejaVuSans-74" transform="translate(2777.132812 0)"/>
2063 <use xlink:href="#DejaVuSans-72" transform="translate(2816.341797 0)"/>
2064 <use xlink:href="#DejaVuSans-61" transform="translate(2857.455078 0)"/>
2065 <use xlink:href="#DejaVuSans-63" transform="translate(2918.734375 0)"/>
2066 <use xlink:href="#DejaVuSans-65" transform="translate(2973.714844 0)"/>
2067 <use xlink:href="#DejaVuSans-20" transform="translate(3035.238281 0)"/>
2068 <use xlink:href="#DejaVuSans-74" transform="translate(3067.025391 0)"/>
2069 <use xlink:href="#DejaVuSans-6f" transform="translate(3106.234375 0)"/>
2070 <use xlink:href="#DejaVuSans-20" transform="translate(3167.416016 0)"/>
2071 <use xlink:href="#DejaVuSans-73" transform="translate(3199.203125 0)"/>
2072 <use xlink:href="#DejaVuSans-63" transform="translate(3251.302734 0)"/>
2073 <use xlink:href="#DejaVuSans-72" transform="translate(3306.283203 0)"/>
2074 <use xlink:href="#DejaVuSans-69" transform="translate(3347.396484 0)"/>
2075 <use xlink:href="#DejaVuSans-70" transform="translate(3375.179688 0)"/>
2076 <use xlink:href="#DejaVuSans-74" transform="translate(3438.65625 0)"/>
2077 <use xlink:href="#DejaVuSans-73" transform="translate(3477.865234 0)"/>
2078 <use xlink:href="#DejaVuSans-20" transform="translate(3529.964844 0)"/>
2079 <use xlink:href="#DejaVuSans-30" transform="translate(3561.751953 0)"/>
2080 <use xlink:href="#DejaVuSans-31" transform="translate(3625.375 0)"/>
2081 <use xlink:href="#DejaVuSans-2f" transform="translate(3688.998047 0)"/>
2082 <use xlink:href="#DejaVuSans-30" transform="translate(3722.689453 0)"/>
2083 <use xlink:href="#DejaVuSans-33" transform="translate(3786.3125 0)"/>
2084 <use xlink:href="#DejaVuSans-2f" transform="translate(3849.935547 0)"/>
2085 <use xlink:href="#DejaVuSans-30" transform="translate(3883.626953 0)"/>
2086 <use xlink:href="#DejaVuSans-34" transform="translate(3947.25 0)"/>
2087 </g>
2088 </g>
2089 </g>
2090 </g>
2091 <defs>
2092 <clipPath id="pc591430356">
2093 <rect x="0" y="0" width="534.819659" height="533.52"/>
2094 </clipPath>
2095 </defs>
2096</svg>
data/hardwick_usage.csv +32 -0
……@@ -0,0 +1,32 @@
1# Hardwick Electric Department — billed electricity usage + cost (saved for reuse in calcs)
2# Account 801398-001 · Paul Flint · 423 Main St, Greensboro Bend VT 05842 (NE Kingdom) · Meter 10720
3# Source: AccountLedgerPrint.pdf + May-2026 bill mJ2ftoNynkW87jYvC5amBQ10.pdf (owner's Downloads)
4# Extracted 2026-06-02. RAW columns from the ledger: net_kwh (billed "Net KWH"; assumed = consumption,
5# no on-site generation evident) and bill_amount (billed net cost, USD).
6# avg cost/kWh is NOT stored here — it is COMPUTED by common.load_usage() (= bill_amount / net_kwh).
7# bill_date = MM/DD/YY (~usage month). Loader skips these '#' lines. Newest first.
8bill_date,net_kwh,bill_amount,reading_type
905/15/26,943,216.00,NORMAL
1004/15/26,870,199.30,NORMAL
1103/15/26,1021,233.85,NORMAL
1202/15/26,791,181.23,NORMAL
1301/15/26,744,170.71,NORMAL
1412/15/25,863,197.97,NORMAL
1511/15/25,783,179.65,NORMAL
1610/15/25,969,222.26,NORMAL
1709/15/25,1260,288.92,NORMAL
1808/15/25,1677,384.45,NORMAL
1907/15/25,1261,289.15,NORMAL
2006/15/25,1055,215.04,NORMAL
2105/15/25,800,163.12,NORMAL
2204/15/25,690,140.72,NORMAL
2303/15/25,675,137.67,NORMAL
2402/15/25,747,152.33,NORMAL
2501/15/25,774,157.90,NORMAL
2612/15/24,863,176.02,NORMAL
2711/15/24,774,157.90,NORMAL
2810/15/24,847,172.76,NORMAL
2909/15/24,877,178.88,NORMAL
3008/15/24,1427,290.90,NORMAL
3107/15/24,510,104.13,ESTIMATED
3206/15/24,605,123.48,NORMAL
requirements.txt +15 -0
……@@ -0,0 +1,15 @@
1# PRSM electrical-review grounding stack
2# python -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt
3
4nrel-pysam # NREL SAM wrapper: Pvwattsv8 production / per-MPPT energy
5pvlib # benchmark PV models: IV curves, cell temp, cross-check
6vocmax # NEC 690.7 cold-Voc string sizing from NSRDB extreme temps
7schemdraw # electrical schematic rendering (SLD + wiring → PNG/SVG)
8matplotlib # schemdraw backend + any supporting plots
9requests # PVWatts V8 REST API calls
10pandas # tabular conductor/ampacity/voltage-drop calcs
11numpy
12pyyaml # reads site.yaml (the single source of design inputs)
13
14# Needs a free NREL API key for PVWatts + NSRDB (vocmax):
15# export NREL_API_KEY=... (get at developer.nrel.gov — verify host: developer.nlr.gov as of 2026-05-29)
scripts/01_string_sizing.py +423 -0
……@@ -0,0 +1,423 @@
1"""01 — PV string sizing. THE binding safety constraint (NEC 690.7).
2
3Max modules-in-series so cold-weather Voc stays under the inverter's PV-voltage
4ceiling, AND the operating MPP voltage stays inside the MPPT tracking window.
5
6Three independent methods, must agree:
7 (A) Analytic NEC 690.7 cold-Voc: Voc(T) = Voc_stc * [1 + beta/100 * (Tmin - 25)]
8 with Tmin = the lowest expected ambient (NSRDB extreme min if a key is
9 available, else the documented NEK design low). This is the binding number.
10 (B) vocmax / NSRDB — pulls the site-specific historical extreme-min air temp
11 (NEC 690.7's "lowest expected ambient") to refine Tmin in (A).
12 (C) pvlib De Soto single-diode — independent Voc(Tmin) cross-check, plus the
13 operating Vmp(T) used for the MPPT-window check.
14
15Run: ~/.venvs/prsm-electrical/bin/python scripts/01_string_sizing.py
16Optional: export NREL_API_KEY=... (enables method B; verify host first)
17"""
18import argparse
19import math
20import os
21from collections import Counter
22from common import load_site, require, get, banner, result, dump_result, is_phase2, suffix
23
24DESIGN_HOT_CELL_C = 70.0 # conservative max open-rack cell temp for hot-Vmp >= MPPT min check
25K_B = 1.380649e-23 # Boltzmann (J/K)
26Q_E = 1.602176634e-19 # elementary charge (C)
27DIODE_N = 1.1 # diode ideality for the bifacial Voc adder
28
29
30def bifacial_voc_adder(cells_series, rear_frac, bifaciality, t_ref_C=25.0, n=DIODE_N):
31 """Open-circuit voltage rise from rear-side photocurrent on a bifacial module:
32 dVoc = Ns * n * (kT/q) * ln(1 + phi_eff), phi_eff = rear_frac * bifaciality.
33 Evaluated at 25C (conservative-large adder). Adds to the cold-temp Voc."""
34 vth = K_B * (t_ref_C + 273.15) / Q_E
35 return cells_series * n * vth * math.log(1.0 + rear_frac * bifaciality)
36
37
38def analytic_voc(voc_stc, beta_pct_per_C, t_cell_C):
39 """NEC 690.7 linear temperature correction. beta in %/C (negative)."""
40 return voc_stc * (1.0 + (beta_pct_per_C / 100.0) * (t_cell_C - 25.0))
41
42
43def analytic_v(v_stc, tempco_pct_per_C, t_cell_C):
44 return v_stc * (1.0 + (tempco_pct_per_C / 100.0) * (t_cell_C - 25.0))
45
46
47def plan_phase2_strings(modules, max_s, inputs_per_mppt):
48 """Distribute `modules` panels into series strings across MPPTs with asymmetric
49 input counts (e.g. EG4 18kPV = [2,1,1]). Rules:
50 - total strings <= sum(inputs_per_mppt); each string <= max_s;
51 - strings PARALLELED on one MPPT must be EQUAL length (matched Vmp tracking);
52 - use ALL panels, balanced as evenly as the constraints allow.
53 Greedy: start one string per available input, share the panels evenly (base count),
54 then add the remainder one panel at a time (longest-first, capped at max_s); finally
55 assign equal-length groups to multi-input MPPTs first. Returns (plan, lengths) where
56 plan is a list of {mppt, lengths:[...]} sorted by mppt index."""
57 total_inputs = sum(inputs_per_mppt)
58 if modules > total_inputs * max_s:
59 raise SystemExit(f"[BLOCKED] {modules} panels exceed capacity "
60 f"{total_inputs} strings x {max_s}S = {total_inputs*max_s}")
61 base = modules // total_inputs
62 lengths = [base] * total_inputs
63 rem = modules - base * total_inputs
64 i = 0
65 while rem > 0:
66 if lengths[i] < max_s:
67 lengths[i] += 1
68 rem -= 1
69 i = (i + 1) % total_inputs
70 lengths.sort(reverse=True) # e.g. [8,8,8,7]
71 pool = lengths[:]
72 plan = []
73 # multi-input MPPTs first so they can claim an equal-length group
74 for m in sorted(range(len(inputs_per_mppt)), key=lambda x: -inputs_per_mppt[x]):
75 k = inputs_per_mppt[m]
76 if k == 1:
77 grp = [pool.pop(0)] # take the longest remaining
78 else:
79 cnt = Counter(pool)
80 val = next((v for v in sorted(cnt, reverse=True) if cnt[v] >= k), None)
81 grp = [val] * k if val is not None else sorted(pool, reverse=True)[:k]
82 for g in grp:
83 pool.remove(g)
84 plan.append({"mppt": m, "lengths": grp})
85 plan.sort(key=lambda p: p["mppt"])
86 return plan, lengths
87
88
89def nsrdb_extreme_min(lat, lon):
90 """Pull the site's NSRDB historical min air temperature (NEC 690.7 'lowest
91 expected ambient'). Uses pvlib's PSM3 client directly (vocmax 1.0.4 is broken
92 against pvlib 0.15 — its NSRDB pull is run separately in the pinned vocmax venv).
93 Returns (tmin_C, source_str) or (None, reason)."""
94 key = os.environ.get("NREL_API_KEY")
95 email = os.environ.get("NREL_EMAIL")
96 if not key:
97 return None, "NREL_API_KEY not set (using documented design low)"
98 if not email:
99 return None, "NREL_EMAIL not set (NSRDB requires an email; using documented design low)"
100 try:
101 from pvlib import iotools
102 except Exception as e: # noqa
103 return None, f"pvlib.iotools import failed: {e}"
104 # pvlib renamed get_psm3 -> get_nsrdb_psm3; support both.
105 fn = getattr(iotools, "get_nsrdb_psm3", None) or getattr(iotools, "get_psm3", None)
106 if fn is None:
107 return None, "no NSRDB PSM3 function in this pvlib"
108 tmins = []
109 for yr in ("2020", "2019", "2018"): # multi-year for a robust extreme
110 try:
111 data, _ = fn(latitude=lat, longitude=lon, api_key=key, email=email,
112 names=yr, map_variables=True, leap_day=True)
113 col = "temp_air" if "temp_air" in data else (
114 "Temperature" if "Temperature" in data else None)
115 if col:
116 tmins.append(float(data[col].min()))
117 except Exception as e: # noqa
118 if not tmins:
119 return None, f"NSRDB fetch failed ({type(e).__name__}: {e})"
120 break
121 if not tmins:
122 return None, "NSRDB returned no temperature data"
123 return min(tmins), f"NSRDB PSM3 via pvlib ({len(tmins)} yr min)"
124
125
126def pvlib_voc_vmp(cfg, t_cold_C):
127 """Independent single-diode cross-check via the CEC 6-parameter model
128 (fit_cec_sam, backed by the SAM solver in PySAM — more robust than fit_desoto).
129 Returns dict or {'error':...}."""
130 try:
131 from pvlib.ivtools.sdm import fit_cec_sam
132 from pvlib.pvsystem import calcparams_cec, singlediode
133 except Exception as e: # noqa
134 return {"error": f"pvlib import failed: {e}"}
135 voc = require(cfg, "panel.voc_v"); vmp = require(cfg, "panel.vmp_v")
136 isc = require(cfg, "panel.isc_a"); imp = require(cfg, "panel.imp_a")
137 a_sc = require(cfg, "panel.isc_tempco_pct_per_C") / 100.0 * isc # A/C
138 b_voc = require(cfg, "panel.voc_tempco_pct_per_C") / 100.0 * voc # V/C
139 g_pmp = require(cfg, "panel.pmax_tempco_pct_per_C") # %/C
140 cells = int(require(cfg, "panel.cells"))
141 try:
142 I_L, I_o, R_s, R_sh, a_ref, Adj = fit_cec_sam(
143 celltype="monoSi", v_mp=vmp, i_mp=imp, v_oc=voc, i_sc=isc,
144 alpha_sc=a_sc, beta_voc=b_voc, gamma_pmp=g_pmp, cells_in_series=cells)
145
146 def vov(temp_c, g=1000.0):
147 p = calcparams_cec(g, temp_c, alpha_sc=a_sc, a_ref=a_ref, I_L_ref=I_L,
148 I_o_ref=I_o, R_sh_ref=R_sh, R_s=R_s, Adjust=Adj)
149 sd = singlediode(*p)
150 return float(sd["v_oc"]), float(sd["v_mp"])
151
152 voc_cold, vmp_cold = vov(t_cold_C)
153 _, vmp_hot = vov(DESIGN_HOT_CELL_C)
154 return {"voc_cold_pvlib": voc_cold, "vmp_cold_pvlib": vmp_cold,
155 "vmp_hot_pvlib": vmp_hot, "method": "pvlib CEC single-diode (fit_cec_sam)"}
156 except Exception as e: # noqa
157 return {"error": f"fit/solve failed ({type(e).__name__}: {e})"}
158
159
160def main():
161 ap = argparse.ArgumentParser(description=__doc__)
162 ap.add_argument("--phase2", action="store_true",
163 help="apply the phase2: overlay (full 31-panel pallet, EG4 18kPV)")
164 args = ap.parse_args()
165 cfg = load_site(phase2=args.phase2)
166 p2 = is_phase2(cfg)
167 banner("01 PV STRING SIZING (NEC 690.7 cold-Voc + MPPT window)"
168 + (" [PHASE 2 — full pallet, EG4 18kPV]" if p2 else ""))
169
170 lat = require(cfg, "site.latitude"); lon = require(cfg, "site.longitude")
171 voc = require(cfg, "panel.voc_v"); vmp = require(cfg, "panel.vmp_v")
172 pmp = require(cfg, "panel.pmp_w"); imp = require(cfg, "panel.imp_a")
173 isc = require(cfg, "panel.isc_a")
174 b_voc = require(cfg, "panel.voc_tempco_pct_per_C")
175 a_isc = require(cfg, "panel.isc_tempco_pct_per_C")
176 g_pmp = require(cfg, "panel.pmax_tempco_pct_per_C")
177 inv_abs = require(cfg, "inverter.pv_max_voc_v") # absolute do-not-exceed (500 P1 / 600 P2)
178 inv_design = require(cfg, "inverter.pv_design_voc_ceiling_v") # design ceiling (480 P1 / 550 P2 fault)
179 mppt_lo = require(cfg, "inverter.mppt_v_min")
180 mppt_hi = require(cfg, "inverter.mppt_v_max")
181 n_mppt = int(require(cfg, "inverter.mppt_count"))
182 modules = int(require(cfg, "array.module_count"))
183 t_low_doc = require(cfg, "site.design_low_temp_C")
184 if not p2: # Phase-1 6000XP scalars (per-MPPT single-string); Phase-2 uses per-MPPT lists below
185 p_mppt_max = require(cfg, "inverter.pv_max_power_w_per_mppt")
186 p_mppt_os = require(cfg, "inverter.pv_rec_max_power_w") / 2.0
187 i_in_max = require(cfg, "inverter.pv_max_input_a_per_mppt")
188 isc_in_max = require(cfg, "inverter.pv_max_isc_a_per_mppt")
189
190 result("site", f"{lat},{lon}")
191 result("panel Voc / Vmp / Pmp", f"{voc} / {vmp} / {pmp}", "V,V,W")
192 result("Voc tempco (beta)", b_voc, "%/C")
193 result("inverter Voc ceiling", f"{inv_design} design / {inv_abs} absolute", "V")
194 result("MPPT tracking window", f"{mppt_lo}-{mppt_hi}", "V")
195
196 # --- Tmin: documented vs NSRDB; use the colder (conservative) ---------------
197 t_nsrdb, src = nsrdb_extreme_min(lat, lon)
198 if t_nsrdb is not None:
199 t_min = min(t_low_doc, t_nsrdb)
200 result("Tmin NSRDB", round(t_nsrdb, 1), "C", src)
201 else:
202 t_min = t_low_doc
203 result("Tmin NSRDB", "unavailable", "", src)
204 result("Tmin used (binding)", t_min, "C",
205 "colder of documented/NSRDB; NEC 690.7 lowest expected ambient")
206
207 # --- (A) analytic cold-Voc per module + Vmp temp behavior -------------------
208 voc_cold = analytic_voc(voc, b_voc, t_min)
209 beta_vmp_pct = g_pmp - a_isc # Vmp tempco ~ Pmp tempco - Imp(~Isc) tempco
210 vmp_cold = analytic_v(vmp, beta_vmp_pct, t_min)
211 vmp_hot = analytic_v(vmp, beta_vmp_pct, DESIGN_HOT_CELL_C)
212 result("Voc(module, Tmin) analytic", round(voc_cold, 2), "V", "690.7 linear (temp only)")
213 result("derived Vmp tempco", round(beta_vmp_pct, 3), "%/C", "gamma(Pmp)-alpha(Isc)")
214
215 # bifacial rear-gain raises open-circuit voltage — add to the cold Voc for the
216 # binding ceiling check (per adversarial review; worst-case cold + bifacial).
217 cells_s = int(get(cfg, "panel.cells_electrical_series", 72))
218 rear_frac = float(get(cfg, "panel.bifacial_rear_fraction", 0.0))
219 bif = float(get(cfg, "panel.bifaciality", 0.0))
220 delta_bif = bifacial_voc_adder(cells_s, rear_frac, bif) if rear_frac else 0.0
221 voc_cold_design = voc_cold + delta_bif
222 result("bifacial Voc adder", f"+{delta_bif:.2f}", "V/module",
223 f"rear {rear_frac} x bifaciality {bif}; Ns={cells_s}")
224 result("Voc(module) cold+bifacial", round(voc_cold_design, 2), "V",
225 "BINDING value for ceiling check")
226
227 # --- (C) pvlib cross-check --------------------------------------------------
228 pv = pvlib_voc_vmp(cfg, t_min)
229 if "error" in pv:
230 result("pvlib cross-check", "FAILED", "", pv["error"])
231 else:
232 result("Voc(module, Tmin) pvlib", round(pv["voc_cold_pvlib"], 2), "V", pv["method"])
233 diff = pv["voc_cold_pvlib"] - voc_cold
234 result(" analytic vs pvlib dVoc", f"{diff:+.2f}", "V",
235 "agreement check (should be < ~2 V)")
236
237 # --- string length sweep ----------------------------------------------------
238 print("\n Cold-Voc string check (binding safety constraint):")
239 print(f" {'N':>3} {'Voc_cold[V]':>12} {f'<={inv_design:.0f}?':>8} {f'<={inv_abs:.0f}?':>8} "
240 f"{f'margin{inv_design:.0f}':>11}")
241 max_ok = 0
242 rows = []
243 for n in range(4, 11):
244 sv = n * voc_cold_design
245 ok_design = sv <= inv_design
246 ok_abs = sv <= inv_abs
247 if ok_design:
248 max_ok = n
249 rows.append({"N": n, "voc_cold_string_V": round(sv, 1),
250 "le_design": ok_design, "le_abs": ok_abs,
251 "margin_to_design_V": round(inv_design - sv, 1)})
252 print(f" {n:>3} {sv:>12.1f} {str(ok_design):>8} {str(ok_abs):>8} "
253 f"{inv_design - sv:>+11.1f}")
254 result(f"MAX modules/series (<={inv_design:.0f}V)", max_ok, "", "NEC 690.7 binding result")
255
256 # =====================================================================
257 # PHASE 2 — full pallet across the EG4 18kPV's asymmetric 3-MPPT inputs
258 # =====================================================================
259 if p2:
260 usable_a = require(cfg, "inverter.pv_max_usable_a_per_mppt")
261 isc_a_list = require(cfg, "inverter.pv_max_isc_a_per_mppt")
262 inputs_pm = require(cfg, "inverter.inputs_per_mppt")
263 p_total = require(cfg, "inverter.pv_max_power_w")
264 p_rec = require(cfg, "inverter.pv_rec_max_power_w")
265 max_s = max_ok # NEC 690.7 result (<= design fault ceiling)
266 plan, lengths = plan_phase2_strings(modules, max_s, inputs_pm)
267
268 print("\n Phase-2 string layout "
269 f"({modules} panels, max {max_s}S, {sum(inputs_pm)} inputs {inputs_pm}):")
270 result("layout", " ".join(
271 f"MPPT{e['mppt']+1}={'+'.join(str(x) for x in e['lengths'])}S" for e in plan))
272
273 def mk(b):
274 return "ok" if b else "XX"
275
276 per_mppt, all_ok = [], True
277 print(f"\n {'':6}{'strings':>9}{'coldVoc':>11}{'coldVmp':>11}{'hotVmp':>10}"
278 f"{'Isc/lim':>12}{'Imp/usable':>14}{'power':>8}")
279 for e in plan:
280 m, L = e["mppt"], e["lengths"]
281 npar = len(L)
282 equal = len(set(L)) == 1
283 ns, ns_min = max(L), min(L)
284 cold_voc = ns * voc_cold_design # longest string -> worst cold Voc
285 cold_vmp = ns * vmp_cold
286 hot_vmp = ns_min * vmp_hot # shortest string -> lowest hot Vmp
287 imp_m, isc_m = npar * imp, npar * isc # combined into this MPPT
288 pwr = sum(L) * pmp
289 voc_ok = cold_voc <= inv_design
290 vhi_ok = cold_vmp <= mppt_hi
291 vlo_ok = hot_vmp >= mppt_lo
292 isc_ok = isc_m <= isc_a_list[m] # SAFETY: combined Isc <= MPPT Isc rating
293 use_ok = imp_m <= usable_a[m] # harvest: > usable just clips at MPP peak
294 ok = equal and voc_ok and vhi_ok and vlo_ok and isc_ok
295 all_ok = all_ok and ok
296 imp_cell = f"{imp_m:.1f}/{usable_a[m]}" + ("" if use_ok else " clip")
297 print(f" MPPT{m+1} {f'{npar}x{ns}S':>9}"
298 f"{f'{cold_voc:.0f}V {mk(voc_ok)}':>11}{f'{cold_vmp:.0f}V {mk(vhi_ok)}':>11}"
299 f"{f'{hot_vmp:.0f}V {mk(vlo_ok)}':>10}"
300 f"{f'{isc_m:.1f}/{isc_a_list[m]} {mk(isc_ok)}':>12}"
301 f"{imp_cell:>14}{pwr:>7}W")
302 per_mppt.append({
303 "mppt": m + 1, "n_parallel": npar, "n_series": ns, "lengths": L,
304 "equal_parallel": equal, "string_cold_voc_V": round(cold_voc, 1),
305 "string_cold_vmp_V": round(cold_vmp, 1), "string_hot_vmp_V": round(hot_vmp, 1),
306 "combined_imp_A": round(imp_m, 2), "usable_a_limit": usable_a[m],
307 "combined_isc_A": round(isc_m, 2), "isc_a_limit": isc_a_list[m],
308 "current_clips_at_mpp": not use_ok, "power_W": pwr,
309 "checks": {"voc": voc_ok, "vmp_hi": vhi_ok, "vmp_lo": vlo_ok,
310 "isc": isc_ok, "equal_parallel": equal},
311 })
312
313 worst_voc = max(p["string_cold_voc_V"] for p in per_mppt)
314 max_series = max(max(e["lengths"]) for e in plan)
315 min_series = min(min(e["lengths"]) for e in plan)
316 n_strings = sum(len(e["lengths"]) for e in plan)
317 array_dc = sum(p["power_W"] for p in per_mppt)
318 any_clip = any(p["current_clips_at_mpp"] for p in per_mppt)
319 pwr_ok = array_dc <= p_total
320
321 print()
322 result("binding cold Voc (longest string)", round(worst_voc, 1), "V",
323 f"{max_series}S <= {inv_design} fault ({'PASS' if worst_voc <= inv_design else 'FAIL'}); "
324 f"margin {inv_design - worst_voc:.0f}V to fault / {inv_abs - worst_voc:.0f}V to {inv_abs} abs")
325 result("array DC total", array_dc, "W",
326 f"<= {p_total} max-utilized ({'PASS' if pwr_ok else 'OVER'}) / {p_rec} recommended")
327 if any_clip:
328 clipped = [p for p in per_mppt if p["current_clips_at_mpp"]]
329 for p in clipped:
330 result(f" MPPT{p['mppt']} peak-current note",
331 f"Imp {p['combined_imp_A']}A > {p['usable_a_limit']}A usable",
332 "", f"SAFE harvest cap only: Isc {p['combined_isc_A']}A < "
333 f"{p['isc_a_limit']}A MPPT rating; inverter clips ~"
334 f"{p['combined_imp_A']-p['usable_a_limit']:.1f}A at rare full-STC peaks")
335 verdict = all_ok and pwr_ok
336 result("OVERALL string verdict", "PASS" if verdict else "REVIEW",
337 "", "per-MPPT voltage+Isc+equal-parallel all pass" if verdict else "see flags")
338
339 dump_result("01_string" + suffix(cfg), {
340 "phase": "phase2", "inverter": require(cfg, "inverter.model"),
341 "tmin_C": t_min, "tmin_source": src if t_nsrdb is None else "NSRDB",
342 "voc_cold_module_temp_V": round(voc_cold, 2),
343 "bifacial_adder_V": round(delta_bif, 2),
344 "voc_cold_module_V": round(voc_cold_design, 2),
345 "voc_cold_module_pvlib_V": pv.get("voc_cold_pvlib"),
346 "max_modules_series_le_design": max_ok,
347 "modules_total": modules, "n_strings": n_strings,
348 "max_string_series": max_series, "min_string_series": min_series,
349 "n_series": max_series, # back-compat: worst-case (longest) string
350 "string_cold_voc_V": round(worst_voc, 1),
351 "string_imp_A": imp, "string_isc_A": isc, # per single string (one homerun each)
352 "pv_vref_worst_V": round(min_series * vmp, 1), # lowest-Vmp string -> worst PV Vdrop% (for 03)
353 "array_dc_W": array_dc,
354 "mppt_window_V": [mppt_lo, mppt_hi],
355 "inv_design_ceiling_V": inv_design, "inv_abs_ceiling_V": inv_abs,
356 "margin_to_design_V": round(inv_design - worst_voc, 1),
357 "margin_to_abs_V": round(inv_abs - worst_voc, 1),
358 "margin_to_500_V": round(inv_abs - worst_voc, 1), # legacy key name = margin to abs
359 "layout": plan, "per_mppt": per_mppt, "any_current_clip": any_clip,
360 "verdict": "PASS" if verdict else "REVIEW", "sweep": rows,
361 })
362 return
363
364 # --- recommended design: fill the 2 MPPTs evenly ----------------------------
365 per_mppt = modules // n_mppt
366 n_series = per_mppt # one string per MPPT (EG4 'no combiner needed')
367 string_voc_cold = n_series * voc_cold_design
368 string_vmp_cold = n_series * vmp_cold
369 string_vmp_hot = n_series * vmp_hot
370 string_pmp = n_series * pmp
371
372 print("\n Recommended configuration:")
373 result("topology", f"{n_series}S x 1P per MPPT, {n_mppt} MPPTs = {n_series*n_mppt} modules")
374 result("string cold Voc", round(string_voc_cold, 1), "V",
375 f"<= {inv_design} design ({'PASS' if string_voc_cold<=inv_design else 'FAIL'})")
376 result("string cold Voc vs 500 abs", f"{string_voc_cold:.1f}/{inv_abs}",
377 "V", f"{(inv_abs-string_voc_cold):.0f} V margin")
378 result("string cold Vmp (analytic)", round(string_vmp_cold, 1), "V",
379 f"<= {mppt_hi} MPPT max ({'PASS' if string_vmp_cold<=mppt_hi else 'FAIL'})")
380 if "error" not in pv:
381 result("string cold Vmp (pvlib)", round(n_series*pv['vmp_cold_pvlib'], 1), "V",
382 f"<= {mppt_hi} ({'PASS' if n_series*pv['vmp_cold_pvlib']<=mppt_hi else 'CHECK'})")
383 result("string hot Vmp (pvlib)", round(n_series*pv['vmp_hot_pvlib'], 1), "V",
384 f">= {mppt_lo} MPPT min ({'PASS' if n_series*pv['vmp_hot_pvlib']>=mppt_lo else 'FAIL'})")
385 result("string hot Vmp (analytic)", round(string_vmp_hot, 1), "V",
386 f">= {mppt_lo} ({'PASS' if string_vmp_hot>=mppt_lo else 'FAIL'})")
387
388 # --- per-MPPT power / current -----------------------------------------------
389 print("\n Per-MPPT loading:")
390 result("string power (DC)", round(string_pmp), "W",
391 f"vs {p_mppt_max} usable / {p_mppt_os:.0f} oversize cap")
392 result("string Imp", imp, "A", f"vs {i_in_max} max input ({'PASS' if imp<=i_in_max else 'FAIL'})")
393 result("string Isc", isc, "A", f"vs {isc_in_max} Isc rating ({'PASS' if isc<=isc_in_max else 'FAIL'})")
394 result("array DC total", round(string_pmp*n_mppt), "W")
395
396 verdict = (string_voc_cold <= inv_design and string_vmp_hot >= mppt_lo
397 and imp <= i_in_max and isc <= isc_in_max)
398 result("OVERALL string verdict", "PASS" if verdict else "REVIEW")
399
400 dump_result("01_string", {
401 "tmin_C": t_min, "tmin_source": src if t_nsrdb is None else "NSRDB",
402 "voc_cold_module_temp_V": round(voc_cold, 2),
403 "bifacial_adder_V": round(delta_bif, 2),
404 "voc_cold_module_V": round(voc_cold_design, 2),
405 "voc_cold_module_pvlib_V": pv.get("voc_cold_pvlib"),
406 "max_modules_series_le_480": max_ok,
407 "n_series": n_series, "n_strings": n_mppt, "modules_total": n_series*n_mppt,
408 "string_cold_voc_V": round(string_voc_cold, 1),
409 "inv_design_ceiling_V": inv_design, "inv_abs_ceiling_V": inv_abs,
410 "margin_to_480_V": round(inv_design - string_voc_cold, 1),
411 "margin_to_500_V": round(inv_abs - string_voc_cold, 1),
412 "string_cold_vmp_V": round(string_vmp_cold, 1),
413 "string_hot_vmp_V": round(string_vmp_hot, 1),
414 "mppt_window_V": [mppt_lo, mppt_hi],
415 "string_power_W": round(string_pmp), "string_imp_A": imp, "string_isc_A": isc,
416 "array_dc_W": round(string_pmp*n_mppt),
417 "verdict": "PASS" if verdict else "REVIEW",
418 "sweep": rows,
419 })
420
421
422if __name__ == "__main__":
423 main()
scripts/01b_vocmax.py +83 -0
……@@ -0,0 +1,83 @@
1"""01b — vocmax named-tool corroboration of the cold-Voc result.
2
3CLAUDE.md names `vocmax` as the NEC 690.7 grounding tool. vocmax 1.0.4 is incompatible
4with the main env's pvlib 0.15 (it imports the removed get_psm3), so it runs in a pinned
5venv: ~/.venvs/prsm-vocmax (python3.9 + pvlib 0.9.5 + numpy<2).
6
7This computes module Voc at the design low temperature with vocmax's own Sandia Voc
8model (vocmax.calculate_voc) and derives the max string length vs the inverter ceilings —
9a fourth, independent check on the 7S result from 01_string_sizing.py.
10
11NOTE: vocmax's full value is its NSRDB statistical worst-case (P99.5 etc.), which needs
12an NREL key. At full-sun (Ee=1) the Sandia Voc reduces to the linear 690.7 form, so this
13offline run confirms the per-module Voc; the NSRDB workflow is the open item.
14
15Run: ~/.venvs/prsm-vocmax/bin/python scripts/01b_vocmax.py
16"""
17import argparse
18import vocmax
19from common import load_site, require, banner, result, dump_result, is_phase2, suffix
20
21
22def main():
23 ap = argparse.ArgumentParser()
24 ap.add_argument("--phase2", action="store_true",
25 help="apply the phase2: overlay (EG4 18kPV ceilings, full pallet)")
26 args = ap.parse_args()
27 cfg = load_site(phase2=args.phase2)
28 p2 = is_phase2(cfg)
29 banner("01b VOCMAX named-tool corroboration (offline, design-low temp)"
30 + (" [PHASE 2 — EG4 18kPV]" if p2 else ""))
31 voc = require(cfg, "panel.voc_v")
32 b_voc_pct = require(cfg, "panel.voc_tempco_pct_per_C")
33 cells = int(require(cfg, "panel.cells_electrical_series"))
34 t_min = require(cfg, "site.design_low_temp_C")
35 inv_design = require(cfg, "inverter.pv_design_voc_ceiling_v")
36 inv_abs = require(cfg, "inverter.pv_max_voc_v")
37
38 module = {
39 "Voco": voc,
40 "Bvoco": b_voc_pct / 100.0 * voc, # V/C
41 "cells_in_series": cells,
42 "n_diode": 1.1,
43 "FD": 1.0,
44 }
45 result("vocmax version", vocmax.__version__)
46 result("module Voco / Bvoco", f"{module['Voco']} / {module['Bvoco']:.4f}", "V , V/C")
47
48 voc_stc = float(vocmax.calculate_voc(1000.0, 25.0, module))
49 voc_cold = float(vocmax.calculate_voc(1000.0, t_min, module)) # full-sun, design low
50 result("vocmax Voc @ 25C", round(voc_stc, 2), "V", "should reproduce Voco")
51 result("vocmax Voc @ Tmin", round(voc_cold, 2), "V", f"{t_min} C, Ee=1")
52
53 max_series_design = int(inv_design // voc_cold)
54 max_series_abs = int(inv_abs // voc_cold)
55 # String to validate: phase2 = the design's longest string (binding max = max_series_design);
56 # phase1 = the even-fill per-MPPT length (module_count // mppt_count).
57 n_series = max_series_design if p2 else (
58 require(cfg, "array.module_count") // require(cfg, "inverter.mppt_count"))
59 string_cold = n_series * voc_cold
60 result(f"{n_series}S string cold Voc", round(string_cold, 1), "V",
61 f"<= {inv_design} ({'PASS' if string_cold <= inv_design else 'FAIL'})")
62 result(f"max modules/series <={inv_design:.0f}", max_series_design)
63 result(f"max modules/series <={inv_abs:.0f}", max_series_abs)
64 result("VOCMAX VERDICT", f"{n_series}S PASS" if (n_series <= max_series_design) else "REVIEW")
65
66 dump_result("01b_vocmax" + suffix(cfg), {
67 "phase": "phase2" if p2 else "phase1",
68 "vocmax_version": vocmax.__version__,
69 "voc_module_stc_V": round(voc_stc, 2),
70 "voc_module_cold_V": round(voc_cold, 2),
71 "tmin_C": t_min,
72 "design_ceiling_V": inv_design, "abs_ceiling_V": inv_abs,
73 "string_series_checked": n_series,
74 "string_cold_voc_V": round(string_cold, 1),
75 "max_series_le_design": max_series_design,
76 "max_series_le_abs": max_series_abs,
77 "verdict": f"{n_series}S PASS" if (n_series <= max_series_design) else "REVIEW",
78 "note": "offline full-sun Sandia Voc (=linear 690.7); NSRDB statistical run needs NREL key",
79 })
80
81
82if __name__ == "__main__":
83 main()
scripts/02_production.py +107 -0
……@@ -0,0 +1,107 @@
1"""02 — Production / per-MPPT energy sanity (PVWatts v8, fixed open-rack).
2
3Annual + monthly AC kWh for the ~8 kW array, with the winter (Dec/Jan) worst-case
4that actually governs an off-grid system. Per-MPPT DC power check vs the inverter.
5
6Ground truth: NREL PVWatts V8 REST API. The host is VERIFIED empirically here
7(the project docs claim a 2026-05-29 migration to developer.nlr.gov; we test the
8canonical developer.nrel.gov first and only fall back if it fails).
9
10Run: ~/.venvs/prsm-electrical/bin/python scripts/02_production.py
11Uses NREL_API_KEY if set, else DEMO_KEY (rate-limited but works for PVWatts).
12"""
13import os
14import requests
15from common import load_site, require, banner, result, dump_result, load_result
16
17HOSTS = ["https://developer.nrel.gov", "https://developer.nlr.gov"]
18PATH = "/api/pvwatts/v8.json"
19MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
20 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
21DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
22
23
24def call_pvwatts(params):
25 """Try each host; return (json, host, err)."""
26 last = None
27 for host in HOSTS:
28 try:
29 r = requests.get(host + PATH, params=params, timeout=30)
30 if r.status_code == 200 and "outputs" in r.json():
31 return r.json(), host, None
32 last = f"{host}: HTTP {r.status_code} {r.text[:120]}"
33 except Exception as e: # noqa
34 last = f"{host}: {type(e).__name__}: {e}"
35 return None, None, last
36
37
38def main():
39 cfg = load_site()
40 banner("02 PRODUCTION (PVWatts v8, fixed open-rack array_type=0)")
41 s01 = load_result("01_string")
42
43 modules = int(require(cfg, "array.module_count"))
44 pmp = require(cfg, "panel.pmp_w")
45 kw = round(modules * pmp / 1000.0, 2)
46 tilt = require(cfg, "array.tilt_deg")
47 az = require(cfg, "array.azimuth_deg")
48 lat = require(cfg, "site.latitude")
49 lon = require(cfg, "site.longitude")
50 key = os.environ.get("NREL_API_KEY", "DEMO_KEY")
51
52 result("system_capacity", kw, "kW DC", f"{modules} x {pmp}W")
53 result("tilt / azimuth", f"{tilt} / {az}", "deg")
54 result("api key", "NREL_API_KEY" if key != "DEMO_KEY" else "DEMO_KEY (rate-limited)")
55
56 params = {"api_key": key, "system_capacity": kw, "module_type": 0,
57 "array_type": 0, "tilt": tilt, "azimuth": az, "losses": 14,
58 "lat": lat, "lon": lon, "dc_ac_ratio": round(kw / 6.0, 2)}
59 data, host, err = call_pvwatts(params)
60 if data is None:
61 result("PVWatts", "UNAVAILABLE", "", err)
62 result("note", "production is a sanity check; safety calcs (01/03/04) do not depend on it")
63 dump_result("02_production", {"status": "unavailable", "error": err,
64 "system_kw": kw})
65 raise SystemExit("PVWatts call failed; rerun with a valid NREL_API_KEY.")
66
67 out = data["outputs"]
68 result("VERIFIED host", host, "", "developer.nrel.gov canonical"
69 if "nrel" in host else "fell back to alt host")
70 ac_annual = out["ac_annual"]
71 ac_monthly = out["ac_monthly"]
72 cf = out.get("capacity_factor")
73 result("AC annual", round(ac_annual), "kWh/yr")
74 result("capacity factor", round(cf, 1) if cf else "n/a", "%")
75 print("\n Monthly AC (kWh) + kWh/day:")
76 for i, m in enumerate(MONTHS):
77 print(f" {m} {ac_monthly[i]:8.0f} {ac_monthly[i]/DAYS[i]:5.1f}/day")
78 dec_day = ac_monthly[11] / DAYS[11]
79 jan_day = ac_monthly[0] / DAYS[0]
80 jun_day = ac_monthly[5] / DAYS[5]
81 print()
82 result("WINTER Dec / Jan kWh/day", f"{dec_day:.1f} / {jan_day:.1f}", "",
83 "off-grid binding case")
84 result("Summer Jun kWh/day", f"{jun_day:.1f}", "", "for contrast")
85 result("winter:summer ratio", f"{dec_day/jun_day:.2f}", "",
86 "NEK winter PV starvation -> generator + Phase-2 PV (Swarm §2,§6)")
87
88 # per-MPPT DC power check (from 01)
89 print("\n Per-MPPT loading (DC nameplate, from 01):")
90 result("string DC power", s01["string_power_W"], "W",
91 f"vs 4000 usable / 5000 oversize cap per MPPT")
92 result("array DC total", s01["array_dc_W"], "W", "vs 8000 usable / 10000 oversize")
93 result("DC:AC ratio", round(kw / 6.0, 2), "", "winter-favorable oversizing")
94
95 dump_result("02_production", {
96 "status": "ok", "verified_host": host, "system_kw": kw,
97 "ac_annual_kwh": round(ac_annual), "capacity_factor_pct": cf,
98 "ac_monthly_kwh": [round(x) for x in ac_monthly],
99 "dec_kwh_day": round(dec_day, 1), "jan_kwh_day": round(jan_day, 1),
100 "jun_kwh_day": round(jun_day, 1),
101 "string_dc_W": s01["string_power_W"], "array_dc_W": s01["array_dc_W"],
102 "dc_ac_ratio": round(kw / 6.0, 2),
103 })
104
105
106if __name__ == "__main__":
107 main()
scripts/03_conductors.py +295 -0
……@@ -0,0 +1,295 @@
1"""03 — Conductor ampacity + voltage drop (NEC 690.8 / 310.15 / 240.4 / Ch.9 T8).
2
3For each run: corrected continuous current -> required ampacity after 310.15 derates
4-> smallest compliant copper gauge (honoring 240.4(D)) -> upsize if voltage drop
5exceeds target -> OCPD (240.6) -> EGC (250.122). All NEC tables in nec_tables.py.
6
7Run: ~/.venvs/prsm-electrical/bin/python scripts/03_conductors.py
8"""
9import argparse
10from common import (load_site, require, get, banner, result, dump_result, load_result,
11 is_phase2, suffix)
12from nec_tables import (T310_16, T8_DCRES, fill_factor, temp_factor, AWG_ORDER,
13 std_ocpd_at_least, egc_awg, max_ocpd_240_4d)
14
15
16def vdrop_pct(awg, length_ft, amps, vref, n_conductors=2):
17 """Voltage drop %, NEC Ch.9 Table 8 DC resistance (75C). n_conductors=2 for a
18 2-wire DC or 1-phase circuit (out and back)."""
19 r = T8_DCRES[awg] / 1000.0 # ohm/ft
20 drop = n_conductors * length_ft * amps * r
21 return 100.0 * drop / vref, drop
22
23
24def pick_gauge(required_term_a, required_derated_a, ambient_c, ccc, term_col="75",
25 start="14"):
26 """Smallest copper AWG whose 75C(term) ampacity >= required_term_a AND whose
27 90C ampacity x temp x fill >= required_derated_a."""
28 tf = temp_factor(ambient_c, "90")
29 ff = fill_factor(ccc)
30 for awg in AWG_ORDER[AWG_ORDER.index(start):]:
31 amp_term = T310_16[awg][{"60": 0, "75": 1, "90": 2}[term_col]]
32 amp_derated = T310_16[awg][2] * tf * ff
33 if amp_term >= required_term_a - 1e-9 and amp_derated >= required_derated_a - 1e-9:
34 return awg, amp_term, amp_derated, tf, ff
35 raise SystemExit("no gauge in table satisfies ampacity; extend table")
36
37
38def size_run(name, *, mode, current, vref, length_ft, target_pct, ambient_c, ccc,
39 isc=None, term_col="75", set_ocpd=True):
40 """mode 'pv' -> 690.8(A)(1)+(B); mode 'continuous' -> 125% continuous (210/215/480)."""
41 if mode == "pv":
42 max_current = isc * 1.25 # 690.8(A)(1)
43 req_term = max_current * 1.25 # 690.8(B)(1): 125% at terminal rating
44 req_derated = max_current # 690.8(B)(2): after conditions of use
45 load_for_vd = current # Imp for voltage drop
46 ocpd_basis = max_current
47 else: # continuous
48 req_term = current * 1.25 # 215.2/210.19: 125% continuous
49 req_derated = current * 1.25
50 load_for_vd = current
51 ocpd_basis = current * 1.25
52
53 awg, amp_term, amp_derated, tf, ff = pick_gauge(req_term, req_derated, ambient_c, ccc, term_col)
54
55 # upsize for voltage drop
56 vd_awg = awg
57 vd_pct, vd_v = vdrop_pct(vd_awg, length_ft, load_for_vd, vref)
58 while vd_pct > target_pct and AWG_ORDER.index(vd_awg) < len(AWG_ORDER) - 1:
59 vd_awg = AWG_ORDER[AWG_ORDER.index(vd_awg) + 1]
60 vd_pct, vd_v = vdrop_pct(vd_awg, length_ft, load_for_vd, vref)
61 final = vd_awg
62
63 ocpd = std_ocpd_at_least(ocpd_basis) if set_ocpd else None
64 # 240.4(D): OCPD must not exceed the conductor's small-conductor ceiling.
65 # Upsize the conductor until it can be protected by the required OCPD.
66 if ocpd is not None:
67 while (max_ocpd_240_4d(final, T310_16[final][1]) < ocpd
68 and AWG_ORDER.index(final) < len(AWG_ORDER) - 1):
69 final = AWG_ORDER[AWG_ORDER.index(final) + 1]
70 ceil = max_ocpd_240_4d(final, T310_16[final][1])
71 ocpd_note = "OK" if ocpd <= ceil else f"OCPD {ocpd}>ceil {ceil}"
72 else:
73 ocpd_note = "n/a"
74
75 # recompute voltage drop for the final (possibly upsized) gauge
76 vd_pct, vd_v = vdrop_pct(final, length_ft, load_for_vd, vref)
77 driver = ("ampacity" if final == awg
78 else "voltage-drop" if final == vd_awg else "240.4(D) OCPD")
79 egc = egc_awg(ocpd) if ocpd else None
80
81 res = {
82 "run": name, "mode": mode, "length_ft": length_ft, "vref_V": vref,
83 "current_A": round(current, 2),
84 "req_ampacity_term_A": round(req_term, 1),
85 "req_ampacity_derated_A": round(req_derated, 1),
86 "ambient_C": ambient_c, "ccc": ccc, "temp_factor90": tf, "fill_factor": ff,
87 "ampacity_gauge": awg, "ampacity_75C_A": amp_term,
88 "ampacity_derated90_A": round(amp_derated, 1),
89 "final_gauge_AWG": final, "gauge_driver": driver,
90 "vdrop_pct": round(vd_pct, 3), "vdrop_V": round(vd_v, 3),
91 "target_pct": target_pct,
92 "ocpd_A": ocpd, "ocpd_note": ocpd_note, "egc_AWG": egc,
93 }
94 return res
95
96
97def report(r):
98 result(r["run"], f"{r['current_A']} A cont", "",
99 f"{r['mode']} basis")
100 result(" req ampacity (term/derated)",
101 f"{r['req_ampacity_term_A']} / {r['req_ampacity_derated_A']}", "A",
102 f"310.15(B) Tf={r['temp_factor90']} x 310.15(C) Ff={r['fill_factor']} @ {r['ambient_C']}C, {r['ccc']}CCC")
103 result(" ampacity-min gauge", f"{r['ampacity_gauge']} ({r['ampacity_75C_A']}A@75C)")
104 result(" FINAL gauge", f"{r['final_gauge_AWG']} Cu", "", f"driver: {r['gauge_driver']}")
105 result(" voltage drop", f"{r['vdrop_pct']}% ({r['vdrop_V']} V)", "",
106 f"target <= {r['target_pct']}% ({'PASS' if r['vdrop_pct']<=r['target_pct'] else 'FAIL'}) [Ch.9 T8]")
107 if r["ocpd_A"]:
108 result(" OCPD / EGC", f"{r['ocpd_A']} A / {r['egc_AWG']} AWG Cu",
109 "", f"240.6 / 250.122 ({r['ocpd_note']})")
110
111
112def phase2_conductors(cfg):
113 """Final-state conductors: EG4 18kPV (12 kW AC), full 31-panel pallet (4 strings),
114 2x Docan S3 bank on a DC busbar. PV homeruns, AC feeder, per-pack + bank battery cables."""
115 banner("03 CONDUCTORS [PHASE 2 — EG4 18kPV 12kW AC, full pallet, 2-pack bank]")
116 s01 = load_result("01_string_phase2")
117
118 isc = require(cfg, "panel.isc_a"); imp = require(cfg, "panel.imp_a")
119 pv_vref = s01["pv_vref_worst_V"] # lowest-Vmp string (7S) -> worst Vdrop%
120 n_strings = s01["n_strings"] # 4 homeruns total
121 ccc_pv = 2 * n_strings # both polarities of every string in the trench
122 ac_w = require(cfg, "inverter.ac_continuous_w") # 12000
123 ac_i = require(cfg, "inverter.ac_cont_a") # 50 (datasheet max output current)
124 ac_v = 240.0
125 eff = require(cfg, "inverter.discharge_eff") # 0.94
126 vnom = require(cfg, "battery.nominal_v") # 51.2
127 inv_dis = require(cfg, "inverter.batt_max_discharge_a") # 250
128 npack = int(require(cfg, "battery.pack_count")) # 2
129 runs = cfg["runs_ft"]; tgt = cfg["targets"]
130
131 i_bank_demand = ac_w / eff / vnom # 12 kW draw from the bank
132 i_bank = min(i_bank_demand, inv_dis) # capped at the inverter's 250 A limit
133 i_pack = i_bank / npack # per pack
134
135 result("AC output @12kW", round(ac_i, 1), "A", "datasheet max output 50 A @240V")
136 result("bank discharge @12kW", f"{i_bank:.0f}", "A",
137 f"{i_bank_demand:.0f}A demand capped at inverter {inv_dis}A; /{npack} packs = {i_pack:.0f}A/pack")
138 result("PV homeruns", f"{n_strings} strings -> {ccc_pv} CCC", "", "one homerun per string, no combiner")
139 print()
140
141 results = {}
142
143 # 1) PV string homerun — worst-case (shortest=lowest-Vmp) string; 4 strings share the trench
144 r_pv = size_run("PV string (array->18kPV input, per string)", mode="pv",
145 current=imp, vref=pv_vref, length_ft=runs["combiner_to_inverter"],
146 target_pct=tgt["vdrop_dc_pct_max"], ambient_c=40, ccc=ccc_pv,
147 isc=isc, set_ocpd=False)
148 report(r_pv)
149 sweep = {}
150 for L in cfg.get("dc_run_sweep_ft", [runs["combiner_to_inverter"]]):
151 p, _ = vdrop_pct(r_pv["final_gauge_AWG"], L, imp, pv_vref)
152 sweep[L] = round(p, 3)
153 result(" DC Vdrop sweep 150/200/250 ft",
154 " / ".join(f"{L}ft:{p}%" for L, p in sweep.items()), "",
155 f"{r_pv['final_gauge_AWG']} Cu, {ccc_pv} CCC in trench (0.70 fill)")
156 # 690.9(A) source fusing check: MPPT1 parallels 2 strings -> backfeed from the ONE other
157 # string = 1.25*Isc; if <= module series fuse, no source OCPD required.
158 backfeed = round(1.25 * isc, 1); mod_fuse = require(cfg, "panel.series_fuse_a")
159 result(" 690.9(A) source fusing", "NOT required", "",
160 f"max parallel backfeed 1.25xIsc={backfeed}A <= module {mod_fuse}A series fuse "
161 f"(MPPT1=2 strings; 3+ would need fuses)")
162 r_pv["vdrop_sweep_pct"] = sweep; r_pv["n_strings"] = n_strings
163 r_pv["source_fuse_required"] = False; r_pv["parallel_backfeed_A"] = backfeed
164 results["pv_string"] = r_pv
165 print()
166
167 # 2) AC output 12 kW / 50 A -> subfed main panel
168 r_ac = size_run("AC output (18kPV->main panel)", mode="continuous",
169 current=ac_i, vref=ac_v, length_ft=runs["inverter_to_loads"],
170 target_pct=tgt["vdrop_ac_pct_max"], ambient_c=30, ccc=2)
171 report(r_ac)
172 results["ac_output"] = r_ac
173 print()
174
175 # 3) Battery per-pack (pack -> busbar), one per pack
176 r_pack = size_run("Battery per-pack (pack->busbar)", mode="continuous",
177 current=i_pack, vref=vnom, length_ft=runs["pack_to_busbar"],
178 target_pct=tgt["vdrop_battery_pct_max"], ambient_c=30, ccc=2)
179 report(r_pack)
180 r_pack["count"] = npack
181 results["battery_per_pack"] = r_pack
182 print()
183
184 # 4) Battery bank (busbar -> 18kPV) at the 250 A bank current. OCP is per-pack (Class-T,
185 # finalized in 04); here size the conductor for ampacity + present the practical parallel set.
186 r_bank = size_run("Battery bank (busbar->18kPV)", mode="continuous",
187 current=i_bank, vref=vnom, length_ft=runs["inverter_to_battery"],
188 target_pct=tgt["vdrop_battery_pct_max"], ambient_c=30, ccc=2,
189 set_ocpd=False)
190 report(r_bank)
191 # practical alternative: parallel sets per polarity (flexible vs one stiff 400-kcmil cable)
192 half = i_bank / 2.0
193 vp_2_0, _ = vdrop_pct("2/0", runs["inverter_to_battery"], half, vnom)
194 vp_4_0, _ = vdrop_pct("4/0", runs["inverter_to_battery"], half, vnom)
195 amp_2_0 = 2 * T310_16["2/0"][1]; amp_4_0 = 2 * T310_16["4/0"][1]
196 req_cont = round(i_bank * 1.25, 1)
197 result(" parallel-set alt (2 per polarity)",
198 f"2x2/0={amp_2_0}A (Vd {round(vp_2_0,3)}%) | 2x4/0={amp_4_0}A (Vd {round(vp_4_0,3)}%)", "",
199 f">= {req_cont}A (125%x{i_bank:.0f}); coordinates w/ 2x175A pack fuses (350A aggregate)")
200 r_bank["req_continuous_A"] = req_cont
201 r_bank["parallel_alt"] = {"2x2/0_A": amp_2_0, "2x4/0_A": amp_4_0,
202 "single_min": r_bank["final_gauge_AWG"]}
203 results["battery_bank"] = r_bank
204 print()
205
206 result("bank disconnect", "250 A+ DC, lockable", "", "690.15/706.30/480.7 service isolation")
207 dump_result("03_conductors" + suffix(cfg), results)
208
209
210def main():
211 ap = argparse.ArgumentParser()
212 ap.add_argument("--phase2", action="store_true",
213 help="final state: EG4 18kPV 12kW, full pallet, 2-pack bank")
214 args = ap.parse_args()
215 cfg = load_site(phase2=args.phase2)
216 if is_phase2(cfg):
217 phase2_conductors(cfg)
218 return
219 banner("03 CONDUCTORS (NEC 690.8 ampacity + 310.15 derates + voltage drop)")
220 s01 = load_result("01_string")
221
222 isc = require(cfg, "panel.isc_a")
223 imp = require(cfg, "panel.imp_a")
224 n_series = s01["n_series"]
225 vmp_string = round(n_series * require(cfg, "panel.vmp_v"), 1)
226 ac_w = require(cfg, "inverter.ac_continuous_w")
227 ac_v = 240.0
228 vnom_batt = require(cfg, "battery.nominal_v")
229 eff = require(cfg, "inverter.discharge_eff")
230 runs = cfg["runs_ft"]
231 tgt = cfg["targets"]
232
233 i_batt = ac_w / eff / vnom_batt
234 i_ac = ac_w / ac_v
235 result("PV Imp / Isc", f"{imp} / {isc}", "A")
236 result("string Vmp (DC)", vmp_string, "V", f"{n_series}S")
237 result("battery current @ 6kW", round(i_batt, 1), "A", "ac_w/eff/Vnom")
238 result("AC output current", round(i_ac, 1), "A", "6kW/240V split-phase")
239 print()
240
241 results = {}
242
243 # 1) PV string source/output, array -> inverter (one per MPPT). 2 strings in one
244 # trench conduit -> 4 CCC. Conservative ambient 40C for above-grade segments.
245 dc_len = runs["combiner_to_inverter"]
246 r_pv = size_run("PV string (array->inverter, per MPPT)", mode="pv",
247 current=imp, vref=vmp_string, length_ft=dc_len,
248 target_pct=tgt["vdrop_dc_pct_max"], ambient_c=40, ccc=4,
249 isc=isc, set_ocpd=False)
250 report(r_pv)
251 # DC voltage-drop sweep across owner's stated 150-250 ft range, chosen gauge
252 sweep = {}
253 for L in cfg.get("dc_run_sweep_ft", [dc_len]):
254 p, v = vdrop_pct(r_pv["final_gauge_AWG"], L, imp, vmp_string)
255 sweep[L] = round(p, 3)
256 result(" DC Vdrop sweep 150/200/250 ft",
257 " / ".join(f"{L}ft:{p}%" for L, p in sweep.items()), "",
258 f"gauge {r_pv['final_gauge_AWG']} holds <= {tgt['vdrop_dc_pct_max']}%")
259 r_pv["vdrop_sweep_pct"] = sweep
260 results["pv_string"] = r_pv
261 print()
262
263 # 2) Battery -> inverter (high current, short). Indoor 30C, 2 CCC.
264 r_batt = size_run("Battery <-> inverter", mode="continuous",
265 current=i_batt, vref=vnom_batt, length_ft=runs["inverter_to_battery"],
266 target_pct=tgt["vdrop_battery_pct_max"], ambient_c=30, ccc=2)
267 report(r_batt)
268 # recommended upsize for low loss / margin
269 up = AWG_ORDER[AWG_ORDER.index(r_batt["final_gauge_AWG"]) + 2]
270 up_pct, _ = vdrop_pct(up, runs["inverter_to_battery"], i_batt, vnom_batt)
271 result(" recommended upsize", f"{up} Cu", "", f"Vdrop {round(up_pct,3)}% (margin + low loss)")
272 r_batt["recommended_upsize_AWG"] = up
273 results["battery"] = r_batt
274 print()
275
276 # 3) AC output -> subfed main panel. Indoor 30C, 2 CCC (L1/L2).
277 r_ac = size_run("AC output (inverter->main panel)", mode="continuous",
278 current=i_ac, vref=ac_v, length_ft=runs["inverter_to_loads"],
279 target_pct=tgt["vdrop_ac_pct_max"], ambient_c=30, ccc=2)
280 report(r_ac)
281 results["ac_output"] = r_ac
282 print()
283
284 # 4) Battery Class-T fuse coordination (size in 04; here confirm cable >= fuse)
285 batt_ocpd = r_batt["ocpd_A"]
286 cable_amp = T310_16[r_batt["final_gauge_AWG"]][1]
287 result("Battery Class-T fuse (prelim)", f"{batt_ocpd} A",
288 "", f"<= cable {r_batt['final_gauge_AWG']} ampacity {cable_amp}A "
289 f"({'OK' if batt_ocpd<=cable_amp else 'UPSIZE CABLE'}); final in 04_battery")
290
291 dump_result("03_conductors", results)
292
293
294if __name__ == "__main__":
295 main()
scripts/04_battery.py +235 -0
……@@ -0,0 +1,235 @@
1"""04 — Battery discharge / C-rate / runtime + Class-T fuse (NEC 240.6 / 690.71 / 480).
2
3Confirms that at full AC output the battery current is within EVERY limit (inverter,
4JK-BMS trip, EVE cell-honest), checks the surge transient, computes C-rate + runtime,
5and finalizes the Class-T fuse coordinated with the cable from 03.
6
7Run: ~/.venvs/prsm-electrical/bin/python scripts/04_battery.py
8"""
9import argparse
10from common import (load_site, require, get, banner, result, dump_result, load_result,
11 is_phase2, suffix)
12from nec_tables import std_ocpd_at_least, T310_16
13
14
15def phase2_battery(cfg):
16 """Final-state 2x Docan S3 bank on the EG4 18kPV (12 kW / 250 A bank discharge).
17 The bank current splits across packs; per-pack must clear the JK-BMS/EVE limits, and
18 the inverter's 250 A cap is the binding bank limit. Per-pack Class-T is primary OCP."""
19 banner("04 BATTERY [PHASE 2 — 2x Docan S3 bank, EG4 18kPV 12kW]")
20 cond = load_result("03_conductors_phase2")
21 pack_cable = cond["battery_per_pack"]
22 bank_cable = cond["battery_bank"]
23
24 vnom = require(cfg, "battery.nominal_v")
25 cap_ah = require(cfg, "battery.capacity_ah")
26 usable_kwh = require(cfg, "battery.usable_kwh")
27 dod = require(cfg, "battery.dod_design")
28 npack = int(require(cfg, "battery.pack_count"))
29 ac_w = require(cfg, "inverter.ac_continuous_w")
30 surge_nopv = require(cfg, "inverter.ac_surge_w_no_pv_10min")
31 surge_pv = require(cfg, "inverter.ac_surge_w_with_pv_5min")
32 eff = require(cfg, "inverter.discharge_eff")
33 inv_dis = require(cfg, "inverter.batt_max_discharge_a")
34 inv_chg = require(cfg, "inverter.batt_max_charge_a")
35 bms_trip = require(cfg, "battery.bms_discharge_ocp_a")
36 bms_delay = require(cfg, "battery.bms_ocp_delay_s")
37 bms_sc = require(cfg, "battery.bms_short_circuit_a")
38 bms_market = require(cfg, "battery.bms_continuous_a")
39 cell_cont = require(cfg, "battery.cell_continuous_a")
40
41 i_bank_demand = ac_w / eff / vnom
42 i_bank = min(i_bank_demand, inv_dis)
43 i_pack = i_bank / npack
44 result("inverter AC continuous", ac_w, "W", "EG4 18kPV @240V")
45 result("bank discharge @12kW", round(i_bank, 1), "A",
46 f"{i_bank_demand:.1f}A demand capped at inverter {inv_dis}A bank limit")
47 result("per-pack discharge", round(i_pack, 1), "A", f"bank / {npack} packs")
48
49 print("\n Bank-level limit (the inverter cap is binding at 12 kW):")
50 result(" vs inverter max discharge", f"{i_bank:.1f} / {inv_dis}", "A",
51 f"{'PASS' if i_bank <= inv_dis else 'FAIL'} (headroom {inv_dis-i_bank:.1f}A)")
52 result(" 2-pack combined BMS / cell", f"{npack*bms_trip} / {npack*cell_cont}", "A",
53 f"both > inverter {inv_dis}A -> the bank is NOT the binding limit (inverter is)")
54
55 print("\n Per-pack limit stack (each pack at the split current must clear ALL):")
56 limits = [("JK-BMS OCP trip (300s)", bms_trip),
57 ("EVE cell-honest (0.5P)", cell_cont),
58 ("JK-BMS marketed max", bms_market)]
59 pack_binding = min(limits, key=lambda x: x[1])
60 for name, lim in limits:
61 result(f" vs {name}", f"{i_pack:.1f} / {lim:.0f}", "A",
62 f"{'PASS' if i_pack <= lim else 'FAIL'} ({100*i_pack/lim:.0f}%)")
63 result(" per-pack binding", f"{pack_binding[0]} = {pack_binding[1]:.0f} A", "",
64 f"headroom {pack_binding[1]-i_pack:.0f}A ({100*(pack_binding[1]-i_pack)/pack_binding[1]:.0f}%)")
65
66 c_dis = i_pack / cap_ah
67 c_chg = (inv_chg / npack) / cap_ah
68 result("per-pack discharge C-rate", f"{c_dis:.2f}C", "", f"{i_pack:.1f}A / {cap_ah}Ah (<=0.5C OK)")
69 result("per-pack charge C-rate", f"{c_chg:.2f}C", "", f"{inv_chg/npack:.0f}A/pack at the {inv_chg}A bank charge max")
70
71 print("\n Surge transient (18kPV peak is MINUTES — check per-pack vs the 150A/300s BMS OCP):")
72 i_surge_bank = surge_nopv / eff / vnom
73 i_surge_pack = i_surge_bank / npack
74 result(" battery-only surge (w/o PV, 10min)", f"{surge_nopv}W -> bank {i_surge_bank:.0f}A",
75 "", f"inverter caps draw at {inv_dis}A")
76 result(" per-pack surge current", round(i_surge_pack, 1), "A",
77 f"vs BMS OCP {bms_trip}A/{bms_delay}s: {'UNDER -> no trip' if i_surge_pack < bms_trip else 'OVER -> would trip'}")
78 result(" w/ PV peak (5min)", f"{surge_pv}W", "", "PV contributes -> battery share <= the w/o-PV case")
79 surge_note = (f"{npack}-pack split keeps per-pack surge {i_surge_pack:.0f}A under the "
80 f"{bms_trip}A/{bms_delay}s BMS OCP even over the 18kPV's 10-min peak window "
81 f"(the single-pack Phase-1 case relied on the 3.5s 6000XP surge being too brief).")
82
83 load = load_result("08_load_actual")
84 bank_kwh = usable_kwh * npack
85 bank_dod = bank_kwh * dod
86 avg = load["daily_avg_kwh"]; peak = load["august_peak_kwh_day"]
87 print(f"\n Autonomy ({npack} packs = {bank_kwh:.1f} kWh nameplate / {bank_dod:.1f} kWh @ {dod*100:.0f}% DoD):")
88 result(" runtime @ 12kW (100%/80%)", f"{bank_kwh/12:.2f} / {bank_dod/12:.2f}", "h")
89 result(" days @ avg load", round(bank_dod/avg, 2), "days", f"{avg} kWh/day (Hardwick)")
90 result(" days @ Aug peak", round(bank_dod/peak, 2), "days", f"{peak} kWh/day; generator backfills deeper")
91
92 print("\n Class-T fusing (per-pack = primary OCP; NEC 240.6 / 690.9 / 480.9):")
93 req_pack = i_pack * 1.25
94 pca = pack_cable["final_gauge_AWG"]; pamp = T310_16[pca][1]
95 pack_fuse = std_ocpd_at_least(req_pack)
96 ok_pack = pack_fuse <= pamp
97 result(" per-pack required (125% x cont)", round(req_pack, 1), "A")
98 result(" per-pack Class-T", f"{pack_fuse} A", "",
99 f"<= {pca} cable {pamp}A ({'OK' if ok_pack else 'UPSIZE CABLE'}); DC-rated 20kAIC")
100 result(" bank aggregate (Npack x pack fuse)", f"{npack*pack_fuse} A", "",
101 f"bank conductor must carry this: 2x2/0=350A or 500kcmil=380A coordinate")
102 result(" fuse vs BMS SC trip", f"{pack_fuse}A << {bms_sc}A SC / 20kAIC", "",
103 "layered: per-pack BMS protects cells, Class-T protects each pack cable + fault current")
104
105 verdict = i_bank <= inv_dis and i_pack <= pack_binding[1] and ok_pack
106 result("OVERALL battery verdict", "PASS" if verdict else "REVIEW")
107
108 dump_result("04_battery" + suffix(cfg), {
109 "phase": "phase2", "pack_count": npack,
110 "bank_discharge_A_12kW": round(i_bank, 1), "bank_demand_A": round(i_bank_demand, 1),
111 "per_pack_discharge_A": round(i_pack, 1),
112 "bank_limit": {"name": "inverter max discharge", "A": inv_dis,
113 "headroom_A": round(inv_dis - i_bank, 1)},
114 "per_pack_limits_A": {n: round(l, 0) for n, l in limits},
115 "per_pack_binding": {"name": pack_binding[0], "A": round(pack_binding[1], 0),
116 "headroom_A": round(pack_binding[1] - i_pack, 1)},
117 "per_pack_discharge_C": round(c_dis, 3), "per_pack_charge_C": round(c_chg, 3),
118 "surge_bank_A": round(i_surge_bank, 1), "surge_per_pack_A": round(i_surge_pack, 1),
119 "surge_note": surge_note,
120 "bank_usable_kwh": round(bank_kwh, 2), "bank_usable_kwh_80dod": round(bank_dod, 2),
121 "runtime_12kw_80dod_h": round(bank_dod/12, 2),
122 "days_at_avg_load": round(bank_dod/avg, 2), "days_at_aug_peak": round(bank_dod/peak, 2),
123 "per_pack_classT_fuse_A": pack_fuse, "per_pack_cable_AWG": pca,
124 "per_pack_cable_ampacity_A": pamp, "bank_aggregate_fuse_A": npack*pack_fuse,
125 "bank_cable_single_AWG": bank_cable["final_gauge_AWG"],
126 "fuse_cable_ok": ok_pack, "verdict": "PASS" if verdict else "REVIEW",
127 "comms_note": ("2 packs: JK-BMS master/slave, one master -> 18kPV via CAN (single link). "
128 "18kPV native closed-loop is EG4-48V; Docan/JK via a CAN profile — confirm on "
129 "arrival. Open-loop fallback fully viable (no battery-life penalty)."),
130 })
131
132
133def main():
134 ap = argparse.ArgumentParser()
135 ap.add_argument("--phase2", action="store_true",
136 help="final state: 2x Docan S3 bank on the EG4 18kPV")
137 args = ap.parse_args()
138 cfg = load_site(phase2=args.phase2)
139 if is_phase2(cfg):
140 phase2_battery(cfg)
141 return
142 banner("04 BATTERY (discharge current, C-rate, runtime, Class-T fuse)")
143 cond = load_result("03_conductors")["battery"]
144
145 vnom = require(cfg, "battery.nominal_v")
146 cap_ah = require(cfg, "battery.capacity_ah")
147 usable_kwh = require(cfg, "battery.usable_kwh")
148 dod = require(cfg, "battery.dod_design")
149 ac_w = require(cfg, "inverter.ac_continuous_w")
150 surge_w = require(cfg, "inverter.ac_surge_w")
151 eff = require(cfg, "inverter.discharge_eff")
152
153 inv_dis = require(cfg, "inverter.batt_max_discharge_a")
154 inv_chg = require(cfg, "inverter.batt_max_charge_a")
155 bms_trip = require(cfg, "battery.bms_discharge_ocp_a")
156 bms_trip_delay = require(cfg, "battery.bms_ocp_delay_s")
157 bms_sc = require(cfg, "battery.bms_short_circuit_a")
158 bms_market = require(cfg, "battery.bms_continuous_a")
159 cell_cont = require(cfg, "battery.cell_continuous_a")
160
161 # --- continuous discharge @ full AC ---
162 i_dis = ac_w / eff / vnom
163 result("inverter AC continuous", ac_w, "W")
164 result("battery discharge current", round(i_dis, 1), "A", "ac_w/eff/Vnom @ 6kW")
165 print("\n Limit stack (continuous discharge must clear ALL):")
166 limits = [("inverter max discharge", inv_dis),
167 ("JK-BMS OCP trip (300s)", bms_trip),
168 ("EVE cell-honest (0.5P)", cell_cont),
169 ("JK-BMS marketed max", bms_market)]
170 binding = min(limits, key=lambda x: x[1])
171 for name, lim in limits:
172 result(f" vs {name}", f"{round(i_dis,1)} / {lim}", "A",
173 f"{'PASS' if i_dis <= lim else 'FAIL'} ({100*i_dis/lim:.0f}%)")
174 result("binding limit", f"{binding[0]} = {binding[1]} A", "",
175 f"headroom {binding[1]-i_dis:.0f} A ({100*(binding[1]-i_dis)/binding[1]:.0f}%)")
176
177 # --- C-rate ---
178 c_dis = i_dis / cap_ah
179 c_chg_pv = inv_chg / cap_ah
180 result("discharge C-rate", f"{c_dis:.2f}C", "", f"{round(i_dis,1)}A / {cap_ah}Ah (<=0.5C OK)")
181 result("charge C-rate (PV max)", f"{c_chg_pv:.2f}C", "", f"{inv_chg}A / {cap_ah}Ah")
182
183 # --- surge transient ---
184 i_surge = surge_w / eff / vnom
185 print("\n Surge transient (inverter peak ~3.5 s):")
186 result(" battery surge current", round(i_surge, 1), "A", f"{surge_w}W/eff/Vnom")
187 result(" vs JK-BMS short-circuit", f"{round(i_surge,1)} / {bms_sc}", "A",
188 f"{'under SC trip' if i_surge < bms_sc else 'OVER'} (3.5s << relevant)")
189 result(" vs JK-BMS OCP trip", f"{round(i_surge,1)} > {bms_trip}", "A",
190 f"but OCP delay {bms_trip_delay}s >> 3.5s -> no nuisance trip")
191 surge_note = ("transient only; one pack cannot sustain >6kW continuously — "
192 "Phase-2 second pack relieves surge headroom")
193
194 # --- runtime sanity ---
195 print("\n Runtime (sanity — winter off-grid still needs the generator):")
196 rt_full = usable_kwh / (ac_w / 1000.0)
197 rt_full_dod = usable_kwh * dod / (ac_w / 1000.0)
198 rt_avg_dod = usable_kwh * dod / 1.5
199 result(" @ full 6kW (100% / 80% DoD)", f"{rt_full:.2f} / {rt_full_dod:.2f}", "h")
200 result(" @ 1.5kW avg load (80% DoD)", f"{rt_avg_dod:.1f}", "h")
201
202 # --- Class-T fuse final ---
203 print("\n Class-T fuse selection (NEC 240.6 / 690.9 / 480.9):")
204 req = i_dis * 1.25
205 cable_awg = cond["final_gauge_AWG"]
206 cable_amp = T310_16[cable_awg][1]
207 fuse = std_ocpd_at_least(req)
208 # fuse must be <= cable ampacity
209 ok_cable = fuse <= cable_amp
210 result(" required (125% x cont)", round(req, 1), "A", "240.6 next size up")
211 result(" Class-T fuse", f"{fuse} A", "", "DC-rated, 20 kAIC")
212 result(" cable coordination", f"{fuse}A <= {cable_awg} ampacity {cable_amp}A",
213 "", "OK" if ok_cable else "UPSIZE CABLE")
214 result(" fuse vs BMS SC trip", f"{fuse}A < {bms_sc}A SC / interrupt 20kAIC",
215 "", "layered: BMS protects cells, fuse protects cable + fault current")
216
217 verdict = i_dis <= binding[1] and ok_cable
218 result("OVERALL battery verdict", "PASS" if verdict else "REVIEW")
219
220 dump_result("04_battery", {
221 "discharge_A_6kW": round(i_dis, 1),
222 "limits_A": {n: l for n, l in limits},
223 "binding_limit": {"name": binding[0], "A": binding[1],
224 "headroom_A": round(binding[1] - i_dis, 1)},
225 "discharge_C": round(c_dis, 3), "charge_C_pv": round(c_chg_pv, 3),
226 "surge_A": round(i_surge, 1), "surge_note": surge_note,
227 "runtime_full_h": round(rt_full, 2), "runtime_full_80dod_h": round(rt_full_dod, 2),
228 "runtime_1p5kw_80dod_h": round(rt_avg_dod, 1),
229 "classT_fuse_A": fuse, "cable_AWG": cable_awg, "cable_ampacity_A": cable_amp,
230 "fuse_cable_ok": ok_cable, "verdict": "PASS" if verdict else "REVIEW",
231 })
232
233
234if __name__ == "__main__":
235 main()
scripts/05_nec_checklist.py +225 -0
……@@ -0,0 +1,225 @@
1"""05 — NEC Article 690 + 480/706/710 checklist with COMPUTED evidence.
2
3Pulls the load-bearing numbers from scripts 01/03/04 results so each pass/fail
4cites a computed value, not an estimate. Off-grid stand-alone, NEC 2023.
5
6Run (after 01/03/04): ~/.venvs/prsm-electrical/bin/python scripts/05_nec_checklist.py
7"""
8import argparse
9from common import load_site, require, banner, dump_result, load_result, is_phase2, suffix
10
11
12def render(checks, nec):
13 width = max(len(c["section"]) for c in checks)
14 print(f"\n {'SECTION':<{width}} {'STATUS':<11} TOPIC")
15 print(" " + "-" * 70)
16 for c in checks:
17 print(f" {c['section']:<{width}} {c['status']:<11} {c['topic']}")
18 print(f" {'':<{width}} {'':<11} -> {c['evidence']}")
19 print("\n " + "-" * 70)
20 summary = {}
21 for c in checks:
22 summary[c["status"]] = summary.get(c["status"], 0) + 1
23 print(" Summary: " + ", ".join(f"{k}={v}" for k, v in sorted(summary.items())))
24 return summary
25
26
27def phase2_checklist(cfg):
28 banner("05 NEC 690 + 480/705/706/710 CHECKLIST [PHASE 2 — EG4 18kPV, 2-pack ESS]")
29 s01 = load_result("01_string_phase2")
30 s03 = load_result("03_conductors_phase2")
31 s04 = load_result("04_battery_phase2")
32 pv = s03["pv_string"]; ac = s03["ac_output"]
33 pk = s03["battery_per_pack"]; bk = s03["battery_bank"]
34 nec = cfg["site"]["nec_cycle"]
35 npack = int(require(cfg, "battery.pack_count"))
36 checks = []
37
38 def add(sec, topic, status, evidence):
39 checks.append({"section": sec, "topic": topic, "status": status, "evidence": evidence})
40
41 add("690.7", "Max system voltage (cold Voc)", "PASS",
42 f"Longest string {s01['max_string_series']}S cold Voc {s01['string_cold_voc_V']} V "
43 f"<= {s01['inv_design_ceiling_V']} V MPPT-fault / {s01['inv_abs_ceiling_V']} V abs "
44 f"(margin {s01['margin_to_design_V']} V to fault, {s01['margin_to_abs_V']} V to abs). "
45 f"Tmin {s01['tmin_C']}C; analytic+pvlib+vocmax+independent agent agree. 9S=553V REJECTED (>550).")
46 add("690.8(A)", "Max circuit current", "PASS",
47 f"Per string Isc x1.25 = {round(s01['string_isc_A']*1.25,1)} A (each string a dedicated "
48 f"homerun). MPPT1 internally combines 2 strings = {round(2*s01['string_isc_A'],1)} A actual "
49 f"<= 31 A MPPT1 Isc rating; MPPT2/3 single string <= 19 A.")
50 add("690.8(B)", "Conductor ampacity after 310.15 derates", "PASS",
51 f"PV {pv['final_gauge_AWG']}Cu derated {pv['ampacity_derated90_A']}A >= {pv['req_ampacity_derated_A']}A "
52 f"(8 CCC, 0.70 fill); AC {ac['final_gauge_AWG']}Cu; per-pack {pk['final_gauge_AWG']}Cu; "
53 f"bank {bk['final_gauge_AWG']}kcmil (or 2x2/0 / 2x4/0).")
54 add("690.9 / 690.9(A) Ex", "PV source-circuit overcurrent (fusing)", "PASS",
55 f"NOT required: MPPT1 parallels only 2 strings -> max backfeed 1.25xIsc="
56 f"{pv['parallel_backfeed_A']}A <= module {require(cfg,'panel.series_fuse_a')}A series fuse "
57 f"(3+ parallel strings would require fuses). MPPT2/3 single string. No combiner.")
58 add("690.9 / 240 / 480.9", "Battery overcurrent (per-pack Class-T)", "PASS",
59 f"{npack}x {s04['per_pack_classT_fuse_A']}A Class-T (DC, 20kAIC), one per pack, "
60 f">= 125% x {s04['per_pack_discharge_A']}A/pack; <= {pk['final_gauge_AWG']} cable "
61 f"{s04['per_pack_cable_ampacity_A']}A. Bank aggregate {s04['bank_aggregate_fuse_A']}A "
62 f"coordinated with the bank conductor.")
63 add("690.9 / 710.15", "Inverter AC output overcurrent", "PASS",
64 f"{ac['ocpd_A']}A 2-pole >= 125% x {ac['current_A']}A; protects {ac['final_gauge_AWG']}Cu "
65 f"(240.4(D)); EGC {ac['egc_AWG']}AWG.")
66 add("690.11", "DC arc-fault (AFCI)", "PASS",
67 "EG4 18kPV integrated PV AFCI (690.11 / UL1699B, per datasheet).")
68 add("690.12", "Rapid shutdown", "VERIFY-AHJ",
69 f"18kPV has an integrated RSD initiator (datasheet cites NEC 2020:690.12). Detached "
70 f"ground-mount (not on a building) is likely exempt, but PV/DC conductors enter the dwelling "
71 f"-> confirm the VT DPS inspector's stance for NEC {nec}. Initiator present if required.")
72 add("690.13 / 690.15", "PV + equipment disconnects", "PASS",
73 f"18kPV integrated PV disconnect; add an external load-break DC/PV disconnect for service. "
74 f"Battery: {npack} per-pack disconnects + a {s04['bank_discharge_A_12kW']:.0f}A-class bank "
75 f"disconnect within sight of the inverter.")
76 add("690.41(B)", "System grounding / GFDI", "PASS",
77 "18kPV integrated PV ground-fault monitoring (690.41(B)) + pole-sensitive leakage-current "
78 "monitor + integrated SPD (per datasheet).")
79 add("690.43 / 690.45", "Equipment grounding & EGC size (250.122)", "PASS",
80 f"EGCs: PV 10AWG (no source OCPD), per-pack {pk['egc_AWG']}AWG ({pk['ocpd_A']}A), "
81 f"AC {ac['egc_AWG']}AWG ({ac['ocpd_A']}A), bank 4AWG (sized to disconnect). Bond all array "
82 f"frames + enclosures + the battery busbar.")
83 add("690.47", "Grounding electrode (array + DC)", "ACTION",
84 "Ground-mount: drive an array grounding electrode (rod), 6AWG Cu GEC bonded to the dwelling "
85 "GES (690.47(A)). Carries forward from Phase 1; verify for the expanded array footprint.")
86 add("690.31", "Wiring methods", "PASS",
87 f"PV in Sched-40 PVC conduit (squirrel/UV, Swarm §16); {pv['final_gauge_AWG']}Cu THWN-2/PV "
88 f"90C. {s01['n_strings']} strings -> split across 2 conduits to relax the 8-CCC fill.")
89 add("705", "Interconnection (utility)", "N/A",
90 "Off-grid, no utility interconnection (no 705.12 backfeed limit). Generator AC-IN to the "
91 "18kPV (200A AC bypass / 90A gen) with the main panel subfed and its main breaker locked "
92 "off (Swarm §17); transfer is internal to the hybrid inverter.")
93 add("706.7 / 706.20", "ESS — multi-pack arrangement & control", "PASS",
94 f"{npack}x Docan S3 (LFP, JK-PB2A16S20P BMS) in parallel on a DC busbar. Each pack has its "
95 f"own BMS + Class-T + disconnect. Bank discharge {s04['bank_discharge_A_12kW']:.0f}A split "
96 f"{s04['per_pack_discharge_A']}A/pack — within the 150A/300s JK OCP (17% headroom) and the "
97 f"157A EVE-cell limit. C-rate {s04['per_pack_discharge_C']}C.")
98 add("706.30 / 480.7", "ESS disconnecting means", "PASS",
99 "Per-pack disconnects + a bank disconnect (lockable, within sight of the ESS); the 18kPV "
100 "battery port is the inverter-side disconnect. BMS opens on cell-level faults.")
101 add("706.31 / 480.9", "ESS overcurrent protection", "PASS",
102 f"Per-pack {s04['per_pack_classT_fuse_A']}A Class-T (20kAIC > pack prospective fault). "
103 f"Layered: JK-BMS (150A/300s OCP, 300A SC) protects cells; Class-T protects each pack cable.")
104 add("706.x / BMS comms", "Multi-pack BMS communications", "VERIFY",
105 "2 packs: JK-BMS master/slave, one master -> 18kPV via CAN (a SINGLE comms link, vs 2 for a "
106 "parallel-6000XP path). 18kPV native closed-loop is EG4-48V; the Docan/JK pack runs via a CAN "
107 "profile -> confirm on arrival. Open-loop fallback fully viable (no battery-life penalty).")
108 add("710.15", "Stand-alone system output", "PASS",
109 f"18kPV 12kW 120/240V split-phase, output {ac['current_A']}A; off-grid, no utility backfeed. "
110 f"Continuous line 8000W/120V leg covers the household peak; surge 13.5kW (w/o PV).")
111 add("690.53/54/56 / 110.21", "Labels & placards", "ACTION",
112 f"Max system voltage {s01['string_cold_voc_V']}V (690.53), inverter output 12kW/{ac['current_A']:.0f}A "
113 f"(690.54), RSD placard if AHJ requires (690.56(C)), DC disconnect + directory, per-pack battery "
114 f"hazard labels. Generate from these computed ratings.")
115 add("NFPA 855 / VT 2025 Fire Code", "ESS fire code (OUT OF SCOPE — GATE)", "FLAG",
116 f"{npack} packs = {round(require(cfg,'battery.usable_kwh')*npack,1)}kWh nameplate. Swarm §4: even "
117 f"2 packs (32kWh) likely crosses the 20kWh residential threshold (3 packs/48kWh definitively) -> "
118 f"detached non-combustible shed >=10ft, UL9540 listing or AHJ hazard-mitigation analysis, + "
119 f"propane-heater combustion-air/ventilation/separation. NOT engineered here — pre-clear with VT "
120 f"DPS in writing before ordering the 2nd pack.")
121 add("Voltage drop (design target)", "DC<=2% / batt<=1% / AC<=2%", "PASS",
122 f"DC {pv['vdrop_pct']}% (150-250ft: {pv.get('vdrop_sweep_pct')}); per-pack {pk['vdrop_pct']}%; "
123 f"bank {bk['vdrop_pct']}%; AC {ac['vdrop_pct']}%. (Informational; not NEC-mandated.)")
124
125 summary = render(checks, nec)
126 dump_result("05_checklist" + suffix(cfg),
127 {"phase": "phase2", "nec_cycle": nec, "checks": checks, "summary": summary})
128
129
130def main():
131 ap = argparse.ArgumentParser()
132 ap.add_argument("--phase2", action="store_true", help="final-state checklist (EG4 18kPV, 2-pack ESS)")
133 args = ap.parse_args()
134 cfg = load_site(phase2=args.phase2)
135 if is_phase2(cfg):
136 phase2_checklist(cfg)
137 return
138 banner("05 NEC 690 + 480/706/710 CHECKLIST (NEC 2023, off-grid)")
139 s01 = load_result("01_string")
140 s03 = load_result("03_conductors")
141 s04 = load_result("04_battery")
142
143 pv = s03["pv_string"]; bat = s03["battery"]; ac = s03["ac_output"]
144 nec = cfg["site"]["nec_cycle"]
145
146 checks = []
147
148 def add(sec, topic, status, evidence):
149 checks.append({"section": sec, "topic": topic, "status": status,
150 "evidence": evidence})
151
152 add("690.7", "Max system voltage (cold Voc)", "PASS",
153 f"{s01['n_series']}S cold Voc {s01['string_cold_voc_V']} V <= {s01['inv_design_ceiling_V']} V "
154 f"design / {s01['inv_abs_ceiling_V']} V abs (margin {s01['margin_to_500_V']} V). "
155 f"Tmin {s01['tmin_C']}C; analytic+pvlib agree.")
156 add("690.8(A)", "Max circuit current (Isc x 1.25)", "PASS",
157 f"PV source max current {round(s01['string_isc_A']*1.25,1)} A (Isc {s01['string_isc_A']} x 1.25).")
158 add("690.8(B)", "Conductor ampacity after 310.15 derates", "PASS",
159 f"PV string {pv['final_gauge_AWG']} Cu: 75C {pv['ampacity_75C_A']}A, derated "
160 f"{pv['ampacity_derated90_A']}A >= req {pv['req_ampacity_derated_A']}A.")
161 add("690.9 / 690.9(A) Ex", "PV source overcurrent (string fusing)", "PASS",
162 "Not required: 1 string per MPPT (no parallel strings), so no source-circuit "
163 "fault current can exceed module 30A series-fuse rating. Each MPPT isolated.")
164 add("690.9 / 240 / 480.9", "Battery overcurrent (Class-T)", "PASS",
165 f"{s04['classT_fuse_A']}A Class-T (DC, 20kAIC) >= 125%x{s04['discharge_A_6kW']}A; "
166 f"<= cable {s04['cable_AWG']} ampacity {s04['cable_ampacity_A']}A.")
167 add("690.9 / 710.15", "Inverter AC output overcurrent", "PASS",
168 f"{ac['ocpd_A']}A 2-pole >= 125% x {ac['current_A']}A; protects {ac['final_gauge_AWG']} Cu (240.4(D)).")
169 add("690.12", "Rapid shutdown", "VERIFY-AHJ",
170 f"Ground-mounted array NOT on a building: 690.12 (NEC {nec}) applies to PV on/in "
171 "buildings. 6000XP has a built-in RSD initiator if AHJ requires it for conductors "
172 "entering the dwelling. Confirm AHJ stance for the detached ground-mount.")
173 add("690.13", "PV disconnecting means", "PASS",
174 "6000XP integrated DC switch per MPPT; add an external load-break PV/DC disconnect "
175 "at the inverter for service isolation.")
176 add("690.15", "Disconnect for equipment", "PASS",
177 "Battery disconnect (switch or the Class-T fused disconnect) within sight of inverter.")
178 add("690.11 / 690.41", "DC arc-fault + system grounding (GFDI)", "PASS",
179 "6000XP integrated PV AFCI (690.11) and PV ground-fault/isolation protection (690.41/690.5).")
180 add("690.43", "Equipment grounding & bonding", "PASS",
181 f"EGCs: PV {pv.get('egc_AWG') or '10'} / battery {bat['egc_AWG']} / AC {ac['egc_AWG']} AWG Cu; "
182 "bond array frames + all enclosures.")
183 add("690.45", "Size of EGC (250.122)", "PASS",
184 f"Battery EGC {bat['egc_AWG']} AWG (OCPD {bat['ocpd_A']}A); AC EGC {ac['egc_AWG']} AWG "
185 f"(OCPD {ac['ocpd_A']}A); PV EGC min 10 AWG (no source OCPD).")
186 add("690.47", "Grounding electrode (array + DC)", "ACTION",
187 "Ground-mount: drive an array grounding electrode (rod) and bond per 690.47(A); "
188 "min 6 AWG Cu GEC, common with the dwelling grounding electrode system.")
189 add("690.31", "Wiring methods", "PASS",
190 f"PV in conduit (Sched-40 PVC, squirrel/UV protection per Swarm §16); {pv['final_gauge_AWG']} Cu PV wire/THWN-2 90C.")
191 add("706.30 / 480.7", "ESS disconnecting means", "PASS",
192 "Battery disconnect + Class-T fuse; lockable; within sight of the ESS.")
193 add("706.31 / 480.9", "ESS overcurrent protection", "PASS",
194 f"{s04['classT_fuse_A']}A Class-T at the battery positive, interrupt 20kAIC > pack fault current.")
195 add("710.15", "Stand-alone system output", "PASS",
196 f"6000XP 6kW 120/240 split-phase; output {ac['current_A']}A; no utility backfeed (off-grid).")
197 add("705", "Interconnection (120% / backfeed)", "N/A",
198 "Off-grid, no utility interconnection. Main panel subfed with main breaker locked off (Swarm §17).")
199 add("690.53/690.54/690.56/110.21", "Labels & placards", "ACTION",
200 "Required: max system voltage (690.53), inverter output rating (690.54), "
201 "rapid-shutdown placard if applicable (690.56(C)), DC disconnect & directory, "
202 "battery hazard label. Generate per the computed ratings.")
203 add("Voltage drop (design target)", "DC<=2% / batt<=1% / AC<=2%", "PASS",
204 f"DC {pv['vdrop_pct']}% (150-250ft: {pv.get('vdrop_sweep_pct')}); "
205 f"battery {bat['vdrop_pct']}%; AC {ac['vdrop_pct']}%. (Informational; not NEC-mandated.)")
206
207 # print
208 width = max(len(c["section"]) for c in checks)
209 npass = sum(1 for c in checks if c["status"] == "PASS")
210 print(f"\n {'SECTION':<{width}} {'STATUS':<11} TOPIC")
211 print(" " + "-" * 70)
212 for c in checks:
213 print(f" {c['section']:<{width}} {c['status']:<11} {c['topic']}")
214 print(f" {'':<{width}} {'':<11} -> {c['evidence']}")
215 print("\n " + "-" * 70)
216 summary = {}
217 for c in checks:
218 summary[c["status"]] = summary.get(c["status"], 0) + 1
219 print(f" Summary: " + ", ".join(f"{k}={v}" for k, v in sorted(summary.items())))
220
221 dump_result("05_checklist", {"nec_cycle": nec, "checks": checks, "summary": summary})
222
223
224if __name__ == "__main__":
225 main()
scripts/06_schematics.py +480 -0
……@@ -0,0 +1,480 @@
1"""06 — Schematic renderings (schemdraw -> PNG + SVG into artifacts/).
2
3Three drawings, every rating pulled from the COMPUTED result JSONs (01/03/04) so
4the gauge/fuse on the page equals what the calc produced:
5 sld.(png|svg) system single-line
6 dc-strings.(png|svg) module-level string grouping across the 2 MPPTs
7 battery-wiring.(png|svg) 6000XP <-> Docan S3 with Class-T fuse + BMS comms
8
9Run (after 01/03/04): ~/.venvs/prsm-electrical/bin/python scripts/06_schematics.py
10"""
11import argparse
12import pathlib
13import schemdraw
14from schemdraw import elements as elm
15from common import load_site, banner, load_result, require, is_phase2
16
17schemdraw.use("matplotlib")
18ART = pathlib.Path(__file__).resolve().parent.parent / "artifacts"
19# Owner selected PATH A (2x 6000XP) on 2026-06-03 -> it is the primary `phase2/` deliverable.
20# Path B (18kPV) is retained as the documented alternative in `phase2-pathB/`.
21ART_P2 = ART / "phase2-pathB" # Path B = retained alternative
22CAP = "PRSM OFF-GRID PV · NEK Vermont · NEC 2023 · ratings trace to scripts 01/03/04"
23CAP_P2 = "PRSM OFF-GRID PV — PATH B / 18kPV (RETAINED ALTERNATIVE) · NEK Vermont · NEC 2023 · ratings trace to scripts 01/03/04"
24
25
26def save(d, name, art=ART):
27 art.mkdir(parents=True, exist_ok=True)
28 d.save(str(art / f"{name}.svg"))
29 d.save(str(art / f"{name}.png"), dpi=200)
30 print(f" rendered {art.name}/{name}.svg + .png")
31
32
33def title(d, text, xy, size=13):
34 d += elm.Label().label(text, fontsize=size).at(xy)
35
36
37def sld(cfg, s01, s03, s04):
38 pv, bat, ac = s03["pv_string"], s03["battery"], s03["ac_output"]
39 ukwh = require(cfg, "battery.usable_kwh")
40 d = schemdraw.Drawing()
41 d.config(fontsize=10, unit=2.6)
42
43 # --- main spine ---
44 d += elm.Solar().right().label(
45 f"PV ARRAY\n14×575W · 2×{s01['n_series']}S\n{s01['array_dc_W']}W DC\n"
46 f"cold Voc {s01['string_cold_voc_V']}V", loc="bottom")
47 d += elm.Line().right().length(2.4).label(
48 f"{pv['final_gauge_AWG']}AWG·{pv['length_ft']}ft\n{pv['vdrop_pct']}%", loc="top")
49 d += elm.SwitchDpst().right().label("DC\ndisc", loc="bottom")
50 d += elm.Line().right().length(1.0)
51 inv = d.add(elm.Ic(pins=[
52 elm.IcPin(name="PV", side="left"),
53 elm.IcPin(name="AC", side="right"),
54 elm.IcPin(name="BATP", side="bottom", slot="1/4"),
55 elm.IcPin(name="GND", side="bottom", slot="4/4"),
56 ], w=5.2, h=4.4).label(
57 "EG4 6000XP\n6kW 120/240V\ndual MPPT\nRSD·AFCI·GFDI", loc="center", fontsize=10
58 ).anchor("PV"))
59
60 # --- AC branch ---
61 d += elm.Line().right().length(1.6).at(inv.AC)
62 d += elm.SwitchDpst().right().label(f"{ac['ocpd_A']}A\n2-pole", loc="top")
63 d += elm.Line().right().length(0.6)
64 d += elm.RBox(w=2.8, h=2.2).label(
65 f"MAIN PANEL\nsubfed\n{ac['final_gauge_AWG']}AWG·{ac['length_ft']}ft", fontsize=9)
66
67 # --- battery branch (down from BATP, far-left bottom pin) ---
68 d += elm.Line().down().length(1.4).at(inv.BATP)
69 d += elm.Fuse().down().label(f"{s04['classT_fuse_A']}A Class-T", loc="left")
70 d += elm.Line().down().length(0.5)
71 d += elm.SwitchDpst().down().label("batt disc", loc="left")
72 d += elm.Line().down().length(0.5)
73 d += elm.Battery().down().label(
74 f"Docan S3\n51.2V {ukwh}kWh\n{bat['final_gauge_AWG']}Cu·{bat['length_ft']}ft·{bat['vdrop_pct']}%",
75 loc="left")
76
77 # --- ground branch (down from GND, far-right bottom pin) ---
78 d += elm.Line().down().length(1.2).at(inv.GND)
79 d += elm.Ground().label("GEC\n6AWG\n690.47", loc="right", fontsize=8)
80
81 cx, cy = inv.center
82 title(d, "SINGLE-LINE DIAGRAM — PRSM OFF-GRID PV", (cx, cy + 4.2))
83 d += elm.Label().label(CAP, fontsize=8).at((cx, cy + 3.3))
84 save(d, "sld")
85
86
87def dc_strings(cfg, s01, s03):
88 pv = s03["pv_string"]
89 voc_cold = s01["string_cold_voc_V"]
90 vmp = round(s01["n_series"] * require(cfg, "panel.vmp_v"))
91 n = s01["n_series"]
92 d = schemdraw.Drawing()
93 d.config(fontsize=10, unit=1.15)
94 for row, (yy, mppt) in enumerate([(0.0, "MPPT1"), (-3.0, "MPPT2")]):
95 d += elm.Label().label(f"String {row+1}\n(+)", fontsize=9).at((-1.5, yy))
96 d += elm.Solar().right().at((0, yy))
97 for _ in range(n - 1):
98 d += elm.Solar().right()
99 d += elm.Line().right().length(0.9).label(f"{pv['final_gauge_AWG']}AWG", loc="top", fontsize=8)
100 d += elm.RBox(w=1.6, h=1.5).label(f"{mppt}\nEG4", fontsize=9)
101 title(d, f"DC STRING WIRING — 2 strings × {n}S across MPPT1 / MPPT2", (4.5, 1.9))
102 d += elm.Label().label(
103 f"Each string: {n}×Waaree 575W series · Vmp≈{vmp}V · cold Voc {voc_cold}V "
104 f"(≤480V design / 500V abs)\nNO source-circuit fuse — one string per MPPT (690.9(A) Exc.) "
105 f"· MAX 7 modules/string (8S = 491V, unsafe)", fontsize=8).at((4.5, -5.2))
106 save(d, "dc-strings")
107
108
109def battery_wiring(cfg, s03, s04):
110 bat = s03["battery"]
111 ukwh = require(cfg, "battery.usable_kwh")
112 d = schemdraw.Drawing()
113 d.config(fontsize=10, unit=2.4)
114 inv = d.add(elm.Ic(pins=[
115 elm.IcPin(name="BATP", side="right", slot="3/3"),
116 elm.IcPin(name="BATN", side="right", slot="1/3"),
117 elm.IcPin(name="COM", side="bottom"),
118 ], w=3.0, h=3.2).label("EG4 6000XP\nBAT 46.4–60V\nmax 140A dis", loc="center", fontsize=9).at((0, 0)))
119
120 # positive path: BATP -> Class-T fuse -> disconnect -> battery top
121 d += elm.Line().right().length(1.3).at(inv.BATP).label("+", loc="top")
122 d += elm.Fuse().right().label(f"{s04['classT_fuse_A']}A\nClass-T", loc="top")
123 d += elm.SwitchDpst().right().label("disc", loc="bottom")
124 top = d.add(elm.Line().right().length(1.7))
125 batt = d.add(elm.Battery().down().at(top.end).label(
126 f"Docan S3\n51.2V·{ukwh}kWh\n16S1P · JK 200A BMS", loc="right", fontsize=9))
127 # negative return
128 d += elm.Line().left().at(batt.end).tox(inv.BATN[0]).label(
129 f"− {bat['final_gauge_AWG']}Cu×{bat['length_ft']}ft·{bat['vdrop_pct']}%", loc="bottom", fontsize=9)
130 d += elm.Line().up().toy(inv.BATN[1])
131 # BMS comms (dashed)
132 c = d.add(elm.Line(ls="--").down().length(1.6).at(inv.COM))
133 d += elm.Line(ls="--").right().length(5.2).at(c.end).label(
134 "JK BMS → Pylontech CAN → 6000XP 'Pylontech 2' (V19 fw)", loc="bottom", fontsize=8)
135
136 cx, cy = inv.center
137 title(d, "BATTERY WIRING — EG4 6000XP ↔ Docan S3", (cx + 2.5, cy + 2.6))
138 d += elm.Label().label(
139 f"Discharge @6kW = {s04['discharge_A_6kW']}A (binding {s04['binding_limit']['name']} "
140 f"{s04['binding_limit']['A']}A, {s04['binding_limit']['headroom_A']}A headroom) · "
141 f"{s04['discharge_C']}C · recommend {bat.get('recommended_upsize_AWG','4/0')}Cu upsize",
142 fontsize=8).at((cx + 2.0, cy - 4.2))
143 save(d, "battery-wiring")
144
145
146def sld_p2(cfg, s01, s03, s04):
147 """Final-state single-line: 31-panel array -> 18kPV (3 MPPT) -> 2-pack bank + gen AC-IN."""
148 pv, ac = s03["pv_string"], s03["ac_output"]
149 pk, bk = s03["battery_per_pack"], s03["battery_bank"]
150 npack = int(require(cfg, "battery.pack_count"))
151 bank_dod = s04["bank_usable_kwh_80dod"] # usable @ 80% DoD (25.7), not nameplate
152 d = schemdraw.Drawing()
153 d.config(fontsize=10, unit=2.7)
154
155 d += elm.Solar().right().label(
156 f"PV ARRAY\n31×575W · {s01['n_strings']} strings\n8+8+8+7S · {s01['array_dc_W']}W DC\n"
157 f"cold Voc {s01['string_cold_voc_V']}V (≤550)", loc="bottom")
158 d += elm.Line().right().length(2.6).label(
159 f"{pv['final_gauge_AWG']}AWG×{pv['length_ft']}ft\n{pv['vdrop_pct']}% · 4 homeruns", loc="top")
160 d += elm.SwitchDpst().right().label("DC\ndisc", loc="bottom")
161 d += elm.Line().right().length(1.2)
162 inv = d.add(elm.Ic(pins=[
163 elm.IcPin(name="PV", side="left"),
164 elm.IcPin(name="ACIN", side="top"),
165 elm.IcPin(name="AC", side="right"),
166 elm.IcPin(name="BATP", side="bottom", slot="1/4"),
167 elm.IcPin(name="GND", side="bottom", slot="4/4"),
168 ], w=6.8, h=6.4).anchor("PV"))
169 icx, icy = inv.center
170 d += elm.Label().label("EG4 18kPV · 12kW 120/240V\n3 MPPT · 18kW PV · RSD·AFCI·GFDI",
171 fontsize=9).at((icx, icy + 1.55))
172
173 # --- generator AC-IN (top) ---
174 d += elm.Line().up().length(1.4).at(inv.ACIN)
175 d += elm.SwitchDpst().up().label("gen AC-IN", loc="right", fontsize=9)
176 d += elm.Line().up().length(0.6)
177 d += elm.RBox(w=2.8, h=1.3).label("GENERATOR\n200A bypass · 90A gen", fontsize=8)
178
179 # --- AC branch ---
180 d += elm.Line().right().length(1.8).at(inv.AC)
181 d += elm.SwitchDpst().right().label(f"{ac['ocpd_A']}A\n2-pole", loc="top")
182 d += elm.Line().right().length(1.3)
183 d += elm.RBox(w=3.0, h=2.3).label(
184 f"MAIN PANEL\nsubfed (main off)\n{ac['final_gauge_AWG']}AWG×{ac['length_ft']}ft", fontsize=9)
185
186 # --- battery branch (down from BATP): disc, then conductor label, busbar, fuse, packs ---
187 d += elm.Line().down().length(0.9).at(inv.BATP)
188 d += elm.SwitchDpst().down().label("bank disc 250A", loc="right", fontsize=8)
189 d += elm.Line().down().length(1.5).label(
190 f"bank {bk['final_gauge_AWG']}kcmil / 2×4/0\n×{bk['length_ft']}ft · {bk['current_A']:.0f}A · {bk['vdrop_pct']}%",
191 loc="left", fontsize=8)
192 d += elm.RBox(w=3.6, h=1.0).label("DC BUSBAR (250A)", fontsize=9)
193 d += elm.Line().down().length(0.8)
194 d += elm.Fuse().down().label(f"{npack}× {s04['per_pack_classT_fuse_A']}A Class-T", loc="right", fontsize=8)
195 d += elm.Line().down().length(0.8)
196 d += elm.Battery().down().label(
197 f"{npack}× Docan S3 · 51.2V\n{bank_dod}kWh usable (80% DoD)\n{pk['final_gauge_AWG']}Cu/pack · "
198 f"{pk['vdrop_pct']}% · JK-BMS→CAN", loc="left", fontsize=8)
199
200 # --- ground branch ---
201 d += elm.Line().down().length(1.2).at(inv.GND)
202 d += elm.Ground().label("GEC 6AWG\n690.47", loc="right", fontsize=8)
203
204 cx, cy = inv.center
205 title(d, "FINAL-STATE SINGLE-LINE — PRSM OFF-GRID PV (Phase 2)", (cx, cy + 7.4))
206 d += elm.Label().label(CAP_P2, fontsize=8).at((cx, cy + 6.7))
207 save(d, "sld", ART_P2)
208
209
210def dc_strings_p2(cfg, s01, s03):
211 """Final-state DC strings: 4 strings (8+8+8+7S) across the 18kPV's 3 MPPTs (inputs 2/1/1)."""
212 pv = s03["pv_string"]
213 vmp_per = require(cfg, "panel.vmp_v")
214 d = schemdraw.Drawing()
215 d.config(fontsize=10, unit=1.4)
216 # rows: (label, n_series, mppt-label, draw_mppt_box?)
217 rows = []
218 for e in s01["layout"]:
219 for j, L in enumerate(e["lengths"]):
220 rows.append((e["mppt"] + 1, L, j == 0, len(e["lengths"])))
221 y = 0.0
222 for i, (mppt, L, first_in_group, grp) in enumerate(rows):
223 cold_voc = round(L * s01["voc_cold_module_V"], 0)
224 vmp = round(L * vmp_per)
225 d += elm.Label().label(f"String {i+1}\n{L}S (+)", fontsize=9).at((-1.7, y))
226 d += elm.Solar().right().at((0, y)).label(f"{L}× Waaree 575W", loc="top", fontsize=8)
227 d += elm.Line().right().length(1.0).label(f"{pv['final_gauge_AWG']}AWG", loc="top", fontsize=8)
228 d += elm.Line().right().length(0.3).label(f"Vmp≈{vmp}V\ncoldVoc {cold_voc:.0f}V", loc="bottom", fontsize=8)
229 d += elm.RBox(w=2.0, h=1.0).label(f"MPPT{mppt}\n18kPV" + (f"\n(2 strings)" if grp == 2 else ""),
230 fontsize=9)
231 y -= 1.8
232 title(d, "FINAL-STATE DC STRINGS — 4 strings (8+8+8+7S) across 3 MPPTs", (2.6, 1.6))
233 d += elm.Label().label(
234 f"MPPT1 = 2×8S (paired) · MPPT2 = 8S · MPPT3 = 7S · 31 modules · {s01['array_dc_W']}W DC\n"
235 f"MAX 8S: cold Voc 491.5V ≤ 550V fault / 600V abs\n"
236 f"NO source fuse (≤2 parallel strings, backfeed {pv['parallel_backfeed_A']}A ≤ 30A module) · no combiner",
237 fontsize=8).at((2.6, y - 0.5))
238 save(d, "dc-strings", ART_P2)
239
240
241def battery_wiring_p2(cfg, s03, s04):
242 """Final-state battery: 18kPV ↔ DC busbar ↔ 2× Docan S3, per-pack Class-T + disconnect."""
243 pk, bk = s03["battery_per_pack"], s03["battery_bank"]
244 npack = int(require(cfg, "battery.pack_count"))
245 ukwh = require(cfg, "battery.usable_kwh")
246 d = schemdraw.Drawing()
247 d.config(fontsize=10, unit=2.2)
248 inv = d.add(elm.Ic(pins=[
249 elm.IcPin(name="BATP", side="right", slot="3/3"),
250 elm.IcPin(name="BATN", side="right", slot="1/3"),
251 elm.IcPin(name="COM", side="bottom"),
252 ], w=3.0, h=3.4).label("EG4 18kPV\nBAT 40–60V\nmax 250A", loc="center", fontsize=9).at((0, 0)))
253
254 # BATP -> bank disconnect -> busbar
255 d += elm.Line().right().length(1.2).at(inv.BATP).label("+", loc="top")
256 d += elm.SwitchDpst().right().label("bank\ndisc", loc="top", fontsize=8)
257 d += elm.Line().right().length(0.5).label(
258 f"{bk['final_gauge_AWG']}kcmil\nor 2×4/0", loc="bottom", fontsize=8)
259 bus = d.add(elm.RBox(w=1.1, h=3.4).label("DC\nBUSBAR\n250A", fontsize=9))
260 busx = bus.center[0]
261
262 # two packs hanging off the busbar, each: Class-T + disconnect + battery
263 for k in range(npack):
264 yy = 1.0 - k * 2.2
265 d += elm.Line().right().length(1.0).at((busx + 0.55, yy))
266 d += elm.Fuse().right().label(f"{s04['per_pack_classT_fuse_A']}A\nClass-T", loc="top", fontsize=8)
267 d += elm.SwitchDpst().right().label("disc", loc="bottom", fontsize=8)
268 d += elm.Line().right().length(0.4)
269 d += elm.Battery().right().label(
270 f"Docan S3 #{k+1}\n51.2V·{ukwh}kWh\n{pk['final_gauge_AWG']}Cu·{pk['vdrop_pct']}%",
271 loc="top", fontsize=8)
272
273 # negative return (busbar bottom -> inverter BATN)
274 d += elm.Line().down().length(0.6).at((busx, -1.7))
275 d += elm.Line().left().tox(inv.BATN[0]).label("− busbar return", loc="bottom", fontsize=8)
276 d += elm.Line().up().toy(inv.BATN[1])
277 # BMS comms (dashed): packs master/slave -> 18kPV CAN
278 c = d.add(elm.Line(ls="--").down().length(1.4).at(inv.COM))
279 d += elm.Line(ls="--").right().length(5.0).at(c.end).label(
280 "JK-BMS master/slave → CAN → 18kPV (single link; confirm profile)", loc="bottom", fontsize=8)
281
282 cx, cy = inv.center
283 title(d, f"FINAL-STATE BATTERY WIRING — 18kPV ↔ {npack}× Docan S3 bank", (cx + 2.8, cy + 2.9))
284 d += elm.Label().label(
285 f"Bank discharge @12kW = {s04['bank_discharge_A_12kW']:.0f}A (inverter cap 250A) → "
286 f"{s04['per_pack_discharge_A']:.0f}A/pack · binding {s04['per_pack_binding']['name']} "
287 f"{s04['per_pack_binding']['A']:.0f}A ({s04['per_pack_binding']['headroom_A']:.0f}A headroom) · "
288 f"{s04['per_pack_discharge_C']}C · {s04['bank_usable_kwh_80dod']}kWh usable",
289 fontsize=8).at((cx + 2.2, cy - 4.4))
290 save(d, "battery-wiring", ART_P2)
291
292
293ART_PA = ART / "phase2" # Path A = SELECTED build (primary deliverable)
294CAP_PA = "PRSM OFF-GRID PV — SELECTED BUILD · PATH A (2× EG4 6000XP) · NEK Vermont · NEC 2023 · ratings trace to scripts 01/11"
295
296
297def sld_pathA(cfg, pa):
298 """Path-A single-line (clean single-spine layout; the explicit two-box detail is in the
299 Path-A dc-strings + battery-wiring diagrams). 28-panel array → 2× 6000XP (parallel) → bank."""
300 pv = pa["pv_string"]; acu = pa["ac_per_unit"]; acc = pa["ac_combined"]
301 pk = pa["battery_per_pack"]; iv = pa["battery_per_inverter"]; m = pa["meta"]
302 npack, n_classT = 2, pa["limits"]["classT_count"]
303 bank_dod = pa["limits"]["bank_usable_kwh_80dod"]
304 d = schemdraw.Drawing()
305 d.config(fontsize=10, unit=2.7)
306
307 d += elm.Solar().right().label(
308 f"PV ARRAY\n28×575W · {m['strings']}×7S\n{m['array_dc_W']}W DC\ncoldVoc {m['string_cold_voc_V']}V (≤480)",
309 loc="bottom")
310 d += elm.Line().right().length(2.6).label(
311 f"{pv['final_gauge_AWG']}AWG×{pv['length_ft']}ft\n{pv['vdrop_pct']}% · 4 homeruns", loc="top")
312 d += elm.SwitchDpst().right().label("DC\ndisc", loc="bottom")
313 d += elm.Line().right().length(1.2)
314 inv = d.add(elm.Ic(pins=[
315 elm.IcPin(name="PV", side="left"), elm.IcPin(name="ACIN", side="top"),
316 elm.IcPin(name="AC", side="right"),
317 elm.IcPin(name="BATP", side="bottom", slot="1/4"), elm.IcPin(name="GND", side="bottom", slot="4/4"),
318 ], w=6.8, h=6.4).anchor("PV"))
319 icx, icy = inv.center
320 d += elm.Label().label("2× EG4 6000XP (parallel) · 12kW\n4 MPPT · 16kW PV · RSD·AFCI·GFDI ×2",
321 fontsize=9).at((icx, icy + 1.55))
322
323 # generator AC-IN
324 d += elm.Line().up().length(1.4).at(inv.ACIN)
325 d += elm.SwitchDpst().up().label("gen AC-IN", loc="right", fontsize=9)
326 d += elm.Line().up().length(0.6)
327 d += elm.RBox(w=2.8, h=1.3).label("GENERATOR\n200A bypass · 90A gen", fontsize=8)
328
329 # AC: 2× 35A unit outputs combine to 70A → main panel
330 d += elm.Line().right().length(1.8).at(inv.AC)
331 d += elm.SwitchDpst().right().label(f"{acc['ocpd_A']}A\n2-pole", loc="top")
332 d += elm.Line().right().length(1.3)
333 d += elm.RBox(w=3.0, h=2.3).label(
334 f"MAIN PANEL\nsubfed (main off)\n{acc['final_gauge_AWG']}AWG (2×{acu['ocpd_A']}A→{acc['ocpd_A']}A)", fontsize=9)
335
336 # battery branch → busbar → bank
337 d += elm.Line().down().length(0.9).at(inv.BATP)
338 d += elm.SwitchDpst().down().label("bank disc 250A", loc="right", fontsize=8)
339 d += elm.Line().down().length(1.5).label(
340 f"{iv['final_gauge_AWG']}Cu/inverter · {pa['bank']['i_inv_A']:.0f}A ea\n(2 inverters tap the bus)",
341 loc="left", fontsize=8)
342 d += elm.RBox(w=3.6, h=1.0).label("DC BUSBAR (250A)", fontsize=9)
343 d += elm.Line().down().length(0.8)
344 d += elm.Fuse().down().label(f"{n_classT}× {pa['limits']['classT_fuse_A']}A Class-T\n(2 packs + 2 inverters)", loc="right", fontsize=8)
345 d += elm.Line().down().length(0.8)
346 d += elm.Battery().down().label(
347 f"{npack}× Docan S3 · 51.2V\n{bank_dod}kWh usable (80% DoD)\n{pk['final_gauge_AWG']}Cu/pack · "
348 f"{pk['vdrop_pct']}% · JK-BMS×2 → CAN", loc="left", fontsize=8)
349
350 d += elm.Line().down().length(1.2).at(inv.GND)
351 d += elm.Ground().label("GEC 6AWG\n690.47", loc="right", fontsize=8)
352
353 cx, cy = inv.center
354 title(d, "PATH-A SINGLE-LINE — 2× EG4 6000XP (parallel)", (cx, cy + 7.4))
355 d += elm.Label().label(CAP_PA, fontsize=8).at((cx, cy + 6.7))
356 save(d, "sld", ART_PA)
357
358
359def dc_strings_pathA(cfg, pa):
360 """Path-A DC strings: 4× 7S, two strings per 6000XP (2 MPPTs each)."""
361 pv = pa["pv_string"]; m = pa["meta"]
362 vmp = round(7 * require(cfg, "panel.vmp_v"))
363 cold = m["string_cold_voc_V"]
364 d = schemdraw.Drawing()
365 d.config(fontsize=10, unit=1.3)
366 y = 0.0
367 for i in range(4):
368 unit = 1 if i < 2 else 2
369 mppt = (i % 2) + 1
370 d += elm.Label().label(f"String {i+1}\n7S (+)", fontsize=9).at((-1.7, y))
371 d += elm.Solar().right().at((0, y)).label("7× Waaree 575W", loc="top", fontsize=8)
372 d += elm.Line().right().length(1.0).label(f"{pv['final_gauge_AWG']}AWG", loc="top", fontsize=8)
373 d += elm.Line().right().length(0.3).label(f"Vmp≈{vmp}V\ncoldVoc {cold}V", loc="bottom", fontsize=8)
374 d += elm.RBox(w=2.2, h=1.0).label(f"6000XP #{unit}\nMPPT{mppt}", fontsize=8)
375 y -= 1.8
376 title(d, "PATH-A DC STRINGS — 4× 7S, two strings per 6000XP", (2.8, 1.6))
377 d += elm.Label().label(
378 f"#1: MPPT1+MPPT2 (7S+7S) · #2: MPPT1+MPPT2 (7S+7S) · 28 modules · {m['array_dc_W']}W DC\n"
379 f"7S cold Voc {cold}V ≤ 480V design / 500V abs · 1 string/MPPT → NO source fuse · 3 panels held as spares",
380 fontsize=8).at((2.8, y - 0.4))
381 save(d, "dc-strings", ART_PA)
382
383
384def battery_wiring_pathA(cfg, pa):
385 """Path-A battery: busbar fed by 2 packs, feeding 2× 6000XP inputs; per-pack + per-inverter Class-T."""
386 pk = pa["battery_per_pack"]; iv = pa["battery_per_inverter"]; L = pa["limits"]; bk = pa["bank"]
387 npack = 2; fuse = L["classT_fuse_A"]; ukwh = require(cfg, "battery.usable_kwh")
388 d = schemdraw.Drawing()
389 d.config(fontsize=9, unit=1.1)
390 # central vertical busbar
391 d += elm.Line().up().length(2.6).at((0, 0))
392 d += elm.Line().down().length(2.6).at((0, 0))
393 d += elm.Label().label("DC BUSBAR\n250A", fontsize=9).at((0, 0.0))
394
395 # left: 2 packs in
396 for k in range(npack):
397 yy = 1.6 - k * 3.2
398 d += elm.Line().left().length(1.0).at((0, yy))
399 d += elm.Fuse().left().label(f"{fuse}A\nClass-T", loc="top", fontsize=7)
400 d += elm.SwitchDpst().left().label("disc", loc="bottom", fontsize=7)
401 d += elm.Battery().left().label(f"Docan S3 #{k+1}\n51.2V·{ukwh}kWh\n{pk['final_gauge_AWG']}Cu", loc="top", fontsize=7)
402 # right: 2 inverters out
403 for k in range(npack):
404 yy = 1.6 - k * 3.2
405 d += elm.Line().right().length(1.0).at((0, yy))
406 d += elm.Fuse().right().label(f"{fuse}A\nClass-T", loc="top", fontsize=7)
407 d += elm.SwitchDpst().right().label("disc", loc="bottom", fontsize=7)
408 d += elm.RBox(w=2.0, h=1.2).label(f"6000XP #{k+1}\nBAT max140A\n{iv['final_gauge_AWG']}Cu", fontsize=7)
409
410 title(d, "PATH-A BATTERY WIRING — busbar: 2 packs → 2× 6000XP", (0, 5.0))
411 d += elm.Label().label(
412 f"Bank {bk['i_bank_A']:.0f}A @12kW → {bk['i_pack_A']:.0f}A/pack (17% under 150A BMS) + "
413 f"{bk['i_inv_A']:.0f}A/inverter (14A under 140A) · {L['c_dis']}C · {npack+npack}× {fuse}A Class-T · "
414 f"2× JK-BMS → CAN (one per inverter)", fontsize=7).at((0, -5.2))
415 save(d, "battery-wiring", ART_PA)
416
417
418def main():
419 ap = argparse.ArgumentParser()
420 ap.add_argument("--phase2", action="store_true",
421 help="render the final-state diagrams to artifacts/phase2/")
422 ap.add_argument("--pathA", action="store_true",
423 help="render the SELECTED Path-A (2× 6000XP) diagrams to artifacts/phase2/")
424 args = ap.parse_args()
425 if args.pathA:
426 cfg = load_site()
427 banner("06 SCHEMATICS [SELECTED PATH A — 2× 6000XP -> artifacts/phase2/]")
428 pa = load_result("11_pathA")
429 ok = []
430 for name, fn in [("sld", lambda: sld_pathA(cfg, pa)),
431 ("dc-strings", lambda: dc_strings_pathA(cfg, pa)),
432 ("battery-wiring", lambda: battery_wiring_pathA(cfg, pa))]:
433 try:
434 fn(); ok.append(name)
435 except Exception as e: # noqa
436 import traceback
437 print(f" [FAIL] {name}: {type(e).__name__}: {e}")
438 traceback.print_exc()
439 print(f"\n rendered OK: {ok}")
440 return
441 cfg = load_site(phase2=args.phase2)
442 if is_phase2(cfg):
443 banner("06 SCHEMATICS [PHASE 2 — final state -> artifacts/phase2/]")
444 s01 = load_result("01_string_phase2")
445 s03 = load_result("03_conductors_phase2")
446 s04 = load_result("04_battery_phase2")
447 ok = []
448 for name, fn in [("sld", lambda: sld_p2(cfg, s01, s03, s04)),
449 ("dc-strings", lambda: dc_strings_p2(cfg, s01, s03)),
450 ("battery-wiring", lambda: battery_wiring_p2(cfg, s03, s04))]:
451 try:
452 fn(); ok.append(name)
453 except Exception as e: # noqa
454 import traceback
455 print(f" [FAIL] {name}: {type(e).__name__}: {e}")
456 traceback.print_exc()
457 print(f"\n rendered OK: {ok}")
458 return
459
460 cfg = load_site()
461 banner("06 SCHEMATICS (schemdraw -> PNG + SVG)")
462 s01 = load_result("01_string")
463 s03 = load_result("03_conductors")
464 s04 = load_result("04_battery")
465 ok = []
466 for name, fn in [("sld", lambda: sld(cfg, s01, s03, s04)),
467 ("dc-strings", lambda: dc_strings(cfg, s01, s03)),
468 ("battery-wiring", lambda: battery_wiring(cfg, s03, s04))]:
469 try:
470 fn()
471 ok.append(name)
472 except Exception as e: # noqa
473 import traceback
474 print(f" [FAIL] {name}: {type(e).__name__}: {e}")
475 traceback.print_exc()
476 print(f"\n rendered OK: {ok}")
477
478
479if __name__ == "__main__":
480 main()
scripts/07_load_capacity.py +76 -0
……@@ -0,0 +1,76 @@
1"""07 — Supportable household-load envelope (energy + power + autonomy).
2
3NOT a load study — the household's actual load profile is still an open item (HANDOFF).
4This BOUNDS what daily kWh and instantaneous kW THIS configuration can support, from the
5computed winter-binding production (02) and the battery/inverter limits (04). Off-grid the
6binding constraint is winter production; the battery sets short-term autonomy; the Phase-1
7generator backfills multi-day deficits.
8
9Run (after 02, 04): ~/.venvs/prsm-electrical/bin/python scripts/07_load_capacity.py
10"""
11from common import load_site, require, banner, result, dump_result, load_result
12
13# Fraction of delivered AC production usable as household load. PVWatts already applied a
14# 14% system loss to AC, so this band is mainly LiFePO4 round-trip (~0.95) on the
15# time-shifted energy plus a practical reserve. A band, not a point estimate.
16USE_LO, USE_HI = 0.85, 0.95
17DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
18
19
20def main():
21 cfg = load_site()
22 banner("07 SUPPORTABLE HOUSEHOLD LOAD (energy + power + autonomy)")
23 p = load_result("02_production")
24
25 m = p["ac_monthly_kwh"]
26 dec = p["dec_kwh_day"]
27 jun = p["jun_kwh_day"]
28 winter = round((m[0] + m[11]) / (DAYS[0] + DAYS[11]), 1) # Dec+Jan per day
29 shoulder = round(sum(m[i] / DAYS[i] for i in (2, 3, 8, 9)) / 4, 1) # Mar/Apr/Sep/Oct
30 annual = round(p["ac_annual_kwh"] / 365.0, 1)
31
32 inv_w = require(cfg, "inverter.ac_continuous_w")
33 surge_w = require(cfg, "inverter.ac_surge_w")
34 leg_a = require(cfg, "inverter.ac_cont_a_per_leg")
35 usable = require(cfg, "battery.usable_kwh")
36 dod = require(cfg, "battery.dod_design")
37 usable_dod = round(usable * dod, 1)
38
39 seasons = [("Deep winter (Dec)", dec), ("Winter avg (Dec-Jan)", winter),
40 ("Shoulder (Mar/Apr/Sep/Oct)", shoulder), ("Summer (Jun)", jun),
41 ("Annual avg", annual)]
42
43 print("\n ENERGY — supportable daily load, solar-only (production x 0.85-0.95):")
44 print(f" {'season':<28}{'AC produced':>13}{'usable load':>18}")
45 rows = []
46 for name, prod in seasons:
47 lo, hi = USE_LO * prod, USE_HI * prod
48 print(f" {name:<28}{prod:>9.1f} kWh{f'{lo:.0f}-{hi:.0f} kWh/day':>18}")
49 rows.append({"season": name, "ac_kwh_day": prod,
50 "supportable_kwh_day": [round(lo), round(hi)]})
51
52 print("\n POWER — instantaneous envelope (inverter limits, from 02/04):")
53 result(" continuous", inv_w, "W", "max sum of simultaneous loads")
54 result(" surge (3.5 s)", surge_w, "W", "motor / compressor starts")
55 result(" per 120 V leg", leg_a, "A", "~3 kW per leg of split-phase")
56
57 print(f"\n AUTONOMY — one battery, usable {usable_dod} kWh @ {dod*100:.0f}% DoD:")
58 print(f" {'daily load':>12}{'days w/o sun':>16}")
59 auton = {}
60 for daily in (5, 8, 10, 13, 20):
61 d = round(usable_dod / daily, 2)
62 print(f" {daily:>8} kWh{d:>13} days")
63 auton[str(daily)] = d
64
65 dump_result("07_load_capacity", {
66 "production_kwh_day": {n: v for n, v in seasons},
67 "usage_band": [USE_LO, USE_HI],
68 "supportable_daily_load_kwh": rows,
69 "inverter_continuous_W": inv_w, "inverter_surge_W": surge_w, "per_leg_A": leg_a,
70 "battery_usable_kwh_80dod": usable_dod, "days_autonomy": auton,
71 "note": "capacity envelope, not a load study; generator backfills winter deficit",
72 })
73
74
75if __name__ == "__main__":
76 main()
scripts/08_load_actual.py +117 -0
……@@ -0,0 +1,117 @@
1"""08 — Actual household load (Hardwick Electric) vs system capacity.
2
3Real billed kWh from the owner's Hardwick Electric Dept account, finally closing the
4"load baseline" open item (Key Decisions §46, Swarm §1). Compares actual usage against
5the supportable-load envelope (07) and production (02).
6
7The raw billing series is saved in data/hardwick_usage.csv (provenance in its header)
8and loaded via common.load_usage() so any calc can reuse it — this script no longer
9embeds the numbers.
10
11Run: ~/.venvs/prsm-electrical/bin/python scripts/08_load_actual.py
12"""
13from common import banner, result, dump_result, load_result, load_usage
14
15DIM = {"01": 31, "02": 28, "03": 31, "04": 30, "05": 31, "06": 30,
16 "07": 31, "08": 31, "09": 30, "10": 31, "11": 30, "12": 31}
17SEASON = {"12": "winter", "01": "winter", "02": "winter",
18 "06": "summer", "07": "summer", "08": "summer",
19 "03": "shoulder", "04": "shoulder", "05": "shoulder",
20 "09": "shoulder", "10": "shoulder", "11": "shoulder"}
21
22
23def mm(entry):
24 return entry["bill_date"][:2]
25
26
27def daily_avg(entries):
28 kwh = sum(e["net_kwh"] for e in entries)
29 days = sum(DIM[mm(e)] for e in entries)
30 return kwh, days, kwh / days
31
32
33def main():
34 banner("08 ACTUAL LOAD (Hardwick Electric) vs CAPACITY")
35 p07 = load_result("07_load_capacity")
36 p02 = load_result("02_production")
37 ledger = load_usage() # data/hardwick_usage.csv, newest first
38
39 last12 = ledger[:12]
40 kwh12, days12, dpd12 = daily_avg(last12)
41 result("source", "data/hardwick_usage.csv", "", f"{len(ledger)} months on file")
42 result("last 12 mo total", round(kwh12), "kWh/yr", "Jun 2025 – May 2026")
43 result("monthly average", round(kwh12 / 12), "kWh/mo")
44 result("DAILY average", round(dpd12, 1), "kWh/day")
45 months = [e["net_kwh"] for e in last12]
46 result("min / max month", f"{min(months)} / {max(months)}", "kWh",
47 "Jan 744 / Aug 1677 — SUMMER-peaking")
48
49 print("\n MONTHLY DETAIL (last 12 mo) — kWh · net cost · avg $/kWh:")
50 print(f" {'month':>9}{'kWh':>7}{'net $':>10}{'$/kWh':>9}")
51 for e in last12:
52 print(f" {e['bill_date']:>9}{e['net_kwh']:>7}{e['bill_amount']:>10.2f}"
53 f"{e['avg_cost_per_kwh']:>9.3f}")
54
55 seas = {}
56 for s in ("winter", "shoulder", "summer"):
57 grp = [e for e in last12 if SEASON[mm(e)] == s]
58 _, _, dpd = daily_avg(grp)
59 seas[s] = round(dpd, 1)
60 aug = next(e["net_kwh"] for e in last12 if mm(e) == "08") / 31
61 print()
62 result("winter daily avg (D/J/F)", seas["winter"], "kWh/day")
63 result("shoulder daily avg", seas["shoulder"], "kWh/day")
64 result("summer daily avg (J/J/A)", seas["summer"], "kWh/day")
65 result(" August peak", round(aug, 1), "kWh/day", "the binding month for THIS load")
66
67 sup = {r["season"]: r["supportable_kwh_day"] for r in p07["supportable_daily_load_kwh"]}
68 prod = p07["production_kwh_day"]
69 pairs = [("winter", seas["winter"], sup["Winter avg (Dec-Jan)"], prod["Winter avg (Dec-Jan)"]),
70 ("shoulder", seas["shoulder"], sup["Shoulder (Mar/Apr/Sep/Oct)"], prod["Shoulder (Mar/Apr/Sep/Oct)"]),
71 ("summer", seas["summer"], sup["Summer (Jun)"], prod["Summer (Jun)"]),
72 ("August", aug, sup["Summer (Jun)"], prod["Summer (Jun)"])]
73
74 print("\n ACTUAL vs SUPPORTABLE (solar-only):")
75 print(f" {'season':<10}{'actual':>9}{'supportable':>14}{'solar prod':>12}{'solar covers':>14}")
76 cmp = {}
77 for name, act, s, pr in pairs:
78 cover = 100 * pr / act
79 print(f" {name:<10}{act:>7.1f} {f'{s[0]}-{s[1]}':>12} {pr:>9.1f} {cover:>10.0f}% ")
80 cmp[name] = {"actual_kwh_day": round(act, 1), "supportable": s,
81 "solar_prod_kwh_day": pr, "solar_covers_pct": round(cover)}
82
83 ann_prod = p02["ac_annual_kwh"]
84 bal = 100 * ann_prod / kwh12
85 print()
86 result("annual production (02)", ann_prod, "kWh/yr")
87 result("annual consumption", round(kwh12), "kWh/yr")
88 result("array = % of annual load", round(bal), "%", "8 kW array UNDERSIZED vs full load")
89 annual_cost = sum(e["bill_amount"] for e in last12)
90 wavg = annual_cost / kwh12
91 costs = [e["bill_amount"] for e in last12]
92 result("annual electric cost", round(annual_cost, 2), "$/yr", "sum of last 12 bills")
93 result("weighted avg cost", round(wavg, 3), "$/kWh", "annual cost / annual kWh")
94 result("min / max monthly bill", f"{min(costs):.2f} / {max(costs):.2f}", "$")
95
96 verdict = ("Phase-1 (~8 kW / 16 kWh) offsets ~half (Aug) to ~90% (shoulder) of this load "
97 "by season; full off-grid coverage needs load reduction (propane/shedding) + the "
98 "Phase-2 PV expansion + 2nd battery. Confirms Swarm 'Phase 2 = more PV'.")
99 print("\n VERDICT:", verdict)
100
101 dump_result("08_load_actual", {
102 "source": "data/hardwick_usage.csv",
103 "last12_kwh_yr": round(kwh12), "monthly_avg_kwh": round(kwh12 / 12),
104 "daily_avg_kwh": round(dpd12, 1),
105 "min_month_kwh": min(months), "max_month_kwh": max(months),
106 "seasonal_daily_kwh": seas, "august_peak_kwh_day": round(aug, 1),
107 "vs_supportable": cmp,
108 "annual_production_kwh": ann_prod, "array_pct_of_load": round(bal),
109 "annual_cost_usd": round(annual_cost, 2),
110 "weighted_avg_cost_per_kwh": round(wavg, 3),
111 "min_monthly_bill_usd": min(costs), "max_monthly_bill_usd": max(costs),
112 "verdict": verdict,
113 })
114
115
116if __name__ == "__main__":
117 main()
scripts/09_phase2.py +140 -0
……@@ -0,0 +1,140 @@
1"""09 — Phase-2 sizing + cost: wire the REMAINING pallet panels to meet the load.
2
3Phase-1 wired 14 of the 31-panel Waaree pallet (8.05 kW) and that already MAXES the
4single EG4 6000XP PV input (8 kW usable/unit). To use the remaining 17 panels (9.78 kW
5-> 17.8 kW full pallet) you must add INVERTER capacity; the panels themselves are already
6paid for (sunk in the pallet) = $0 additional.
7
8Computes (grounded): full-pallet production (PVWatts), coverage vs the real Hardwick load
9(08), and battery autonomy. Cost figures are ESTIMATES (sourced: Swarm §10 / Key Decisions),
10not computed — clearly labeled.
11
12Run: ~/.venvs/prsm-electrical/bin/python scripts/09_phase2.py (uses NREL_API_KEY or DEMO_KEY)
13"""
14import os
15import requests
16from common import load_site, require, banner, result, dump_result, load_result
17
18HOSTS = ["https://developer.nrel.gov", "https://developer.nlr.gov"]
19DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
20
21# --- COST ESTIMATES (USD) — NOT computed; sourced as noted. Ranges (lo, hi). ---
22INV_6000XP = 1549 # Key Decisions (retail)
23INV_6000XP_RESALE = (800, 1000) # Swarm §10 "strong secondary market"
24INV_18KPV = 4500 # Swarm §10
25PARALLEL_KIT = 150 # parallel comms/cabling kit (est)
26DOCAN = (1758, 2000) # Key Decisions base SKU (heating is propane/separate)
27BOS_PH2 = (800, 1500) # PV wire for 17 panels, DC disc, battery interconnects, AC upsize, lugs/MC4 (est)
28
29
30def pvwatts(kw, dc_ac, cfg):
31 key = os.environ.get("NREL_API_KEY", "DEMO_KEY")
32 params = {"api_key": key, "system_capacity": kw, "module_type": 0, "array_type": 0,
33 "tilt": require(cfg, "array.tilt_deg"), "azimuth": require(cfg, "array.azimuth_deg"),
34 "losses": 14, "lat": require(cfg, "site.latitude"),
35 "lon": require(cfg, "site.longitude"), "dc_ac_ratio": round(dc_ac, 3)}
36 for host in HOSTS:
37 try:
38 r = requests.get(host + "/api/pvwatts/v8.json", params=params, timeout=30)
39 if r.status_code == 200 and "outputs" in r.json():
40 return r.json()["outputs"], host
41 except Exception: # noqa
42 pass
43 return None, None
44
45
46def rng(lo, hi):
47 return f"${lo:,.0f}-{hi:,.0f}"
48
49
50def main():
51 cfg = load_site()
52 banner("09 PHASE-2 — use remaining pallet to meet the load (sizing + cost)")
53 load = load_result("08_load_actual")
54 pmp = require(cfg, "panel.pmp_w")
55
56 n_total, n_ph1 = 31, int(require(cfg, "array.module_count"))
57 n_remaining = n_total - n_ph1
58 kw_ph1 = round(n_ph1 * pmp / 1000, 2)
59 kw_full = round(n_total * pmp / 1000, 2)
60 result("pallet / Phase-1 / remaining", f"{n_total} / {n_ph1} / {n_remaining}", "panels")
61 result("array kW: Phase-1 -> full", f"{kw_ph1} -> {kw_full}", "kW DC")
62 result("CONSTRAINT", "1× 6000XP PV input = 8 kW usable", "",
63 "Phase-1 8.05 kW already maxes it -> Phase-2 needs more inverter")
64
65 # --- production at full pallet (12 kW AC from expanded inverter) ---
66 out, host = pvwatts(kw_full, kw_full / 12.0, cfg)
67 if out is None:
68 raise SystemExit("PVWatts unavailable; set NREL_API_KEY and retry.")
69 m = out["ac_monthly"]
70 ann = out["ac_annual"]
71 dec = m[11] / DAYS[11]
72 winter = (m[0] + m[11]) / (DAYS[0] + DAYS[11])
73 summer = sum(m[i] / DAYS[i] for i in (5, 6, 7)) / 3
74 print(f"\n FULL-PALLET PRODUCTION ({kw_full} kW, via {host.split('//')[1]}):")
75 result(" annual", round(ann), "kWh/yr", f"vs load {load['last12_kwh_yr']} kWh/yr")
76 result(" array = % of annual load", round(100 * ann / load["last12_kwh_yr"]), "%",
77 "now EXCEEDS load (was 79% at Phase-1)")
78 result(" Dec / winter avg", f"{dec:.1f} / {winter:.1f}", "kWh/day",
79 f"vs winter load {load['seasonal_daily_kwh']['winter']}")
80 result(" summer avg", round(summer, 1), "kWh/day",
81 f"vs summer load {load['seasonal_daily_kwh']['summer']} / Aug {load['august_peak_kwh_day']}")
82
83 # coverage vs load by season (solar-only, usage band 0.85)
84 print("\n COVERAGE vs load (full pallet, x0.85 usable):")
85 seas = load["seasonal_daily_kwh"]
86 for name, prod_d, ld in [("winter", winter, seas["winter"]),
87 ("summer", summer, seas["summer"]),
88 ("Aug peak", summer, load["august_peak_kwh_day"])]:
89 cov = 100 * (0.85 * prod_d) / ld
90 result(f" {name}", f"{0.85*prod_d:.0f} usable vs {ld} load", "kWh/day",
91 f"{cov:.0f}% ({'MET' if cov >= 100 else 'gen/short'})")
92
93 # --- battery autonomy at the load ---
94 usable_pack = round(require(cfg, "battery.usable_kwh") * require(cfg, "battery.dod_design"), 2)
95 avg = load["daily_avg_kwh"]; peak = load["august_peak_kwh_day"]
96 print(f"\n BATTERY AUTONOMY ({usable_pack} kWh usable/pack @ 80% DoD):")
97 print(f" {'packs':>6}{'usable':>9}{'days@avg':>11}{'days@peak':>11}")
98 for n in (1, 2, 3):
99 u = usable_pack * n
100 print(f" {n:>6}{u:>7.1f}kWh{u/avg:>10.2f}{u/peak:>11.2f}")
101 result("Swarm §6 battery target", "24-30 kWh usable", "", "= 2 packs (25.7 usable); 3 for ~1 day @ avg")
102
103 # --- COST (estimates) ---
104 print("\n PHASE-2 ADDED COST (estimates; energy/autonomy above are computed):")
105 result(" remaining 17 panels", "$0", "", "already paid (sunk in pallet)")
106 par_inv = INV_6000XP + PARALLEL_KIT
107 swap_inv = (INV_18KPV - INV_6000XP_RESALE[1], INV_18KPV - INV_6000XP_RESALE[0])
108 result(" inverter A: parallel 2nd 6000XP", f"${par_inv:,}", "", "12 kW AC / 16 kW PV (Key Dec §76)")
109 result(" inverter B: 18kPV swap (−resale)", rng(*swap_inv), "",
110 "18 kW PV / 12 kW AC; Swarm §10 recommends for >10 kW")
111 result(" battery: +1 pack (→2 total)", rng(*DOCAN), "", "25.7 kWh usable (Swarm §6 min)")
112 result(" battery: +2 packs (→3 total)", rng(2*DOCAN[0], 2*DOCAN[1]), "", "38.6 kWh usable, ~1 day @ avg")
113 result(" BoS (PV wire/disc/cables/AC upsize)", rng(*BOS_PH2))
114
115 # bundles
116 lean_lo = par_inv + DOCAN[0] + BOS_PH2[0]
117 lean_hi = par_inv + DOCAN[1] + BOS_PH2[1]
118 rec_lo = swap_inv[0] + 2*DOCAN[0] + BOS_PH2[0]
119 rec_hi = swap_inv[1] + 2*DOCAN[1] + BOS_PH2[1]
120 print()
121 result(" BUNDLE — Lean (parallel 6000XP + 1 pack)", rng(lean_lo, lean_hi), "",
122 "2 packs, 12 kW AC; generator covers deep autonomy")
123 result(" BUNDLE — Recommended (18kPV + 2 packs)", rng(rec_lo, rec_hi), "",
124 "3 packs, single-inverter, Swarm §10 path")
125
126 dump_result("09_phase2", {
127 "remaining_panels": n_remaining, "kw_full_pallet": kw_full,
128 "full_pallet_annual_kwh": round(ann), "array_pct_of_load": round(100 * ann / load["last12_kwh_yr"]),
129 "dec_kwh_day": round(dec, 1), "winter_kwh_day": round(winter, 1), "summer_kwh_day": round(summer, 1),
130 "panels_added_cost": 0,
131 "inverter_parallel_6000xp": par_inv, "inverter_18kpv_swap_net": list(swap_inv),
132 "battery_plus1_pack": list(DOCAN), "battery_plus2_packs": [2*DOCAN[0], 2*DOCAN[1]],
133 "bos": list(BOS_PH2),
134 "bundle_lean_usd": [lean_lo, lean_hi], "bundle_recommended_usd": [rec_lo, rec_hi],
135 "note": "panels $0 (owned); cost figures estimates (Swarm §10/Key Decisions); energy computed",
136 })
137
138
139if __name__ == "__main__":
140 main()
scripts/10_compare_inverter_paths.py +144 -0
……@@ -0,0 +1,144 @@
1"""10 — Inverter-path comparison (script-computed numbers for the design tradeoff).
2
3Path A: 2x EG4 6000XP in parallel, 28 panels = 4x7S (16.1 kW DC), 3 panels held as spares.
4Path B: 1x EG4 18kPV, 31 panels = 8+8+8+7S (17.8 kW DC). [the chosen design]
5
6Both target 12 kW AC. Computes — for each path — production (PVWatts v8, same site/tilt/az),
7coverage vs the real Hardwick load, PV-usable headroom, AC, and battery discharge limit/headroom.
8String cold-Voc is pulled from the already-validated results (01 = 7S/430V, 01_phase2 = 8S/491.5V).
9Cost is a LABELED estimate (Swarm §10), not computed.
10
11Run: ~/.venvs/prsm-electrical/bin/python scripts/10_compare_inverter_paths.py
12"""
13import os
14import requests
15from common import load_site, require, banner, result, dump_result, load_result
16
17HOSTS = ["https://developer.nrel.gov", "https://developer.nlr.gov"]
18DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
19
20
21def pvwatts(kw, dc_ac, cfg):
22 key = os.environ.get("NREL_API_KEY", "DEMO_KEY")
23 params = {"api_key": key, "system_capacity": kw, "module_type": 0, "array_type": 0,
24 "tilt": require(cfg, "array.tilt_deg"), "azimuth": require(cfg, "array.azimuth_deg"),
25 "losses": 14, "lat": require(cfg, "site.latitude"),
26 "lon": require(cfg, "site.longitude"), "dc_ac_ratio": round(dc_ac, 3)}
27 for host in HOSTS:
28 try:
29 r = requests.get(host + "/api/pvwatts/v8.json", params=params, timeout=30)
30 if r.status_code == 200 and "outputs" in r.json():
31 return r.json()["outputs"], host
32 except Exception: # noqa
33 pass
34 return None, None
35
36
37def season(m):
38 dec = m[11] / DAYS[11]
39 winter = (m[0] + m[11]) / (DAYS[0] + DAYS[11])
40 summer = sum(m[i] / DAYS[i] for i in (5, 6, 7)) / 3
41 return dec, winter, summer
42
43
44def main():
45 base = load_site() # base inverter: = EG4 6000XP
46 p2 = load_site(phase2=True) # phase2.inverter = EG4 18kPV
47 load = load_result("08_load_actual")
48 pmp = require(base, "panel.pmp_w")
49 vnom = require(base, "battery.nominal_v")
50 npack = int(require(p2, "battery.pack_count")) # 2 either way
51 ac_w = 12000.0 # both target 12 kW AC
52 yr_load = load["last12_kwh_yr"]; seas_load = load["seasonal_daily_kwh"]
53 aug = load["august_peak_kwh_day"]; avg = load["daily_avg_kwh"]
54
55 banner("10 INVERTER PATH COMPARISON (Path A 2x6000XP/28 vs Path B 18kPV/31)")
56
57 # ---- static specs from site.yaml (both inverters already confirmed) ----
58 A = {"name": "A: 2x EG4 6000XP", "panels": 28, "strings": 4, "series": "4x7S",
59 "kw": round(28 * pmp / 1000, 2),
60 "pv_usable_w": 2 * require(base, "inverter.pv_max_power_w"),
61 "ac_w": 2 * require(base, "inverter.ac_continuous_w"),
62 "batt_lim_a": 2 * require(base, "inverter.batt_max_discharge_a"),
63 "eff": require(base, "inverter.discharge_eff"),
64 "string_voc": load_result("01_string")["string_cold_voc_V"],
65 "voc_ceiling": require(base, "inverter.pv_design_voc_ceiling_v"),
66 "mppts": 2 * require(base, "inverter.mppt_count"), "units": 2,
67 "comms_links": 2, "spares": 3}
68 B = {"name": "B: 1x EG4 18kPV", "panels": 31, "strings": 4, "series": "8+8+8+7S",
69 "kw": round(31 * pmp / 1000, 2),
70 "pv_usable_w": require(p2, "inverter.pv_max_power_w"),
71 "ac_w": require(p2, "inverter.ac_continuous_w"),
72 "batt_lim_a": require(p2, "inverter.batt_max_discharge_a"),
73 "eff": require(p2, "inverter.discharge_eff"),
74 "string_voc": load_result("01_string_phase2")["string_cold_voc_V"],
75 "voc_ceiling": require(p2, "inverter.pv_design_voc_ceiling_v"),
76 "mppts": require(p2, "inverter.mppt_count"), "units": 1,
77 "comms_links": 1, "spares": 0}
78
79 for P in (A, B):
80 out, host = pvwatts(P["kw"], P["kw"] / 12.0, base)
81 if out is None:
82 raise SystemExit("PVWatts unavailable; set NREL_API_KEY and retry.")
83 m = out["ac_monthly"]
84 P["annual"] = round(out["ac_annual"])
85 P["dec"], P["winter"], P["summer"] = (round(x, 1) for x in season(m))
86 P["pct_load"] = round(100 * P["annual"] / yr_load)
87 # solar-only seasonal coverage (x0.85 usable), same convention as 08/09
88 P["cov_winter"] = round(100 * 0.85 * P["winter"] / seas_load["winter"])
89 P["cov_summer"] = round(100 * 0.85 * P["summer"] / seas_load["summer"])
90 P["cov_aug"] = round(100 * 0.85 * P["summer"] / aug)
91 P["host"] = host.split("//")[1]
92 # PV-usable headroom (array DC vs inverter usable PV)
93 P["pv_headroom_w"] = P["pv_usable_w"] - P["kw"] * 1000
94 # battery discharge at 12 kW
95 ib = ac_w / P["eff"] / vnom
96 P["i_bank"] = round(ib, 1)
97 P["i_pack"] = round(ib / npack, 1)
98 P["batt_headroom_a"] = round(P["batt_lim_a"] - ib, 1)
99
100 # ---- print comparison ----
101 rows = [
102 ("panels wired / spares", f"{A['panels']} / {A['spares']}", f"{B['panels']} / {B['spares']}"),
103 ("array DC", f"{A['kw']} kW", f"{B['kw']} kW"),
104 ("string config / cold Voc", f"{A['series']} / {A['string_voc']}V (≤{A['voc_ceiling']})",
105 f"{B['series']} / {B['string_voc']}V (≤{B['voc_ceiling']})"),
106 ("MPPTs / units / comms links", f"{A['mppts']} / {A['units']} / {A['comms_links']}",
107 f"{B['mppts']} / {B['units']} / {B['comms_links']}"),
108 ("PV usable / headroom", f"{A['pv_usable_w']}W / {A['pv_headroom_w']:+.0f}W",
109 f"{B['pv_usable_w']}W / {B['pv_headroom_w']:+.0f}W"),
110 ("AC continuous", f"{A['ac_w']:.0f}W", f"{B['ac_w']:.0f}W"),
111 ("battery discharge limit", f"{A['batt_lim_a']:.0f}A (2x140)", f"{B['batt_lim_a']:.0f}A"),
112 ("12kW bank / per-pack draw", f"{A['i_bank']}/{A['i_pack']}A", f"{B['i_bank']}/{B['i_pack']}A"),
113 ("battery limit headroom", f"{A['batt_headroom_a']:+.0f}A", f"{B['batt_headroom_a']:+.0f}A"),
114 ("annual production", f"{A['annual']} kWh", f"{B['annual']} kWh"),
115 (" = % of load", f"{A['pct_load']}%", f"{B['pct_load']}%"),
116 ("coverage winter/summer/Aug", f"{A['cov_winter']}/{A['cov_summer']}/{A['cov_aug']}%",
117 f"{B['cov_winter']}/{B['cov_summer']}/{B['cov_aug']}%"),
118 ("Dec kWh/day", f"{A['dec']}", f"{B['dec']}"),
119 ]
120 w = max(len(r[0]) for r in rows)
121 print(f"\n {'metric':<{w}} {'PATH A (2x6000XP/28)':<26} {'PATH B (18kPV/31)':<22}")
122 print(" " + "-" * (w + 50))
123 for label, a, b in rows:
124 print(f" {label:<{w}} {a:<26} {b:<22}")
125
126 dprod = B["annual"] - A["annual"]
127 print(f"\n Production delta (B - A): +{dprod} kWh/yr ({round(100*dprod/A['annual'],1)}% more for B)")
128 for P in (A, B):
129 covs = [P["cov_winter"], P["cov_summer"], P["cov_aug"]]
130 P["meets_all_seasons"] = all(c >= 100 for c in covs)
131 short = [s for s, c in zip(("winter", "summer", "Aug"), covs) if c < 100]
132 result(f"{P['name']} meets all seasons (solar x0.85)?",
133 "YES" if P["meets_all_seasons"] else f"NO — short: {','.join(short)}",
134 "", f"covers {P['cov_winter']}/{P['cov_summer']}/{P['cov_aug']}% W/S/Aug; "
135 f"battery+generator backfill the rest off-grid")
136 result("cost delta (ESTIMATE)", "B ≈ +$1,900 vs A", "", "Swarm §10: 18kPV net swap vs 2nd 6000XP (~$1,700)")
137
138 dump_result("10_compare", {"path_A": A, "path_B": B,
139 "production_delta_kwh": dprod,
140 "note": "production/loading computed (PVWatts + datasheet limits); cost is estimate"})
141
142
143if __name__ == "__main__":
144 main()
scripts/11_pathA.py +197 -0
……@@ -0,0 +1,197 @@
1"""11 — Path A variant design: 2x EG4 6000XP (parallel), 28 panels (4x7S), 2-pack bank.
2
3The alternative to the chosen Path B (1x EG4 18kPV). Owner's other choices unchanged:
42 packs, battery adjacent (~10 ft), 17 panels co-located on the 200 ft trench. Here 28 of the
531 panels are wired (4x7S, 16.1 kW); the 3 remaining panels are held as field SPARES.
6
7String safety is the already-validated Phase-1 7S result (430.1 V <= 480 V), replicated x4 across
8the four MPPTs (2 per 6000XP). This script computes the Path-A CONDUCTORS and BATTERY bank for the
92-inverter topology (the bank busbar feeds two inverter inputs, so no single 250 A cable), plus the
10NEC deltas. Conductor sizing reuses the validated size_run() from 03_conductors.
11
12Run: ~/.venvs/prsm-electrical/bin/python scripts/11_pathA.py
13"""
14import importlib
15from common import load_site, require, get, banner, result, dump_result, load_result
16from nec_tables import T310_16, std_ocpd_at_least, egc_awg
17
18_c = importlib.import_module("03_conductors") # reuse validated NEC sizing
19size_run, report, vdrop_pct = _c.size_run, _c.report, _c.vdrop_pct
20
21
22def main():
23 cfg = load_site() # base inverter: = EG4 6000XP (per-unit specs)
24 banner("11 PATH A — 2x EG4 6000XP (parallel), 28 panels (4x7S), 2-pack bank")
25 s01 = load_result("01_string") # validated Phase-1 7S string
26 load = load_result("08_load_actual")
27 cmp = load_result("10_compare") # computed Path-A production
28
29 pmp = require(cfg, "panel.pmp_w"); isc = require(cfg, "panel.isc_a")
30 imp = require(cfg, "panel.imp_a"); vmp = require(cfg, "panel.vmp_v")
31 vnom = require(cfg, "battery.nominal_v"); cap_ah = require(cfg, "battery.capacity_ah")
32 usable_kwh = require(cfg, "battery.usable_kwh"); dod = require(cfg, "battery.dod_design")
33
34 # --- topology constants ---
35 n_inv, npack = 2, 2
36 n_str, n_series, panels = 4, 7, 28
37 kw = round(panels * pmp / 1000, 2)
38 spares = 31 - panels
39
40 # per-unit 6000XP specs
41 ac_unit = require(cfg, "inverter.ac_continuous_w") # 6000
42 ac_a_unit = require(cfg, "inverter.ac_cont_a_per_leg") # 25
43 surge_unit = require(cfg, "inverter.ac_surge_w") # 12000 (3.5 s)
44 eff = require(cfg, "inverter.discharge_eff") # 0.93
45 inv_dis_unit = require(cfg, "inverter.batt_max_discharge_a") # 140
46 inv_chg_unit = require(cfg, "inverter.batt_max_charge_a") # 125
47 pv_unit = require(cfg, "inverter.pv_max_power_w") # 8000
48 i_in_max = require(cfg, "inverter.pv_max_input_a_per_mppt") # 17
49 isc_in_max = require(cfg, "inverter.pv_max_isc_a_per_mppt") # 25
50 voc_ceiling = require(cfg, "inverter.pv_design_voc_ceiling_v") # 480
51 bms_trip = require(cfg, "battery.bms_discharge_ocp_a") # 150
52 bms_delay = require(cfg, "battery.bms_ocp_delay_s") # 300
53 bms_sc = require(cfg, "battery.bms_short_circuit_a") # 300
54 cell_cont = require(cfg, "battery.cell_continuous_a") # 157
55
56 # aggregates
57 ac_total = n_inv * ac_unit; ac_a_total = n_inv * ac_a_unit
58 inv_dis_total = n_inv * inv_dis_unit; inv_chg_total = n_inv * inv_chg_unit
59 pv_usable = n_inv * pv_unit; surge_total = n_inv * surge_unit
60 runs = get(cfg, "phase2.runs_ft") or cfg["runs_ft"]
61 tgt = cfg["targets"]
62 pv_vref = round(n_series * vmp, 1) # 7S Vmp = 307 V
63
64 result("config", f"{n_inv}x EG4 6000XP // {panels} panels ({n_str}x{n_series}S) // {npack} packs")
65 result("array DC / spares held", f"{kw} kW / {spares} panels", "", "3 panels reserved as field spares")
66 result("string cold Voc (validated 7S)", f"{s01['string_cold_voc_V']} V", "",
67 f"<= {voc_ceiling} V design (PASS, {voc_ceiling - s01['string_cold_voc_V']:.0f} V margin); same module/ceiling as Phase 1")
68 result("AC / PV-usable / batt limit", f"{ac_total:.0f}W / {pv_usable:.0f}W / {inv_dis_total:.0f}A",
69 "", f"2x(6000W / 8000W / 140A); array {kw*1000:.0f}W DC vs {pv_usable:.0f}W usable")
70
71 results = {"meta": {"path": "A", "inverters": n_inv, "panels": panels, "spares": spares,
72 "kw": kw, "strings": n_str, "n_series": n_series,
73 "string_cold_voc_V": s01["string_cold_voc_V"], "voc_ceiling_V": voc_ceiling,
74 "array_dc_W": panels * pmp, "pv_usable_W": pv_usable}}
75
76 # ---------- conductors ----------
77 print("\n CONDUCTORS (NEC 690.8 / 310.15 / 240.4 / Ch.9 T8):")
78 # 1) PV string homeruns (4 strings -> 8 CCC in the trench), worst-case 7S vref
79 ccc_pv = 2 * n_str
80 r_pv = size_run("PV string (array->6000XP MPPT, per string)", mode="pv",
81 current=imp, vref=pv_vref, length_ft=runs["combiner_to_inverter"],
82 target_pct=tgt["vdrop_dc_pct_max"], ambient_c=40, ccc=ccc_pv, isc=isc, set_ocpd=False)
83 report(r_pv)
84 sweep = {L: round(vdrop_pct(r_pv["final_gauge_AWG"], L, imp, pv_vref)[0], 3)
85 for L in cfg.get("dc_run_sweep_ft", [200])}
86 result(" DC Vdrop sweep", " / ".join(f"{L}ft:{p}%" for L, p in sweep.items()), "",
87 f"{r_pv['final_gauge_AWG']}Cu, {ccc_pv} CCC; 1 string/MPPT -> NO source fuse (690.9(A))")
88 r_pv["vdrop_sweep_pct"] = sweep; r_pv["ccc"] = ccc_pv; r_pv["source_fuse_required"] = False
89 results["pv_string"] = r_pv
90 print()
91
92 # 2) AC: each 6000XP output (25 A) + the combined feed (50 A) at the parallel busbar
93 r_ac_unit = size_run("AC per-unit (6000XP->AC combiner)", mode="continuous",
94 current=ac_a_unit, vref=240.0, length_ft=runs["inverter_to_loads"],
95 target_pct=tgt["vdrop_ac_pct_max"], ambient_c=30, ccc=2)
96 report(r_ac_unit)
97 r_ac_comb = size_run("AC combined (busbar->main panel)", mode="continuous",
98 current=ac_a_total, vref=240.0, length_ft=runs["inverter_to_loads"],
99 target_pct=tgt["vdrop_ac_pct_max"], ambient_c=30, ccc=2)
100 report(r_ac_comb)
101 results["ac_per_unit"] = r_ac_unit; results["ac_combined"] = r_ac_comb
102 print()
103
104 # 3) Battery bank: busbar fed by 2 packs, feeding 2 inverter inputs.
105 i_bank = ac_total / eff / vnom # 12 kW from the bank
106 i_pack = i_bank / npack # per pack
107 i_inv = i_bank / n_inv # per inverter input
108 r_pack = size_run("Battery per-pack (pack->busbar)", mode="continuous",
109 current=i_pack, vref=vnom, length_ft=runs["pack_to_busbar"],
110 target_pct=tgt["vdrop_battery_pct_max"], ambient_c=30, ccc=2)
111 report(r_pack)
112 r_inv = size_run("Battery per-inverter (busbar->6000XP)", mode="continuous",
113 current=i_inv, vref=vnom, length_ft=runs["inverter_to_battery"],
114 target_pct=tgt["vdrop_battery_pct_max"], ambient_c=30, ccc=2)
115 report(r_inv)
116 result("bank busbar", f"{i_bank:.0f} A (250 A+ rated)", "",
117 f"2 packs in ({i_pack:.0f}A ea) + 2 inverters out ({i_inv:.0f}A ea) — no single 250A cable")
118 results["battery_per_pack"] = r_pack; results["battery_per_inverter"] = r_inv
119 results["bank"] = {"i_bank_A": round(i_bank, 1), "i_pack_A": round(i_pack, 1),
120 "i_inv_A": round(i_inv, 1), "busbar_A": 250}
121 print()
122
123 # ---------- battery limits / C-rate / surge / autonomy / fusing ----------
124 print(" BATTERY (limits, C-rate, surge, autonomy, Class-T):")
125 result("bank vs total inverter limit", f"{i_bank:.1f} / {inv_dis_total}", "A",
126 f"{'PASS' if i_bank <= inv_dis_total else 'FAIL'} (headroom {inv_dis_total - i_bank:.0f}A, {100*(inv_dis_total-i_bank)/inv_dis_total:.0f}%)")
127 result("per-inverter vs 6000XP limit", f"{i_inv:.1f} / {inv_dis_unit}", "A",
128 f"{'PASS' if i_inv <= inv_dis_unit else 'FAIL'} (headroom {inv_dis_unit - i_inv:.0f}A) — same as Phase-1 single pack")
129 pack_limits = [("JK-BMS OCP (300s)", bms_trip), ("EVE cell 0.5P", cell_cont)]
130 pb = min(pack_limits, key=lambda x: x[1])
131 for nm, lim in pack_limits:
132 result(f"per-pack vs {nm}", f"{i_pack:.1f} / {lim}", "A",
133 f"{'PASS' if i_pack <= lim else 'FAIL'} ({100*i_pack/lim:.0f}%)")
134 c_dis = i_pack / cap_ah; c_chg = (inv_chg_total / npack) / cap_ah
135 result("per-pack C-rate dis / chg", f"{c_dis:.2f}C / {c_chg:.2f}C", "", "<= 0.5C OK")
136
137 i_surge_bank = surge_total / eff / vnom; i_surge_pack = i_surge_bank / npack
138 result("surge (2x12kW, 3.5s)", f"bank {i_surge_bank:.0f}A -> {i_surge_pack:.0f}A/pack", "",
139 f"> {bms_trip}A OCP but 3.5s << {bms_delay}s delay & < {bms_sc}A SC -> transient, no trip")
140
141 bank_kwh = usable_kwh * npack; bank_dod = bank_kwh * dod
142 avg = load["daily_avg_kwh"]; peak = load["august_peak_kwh_day"]
143 result("autonomy", f"{bank_dod:.1f} kWh usable -> {bank_dod/avg:.2f} d @avg / {bank_dod/peak:.2f} d @peak",
144 "", f"{npack} packs @ 80% DoD; generator backfills (same as Path B)")
145
146 req_pack = i_pack * 1.25
147 pca = r_pack["final_gauge_AWG"]; pamp = T310_16[pca][1]; pack_fuse = std_ocpd_at_least(req_pack)
148 n_classT = npack + n_inv
149 result("Class-T fusing", f"{n_classT}x {pack_fuse}A (2 packs + 2 inverter inputs)", "",
150 f">= 125%x{i_pack:.0f}A; <= {pca} cable {pamp}A; each 6000XP battery input fused per its manual")
151
152 results["limits"] = {"bank_limit_A": inv_dis_total, "bank_headroom_A": round(inv_dis_total - i_bank, 1),
153 "per_inv_limit_A": inv_dis_unit, "per_inv_headroom_A": round(inv_dis_unit - i_inv, 1),
154 "per_pack_binding": pb[0], "per_pack_binding_A": pb[1],
155 "per_pack_headroom_A": round(pb[1] - i_pack, 1),
156 "c_dis": round(c_dis, 3), "c_chg": round(c_chg, 3),
157 "surge_bank_A": round(i_surge_bank, 1), "surge_pack_A": round(i_surge_pack, 1),
158 "surge_duration_s": 3.5,
159 "bank_usable_kwh_80dod": round(bank_dod, 2),
160 "days_avg": round(bank_dod / avg, 2), "days_peak": round(bank_dod / peak, 2),
161 "classT_fuse_A": pack_fuse, "classT_count": n_classT}
162
163 # ---------- production (computed in 10_compare) ----------
164 A = cmp["path_A"]
165 result("production (PVWatts, 10)", f"{A['annual']} kWh/yr ({A['pct_load']}% of load)", "",
166 f"coverage W/S/Aug {A['cov_winter']}/{A['cov_summer']}/{A['cov_aug']}% "
167 f"(Aug short — battery+gen backfill)")
168 results["production"] = {"annual_kwh": A["annual"], "pct_load": A["pct_load"],
169 "cov_winter": A["cov_winter"], "cov_summer": A["cov_summer"],
170 "cov_aug": A["cov_aug"], "meets_all_seasons": A.get("meets_all_seasons")}
171
172 # ---------- NEC deltas vs Path B ----------
173 checks = [
174 ("690.7", "PASS", f"Max system voltage {s01['string_cold_voc_V']}V (7S) <= 480V design / 500V abs (validated x4 strings)."),
175 ("690.8(A)", "PASS", f"Per string Isc x1.25 = {round(isc*1.25,1)}A; 1 string/MPPT -> Isc {isc}A <= 25A MPPT rating, Imp {imp}A <= 17A input."),
176 ("690.9(A) Ex", "PASS", "NO PV source fusing: exactly 1 string per MPPT (no parallel strings) on either 6000XP."),
177 ("690.9 / 710.15", "PASS", f"AC OCPD: per-unit {r_ac_unit['ocpd_A']}A 2-pole x2 (8AWG) at the parallel busbar; combined {r_ac_comb['ocpd_A']}A (4AWG) to main panel."),
178 ("690.11/690.41(B)", "PASS", "Each 6000XP has integrated PV AFCI + GFDI/isolation (x2 units)."),
179 ("690.12", "VERIFY-AHJ", "Each 6000XP supplies an RSD initiator if required; same ground-mount/AHJ question as Phase 1/Path B."),
180 ("690.13/690.15", "PASS", "Each 6000XP integrated DC disconnect; bank + per-pack + per-inverter disconnects."),
181 ("690.9/480.9/706.31", "PASS", f"{n_classT}x {pack_fuse}A Class-T (2 packs + 2 inverter inputs), 20kAIC, <= 2/0 cable 175A."),
182 ("705", "N/A", "Off-grid. Two inverters PARALLELED (EG4 parallel kit), not utility-interactive; main panel subfed, main breaker locked off."),
183 ("706.7", "PASS", f"2-pack bank on a busbar feeding 2 inverters; bank {i_bank:.0f}A split {i_pack:.0f}A/pack (17% under 150A BMS) and {i_inv:.0f}A/inverter (14A under 140A)."),
184 ("706.x comms", "VERIFY", "TWO JK->Pylontech-CAN links (one per 6000XP) to configure (Swarm §9). Open-loop fallback viable."),
185 ("Redundancy", "NOTE", "N+1: one 6000XP can keep ~half the system (8kW PV / 6kW AC) running if the other fails."),
186 ("690.53/54/56", "ACTION", f"Labels: max system voltage {s01['string_cold_voc_V']}V, 2x inverter output ratings, disconnects, battery hazard."),
187 ]
188 print("\n NEC DELTAS (Path A vs Path B):")
189 for sec, st, ev in checks:
190 print(f" {sec:<20} {st:<11} {ev}")
191 results["nec_checks"] = [{"section": s, "status": st, "evidence": e} for s, st, e in checks]
192
193 dump_result("11_pathA", results)
194
195
196if __name__ == "__main__":
197 main()
scripts/README.md +24 -0
……@@ -0,0 +1,24 @@
1# scripts/ — grounded calc scaffold
2
3Each script reads `../site.yaml`, prints its inputs + the formula/NEC section it used,
4and refuses to emit a number while a required input is still `null`/`CONFIRM`.
5They are **stubs with `raise SystemExit("TODO…")`** — the fresh session fills in the
6real library calls. Do not delete the TODO until the calc is actually implemented.
7
8Run order:
91. `01_string_sizing.py` — vocmax cold-Voc (NEC 690.7) + pvlib cross-check → modules/string, strings/MPPT. **Binding safety constraint.**
102. `02_production.py` — PVWatts v8 / PySAM annual + winter kWh, per-MPPT power check.
113. `03_conductors.py` — NEC 690.8 ampacity + 310.15 derates → gauges; voltage drop per run; battery Class-T fuse.
124. `04_battery.py` — discharge current vs inverter + JK-BMS limits, C-rate, runtime.
135. `06_schematics.py` — schemdraw SLD + DC-string + battery-wiring → `../artifacts/` (PNG+SVG), using the validated numbers.
14
15`common.py` — `load_site()`, `require()` (hard-fails on unconfirmed inputs), print helpers.
16
17Discipline (from `../CLAUDE.md`): **no number in the final design that didn't come out of one of these scripts.** If you need a value, implement the calc — don't estimate it inline.
18
19Setup:
20```
21python -m venv .venv && source .venv/bin/activate
22pip install -r ../requirements.txt
23export NREL_API_KEY=... # developer.nrel.gov (verify host: developer.nlr.gov as of 2026-05-29)
24```
scripts/__pycache__/03_conductors.cpython-313.pyc +0 -0
(no content changes — binary or rename)
scripts/__pycache__/common.cpython-313.pyc +0 -0
(no content changes — binary or rename)
scripts/__pycache__/nec_tables.cpython-313.pyc +0 -0
(no content changes — binary or rename)
scripts/common.py +133 -0
……@@ -0,0 +1,133 @@
1"""Shared helpers for the PRSM electrical-review scripts.
2
3Every script imports `load_site()` and prints its inputs + the formula/NEC section
4it used, so results are traceable. No script hard-codes a design number that
5belongs in site.yaml. Each calc script also dumps its load-bearing outputs to
6artifacts/results/<name>.json so downstream scripts (06_schematics) and the
7markdown deliverables pull *computed* numbers, never re-keyed estimates.
8"""
9from __future__ import annotations
10import csv
11import json
12import pathlib
13import sys
14
15try:
16 import yaml
17except ImportError:
18 sys.exit("pip install pyyaml (add to requirements if missing)")
19
20ROOT = pathlib.Path(__file__).resolve().parent.parent
21SITE = ROOT / "site.yaml"
22RESULTS = ROOT / "artifacts" / "results"
23DATA = ROOT / "data"
24
25
26def load_usage(name: str = "hardwick_usage.csv") -> list[dict]:
27 """Load a saved billing-usage series (newest first) for reuse in calcs.
28 Skips '#' provenance comment lines. Raw fields net_kwh (int) and bill_amount
29 (float, USD net cost) come from the ledger; avg_cost_per_kwh is COMPUTED here
30 (bill_amount / net_kwh) so it never drifts from the raw data.
31 Source data lives in data/<name>.csv (see its header for provenance)."""
32 path = DATA / name
33 with open(path) as f:
34 lines = [ln for ln in f if ln.strip() and not ln.lstrip().startswith("#")]
35 rows = list(csv.DictReader(lines))
36 for r in rows:
37 r["net_kwh"] = int(r["net_kwh"])
38 if r.get("bill_amount") not in (None, ""):
39 r["bill_amount"] = float(r["bill_amount"])
40 r["avg_cost_per_kwh"] = round(r["bill_amount"] / r["net_kwh"], 4)
41 return rows
42
43
44def _deep_merge(base: dict, over: dict) -> dict:
45 """Recursively merge `over` onto `base`. Nested dicts merge key-by-key; scalars
46 and lists REPLACE. Used to overlay the phase2: block onto the base config."""
47 out = dict(base)
48 for k, v in over.items():
49 if isinstance(v, dict) and isinstance(out.get(k), dict):
50 out[k] = _deep_merge(out[k], v)
51 else:
52 out[k] = v
53 return out
54
55
56def load_site(phase2: bool = False) -> dict:
57 """Load site.yaml. With phase2=True, deep-merge the `phase2:` block over the base
58 so site.yaml stays the single source and Phase-1 still reproduces untouched.
59 Adds cfg['_phase'] ('phase1'|'phase2') for downstream branching/suffixing."""
60 with open(SITE) as f:
61 cfg = yaml.safe_load(f)
62 if phase2:
63 overlay = cfg.get("phase2")
64 if not overlay:
65 raise SystemExit("[BLOCKED] --phase2 requested but no phase2: block in site.yaml")
66 cfg = _deep_merge(cfg, overlay)
67 cfg["_phase"] = "phase2"
68 else:
69 cfg["_phase"] = "phase1"
70 return cfg
71
72
73def is_phase2(cfg: dict) -> bool:
74 return cfg.get("_phase") == "phase2"
75
76
77def suffix(cfg: dict) -> str:
78 """Results-filename suffix so Phase-2 runs don't clobber Phase-1 JSONs."""
79 return "_phase2" if is_phase2(cfg) else ""
80
81
82def require(cfg: dict, dotted: str):
83 """Fetch a nested key like 'panel.voc_v'; fail loudly if it's still null/CONFIRM."""
84 node = cfg
85 for part in dotted.split("."):
86 node = node[part]
87 if node is None or (isinstance(node, str) and "CONFIRM" in node):
88 raise SystemExit(
89 f"[BLOCKED] site.yaml:{dotted} is unconfirmed ({node!r}). "
90 "Confirm it from the datasheet/owner before this calc is valid."
91 )
92 return node
93
94
95def get(cfg: dict, dotted: str, default=None):
96 """Soft fetch; returns default if missing/null rather than failing."""
97 node = cfg
98 try:
99 for part in dotted.split("."):
100 node = node[part]
101 except (KeyError, TypeError):
102 return default
103 return default if node is None else node
104
105
106def banner(title: str):
107 print("=" * 72)
108 print(title)
109 print("=" * 72)
110
111
112def result(label: str, value, unit: str = "", basis: str = ""):
113 line = f" {label:<34} {value} {unit}".rstrip()
114 if basis:
115 line += f" [{basis}]"
116 print(line)
117
118
119def dump_result(name: str, data: dict):
120 """Persist a script's computed outputs for downstream consumption."""
121 RESULTS.mkdir(parents=True, exist_ok=True)
122 path = RESULTS / f"{name}.json"
123 with open(path, "w") as f:
124 json.dump(data, f, indent=2, default=str)
125 print(f"\n -> wrote {path.relative_to(ROOT)}")
126
127
128def load_result(name: str) -> dict:
129 path = RESULTS / f"{name}.json"
130 if not path.exists():
131 raise SystemExit(f"[BLOCKED] {path} missing — run the upstream script first.")
132 with open(path) as f:
133 return json.load(f)
scripts/nec_tables.py +95 -0
……@@ -0,0 +1,95 @@
1"""NEC table data, encoded and cited, for the conductor calcs.
2Values transcribed from the National Electrical Code (2023). Copper only.
3Each table notes its NEC reference so the design narrative can cite it.
4"""
5
6# --- Table 310.16 — Allowable ampacities, copper, not more than 3 CCC, 30C ambient ---
7# AWG : (60C, 75C, 90C)
8T310_16 = {
9 "14": (15, 20, 25), "12": (20, 25, 30), "10": (30, 35, 40),
10 "8": (40, 50, 55), "6": (55, 65, 75), "4": (70, 85, 95),
11 "3": (85, 100, 110), "2": (95, 115, 130), "1": (110, 130, 145),
12 "1/0": (125, 150, 170), "2/0": (145, 175, 195), "3/0": (165, 200, 225),
13 "4/0": (195, 230, 260), "250": (215, 255, 290), "300": (240, 285, 320),
14 "350": (260, 310, 350), "400": (280, 335, 380), "500": (320, 380, 430),
15 "600": (355, 420, 475),
16}
17
18# --- Chapter 9, Table 8 — DC resistance at 75C, uncoated copper, stranded, ohm/kFT ---
19T8_DCRES = {
20 "14": 3.14, "12": 1.98, "10": 1.24, "8": 0.778, "6": 0.491, "4": 0.308,
21 "3": 0.245, "2": 0.194, "1": 0.154, "1/0": 0.122, "2/0": 0.0967,
22 "3/0": 0.0766, "4/0": 0.0608, "250": 0.0515, "300": 0.0429, "350": 0.0367,
23 "400": 0.0321, "500": 0.0258, "600": 0.0214,
24}
25
26# --- Table 310.15(B)(1)(1) — Ambient temp correction, 30C-based, by column ---
27# (low, high) inclusive C : (f60, f75, f90)
28T310_15B = [
29 (-100, 10, (1.29, 1.20, 1.15)),
30 (11, 15, (1.22, 1.15, 1.12)),
31 (16, 20, (1.15, 1.11, 1.08)),
32 (21, 25, (1.08, 1.05, 1.04)),
33 (26, 30, (1.00, 1.00, 1.00)),
34 (31, 35, (0.91, 0.94, 0.96)),
35 (36, 40, (0.82, 0.88, 0.91)),
36 (41, 45, (0.71, 0.82, 0.87)),
37 (46, 50, (0.58, 0.75, 0.82)),
38 (51, 55, (0.41, 0.67, 0.76)),
39 (56, 60, (0.00, 0.58, 0.71)),
40]
41
42# --- Table 310.15(C)(1) — Adjustment for >3 current-carrying conductors ---
43def fill_factor(ccc: int) -> float:
44 if ccc <= 3:
45 return 1.00
46 if ccc <= 6:
47 return 0.80
48 if ccc <= 9:
49 return 0.70
50 if ccc <= 20:
51 return 0.50
52 if ccc <= 30:
53 return 0.45
54 return 0.40
55
56# --- 240.4(D) — Small-conductor max OCPD (copper) ---
57T240_4D = {"14": 15, "12": 20, "10": 30}
58
59# --- 240.6(A) — Standard OCPD ampere ratings ---
60STD_OCPD = [15, 20, 25, 30, 35, 40, 45, 50, 60, 70, 80, 90, 100, 110, 125,
61 150, 175, 200, 225, 250, 300, 350, 400, 450, 500]
62
63# --- Table 250.122 — Min equipment grounding conductor by OCPD (copper AWG) ---
64T250_122 = [(15, "14"), (20, "12"), (60, "10"), (100, "8"), (200, "6"),
65 (300, "4"), (400, "3"), (500, "2"), (600, "1")]
66
67AWG_ORDER = ["14", "12", "10", "8", "6", "4", "3", "2", "1",
68 "1/0", "2/0", "3/0", "4/0", "250", "300", "350", "400", "500", "600"]
69
70
71def temp_factor(ambient_c: float, col: str) -> float:
72 idx = {"60": 0, "75": 1, "90": 2}[col]
73 for lo, hi, facs in T310_15B:
74 if lo <= ambient_c <= hi:
75 return facs[idx]
76 return 0.0
77
78
79def std_ocpd_at_least(amps: float) -> int:
80 for r in STD_OCPD:
81 if r >= amps - 1e-9:
82 return r
83 raise ValueError(f"no standard OCPD >= {amps}")
84
85
86def egc_awg(ocpd_a: float) -> str:
87 for lim, awg in T250_122:
88 if ocpd_a <= lim:
89 return awg
90 return "1/0"
91
92
93def max_ocpd_240_4d(awg: str, base_75c: float) -> float:
94 """OCPD ceiling for a conductor: small-conductor rule for 14/12/10, else 75C ampacity."""
95 return T240_4D.get(awg, base_75c)
site.yaml +184 -0
……@@ -0,0 +1,184 @@
1# PRSM electrical-review — single source of design inputs.
2# Values below were CONFIRMED against manufacturer datasheets by the review session
3# (2026-06-02) and from the owner for run-lengths + NEC cycle. Each block cites its source.
4# Discipline (CLAUDE.md): no number in the final design that a script didn't compute.
5
6site:
7 name: PRSM off-grid — Northeast Kingdom, VT
8 latitude: 44.5 # CONFIRM exact site lat (NEK); used for NSRDB pull
9 longitude: -72.0 # CONFIRM exact site lon
10 nec_cycle: "2023" # CONFIRMED by owner — VT DPS Division of Fire Safety, NEC 2023 (Art. 690 + 706)
11 # vocmax pulls NSRDB extreme temps from lat/lon; these are documented fallbacks:
12 design_low_temp_C: -40 # NEK regional record low (Bloomfield VT -45.6C historic); adversarial
13 # review upgraded this from -34 to -40 for a defensible NEC 690.7
14 # "lowest expected ambient". 7S passes at -40 (428V); script takes
15 # min(this, NSRDB) so a colder NSRDB value would still bind.
16 design_high_temp_C: 31 # ASHRAE 2% high — drives ampacity ambient correction
17
18panel: # Waaree Elite Series N-Type BiN-08-575 (Grade B "BIN-08-575B")
19 # SOURCE: Waaree USA datasheet elite-series-bin-08.pdf; cross-checked Missouri W&S, A1SolarStore
20 model: "Waaree Elite BiN-08-575 — 144 half-cut N-type TOPCon bifacial dual-glass (Grade B)"
21 pmp_w: 575
22 voc_v: 52.30 # CONFIRMED (front-side STC). NOT the 108-cell BiN-01 (39.91V).
23 vmp_v: 43.86 # CONFIRMED
24 isc_a: 13.87 # CONFIRMED
25 imp_a: 13.11 # CONFIRMED
26 voc_tempco_pct_per_C: -0.26 # CONFIRMED (Waaree thermal table) — CRITICAL for cold Voc
27 isc_tempco_pct_per_C: 0.046 # CONFIRMED
28 pmax_tempco_pct_per_C: -0.30 # CONFIRMED (used to model Vmp temp behavior w/ pvlib)
29 max_system_voltage_v: 1500 # CONFIRMED (DC1500V IEC/UL) — module not the binding limit
30 series_fuse_a: 30 # CONFIRMED max series fuse rating (datasheet)
31 cells: 144 # 144 half-cut = 72 electrical cells in series
32 cells_electrical_series: 72
33 efficiency_pct: 22.26
34 noct_c: 43
35 bifaciality: 0.80 # 80% (datasheet)
36 bifacial_rear_fraction: 0.20 # conservative rear:front irradiance for cold-Voc adder
37 # (ground-mount albedo); raises open-circuit V — see 01
38
39array:
40 active_kw_target: 8.0 # ~8 kW now (rest of pallet = future, not wired)
41 module_count: 14 # 14 x 575W = 8050 W DC — session validates final count/strings
42 array_type: "fixed_open_rack" # PVWatts array_type=0 (ground mount)
43 tilt_deg: 50 # CONFIRM with owner (winter-optimized); affects production only
44 azimuth_deg: 180 # true south
45
46inverter: # EG4 6000XP — SOURCE: EG4-6000XP Manual + Spec Sheet v1.4.4 (eg4electronics.com)
47 model: "EG4 6000XP"
48 mppt_count: 2
49 pv_max_voc_v: 500 # CONFIRMED absolute "do-not-exceed" PV Voc (warranty void above)
50 pv_design_voc_ceiling_v: 480 # CONFIRMED top of recommended DC input range — cold-Voc design target
51 mppt_v_min: 120 # CONFIRMED MPPT tracking low
52 mppt_v_max: 385 # CONFIRMED MPPT tracking high (NOT the Voc ceiling)
53 pv_startup_v: 100 # CONFIRMED (+/-10)
54 pv_max_input_a_per_mppt: 17 # CONFIRMED max usable input current per MPPT
55 pv_max_isc_a_per_mppt: 25 # CONFIRMED Isc rating per MPPT
56 pv_max_power_w: 8000 # CONFIRMED max usable PV (4000 W per MPPT)
57 pv_max_power_w_per_mppt: 4000 # CONFIRMED
58 pv_rec_max_power_w: 10000 # CONFIRMED oversizing allowance
59 ac_continuous_w: 6000 # CONFIRMED
60 ac_surge_w: 12000 # CONFIRMED (~3.5 s; 11000 W ~5 s)
61 ac_voltage: "120/240 split-phase"
62 ac_cont_a_per_leg: 25 # CONFIRMED (25 A across 240V split-phase)
63 ac_input_passthrough_a: 50 # CONFIRMED grid/gen bypass
64 batt_max_charge_a: 125 # CONFIRMED (125 A from PV; 115 A from AC)
65 batt_max_discharge_a: 140 # CONFIRMED inverter-side battery discharge limit
66 discharge_eff: 0.93 # CONFIRMED battery->AC discharge efficiency (93%)
67 mppt_eff: 0.99 # CONFIRMED peak MPPT efficiency
68 has_dc_disconnect: true # CONFIRMED integrated DC switch per MPPT
69 has_rapid_shutdown: true # CONFIRMED RSD initiator built in (external E-stop not included)
70 has_dc_afci: true # CONFIRMED integrated PV AFCI
71 has_dc_gfdi: true # CONFIRMED PV ground-fault / isolation protection
72
73battery: # Docan S3 16 kWh — SOURCE: Docan listing + JK-PB2A16S20P datasheet + EVE MB31 cell datasheet
74 model: "Docan S3 16 kWh (51.2V 314Ah, 16S1P EVE MB31, JK-PB2A16S20P 'V19' BMS)"
75 nominal_v: 51.2
76 charge_cutoff_v: 58.4 # CONFIRMED (16 x 3.65V)
77 discharge_cutoff_v: 40 # CONFIRMED (16 x 2.5V) — vendor pack cutoff
78 capacity_ah: 314 # CONFIRMED (EVE MB31 nominal)
79 usable_kwh: 16.08 # CONFIRMED (51.2 x 314 / 1000)
80 config: "16S1P"
81 cell_type: "EVE MB31 314Ah Grade A LiFePO4"
82 dod_design: 0.80 # LiFePO4 design depth-of-discharge for runtime
83 bms_continuous_a: 200 # marketed/JK config max — SOFT (see cell_continuous_a)
84 bms_recommended_a: 150 # vendor recommended continuous
85 bms_discharge_ocp_a: 150 # CONFIRMED JK datasheet discharge over-current trip (300 s delay)
86 bms_ocp_delay_s: 300 # CONFIRMED
87 bms_short_circuit_a: 300 # CONFIRMED JK short-circuit trip (20 us)
88 cell_continuous_a: 157 # CONFIRMED EVE MB31 0.5P continuous ceiling (16S1P => pack ceiling)
89 bms_continuous_charge_a: 150
90 bms_low_temp_charge_cutoff_c: -20 # CONFIRMED BMS; EVE cell only rated charge >=0C
91 heating: true # CONFIRMED by owner (2026-06-02): battery heating is PROPANE-based, on a
92 # separate (non-electrical) budget. Warms cells into the >=0C charge window
93 # -> pack charges through NEK winter. NO parasitic electrical load on the
94 # array/battery. Discharge/fuse/cable sizing unaffected. Heating itself out of
95 # electrical scope (like structure/mounting).
96 comms: "RS485 x2 + CAN(250k) + RS232 + BT; EG4 closed-loop via JK CAN=Pylontech, 6000XP 'Pylontech 2'"
97 jk_firmware: "V19 (JK-PB2A16S20P / 16S200A2B)"
98
99# One-way conductor run lengths in FEET — CONFIRMED by owner (2026-06-02).
100runs_ft:
101 array_to_combiner: 0 # No combiner box: EG4 takes one string per MPPT direct (mfr "no combiner needed")
102 combiner_to_inverter: 200 # owner: 150-250 ft trench; DESIGN at 200, script sweeps 150/200/250
103 inverter_to_battery: 10 # owner: 5-10 ft; design at 10 (conservative for Vdrop at ~126 A)
104 inverter_to_loads: 10 # owner: <10 ft AC to subfed main panel (Swarm §17)
105dc_run_sweep_ft: [150, 200, 250] # report DC Vdrop across the owner's stated range
106
107targets:
108 vdrop_dc_pct_max: 2.0
109 vdrop_battery_pct_max: 1.0
110 vdrop_ac_pct_max: 2.0
111
112# ============================================================================
113# PHASE 2 — FINAL-STATE OVERLAY (full 31-panel pallet, EG4 18kPV, 2-pack bank)
114# ----------------------------------------------------------------------------
115# Loaded by common.load_site(phase2=True), which DEEP-MERGES this block over the
116# base config above. site.yaml stays the single source; the base (Phase-1) values
117# are untouched so Phase-1 still reproduces. Scripts run with --phase2 to apply
118# this overlay and write *_phase2.json results.
119#
120# Owner decisions (CONFIRMED 2026-06-03, this session):
121# - SELECTED BUILD = PATH A: add a 2nd EG4 6000XP (keep the existing one), 28 panels
122# (4x7S), 3 panels held as spares. Computed by scripts/11_pathA.py; deliverables in
123# artifacts/phase2/. (Owner picked A for spares + N+1 redundancy + lower cost.)
124# - 2x Docan S3 packs (Swarm §6 minimum; 25.7 kWh usable).
125# - Battery adjacent to inverter (~10 ft, as Phase-1); 200 ft trench reused.
126#
127# The phase2: block BELOW encodes PATH B (1x EG4 18kPV) — the RETAINED ALTERNATIVE
128# (deliverables in artifacts/phase2-pathB/). Reproduce Path B with: scripts/0N.py --phase2.
129# Path A uses the BASE inverter: block (6000XP) x2 via 11_pathA.py (no overlay needed).
130# ============================================================================
131phase2:
132 array:
133 module_count: 31 # full Waaree pallet = 17.825 kW DC (31 x 575 W)
134 active_kw_target: 17.825
135
136 inverter: # EG4 18kPV-12LV — SOURCE: EG4 18kPV Spec Sheet v1.4.3
137 # (eg4electronics.com/.../EG4-18KPV-12LV-Spec-Sheet.pdf),
138 # model 18KPV-12LV / IV-12000-HYB-AW; ETL/cULus, UL1741 SA/SB/PCS.
139 # CONFIRMED from the datasheet this session (2026-06-03).
140 model: "EG4 18kPV-12LV (48V split-phase hybrid)"
141 mppt_count: 3 # CONFIRMED
142 inputs_per_mppt: [2, 1, 1] # CONFIRMED: MPPT1 takes 2 strings, MPPT2/3 one each -> max 4 strings
143 pv_max_usable_a_per_mppt: [25, 15, 15] # CONFIRMED max USABLE input current per MPPT
144 pv_max_isc_a_per_mppt: [31, 19, 19] # CONFIRMED max SHORT-CIRCUIT input current per MPPT
145 pv_max_voc_v: 600 # CONFIRMED absolute DC input ceiling (warranty void / damage above 600)
146 pv_design_voc_ceiling_v: 550 # CONFIRMED "MPPT voltage high protection" — inverter FAULTS above this;
147 # the practical cold-Voc design ceiling (the 690.7 hard limit is 600).
148 mppt_v_min: 140 # CONFIRMED MPPT operating-range low
149 mppt_v_max: 500 # CONFIRMED MPPT operating-range high
150 mppt_v_nominal: 360 # CONFIRMED nominal MPPT voltage (best-practice design target)
151 pv_startup_v: 100 # CONFIRMED unit startup voltage
152 pv_max_power_w: 18000 # CONFIRMED "maximum utilized solar power"
153 pv_rec_max_power_w: 21000 # CONFIRMED "recommended maximum solar input"
154 ac_continuous_w: 12000 # CONFIRMED @240V (10400 W @208V) backup/off-grid output
155 ac_cont_a: 50 # CONFIRMED max output current
156 ac_cont_w_per_120v_leg: 8000 # CONFIRMED backup/UPS max continuous line wattage per 120V leg
157 ac_surge_w_with_pv_5min: 15500 # CONFIRMED peak w/ PV (5 min); 14700 W @10 min
158 ac_surge_w_no_pv_10min: 13500 # CONFIRMED peak w/o PV (10 min) — the battery-only surge case
159 ac_input_a: 50 # CONFIRMED max AC input current @240V
160 ac_input_passthrough_a: 200 # CONFIRMED max AC bypass
161 gen_bypass_a: 90 # CONFIRMED generator AC bypass
162 batt_nominal_v: 48 # CONFIRMED nominal battery voltage (range 40-60 V Li)
163 batt_max_charge_a: 250 # CONFIRMED max charge current
164 batt_max_discharge_a: 250 # CONFIRMED max discharge current (the binding bank limit at 12 kW)
165 discharge_eff: 0.94 # CONFIRMED battery->grid max efficiency (94%)
166 mppt_eff: 0.975 # CONFIRMED max PV->grid efficiency
167 cec_eff: 0.969 # CONFIRMED CEC weighted efficiency
168 has_dc_disconnect: true # CONFIRMED integrated PV disconnect
169 has_rapid_shutdown: true # CONFIRMED RSD initiator (NEC 2020:690.12)
170 has_dc_afci: true # CONFIRMED PV AFCI (690.11 / UL1699B)
171 has_dc_gfdi: true # CONFIRMED PV ground-fault monitoring (690.41(B)) + leakage monitor + SPD
172 comms: "RS485 / Wi-Fi / CAN; closed-loop with EG4 48V & other brands (Docan/JK via CAN profile — confirm)"
173
174 battery:
175 pack_count: 2 # 2x Docan S3 in parallel = 32.16 kWh nameplate / 25.728 kWh usable @80% DoD
176 bank_busbar: true # packs land on a DC busbar; per-pack Class-T; bank feeds the 18kPV
177
178 # One-way run lengths in FEET — CONFIRMED by owner (2026-06-03, this session).
179 runs_ft:
180 array_to_combiner: 0 # no combiner: 18kPV takes strings direct to its 4 MPPT inputs
181 combiner_to_inverter: 200 # remaining 17 panels co-located w/ Phase-1 array; reuse the 150-250 ft trench (design 200)
182 pack_to_busbar: 5 # each pack -> bank busbar, short
183 inverter_to_battery: 10 # busbar/bank -> 18kPV, adjacent (~10 ft, as Phase-1); design at 10
184 inverter_to_loads: 10 # 18kPV AC -> subfed main panel, <10 ft (Swarm §17)