From 59e37adc09fc8ec8bcda63bc028e58991748c54f Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 20 Oct 2026 16:04:54 +0700 Subject: [PATCH] analog M3e: a source-to-bulk axis on the PSP103 log tables, so the tgate's Ron with its bulks on the rails is within 0.09 percent of ngspice -- accept_sar now 6 PASS, 1 FAIL, 6 NOT MODELLED of 13 blocks (Closes #11283) The 2-D log tables (TT_LG_N, TT_LG_P) have each bulk tied to its source, so the model had no body effect and the tgate's Ron (bulks on the rails) read 30.2 and 24.0 percent under ngspice's real cell, past the 10 percent bar: the two Ron rows of accept_sar.t27 were NOT MODELLED. This adds the third axis. - specs/analog/decks/psp103_idpa_vsb_tt.cir (FR-001, FR-004): psp103_idpa_tt.cir with the bulk of each device moved off its source (NMOS at -Vsb, PMOS at 1.5 V + Vsb); same grid, same integer encoding; Vsb = 0, 0.25, .. 1.5 V (7 slices) and 1000 held-out currents at cell centres between slices. Run twice on the reference host (ngspice-47, container, 2 threads, 46 s and 48 s), identical data rows. - specs/analog/mos_psp103_vsb_data.t27 (new, 566 kB): the six slices above 0 of both devices (12 tables) and the held-out currents, pins, the accessors vsb_tab / vsb_fine; the slice 0 is the existing 2-D table. 3 tests, including: at Vsb = 0 the read is the 2-D read bit for bit (FR-002), at a slice it is that slice's read. - specs/analog/mos_table.t27 (FR-002): lg_fine_vsb blends the log word of two slices (weights 2^22 = 0.25 V); the tail of lg_fine is factored into lg_cur and shared, not copied (lg_fine unchanged in value). 1 new test (synthetic slices, closed form). - specs/analog/mos_psp103_gates.t27 (FR-003, FR-005): gt_tg_i / ron / worst / gap take body (true: Vsb of each device follows its source, bulks on the rails; false: Vsb forced to 0, the 2-D read). Ron with the body effect: 2461.2 ohm at 0.75 V (ngspice real cell 2459.6, +0.065 percent), 2777.5 ohm worst of 27 (2776.1, +0.049 percent), largest of the 27 gaps 0.090 percent. Held-out currents between slices: 1.71 percent (NMOS), 2.51 percent (PMOS) against a bar of 3 percent. Negative controls: Vsb forced to 0 is 31.1 percent off at the worst point and refused by the same 10 percent bar; the held-out currents read with Vsb forced to 0 are 105 and 424 times off; the two devices' Vsb exchanged is 32.3 percent off. 3 new tests (9 in all). - specs/analog/accept_sar.t27: the tgate block reads the body effect; the two Ron rows are PASS (inside the 10 percent bar and the report's 30 and 50 kohm); the forced-0 read is kept as a control and still gives NOT MODELLED. Blocks 6 PASS / 1 FAIL / 6 NOT MODELLED (was 5 / 1 / 7), rows 21 / 1 / 8 (was 19 / 1 / 10). - docs/analog/accept-sar-2026-10-20.md: totals, the tgate rows, new section 3c. t27c test-report: mos_table 21/21, mos_psp103_vsb_data 3/3, mos_psp103_gates 9/9, accept_sar 14/14, and every importer (mos_psp103 40, mos_psp103_50c_data 4, sar_comparator 20, sar_comparator_psp 13, sar_kick_net 23, sar_switch 14, vacask_compare 7, psp103_inv_ax7203 15) with FAIL 0 and no vacuous pass; t27b --check: no MISMATCH on the four changed specs. No seal files are created here. Co-Authored-By: Claude Sonnet 5.5 --- docs/analog/accept-sar-2026-10-20.md | 53 +- specs/analog/accept_sar.t27 | 119 +- specs/analog/decks/psp103_idpa_vsb_tt.cir | 581 +++ specs/analog/mos_psp103_gates.t27 | 230 +- specs/analog/mos_psp103_vsb_data.t27 | 4649 +++++++++++++++++++++ specs/analog/mos_table.t27 | 117 +- 6 files changed, 5661 insertions(+), 88 deletions(-) create mode 100644 specs/analog/decks/psp103_idpa_vsb_tt.cir create mode 100644 specs/analog/mos_psp103_vsb_data.t27 diff --git a/docs/analog/accept-sar-2026-10-20.md b/docs/analog/accept-sar-2026-10-20.md index 59938dd043..81371e341c 100644 --- a/docs/analog/accept-sar-2026-10-20.md +++ b/docs/analog/accept-sar-2026-10-20.md @@ -1,10 +1,10 @@ # The external team's per-block checks applied to our SAR ADC blocks, 2026-10-20 -Issue #11212, milestone M5c of the analog epic #10486, night loop #11063; M5d (issue #11263) adds the transistor-level rows of the nand, nor, tgate and tracking_switch, cross-checked against ngspice. English, ASCII only. +Issue #11212, milestone M5c of the analog epic #10486, night loop #11063; M5d (issue #11263) adds the transistor-level rows of the nand, nor, tgate and tracking_switch, cross-checked against ngspice; M3e (issue #11283) adds a source-to-bulk axis to the PSP103 tables, which turns the tgate's two resistances from NOT MODELLED to PASS (section 3c). English, ASCII only. The external team's report of 2026-10-16 lists, for each of the 13 blocks of the golden SAR ADC, a measured value and the limit that its check enforces (conditions: tt corner, 27 C, VDD 1.5 V, cells taken from the integrated converter's netlist). The team confirmed on 2026-10-20 that the checks and their limits may be used and published here. `specs/analog/accept_sar.t27` holds those limits as named constants, one pure check function per quantity, and one function per block that measures the quantity on OUR model by `use` of the spec that holds it. This document is the result. Every "our value" below is computed by a named function of that spec and pinned by a test; every "report" value is the report's, and is also in the spec as the positive control of its check (the report's own number must pass the report's own check). -What this document does not say: nothing about a transistor-level result for the gate-level blocks (dff, clock_gen, SAR_logic), nothing about the voltage level of any digital node but the nand's and the nor's, nothing about the delay of a gate into a load, nothing about the tgate's resistance, nothing about power, noise, mismatch, another corner or temperature, or speed. No model was tuned to turn a FAIL into a PASS, and none was changed to make a number come out. +What this document does not say: nothing about a transistor-level result for the gate-level blocks (dff, clock_gen, SAR_logic), nothing about the voltage level of any digital node but the nand's and the nor's, nothing about the delay of a gate into a load, nothing about the tgate's resistance beyond the 27 outputs at 10 mV across it, nothing about power, noise, mismatch, another corner or temperature, or speed. No model was tuned to turn a FAIL into a PASS, and none was changed to make a number come out. ## 1. The verdict rule @@ -24,11 +24,11 @@ Over the 13 blocks of the report (inverter, nand, nor, tgate, dff, dynamic_compa | verdict | blocks | which | |---|---|---| -| PASS | 5 | clock_gen, SAR_logic, integration, nand, nor | +| PASS | 6 | clock_gen, SAR_logic, integration, nand, nor, tgate | | FAIL | 1 | dynamic_comparator (decision time) | -| NOT MODELLED | 7 | inverter, tgate, dff, tracking_switch, DAC_control, DAC_control_top, neg_bottom_plate_logic | +| NOT MODELLED | 6 | inverter, dff, tracking_switch, DAC_control, DAC_control_top, neg_bottom_plate_logic | -Over the 30 rows: 19 PASS, 1 FAIL, 10 NOT MODELLED (a test pins both counts: `as_all_blocks`, `as_all_rows`). Before M5d the counts were 3 / 1 / 9 blocks and 16 / 1 / 13 rows. The new PASS rows are the nand's and the nor's levels (2) and the tgate's off leakage (1); the tgate's two resistances are measured now but stay NOT MODELLED, with their numbers and the reason (section 3b). Four of the seven NOT MODELLED blocks have at least one measured, passing row (inverter 1, tgate 1, dff 2, tracking_switch 1); three have none (DAC_control, DAC_control_top, neg_bottom_plate_logic). The PASS of clock_gen and SAR_logic is the PASS of the gate-level model named in section 4, that of integration the PASS of a behavioural converter fitted to the golden deck, and that of the nand and the nor the PASS of a DC solve on the PSP103 tables, each level within 3 uV of ngspice's. +Over the 30 rows: 21 PASS, 1 FAIL, 8 NOT MODELLED (a test pins both counts: `as_all_blocks`, `as_all_rows`). Before M5d the counts were 3 / 1 / 9 blocks and 16 / 1 / 13 rows; after M5d and before M3e they were 5 / 1 / 7 blocks and 19 / 1 / 10 rows. The M5d PASS rows are the nand's and the nor's levels (2) and the tgate's off leakage (1); the M3e PASS rows are the tgate's two resistances (2), read on tables with a source-to-bulk axis (section 3c), so the tgate block is a PASS. Three of the six NOT MODELLED blocks have at least one measured, passing row (inverter 1, dff 2, tracking_switch 1); three have none (DAC_control, DAC_control_top, neg_bottom_plate_logic). The PASS of clock_gen and SAR_logic is the PASS of the gate-level model named in section 4, that of integration the PASS of a behavioural converter fitted to the golden deck, and that of the nand, the nor and the tgate the PASS of a DC solve on the PSP103 tables, each nand and nor level within 3 uV of ngspice's and the tgate's Ron within 0.1 percent of ngspice's real cell. The report's corners smoke suite (SAR inverter delay 62 to 124 ps, comparator decision 467 to 829 ps over 5 corners at -40, 27 and 125 C) is a test run, not a block, and is not in the 13. It is NOT MODELLED (last row of the table). @@ -44,8 +44,8 @@ Times in ps or ns as written. "Report" is the report's measured value; "limit" i | nand | levels into 10 fF (DC solve, worst level of the 4 inputs) | 1 levels 1.5 V - 0.18 / 0.48 / 0.48 uV; 0 level 0.18 uV | 1.5 V for a 1, microvolts for a 0 | 1.45 to 1.55 V; +-50 mV | PASS (within 2.4 uV of ngspice) | `gt_levels` | | nor | truth table 00, 01, 10, 11 (logic level) | 1, 0, 0, 0 | rows right | exact | PASS | `sl_nor_code` | | nor | levels into 10 fF (DC solve, worst level of the 4 inputs) | 1 level 1.5 V - 1.85 uV; 0 levels 0.06 uV | 1.5 V for a 1, microvolts for a 0 | 1.45 to 1.55 V; +-50 mV | PASS (within 1.1 uV of ngspice) | `gt_levels` | -| tgate | Ron at 0.75 V (10 mV across it) | 1718 ohm, no body effect; ngspice's real cell 2460 ohm, 30.2 % above | 2.44 kohm | <= 30 kohm | NOT MODELLED (cross-check bar 10 %) | `gt_tg_ron` | -| tgate | worst Ron over 0.1 to 1.4 V (27 points) | 2109 ohm at 1.15 V, no body effect; ngspice's real cell 2776 ohm at 1.0 V, 24.0 % above | 2.78 kohm | <= 50 kohm | NOT MODELLED (cross-check bar 10 %) | `gt_tg_worst` | +| tgate | Ron at 0.75 V (10 mV across it) | 2461.2 ohm with the body effect (bulks on the rails); ngspice's real cell 2459.6 ohm, +0.065 % | 2.44 kohm | <= 30 kohm | PASS (within 10 % of ngspice) | `gt_tg_ron` | +| tgate | worst Ron over 0.1 to 1.4 V (27 points) | 2777.5 ohm at 1.0 V with the body effect; ngspice's real cell 2776.1 ohm at 1.0 V, +0.049 % | 2.78 kohm | <= 50 kohm | PASS (within 10 % of ngspice) | `gt_tg_worst` | | tgate | off leakage (full swing) | 291.0 pA; ngspice 285.6 pA at the output source, 271.4 pA at the input source | 0.29 nA | <= 1 nA | PASS (within 7.2 % of ngspice) | `gt_tg_off` | | dff | edge capture, hold, set, reset (logic level, 11 stages) | all right | all right | exact | PASS | `as_sar_run`, `as_dff_set_reset` | | dff | levels of the 8 observation points | not produced | all right | +-50 mV | NOT MODELLED | | @@ -84,8 +84,8 @@ Every number in this table is printed by a deck of `specs/analog/decks` run in n | nor 01, 0 level | 0.060 uV | 0.634 uV | -0.575 uV | 10 uV | microvolts | +-50 mV | PASS | | nor 10, 0 level | 0.060 uV | 0.617 uV | -0.557 uV | 10 uV | microvolts | +-50 mV | PASS | | nor 11, 0 level | 0.060 uV | 0.611 uV | -0.552 uV | 10 uV | microvolts | +-50 mV | PASS | -| tgate Ron at 0.75 V | 1718.0 ohm | 2459.6 ohm (real cell) | -741.6 ohm, -30.2 % | 10 % | 2.44 kohm | <= 30 kohm | NOT MODELLED | -| tgate worst Ron, 27 points 0.10 to 1.40 V | 2109.3 ohm (1.15 V) | 2776.1 ohm (real cell, 1.0 V) | -666.8 ohm, -24.0 % | 10 % | 2.78 kohm | <= 50 kohm | NOT MODELLED | +| tgate Ron at 0.75 V | 2461.2 ohm (with the body effect; 1718.0 ohm with Vsb forced to 0) | 2459.6 ohm (real cell) | +1.6 ohm, +0.065 % (-741.6 ohm, -30.2 % with Vsb forced to 0) | 10 % | 2.44 kohm | <= 30 kohm | PASS (NOT MODELLED with Vsb forced to 0) | +| tgate worst Ron, 27 points 0.10 to 1.40 V | 2777.5 ohm (1.0 V; 2109.3 ohm at 1.15 V with Vsb forced to 0) | 2776.1 ohm (real cell, 1.0 V) | +1.4 ohm, +0.049 % (-666.8 ohm, -24.0 % with Vsb forced to 0) | 10 % | 2.78 kohm | <= 50 kohm | PASS (NOT MODELLED with Vsb forced to 0) | | tgate off leakage, 1.5 V across | 291.0 pA | 285.6 pA (output source), 271.4 pA (input source) | +5.4 pA (+1.9 %), +19.7 pA (+7.2 %) | 10 % | 0.29 nA | <= 1 nA | PASS | | tracking error, 0.2 V into 3.93 pF | -1.967 uV | +0.287 uV | -2.253 uV | 10 uV | < 1 uV at 0.3 V and 1.2 V into 2 pF | +-5 mV | PASS | | tracking error, 1.3 V into 3.93 pF | -1.967 uV | -0.174 uV | -1.793 uV | 10 uV | as above | +-5 mV | PASS | @@ -97,7 +97,7 @@ What the numbers say, one by one. - nand and nor levels. All eight levels, ours and ngspice's, are microvolts from the rail (1.5 V or 0 V): the report's "microvolts for a 0" is ngspice's too. The largest difference is 2.358 uV (the nand's 11, where the model's current floor leaves 0.18 uV and ngspice 2.54 uV); the bar of 10 uV was set at four times the worst difference and the verdict does not depend on it, since the limit is 50 mV. The levels are the DC solution with no load, which is the level a gate settles to into 10 fF; no transient is run, so nothing is said about how fast a gate gets there. - tgate off leakage. Ours is the sum of the two table words at Vgs = 0, Vds = 1.5 V (the NMOS 261 pA, the PMOS 30 pA). ngspice's two sources differ by 14 pA (285.6 pA at the output, 271.4 pA at the input), the size of a junction leakage that sits in different terminals of the two; the terms are not separated here, and our number is within the 10 percent bar of both, and the report's 0.29 nA is ngspice's output-source number rounded. -- tgate Ron. Both resistances are NOT MODELLED because the model is 30 and 24 percent under the real cell, and the cause is measured, not guessed: the tables have no source-to-bulk voltage, and the real tgate has its bulks on the rails, so at 0.75 V the NMOS source sits 0.75 V above its bulk and the PMOS source 0.75 V below its bulk, which raises both thresholds. The deck `accept_tgate.cir` runs the same two devices again with each bulk tied to its own source, the condition the tables were made under: there ngspice gives 1717.2 ohm at 0.75 V and 2108.4 ohm at the worst point, and the model is within 0.06 percent of it at all 27 points (0.0588 percent at the largest). The gap to the real cell is largest at 0.85 V (31.1 percent) and the model is under the real cell at every one of the 27 points. Both resistances are far inside their limits (30 and 50 kohm); the rows are not PASS because the number is not the cell's number. +- tgate Ron. Before M3e both resistances were NOT MODELLED because the model was 30 and 24 percent under the real cell, and the cause was measured, not guessed: the 2-D tables have no source-to-bulk voltage, and the real tgate has its bulks on the rails, so at 0.75 V the NMOS source sits 0.75 V above its bulk and the PMOS source 0.75 V below its bulk, which raises both thresholds. The deck `accept_tgate.cir` runs the same two devices again with each bulk tied to its own source, the condition the tables were made under: there ngspice gives 1717.2 ohm at 0.75 V and 2108.4 ohm at the worst point, and the model is within 0.06 percent of it at all 27 points (0.0588 percent at the largest). The gap to the real cell was largest at 0.85 V (31.1 percent) and the model was under the real cell at every one of the 27 points. Both resistances were far inside their limits (30 and 50 kohm); the rows were not PASS because the number was not the cell's number. With the source-to-bulk axis (section 3c) the model reads each device at the Vsb its source has, and the two resistances are 2461.2 and 2777.5 ohm, +0.065 and +0.049 percent from the real cell (the largest of the 27 gaps is 0.090 percent, at 0.65 V), so both rows are measured, inside the 10 percent bar and inside the report's limits: PASS. The read with Vsb forced to 0 is kept as the negative control and is still refused by the bar. - tracking error. The square-law model (`sar_switch.t27`) tracks to -1.967 uV, the arithmetic floor; the PSP103 cell tracks to +0.287 and -0.174 uV (a settling residue, either sign); the 2.3 uV between them is under the bar of 10 uV and 2000 times under the limit. At the report's own conditions (0.3 V and 1.2 V into 2 pF) the PSP103 cell tracks to +0.346 and +0.350 uV; our model is not run at those two conditions (its load and its levels are fixed in `sar_switch.t27`), and the DC error is the model's floor at every level it has been run at. - hold step and droop. The model has no gate capacitance and no leakage, so it produces neither, and the rows stay NOT MODELLED as before. What is new is ngspice's number for the same cell with the foundry's model: -1.596 and -1.730 mV at the report's conditions (the report's -1.6 and -1.7 mV), and -0.812 and -0.890 mV into our 3.93 pF (the charge injection spreads over a larger capacitor). The droop is zero at the six digits ngspice prints (under 10 uV) over the 413 ns of hold. @@ -114,11 +114,32 @@ The same ngspice runs that serve as the reference give the numbers the external | switch hold step at 1.2 V into 2 pF | -1.7 mV | -1.730 mV | -0.030 mV (the report gives two digits) | | switch tracking error, both levels | < 0.001 mV | 0.35 uV | inside | +## 3c. The body effect of the tgate (M3e, issue #11283) + +The 2-D log tables of both devices (`TT_LG_N`, `TT_LG_P`) are made with each bulk on its own source. The tgate's bulks are on the rails, so its Ron is 30 percent above the 2-D model's at 0.75 V (section 3b). M3e adds a third axis, the source-to-bulk voltage Vsb, and reads the tgate on it. + +- The data. `specs/analog/decks/psp103_idpa_vsb_tt.cir` is `psp103_idpa_tt.cir` with the bulk of each device moved off its source (the NMOS bulk at -Vsb, the PMOS bulk at 1.5 V + Vsb) and prints the same table, with the same grid and the same integer encoding, at Vsb = 0, 0.25, .. 1.5 V (7 slices), and 1000 held-out currents at centres of the cells of the (Vgs, Vds, Vsb) grid, Vsb halfway between two slices (0.125, 0.375, .. 1.375 V). Run twice on the reference host (ngspice-47, a container, 2 threads, 46 s and 48 s); the data rows of the two logs are identical. The six slices above 0 of each device, 12 tables of 4851 words, and the held-out currents are in `specs/analog/mos_psp103_vsb_data.t27` (566 kB); the slice 0 is the existing 2-D table (the deck's own slice 0 agrees with it in all but 4 and 3 of 4753 words, by at most 3 words, solver noise, and is not pasted). +- The read. `lg_fine_vsb` of `mos_table.t27` reads the two slices around a Vsb and blends their log word linearly (weights 2^22 units = 0.25 V), then takes the same exp and Vds factor as the 2-D read (the tail is now one function, `lg_cur`, used by both). At Vsb = 0 it is the 2-D read to the word (a test over a lattice of 70 x 42 points per device, both devices); at a slice's own voltage it is that slice's 2-D read; above the supply it is the top slice. +- The tgate. Conducting, the NMOS source is the output Vout, so its Vsb is Vout, and the PMOS source is the input Vout + 10 mV, so its Vsb is 1.5 V - (Vout + 10 mV). `gt_tg_i` with body true reads each device there; with body false it forces Vsb to 0 and is the 2-D read. + +| quantity | ours, 2-D (Vsb forced to 0) | ours, with Vsb | ngspice real cell | gap, with Vsb | +|---|---|---|---|---| +| Ron at 0.75 V | 1718.0 ohm | 2461.2 ohm | 2459.6 ohm | +0.065 % | +| worst Ron of the 27 points (1.0 V) | 2109.3 ohm (1.15 V) | 2777.5 ohm | 2776.1 ohm | +0.049 % | +| largest of the 27 gaps | 31.1 % | 0.090 % (at 0.65 V) | | | +| held-out currents, relative error, floor 1 nA | NMOS 10481 %, PMOS 42404 % | NMOS 1.71 %, PMOS 2.51 % | 1000 points, 898 and 818 above the floor | bar 3 % | + +The bar of 10 percent holds by a factor of 110 on the Ron, so the tgate's rows pass the cross-check rule of section 1 and are PASS: inside the report's 30 and 50 kohm as well. The held-out error is larger, as it should be: a chord of the log word over 0.25 V of Vsb is exact where the threshold moves linearly with Vsb and is not where it bends (the square-root law is steepest near Vsb = 0), and the 2-D read's own 0.47 and 0.70 percent at its cell centres are in the number; the bar is 3 percent and the read is 1.2 times under it for the PMOS. The Ron check needs less than that: the same tables read with a floating-point twin of the reader (a scratch run) give the 27 Ron points within 0.09 percent with 7 slices, 0.29 percent with 4 slices (0.5 V apart), 0.58 percent with 3 and 1.2 percent with the two end slices alone, and the held-out error is 2.5, 5.8 and 14 percent for 7, 4 and 3 slices; the seven were kept because the data is modest and the held-out error is what a later user of the axis meets. + +What the data say, besides: the current of both devices falls with Vsb at every node above 0.25 V of gate drive (a test over 2 x 6 x 3969 nodes); at Vgs = 0.25 V, Vds = 1.5 V the NMOS current falls by a factor 92 from Vsb = 0 to 1.5 V and the PMOS current by 922. Below 0.25 V of gate drive the PMOS off current at Vsb above 0.5 V is held at the 1 IUNIT (1.164 pA) floor of the log word and the junction leakage that rises with Vsb is not resolved there; the off leakage row of the tgate uses Vsb = 0 for both devices, which is right (a gate off at full swing has each source on its own rail). + +What this does not say: the tgate at another corner, temperature or size (tt, 27 C, W 1.0 um and 3.0 um, L 0.45 um only); a bulk forward-biased against its source (Vsb below 0); the comparator, the switch or any cell other than the tgate, which are not read on the axis. + ## 4. What each model is, and what that means for the verdict - inverter. The PSP103 tables of the SG13G2 NMOS (W 1.0 um) and PMOS (W 3.0 um), tt, 27 C, current in the log domain (`mos_psp103.t27`, M3c-2). The threshold is the input at which the DC transfer falls through Vdd / 2: 0.689243 V on the log tables, 0.689252 V on the linear ones; ngspice's trip point is 0.689 V and the report's 0.69 V. The delays into 20 fF are NOT MODELLED: the model's transient is validated at 500 fF (tpLH 1.344 ns, tpHL 1.018 ns) and 10 pF only, and a gate edge kicks the output 5 times further at 20 fF than at the 100 fF that `mos_psp103.t27` already says leaves the tables' 0 to Vdd range. Those 500 fF delays are not compared with the 1 to 500 ps limit: they are a different load. - nand, nor. Two rows each. The truth table is at gate level (`sar_logic.t27`: a gate is a delay and a truth table, a value is 0, 1 or X and never a voltage). The levels in volts are the DC solution of the two-input gate on the same PSP103 log tables as the inverter (`mos_psp103_gates.t27`, M5d): the nand is two NMOS in series against two PMOS in parallel, the nor the same seen from the supply, each device the W and L of the golden netlist's (NMOS 1.0 um, PMOS 3.0 um, L 0.45 um), so no new table was made. The solver is the inverter's bisection with the stack's middle node solved inside it (a second bisection); the currents are read by the integer log-domain reader in steps of 1.164 pA and the output has a resolution of 59.6 nV. Every level of both gates is within 3 uV of ngspice's run of the same cell, and microvolts from its rail. -- tgate. The same tables and the same reader (`mos_psp103_gates.t27`): conducting, the NMOS reads (Vdd - Vout, 10 mV) and the PMOS (Vin, 10 mV), and R is 10 mV over the sum, at 27 outputs from 0.10 V to 1.40 V (the measurement of `sar_off_ron.cir`); off, both devices sit at Vgs = 0, Vds = 1.5 V and the leakage is the sum of their two table words. The leakage is a row. The two resistances are NOT MODELLED: the tables are made with source and bulk on one rail and have no body effect, and the real cell's bulks are on the rails, so ngspice's real cell is 30 and 24 percent above the model (section 3b); with each bulk tied to its own source ngspice and the model agree to 0.06 percent, which is how the cause was found. The 2592 ohm of a golden tgate in `sar_kick.t27` is a different measurement (50 C, the golden deck's own bias) and is not compared. +- tgate. The same tables and the same reader (`mos_psp103_gates.t27`): conducting, the NMOS reads (Vdd - Vout, 10 mV) and the PMOS (Vin, 10 mV), and R is 10 mV over the sum, at 27 outputs from 0.10 V to 1.40 V (the measurement of `sar_off_ron.cir`); off, both devices sit at Vgs = 0, Vds = 1.5 V and the leakage is the sum of their two table words. The leakage is a row, and so are the two resistances since M3e: the NMOS bulk is on ground and the PMOS bulk on the supply, so while the gate conducts the NMOS source (the output) is Vout above its bulk and the PMOS source (the input, Vout + 10 mV) is 1.5 V - (Vout + 10 mV) below its; each device is read on the tables at that source-to-bulk voltage (`gt_tg_i` with body true, section 3c). Without the axis (body false) the 2-D tables are made with source and bulk on one rail, and ngspice's real cell is 30 and 24 percent above the model (section 3b); with each bulk tied to its own source ngspice and the 2-D model agree to 0.06 percent, which is how the cause was found. The 2592 ohm of a golden tgate in `sar_kick.t27` is a different measurement (50 C, the golden deck's own bias) and is not compared. - dff. Gate level (`sar_logic.t27`): capture, hold, set, reset and the clock-to-Q delay are measured on it; the levels in volts are NOT MODELLED. The dff clock-to-Q is the first stage of the sequencer, Valid rise to CK11 rise with D = VDD, 546 ps (ngspice's own is 550 ps). - dynamic_comparator. The PSP103 current tables at 50 C, the golden deck's temperature, with M4b's solver (`sar_comparator_psp.t27`). It has no charge: the devices' own capacitance is not in it, and against ngspice on the golden comparator with its charge its decision comes 98 times too fast (5.35 ps against 523 ps at +2 mV; the model is within 6.5 percent of ngspice with the charge swamped, which is the comparison the tables were built for). So the decision time FAILS the 10 ps lower limit by 4.65 ps, and the FAIL is the model's: ngspice's 523 ps on the same comparator with its charge is inside 10 to 10000 ps. The same run on the 27 C tables, the report's temperature, gives 5.12 ps and fails too. The reset row is NOT MODELLED because the run is one evaluation phase of 14 ps and the clock never falls. - tracking_switch. A SQUARE-LAW bootstrapped switch (`sar_switch.t27`, MOSFET level 1). The tracking error at DC is measured: 1.97 uV, which is the fixed-point arithmetic floor (ngspice's own on the square-law deck is 0.03 to 0.05 uV), and it is a row because ngspice's PSP103 run of the same cell at the same conditions (`accept_switch.cir`) gives +0.29 and -0.17 uV, 2.3 uV from it. The hold step and the droop are NOT MODELLED because the square law has no gate capacitance, so no charge injection, and no leakage: the model returns a step of 0.18 uV and a droop of exactly 0, which sit far inside +-30 mV and +-5 mV by having no effect at all. That is not a measurement of the effect the report's -1.6 and -1.7 mV show, so the rows are not passes; the same cell in ngspice with the foundry's model has the effect (-1.60 and -1.73 mV) and the doc shows it beside the rows. A model with the PSP103 switch is what the two rows need. @@ -168,6 +189,9 @@ Every check function accepts the report's own value and refuses a broken one, so | nand, nor levels | the wrong gate (the nand's 1 read where the nor has a 0) | 1.5 V apart | | tgate leakage | the NMOS table in both slots | 521.5 pA: inside the report's 1 nA, 82.6 percent over ngspice's, refused by the 10 percent bar | | tgate Ron | the PMOS table zeroed / the NMOS table zeroed, against the no-body-effect cell | 2895 / 4225 ohm at 0.75 V, 69 and 146 percent over, refused by the 10 percent bar | +| tgate Ron (M3e) | the real cell read with Vsb forced to 0 | 1718.0 ohm at 0.75 V and 2109.3 ohm at the worst point, inside the report's limits and 30.2 and 24.0 percent under ngspice's real cell (largest of 27 gaps 31.1 percent): refused by the 10 percent bar, rows NOT MODELLED | +| tgate Ron (M3e) | the two devices' Vsb exchanged | 2461.07 ohm at 0.75 V (symmetric cell, not seen there), the largest of the 27 gaps 32.3 percent, 358 times the right read's: refused by the bar | +| source-to-bulk read (M3e) | the 1000 held-out currents read with Vsb forced to 0 | 105 (NMOS) and 424 (PMOS) times off in relative terms against the bar of 3 percent | | DAC_control_top | a wrong code, a wrong plate code, two bits swapped, code and plate exchanged | refused (1430 + 617 = 2047, the complement pair) | Four mutants of the new code were also run and each fails tests (not committed): the nor's output not mirrored (2 tests fail), the 10 percent bar loosened to 50 percent (3), the tgate's NMOS gate drive wrong (2), and the tgate's Ron verdict made to ignore the cross-check (2, the tgate's and the counts'). @@ -176,7 +200,7 @@ A limit of the control: some of the report's limits are wide, and a model error ## 7. Not done, and why -- The 20 fF inverter delays, the tgate's two resistances, the comparator's reset, the tracking switch's hold step and droop, and the three DAC blocks are NOT MODELLED. Each needs a model that does not exist: a charge-aware inverter at 20 fF, a transmission gate with the body effect (the tables have none: a source-to-bulk dimension or a measured threshold shift per device, which the two tgate decks of M5d can validate on the real cell and on the cell with the bulks tied), a second clock phase for the comparator, a switch with gate capacitance and leakage (ngspice's PSP103 numbers for that cell, -1.60 and -1.73 mV and no droop, are in section 3b as the target), circuit-level plate drivers and latches. They are not approximated here. +- The 20 fF inverter delays, the comparator's reset, the tracking switch's hold step and droop, and the three DAC blocks are NOT MODELLED (the tgate's two resistances were too, until M3e gave the tables a source-to-bulk axis). Each needs a model that does not exist: a charge-aware inverter at 20 fF, a second clock phase for the comparator, a switch with gate capacitance and leakage (ngspice's PSP103 numbers for that cell, -1.60 and -1.73 mV and no droop, are in section 3b as the target), circuit-level plate drivers and latches. They are not approximated here. - The nand's, the nor's and the tgate's delays into a load, and their levels in a transient: M5d does the DC levels only. - The tracking error of our model at the report's own conditions (0.3 V and 1.2 V into 2 pF), see section 5. - The comparator's FAIL stays a FAIL. The cause is known and measured (no charge: 98 times too fast); the charge tables for the comparator are not made. @@ -189,8 +213,9 @@ A limit of the control: some of the report's limits are wide, and a model error ./target/release/t27c test-report specs/analog/accept_sar.t27 ./target/release/t27b test specs/analog/accept_sar.t27 --check ./target/release/t27b test specs/analog/mos_psp103_gates.t27 --check +./target/release/t27b test specs/analog/mos_psp103_vsb_data.t27 --check ``` -`accept_sar.t27` has 14 tests (the verdict rule, one for each block or group of blocks, the reference run against the report, the corners line and the counts of blocks and of rows); `mos_psp103_gates.t27` has 6 (the nand, the nor, the gates' negative controls, the tgate without and with the body effect, the leakage). Every number in sections 3 and 3b is pinned in them. `t27b test --check` exits 0 with no jit/interp mismatch. +`accept_sar.t27` has 14 tests (the verdict rule, one for each block or group of blocks, the reference run against the report, the corners line and the counts of blocks and of rows); `mos_psp103_gates.t27` has 9 (the nand, the nor, the gates' negative controls, the tgate without the body effect, the real cell against the 2-D read, the leakage, and three of M3e: the Ron with the body effect, the held-out currents between slices, the controls); `mos_psp103_vsb_data.t27` has 3 (the pins and the layout of the 12 slices, the fall of the current with Vsb, the read at Vsb = 0 against the 2-D read); `mos_table.t27` has 21 (the one of M3e: the Vsb read on two synthetic slices). Every number in sections 3, 3b and 3c is pinned in them. `t27b test --check` exits 0 with no jit/interp mismatch. -The ngspice numbers are the printed output of three decks, none changed after printing: `IHP_PDK= IHP_OSDI= ngspice -b specs/analog/decks/accept_gates.cir` (the eight gate levels and the off leakage), `accept_tgate.cir` (the conducting tgate, the real cell and the cell with its bulks on its sources, 27 points) and `accept_switch.cir` (the PSP103 tracking switch, four copies: tracking error, hold step, droop); ngspice-47 with the PSP103 of IHP-Open-PDK 21133f21, mos_tt, 27 C. The decks contain the W, L and m of the cells (facts of the circuit) and none of the golden netlist's text. +The ngspice numbers are the printed output of three decks, none changed after printing: `IHP_PDK= IHP_OSDI= ngspice -b specs/analog/decks/accept_gates.cir` (the eight gate levels and the off leakage), `accept_tgate.cir` (the conducting tgate, the real cell and the cell with its bulks on its sources, 27 points) and `accept_switch.cir` (the PSP103 tracking switch, four copies: tracking error, hold step, droop); ngspice-47 with the PSP103 of IHP-Open-PDK 21133f21, mos_tt, 27 C. M3e adds a fourth: `psp103_idpa_vsb_tt.cir` (the log-domain current tables of both devices at seven source-to-bulk voltages and 1000 held-out currents between them, section 3c). The decks contain the W, L and m of the cells (facts of the circuit) and none of the golden netlist's text. diff --git a/specs/analog/accept_sar.t27 b/specs/analog/accept_sar.t27 index 1d85ea3838..79c114a726 100644 --- a/specs/analog/accept_sar.t27 +++ b/specs/analog/accept_sar.t27 @@ -1,6 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 ; specs/analog/accept_sar.t27 -- the per-block acceptance checks of the external team's report of 2026-10-16, as an evaluator, applied to our SAR ADC blocks -; M5c of the analog emulation epic (#10486, issue #11212, night loop #11063); M5d (issue #11263) adds the transistor-level rows of the nand, nor, tgate and tracking_switch. The +; M5c of the analog emulation epic (#10486, issue #11212, night loop #11063); M5d (issue #11263) adds the transistor-level rows of the nand, nor, tgate and tracking_switch; M3e (issue #11283) adds the source-to-bulk axis that turns the tgate's +; two resistances from NOT MODELLED to PASS. The ; external team's report of 2026-10-16 lists, for the 13 blocks of the golden SAR ADC, a ; measured value and the limit that its check enforces (conditions: tt corner, 27 C, VDD 1.5 V, cells taken from the integrated converter's netlist). The team ; confirmed on 2026-10-20 that the checks and their limits may be used and published in this repository. This file holds those limits as named constants, one @@ -22,9 +23,11 @@ ; nand, nor two rows each. The truth table at GATE LEVEL (sar_logic.t27: a gate is a delay and a truth table, a value is 0, 1 or X) is one; the LEVELS in volts are the ; other, a DC solve of the two-input gate on the same PSP103 log tables as the inverter (mos_psp103_gates.t27, M5d), each level within 3 uV of ngspice's run of the ; same cell. Both rows PASS, so the two blocks PASS. -; tgate three rows on the same tables (mos_psp103_gates.t27): the off leakage (291.0 pA, 7.2 percent from ngspice's real cell) is a row; Ron at 0.75 V and the worst Ron -; over 0.1 to 1.4 V (1718 and 2109 ohm, inside 30 and 50 kohm) are NOT MODELLED: the real cell, run in ngspice with its bulks on the rails, is 30 and 24 percent -; above them, past the 10 percent bar, because the tables have no body effect. With each bulk tied to its source ngspice is within 0.06 percent of the tables. +; tgate three rows on the same tables (mos_psp103_gates.t27): the off leakage (291.0 pA, 7.2 percent from ngspice's real cell), Ron at 0.75 V and the worst Ron over 0.1 to 1.4 V. +; The two resistances are read on the tables WITH A SOURCE-TO-BULK AXIS (M3e, mos_psp103_vsb_data.t27: seven slices, Vsb 0 to 1.5 V, each device read at the Vsb its source +; has with the bulks on the rails): 2461.2 ohm and 2777.5 ohm, within 0.07 and 0.05 percent of ngspice's real cell (2459.6 and 2776.1 ohm; the largest of 27 gaps is 0.09 +; percent), inside the report's 30 and 50 kohm: all three rows PASS and the block PASSes. Before M3e the tables had no body effect and read 1718 and 2109 ohm, 30 and 24 +; percent under the real cell, past the 10 percent bar, and the two rows were NOT MODELLED; that read is kept (body false) as the negative control and still gives NOT MODELLED. ; dff the gate level (inside SAR_logic): capture, hold, set, reset and the clock-to-Q delay are measured on it; the levels in volts are NOT MODELLED. ; dynamic_comparator PSP103 current tables at 50 C, the golden deck's temperature (sar_comparator_psp.t27), the NO-CHARGE model: the devices' own capacitance is not in it, so ; its decision comes 98 times too fast against ngspice (5.35 ps against 523 ps at +2 mV). The sign and the end levels are measured; the reset (a second clock @@ -52,7 +55,7 @@ ; code) and accepts the report's own measured value, so no check is always-FAIL or always-PASS. Where a model can be broken to leave the limit, that is done too: the ; PMOS table zeroed (the output never falls through Vdd / 2: the reader returns -0.031 V, no crossing), the inputs of the comparator exchanged (the sign flips), the boost capacitor removed (tracking error 25.4 mV, refused by the limit and by the cross-check), the trim code ; ignored (ratio 1.0), a dff with Set and Reset exchanged (the order, the counts and the set and reset rows fail), a converter whose MSB capacitor is halved (237 LSB), a gate with -; its PMOS or NMOS table zeroed (the 1 levels at 0 V, the 0 level at 1.5 V), the tgate with the NMOS table in both slots (521 pA, inside the report's 1 nA and 82 percent over ngspice's, so the cross-check refuses it). +; its PMOS or NMOS table zeroed (the 1 levels at 0 V, the 0 level at 1.5 V), the tgate with the NMOS table in both slots (521 pA, inside the report's 1 nA and 82 percent over ngspice's, so the cross-check refuses it), the tgate read with Vsb forced to 0 (M3e: 1718 and 2109 ohm, inside the report's limits and 30 and 24 percent under ngspice's real cell, so the cross-check refuses it and the rows are NOT MODELLED). ; Honest limit of the control: a few of the report's limits are wide (the inverter threshold 0.5 to 1.0 V, a bridge of 2 units gives 45.5 LSB against 64), and a model ; error inside the limit is not seen by that check; the sar_adc.t27 tests see it by the codes. The level cross-check of a gate does not see a device's width (the two tables in each ; other's slots stay within 3 uV of ngspice's levels, mos_psp103_gates.t27 pins it); the tgate's leakage and Ron do. @@ -61,10 +64,10 @@ ; (the report 2.44 kohm) and 2776.1 ohm worst (2.78 kohm), 0.2856 nA off (0.29 nA), and the PSP103 tracking switch -1.596 and -1.730 mV of hold step (-1.6 and -1.7 mV), so the ; numbers a model is judged by are the report's cells; a test pins each. ; - -; WHAT A PASS SAYS. For the clock_gen, SAR_logic, integration, nand and nor blocks: every quantity the report's check enforces is produced by our model and is inside the report's +; WHAT A PASS SAYS. For the clock_gen, SAR_logic, integration, nand, nor and tgate blocks: every quantity the report's check enforces is produced by our model and is inside the report's ; limit. For a row marked PASS inside a NOT MODELLED block: that quantity, at the model's level above, is inside the limit. WHAT IT DOES NOT SAY. Nothing about a transistor-level ; result for the gate-level blocks (dff, clock_gen, SAR_logic), nothing about voltage levels of any digital node but the nand's and nor's, nothing about the delay of any gate into a load, -; nothing about the tgate's resistance (the body effect is not in the tables), nothing about power, noise, mismatch or another corner or temperature (the report's smoke +; nothing about the tgate's resistance beyond the 27 outputs at 10 mV across it (the body effect is in the tables from M3e, at 27 C), nothing about power, noise, mismatch or another corner or temperature (the report's smoke ; suite runs five corners at -40, 27 and 125 C; our tables have no -40 or 125 C and the line is NOT MODELLED), nothing about speed. The report's numbers are the report's; ours ; are computed here by the named functions. ASCII only, English only. ; phi^2 + 1/phi^2 = 3 | TRINITY @@ -105,7 +108,7 @@ pub const AS_N_ROWS : u32 = 30; ; --- why a row is NOT MODELLED (one reason per kind, quoted by the doc) --------------------------------------------- pub const AS_WHY_INV_DELAY : str = "the transient is validated at 500 fF and 10 pF only; at 20 fF the gate edge kicks the output outside the tables' 0 to Vdd range"; pub const AS_WHY_LEVELS : str = "the model is gate level: a node is 0, 1 or X, never a voltage"; -pub const AS_WHY_TG_RON : str = "the tables have no body effect: ngspice's real cell is 30 percent above ours at 0.75 V and 24 percent above at the worst point, past the 10 percent bar; with each bulk tied to its source ngspice agrees with ours to 0.06 percent"; +pub const AS_WHY_TG_RON : str = "a read with no body effect (Vsb forced to 0) puts ours 30 percent under ngspice's real cell at 0.75 V and 24 percent under at the worst point, past the 10 percent bar; with each bulk tied to its source ngspice agrees with ours to 0.06 percent; with the source-to-bulk axis (M3e) the rows are measured and PASS"; pub const AS_WHY_CMP_RESET : str = "the comparator run is one evaluation phase of 14 ps; the clock never falls, so there is no reset phase to measure"; pub const AS_WHY_SW_HOLD : str = "square law: no gate capacitance, so no charge injection; the hold step the model returns is a following artifact of 0.18 uV"; pub const AS_WHY_SW_DROOP : str = "square law: no leakage; the droop the model returns is exactly zero by construction"; @@ -675,14 +678,15 @@ pub fn as_ramp_report_like() -> Ramp { } ; --- the tgate on the tt log tables, against ngspice's real cell ------------------------------------------------------------------ -/// The tgate on the tables tn, tp (mos_psp103_gates.t27): Ron at 0.75 V (sweep point 13), the worst Ron of the 27 points, the off leakage in nA, and each one's relative gap to +/// The tgate on the tables tn, tp (mos_psp103_gates.t27, the Vsb = 0 slices; body true reads each device at the source-to-bulk voltage its source has with the bulks on the rails, the +/// golden cell, body false forces Vsb to 0, the 2-D read, the negative control): Ron at 0.75 V (sweep point 13), the worst Ron of the 27 points, the off leakage in nA, and each one's relative gap to /// ngspice's REAL cell (the bulks on the rails: accept_tgate.cir and accept_gates.cir): Ron to its 0.75 V point, the worst to the largest of ngspice's 27, the leakage to the larger of /// ngspice's two source currents and to the smaller (the larger of the two gaps). pub struct Tg { ron: f64, worst: f64, leak_na: f64, g_ron: f64, g_worst: f64, g_leak: f64 } -pub fn as_tgate(tn: []const u32, tp: []const u32) -> Tg { - const ron : f64 = gt_tg_ron(tn, tp, gt_tg_v(13)); - const worst : f64 = gt_tg_worst(tn, tp); +pub fn as_tgate(tn: []const u32, tp: []const u32, body: bool) -> Tg { + const ron : f64 = gt_tg_ron(tn, tp, gt_tg_v(13), body); + const worst : f64 = gt_tg_worst(tn, tp, body); const leak : f64 = gt_tg_off(tn, tp); var g_leak : f64 = rel_gap(leak, GT_NG_LEAK_OUT_A); const g_in : f64 = rel_gap(leak, GT_NG_LEAK_IN_A); @@ -718,17 +722,22 @@ pub fn as_blk_nor() -> Blk { return b; } -/// tgate: Ron at 0.75 V, the worst Ron over 0.1 to 1.4 V and the off leakage on the PSP103 log tables; a row only when its value is within 10 percent of ngspice's run of the REAL -/// cell. The tables have no body effect, so the two resistances are 30 and 24 percent under and are NOT MODELLED; the leakage, at Vgs = 0, has none and is within 7.2 percent. -pub fn as_blk_tgate() -> Blk { +/// tgate: Ron at 0.75 V, the worst Ron over 0.1 to 1.4 V and the off leakage of a measured tgate t; a row only when its value is within 10 percent of ngspice's run of the REAL cell. +/// Read with the body effect (M3e) the two resistances are within 0.07 and 0.05 percent and PASS with the leakage (7.2 percent); read with Vsb forced to 0 they are 30 and 24 percent +/// under and are NOT MODELLED. +pub fn as_blk_tg(t: Tg) -> Blk { var b : Blk = as_blk0(); - const t : Tg = as_tgate(&TT_LG_N, &TT_LG_P); b = as_add(b, as_verdict(t.g_ron <= GT_B_REL, as_chk_tg_ron(t.ron))); b = as_add(b, as_verdict(t.g_worst <= GT_B_REL, as_chk_tg_worst(t.worst))); b = as_add(b, as_verdict(t.g_leak <= GT_B_REL, as_chk_tg_leak(t.leak_na))); return b; } +/// The tgate block of the report: the cell of the golden netlist, bulks on the rails, read on the tables with the source-to-bulk axis. +pub fn as_blk_tgate() -> Blk { + return as_blk_tg(as_tgate(&TT_LG_N, &TT_LG_P, true)); +} + /// dff: capture and hold (the sequencer's thermometer at each Valid edge and between edges), set and reset (the Set pulse and the clks reset), the clock-to-Q of the first /// stage; the levels in volts are not modelled. pub fn as_blk_dff() -> Blk { @@ -972,7 +981,7 @@ test the_nand_and_nor_truth_tables_are_measured_at_logic_level_and_their_levels_ assert_eq(as_block_verdict(br), AS_PASS); } -test the_tgate_leakage_is_a_row_and_its_two_resistances_are_not_modelled_because_the_tables_have_no_body_effect { +test the_tgate_rows_are_measured_on_the_tables_with_the_body_effect_and_pass_and_the_read_with_vsb_forced_to_zero_is_not_modelled { assert(as_chk_tgate(R_TG_RON_OHM, R_TG_RON_WORST_OHM, R_TG_LEAK_NA)); var high_r : f64 = 60000.0; var high_w : f64 = 90000.0; @@ -983,40 +992,63 @@ test the_tgate_leakage_is_a_row_and_its_two_resistances_are_not_modelled_because assert(!as_chk_tg_ron(high_r)); assert(!as_chk_tg_worst(high_w)); assert(!as_chk_tg_leak(leak)); - // THE TGATE on the tt log tables (mos_psp103_gates.t27, 10 mV across it, the output at 0.10 V to 1.40 V): Ron 1718.0 ohm at 0.75 V, 2109.3 ohm at the worst of the 27 points, 291.0 pA - // off at full swing; all three far inside the limits of the report (30 kohm, 50 kohm, 1 nA) - const t : Tg = as_tgate(&TT_LG_N, &TT_LG_P); - assert(t.ron > 1717.9); - assert(t.ron < 1718.1); - assert(t.worst > 2109.2); - assert(t.worst < 2109.4); + // THE TGATE on the tt log tables with the source-to-bulk axis (M3e, mos_psp103_gates.t27 and mos_psp103_vsb_data.t27; the cell of the golden netlist, bulks on the rails; 10 mV + // across it, the output at 0.10 V to 1.40 V): Ron 2461.2 ohm at 0.75 V, 2777.5 ohm at the worst of the 27 points, 291.0 pA off at full swing; all three inside the limits of the + // report (30 kohm, 50 kohm, 1 nA) + const t : Tg = as_tgate(&TT_LG_N, &TT_LG_P, true); + assert(t.ron > 2461.2); + assert(t.ron < 2461.3); + assert(t.worst > 2777.5); + assert(t.worst < 2777.6); assert(t.leak_na > 0.2910); assert(t.leak_na < 0.2911); assert(as_chk_tg_ron(t.ron)); assert(as_chk_tg_worst(t.worst)); assert(as_chk_tg_leak(t.leak_na)); + assert(as_chk_tgate(t.ron, t.worst, t.leak_na)); // THE CROSS-CHECK against ngspice's run of the REAL cell (accept_tgate.cir, accept_gates.cir), the bar 10 percent: the leakage is 7.2 percent from it (1.9 percent from the larger of - // ngspice's two source currents), inside; the two resistances are 30.2 and 24.0 percent under it, outside by 3.0 and 2.4 times, and the rows are NOT MODELLED although both numbers are - // inside their limits: the tables have no body effect (mos_psp103_gates.t27 shows it, ngspice with each bulk tied to its source is 0.06 percent from ours) + // ngspice's two source currents), inside; the two resistances are 0.065 and 0.049 percent from it, 150 and 200 times inside the bar, so both rows are measured and PASS assert(t.g_leak > 0.0724); assert(t.g_leak < 0.0725); assert(t.g_leak < GT_B_REL); - assert(t.g_ron > 0.3015); - assert(t.g_ron < 0.3016); - assert(t.g_worst > 0.2401); - assert(t.g_worst < 0.2402); - assert(t.g_ron > 3.0 * GT_B_REL); - assert(t.g_worst > 2.4 * GT_B_REL); + assert(t.g_ron > 0.000648); + assert(t.g_ron < 0.000650); + assert(t.g_worst > 0.000488); + assert(t.g_worst < 0.000490); + assert(t.g_ron * 100.0 < GT_B_REL); + assert(t.g_worst * 100.0 < GT_B_REL); + // NEGATIVE CONTROL (FR-005 of M3e): the same cell read with Vsb forced to 0 (the tables with no body effect) is Ron 1718.0 ohm at 0.75 V, 2109.3 ohm at the worst point, both inside the + // report's limits and 30.2 and 24.0 percent under ngspice's real cell, outside the bar by 3.0 and 2.4 times: the rows are NOT MODELLED although both numbers pass the limits + const z : Tg = as_tgate(&TT_LG_N, &TT_LG_P, false); + assert(z.ron > 1717.9); + assert(z.ron < 1718.1); + assert(z.worst > 2109.2); + assert(z.worst < 2109.4); + assert(as_chk_tg_ron(z.ron)); + assert(as_chk_tg_worst(z.worst)); + assert(z.g_ron > 0.3015); + assert(z.g_ron < 0.3016); + assert(z.g_worst > 0.2401); + assert(z.g_worst < 0.2402); + assert(z.g_ron > 3.0 * GT_B_REL); + assert(z.g_worst > 2.4 * GT_B_REL); // NEGATIVE CONTROL on the leakage cross-check: the NMOS table in both slots leaks 521.5 pA, inside the report's 1 nA but 82.6 percent over ngspice's, so it is not a row - const two : Tg = as_tgate(&TT_LG_N, &TT_LG_N); + const two : Tg = as_tgate(&TT_LG_N, &TT_LG_N, true); assert(as_chk_tg_leak(two.leak_na)); assert(two.g_leak > 0.8); assert(two.g_leak > 8.0 * GT_B_REL); + // the block: read with the body effect all three rows are PASS and so is the block (it was one row PASS and two NOT MODELLED, a NOT MODELLED block, before M3e); read with Vsb forced to + // 0 it is the old block, one row PASS (the leakage) and two NOT MODELLED const b : Blk = as_blk_tgate(); - assert_eq(b.pass, 1); + assert_eq(b.pass, 3); assert_eq(b.fail, 0); - assert_eq(b.nm, 2); - assert_eq(as_block_verdict(b), AS_NM); + assert_eq(b.nm, 0); + assert_eq(as_block_verdict(b), AS_PASS); + const bz : Blk = as_blk_tg(z); + assert_eq(bz.pass, 1); + assert_eq(bz.fail, 0); + assert_eq(bz.nm, 2); + assert_eq(as_block_verdict(bz), AS_NM); } test the_reference_run_of_the_real_tgate_and_the_psp103_switch_reproduces_the_reports_own_numbers { @@ -1408,12 +1440,12 @@ test the_corners_smoke_suite_is_not_modelled_and_its_checks_refuse_a_delay_out_o assert_eq(as_nm(), AS_NM); } -test the_thirteen_blocks_count_5_pass_1_fail_and_7_not_modelled_and_their_30_rows_19_pass_1_fail_and_10_not_modelled { +test the_thirteen_blocks_count_6_pass_1_fail_and_6_not_modelled_and_their_30_rows_21_pass_1_fail_and_8_not_modelled { // the blocks, one by one, each by the strict rule assert_eq(as_block_verdict(as_blk_inverter()), AS_NM); assert_eq(as_block_verdict(as_blk_nand()), AS_PASS); assert_eq(as_block_verdict(as_blk_nor()), AS_PASS); - assert_eq(as_block_verdict(as_blk_tgate()), AS_NM); + assert_eq(as_block_verdict(as_blk_tgate()), AS_PASS); assert_eq(as_block_verdict(as_blk_dff()), AS_NM); assert_eq(as_block_verdict(as_blk_comparator()), AS_FAIL); assert_eq(as_block_verdict(as_blk_switch()), AS_NM); @@ -1425,14 +1457,15 @@ test the_thirteen_blocks_count_5_pass_1_fail_and_7_not_modelled_and_their_30_row assert_eq(as_block_verdict(as_blk_integration()), AS_PASS); // the counts over the 13 blocks, and they add up: nothing is counted twice and no block is left out const t : Blk = as_all_blocks(); - assert_eq(t.pass, 5); + assert_eq(t.pass, 6); assert_eq(t.fail, 1); - assert_eq(t.nm, 7); + assert_eq(t.nm, 6); assert_eq(t.pass + t.fail + t.nm, AS_N_BLOCKS); - // and over the rows of those blocks (the corners line is not a block and has no row here): 30 rows, of which 19 PASS, 1 FAIL and 10 NOT MODELLED + // and over the rows of those blocks (the corners line is not a block and has no row here): 30 rows, of which 21 PASS, 1 FAIL and 8 NOT MODELLED (before M3e's source-to-bulk axis the + // tgate's two resistances were NOT MODELLED: 19, 1 and 10 rows, 5, 1 and 7 blocks) const r : Blk = as_all_rows(); - assert_eq(r.pass, 19); + assert_eq(r.pass, 21); assert_eq(r.fail, 1); - assert_eq(r.nm, 10); + assert_eq(r.nm, 8); assert_eq(r.pass + r.fail + r.nm, AS_N_ROWS); } diff --git a/specs/analog/decks/psp103_idpa_vsb_tt.cir b/specs/analog/decks/psp103_idpa_vsb_tt.cir new file mode 100644 index 0000000000..2281648a27 --- /dev/null +++ b/specs/analog/decks/psp103_idpa_vsb_tt.cir @@ -0,0 +1,581 @@ +IHP SG13G2 PSP103 log-domain current tables with a source-to-bulk axis, corner mos_tt +* specs/analog/decks/psp103_idpa_vsb_tt.cir -- the log-domain current tables of the tt corner at seven source-to-bulk voltages Vsb = 0, 0.25, .. 1.5 V, for +* specs/analog/mos_psp103_vsb_data.t27 (M3e, #11283, epic #10486): psp103_idpa_tt.cir with the bulk of each device moved off its source. A netlist plus a .control block that prints the numbers. +* Model: IHP-Open-PDK commit 21133f219b1a6da10d803e345761e77415ceff40, ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib (PSP 103.6, revision 200310), section +* mos_tt; the model code is libs.tech/verilog-a/psp103/psp103.va of the same commit, compiled with OpenVAF-Reloaded v24.0.2mob to psp103.osdi (and psp103_nqs.osdi). +* Temperature 27 C (TNOM 27 C). Devices: sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 and sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1, the devices of psp103_idpa_tt.cir (the same netlist lines +* but for the bulk terminal). +* Solver options: reltol 1e-6, vntol 1e-9, abstol 1e-14, as psp103_idpa_tt.cir. +* Paths are NOT in this file. ngspice reads two environment variables: IHP_PDK, the IHP-Open-PDK checkout, and IHP_OSDI, the directory that holds the compiled +* psp103.osdi and psp103_nqs.osdi. +* Run: IHP_PDK= IHP_OSDI= ngspice -b psp103_idpa_vsb_tt.cir > psp103_idpa_vsb_tt.out (ngspice-47) +* WHY. The tables of psp103_idpa_tt.cir have each bulk tied to its source (the NMOS source and bulk at 0 V, the PMOS source and bulk at 1.5 V), so they hold no body effect, and a +* transmission gate whose bulks sit on the rails (the NMOS bulk at 0 V, the PMOS bulk at 1.5 V) has a source above (NMOS) or below (PMOS) its bulk while it conducts. accept_tgate.cir +* measured it: the cell with its bulks on the rails is 30 percent above the cell with each bulk tied to its source. This deck adds the missing axis. +* THE AXIS. Vsb is the reverse bias of the source-to-bulk junction, a magnitude for both devices: the NMOS bulk is at -Vsb (its source at 0 V), the PMOS bulk is at 1.5 V + Vsb (its +* source at the 1.5 V rail). A model is a function of voltage differences, so this is the same device as one whose source is at any other level and whose bulk is Vsb below it (NMOS) +* or above it (PMOS), which is how the tgate's devices sit. Vsb = k * 0.25 V, k = 0 .. 6 (7 slices); the slice k = 0 is psp103_idpa_tt.cir's table again (bulk on the source, written as a node of its own): it agrees with TT_LG_N and TT_LG_P of mos_psp103_data.t27 in all but 4 and 3 of 4753 words, by at most 3 words, the solver noise of two netlists at reltol 1e-6, and the spec takes the existing tables for it. +* THE TABLE of each slice is psp103_idpa_tt.cir's, the same grid and the same integer encoding. A node is the drain current Id, divided by the factor of weak inversion +* F = 1 - exp(-Vds / s(Vgs)), as log2 in 1/65536 of an octave, relative to IUNIT = 1 / (200 * 2^32) A = 1.164 pA. With the gate scale (the tt one, the same at every Vsb: the reader +* multiplies Vds by rv, which depends on Vgs only) +* s(Vgs) = sqrt(0.030^2 + (0.65 * max(Vgs - 0.23, 0))^2) volts, rv = nint(4096 / s) (the word the reader multiplies Vds by), s_eff = 4096 / rv, +* the word of node (ix, iy), Vgs = ix * 15.625 mV (ix = 0 .. 96), Vds = iy * 31.25 mV (iy = 0 .. 48), is +* iy >= 1: nint(65536 * log2(max(Id / F(Vds; s_eff), IUNIT) / IUNIT)) +* iy = 0: nint(65536 * log2(max(s_eff * gds0, IUNIT) / IUNIT)) gds0 = the output conductance ngspice reports at Vds = 0, the limit of Id / F there. +* Index ix * 49 + iy, ix outer, 4753 rows. The PMOS is read at Vsg = 1.5 V - Vgp and Vsd = 1.5 V - Vdp. +* What it prints. Between "BEGIN name" and "END name" every row " TAB " is one number, in sweep order (the first sweep source runs fastest). The values are pasted into +* the spec in that order, none changed. +* lam_n_k, lam_p_k the 4753 words of the NMOS and of the PMOS at Vsb = k * 0.25 V, k = 0 .. 6; r_k rv at Vgs = ix * 15.625 mV, 97 rows (the same for both devices, and for every k). +* cen_n, cen_p Id in pA (nint(Id * 1e12)) at 1000 held-out points that are CENTRES of cells of the (Vgs, Vds, Vsb) grid, the places a chord of it is worst: point k = 1..1000 is +* Vgs (Vsg) = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds (Vsd) = (floor(48 frac(k a2)) + 1/2) * 31.25 mV and Vsb = (floor(6 frac(k a3)) + 1/2) * 0.25 V (so Vsb is +* halfway between two slices: 0.125, 0.375, .. 1.375 V), with a1 = 0.8191725133961645, a2 = 0.6710436067037893, a3 = 0.5497004779019703 (the 3-D R sequence, 1/g, 1/g^2, 1/g^3 for g^4 = g + 1). +* nmos table device: drain VDN, gate VGN, source at 0 V, bulk VBN at -Vsb +.lib $IHP_PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_tt +VDN dn 0 0 +VGN gn 0 0 +VBN bn 0 0 +XMN dn gn 0 bn sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +* pmos table device: source at the 1.5 V rail, bulk VBP at 1.5 V + Vsb, drain VDP and gate VGP, both swept downward from 1.5 V +VSP sp 0 1.5 +VDP dp 0 1.5 +VGP gp 0 1.5 +VBP bp 0 1.5 +XMP dp gp sp bp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* held-out points: B sources compute the cell centre from the sweep variable k; the zero-volt sources VRDN, VRDP measure the drain current +VK k 0 1 +BRGN rgn 0 V = (floor(96*(v(k)*0.8191725133961645-floor(v(k)*0.8191725133961645)))+0.5)*0.015625 +BRDN rdn0 0 V = (floor(48*(v(k)*0.6710436067037893-floor(v(k)*0.6710436067037893)))+0.5)*0.03125 +BRBN rbn 0 V = 0-(floor(6*(v(k)*0.5497004779019703-floor(v(k)*0.5497004779019703)))+0.5)*0.25 +VRDN rdn0 rdn 0 +XRN rdn rgn 0 rbn sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BRGP rgp 0 V = 1.5-(floor(96*(v(k)*0.8191725133961645-floor(v(k)*0.8191725133961645)))+0.5)*0.015625 +BRDP rdp0 0 V = 1.5-(floor(48*(v(k)*0.6710436067037893-floor(v(k)*0.6710436067037893)))+0.5)*0.03125 +BRBP rbp 0 V = 1.5+(floor(6*(v(k)*0.5497004779019703-floor(v(k)*0.5497004779019703)))+0.5)*0.25 +VRDP rdp rdp0 0 +VRSP rsp 0 1.5 +XRP rdp rgp rsp rbp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +.temp 27 +.options reltol=1e-6 vntol=1e-9 abstol=1e-14 +.control +pre_osdi $IHP_OSDI/psp103.osdi +pre_osdi $IHP_OSDI/psp103_nqs.osdi +set num_threads=2 +set numdgt=10 +set noprintscale +save all @n.xmn.nsg13_lv_nmos[gds] @n.xmp.nsg13_lv_pmos[gds] +* ---- slice 0: Vsb = 0 V (the NMOS bulk at 0 V, the PMOS bulk at 1.5 V). Plots dc1, dc2: the Vds = 0 columns; dc3, dc4: the grids. +alter VBN = 0 +alter VBP = 1.5 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_0 +print rk +echo END r_0 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc1.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_0 +print lamn +echo END lam_n_0 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc2.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_0 +print lamp +echo END lam_p_0 +* ---- slice 1: Vsb = 0.25 V (the NMOS bulk at -0.25 V, the PMOS bulk at 1.75 V). Plots dc5, dc6: the Vds = 0 columns; dc7, dc8: the grids. +alter VBN = -0.25 +alter VBP = 1.75 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_1 +print rk +echo END r_1 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc5.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_1 +print lamn +echo END lam_n_1 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc6.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_1 +print lamp +echo END lam_p_1 +* ---- slice 2: Vsb = 0.5 V (the NMOS bulk at -0.5 V, the PMOS bulk at 2 V). Plots dc9, dc10: the Vds = 0 columns; dc11, dc12: the grids. +alter VBN = -0.5 +alter VBP = 2 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_2 +print rk +echo END r_2 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc9.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_2 +print lamn +echo END lam_n_2 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc10.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_2 +print lamp +echo END lam_p_2 +* ---- slice 3: Vsb = 0.75 V (the NMOS bulk at -0.75 V, the PMOS bulk at 2.25 V). Plots dc13, dc14: the Vds = 0 columns; dc15, dc16: the grids. +alter VBN = -0.75 +alter VBP = 2.25 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_3 +print rk +echo END r_3 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc13.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_3 +print lamn +echo END lam_n_3 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc14.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_3 +print lamp +echo END lam_p_3 +* ---- slice 4: Vsb = 1 V (the NMOS bulk at -1 V, the PMOS bulk at 2.5 V). Plots dc17, dc18: the Vds = 0 columns; dc19, dc20: the grids. +alter VBN = -1 +alter VBP = 2.5 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_4 +print rk +echo END r_4 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc17.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_4 +print lamn +echo END lam_n_4 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc18.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_4 +print lamp +echo END lam_p_4 +* ---- slice 5: Vsb = 1.25 V (the NMOS bulk at -1.25 V, the PMOS bulk at 2.75 V). Plots dc21, dc22: the Vds = 0 columns; dc23, dc24: the grids. +alter VBN = -1.25 +alter VBP = 2.75 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_5 +print rk +echo END r_5 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc21.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_5 +print lamn +echo END lam_n_5 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc22.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_5 +print lamp +echo END lam_p_5 +* ---- slice 6: Vsb = 1.5 V (the NMOS bulk at -1.5 V, the PMOS bulk at 3 V). Plots dc25, dc26: the Vds = 0 columns; dc27, dc28: the grids. +alter VBN = -1.5 +alter VBP = 3 +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.23 + abs(vgk - 0.23)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_6 +print rk +echo END r_6 +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.23 + abs(vgn - 0.23)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc25.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n_6 +print lamn +echo END lam_n_6 +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.23 + abs(vgp - 0.23)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc26.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p_6 +print lamp +echo END lam_p_6 +* the held-out currents: the bulks back where the sweeps found them do not matter, the held-out devices have their own bulk sources +echo BEGIN cen_n +dc VK 1 1000 1 +let u = nint(i(VRDN) * 1e12) +print u +echo END cen_n +echo BEGIN cen_p +let u = nint(i(VRDP) * 1e12) +print u +echo END cen_p +.endc +.end diff --git a/specs/analog/mos_psp103_gates.t27 b/specs/analog/mos_psp103_gates.t27 index 92a1e8c6c5..105612a863 100644 --- a/specs/analog/mos_psp103_gates.t27 +++ b/specs/analog/mos_psp103_gates.t27 @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 ; specs/analog/mos_psp103_gates.t27 -- the two-input gates and the transmission gate of the SAR ADC on the PSP103 log tables, judged by ngspice +; M3e (#11283) adds the body effect of the transmission gate: its Ron is read on the source-to-bulk tables, the section THE BODY EFFECT below. ; M5d of the analog emulation epic (#10486, issue #11263). specs/analog/mos_psp103.t27 solves ONE CMOS inverter on the tt tables of the NMOS (W 1.0 um) and the PMOS (W 3.0 um), L 0.45 um. The ; nand, the nor and the tgate of the integrated converter's golden netlist are made of the same two devices, with the same W, L and m (nand: two NMOS in series and two PMOS in parallel; ; nor: two NMOS in parallel and two PMOS in series; tgate: one PMOS and one NMOS in parallel between the input and the output; the sizes are facts of the circuit, none of its text is @@ -18,11 +19,17 @@ ; sar_off_ron.cir measures the golden tgate the same way). Off (PMOS gate Vdd, NMOS gate 0 V), the input at Vdd and the output at 0 V: both devices at Vgs = 0, Vds = Vdd, and the ; leakage is the sum of their two table words (`gt_tg_off`). ; - +; THE BODY EFFECT (M3e, #11283). The 2-D tables have each bulk tied to its source, so the Ron above is the Ron of a cell with no body effect. The golden cell has its bulks on the rails: the +; NMOS bulk at 0 V and the PMOS bulk at 1.5 V, so while it conducts the NMOS source (the output vout) is vout above its bulk, and the PMOS source (the input vout + dv) is 1.5 V - (vout + dv) +; below its bulk. `gt_tg_i` with body true reads each device at that source-to-bulk voltage on the seven slices of mos_psp103_vsb_data.t27 (Vsb = 0, 0.25, .. 1.5 V; the slice 0 is the +; 2-D table passed in), the log word blended between the two slices around it (`lg_fine_vsb` of mos_table.t27); with body false Vsb is forced to 0 and the read is the 2-D read bit for bit. +; The held-out check of the read, `gt_hold_vsb`, judges it at 1000 centres of the cells of the (Vgs, Vds, Vsb) grid against ngspice's own currents there. +; - ; THE REFERENCE. ngspice-47 with the IHP SG13G2 PSP103 of IHP-Open-PDK 21133f21, mos_tt, 27 C, on the reference host (a container, 2 threads), 2026-10-20, three decks of ; specs/analog/decks: accept_gates.cir (the eight gate outputs, the off tgate), accept_tgate.cir (the conducting tgate, two cells), accept_switch.cir (used by accept_sar.t27). ; The levels are the DC solution with no load, which is what a gate settles to into 10 fF. The numbers are the GT_NG_* constants below, none changed after printing. ; - -; THE RESULT, our model against that run. +; THE RESULT, our model against that run (the 2-D read, then below the read with the body effect). ; levels the distance of each output from its ideal level (1.5 V minus a 1, a 0 itself), nand A B = 00, 01, 10, 11 / nor 00, 01, 10, 11, in uV: ; nand ours 0.179 0.477 0.477 0.179 ngspice 0.316 0.721 0.687 2.537 worst gap 2.358 uV (nand 11) ; nor ours 1.848 0.060 0.060 0.060 ngspice 2.883 0.634 0.617 0.611 worst gap 1.036 uV (nor 00) @@ -34,29 +41,39 @@ ; EFFECT, and the real cell has bulks on the rails: while the tgate conducts at 0.75 V the NMOS source is 0.75 V above its bulk and the PMOS source 0.75 V below its bulk, which ; raises both thresholds. That is not an assumption: accept_tgate.cir also runs the same two devices with each bulk tied to its own source (the condition the tables were made ; under), and there our model is within 0.06 % of ngspice at all 27 points (the largest gap 0.0588 %) (ngspice 1717.2 ohm at 0.75 V, 2108.4 ohm at the worst). The bar of 10 % refuses the real cell by -; 3 times at 0.75 V and 2.4 times at the worst point, so the tgate's Ron rows of accept_sar.t27 are NOT MODELLED, with our numbers and ngspice's shown. +; 3 times at 0.75 V and 2.4 times at the worst point: with Vsb forced to 0 (body false) the tgate's Ron rows of accept_sar.t27 are NOT MODELLED, and that is the negative control (FR-005). +; Ron WITH THE BODY EFFECT (M3e, body true): ours 2461.2 ohm at 0.75 V (ngspice's real cell 2459.6 ohm, +0.065 %) and 2777.5 ohm at the worst of the 27 points (2776.1 ohm, +0.049 %); the +; largest of the 27 gaps is 0.090 %, 110 times inside the bar of 10 %, and the Ron rows of accept_sar.t27 are PASS (inside the report's 30 and 50 kohm as well). The held-out +; currents between slices are read to 1.71 % (NMOS) and 2.51 % (PMOS) with a floor of 1 nA (898 and 818 of 1000 points above it): the bar is 3 % (GT_B_VSB). The Ron check needs +; less: read off the same tables with a floating-point twin of the reader (a scratch run), even the two end slices alone (Vsb = 0 and 1.5 V) give the 27 Ron points within 1.2 %. ; the external team's report has 2.44 kohm at 0.75 V, 2.78 kohm worst and 0.29 nA: ngspice's real cell gives 2.46 kohm (0.8 % over), 2.78 kohm (0.1 % under) and 0.286 nA, so the ; reference run reproduces the report; the report's numbers are the report's, ours are the functions here. ; - ; THE NEGATIVE CONTROLS (FR-004), each a test that passes by seeing the failure. The nand with the PMOS table zeroed never rises (its 1 levels are under 0.4 mV, 1.5 V off); with the NMOS ; zeroed its 11 output stays at 1.5 V; the nand's output read where the nor has a 0 is 1.5 V off. The tgate's leakage with the NMOS table in both slots is 521.5 pA, 82.6 % over ngspice's, and ; with the NMOS zeroed 30.3 pA, 89 % under; its Ron at 0.75 V with the PMOS zeroed is 2895 ohm and with the NMOS zeroed 4225 ohm, 69 % and 146 % over the no-body-effect cell: the bar of 10 % -; refuses each. THE LIMIT OF THE LEVEL CONTROL: the two tables in each other's slots (a 3 um stack and a 1 um pair) leave every level within 0.69 uV (nand) and 2.7 uV (nor) of ngspice's, +; refuses each. M3e's controls: the real cell read with Vsb forced to 0 is 1718.0 ohm at 0.75 V, 30.2 % under, the largest of the 27 gaps 31.1 %, refused by the same bar; the held-out +; currents read with Vsb forced to 0 are 105 (NMOS) and 424 (PMOS) times off in relative terms; the two devices' Vsb exchanged is 2461.07 ohm at 0.75 V (the cell is symmetric there, the +; exchange is invisible) and 32.3 % off at the worst of the 27 points, 358 times the right read's gap. THE LIMIT OF THE LEVEL CONTROL: the two tables in each other's slots (a 3 um stack and a 1 um pair) leave every level within 0.69 uV (nand) and 2.7 uV (nor) of ngspice's, ; inside the bar, because a level is the leakage of the off side times the resistance of the on side and both are microvolts for either width: a level check does not see a device's ; width, and a test pins that (the leakage and the resistance see it). ; - ; WHAT A PASS SAYS. The tt log tables of the two devices, read by the integer reader and solved for the nand, nor and tgate cells of the golden netlist, give the gates' output levels -; within 2.4 uV of ngspice's, and the tgate's off leakage within 7.2 % of it, at 27 C with no load. WHAT IT DOES NOT SAY. The Ron of the real cell: it is 30 % off, for the body effect -; (the tables have no source-to-bulk voltage, and no test here pretends otherwise: the no-body-effect run agrees to 0.06 % and the real cell does not). Nothing about delay or a transient -; into 10 fF (the DC level is what the gate settles to), another corner or temperature (tt, 27 C only), mismatch, noise or power; the leakage is one bias (full swing) and its two junction -; terms are not separated. The model is a TABLE MODEL of PSP103, not PSP103. ASCII only, English only. +; within 2.4 uV of ngspice's, and the tgate's off leakage within 7.2 % of it, at 27 C with no load; and, read at the source-to-bulk voltage of each device (M3e), the tgate's Ron of the real +; cell (bulks on the rails) within 0.09 % of ngspice's at 27 outputs from 0.1 V to 1.4 V. WHAT IT DOES NOT SAY. That the 2-D read (body false) is the real cell: it is 30 % under it, for the +; body effect, and no test here pretends otherwise. That the Vsb read is accurate everywhere: it is 1.7 % and 2.5 % at the held-out centres between slices, and below 0.25 V of gate drive +; the PMOS off current at Vsb above 0.5 V is a floor of 1 IUNIT. Nothing about delay or a transient into 10 fF (the DC level is what the gate settles to), another corner or temperature +; (tt, 27 C only), mismatch, noise or power; the leakage is one bias (full swing, Vsb = 0 for both devices) and its two junction terms are not separated. The model is a TABLE MODEL of PSP103, +; not PSP103. ASCII only, English only. ; phi^2 + 1/phi^2 = 3 | TRINITY module AnalogMosPsp103Gates; -use analog::mos_table::{VDD, lg_fine, dpos}; -use analog::mos_psp103::{UPV, IUNIT_A}; +use analog::linear::{fabs64}; +use analog::mos_table::{VDD, lg_fine, dpos, fmax64, LG_NG, LG_ND, LG_NV, LG_GBITS, LG_DBITS, LG_VBITS}; +use analog::mos_psp103::{UPV, IUNIT_A, cell_centre}; use analog::mos_psp103_data::{TT_LG_N, TT_LG_P}; +use analog::mos_psp103_vsb_data::{DEV_N, DEV_P, R3_A1, R3_A2, R3_A3, vsb_fine, vsb_cen}; pub const KIND : str = "analog-cell-check"; pub const ID : str = "analog/mos_psp103_gates"; @@ -70,6 +87,9 @@ pub const GT_NV : u32 = 27; pub const GT_B_LEVEL_V : f64 = 0.00001; /// The cross-check bar for a resistance or a current: 10 percent of ngspice's. pub const GT_B_REL : f64 = 0.10; +/// The bar of the source-to-bulk read at the held-out points (M3e): 3 percent, with a floor of 1 nA on the reference. The 2-D read's bar is 1 percent (B_LOG_ISSUE of mos_psp103.t27); the +/// third axis is a chord of the log word over 0.25 V of Vsb and adds to it. +pub const GT_B_VSB : f64 = 0.03; ; --- ngspice-47 + PSP103 mos_tt 27 C, the decks of specs/analog/decks (printed to 12 digits, none changed) ---------------------------------- /// accept_gates.cir: the nand's output distance from its ideal level in V, inputs A B = 00, 01, 10, 11 (the 1 levels as 1.5 V minus the output, the 0 level as the output). @@ -181,9 +201,18 @@ pub fn gt_levels(tn: []const u32, tp: []const u32, nor: bool) -> Lv { ; --- the tgate ----------------------------------------------------------------------------------------------------- /// The tgate conducting (PMOS gate 0 V, NMOS gate Vdd): the current from an input dv above the output vout to the output, in IUNIT. The NMOS source is the output, the PMOS -/// source the input: the NMOS reads (Vdd - vout, dv), the PMOS (vin, dv). -pub fn gt_tg_i(tn: []const u32, tp: []const u32, vout: u32, dv: u32) -> u64 { - return lg_fine(tn, VDD - vout, dv) + lg_fine(tp, vout + dv, dv); +/// source the input: the NMOS reads (Vdd - vout, dv), the PMOS (vin, dv). With body false each device is read with its bulk on its own source, the 2-D tables' condition (Vsb = 0, the +/// read of mos_table.t27 bit for bit). With body true the bulks are on the rails, as in the golden cell (the NMOS bulk at 0 V, the PMOS bulk at Vdd, M3e, #11283): the NMOS source is +/// the output, so its source-to-bulk voltage is vout, and the PMOS source is the input vout + dv, so its voltage to the bulk at Vdd is Vdd - (vout + dv). tn and tp are the Vsb = 0 +/// slices; the other slices are those of mos_psp103_vsb_data.t27. +pub fn gt_tg_i(tn: []const u32, tp: []const u32, vout: u32, dv: u32, body: bool) -> u64 { + var sn : u32 = 0; + var sp : u32 = 0; + if (body) { + sn = vout; + sp = VDD - (vout + dv); + } + return vsb_fine(DEV_N, tn, VDD - vout, dv, sn) + vsb_fine(DEV_P, tp, vout + dv, dv, sp); } /// The output of the sweep point k of the Ron sweep, in units of 2^-24 V. @@ -191,18 +220,18 @@ pub fn gt_tg_v(k: u32) -> u32 { return ((0.1 + 0.05 * (k as f64)) * UPV + 0.5) as u32; } -/// The tgate's resistance in ohm at output vout: the voltage across it over the current. -pub fn gt_tg_ron(tn: []const u32, tp: []const u32, vout: u32) -> f64 { - const i : f64 = (gt_tg_i(tn, tp, vout, GT_DV) as f64) * IUNIT_A; +/// The tgate's resistance in ohm at output vout: the voltage across it over the current (body as in `gt_tg_i`). +pub fn gt_tg_ron(tn: []const u32, tp: []const u32, vout: u32, body: bool) -> f64 { + const i : f64 = (gt_tg_i(tn, tp, vout, GT_DV, body) as f64) * IUNIT_A; return ((GT_DV as f64) / UPV) / i; } /// The largest resistance over the 27 points, 0.10 V to 1.40 V. -pub fn gt_tg_worst(tn: []const u32, tp: []const u32) -> f64 { +pub fn gt_tg_worst(tn: []const u32, tp: []const u32, body: bool) -> f64 { var w : f64 = 0.0; var k : u32 = 0; while (k < GT_NV) { - const r : f64 = gt_tg_ron(tn, tp, gt_tg_v(k)); + const r : f64 = gt_tg_ron(tn, tp, gt_tg_v(k), body); if (r > w) { w = r; } k = k + 1; } @@ -210,12 +239,12 @@ pub fn gt_tg_worst(tn: []const u32, tp: []const u32) -> f64 { } /// The largest relative distance |ours - ngspice| / ngspice of the resistance from a 27-point reference (GT_NG_RTG or GT_NG_RNB). -pub fn gt_ron_gap(tn: []const u32, tp: []const u32, refs: []const f64) -> f64 { +pub fn gt_ron_gap(tn: []const u32, tp: []const u32, refs: []const f64, body: bool) -> f64 { var w : f64 = 0.0; var k : u32 = 0; while (k < GT_NV) { const want : f64 = refs[k as usize]; - var g : f64 = (gt_tg_ron(tn, tp, gt_tg_v(k)) - want) / want; + var g : f64 = (gt_tg_ron(tn, tp, gt_tg_v(k), body) - want) / want; if (g < 0.0) { g = 0.0 - g; } if (g > w) { w = g; } k = k + 1; @@ -239,6 +268,35 @@ pub fn gt_tg_off(tn: []const u32, tp: []const u32) -> f64 { return ((lg_fine(tn, 0, VDD) + lg_fine(tp, 0, VDD)) as f64) * IUNIT_A; } +; --- the held-out check of the source-to-bulk read (M3e) ---------------------------------------------------------------------------- +pub struct HoldV { rel9: f64, abs_a: f64, n9: u32 } + +/// The read of device dev (DEV_N or DEV_P; t0 its Vsb = 0 slice) against the ngspice currents of mos_psp103_vsb_data.t27 (pA) at the first n of its 1000 held-out points, which are the +/// centres of the cells of the (Vgs, Vds, Vsb) grid (Vsb halfway between two slices), the worst places for a chord of it: the largest relative error with a floor of 1e-9 A on the +/// reference (the measure `hold_log` of mos_psp103.t27 uses for the 2-D read), the largest absolute error in A, and how many points have a reference above the floor. With on false the +/// Vsb of every point is forced to 0, the 2-D read: the negative control. +pub fn gt_hold_vsb(dev: u32, t0: []const u32, n: u32, on: bool) -> HoldV { + const ref_pa : []const u32 = vsb_cen(dev); + var rel9 : f64 = 0.0; + var abs_a : f64 = 0.0; + var n9 : u32 = 0; + var i : u32 = 0; + while (i < n) { + const k : u32 = i + 1; + const vg : u32 = cell_centre(k, R3_A1, LG_NG, LG_GBITS); + const vd : u32 = cell_centre(k, R3_A2, LG_ND, LG_DBITS); + var vs : u32 = 0; + if (on) { vs = cell_centre(k, R3_A3, LG_NV, LG_VBITS); } + const got : f64 = ((vsb_fine(dev, t0, vg, vd, vs)) as f64) * IUNIT_A; + const want : f64 = ((ref_pa[i as usize]) as f64) * 0.000000000001; + abs_a = fmax64(abs_a, fabs64(got - want)); + rel9 = fmax64(rel9, fabs64(got - want) / fmax64(want, 0.000000001)); + if (want >= 0.000000001) { n9 = n9 + 1; } + i = i + 1; + } + return HoldV { rel9: rel9, abs_a: abs_a, n9: n9 }; +} + ; --- the tests ---------------------------------------------------------------------------------------------------- ; Variables, not constants, carry the data of the asserts: an assert on a constant is folded by the compiler and counts as no assert at all. @@ -335,17 +393,17 @@ test a_gate_with_a_dead_device_table_or_the_wrong_gate_is_refused_and_the_tables test the_tgate_without_the_body_effect_is_within_0_07_percent_of_ngspice_at_all_27_points_where_the_two_cells_have_the_same_bulk_condition_as_the_tables { // accept_tgate.cir, second cell: each bulk tied to its own source, the condition the tables were made under. 1718.0 ohm at 0.75 V (ngspice 1717.2), 2109.3 ohm at the worst point // (ngspice 2108.4); the largest of the 27 relative gaps is 0.0588 % - const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13)); + const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13), false); assert(r075 > 1717.9); assert(r075 < 1718.1); - const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P); + const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P, false); assert(worst > 2109.2); assert(worst < 2109.4); assert(GT_NG_RNB[13] > 1717.2); assert(GT_NG_RNB[13] < 1717.3); assert(gt_ref_max(>_NG_RNB) > 2108.3); assert(gt_ref_max(>_NG_RNB) < 2108.4); - const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RNB); + const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RNB, false); assert(gap > 0.0005); assert(gap < 0.0007); assert(gap < GT_B_REL); @@ -356,15 +414,15 @@ test the_tgate_without_the_body_effect_is_within_0_07_percent_of_ngspice_at_all_ // NEGATIVE CONTROL, a device missing from the cell: the PMOS never conducts, the NMOS alone is 2895 ohm at 0.75 V, 69 % over the no-body-effect cell; the NMOS never conducts, the // PMOS alone is 4225 ohm, 146 % over. The bar of 10 % refuses both, by 6.9 and 14.6 times var dead : [4851]u32 = [0] ** 4851; - const rn : f64 = gt_tg_ron(&TT_LG_N, &dead, gt_tg_v(13)); - const rp : f64 = gt_tg_ron(&dead, &TT_LG_P, gt_tg_v(13)); + const rn : f64 = gt_tg_ron(&TT_LG_N, &dead, gt_tg_v(13), false); + const rp : f64 = gt_tg_ron(&dead, &TT_LG_P, gt_tg_v(13), false); assert(rn > 2895.0); assert(rn < 2896.0); assert(rp > 4225.0); assert(rp < 4226.0); assert((rn - GT_NG_RNB[13]) / GT_NG_RNB[13] > 6.0 * GT_B_REL); assert((rp - GT_NG_RNB[13]) / GT_NG_RNB[13] > 14.0 * GT_B_REL); - assert(gt_ron_gap(&TT_LG_N, &dead, >_NG_RNB) > 0.6); + assert(gt_ron_gap(&TT_LG_N, &dead, >_NG_RNB, false) > 0.6); } test the_real_tgate_is_24_to_31_percent_above_the_tables_at_every_point_because_the_tables_have_no_body_effect_and_the_10_percent_bar_refuses_it { @@ -374,15 +432,15 @@ test the_real_tgate_is_24_to_31_percent_above_the_tables_at_every_point_because_ assert(GT_NG_RTG[13] < 2459.7); assert(gt_ref_max(>_NG_RTG) > 2776.1); assert(gt_ref_max(>_NG_RTG) < 2776.2); - const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13)); + const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13), false); const g075 : f64 = (GT_NG_RTG[13] - r075) / GT_NG_RTG[13]; assert(g075 > 0.301); assert(g075 < 0.302); - const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P); + const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P, false); const gw : f64 = (gt_ref_max(>_NG_RTG) - worst) / gt_ref_max(>_NG_RTG); assert(gw > 0.240); assert(gw < 0.241); - const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RTG); + const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RTG, false); assert(gap > 0.311); assert(gap < 0.312); // the bar of 10 % refuses the real cell by 3 times at 0.75 V and 2.4 times at the worst point @@ -393,7 +451,7 @@ test the_real_tgate_is_24_to_31_percent_above_the_tables_at_every_point_because_ var above : bool = true; var above_nb : bool = true; while (k < GT_NV) { - if (gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(k)) >= GT_NG_RTG[k as usize]) { above = false; } + if (gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(k), false) >= GT_NG_RTG[k as usize]) { above = false; } if (GT_NG_RNB[k as usize] >= GT_NG_RTG[k as usize]) { above_nb = false; } k = k + 1; } @@ -430,3 +488,117 @@ test the_tgate_off_leakage_is_291_pA_against_ngspices_286_pA_at_the_output_and_2 assert(only_p < 0.0000000000303); assert((GT_NG_LEAK_OUT_A - only_p) / GT_NG_LEAK_OUT_A > 8.0 * GT_B_REL); } + +test the_real_tgate_read_with_its_bulks_on_the_rails_on_the_source_to_bulk_tables_is_within_0_1_percent_of_ngspice_at_all_27_points_and_inside_the_10_percent_bar { + // M3e (#11283), FR-003. accept_tgate.cir, first cell (the NMOS bulk at 0 V, the PMOS bulk at 1.5 V): 2459.6 ohm at 0.75 V and 2776.1 ohm at the worst point (the external team's report: + // 2.44 and 2.78 kohm). Ours, each device read at the source-to-bulk voltage its source has (NMOS: the output level, PMOS: Vdd minus the input) on the seven slices of + // mos_psp103_vsb_data.t27, the log word blended between them: 2461.2 ohm (+0.065 %) and 2777.5 ohm (+0.049 %); the largest of the 27 gaps is 0.090 %, 110 times inside the bar of 10 %. + // Before the Vsb axis: 1718.0 and 2109.3 ohm, 30.2 and 24.0 % under, the largest gap 31.1 %. + const r075 : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13), true); + assert(r075 > 2461.2); + assert(r075 < 2461.3); + const worst : f64 = gt_tg_worst(&TT_LG_N, &TT_LG_P, true); + assert(worst > 2777.5); + assert(worst < 2777.6); + const g075 : f64 = (r075 - GT_NG_RTG[13]) / GT_NG_RTG[13]; + assert(g075 > 0.000648); + assert(g075 < 0.000650); + const gw : f64 = (worst - gt_ref_max(>_NG_RTG)) / gt_ref_max(>_NG_RTG); + assert(gw > 0.000488); + assert(gw < 0.000490); + const gap : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RTG, true); + assert(gap > 0.000902); + assert(gap < 0.000905); + assert(gap < GT_B_REL); + assert(gap * 100.0 < GT_B_REL); + assert(g075 < GT_B_REL); + assert(gw < GT_B_REL); + // the body effect raises a resistance and the read has it: at every one of the 27 points the Ron with the bulks on the rails is above the Ron with each bulk on its source (in ngspice's two cells by 1.5 % at 0.1 V to 45 % at 0.85 V) + var k : u32 = 0; + var above : u32 = 0; + while (k < GT_NV) { + if (gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(k), true) > gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(k), false)) { above = above + 1; } + k = k + 1; + } + assert_eq(above, GT_NV); + // the ngspice cell with each bulk on its own source (accept_tgate.cir, second cell) is the condition of the 2-D tables, not of the real cell: the Vsb read of the real cell is 43 % + // above it at 0.75 V (2461 against 1717 ohm), so it is the real cell's reference that the read meets and not that one + assert(gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RNB, true) > 0.3); +} + +test the_source_to_bulk_read_meets_3_percent_with_a_floor_of_1_nA_at_1000_held_out_centres_between_slices_and_the_read_with_vsb_forced_to_zero_does_not { + // M3e (#11283), FR-001 and FR-005 on the held-out currents of mos_psp103_vsb_data.t27 (ngspice, never used to make a table): the centres of the cells of the (Vgs, Vds, Vsb) grid, Vsb + // halfway between two slices. The largest relative error with a floor of 1 nA on the reference is 1.71 % (NMOS) and 2.51 % (PMOS): the third axis is a chord of the log word over + // 0.25 V of Vsb (the 2-D read's own 0.47 % and 0.70 % at its cell centres are in it), and the bar is 3 %. 898 and 818 of the 1000 points are above the floor. + const hn : HoldV = gt_hold_vsb(DEV_N, &TT_LG_N, 1000, true); + const hp : HoldV = gt_hold_vsb(DEV_P, &TT_LG_P, 1000, true); + assert(hn.rel9 < GT_B_VSB); + assert(hp.rel9 < GT_B_VSB); + assert(hn.rel9 > 0.017114); + assert(hn.rel9 < 0.017115); + assert(hp.rel9 > 0.025132); + assert(hp.rel9 < 0.025133); + // the largest absolute error: 134 nA (NMOS) and 186 nA (PMOS) + assert(hn.abs_a > 0.0000001336); + assert(hn.abs_a < 0.0000001337); + assert(hp.abs_a > 0.0000001857); + assert(hp.abs_a < 0.0000001858); + assert_eq(hn.n9, 898); + assert_eq(hp.n9, 818); + // NEGATIVE CONTROL: the same points read with Vsb forced to 0 (the 2-D read of the existing tables) are 105 times (NMOS) and 424 times (PMOS) off, in relative terms: the weak inversion + // current at Vsb up to 1.4 V is 2^6 to 2^10 times below the one at 0, and the bar of 3 % refuses it by 3500 and 14000 times + const zn : HoldV = gt_hold_vsb(DEV_N, &TT_LG_N, 1000, false); + const zp : HoldV = gt_hold_vsb(DEV_P, &TT_LG_P, 1000, false); + assert(zn.rel9 > 104.8); + assert(zn.rel9 < 104.9); + assert(zp.rel9 > 424.0); + assert(zp.rel9 < 424.1); + assert(zn.rel9 > 3000.0 * GT_B_VSB); + assert(zp.rel9 > 10000.0 * GT_B_VSB); +} + +test the_real_cell_read_with_vsb_forced_to_zero_is_the_2d_read_bit_for_bit_and_the_bar_refuses_it_and_so_it_refuses_a_read_with_the_two_devices_vsb_exchanged { + // M3e (#11283), FR-002 and FR-005. With body false the third axis is off: at every one of the 27 points the current is the sum of the two 2-D reads of mos_table.t27, to the word. + var same : u32 = 0; + var k : u32 = 0; + var dv : u32 = GT_DV; + while (k < GT_NV) { + const vout : u32 = gt_tg_v(k); + if (gt_tg_i(&TT_LG_N, &TT_LG_P, vout, dv, false) == lg_fine(&TT_LG_N, VDD - vout, dv) + lg_fine(&TT_LG_P, vout + dv, dv)) { same = same + 1; } + k = k + 1; + } + assert_eq(same, GT_NV); + // THE NEGATIVE CONTROL OF THE ISSUE: the real cell read with Vsb forced to 0 is 1718.0 ohm at 0.75 V (30.2 % under ngspice's 2459.6) and the largest of the 27 gaps is 31.1 %: the same + // bar of 10 % refuses it, by 3.0 and 3.1 times + const rz : f64 = gt_tg_ron(&TT_LG_N, &TT_LG_P, gt_tg_v(13), false); + const gz075 : f64 = (GT_NG_RTG[13] - rz) / GT_NG_RTG[13]; + const gz : f64 = gt_ron_gap(&TT_LG_N, &TT_LG_P, >_NG_RTG, false); + assert(rz > 1717.9); + assert(rz < 1718.1); + assert(gz075 > 0.301); + assert(gz075 < 0.302); + assert(gz > 0.311); + assert(gz < 0.312); + assert(gz075 > 3.0 * GT_B_REL); + assert(gz > 3.1 * GT_B_REL); + // A second control, the two devices' Vsb exchanged (the NMOS read at Vdd minus the input, the PMOS at the output level): at 0.75 V the cell is symmetric and the exchange is not seen + // there (2461.07 ohm against 2461.22), it is seen at the other 26 points: the largest of the 27 gaps is 32.3 %, 358 times the right read's, and the bar refuses it + var worst : f64 = 0.0; + var at075 : f64 = 0.0; + k = 0; + while (k < GT_NV) { + const vout : u32 = gt_tg_v(k); + const i : u64 = vsb_fine(DEV_N, &TT_LG_N, VDD - vout, dv, VDD - (vout + dv)) + vsb_fine(DEV_P, &TT_LG_P, vout + dv, dv, vout); + const r : f64 = ((dv as f64) / UPV) / ((i as f64) * IUNIT_A); + var g : f64 = (r - GT_NG_RTG[k as usize]) / GT_NG_RTG[k as usize]; + if (g < 0.0) { g = 0.0 - g; } + if (g > worst) { worst = g; } + if (k == 13) { at075 = r; } + k = k + 1; + } + assert(at075 > 2461.0); + assert(at075 < 2461.1); + assert(worst > 0.323); + assert(worst < 0.324); + assert(worst > 3.0 * GT_B_REL); +} diff --git a/specs/analog/mos_psp103_vsb_data.t27 b/specs/analog/mos_psp103_vsb_data.t27 new file mode 100644 index 0000000000..d23d18658a --- /dev/null +++ b/specs/analog/mos_psp103_vsb_data.t27 @@ -0,0 +1,4649 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/analog/mos_psp103_vsb_data.t27 -- the IHP SG13G2 PSP103 current tables with a source-to-bulk axis, corner mos_tt, 27 C: data, the accessors and the tests of the data +; M3e of the analog emulation epic (#10486, issue #11283). The log-domain tables of mos_psp103_data.t27 (TT_LG_N, TT_LG_P) are Id(Vgs, Vds) of sg13_lv_nmos (W 1.0 um, L 0.45 um) and +; sg13_lv_pmos (W 3.0 um, L 0.45 um) with each bulk tied to its source, so they hold no body effect. A transmission gate has its bulks on the rails (the NMOS on ground, the PMOS on +; the supply) and conducts with its sources between them: while it conducts at 0.75 V the NMOS source is 0.75 V above its bulk and the PMOS source 0.75 V below its bulk, which raises +; both thresholds, and ngspice's real cell is 30 percent above the tables' Ron (mos_psp103_gates.t27, accept_tgate.cir). This file adds the missing axis: the same two tables at +; six more source-to-bulk voltages Vsb = 0.25, 0.5, .. 1.5 V (the slices 1 .. 6; the slice 0 is the existing 2-D table, which is the Vsb = 0 case, so the read at Vsb = 0 is the 2-D +; read bit for bit). The read is in mos_table.t27 (`lg_fine_vsb`, the log word blended between two slices); the accessors here pick the two slices around a Vsb. +; - +; WHERE THE NUMBERS COME FROM. ngspice-47 and the IHP-Open-PDK checkout at commit 21133f219b1a6da10d803e345761e77415ceff40 (cornerMOSlv.lib, PSP 103.6, section mos_tt, psp103.osdi from +; the same commit), 27 C, on the reference host (a container, 2 threads), 2026-10-20, one deck run twice (46 s and 48 s; the data rows of the two logs are identical): specs/analog/decks/psp103_idpa_vsb_tt.cir, psp103_idpa_tt.cir with the +; bulk of each device on its own source of voltage: the NMOS bulk at -Vsb (its source at 0 V), the PMOS bulk at 1.5 V + Vsb (its source at the 1.5 V rail). Vsb is a reverse bias +; for both, a magnitude. The grid, the gate scale s(Vgs) (the tt one, the same at every Vsb, so rv is a function of Vgs only), the encoding (log2(Id / F) in 1/65536 of an octave over +; IUNIT = 1.164 pA, the Vds = 0 column the limit s_eff * gds0) are those of TT_LG_N and TT_LG_P: a slice is a table of 4851 words (the tag word 4294967295, 4753 log words +; at ix * 49 + iy, 97 rv words) that the 2-D reader reads as it reads TT_LG_N. The six slices of the NMOS are VSB_N1 .. VSB_N6 and of the PMOS VSB_P1 .. VSB_P6. The deck also prints +; the slice 0 (Vsb = 0 with the bulk as a node of its own): it agrees with TT_LG_N and TT_LG_P in all but 4 and 3 of 4753 words, by at most 3 and 1 words (3 / 65536 of an octave is +; 0.003 percent of a current), the solver noise of two netlists at reltol 1e-6; it is not pasted, so the accessors take the existing tables for the slice 0. +; - +; THE AXIS. Seven slices 0.25 V apart over 0 .. 1.5 V: the count is what the transmission gate's Ron needs, measured before it was chosen (the same data read with 4 slices, 0.5 V apart, +; is within 0.29 percent of ngspice's real cell at the worst of 27 points, with 7 within 0.09 percent; with 3 (0.75 V apart) 0.58 percent; the bar is 10 percent), and the held-out +; currents between slices keep the read to 2.5 percent (7 slices), 5.8 percent (4) and 14 percent (3): a chord of the log word over a slice is exact where the threshold moves linearly +; with Vsb and is not where it bends (the square-root law is steepest near Vsb = 0). The three counts were read off the same printed tables with a floating-point twin of the reader, +; a scratch run outside the repository, and the integer read of mos_table.t27 is what the tests of mos_psp103_gates.t27 judge. +; - +; THE HELD-OUT POINTS are 1000 currents in pA (nint(Id * 1e12)) at centres of the cells of the 3-D grid, the places a chord of it is worst: point k = 1 .. 1000 is +; Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, Vsb = (floor(6 frac(k a3)) + 1/2) * 0.25 V (so Vsb is halfway between two slices: +; 0.125, 0.375, .. 1.375 V), a1, a2, a3 = R3_A1, R3_A2, R3_A3 (the 3-D R sequence, 1 / g, 1 / g^2 and 1 / g^3 for g^4 = g + 1). VSB_CEN_N and VSB_CEN_P. They were not used to make a +; table. The pins fail on any changed number. +; - +; WHAT A PASS SAYS. The numbers in this file are the numbers the deck printed, in order (the pins); the slices are tables of the format the 2-D reader reads; the rv words are the +; same in every slice; the current of a device falls with Vsb at every node above Vgs = 0.25 V; and the read at Vsb = 0 is the 2-D read of the existing table. WHAT IT DOES NOT SAY. +; That the interpolation along Vsb is accurate (mos_psp103_gates.t27 judges it against the held-out currents and the real tgate), anything about another corner, temperature, W, L or m, +; the leakage floor of the off state (a log word below 1 IUNIT is held at 0, so the PMOS off current at Vsb above 0.5 V is a floor, and the junction leakage that rises with Vsb is +; not resolved below it), or a bulk forward-biased against its source (Vsb below 0). The model is a TABLE MODEL of PSP103, not PSP103. ASCII only, English only. +; phi^2 + 1/phi^2 = 3 | TRINITY + +module AnalogMosPsp103VsbData; + +use analog::mos_table::{lg_fine, lg_fine_vsb, lg_vsb_cell, lg_vsb_frac, LG_TAG}; +use analog::mos_psp103_data::{TT_LG_N, TT_LG_P, fold_arr}; + +; --- what the numbers are ------------------------------------------------------------------------------------------ +pub const KIND : str = "analog-table-data"; +pub const ID : str = "analog/mos_psp103_vsb_data"; +pub const REFERENCE : str = "IHP-Open-PDK ihp-sg13g2 cornerMOSlv.lib (PSP 103.6) through ngspice-47 and OSDI, bulk off the source; deck specs/analog/decks/psp103_idpa_vsb_tt.cir"; +/// The IHP-Open-PDK checkout every number was made from (the commit of M3b's tables). +pub const PDK_COMMIT : str = "21133f219b1a6da10d803e345761e77415ceff40"; +pub const TEMP_C : u32 = 27; +/// The slices along Vsb (slice 0 is the existing 2-D table), 0.25 V apart, and the held-out points. +pub const VSB_NSLICE : u32 = 7; +pub const VSB_STEP_MV : u32 = 250; +pub const VSB_CEN_COUNT : u32 = 1000; +/// The device index of the accessors: the NMOS table, the PMOS table. +pub const DEV_N : u32 = 0; +pub const DEV_P : u32 = 1; +/// The 3-D R sequence of the held-out points: 1 / g, 1 / g^2, 1 / g^3 for g the real root of g^4 = g + 1. +pub const R3_A1 : f64 = 0.8191725133961645; +pub const R3_A2 : f64 = 0.6710436067037893; +pub const R3_A3 : f64 = 0.5497004779019703; + +; --- order-sensitive folds of the pasted numbers (fold_arr of mos_psp103_data.t27) ------------------------------------ +/// The twelve slices in the order VSB_N1 .. VSB_N6, VSB_P1 .. VSB_P6 (4851 words each), and the two held-out sets, NMOS then PMOS. +pub const PIN_VSB_LG : u64 = 0x8643D5629A3C357E; +pub const PIN_VSB_CEN : u64 = 0x061EB2F38AC69E0C; + +; --- the numbers -------------------------------------------------------------------------------------------------------- +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.25 V (slice 1): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_1 and r_1). +pub const VSB_N1 : [4851]u32 = [ + 4294967295, 294260, 294050, 294118, 296253, 299945, 304498, 309335, 314234, 318967, 323562, 327960, 332157, 336159, + 339972, 343607, 347076, 350388, 353555, 356585, 359489, 362275, 364950, 367524, 370001, 372390, 374695, 376923, + 379078, 381165, 383190, 385155, 387065, 388924, 390734, 392500, 394224, 395909, 397559, 399175, 400762, 402321, + 403856, 405372, 406872, 408362, 409861, 411357, 412870, 414413, 340044, 339234, 339430, 341601, 345318, 349895, + 354781, 359682, 364464, 369058, 373479, 377697, 381716, 385546, 389180, 392660, 395983, 399158, 402195, 405104, + 407893, 410570, 413143, 415619, 418003, 420302, 422521, 424666, 426740, 428749, 430697, 432586, 434422, 436214, + 437950, 439641, 441290, 442899, 444472, 446010, 447516, 448993, 450444, 451871, 453279, 454671, 456059, 457441, + 458827, 385875, 384698, 384981, 387186, 390931, 395537, 400454, 405385, 410196, 414829, 419263, 423505, 427536, + 431382, 435049, 438545, 441882, 445070, 448118, 451037, 453834, 456518, 459096, 461575, 463962, 466262, 468480, + 470622, 472693, 474696, 476636, 478517, 480342, 482113, 483835, 485510, 487141, 488730, 490279, 491792, 493270, + 494715, 496134, 497521, 498882, 500221, 501541, 502849, 504147, 431754, 430352, 430698, 432935, 436710, 441349, + 446298, 451261, 456103, 460767, 465228, 469495, 473551, 477419, 481105, 484620, 487974, 491177, 494240, 497171, + 499979, 502673, 505260, 507747, 510140, 512445, 514667, 516813, 518885, 520889, 522829, 524708, 526529, 528297, + 530013, 531681, 533304, 534883, 536421, 537921, 539384, 540812, 542208, 543574, 544911, 546222, 547512, 548776, + 550025, 477676, 476141, 476534, 478801, 482608, 487281, 492264, 497261, 502135, 506829, 511319, 515608, 519693, + 523585, 527292, 530827, 534199, 537419, 540497, 543442, 546264, 548970, 551567, 554064, 556465, 558778, 561008, + 563159, 565237, 567245, 569188, 571070, 572893, 574661, 576378, 578045, 579665, 581241, 582776, 584270, 585727, + 587148, 588535, 589889, 591214, 592510, 593780, 595026, 596249, 523640, 522028, 522458, 524755, 528594, 533301, + 538320, 543351, 548258, 552983, 557504, 561818, 565928, 569843, 573573, 577127, 580518, 583755, 586850, 589810, + 592646, 595364, 597974, 600481, 602893, 605216, 607454, 609613, 611697, 613712, 615661, 617547, 619375, 621147, + 622866, 624536, 626158, 627735, 629269, 630763, 632219, 633638, 635022, 636372, 637692, 638982, 640243, 641479, + 642690, 569641, 567988, 568449, 570776, 574648, 579390, 584443, 589509, 594449, 599205, 603755, 608096, 612232, + 616170, 619922, 623497, 626906, 630161, 633272, 636248, 639097, 641830, 644452, 646971, 649393, 651726, 653973, + 656141, 658234, 660256, 662212, 664105, 665938, 667715, 669439, 671113, 672739, 674319, 675856, 677352, 678809, + 680229, 681614, 682964, 684283, 685571, 686830, 688062, 689267, 615673, 614005, 614495, 616851, 620755, 625531, + 630619, 635719, 640691, 645478, 650057, 654425, 658586, 662548, 666321, 669916, 673344, 676617, 679744, 682735, + 685599, 688345, 690979, 693510, 695944, 698287, 700544, 702721, 704822, 706852, 708816, 710715, 712555, 714339, + 716069, 717747, 719378, 720963, 722504, 724004, 725464, 726887, 728274, 729626, 730946, 732235, 733495, 734726, + 735930, 661726, 660063, 660581, 662965, 666902, 671711, 676834, 681967, 686971, 691787, 696395, 700789, 704974, + 708959, 712753, 716368, 719815, 723105, 726248, 729254, 732132, 734891, 737538, 740081, 742525, 744878, 747145, + 749332, 751442, 753480, 755451, 757358, 759205, 760995, 762731, 764415, 766051, 767641, 769187, 770691, 772156, + 773582, 774972, 776328, 777651, 778943, 780204, 781437, 782642, 707786, 706147, 706694, 709107, 713074, 717917, + 723072, 728237, 733271, 738117, 742752, 747171, 751380, 755386, 759201, 762835, 766300, 769606, 772765, 775785, + 778677, 781448, 784108, 786661, 789117, 791480, 793756, 795952, 798070, 800117, 802095, 804010, 805863, 807660, + 809402, 811092, 812734, 814329, 815880, 817389, 818858, 820288, 821682, 823042, 824368, 825663, 826927, 828163, + 829370, 753828, 752238, 752818, 755259, 759256, 764129, 769315, 774509, 779573, 784445, 789105, 793549, 797779, + 801806, 805640, 809292, 812773, 816095, 819268, 822302, 825207, 827990, 830660, 833225, 835690, 838063, 840348, + 842552, 844679, 846733, 848719, 850640, 852500, 854303, 856051, 857747, 859394, 860994, 862550, 864064, 865537, + 866972, 868370, 869733, 871063, 872361, 873629, 874867, 876078, 799816, 798307, 798927, 801397, 805420, 810321, + 815534, 820755, 825844, 830741, 835424, 839888, 844138, 848183, 852034, 855702, 859198, 862533, 865719, 868766, + 871682, 874476, 877156, 879730, 882205, 884586, 886879, 889091, 891224, 893286, 895278, 897205, 899072, 900880, + 902633, 904335, 905987, 907591, 909152, 910670, 912147, 913586, 914988, 916355, 917688, 918989, 920260, 921501, + 922714, 845689, 844313, 844985, 847482, 851529, 856451, 861687, 866930, 872039, 876956, 881656, 886137, 890404, + 894463, 898328, 902008, 905516, 908863, 912060, 915116, 918041, 920844, 923532, 926114, 928596, 930984, 933284, + 935501, 937641, 939708, 941706, 943638, 945509, 947322, 949080, 950786, 952442, 954051, 955615, 957136, 958617, + 960059, 961464, 962834, 964170, 965474, 966748, 967991, 969207, 891353, 890188, 890933, 893458, 897520, 902457, + 907707, 912963, 918085, 923013, 927725, 932217, 936493, 940562, 944435, 948123, 951639, 954992, 958195, 961258, + 964189, 966997, 969691, 972277, 974764, 977156, 979460, 981682, 983826, 985896, 987897, 989833, 991707, 993523, + 995284, 996992, 998651, 1000262, 1001829, 1003353, 1004836, 1006280, 1007687, 1009059, 1010397, 1011703, 1012978, 1014224, + 1015441, 936660, 935829, 936679, 939232, 943300, 948239, 953489, 958746, 963869, 968797, 973509, 978001, 982278, + 986347, 990220, 993909, 997425, 1000779, 1003983, 1007046, 1009977, 1012786, 1015480, 1018067, 1020554, 1022947, 1025252, + 1027474, 1029618, 1031689, 1033691, 1035627, 1037502, 1039318, 1041079, 1042788, 1044447, 1046059, 1047626, 1049150, 1050634, + 1052078, 1053486, 1054858, 1056197, 1057503, 1058778, 1060024, 1061242, 981811, 981318, 982210, 984726, 988753, 993658, + 998882, 1004117, 1009220, 1014130, 1018826, 1023303, 1027565, 1031621, 1035483, 1039160, 1042666, 1046011, 1049205, 1052260, + 1055184, 1057985, 1060673, 1063254, 1065735, 1068122, 1070422, 1072639, 1074778, 1076845, 1078842, 1080775, 1082646, 1084459, + 1086217, 1087922, 1089578, 1091187, 1092751, 1094273, 1095754, 1097196, 1098601, 1099971, 1101308, 1102612, 1103885, 1105129, + 1106345, 1033350, 1030435, 1029494, 1030840, 1034196, 1038738, 1043764, 1048884, 1053911, 1058765, 1063415, 1067851, 1072077, + 1076100, 1079931, 1083580, 1087060, 1090380, 1093552, 1096585, 1099489, 1102272, 1104943, 1107507, 1109973, 1112346, 1114632, + 1116836, 1118963, 1121018, 1123005, 1124927, 1126788, 1128591, 1130340, 1132037, 1133685, 1135286, 1136842, 1138357, 1139831, + 1141266, 1142665, 1144029, 1145359, 1146658, 1147925, 1149164, 1150374, 1089800, 1082755, 1078562, 1077687, 1079665, 1083400, + 1087959, 1092799, 1097649, 1102378, 1106932, 1111288, 1115444, 1119405, 1123178, 1126775, 1130206, 1133481, 1136610, 1139604, + 1142471, 1145219, 1147857, 1150391, 1152828, 1155174, 1157434, 1159614, 1161718, 1163751, 1165717, 1167619, 1169461, 1171247, + 1172979, 1174659, 1176291, 1177877, 1179419, 1180920, 1182380, 1183803, 1185190, 1186542, 1187861, 1189148, 1190405, 1191633, + 1192834, 1146306, 1135619, 1128125, 1124692, 1124882, 1127439, 1131239, 1135588, 1140106, 1144602, 1148978, 1153193, 1157230, + 1161085, 1164765, 1168276, 1171628, 1174829, 1177891, 1180821, 1183629, 1186321, 1188906, 1191391, 1193781, 1196083, 1198302, + 1200442, 1202509, 1204506, 1206438, 1208308, 1210120, 1211876, 1213580, 1215233, 1216840, 1218401, 1219920, 1221398, 1222836, + 1224238, 1225604, 1226937, 1228237, 1229506, 1230746, 1231957, 1233142, 1200003, 1187007, 1176863, 1171025, 1169318, 1170482, + 1173291, 1176936, 1180950, 1185072, 1189163, 1193151, 1196999, 1200693, 1204231, 1207614, 1210849, 1213944, 1216906, 1219744, + 1222465, 1225077, 1227586, 1229998, 1232321, 1234558, 1236716, 1238799, 1240811, 1242756, 1244638, 1246461, 1248228, 1249941, + 1251603, 1253217, 1254786, 1256311, 1257794, 1259238, 1260645, 1262016, 1263352, 1264656, 1265928, 1267170, 1268384, 1269570, + 1270730, 1249603, 1235652, 1223717, 1215858, 1212341, 1212047, 1213728, 1216513, 1219868, 1223482, 1227172, 1230835, 1234415, + 1237881, 1241220, 1244428, 1247504, 1250455, 1253284, 1255998, 1258603, 1261107, 1263514, 1265831, 1268063, 1270215, 1272291, + 1274297, 1276236, 1278111, 1279927, 1281686, 1283392, 1285047, 1286654, 1288214, 1289732, 1291208, 1292644, 1294043, 1295406, + 1296734, 1298030, 1299294, 1300528, 1301734, 1302912, 1304064, 1305191, 1294670, 1280833, 1267950, 1258537, 1253402, 1251689, + 1252199, 1254036, 1256630, 1259629, 1262820, 1266072, 1269307, 1272480, 1275564, 1278548, 1281424, 1284193, 1286856, 1289417, + 1291880, 1294250, 1296533, 1298732, 1300853, 1302899, 1304876, 1306787, 1308635, 1310425, 1312158, 1313839, 1315469, 1317052, + 1318590, 1320084, 1321538, 1322953, 1324330, 1325672, 1326980, 1328256, 1329500, 1330715, 1331902, 1333062, 1334195, 1335304, + 1336389, 1335233, 1322215, 1309120, 1298638, 1292134, 1289106, 1288469, 1289337, 1291121, 1293445, 1296071, 1298848, 1301681, + 1304507, 1307291, 1310009, 1312650, 1315206, 1317676, 1320059, 1322358, 1324575, 1326715, 1328779, 1330773, 1332700, 1334563, + 1336365, 1338110, 1339801, 1341440, 1343030, 1344574, 1346074, 1347532, 1348950, 1350330, 1351674, 1352983, 1354259, 1355503, + 1356717, 1357902, 1359060, 1360191, 1361297, 1362378, 1363436, 1364472, 1371590, 1359767, 1347036, 1335956, 1328356, 1324159, + 1322447, 1322373, 1323345, 1324975, 1327007, 1329275, 1331669, 1334116, 1336568, 1338994, 1341374, 1343696, 1345953, 1348142, + 1350262, 1352313, 1354297, 1356217, 1358074, 1359871, 1361611, 1363297, 1364931, 1366515, 1368053, 1369546, 1370997, 1372407, + 1373779, 1375114, 1376414, 1377681, 1378916, 1380120, 1381295, 1382442, 1383562, 1384657, 1385727, 1386774, 1387798, 1388800, + 1389782, 1404168, 1393670, 1381698, 1370449, 1362042, 1356843, 1354155, 1353198, 1353390, 1354338, 1355777, 1357529, 1359472, + 1361525, 1363630, 1365748, 1367854, 1369930, 1371964, 1373950, 1375883, 1377762, 1379585, 1381355, 1383071, 1384735, 1386349, + 1387915, 1389436, 1390912, 1392345, 1393739, 1395094, 1396412, 1397696, 1398946, 1400164, 1401351, 1402509, 1403639, 1404743, + 1405820, 1406873, 1407903, 1408910, 1409895, 1410859, 1411804, 1412729, 1433430, 1424235, 1413250, 1402194, 1393264, 1387242, + 1383692, 1381928, 1381393, 1381693, 1382559, 1383806, 1385304, 1386963, 1388719, 1390527, 1392355, 1394181, 1395989, 1397769, + 1399513, 1401218, 1402881, 1404500, 1406076, 1407608, 1409097, 1410545, 1411952, 1413321, 1414652, 1415947, 1417208, 1418436, + 1419632, 1420798, 1421934, 1423043, 1424125, 1425182, 1426214, 1427223, 1428209, 1429174, 1430118, 1431042, 1431947, 1432833, + 1433702, 1459823, 1451828, 1441920, 1431334, 1422152, 1415490, 1411199, 1408713, 1407510, 1407208, 1407534, 1408299, 1409368, + 1410645, 1412060, 1413562, 1415116, 1416695, 1418279, 1419855, 1421413, 1422947, 1424451, 1425923, 1427361, 1428764, 1430132, + 1431464, 1432763, 1434028, 1435260, 1436461, 1437631, 1438771, 1439884, 1440969, 1442027, 1443061, 1444070, 1445056, 1446020, + 1446962, 1447884, 1448786, 1449669, 1450534, 1451381, 1452211, 1453025, 1483741, 1476812, 1467979, 1458050, 1448860, 1441739, + 1436829, 1433706, 1431903, 1431048, 1430873, 1431186, 1431849, 1432761, 1433848, 1435056, 1436344, 1437682, 1439048, 1440425, + 1441802, 1443169, 1444519, 1445848, 1447153, 1448431, 1449683, 1450905, 1452100, 1453266, 1454404, 1455515, 1456599, 1457657, + 1458690, 1459699, 1460684, 1461647, 1462587, 1463507, 1464406, 1465286, 1466147, 1466989, 1467815, 1468624, 1469416, 1470193, + 1470956, 1505529, 1499530, 1491710, 1482545, 1473551, 1466147, 1460738, 1457065, 1454724, 1453368, 1452733, 1452627, 1452909, + 1453477, 1454253, 1455179, 1456212, 1457319, 1458475, 1459660, 1460861, 1462067, 1463268, 1464460, 1465637, 1466797, 1467936, + 1469054, 1470150, 1471223, 1472272, 1473298, 1474302, 1475283, 1476241, 1477179, 1478095, 1478991, 1479868, 1480725, 1481564, + 1482386, 1483190, 1483978, 1484750, 1485506, 1486248, 1486976, 1487690, 1525473, 1520277, 1513382, 1505022, 1496383, 1488860, + 1483071, 1478931, 1476116, 1474308, 1473252, 1472760, 1472689, 1472935, 1473417, 1474077, 1474868, 1475754, 1476708, 1477710, + 1478742, 1479793, 1480851, 1481911, 1482966, 1484012, 1485045, 1486063, 1487065, 1488049, 1489015, 1489962, 1490889, 1491798, + 1492687, 1493558, 1494411, 1495245, 1496062, 1496862, 1497646, 1498413, 1499165, 1499902, 1500625, 1501333, 1502028, 1502710, + 1503379, 1543823, 1539317, 1533250, 1525688, 1517516, 1510019, 1503965, 1499440, 1496210, 1493997, 1492559, 1491712, 1491314, + 1491260, 1491468, 1491876, 1492437, 1493113, 1493876, 1494701, 1495572, 1496474, 1497396, 1498329, 1499267, 1500203, 1501135, + 1502058, 1502971, 1503871, 1504757, 1505629, 1506485, 1507326, 1508151, 1508959, 1509752, 1510530, 1511292, 1512039, 1512771, + 1513489, 1514192, 1514883, 1515560, 1516224, 1516876, 1517516, 1518144, 1560775, 1556862, 1551527, 1544726, 1537091, 1529745, + 1523536, 1518705, 1515120, 1512546, 1510763, 1509591, 1508892, 1508559, 1508510, 1508683, 1509027, 1509504, 1510084, 1510742, + 1511458, 1512218, 1513008, 1513820, 1514645, 1515477, 1516312, 1517144, 1517972, 1518792, 1519603, 1520404, 1521193, 1521969, + 1522733, 1523484, 1524221, 1524945, 1525656, 1526354, 1527039, 1527710, 1528370, 1529017, 1529652, 1530276, 1530888, 1531489, + 1532080, 1576506, 1573106, 1568413, 1562319, 1555253, 1548156, 1541894, 1536834, 1532950, 1530059, 1527964, 1526496, 1525519, + 1524928, 1524640, 1524591, 1524731, 1525020, 1525426, 1525924, 1526492, 1527116, 1527780, 1528476, 1529193, 1529925, 1530665, + 1531411, 1532157, 1532901, 1533640, 1534373, 1535098, 1535814, 1536521, 1537217, 1537902, 1538576, 1539239, 1539891, 1540531, + 1541160, 1541778, 1542386, 1542982, 1543568, 1544144, 1544710, 1545267, 1591151, 1588194, 1584064, 1578616, 1572125, 1565352, + 1559128, 1553915, 1549786, 1546619, 1544246, 1542509, 1541277, 1540446, 1539935, 1539679, 1539627, 1539738, 1539980, 1540325, + 1540753, 1541247, 1541791, 1542374, 1542987, 1543623, 1544274, 1544935, 1545603, 1546274, 1546944, 1547612, 1548276, 1548935, + 1549587, 1550231, 1550867, 1551494, 1552112, 1552720, 1553319, 1553909, 1554488, 1555059, 1555619, 1556171, 1556713, 1557246, + 1557771, 1604838, 1602265, 1598628, 1593764, 1587833, 1581434, 1575327, 1570031, 1565711, 1562308, 1559687, 1557706, 1556240, + 1555188, 1554469, 1554020, 1553787, 1553730, 1553816, 1554017, 1554310, 1554679, 1555107, 1555583, 1556097, 1556639, 1557204, + 1557784, 1558377, 1558977, 1559581, 1560187, 1560792, 1561396, 1561995, 1562590, 1563179, 1563761, 1564336, 1564904, 1565464, + 1566016, 1566559, 1567095, 1567622, 1568141, 1568652, 1569155, 1569651, 1617667, 1615430, 1612226, 1607886, 1602488, 1596490, + 1590564, 1585252, 1580793, 1577194, 1574355, 1572153, 1570473, 1569217, 1568305, 1567674, 1567272, 1567057, 1566995, 1567058, + 1567224, 1567473, 1567790, 1568163, 1568580, 1569033, 1569514, 1570017, 1570536, 1571068, 1571608, 1572154, 1572703, 1573253, + 1573802, 1574349, 1574893, 1575432, 1575967, 1576496, 1577019, 1577535, 1578045, 1578548, 1579043, 1579532, 1580014, 1580489, + 1580956, 1629727, 1627785, 1624960, 1621089, 1616189, 1610603, 1604909, 1599639, 1595092, 1591335, 1588308, 1585909, 1584033, + 1582589, 1581498, 1580697, 1580136, 1579771, 1579569, 1579502, 1579545, 1579680, 1579892, 1580165, 1580490, 1580856, 1581256, + 1581683, 1582132, 1582598, 1583076, 1583564, 1584058, 1584556, 1585057, 1585558, 1586058, 1586557, 1587052, 1587544, 1588031, + 1588514, 1588991, 1589463, 1589929, 1590389, 1590843, 1591291, 1591733, 1641093, 1639410, 1636921, 1633467, 1629029, 1623854, + 1618426, 1613251, 1608663, 1604785, 1601598, 1599024, 1596972, 1595354, 1594097, 1593138, 1592427, 1591921, 1591587, 1591395, + 1591322, 1591348, 1591457, 1591635, 1591871, 1592154, 1592476, 1592830, 1593210, 1593611, 1594029, 1594460, 1594902, 1595350, + 1595803, 1596260, 1596718, 1597177, 1597634, 1598090, 1598543, 1598993, 1599439, 1599881, 1600319, 1600751, 1601179, 1601602, + 1602019, 1651827, 1650374, 1648182, 1645101, 1641085, 1636310, 1631171, 1626134, 1621550, 1617588, 1614270, 1611543, 1609332, + 1607555, 1606144, 1605037, 1604186, 1603547, 1603087, 1602778, 1602594, 1602516, 1602527, 1602614, 1602763, 1602966, 1603212, + 1603496, 1603809, 1604148, 1604508, 1604884, 1605273, 1605673, 1606080, 1606494, 1606911, 1607331, 1607752, 1608173, 1608593, + 1609011, 1609427, 1609841, 1610251, 1610657, 1611060, 1611458, 1611852, 1661989, 1660741, 1658812, 1656064, 1652434, 1648041, + 1643204, 1638338, 1633798, 1629787, 1626365, 1623508, 1621154, 1619233, 1617679, 1616435, 1615452, 1614688, 1614110, 1613688, + 1613398, 1613221, 1613139, 1613137, 1613204, 1613329, 1613502, 1613717, 1613966, 1614244, 1614547, 1614869, 1615208, 1615560, + 1615923, 1616294, 1616671, 1617053, 1617439, 1617826, 1618214, 1618601, 1618988, 1619374, 1619758, 1620139, 1620517, 1620892, + 1621264, 1671635, 1670569, 1668874, 1666423, 1663144, 1659112, 1654579, 1649911, 1645449, 1641422, 1637924, 1634956, 1632476, + 1630424, 1628739, 1627367, 1626261, 1625379, 1624689, 1624160, 1623770, 1623497, 1623325, 1623239, 1623226, 1623275, 1623378, + 1623526, 1623713, 1623932, 1624179, 1624449, 1624739, 1625044, 1625363, 1625693, 1626031, 1626376, 1626726, 1627080, 1627436, + 1627794, 1628153, 1628512, 1628869, 1629226, 1629580, 1629933, 1630283, 1680797, 1679894, 1678409, 1676224, 1673264, 1669570, + 1665339, 1660885, 1656532, 1652520, 1648971, 1645915, 1643326, 1641156, 1639351, 1637861, 1636639, 1635647, 1634850, 1634221, + 1633735, 1633371, 1633113, 1632945, 1632855, 1632832, 1632867, 1632950, 1633076, 1633238, 1633431, 1633650, 1633892, 1634152, + 1634428, 1634717, 1635017, 1635326, 1635642, 1635963, 1636289, 1636617, 1636948, 1637280, 1637613, 1637945, 1638277, 1638608, + 1638937, 1689518, 1688763, 1687465, 1685520, 1682848, 1679468, 1675531, 1671303, 1667083, 1663113, 1659539, 1656415, 1653733, + 1651459, 1649545, 1647945, 1646616, 1645520, 1644623, 1643898, 1643320, 1642870, 1642529, 1642284, 1642120, 1642027, 1641995, + 1642016, 1642083, 1642189, 1642329, 1642499, 1642693, 1642909, 1643143, 1643393, 1643655, 1643928, 1644210, 1644500, 1644795, + 1645095, 1645399, 1645705, 1646013, 1646321, 1646631, 1646940, 1647249, 1697837, 1697214, 1696085, 1694355, 1691945, 1688855, + 1685201, 1681204, 1677134, 1673231, 1669656, 1666483, 1663725, 1661359, 1659347, 1657646, 1656217, 1655023, 1654032, 1653216, + 1652551, 1652018, 1651599, 1651278, 1651043, 1650883, 1650787, 1650747, 1650757, 1650809, 1650898, 1651018, 1651167, 1651339, + 1651532, 1651743, 1651968, 1652206, 1652455, 1652714, 1652979, 1653251, 1653527, 1653808, 1654091, 1654377, 1654664, 1654952, + 1655241, 1705785, 1705281, 1704305, 1702768, 1700595, 1697774, 1694389, 1690623, 1686717, 1682901, 1679346, 1676144, 1673325, + 1670880, 1668780, 1666987, 1665465, 1664180, 1663099, 1662198, 1661451, 1660838, 1660343, 1659951, 1659647, 1659421, 1659264, + 1659165, 1659119, 1659118, 1659157, 1659230, 1659334, 1659463, 1659616, 1659788, 1659977, 1660181, 1660398, 1660625, 1660861, + 1661105, 1661355, 1661610, 1661870, 1662133, 1662398, 1662665, 1662934, 1713381, 1712986, 1712147, 1710786, 1708828, 1706254, + 1703123, 1699586, 1695853, 1692142, 1688627, 1685414, 1682550, 1680039, 1677861, 1675985, 1674378, 1673007, 1671843, 1670860, + 1670034, 1669347, 1668780, 1668318, 1667948, 1667660, 1667442, 1667287, 1667187, 1667135, 1667125, 1667152, 1667211, 1667299, + 1667412, 1667547, 1667701, 1667871, 1668055, 1668252, 1668459, 1668676, 1668900, 1669130, 1669366, 1669606, 1669850, 1670097, + 1670346, 1720656, 1720359, 1719646, 1718443, 1716682, 1714334, 1711442, 1708127, 1704573, 1700980, 1697522, 1694316, 1691423, + 1688858, 1686612, 1684661, 1682975, 1681525, 1680283, 1679223, 1678323, 1677564, 1676927, 1676399, 1675967, 1675618, 1675342, + 1675132, 1674979, 1674877, 1674820, 1674802, 1674818, 1674866, 1674940, 1675038, 1675156, 1675293, 1675446, 1675613, 1675791, + 1675981, 1676179, 1676385, 1676597, 1676815, 1677038, 1677264, 1677494, 1727628, 1727421, 1726822, 1725763, 1724181, 1722042, + 1719374, 1716274, 1712900, 1709436, 1706050, 1702867, 1699958, 1697352, 1695049, 1693031, 1691273, 1689750, 1688434, 1687302, + 1686332, 1685504, 1684802, 1684210, 1683717, 1683309, 1682978, 1682715, 1682511, 1682361, 1682257, 1682195, 1682170, 1682177, + 1682213, 1682275, 1682359, 1682464, 1682585, 1682722, 1682873, 1683035, 1683208, 1683390, 1683579, 1683775, 1683977, 1684183, + 1684394, 1734323, 1734198, 1733703, 1732775, 1731355, 1729408, 1726948, 1724054, 1720860, 1717532, 1714231, 1711084, 1708174, + 1705538, 1703188, 1701111, 1699289, 1697699, 1696314, 1695114, 1694077, 1693184, 1692419, 1691767, 1691215, 1690751, 1690366, + 1690051, 1689798, 1689601, 1689452, 1689347, 1689281, 1689249, 1689248, 1689274, 1689325, 1689397, 1689488, 1689596, 1689719, + 1689855, 1690002, 1690160, 1690326, 1690500, 1690681, 1690868, 1691059, 1740759, 1740710, 1740309, 1739501, 1738229, 1736457, + 1734192, 1731494, 1728477, 1725289, 1722083, 1718986, 1716086, 1713433, 1711044, 1708918, 1707038, 1705385, 1703937, 1702673, + 1701573, 1700618, 1699793, 1699083, 1698474, 1697956, 1697520, 1697155, 1696854, 1696610, 1696418, 1696271, 1696165, 1696095, + 1696058, 1696049, 1696067, 1696107, 1696168, 1696247, 1696342, 1696452, 1696575, 1696708, 1696852, 1697005, 1697165, 1697332, + 1697504, 1746937, 1746958, 1746644, 1745946, 1744810, 1743201, 1741117, 1738605, 1735761, 1732717, 1729613, 1726577, 1723700, + 1721040, 1718624, 1716455, 1714525, 1712816, 1711310, 1709987, 1708827, 1707814, 1706932, 1706166, 1705503, 1704934, 1704447, + 1704034, 1703687, 1703399, 1703164, 1702977, 1702832, 1702725, 1702652, 1702609, 1702594, 1702604, 1702635, 1702686, 1702754, + 1702838, 1702936, 1703047, 1703168, 1703299, 1703439, 1703586, 1703740, 1752894, 1752978, 1752744, 1752146, 1751135, 1749674, + 1747758, 1745422, 1742746, 1739845, 1736850, 1733883, 1731040, 1728384, 1725949, 1723746, 1721771, 1720012, 1718452, 1717073, + 1715858, 1714789, 1713853, 1713033, 1712320, 1711700, 1711165, 1710705, 1710314, 1709983, 1709707, 1709479, 1709296, 1709153, + 1709045, 1708969, 1708922, 1708901, 1708903, 1708926, 1708968, 1709027, 1709100, 1709187, 1709286, 1709396, 1709516, 1709643, + 1709779, 1758639, 1758781, 1758620, 1758114, 1757217, 1755893, 1754133, 1751962, 1749447, 1746689, 1743807, 1740917, 1738116, + 1735473, 1733028, 1730799, 1728786, 1726982, 1725373, 1723943, 1722675, 1721554, 1720566, 1719696, 1718933, 1718265, 1717683, + 1717179, 1716744, 1716371, 1716055, 1715789, 1715569, 1715389, 1715248, 1715139, 1715061, 1715010, 1714983, 1714978, 1714994, + 1715027, 1715077, 1715141, 1715218, 1715306, 1715406, 1715514, 1715631, 1764174, 1764369, 1764276, 1763854, 1763062, 1761866, + 1760250, 1758235, 1755875, 1753257, 1750490, 1747684, 1744935, 1742314, 1739868, 1737619, 1735575, 1733732, 1732079, 1730601, + 1729285, 1728115, 1727078, 1726159, 1725349, 1724635, 1724009, 1723461, 1722984, 1722571, 1722215, 1721912, 1721656, 1721442, + 1721267, 1721126, 1721017, 1720937, 1720882, 1720850, 1720840, 1720848, 1720874, 1720915, 1720971, 1721039, 1721118, 1721207, + 1721306, 1769517, 1769763, 1769731, 1769388, 1768692, 1767612, 1766132, 1764263, 1762050, 1759570, 1756920, 1754202, 1751510, + 1748920, 1746480, 1744220, 1742152, 1740275, 1738581, 1737061, 1735699, 1734483, 1733399, 1732435, 1731579, 1730822, 1730152, + 1729562, 1729045, 1728593, 1728199, 1727860, 1727568, 1727321, 1727113, 1726941, 1726802, 1726693, 1726610, 1726552, 1726516, + 1726500, 1726503, 1726521, 1726555, 1726602, 1726662, 1726732, 1726813, 1774670, 1774962, 1774988, 1774717, 1774111, 1773139, + 1771784, 1770053, 1767981, 1765635, 1763101, 1760475, 1757848, 1755295, 1752869, 1750605, 1748518, 1746613, 1744885, 1743326, + 1741922, 1740663, 1739536, 1738529, 1737630, 1736830, 1736119, 1735489, 1734933, 1734443, 1734013, 1733638, 1733312, 1733032, + 1732792, 1732590, 1732422, 1732284, 1732175, 1732090, 1732029, 1731990, 1731969, 1731965, 1731978, 1732005, 1732045, 1732097, + 1732159, 1779662, 1779996, 1780076, 1779871, 1779348, 1778476, 1777236, 1775633, 1773695, 1771478, 1769059, 1766528, 1763970, + 1761460, 1759055, 1756793, 1754694, 1752766, 1751007, 1749412, 1747971, 1746671, 1745503, 1744454, 1743515, 1742674, 1741924, + 1741255, 1740661, 1740134, 1739668, 1739259, 1738900, 1738587, 1738317, 1738085, 1737888, 1737722, 1737586, 1737476, 1737390, + 1737327, 1737283, 1737258, 1737250, 1737256, 1737277, 1737310, 1737354, 1784484, 1784858, 1784987, 1784844, 1784397, 1783618, + 1782487, 1781004, 1779193, 1777100, 1774796, 1772360, 1769875, 1767414, 1765037, 1762783, 1760677, 1758731, 1756947, 1755320, + 1753844, 1752508, 1751301, 1750213, 1749235, 1748356, 1747567, 1746861, 1746231, 1745669, 1745169, 1744726, 1744335, 1743991, + 1743690, 1743429, 1743204, 1743011, 1742849, 1742714, 1742604, 1742517, 1742451, 1742404, 1742375, 1742362, 1742363, 1742378, + 1742405, 1789157, 1789568, 1789743, 1789657, 1789280, 1788587, 1787556, 1786186, 1784495, 1782522, 1780329, 1777989, 1775579, + 1773173, 1770828, 1768588, 1766481, 1764522, 1762717, 1761063, 1759555, 1758184, 1756941, 1755817, 1754802, 1753886, 1753061, + 1752319, 1751653, 1751057, 1750524, 1750048, 1749626, 1749252, 1748921, 1748632, 1748379, 1748160, 1747972, 1747812, 1747678, + 1747568, 1747480, 1747412, 1747362, 1747329, 1747312, 1747308, 1747317, 1793682, 1794127, 1794344, 1794311, 1794000, 1793386, + 1792450, 1791185, 1789607, 1787749, 1785664, 1783420, 1781089, 1778740, 1776433, 1774212, 1772110, 1770143, 1768320, 1766643, + 1765106, 1763704, 1762428, 1761270, 1760219, 1759268, 1758408, 1757632, 1756933, 1756303, 1755738, 1755231, 1754778, 1754374, + 1754015, 1753698, 1753418, 1753173, 1752960, 1752776, 1752619, 1752486, 1752376, 1752287, 1752217, 1752165, 1752128, 1752107, + 1752099, 1798069, 1798545, 1798802, 1798818, 1798569, 1798029, 1797180, 1796014, 1794543, 1792794, 1790815, 1788665, 1786414, + 1784126, 1781861, 1779664, 1777571, 1775601, 1773765, 1772068, 1770506, 1769076, 1767769, 1766578, 1765495, 1764510, 1763618, + 1762809, 1762077, 1761415, 1760819, 1760281, 1759799, 1759366, 1758979, 1758634, 1758328, 1758058, 1757820, 1757612, 1757432, + 1757277, 1757146, 1757036, 1756946, 1756875, 1756820, 1756780, 1756755, 1802320, 1802825, 1803119, 1803181, 1802989, 1802518, + 1801750, 1800678, 1799307, 1797663, 1795786, 1793730, 1791558, 1789334, 1787115, 1784947, 1782867, 1780898, 1779054, 1777341, + 1775758, 1774302, 1772967, 1771746, 1770631, 1769616, 1768691, 1767851, 1767088, 1766396, 1765769, 1765202, 1764691, 1764230, + 1763816, 1763445, 1763113, 1762818, 1762556, 1762325, 1762122, 1761946, 1761794, 1761663, 1761554, 1761463, 1761390, 1761333, + 1761291, 1806456, 1806988, 1807316, 1807420, 1807281, 1806874, 1806182, 1805196, 1803921, 1802376, 1800597, 1798633, 1796541, + 1794382, 1792211, 1790077, 1788014, 1786051, 1784202, 1782475, 1780873, 1779394, 1778034, 1776785, 1775641, 1774596, 1773641, + 1772770, 1771977, 1771256, 1770600, 1770004, 1769465, 1768977, 1768536, 1768139, 1767782, 1767463, 1767177, 1766923, 1766698, + 1766500, 1766327, 1766177, 1766048, 1765939, 1765847, 1765773, 1765713, 1810455, 1811013, 1811373, 1811518, 1811428, 1811081, + 1810460, 1809557, 1808372, 1806922, 1805238, 1803363, 1801352, 1799260, 1797141, 1795042, 1793002, 1791048, 1789198, 1787462, + 1785845, 1784347, 1782963, 1781688, 1780518, 1779444, 1778461, 1777562, 1776740, 1775990, 1775307, 1774684, 1774118, 1773603, + 1773137, 1772715, 1772334, 1771990, 1771682, 1771405, 1771159, 1770940, 1770747, 1770577, 1770429, 1770301, 1770192, 1770100, + 1770024, 1814352, 1814933, 1815323, 1815505, 1815461, 1815170, 1814616, 1813789, 1812689, 1811329, 1809736, 1807949, 1806016, + 1803991, 1801926, 1799866, 1797851, 1795910, 1794063, 1792322, 1790692, 1789176, 1787771, 1786474, 1785278, 1784178, 1783168, + 1782241, 1781392, 1780614, 1779904, 1779254, 1778662, 1778122, 1777630, 1777184, 1776779, 1776412, 1776081, 1775783, 1775515, + 1775276, 1775062, 1774873, 1774706, 1774560, 1774433, 1774324, 1774232, 1818135, 1818739, 1819157, 1819374, 1819372, 1819134, + 1818642, 1817887, 1816867, 1815593, 1814087, 1812385, 1810530, 1808573, 1806563, 1804546, 1802559, 1800635, 1798793, 1797049, + 1795411, 1793880, 1792457, 1791138, 1789919, 1788794, 1787758, 1786806, 1785930, 1785127, 1784390, 1783715, 1783097, 1782532, + 1782017, 1781546, 1781118, 1780729, 1780376, 1780056, 1779767, 1779508, 1779275, 1779066, 1778881, 1778717, 1778573, 1778447, + 1778339, 1821806, 1822430, 1822874, 1823124, 1823163, 1822974, 1822541, 1821854, 1820909, 1819717, 1818295, 1816675, 1814898, + 1813009, 1811055, 1809082, 1807127, 1805222, 1803390, 1801647, 1800002, 1798460, 1797021, 1795683, 1794442, 1793295, 1792235, + 1791258, 1790358, 1789530, 1788768, 1788068, 1787426, 1786837, 1786298, 1785805, 1785354, 1784943, 1784568, 1784228, 1783919, + 1783639, 1783387, 1783160, 1782957, 1782775, 1782614, 1782472, 1782348, 1825387, 1826031, 1826499, 1826779, 1826856, 1826713, + 1826335, 1825711, 1824838, 1823722, 1822380, 1820840, 1819138, 1817317, 1815420, 1813493, 1811572, 1809689, 1807870, 1806130, + 1804482, 1802930, 1801477, 1800122, 1798862, 1797693, 1796611, 1795610, 1794686, 1793834, 1793048, 1792325, 1791659, 1791047, + 1790485, 1789969, 1789496, 1789063, 1788668, 1788307, 1787978, 1787679, 1787408, 1787162, 1786941, 1786742, 1786564, 1786406, + 1786266, 1828868, 1829529, 1830020, 1830329, 1830441, 1830342, 1830015, 1829451, 1828645, 1827603, 1826338, 1824875, 1823246, + 1821492, 1819653, 1817773, 1815888, 1814031, 1812227, 1810493, 1808844, 1807285, 1805821, 1804451, 1803173, 1801985, 1800882, + 1799860, 1798913, 1798038, 1797229, 1796483, 1795794, 1795160, 1794575, 1794038, 1793544, 1793090, 1792674, 1792293, 1791945, + 1791627, 1791337, 1791074, 1790835, 1790619, 1790424, 1790250, 1790094, 1832260, 1832938, 1833451, 1833786, 1833932, 1833872, + 1833594, 1833086, 1832344, 1831372, 1830180, 1828790, 1827233, 1825545, 1823765, 1821933, 1820086, 1818256, 1816470, 1814746, + 1813098, 1811535, 1810061, 1808678, 1807385, 1806178, 1805056, 1804013, 1803045, 1802148, 1801317, 1800549, 1799838, 1799182, + 1798576, 1798017, 1797502, 1797028, 1796592, 1796192, 1795824, 1795488, 1795180, 1794899, 1794643, 1794410, 1794199, 1794009, + 1793838, 1835564, 1836258, 1836791, 1837151, 1837328, 1837306, 1837074, 1836619, 1835937, 1835031, 1833909, 1832590, 1831103, + 1829480, 1827758, 1825975, 1824168, 1822368, 1820601, 1818888, 1817245, 1815680, 1814199, 1812805, 1811497, 1810275, 1809134, + 1808072, 1807084, 1806166, 1805315, 1804525, 1803793, 1803116, 1802489, 1801910, 1801375, 1800881, 1800425, 1800005, 1799619, + 1799264, 1798939, 1798640, 1798368, 1798119, 1797892, 1797686, 1797499, 1838781, 1839489, 1840040, 1840425, 1840631, 1840645, + 1840455, 1840051, 1839426, 1838582, 1837527, 1836277, 1834858, 1833298, 1831634, 1829902, 1828135, 1826366, 1824622, 1822923, + 1821286, 1819721, 1818236, 1816833, 1815513, 1814276, 1813118, 1812038, 1811031, 1810094, 1809223, 1808413, 1807661, 1806963, + 1806317, 1805717, 1805163, 1804649, 1804175, 1803736, 1803332, 1802959, 1802616, 1802301, 1802012, 1801746, 1801504, 1801283, + 1801081, 1841923, 1842645, 1843213, 1843620, 1843853, 1843901, 1843752, 1843394, 1842823, 1842039, 1841047, 1839864, 1838509, + 1837012, 1835406, 1833723, 1831998, 1830262, 1828542, 1826859, 1825231, 1823669, 1822180, 1820770, 1819440, 1818189, 1817017, + 1815920, 1814895, 1813939, 1813048, 1812219, 1811448, 1810731, 1810064, 1809446, 1808872, 1808340, 1807847, 1807390, 1806968, + 1806578, 1806218, 1805886, 1805580, 1805299, 1805041, 1804805, 1804588, 1844977, 1845712, 1846297, 1846724, 1846984, 1847064, + 1846952, 1846640, 1846120, 1845392, 1844462, 1843341, 1842050, 1840615, 1839065, 1837433, 1835751, 1834049, 1832355, 1830691, + 1829073, 1827515, 1826026, 1824611, 1823272, 1822010, 1820824, 1819711, 1818670, 1817697, 1816788, 1815941, 1815151, 1814415, + 1813730, 1813093, 1812501, 1811950, 1811439, 1810965, 1810526, 1810119, 1809742, 1809394, 1809072, 1808775, 1808502, 1808251, + 1808020, 1847956, 1848703, 1849304, 1849751, 1850035, 1850145, 1850070, 1849800, 1849329, 1848655, 1847782, 1846723, 1845493, + 1844117, 1842623, 1841042, 1839403, 1837737, 1836071, 1834426, 1832821, 1831270, 1829782, 1828363, 1827017, 1825745, 1824547, + 1823421, 1822364, 1821375, 1820449, 1819584, 1818776, 1818022, 1817319, 1816664, 1816054, 1815486, 1814958, 1814467, 1814010, + 1813587, 1813194, 1812829, 1812492, 1812180, 1811892, 1811626, 1811382, 1850876, 1851634, 1852249, 1852714, 1853021, 1853159, + 1853118, 1852887, 1852462, 1851839, 1851022, 1850020, 1848850, 1847532, 1846093, 1844561, 1842966, 1841336, 1839699, 1838075, + 1836485, 1834942, 1833457, 1832036, 1830685, 1829404, 1828195, 1827056, 1825985, 1824980, 1824038, 1823156, 1822331, 1821560, + 1820840, 1820167, 1819539, 1818954, 1818409, 1817901, 1817428, 1816988, 1816579, 1816199, 1815846, 1815519, 1815216, 1814936, + 1814678, 1853707, 1854475, 1855104, 1855587, 1855916, 1856081, 1856072, 1855880, 1855498, 1854924, 1854160, 1853215, 1852102, + 1850841, 1849456, 1847974, 1846423, 1844831, 1843223, 1841623, 1840049, 1838517, 1837036, 1835616, 1834261, 1832974, 1831755, + 1830604, 1829520, 1828501, 1827544, 1826647, 1825806, 1825018, 1824281, 1823592, 1822948, 1822346, 1821784, 1821260, 1820771, + 1820315, 1819891, 1819496, 1819128, 1818787, 1818470, 1818176, 1817903, 1856492, 1857270, 1857912, 1858411, 1858760, 1858951, + 1858972, 1858815, 1858474, 1857946, 1857232, 1856340, 1855282, 1854076, 1852743, 1851310, 1849803, 1848249, 1846672, 1845097, + 1843540, 1842019, 1840545, 1839126, 1837769, 1836476, 1835249, 1834088, 1832992, 1831959, 1830988, 1830075, 1829219, 1828415, + 1827662, 1826957, 1826296, 1825678, 1825100, 1824560, 1824055, 1823584, 1823144, 1822734, 1822352, 1821996, 1821665, 1821357, + 1821071, 1859204, 1859991, 1860644, 1861159, 1861528, 1861742, 1861791, 1861669, 1861367, 1860883, 1860217, 1859377, 1858372, + 1857219, 1855938, 1854553, 1853090, 1851574, 1850030, 1848480, 1846943, 1845435, 1843969, 1842553, 1841195, 1839898, 1838664, + 1837494, 1836387, 1835342, 1834358, 1833431, 1832559, 1831741, 1830972, 1830251, 1829575, 1828942, 1828348, 1827793, 1827273, + 1826786, 1826332, 1825907, 1825510, 1825140, 1824795, 1824474, 1824175, 1861856, 1862651, 1863316, 1863845, 1864232, 1864468, + 1864545, 1864455, 1864190, 1863748, 1863128, 1862337, 1861383, 1860282, 1859051, 1857715, 1856295, 1854817, 1853306, 1851782, + 1850266, 1848773, 1847316, 1845905, 1844547, 1843247, 1842008, 1840830, 1839713, 1838657, 1837660, 1836720, 1835835, 1835002, + 1834219, 1833483, 1832792, 1832143, 1831535, 1830964, 1830429, 1829928, 1829459, 1829020, 1828609, 1828225, 1827867, 1827532, + 1827220, 1864433, 1865236, 1865912, 1866455, 1866860, 1867118, 1867221, 1867161, 1866932, 1866529, 1865954, 1865210, 1864306, + 1863255, 1862074, 1860785, 1859409, 1857970, 1856492, 1854996, 1853502, 1852025, 1850579, 1849175, 1847819, 1846518, 1845275, + 1844090, 1842965, 1841899, 1840891, 1839938, 1839040, 1838194, 1837396, 1836646, 1835941, 1835278, 1834655, 1834070, 1833521, + 1833006, 1832523, 1832070, 1831646, 1831248, 1830877, 1830529, 1830204, 1866966, 1867776, 1868462, 1869018, 1869439, 1869717, + 1869845, 1869814, 1869618, 1869254, 1868721, 1868022, 1867165, 1866163, 1865030, 1863786, 1862453, 1861054, 1859609, 1858142, + 1856670, 1855210, 1853777, 1852380, 1851028, 1849727, 1848480, 1847290, 1846157, 1845082, 1844063, 1843099, 1842189, 1841329, + 1840519, 1839755, 1839035, 1838358, 1837721, 1837122, 1836559, 1836030, 1835533, 1835067, 1834629, 1834219, 1833834, 1833474, + 1833136, 1869439, 1870257, 1870952, 1871520, 1871956, 1872254, 1872404, 1872401, 1872237, 1871910, 1871417, 1870761, 1869950, + 1868995, 1867909, 1866710, 1865420, 1864059, 1862649, 1861210, 1859762, 1858321, 1856901, 1855513, 1854166, 1852866, 1851617, + 1850423, 1849284, 1848200, 1847172, 1846197, 1845275, 1844403, 1843580, 1842803, 1842070, 1841380, 1840729, 1840117, 1839540, + 1838998, 1838487, 1838008, 1837557, 1837134, 1836736, 1836363, 1836014, 1871869, 1872692, 1873396, 1873976, 1874427, 1874742, + 1874914, 1874937, 1874804, 1874510, 1874056, 1873442, 1872675, 1871764, 1870723, 1869569, 1868321, 1866998, 1865622, 1864213, + 1862789, 1861367, 1859962, 1858584, 1857243, 1855945, 1854696, 1853498, 1852353, 1851262, 1850225, 1849241, 1848307, 1847424, + 1846588, 1845799, 1845053, 1844350, 1843686, 1843060, 1842470, 1841915, 1841391, 1840899, 1840435, 1839999, 1839589, 1839204, + 1838842, 1874239, 1875068, 1875780, 1876371, 1876835, 1877168, 1877361, 1877409, 1877304, 1877044, 1876626, 1876052, 1875327, + 1874461, 1873464, 1872353, 1871146, 1869862, 1868520, 1867141, 1865742, 1864341, 1862951, 1861584, 1860250, 1858956, 1857708, + 1856508, 1855358, 1854261, 1853216, 1852222, 1851279, 1850385, 1849538, 1848737, 1847979, 1847263, 1846586, 1845948, 1845345, + 1844777, 1844241, 1843735, 1843259, 1842811, 1842389, 1841992, 1841618, 1876566, 1877400, 1878120, 1878720, 1879198, 1879547, + 1879760, 1879831, 1879754, 1879525, 1879142, 1878606, 1877922, 1877097, 1876144, 1875075, 1873908, 1872662, 1871355, 1870006, + 1868633, 1867253, 1865879, 1864525, 1863199, 1861909, 1860662, 1859461, 1858308, 1857206, 1856153, 1855151, 1854199, 1853294, + 1852436, 1851623, 1850854, 1850126, 1849437, 1848786, 1848171, 1847590, 1847042, 1846524, 1846036, 1845576, 1845142, 1844732, + 1844347, 1878832, 1879672, 1880399, 1881009, 1881499, 1881864, 1882096, 1882189, 1882139, 1881940, 1881590, 1881091, 1880447, + 1879663, 1878751, 1877724, 1876597, 1875388, 1874116, 1872797, 1871451, 1870093, 1868737, 1867396, 1866079, 1864796, 1863551, + 1862350, 1861195, 1860088, 1859030, 1858020, 1857059, 1856145, 1855277, 1854454, 1853673, 1852933, 1852233, 1851570, 1850943, + 1850351, 1849790, 1849261, 1848761, 1848289, 1847843, 1847422, 1847026, 1881055, 1881900, 1882633, 1883253, 1883755, 1884134, + 1884384, 1884499, 1884473, 1884303, 1883986, 1883522, 1882915, 1882171, 1881300, 1880313, 1879225, 1878054, 1876815, 1875528, + 1874208, 1872872, 1871535, 1870208, 1868902, 1867625, 1866384, 1865184, 1864028, 1862917, 1861854, 1860837, 1859868, 1858946, + 1858068, 1857234, 1856443, 1855693, 1854981, 1854307, 1853668, 1853064, 1852492, 1851951, 1851440, 1850956, 1850499, 1850067, + 1849660, 1883235, 1884084, 1884824, 1885452, 1885965, 1886358, 1886625, 1886760, 1886759, 1886616, 1886330, 1885900, 1885329, + 1884623, 1883791, 1882843, 1881794, 1880659, 1879454, 1878198, 1876905, 1875593, 1874274, 1872962, 1871668, 1870399, 1869163, + 1867964, 1866807, 1865694, 1864626, 1863604, 1862628, 1861697, 1860810, 1859967, 1859166, 1858405, 1857682, 1856997, 1856348, + 1855732, 1855149, 1854597, 1854074, 1853579, 1853111, 1852668, 1852250, 1885372, 1886224, 1886970, 1887606, 1888129, 1888536, + 1888819, 1888974, 1888995, 1888879, 1888622, 1888224, 1887688, 1887019, 1886225, 1885315, 1884304, 1883205, 1882034, 1880808, + 1879543, 1878254, 1876956, 1875660, 1874377, 1873117, 1871886, 1870690, 1869534, 1868419, 1867347, 1866320, 1865337, 1864399, + 1863504, 1862652, 1861841, 1861070, 1860337, 1859642, 1858981, 1858355, 1857761, 1857198, 1856664, 1856158, 1855679, 1855226, + 1854797, 1887465, 1888321, 1889072, 1889716, 1890249, 1890668, 1890967, 1891140, 1891183, 1891092, 1890863, 1890497, 1889994, + 1889361, 1888603, 1887731, 1886756, 1885693, 1884556, 1883361, 1882123, 1880858, 1879580, 1878300, 1877031, 1875780, 1874556, + 1873364, 1872208, 1871092, 1870018, 1868987, 1867998, 1867053, 1866151, 1865290, 1864470, 1863689, 1862947, 1862241, 1861571, + 1860934, 1860329, 1859755, 1859211, 1858695, 1858205, 1857741, 1857302, 1889514, 1890373, 1891130, 1891781, 1892324, 1892755, + 1893069, 1893260, 1893324, 1893256, 1893054, 1892718, 1892248, 1891649, 1890927, 1890091, 1889152, 1888124, 1887020, 1885855, + 1884645, 1883405, 1882147, 1880885, 1879630, 1878389, 1877173, 1875985, 1874832, 1873716, 1872639, 1871604, 1870611, 1869660, + 1868750, 1867882, 1867053, 1866264, 1865512, 1864796, 1864116, 1863469, 1862854, 1862270, 1861715, 1861189, 1860689, 1860215, + 1859765, 1891520, 1892382, 1893144, 1893802, 1894354, 1894796, 1895124, 1895332, 1895416, 1895371, 1895196, 1894888, 1894450, + 1893884, 1893196, 1892396, 1891492, 1890498, 1889427, 1888293, 1887111, 1885895, 1884659, 1883415, 1882174, 1880945, 1879736, + 1878554, 1877404, 1876288, 1875211, 1874173, 1873176, 1872219, 1871303, 1870427, 1869591, 1868793, 1868032, 1867307, 1866617, + 1865961, 1865336, 1864742, 1864177, 1863641, 1863131, 1862647, 1862188, 1893501, 1894366, 1895132, 1895796, 1896356, 1896809, + 1897150, 1897374, 1897477, 1897454, 1897303, 1897023, 1896614, 1896080, 1895426, 1894659, 1893790, 1892830, 1891791, 1890687, + 1889533, 1888341, 1887127, 1885901, 1884675, 1883458, 1882258, 1881082, 1879935, 1878821, 1877743, 1876703, 1875702, 1874740, + 1873818, 1872936, 1872092, 1871286, 1870516, 1869783, 1869084, 1868417, 1867783, 1867180, 1866605, 1866059, 1865539, 1865046, + 1864576, 1895438, 1896305, 1897075, 1897745, 1898313, 1898777, 1899130, 1899370, 1899491, 1899489, 1899362, 1899108, 1898728, + 1898225, 1897603, 1896870, 1896034, 1895106, 1894099, 1893026, 1891899, 1890733, 1889540, 1888333, 1887123, 1885919, 1884728, + 1883559, 1882417, 1881305, 1880227, 1879186, 1878181, 1877216, 1876288, 1875400, 1874549, 1873735, 1872958, 1872216, 1871508, + 1870832, 1870189, 1869576, 1868992, 1868436, 1867907, 1867404, 1866925, 1897331, 1898200, 1898975, 1899650, 1900226, 1900699, + 1901065, 1901320, 1901458, 1901476, 1901372, 1901144, 1900792, 1900319, 1899729, 1899028, 1898225, 1897329, 1896354, 1895310, + 1894211, 1893070, 1891900, 1890712, 1889518, 1888327, 1887147, 1885986, 1884849, 1883740, 1882663, 1881621, 1880614, 1879645, + 1878713, 1877819, 1876962, 1876141, 1875356, 1874606, 1873890, 1873206, 1872554, 1871932, 1871339, 1870774, 1870236, 1869724, + 1869236, 1899180, 1900051, 1900830, 1901511, 1902094, 1902577, 1902955, 1903223, 1903379, 1903416, 1903334, 1903131, 1902806, + 1902362, 1901802, 1901133, 1900362, 1899498, 1898554, 1897540, 1896468, 1895353, 1894205, 1893038, 1891860, 1890683, 1889515, + 1888362, 1887231, 1886126, 1885051, 1884009, 1883001, 1882029, 1881093, 1880194, 1879331, 1878504, 1877712, 1876954, 1876230, + 1875538, 1874878, 1874247, 1873646, 1873072, 1872525, 1872004, 1871507, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.5 V (slice 2): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_2 and r_2). +pub const VSB_N2 : [4851]u32 = [ + 4294967295, 192984, 199734, 198585, 200815, 204890, 209962, 215188, 220531, 225756, 230786, 235593, 240177, 244541, + 248697, 252656, 256430, 260033, 263477, 266772, 269930, 272961, 275874, 278679, 281382, 283992, 286515, 288959, + 291330, 293632, 295873, 298055, 300185, 302267, 304305, 306304, 308266, 310197, 312100, 313979, 315840, 317686, + 319524, 321362, 323208, 325107, 327020, 328992, 331049, 333224, 239450, 243017, 242555, 244951, 249103, 254179, + 259575, 264976, 270199, 275277, 280129, 284751, 289150, 293335, 297318, 301113, 304731, 308185, 311487, 314647, + 317676, 320582, 323375, 326063, 328653, 331151, 333565, 335901, 338163, 340357, 342489, 344561, 346579, 348547, + 350468, 352346, 354185, 355987, 357757, 359497, 361213, 362907, 364585, 366253, 367919, 369611, 371309, 373042, + 374831, 285953, 287520, 287507, 290019, 294233, 299361, 304808, 310258, 315565, 320646, 325537, 330194, 334624, + 338836, 342843, 346658, 350293, 353761, 357074, 360241, 363275, 366183, 368974, 371658, 374240, 376728, 379128, + 381446, 383688, 385858, 387961, 390002, 391984, 393912, 395788, 397617, 399402, 401145, 402850, 404519, 406157, + 407765, 409347, 410908, 412453, 413986, 415528, 417069, 418628, 332490, 332817, 333094, 335688, 339953, 345127, + 350619, 356112, 361460, 366602, 371504, 376193, 380652, 384890, 388906, 392739, 396391, 399874, 403199, 406378, + 409420, 412335, 415131, 417817, 420400, 422887, 425283, 427596, 429829, 431989, 434080, 436105, 438070, 439977, + 441830, 443640, 445395, 447105, 448773, 450402, 451994, 453553, 455080, 456579, 458054, 459507, 460944, 462377, + 463803, 379062, 378624, 379089, 381746, 386054, 391270, 396802, 402334, 407720, 412896, 417841, 422549, 427034, + 431286, 435335, 439188, 442858, 446357, 449696, 452887, 455940, 458863, 461667, 464359, 466946, 469436, 471834, + 474146, 476378, 478535, 480621, 482640, 484596, 486494, 488336, 490125, 491865, 493558, 495207, 496814, 498383, + 499914, 501412, 502881, 504316, 505725, 507110, 508476, 509827, 425665, 424761, 425350, 428055, 432402, 437656, + 443227, 448796, 454216, 459425, 464400, 469136, 473641, 477922, 481992, 485865, 489552, 493067, 496421, 499625, + 502689, 505623, 508437, 511136, 513731, 516226, 518629, 520945, 523179, 525337, 527424, 529442, 531397, 533291, + 535129, 536912, 538646, 540331, 541970, 543567, 545123, 546640, 548121, 549568, 550983, 552368, 553726, 555058, + 556369, 472300, 471114, 471786, 474531, 478914, 484204, 489811, 495415, 500868, 506108, 511112, 515874, 520404, + 524708, 528799, 532690, 536395, 539926, 543294, 546512, 549588, 552534, 555357, 558066, 560669, 563172, 565581, + 567903, 570142, 572304, 574394, 576414, 578371, 580266, 582104, 583887, 585618, 587301, 588937, 590530, 592080, + 593591, 595065, 596503, 597907, 599280, 600622, 601938, 603227, 518963, 517609, 518340, 521119, 525536, 530861, + 536502, 542140, 547625, 552895, 557927, 562715, 567268, 571594, 575705, 579615, 583337, 586884, 590267, 593498, + 596587, 599544, 602378, 605097, 607708, 610219, 612636, 614964, 617210, 619378, 621472, 623497, 625457, 627356, + 629196, 630981, 632714, 634397, 636034, 637626, 639175, 640684, 642155, 643590, 644990, 646357, 647693, 648999, + 650279, 565650, 564201, 564975, 567786, 572235, 577593, 583268, 588938, 594454, 599753, 604812, 609626, 614201, + 618548, 622679, 626607, 630346, 633908, 637306, 640550, 643652, 646620, 649465, 652194, 654814, 657334, 659759, + 662095, 664347, 666521, 668621, 670652, 672617, 674519, 676363, 678152, 679888, 681574, 683212, 684806, 686357, + 687867, 689338, 690772, 692171, 693536, 694870, 696174, 697448, 612356, 610857, 611667, 614507, 618987, 624378, + 630085, 635786, 641333, 646660, 651744, 656582, 661180, 665547, 669697, 673643, 677399, 680976, 684387, 687645, + 690758, 693738, 696594, 699332, 701962, 704491, 706923, 709267, 711526, 713707, 715813, 717850, 719820, 721728, + 723576, 725369, 727109, 728799, 730440, 732037, 733590, 735102, 736575, 738011, 739411, 740777, 742111, 743414, + 744688, 659071, 657556, 658397, 661265, 665774, 671196, 676934, 682666, 688241, 693595, 698704, 703566, 708185, + 712572, 716740, 720703, 724474, 728066, 731491, 734761, 737887, 740878, 743743, 746492, 749131, 751668, 754109, + 756460, 758726, 760914, 763026, 765068, 767044, 768957, 770811, 772608, 774352, 776046, 777691, 779291, 780848, + 782363, 783838, 785276, 786679, 788047, 789382, 790686, 791961, 705780, 704277, 705149, 708042, 712580, 718031, + 723799, 729559, 735161, 740540, 745673, 750556, 755196, 759602, 763788, 767767, 771552, 775158, 778596, 781878, + 785015, 788016, 790892, 793649, 796297, 798842, 801291, 803649, 805922, 808116, 810235, 812283, 814264, 816182, + 818041, 819843, 821591, 823289, 824938, 826542, 828102, 829620, 831099, 832539, 833944, 835315, 836652, 837958, + 839235, 752459, 750997, 751901, 754821, 759385, 764863, 770657, 776443, 782070, 787472, 792626, 797530, 802187, + 806610, 810812, 814805, 818605, 822223, 825673, 828966, 832113, 835124, 838008, 840774, 843430, 845982, 848438, + 850803, 853083, 855283, 857407, 859460, 861447, 863370, 865233, 867039, 868792, 870493, 872146, 873754, 875317, + 876838, 878320, 879764, 881171, 882544, 883884, 885193, 886471, 799070, 797685, 798629, 801573, 806160, 811661, + 817478, 823286, 828933, 834355, 839528, 844448, 849121, 853559, 857774, 861780, 865591, 869220, 872679, 875982, + 879137, 882157, 885049, 887822, 890485, 893043, 895505, 897876, 900161, 902366, 904495, 906553, 908544, 910471, + 912338, 914148, 915905, 917610, 919266, 920876, 922443, 923967, 925451, 926898, 928308, 929683, 931025, 932336, + 933616, 845550, 844297, 845292, 848260, 852863, 858381, 864215, 870039, 875701, 881137, 886323, 891255, 895939, + 900387, 904612, 908627, 912446, 916083, 919550, 922859, 926021, 929046, 931944, 934722, 937390, 939953, 942419, + 944794, 947083, 949292, 951425, 953486, 955480, 957411, 959281, 961094, 962853, 964560, 966219, 967832, 969400, + 970927, 972413, 973862, 975274, 976651, 977995, 979307, 980589, 892223, 891002, 891953, 894878, 899458, 904967, + 910800, 916627, 922293, 927734, 932924, 937861, 942550, 947002, 951230, 955248, 959071, 962710, 966180, 969492, + 972657, 975684, 978584, 981365, 984034, 986600, 989068, 991444, 993735, 995946, 998080, 1000143, 1002138, 1004070, + 1005941, 1007755, 1009516, 1011224, 1012884, 1014498, 1016068, 1017595, 1019083, 1020532, 1021945, 1023322, 1024667, 1025980, + 1027262, 945801, 941710, 940692, 942434, 946371, 951553, 957228, 962978, 968606, 974026, 979203, 984130, 988811, + 993256, 997479, 1001492, 1005309, 1008945, 1012411, 1015719, 1018880, 1021904, 1024801, 1027579, 1030246, 1032809, 1035275, + 1037650, 1039938, 1042147, 1044280, 1046341, 1048335, 1050265, 1052135, 1053948, 1055707, 1057414, 1059073, 1060686, 1062254, + 1063781, 1065267, 1066715, 1068127, 1069504, 1070848, 1072160, 1073442, 1005006, 996158, 991685, 991181, 993775, 998201, + 1003464, 1008990, 1014493, 1019838, 1024967, 1029858, 1034511, 1038933, 1043134, 1047128, 1050929, 1054548, 1057999, 1061294, + 1064442, 1067455, 1070341, 1073108, 1075766, 1078320, 1080777, 1083143, 1085425, 1087626, 1089752, 1091807, 1093794, 1095719, + 1097583, 1099391, 1101145, 1102847, 1104502, 1106110, 1107674, 1109197, 1110679, 1112124, 1113532, 1114906, 1116246, 1117555, + 1118833, 1065173, 1051876, 1043800, 1040687, 1041532, 1044846, 1049420, 1054525, 1059766, 1064942, 1069956, 1074764, 1079353, + 1083721, 1087877, 1091830, 1095594, 1099181, 1102601, 1105867, 1108989, 1111977, 1114840, 1117586, 1120223, 1122758, 1125197, + 1127546, 1129812, 1131998, 1134109, 1136150, 1138125, 1140037, 1141890, 1143686, 1145429, 1147122, 1148766, 1150365, 1151920, + 1153434, 1154908, 1156345, 1157745, 1159111, 1160445, 1161747, 1163019, 1123537, 1106999, 1095856, 1090242, 1089219, 1091208, + 1094868, 1099349, 1104162, 1109040, 1113840, 1118489, 1122953, 1127221, 1131291, 1135171, 1138870, 1142396, 1145763, 1148979, + 1152054, 1154999, 1157822, 1160530, 1163132, 1165633, 1168041, 1170361, 1172598, 1174758, 1176844, 1178861, 1180813, 1182703, + 1184535, 1186312, 1188036, 1189711, 1191338, 1192920, 1194459, 1195958, 1197417, 1198839, 1200226, 1201579, 1202900, 1204190, + 1205450, 1178734, 1160319, 1146850, 1139046, 1136212, 1136795, 1139396, 1143088, 1147315, 1151755, 1156222, 1160613, 1164872, + 1168971, 1172901, 1176659, 1180251, 1183682, 1186962, 1190099, 1193102, 1195979, 1198738, 1201387, 1203933, 1206383, 1208741, + 1211015, 1213208, 1215325, 1217372, 1219351, 1221267, 1223124, 1224923, 1226668, 1228363, 1230008, 1231608, 1233164, 1234678, + 1236152, 1237588, 1238988, 1240354, 1241686, 1242986, 1244256, 1245498, 1230041, 1211007, 1195974, 1186353, 1181844, 1181024, + 1182491, 1185281, 1188795, 1192669, 1196686, 1200713, 1204675, 1208527, 1212247, 1215825, 1219258, 1222549, 1225702, 1228723, + 1231620, 1234399, 1237067, 1239632, 1242098, 1244472, 1246760, 1248966, 1251096, 1253154, 1255143, 1257068, 1258933, 1260739, + 1262491, 1264192, 1265843, 1267447, 1269007, 1270525, 1272002, 1273441, 1274844, 1276211, 1277545, 1278846, 1280117, 1281359, + 1282573, 1277062, 1258447, 1242585, 1231538, 1225527, 1223354, 1223666, 1225490, 1228203, 1231415, 1234883, 1238453, 1242031, + 1245558, 1248998, 1252334, 1255554, 1258655, 1261637, 1264503, 1267258, 1269907, 1272454, 1274905, 1277265, 1279540, 1281734, + 1283852, 1285898, 1287876, 1289790, 1291643, 1293438, 1295179, 1296868, 1298509, 1300102, 1301651, 1303158, 1304625, 1306053, + 1307445, 1308802, 1310125, 1311416, 1312677, 1313909, 1315112, 1316289, 1319676, 1302233, 1286216, 1274143, 1266829, 1263389, + 1262569, 1263409, 1265276, 1267767, 1270618, 1273662, 1276789, 1279926, 1283028, 1286066, 1289023, 1291890, 1294661, 1297336, + 1299916, 1302403, 1304801, 1307113, 1309344, 1311497, 1313576, 1315585, 1317528, 1319408, 1321229, 1322993, 1324704, 1326365, + 1327976, 1329543, 1331065, 1332546, 1333987, 1335391, 1336758, 1338091, 1339392, 1340660, 1341899, 1343109, 1344291, 1345447, + 1346578, 1358003, 1342175, 1326584, 1313895, 1305500, 1300910, 1299017, 1298895, 1299914, 1301662, 1303867, 1306347, 1308981, + 1311687, 1314409, 1317112, 1319770, 1322369, 1324898, 1327354, 1329733, 1332035, 1334262, 1336415, 1338497, 1340510, 1342458, + 1344343, 1346169, 1347938, 1349652, 1351315, 1352930, 1354497, 1356021, 1357502, 1358943, 1360345, 1361711, 1363042, 1364339, + 1365604, 1366839, 1368045, 1369223, 1370373, 1371498, 1372599, 1373676, 1392357, 1378318, 1363596, 1350693, 1341463, 1335865, + 1332984, 1331953, 1332155, 1333175, 1334733, 1336641, 1338769, 1341025, 1343349, 1345696, 1348035, 1350346, 1352616, 1354834, + 1356997, 1359100, 1361142, 1363124, 1365046, 1366909, 1368715, 1370467, 1372167, 1373816, 1375416, 1376970, 1378481, 1379949, + 1381377, 1382766, 1384119, 1385437, 1386721, 1387973, 1389194, 1390386, 1391550, 1392687, 1393798, 1394885, 1395947, 1396987, + 1398005, 1423156, 1410884, 1397319, 1384571, 1374764, 1368316, 1364552, 1362688, 1362125, 1362453, 1363390, 1364740, 1366369, + 1368180, 1370103, 1372090, 1374105, 1376123, 1378126, 1380101, 1382041, 1383939, 1385791, 1387596, 1389354, 1391063, 1392724, + 1394340, 1395910, 1397436, 1398919, 1400362, 1401766, 1403132, 1404462, 1405758, 1407020, 1408251, 1409451, 1410623, 1411766, + 1412882, 1413973, 1415039, 1416081, 1417101, 1418099, 1419076, 1420033, 1450843, 1440203, 1427931, 1415648, 1405526, 1398397, + 1393866, 1391251, 1389989, 1389676, 1390030, 1390853, 1392006, 1393386, 1394921, 1396556, 1398253, 1399982, 1401721, 1403455, + 1405173, 1406867, 1408531, 1410161, 1411755, 1413311, 1414829, 1416308, 1417750, 1419155, 1420523, 1421856, 1423155, 1424420, + 1425654, 1426857, 1428030, 1429175, 1430292, 1431383, 1432449, 1433491, 1434509, 1435505, 1436479, 1437433, 1438366, 1439281, + 1440177, 1475840, 1466649, 1455690, 1444102, 1433913, 1426277, 1421095, 1417818, 1415926, 1415029, 1414846, 1415179, 1415885, + 1416860, 1418026, 1419326, 1420717, 1422167, 1423651, 1425152, 1426655, 1428150, 1429631, 1431090, 1432525, 1433933, 1435312, + 1436660, 1437978, 1439265, 1440522, 1441749, 1442947, 1444115, 1445256, 1446370, 1447458, 1448520, 1449558, 1450572, 1451563, + 1452533, 1453481, 1454409, 1455318, 1456208, 1457079, 1457934, 1458771, 1498517, 1490584, 1480880, 1470132, 1460098, 1452128, + 1446415, 1442563, 1440111, 1438686, 1438014, 1437897, 1438190, 1438787, 1439608, 1440592, 1441694, 1442879, 1444121, 1445398, + 1446696, 1448002, 1449306, 1450603, 1451886, 1453151, 1454397, 1455620, 1456820, 1457996, 1459147, 1460273, 1461374, 1462451, + 1463504, 1464534, 1465541, 1466525, 1467488, 1468429, 1469351, 1470252, 1471135, 1471999, 1472846, 1473676, 1474489, 1475286, + 1476068, 1519205, 1512350, 1503799, 1493959, 1484264, 1476126, 1469998, 1465656, 1462709, 1460811, 1459697, 1459169, 1459083, + 1459330, 1459830, 1460519, 1461350, 1462286, 1463299, 1464365, 1465468, 1466594, 1467731, 1468872, 1470011, 1471142, 1472261, + 1473365, 1474453, 1475523, 1476575, 1477606, 1478617, 1479608, 1480579, 1481529, 1482460, 1483372, 1484264, 1485139, 1485995, + 1486833, 1487654, 1488459, 1489248, 1490022, 1490781, 1491525, 1492255, 1538166, 1532233, 1524714, 1515794, 1506574, 1498423, + 1491996, 1487246, 1483868, 1481549, 1480035, 1479134, 1478701, 1478627, 1478829, 1479245, 1479823, 1480526, 1481324, 1482191, + 1483110, 1484066, 1485045, 1486040, 1487041, 1488044, 1489044, 1490036, 1491019, 1491990, 1492947, 1493889, 1494815, 1495726, + 1496619, 1497497, 1498357, 1499201, 1500028, 1500840, 1501635, 1502415, 1503180, 1503930, 1504666, 1505387, 1506096, 1506791, + 1507474, 1555637, 1550488, 1543882, 1535848, 1527196, 1519168, 1512552, 1507474, 1503725, 1501032, 1499159, 1497919, 1497169, + 1496800, 1496728, 1496889, 1497232, 1497718, 1498313, 1498994, 1499740, 1500535, 1501365, 1502221, 1503093, 1503975, 1504862, + 1505748, 1506631, 1507508, 1508377, 1509235, 1510082, 1510917, 1511739, 1512547, 1513342, 1514123, 1514890, 1515643, 1516382, + 1517108, 1517820, 1518520, 1519207, 1519881, 1520543, 1521193, 1521832, 1571796, 1567319, 1561512, 1554309, 1546275, 1538483, + 1531785, 1526457, 1522394, 1519374, 1517179, 1515632, 1514592, 1513952, 1513628, 1513554, 1513678, 1513960, 1514367, 1514873, + 1515456, 1516099, 1516789, 1517513, 1518263, 1519031, 1519810, 1520596, 1521385, 1522173, 1522958, 1523738, 1524510, 1525274, + 1526028, 1526772, 1527506, 1528228, 1528938, 1529637, 1530325, 1531000, 1531665, 1532317, 1532959, 1533589, 1534209, 1534818, + 1535416, 1586810, 1582909, 1577800, 1571358, 1563959, 1556491, 1549807, 1544305, 1539983, 1536677, 1534196, 1532371, 1531068, + 1530179, 1529622, 1529329, 1529250, 1529342, 1529573, 1529914, 1530343, 1530844, 1531400, 1532000, 1532634, 1533293, 1533971, + 1534662, 1535362, 1536066, 1536771, 1537476, 1538178, 1538875, 1539565, 1540249, 1540925, 1541592, 1542250, 1542898, 1543537, + 1544167, 1544786, 1545395, 1545995, 1546585, 1547165, 1547736, 1548297, 1600810, 1597406, 1592905, 1587152, 1580380, 1573297, + 1566714, 1561109, 1556583, 1553033, 1550297, 1548222, 1546678, 1545561, 1544788, 1544294, 1544025, 1543940, 1544004, 1544191, + 1544476, 1544841, 1545272, 1545754, 1546278, 1546834, 1547415, 1548016, 1548630, 1549254, 1549885, 1550518, 1551153, 1551786, + 1552417, 1553044, 1553665, 1554280, 1554889, 1555490, 1556083, 1556669, 1557246, 1557815, 1558376, 1558928, 1559472, 1560008, + 1560535, 1613909, 1610935, 1606965, 1601830, 1595658, 1589001, 1582590, 1576952, 1572274, 1568518, 1565559, 1563259, 1561496, + 1560169, 1559198, 1558516, 1558070, 1557820, 1557729, 1557770, 1557919, 1558156, 1558467, 1558838, 1559257, 1559715, 1560204, + 1560718, 1561252, 1561800, 1562358, 1562924, 1563495, 1564068, 1564641, 1565213, 1565783, 1566349, 1566911, 1567467, 1568018, + 1568563, 1569101, 1569632, 1570156, 1570673, 1571183, 1571686, 1572182, 1626204, 1623604, 1620098, 1615515, 1609908, 1603694, + 1597513, 1591904, 1587125, 1583202, 1580049, 1577548, 1575586, 1574068, 1572913, 1572056, 1571447, 1571041, 1570804, 1570708, + 1570728, 1570845, 1571043, 1571307, 1571626, 1571991, 1572392, 1572824, 1573280, 1573755, 1574245, 1574746, 1575255, 1575770, + 1576289, 1576809, 1577330, 1577849, 1578366, 1578880, 1579390, 1579896, 1580397, 1580892, 1581382, 1581867, 1582345, 1582817, + 1583283, 1637770, 1635499, 1632400, 1628308, 1623226, 1617459, 1611550, 1606026, 1601195, 1597144, 1593826, 1591147, 1589005, + 1587311, 1585986, 1584968, 1584205, 1583655, 1583281, 1583055, 1582954, 1582957, 1583047, 1583210, 1583434, 1583710, 1584027, + 1584380, 1584761, 1585166, 1585590, 1586029, 1586480, 1586939, 1587405, 1587876, 1588349, 1588824, 1589298, 1589772, 1590243, + 1590712, 1591177, 1591639, 1592096, 1592549, 1592998, 1593441, 1593879, 1648684, 1646701, 1643960, 1640306, 1635704, 1630376, + 1624769, 1619377, 1614541, 1610397, 1606943, 1604108, 1601804, 1599949, 1598469, 1597301, 1596395, 1595708, 1595205, 1594858, + 1594642, 1594536, 1594524, 1594591, 1594724, 1594914, 1595151, 1595428, 1595738, 1596076, 1596436, 1596815, 1597209, 1597615, + 1598031, 1598454, 1598882, 1599313, 1599747, 1600181, 1600615, 1601049, 1601480, 1601910, 1602336, 1602759, 1603179, 1603595, + 1604006, 1659010, 1657282, 1654858, 1651592, 1647430, 1642522, 1637234, 1632013, 1627212, 1623012, 1619448, 1616479, 1614031, + 1612030, 1610405, 1609098, 1608058, 1607244, 1606620, 1606158, 1605833, 1605624, 1605514, 1605489, 1605536, 1605644, 1605804, + 1606008, 1606249, 1606522, 1606821, 1607142, 1607482, 1607836, 1608203, 1608579, 1608963, 1609353, 1609747, 1610144, 1610542, + 1610941, 1611341, 1611739, 1612135, 1612530, 1612922, 1613312, 1613698, 1668791, 1667289, 1665146, 1662228, 1658464, 1653956, + 1648993, 1643973, 1639246, 1635024, 1631378, 1628296, 1625720, 1623587, 1621830, 1620394, 1619230, 1618296, 1617558, 1616987, + 1616559, 1616253, 1616051, 1615938, 1615902, 1615932, 1616017, 1616151, 1616327, 1616537, 1616777, 1617042, 1617329, 1617633, + 1617952, 1618284, 1618625, 1618975, 1619330, 1619691, 1620055, 1620421, 1620789, 1621157, 1621525, 1621892, 1622258, 1622622, + 1622984, 1678078, 1676778, 1674885, 1672276, 1668875, 1664741, 1660103, 1655305, 1650684, 1646471, 1642770, 1639596, 1636910, + 1634657, 1632780, 1631225, 1629944, 1628899, 1628054, 1627381, 1626855, 1626455, 1626165, 1625969, 1625854, 1625808, 1625823, + 1625889, 1626001, 1626151, 1626334, 1626545, 1626780, 1627036, 1627310, 1627598, 1627898, 1628208, 1628526, 1628851, 1629182, + 1629516, 1629853, 1630192, 1630532, 1630873, 1631213, 1631553, 1631892, 1686915, 1685795, 1684126, 1681794, 1678720, 1674935, + 1670615, 1666053, 1661564, 1657389, 1653659, 1650413, 1647632, 1645274, 1643287, 1641622, 1640234, 1639083, 1638137, 1637367, + 1636749, 1636261, 1635887, 1635611, 1635419, 1635302, 1635248, 1635250, 1635300, 1635391, 1635519, 1635678, 1635864, 1636073, + 1636301, 1636547, 1636807, 1637079, 1637361, 1637652, 1637949, 1638252, 1638560, 1638870, 1639183, 1639498, 1639814, 1640130, + 1640446, 1695340, 1694382, 1692913, 1690829, 1688052, 1684589, 1680575, 1676257, 1671921, 1667810, 1664075, 1660777, 1657918, + 1655467, 1653380, 1651614, 1650126, 1648877, 1647836, 1646974, 1646268, 1645697, 1645242, 1644889, 1644625, 1644438, 1644319, + 1644258, 1644248, 1644284, 1644358, 1644466, 1644603, 1644766, 1644952, 1645156, 1645377, 1645612, 1645858, 1646115, 1646381, + 1646653, 1646932, 1647215, 1647501, 1647791, 1648083, 1648376, 1648670, 1703376, 1702564, 1701275, 1699415, 1696906, 1693740, + 1690019, 1685947, 1681780, 1677756, 1674038, 1670708, 1667786, 1665256, 1663081, 1661222, 1659641, 1658301, 1657171, 1656223, + 1655434, 1654782, 1654251, 1653826, 1653492, 1653238, 1653056, 1652935, 1652868, 1652848, 1652871, 1652930, 1653020, 1653139, + 1653282, 1653446, 1653628, 1653827, 1654039, 1654263, 1654497, 1654740, 1654990, 1655246, 1655507, 1655772, 1656040, 1656310, + 1656583, 1711059, 1710378, 1709252, 1707593, 1705327, 1702435, 1698991, 1695162, 1691176, 1687257, 1683577, 1680234, 1677265, + 1674667, 1672414, 1670472, 1668805, 1667380, 1666166, 1665136, 1664268, 1663541, 1662937, 1662442, 1662041, 1661724, 1661480, + 1661301, 1661179, 1661107, 1661079, 1661090, 1661135, 1661210, 1661312, 1661437, 1661582, 1661745, 1661924, 1662115, 1662319, + 1662532, 1662754, 1662984, 1663219, 1663460, 1663705, 1663954, 1664205, 1718409, 1717849, 1716869, 1715392, 1713347, 1710707, + 1707523, 1703933, 1700133, 1696335, 1692711, 1689373, 1686372, 1683720, 1681398, 1679381, 1677636, 1676132, 1674839, 1673733, + 1672791, 1671992, 1671318, 1670756, 1670292, 1669913, 1669611, 1669376, 1669200, 1669077, 1669000, 1668965, 1668966, 1668999, + 1669061, 1669147, 1669256, 1669384, 1669530, 1669690, 1669863, 1670048, 1670243, 1670446, 1670657, 1670874, 1671096, 1671323, + 1671553, 1725456, 1725004, 1724158, 1722846, 1721001, 1718592, 1715653, 1712292, 1708683, 1705017, 1701465, 1698147, 1695130, + 1692435, 1690056, 1687971, 1686154, 1684577, 1683212, 1682033, 1681020, 1680153, 1679413, 1678787, 1678261, 1677824, 1677465, + 1677176, 1676949, 1676776, 1676653, 1676572, 1676530, 1676522, 1676544, 1676594, 1676667, 1676761, 1676874, 1677003, 1677147, + 1677304, 1677472, 1677649, 1677836, 1678029, 1678229, 1678435, 1678645, 1732220, 1731867, 1731142, 1729980, 1728317, 1726120, + 1723408, 1720269, 1716849, 1713324, 1709858, 1706576, 1703556, 1700830, 1698402, 1696259, 1694378, 1692733, 1691299, 1690053, + 1688974, 1688041, 1687238, 1686551, 1685967, 1685473, 1685060, 1684718, 1684441, 1684221, 1684051, 1683927, 1683843, 1683795, + 1683779, 1683792, 1683830, 1683891, 1683972, 1684071, 1684186, 1684315, 1684456, 1684609, 1684771, 1684941, 1685119, 1685304, + 1685493, 1738706, 1738444, 1737829, 1736804, 1735308, 1733306, 1730806, 1727878, 1724647, 1721268, 1717899, 1714667, 1711657, + 1708912, 1706447, 1704253, 1702315, 1700608, 1699112, 1697802, 1696660, 1695666, 1694804, 1694059, 1693418, 1692870, 1692404, + 1692013, 1691688, 1691421, 1691207, 1691040, 1690916, 1690829, 1690776, 1690753, 1690757, 1690786, 1690836, 1690905, 1690992, + 1691094, 1691209, 1691337, 1691475, 1691623, 1691779, 1691943, 1692113, 1744950, 1744771, 1744257, 1743356, 1742013, 1740189, + 1737886, 1735159, 1732111, 1728881, 1725618, 1722447, 1719459, 1716707, 1714213, 1711977, 1709987, 1708225, 1706670, 1705302, + 1704100, 1703048, 1702129, 1701328, 1700633, 1700033, 1699518, 1699078, 1698706, 1698394, 1698137, 1697929, 1697765, 1697641, + 1697551, 1697494, 1697465, 1697461, 1697481, 1697521, 1697579, 1697655, 1697745, 1697848, 1697963, 1698088, 1698223, 1698366, + 1698516, 1750964, 1750861, 1750440, 1749653, 1748448, 1746788, 1744669, 1742130, 1739260, 1736181, 1733030, 1729930, 1726975, + 1724226, 1721713, 1719442, 1717408, 1715596, 1713987, 1712563, 1711306, 1710199, 1709225, 1708371, 1707625, 1706975, 1706411, + 1705924, 1705507, 1705153, 1704854, 1704606, 1704403, 1704241, 1704116, 1704025, 1703963, 1703928, 1703918, 1703929, 1703961, + 1704010, 1704074, 1704153, 1704245, 1704349, 1704462, 1704585, 1704716, 1756753, 1756719, 1756383, 1755701, 1754623, 1753114, + 1751165, 1748804, 1746106, 1743178, 1740144, 1737123, 1734212, 1731476, 1728952, 1726655, 1724583, 1722726, 1721068, 1719594, + 1718285, 1717126, 1716101, 1715197, 1714401, 1713703, 1713093, 1712561, 1712100, 1711704, 1711365, 1711078, 1710838, 1710640, + 1710481, 1710356, 1710262, 1710197, 1710157, 1710141, 1710145, 1710168, 1710208, 1710263, 1710333, 1710414, 1710507, 1710610, + 1710721, 1762335, 1762366, 1762108, 1761521, 1760561, 1759191, 1757399, 1755206, 1752673, 1749893, 1746980, 1744045, 1741185, + 1738471, 1735946, 1733630, 1731527, 1729630, 1727929, 1726407, 1725050, 1723842, 1722768, 1721816, 1720974, 1720230, 1719575, + 1719000, 1718497, 1718060, 1717682, 1717357, 1717081, 1716848, 1716655, 1716498, 1716373, 1716278, 1716210, 1716166, 1716144, + 1716141, 1716157, 1716189, 1716236, 1716296, 1716368, 1716451, 1716543, 1767714, 1767804, 1767619, 1767120, 1766268, 1765026, + 1763381, 1761346, 1758971, 1756336, 1753544, 1750701, 1747901, 1745218, 1742699, 1740372, 1738244, 1736315, 1734574, 1733010, + 1731608, 1730354, 1729235, 1728237, 1727350, 1726562, 1725864, 1725248, 1724705, 1724229, 1723813, 1723452, 1723140, 1722873, + 1722648, 1722459, 1722304, 1722180, 1722083, 1722012, 1721964, 1721937, 1721929, 1721938, 1721962, 1722001, 1722053, 1722117, + 1722191, 1772919, 1773064, 1772945, 1772528, 1771774, 1770651, 1769141, 1767254, 1765029, 1762535, 1759865, 1757117, 1754383, + 1751738, 1749233, 1746901, 1744755, 1742797, 1741021, 1739418, 1737975, 1736678, 1735516, 1734475, 1733545, 1732715, 1731976, + 1731320, 1730738, 1730224, 1729771, 1729374, 1729028, 1728728, 1728471, 1728251, 1728066, 1727914, 1727790, 1727692, 1727618, + 1727567, 1727535, 1727521, 1727524, 1727542, 1727574, 1727618, 1727673, 1777943, 1778138, 1778081, 1777739, 1777077, 1776064, + 1774680, 1772931, 1770849, 1768492, 1765943, 1763293, 1760630, 1758030, 1755547, 1753217, 1751058, 1749078, 1747272, 1745634, + 1744153, 1742816, 1741613, 1740532, 1739561, 1738691, 1737913, 1737218, 1736599, 1736048, 1735560, 1735129, 1734749, 1734417, + 1734129, 1733879, 1733665, 1733485, 1733334, 1733210, 1733112, 1733036, 1732981, 1732945, 1732926, 1732924, 1732936, 1732961, + 1732998, 1782807, 1783049, 1783049, 1782776, 1782199, 1781287, 1780020, 1778401, 1776453, 1774228, 1771799, 1769248, 1766661, + 1764111, 1761656, 1759334, 1757169, 1755171, 1753340, 1751670, 1750154, 1748781, 1747540, 1746420, 1745411, 1744503, 1743687, + 1742955, 1742299, 1741713, 1741191, 1740726, 1740314, 1739951, 1739632, 1739353, 1739111, 1738903, 1738726, 1738577, 1738454, + 1738354, 1738276, 1738219, 1738179, 1738156, 1738148, 1738154, 1738173, 1787513, 1787799, 1787851, 1787643, 1787144, 1786326, + 1785168, 1783670, 1781850, 1779752, 1777439, 1774989, 1772481, 1769986, 1767564, 1765257, 1763091, 1761080, 1759228, 1757532, + 1755984, 1754577, 1753301, 1752145, 1751099, 1750154, 1749302, 1748534, 1747844, 1747224, 1746668, 1746171, 1745728, 1745335, + 1744986, 1744679, 1744409, 1744174, 1743971, 1743797, 1743650, 1743527, 1743427, 1743348, 1743287, 1743244, 1743217, 1743205, + 1743206, 1792073, 1792399, 1792500, 1792352, 1791925, 1791194, 1790138, 1788753, 1787054, 1785077, 1782878, 1780528, 1778100, + 1775665, 1773282, 1770995, 1768834, 1766815, 1764946, 1763226, 1761651, 1760213, 1758904, 1757714, 1756633, 1755654, 1754767, + 1753965, 1753241, 1752589, 1752001, 1751473, 1750999, 1750576, 1750199, 1749863, 1749567, 1749306, 1749077, 1748879, 1748708, + 1748563, 1748441, 1748340, 1748259, 1748196, 1748150, 1748119, 1748103, 1796487, 1796851, 1796998, 1796905, 1796546, 1795895, + 1794934, 1793655, 1792070, 1790209, 1788122, 1785871, 1783526, 1781154, 1778814, 1776552, 1774400, 1772379, 1770497, 1768758, + 1767158, 1765693, 1764353, 1763131, 1762018, 1761006, 1760086, 1759252, 1758496, 1757811, 1757193, 1756634, 1756131, 1755679, + 1755274, 1754912, 1754589, 1754303, 1754050, 1753827, 1753633, 1753466, 1753322, 1753201, 1753099, 1753017, 1752952, 1752903, + 1752869, 1800779, 1801177, 1801366, 1801325, 1801028, 1800453, 1799579, 1798400, 1796922, 1795171, 1793191, 1791038, 1788776, + 1786470, 1784177, 1781944, 1779806, 1777786, 1775896, 1774141, 1772520, 1771028, 1769661, 1768409, 1767265, 1766222, 1765271, + 1764405, 1763618, 1762903, 1762254, 1761667, 1761135, 1760655, 1760223, 1759834, 1759485, 1759174, 1758897, 1758651, 1758434, + 1758245, 1758080, 1757938, 1757817, 1757715, 1757632, 1757565, 1757513, 1804927, 1805358, 1805587, 1805594, 1805356, 1804851, + 1804059, 1802973, 1801597, 1799952, 1798076, 1796019, 1793841, 1791602, 1789360, 1787161, 1785043, 1783028, 1781134, 1779367, + 1777727, 1776214, 1774821, 1773542, 1772370, 1771297, 1770317, 1769421, 1768605, 1767860, 1767183, 1766567, 1766008, 1765501, + 1765042, 1764628, 1764254, 1763919, 1763618, 1763349, 1763111, 1762900, 1762714, 1762552, 1762411, 1762291, 1762189, 1762105, + 1762036, 1808966, 1809427, 1809692, 1809744, 1809561, 1809120, 1808406, 1807407, 1806127, 1804582, 1802805, 1800842, 1798747, + 1796577, 1794388, 1792227, 1790131, 1788126, 1786232, 1784455, 1782801, 1781268, 1779852, 1778547, 1777348, 1776248, 1775239, + 1774315, 1773470, 1772698, 1771993, 1771350, 1770763, 1770230, 1769746, 1769306, 1768908, 1768549, 1768225, 1767934, 1767674, + 1767442, 1767235, 1767053, 1766894, 1766755, 1766635, 1766533, 1766448, 1812885, 1813375, 1813674, 1813768, 1813635, 1813256, + 1812613, 1811696, 1810506, 1809056, 1807375, 1805504, 1803491, 1801392, 1799258, 1797138, 1795068, 1793077, 1791185, 1789404, + 1787737, 1786187, 1784751, 1783423, 1782200, 1781073, 1780038, 1779087, 1778215, 1777415, 1776683, 1776014, 1775402, 1774843, + 1774334, 1773870, 1773448, 1773066, 1772720, 1772407, 1772125, 1771872, 1771646, 1771445, 1771266, 1771109, 1770972, 1770853, + 1770751, 1816685, 1817201, 1817533, 1817666, 1817581, 1817259, 1816684, 1815844, 1814739, 1813380, 1811791, 1810008, 1808078, + 1806049, 1803973, 1801896, 1799856, 1797882, 1795997, 1794214, 1792539, 1790975, 1789520, 1788172, 1786926, 1785775, 1784715, + 1783738, 1782840, 1782015, 1781258, 1780563, 1779926, 1779343, 1778809, 1778322, 1777877, 1777472, 1777104, 1776770, 1776468, + 1776195, 1775949, 1775728, 1775531, 1775356, 1775202, 1775066, 1774948, 1820391, 1820931, 1821293, 1821462, 1821422, 1821153, + 1820640, 1819873, 1818848, 1817575, 1816074, 1814377, 1812527, 1810569, 1808551, 1806519, 1804511, 1802559, 1800683, 1798901, + 1797220, 1795644, 1794174, 1792807, 1791540, 1790366, 1789282, 1788282, 1787359, 1786509, 1785727, 1785007, 1784346, 1783739, + 1783182, 1782672, 1782205, 1781778, 1781388, 1781033, 1780711, 1780418, 1780153, 1779913, 1779698, 1779506, 1779334, 1779181, + 1779047, 1823990, 1824554, 1824944, 1825147, 1825148, 1824930, 1824476, 1823776, 1822827, 1821636, 1820219, 1818606, 1816833, + 1814946, 1812988, 1811004, 1809031, 1807101, 1805239, 1803461, 1801777, 1800192, 1798709, 1797325, 1796039, 1794845, 1793738, + 1792715, 1791769, 1790895, 1790090, 1789346, 1788662, 1788032, 1787452, 1786920, 1786431, 1785983, 1785572, 1785197, 1784854, + 1784542, 1784258, 1784000, 1783767, 1783557, 1783368, 1783200, 1783049, 1827497, 1828081, 1828497, 1828733, 1828773, 1828601, + 1828203, 1827567, 1826689, 1825575, 1824239, 1822706, 1821010, 1819192, 1817295, 1815359, 1813424, 1811520, 1809674, 1807903, + 1806218, 1804627, 1803133, 1801734, 1800430, 1799217, 1798090, 1797045, 1796077, 1795181, 1794352, 1793587, 1792880, 1792227, + 1791626, 1791071, 1790561, 1790092, 1789661, 1789266, 1788904, 1788573, 1788270, 1787995, 1787744, 1787517, 1787312, 1787127, + 1786961, 1830911, 1831515, 1831956, 1832221, 1832298, 1832170, 1831823, 1831247, 1830437, 1829396, 1828137, 1826682, 1825061, + 1823311, 1821474, 1819589, 1817693, 1815818, 1813990, 1812228, 1810546, 1808951, 1807448, 1806037, 1804717, 1803486, 1802340, + 1801275, 1800286, 1799368, 1798518, 1797731, 1797002, 1796328, 1795705, 1795130, 1794599, 1794110, 1793659, 1793244, 1792863, + 1792513, 1792193, 1791899, 1791632, 1791388, 1791166, 1790965, 1790784, 1834232, 1834855, 1835319, 1835613, 1835724, 1835637, + 1835340, 1834820, 1834074, 1833103, 1831917, 1830536, 1828988, 1827306, 1825529, 1823695, 1821840, 1819996, 1818189, 1816439, + 1814762, 1813165, 1811655, 1810234, 1808901, 1807654, 1806490, 1805406, 1804397, 1803459, 1802588, 1801780, 1801031, 1800336, + 1799692, 1799097, 1798546, 1798037, 1797567, 1797133, 1796734, 1796366, 1796027, 1795717, 1795432, 1795172, 1794934, 1794718, + 1794522, 1837475, 1838115, 1838601, 1838921, 1839064, 1839016, 1838765, 1838298, 1837612, 1836707, 1835591, 1834282, 1832804, + 1831189, 1829471, 1827689, 1825876, 1824064, 1822280, 1820545, 1818875, 1817279, 1815765, 1814335, 1812990, 1811728, 1810548, + 1809446, 1808419, 1807462, 1806571, 1805743, 1804973, 1804258, 1803595, 1802980, 1802409, 1801881, 1801392, 1800940, 1800522, + 1800136, 1799781, 1799453, 1799152, 1798875, 1798622, 1798390, 1798179, 1840626, 1841283, 1841789, 1842134, 1842308, 1842296, + 1842088, 1841673, 1841044, 1840201, 1839152, 1837912, 1836502, 1834952, 1833295, 1831564, 1829794, 1828017, 1826258, 1824540, + 1822879, 1821286, 1819770, 1818333, 1816978, 1815704, 1814510, 1813391, 1812346, 1811371, 1810462, 1809615, 1808826, 1808092, + 1807409, 1806775, 1806186, 1805639, 1805132, 1804662, 1804226, 1803823, 1803451, 1803107, 1802789, 1802497, 1802228, 1801982, + 1801756, 1843699, 1844372, 1844897, 1845265, 1845467, 1845491, 1845324, 1844956, 1844381, 1843598, 1842613, 1841438, 1840095, + 1838609, 1837010, 1835332, 1833606, 1831864, 1830133, 1828434, 1826784, 1825197, 1823680, 1822238, 1820875, 1819590, 1818382, + 1817249, 1816188, 1815195, 1814268, 1813403, 1812596, 1811843, 1811142, 1810490, 1809883, 1809318, 1808793, 1808305, 1807852, + 1807433, 1807044, 1806683, 1806350, 1806043, 1805759, 1805497, 1805257, 1846709, 1847395, 1847938, 1848328, 1848557, 1848613, + 1848484, 1848161, 1847637, 1846910, 1845986, 1844875, 1843595, 1842170, 1840629, 1839003, 1837322, 1835617, 1833914, 1832236, + 1830599, 1829019, 1827503, 1826059, 1824689, 1823394, 1822174, 1821027, 1819951, 1818942, 1817998, 1817115, 1816290, 1815520, + 1814801, 1814131, 1813506, 1812923, 1812381, 1811876, 1811407, 1810970, 1810565, 1810189, 1809840, 1809517, 1809218, 1808942, + 1808687, 1849626, 1850327, 1850886, 1851298, 1851553, 1851639, 1851547, 1851266, 1850791, 1850118, 1849252, 1848202, 1846984, + 1845620, 1844136, 1842562, 1840927, 1839260, 1837587, 1835931, 1834310, 1832738, 1831227, 1829781, 1828406, 1827103, 1825873, + 1824714, 1823624, 1822600, 1821641, 1820742, 1819900, 1819113, 1818377, 1817690, 1817048, 1816448, 1815889, 1815368, 1814882, + 1814430, 1814009, 1813617, 1813253, 1812916, 1812602, 1812312, 1812043, 1852496, 1853208, 1853783, 1854214, 1854493, 1854608, + 1854550, 1854309, 1853879, 1853257, 1852446, 1851454, 1850296, 1848990, 1847562, 1846039, 1844449, 1842820, 1841178, 1839546, + 1837942, 1836381, 1834874, 1833429, 1832051, 1830741, 1829502, 1828331, 1827228, 1826191, 1825216, 1824301, 1823444, 1822640, + 1821888, 1821183, 1820525, 1819909, 1819333, 1818796, 1818294, 1817826, 1817389, 1816983, 1816604, 1816251, 1815923, 1815619, + 1815337, 1855288, 1856012, 1856602, 1857052, 1857352, 1857495, 1857469, 1857266, 1856880, 1856307, 1855548, 1854612, 1853511, + 1852263, 1850889, 1849417, 1847872, 1846283, 1844673, 1843066, 1841481, 1839932, 1838432, 1836989, 1835609, 1834295, 1833047, + 1831866, 1830752, 1829701, 1828713, 1827783, 1826910, 1826091, 1825323, 1824603, 1823928, 1823297, 1822705, 1822152, 1821635, + 1821151, 1820700, 1820278, 1819885, 1819518, 1819176, 1818858, 1818562, 1858018, 1858753, 1859357, 1859824, 1860145, 1860314, + 1860319, 1860152, 1859806, 1859279, 1858572, 1857689, 1856643, 1855450, 1854130, 1852708, 1851208, 1849658, 1848082, 1846501, + 1844936, 1843401, 1841910, 1840470, 1839090, 1837771, 1836517, 1835328, 1834203, 1833140, 1832139, 1831196, 1830308, 1829474, + 1828691, 1827955, 1827265, 1826618, 1826012, 1825443, 1824911, 1824412, 1823946, 1823510, 1823102, 1822721, 1822366, 1822034, + 1821725, 1860670, 1861416, 1862033, 1862517, 1862859, 1863052, 1863086, 1862954, 1862648, 1862165, 1861505, 1860674, 1859682, + 1858542, 1857275, 1855902, 1854448, 1852938, 1851396, 1849843, 1848299, 1846780, 1845299, 1843865, 1842486, 1841165, 1839906, + 1838710, 1837575, 1836502, 1835488, 1834532, 1833632, 1832784, 1831986, 1831236, 1830531, 1829869, 1829248, 1828665, 1828118, + 1827605, 1827124, 1826674, 1826253, 1825858, 1825490, 1825145, 1824823, 1863276, 1864031, 1864661, 1865159, 1865521, 1865737, + 1865799, 1865698, 1865430, 1864988, 1864375, 1863593, 1862651, 1861564, 1860347, 1859023, 1857614, 1856144, 1854636, 1853112, + 1851590, 1850088, 1848618, 1847191, 1845815, 1844493, 1843230, 1842027, 1840884, 1839801, 1838777, 1837808, 1836895, 1836033, + 1835222, 1834458, 1833739, 1833062, 1832427, 1831829, 1831268, 1830741, 1830246, 1829782, 1829347, 1828940, 1828558, 1828200, + 1827865, 1865819, 1866583, 1867225, 1867738, 1868118, 1868356, 1868444, 1868374, 1868141, 1867740, 1867170, 1866435, 1865543, + 1864505, 1863339, 1862062, 1860698, 1859267, 1857794, 1856299, 1854801, 1853317, 1851860, 1850442, 1849069, 1847748, 1846482, + 1845274, 1844124, 1843032, 1841997, 1841018, 1840092, 1839218, 1838393, 1837616, 1836883, 1836193, 1835543, 1834932, 1834357, + 1833816, 1833308, 1832831, 1832383, 1831962, 1831567, 1831196, 1830849, 1868317, 1869089, 1869742, 1870269, 1870665, 1870923, + 1871036, 1870996, 1870795, 1870432, 1869904, 1869214, 1868369, 1867380, 1866261, 1865032, 1863711, 1862320, 1860882, 1859417, + 1857943, 1856478, 1855035, 1853626, 1852258, 1850939, 1849672, 1848459, 1847303, 1846203, 1845159, 1844169, 1843232, 1842346, + 1841508, 1840718, 1839972, 1839268, 1838605, 1837980, 1837392, 1836838, 1836316, 1835826, 1835365, 1834931, 1834523, 1834140, + 1833781, 1870753, 1871533, 1872196, 1872735, 1873148, 1873426, 1873562, 1873549, 1873381, 1873054, 1872566, 1871919, 1871120, + 1870178, 1869106, 1867922, 1866644, 1865294, 1863891, 1862456, 1861008, 1859563, 1858135, 1856736, 1855375, 1854059, 1852791, + 1851576, 1850415, 1849308, 1848255, 1847255, 1846308, 1845410, 1844561, 1843758, 1843000, 1842284, 1841608, 1840970, 1840368, + 1839801, 1839267, 1838764, 1838290, 1837843, 1837423, 1837028, 1836657, 1873143, 1873930, 1874603, 1875155, 1875582, 1875879, + 1876037, 1876050, 1875913, 1875620, 1875170, 1874564, 1873809, 1872912, 1871885, 1870746, 1869511, 1868199, 1866832, 1865428, + 1864006, 1862582, 1861170, 1859783, 1858430, 1857117, 1855850, 1854633, 1853468, 1852355, 1851294, 1850286, 1849328, 1848420, + 1847560, 1846745, 1845974, 1845246, 1844557, 1843907, 1843293, 1842713, 1842166, 1841650, 1841164, 1840705, 1840273, 1839867, + 1839483, 1875472, 1876266, 1876947, 1877511, 1877953, 1878267, 1878447, 1878485, 1878377, 1878116, 1877703, 1877137, 1876424, + 1875571, 1874589, 1873493, 1872300, 1871028, 1869696, 1868324, 1866928, 1865526, 1864132, 1862758, 1861413, 1860106, 1858841, + 1857623, 1856455, 1855337, 1854270, 1853253, 1852287, 1851369, 1850498, 1849672, 1848890, 1848150, 1847449, 1846787, 1846160, + 1845569, 1845010, 1844482, 1843983, 1843513, 1843069, 1842651, 1842256, 1877755, 1878555, 1879245, 1879820, 1880275, 1880606, + 1880806, 1880869, 1880788, 1880559, 1880180, 1879653, 1878980, 1878169, 1877230, 1876177, 1875025, 1873792, 1872495, 1871154, + 1869786, 1868406, 1867031, 1865670, 1864335, 1863034, 1861773, 1860555, 1859385, 1858263, 1857190, 1856166, 1855191, 1854264, + 1853383, 1852547, 1851754, 1851002, 1850290, 1849616, 1848978, 1848375, 1847804, 1847264, 1846754, 1846272, 1845817, 1845387, + 1844981, 1879992, 1880799, 1881497, 1882082, 1882550, 1882897, 1883116, 1883201, 1883146, 1882948, 1882603, 1882112, 1881478, + 1880708, 1879810, 1878799, 1877687, 1876492, 1875230, 1873921, 1872580, 1871224, 1869867, 1868522, 1867198, 1865904, 1864647, + 1863430, 1862259, 1861133, 1860055, 1859025, 1858043, 1857107, 1856217, 1855371, 1854567, 1853805, 1853082, 1852397, 1851747, + 1851132, 1850550, 1849999, 1849477, 1848984, 1848517, 1848076, 1847660, 1882185, 1882997, 1883702, 1884297, 1884778, 1885140, + 1885377, 1885484, 1885454, 1885284, 1884971, 1884514, 1883918, 1883187, 1882331, 1881359, 1880287, 1879129, 1877903, 1876625, + 1875312, 1873980, 1872643, 1871313, 1870001, 1868716, 1867463, 1866249, 1865077, 1863949, 1862867, 1861832, 1860843, 1859899, + 1859000, 1858144, 1857331, 1856558, 1855825, 1855129, 1854468, 1853842, 1853249, 1852686, 1852154, 1851649, 1851172, 1850720, + 1850293, 1884333, 1885150, 1885862, 1886466, 1886958, 1887335, 1887590, 1887717, 1887711, 1887568, 1887285, 1886863, 1886303, + 1885610, 1884792, 1883860, 1882826, 1881706, 1880514, 1879268, 1877983, 1876676, 1875359, 1874045, 1872746, 1871470, 1870223, + 1869012, 1867841, 1866712, 1865627, 1864586, 1863591, 1862640, 1861733, 1860868, 1860046, 1859263, 1858520, 1857813, 1857142, + 1856505, 1855901, 1855328, 1854785, 1854270, 1853781, 1853319, 1852881, 1886435, 1887257, 1887976, 1888589, 1889092, 1889482, + 1889753, 1889900, 1889917, 1889800, 1889547, 1889157, 1888631, 1887975, 1887195, 1886302, 1885306, 1884222, 1883065, 1881850, + 1880594, 1879311, 1878015, 1876719, 1875433, 1874167, 1872927, 1871721, 1870551, 1869421, 1868333, 1867289, 1866288, 1865331, + 1864416, 1863544, 1862712, 1861921, 1861167, 1860451, 1859770, 1859122, 1858508, 1857924, 1857370, 1856845, 1856346, 1855874, + 1855425, 1888493, 1889319, 1890044, 1890665, 1891179, 1891582, 1891869, 1892035, 1892074, 1891982, 1891757, 1891398, 1890906, + 1890285, 1889542, 1888685, 1887727, 1886679, 1885556, 1884373, 1883145, 1881887, 1880613, 1879334, 1878063, 1876808, 1875576, + 1874374, 1873207, 1872078, 1870988, 1869941, 1868935, 1867972, 1867051, 1866171, 1865331, 1864531, 1863768, 1863042, 1862351, + 1861694, 1861070, 1860476, 1859912, 1859376, 1858868, 1858385, 1857927, 1890524, 1891353, 1892084, 1892713, 1893237, 1893652, + 1893954, 1894137, 1894197, 1894129, 1893930, 1893601, 1893141, 1892554, 1891846, 1891026, 1890103, 1889090, 1888000, 1886849, + 1885649, 1884416, 1883164, 1881904, 1880647, 1879404, 1878181, 1876985, 1875821, 1874692, 1873602, 1872551, 1871542, 1870573, + 1869645, 1868758, 1867911, 1867102, 1866331, 1865595, 1864895, 1864229, 1863594, 1862991, 1862417, 1861871, 1861352, 1860860, + 1860392, 1892509, 1893342, 1894079, 1894715, 1895248, 1895675, 1895991, 1896191, 1896271, 1896226, 1896053, 1895752, 1895323, + 1894769, 1894095, 1893310, 1892422, 1891444, 1890387, 1889267, 1888096, 1886888, 1885658, 1884417, 1883176, 1881945, 1880731, + 1879542, 1878382, 1877255, 1876165, 1875112, 1874099, 1873126, 1872193, 1871299, 1870444, 1869628, 1868848, 1868104, 1867395, + 1866719, 1866075, 1865462, 1864879, 1864323, 1863795, 1863293, 1862815, 1894450, 1895286, 1896028, 1896671, 1897213, 1897651, + 1897981, 1898198, 1898296, 1898273, 1898125, 1897851, 1897452, 1896930, 1896290, 1895539, 1894686, 1893741, 1892717, 1891627, + 1890485, 1889304, 1888096, 1886875, 1885650, 1884432, 1883228, 1882046, 1880891, 1879767, 1878677, 1877624, 1876608, 1875631, + 1874693, 1873793, 1872932, 1872108, 1871320, 1870568, 1869850, 1869166, 1868513, 1867891, 1867298, 1866734, 1866196, 1865684, + 1865197, 1896345, 1897185, 1897931, 1898581, 1899132, 1899581, 1899924, 1900156, 1900273, 1900271, 1900147, 1899900, 1899530, + 1899039, 1898431, 1897713, 1896893, 1895982, 1894991, 1893932, 1892818, 1891662, 1890478, 1889276, 1888069, 1886865, 1885672, + 1884498, 1883349, 1882228, 1881140, 1880086, 1879068, 1878088, 1877146, 1876241, 1875373, 1874543, 1873748, 1872988, 1872262, + 1871569, 1870908, 1870277, 1869676, 1869102, 1868556, 1868035, 1867539, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.75 V (slice 3): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_3 and r_3). +pub const VSB_N3 : [4851]u32 = [ + 4294967295, 101225, 128845, 123600, 125011, 128923, 133949, 139251, 144672, 149985, 155108, 160016, 164703, 169176, + 173442, 177515, 181406, 185129, 188696, 192119, 195409, 198577, 201633, 204586, 207445, 210218, 212913, 215538, + 218099, 220602, 223055, 225462, 227830, 230164, 232470, 234751, 237013, 239263, 241504, 243743, 245987, 248245, + 250528, 252851, 255293, 257770, 260366, 263121, 266089, 269336, 148203, 165434, 162236, 164211, 168414, 173675, + 179186, 184810, 190309, 195602, 200662, 205485, 210077, 214448, 218611, 222579, 226367, 229985, 233449, 236768, + 239953, 243016, 245965, 248810, 251558, 254217, 256795, 259298, 261732, 264103, 266417, 268679, 270895, 273068, + 275204, 277306, 279380, 281430, 283461, 285477, 287486, 289494, 291511, 293548, 295665, 297806, 300032, 302376, + 304882, 195209, 205513, 203789, 206169, 210587, 216020, 221771, 227538, 233102, 238522, 243696, 248620, 253302, + 257752, 261984, 266011, 269849, 273509, 277006, 280351, 283555, 286629, 289582, 292423, 295161, 297802, 300354, + 302824, 305218, 307541, 309798, 311996, 314137, 316228, 318272, 320273, 322235, 324162, 326058, 327927, 329773, + 331602, 333420, 335233, 337053, 338919, 340799, 342734, 344752, 242243, 248071, 247353, 250014, 254584, 260143, + 266014, 271891, 277609, 283068, 288326, 293326, 298075, 302584, 306868, 310941, 314818, 318512, 322037, 325404, + 328626, 331712, 334673, 337517, 340252, 342887, 345428, 347881, 350254, 352550, 354776, 356937, 359036, 361078, + 363067, 365007, 366902, 368754, 370568, 372346, 374092, 375811, 377506, 379182, 380845, 382502, 384183, 385867, + 387584, 289304, 292306, 292250, 295100, 299780, 305430, 311390, 317350, 323143, 328705, 333992, 339049, 343848, + 348403, 352727, 356836, 360744, 364465, 368013, 371383, 374621, 377721, 380691, 383542, 386282, 388931, 391469, + 393916, 396279, 398563, 400773, 402914, 404990, 407005, 408964, 410870, 412725, 414535, 416300, 418025, 419713, + 421366, 422988, 424583, 426153, 427705, 429244, 430788, 432329, 336391, 337634, 338005, 340984, 345744, 351463, + 357493, 363515, 369367, 374982, 380336, 385419, 390258, 394849, 399205, 403328, 407260, 411003, 414570, 417974, + 421227, 424339, 427320, 430179, 432924, 435564, 438104, 440552, 442913, 445193, 447397, 449530, 451596, 453598, + 455542, 457430, 459265, 461051, 462791, 464493, 466147, 467763, 469344, 470892, 472410, 473901, 475370, 476824, + 478264, 383504, 383665, 384308, 387377, 392198, 397970, 404056, 410129, 416028, 421686, 427080, 432198, 437070, + 441683, 446062, 450221, 454174, 457936, 461521, 464941, 468207, 471331, 474322, 477190, 479943, 482588, 485133, + 487584, 489947, 492227, 494430, 496560, 498622, 500619, 502556, 504435, 506260, 508034, 509759, 511440, 513077, + 514673, 516232, 517755, 519244, 520703, 522136, 523541, 524925, 430640, 430141, 430959, 434093, 438963, 444779, + 450911, 457027, 462966, 468661, 474088, 479244, 484137, 488775, 493177, 497357, 501330, 505109, 508710, 512143, + 515423, 518558, 521560, 524437, 527197, 529850, 532400, 534856, 537223, 539507, 541712, 543843, 545904, 547901, + 549835, 551711, 553532, 555301, 557021, 558694, 560322, 561908, 563455, 564964, 566438, 567879, 569289, 570670, + 572025, 477799, 476900, 477833, 481016, 485927, 491780, 497954, 504107, 510081, 515808, 521265, 526448, 531367, + 536027, 540450, 544649, 548639, 552435, 556049, 559497, 562788, 565934, 568946, 571832, 574601, 577261, 579819, + 582280, 584652, 586940, 589149, 591283, 593348, 595346, 597281, 599158, 600978, 602746, 604464, 606134, 607759, + 609341, 610882, 612385, 613852, 615283, 616682, 618051, 619391, 524978, 523840, 524851, 528073, 533019, 538909, + 545118, 551304, 557310, 563067, 568551, 573759, 578700, 583383, 587825, 592041, 596047, 599858, 603486, 606946, + 610249, 613406, 616428, 619323, 622100, 624768, 627332, 629800, 632178, 634471, 636685, 638823, 640891, 642892, + 644830, 646709, 648531, 650300, 652019, 653689, 655313, 656895, 658435, 659935, 661399, 662827, 664221, 665584, + 666916, 572172, 570897, 571961, 575217, 580196, 586119, 592360, 598578, 604614, 610398, 615908, 621139, 626100, + 630803, 635264, 639497, 643518, 647343, 650984, 654456, 657770, 660937, 663969, 666873, 669658, 672333, 674905, + 677380, 679764, 682062, 684281, 686424, 688496, 690501, 692443, 694325, 696150, 697921, 699642, 701314, 702940, + 704522, 706062, 707563, 709026, 710453, 711846, 713207, 714536, 619376, 618027, 619133, 622417, 627426, 633381, + 639652, 645900, 651963, 657774, 663307, 668561, 673542, 678263, 682741, 686990, 691025, 694863, 698517, 702000, + 705325, 708503, 711543, 714456, 717249, 719932, 722510, 724992, 727382, 729686, 731910, 734058, 736135, 738144, + 740090, 741976, 743804, 745578, 747302, 748976, 750604, 752188, 753731, 755233, 756697, 758125, 759518, 760878, + 762207, 666579, 665200, 666340, 669652, 674689, 680672, 686972, 693248, 699337, 705172, 710727, 716001, 721001, + 725741, 730234, 734498, 738547, 742397, 746063, 749557, 752892, 756079, 759128, 762049, 764850, 767540, 770125, + 772613, 775009, 777319, 779548, 781701, 783782, 785796, 787746, 789635, 791467, 793245, 794971, 796648, 798279, + 799866, 801410, 802915, 804381, 805810, 807205, 808566, 809896, 713764, 712390, 713563, 716900, 721962, 727972, + 734299, 740599, 746712, 752569, 758146, 763438, 768456, 773211, 777719, 781996, 786058, 789920, 793597, 797101, + 800445, 803640, 806698, 809626, 812434, 815131, 817722, 820216, 822617, 824933, 827167, 829324, 831410, 833428, + 835382, 837275, 839110, 840892, 842621, 844301, 845935, 847524, 849071, 850577, 852046, 853477, 854873, 856236, + 857567, 760905, 759572, 760778, 764139, 769224, 775256, 781606, 787929, 794063, 799939, 805533, 810842, 815875, + 820644, 825165, 829454, 833527, 837399, 841085, 844598, 847950, 851153, 854217, 857152, 859967, 862669, 865266, + 867765, 870171, 872491, 874730, 876892, 878981, 881003, 882960, 884857, 886696, 888480, 890212, 891895, 893531, + 895123, 896672, 898181, 899651, 901084, 902482, 903847, 905180, 808381, 806948, 808081, 811398, 816468, 822503, + 828864, 835200, 841349, 847239, 852847, 858169, 863214, 867993, 872524, 876822, 880904, 884784, 888477, 891996, + 895355, 898564, 901634, 904574, 907394, 910101, 912702, 915205, 917615, 919939, 922181, 924346, 926439, 928463, + 930424, 932323, 934164, 935951, 937685, 939370, 941009, 942602, 944153, 945664, 947136, 948571, 949971, 951337, + 952671, 862988, 858487, 857601, 859734, 864176, 869903, 876124, 882403, 888531, 894417, 900027, 905353, 910403, + 915188, 919724, 924027, 928113, 931998, 935695, 939218, 942580, 945792, 948865, 951809, 954631, 957340, 959944, + 962449, 964862, 967187, 969431, 971599, 973693, 975720, 977681, 979582, 981425, 983213, 984949, 986635, 988275, + 989870, 991422, 992933, 994406, 995842, 997243, 998610, 999945, 923570, 914015, 909592, 909476, 912599, 917600, + 923439, 929524, 935555, 941394, 946980, 952294, 957337, 962118, 966651, 970952, 975036, 978919, 982615, 986137, + 989498, 992710, 995782, 998724, 1001546, 1004255, 1006858, 1009362, 1011774, 1014100, 1016343, 1018510, 1020604, 1022630, + 1024592, 1026492, 1028334, 1030122, 1031858, 1033544, 1035183, 1036778, 1038330, 1039841, 1041314, 1042750, 1044150, 1045517, + 1046852, 985629, 971186, 963032, 960302, 961709, 965641, 970839, 976547, 982359, 988070, 993579, 998846, 1003857, + 1008615, 1013131, 1017417, 1021489, 1025361, 1029047, 1032560, 1035913, 1039117, 1042182, 1045118, 1047933, 1050636, 1053234, + 1055734, 1058141, 1060462, 1062701, 1064864, 1066954, 1068977, 1070935, 1072832, 1074671, 1076456, 1078189, 1079872, 1081509, + 1083101, 1084651, 1086160, 1087630, 1089064, 1090462, 1091827, 1093160, 1046592, 1028299, 1016881, 1011633, 1011216, 1013884, + 1018232, 1023379, 1028825, 1034295, 1039644, 1044802, 1049735, 1054437, 1058908, 1063158, 1067200, 1071045, 1074707, 1078199, + 1081533, 1084718, 1087767, 1090687, 1093488, 1096177, 1098762, 1101250, 1103646, 1105956, 1108185, 1110338, 1112419, 1114433, + 1116383, 1118272, 1120104, 1121882, 1123608, 1125285, 1126915, 1128501, 1130045, 1131548, 1133014, 1134442, 1135836, 1137196, + 1138524, 1105270, 1084323, 1070289, 1062809, 1060629, 1061966, 1065335, 1069774, 1074711, 1079816, 1084903, 1089867, 1094657, + 1099247, 1103631, 1107809, 1111790, 1115584, 1119200, 1122651, 1125948, 1129099, 1132116, 1135007, 1137781, 1140445, 1143006, + 1145471, 1147846, 1150136, 1152346, 1154481, 1156546, 1158543, 1160477, 1162352, 1164170, 1165934, 1167647, 1169312, 1170930, + 1172505, 1174038, 1175531, 1176986, 1178405, 1179789, 1181140, 1182460, 1161017, 1138571, 1122571, 1113184, 1109366, 1109376, + 1111697, 1115321, 1119630, 1124252, 1128966, 1133642, 1138204, 1142613, 1146849, 1150906, 1154783, 1158487, 1162025, 1165407, + 1168640, 1171734, 1174698, 1177541, 1180269, 1182891, 1185412, 1187840, 1190180, 1192437, 1194615, 1196721, 1198757, 1200727, + 1202636, 1204486, 1206280, 1208022, 1209714, 1211358, 1212957, 1214513, 1216028, 1217504, 1218942, 1220345, 1221713, 1223049, + 1224354, 1213330, 1190460, 1173118, 1162139, 1156821, 1155534, 1156772, 1159507, 1163091, 1167126, 1171364, 1175652, 1179897, + 1184044, 1188061, 1191932, 1195651, 1199217, 1202634, 1205907, 1209043, 1212049, 1214932, 1217700, 1220359, 1222916, 1225377, + 1227748, 1230034, 1232240, 1234371, 1236431, 1238424, 1240353, 1242223, 1244035, 1245794, 1247502, 1249161, 1250774, 1252343, + 1253870, 1255357, 1256806, 1258219, 1259597, 1260941, 1262254, 1263537, 1261781, 1239447, 1221368, 1209104, 1202421, 1199880, + 1200021, 1201815, 1204601, 1207962, 1211633, 1215443, 1219285, 1223089, 1226813, 1230431, 1233930, 1237303, 1240549, 1243669, + 1246667, 1249548, 1252316, 1254978, 1257539, 1260005, 1262380, 1264671, 1266882, 1269017, 1271080, 1273076, 1275008, 1276880, + 1278694, 1280454, 1282163, 1283823, 1285436, 1287004, 1288531, 1290017, 1291465, 1292876, 1294252, 1295595, 1296906, 1298186, + 1299437, 1306074, 1285051, 1266828, 1253595, 1245693, 1241955, 1241007, 1241835, 1243776, 1246403, 1249438, 1252698, 1256064, + 1259455, 1262819, 1266122, 1269344, 1272471, 1275497, 1278419, 1281238, 1283955, 1286574, 1289098, 1291531, 1293878, 1296142, + 1298329, 1300441, 1302483, 1304459, 1306371, 1308224, 1310021, 1311763, 1313455, 1315097, 1316694, 1318247, 1319757, 1321228, + 1322661, 1324057, 1325418, 1326747, 1328043, 1329309, 1330546, 1331755, 1346136, 1326947, 1309135, 1295273, 1286319, 1281466, + 1279464, 1279333, 1280415, 1282279, 1284639, 1287305, 1290147, 1293075, 1296030, 1298970, 1301868, 1304706, 1307471, 1310158, + 1312763, 1315284, 1317723, 1320081, 1322360, 1324563, 1326693, 1328754, 1330747, 1332677, 1334547, 1336359, 1338116, 1339821, + 1341477, 1343085, 1344648, 1346168, 1347648, 1349088, 1350491, 1351858, 1353192, 1354493, 1355762, 1357002, 1358214, 1359398, + 1360556, 1382125, 1365024, 1348093, 1333963, 1324157, 1318297, 1315306, 1314254, 1314496, 1315602, 1317281, 1319338, 1321634, + 1324076, 1326595, 1329145, 1331691, 1334211, 1336690, 1339115, 1341481, 1343784, 1346022, 1348193, 1350299, 1352341, 1354320, + 1356238, 1358098, 1359902, 1361652, 1363351, 1365000, 1366602, 1368159, 1369673, 1371146, 1372580, 1373976, 1375336, 1376662, + 1377955, 1379217, 1380449, 1381652, 1382828, 1383977, 1385100, 1386199, 1414372, 1399381, 1383674, 1369635, 1359205, 1352473, + 1348582, 1346674, 1346122, 1346502, 1347522, 1348981, 1350737, 1352691, 1354770, 1356921, 1359106, 1361298, 1363478, 1365630, + 1367746, 1369818, 1371843, 1373817, 1375740, 1377610, 1379429, 1381197, 1382915, 1384584, 1386207, 1387785, 1389319, 1390812, + 1392264, 1393678, 1395054, 1396396, 1397703, 1398978, 1400222, 1401436, 1402621, 1403779, 1404910, 1406016, 1407098, 1408156, + 1409192, 1443293, 1430284, 1415996, 1402375, 1391565, 1384115, 1379430, 1376745, 1375463, 1375167, 1375567, 1376459, 1377699, + 1379182, 1380832, 1382592, 1384422, 1386289, 1388170, 1390050, 1391914, 1393755, 1395564, 1397339, 1399076, 1400773, 1402429, + 1404044, 1405618, 1407151, 1408645, 1410100, 1411517, 1412898, 1414244, 1415556, 1416835, 1418082, 1419299, 1420487, 1421647, + 1422780, 1423887, 1424969, 1426027, 1427062, 1428074, 1429066, 1430037, 1469313, 1458082, 1445274, 1432336, 1421393, 1413390, + 1408024, 1404649, 1402709, 1401797, 1401626, 1401993, 1402750, 1403790, 1405034, 1406423, 1407912, 1409466, 1411060, 1412674, + 1414294, 1415908, 1417508, 1419088, 1420643, 1422169, 1423666, 1425131, 1426563, 1427963, 1429329, 1430664, 1431967, 1433238, + 1434480, 1435691, 1436874, 1438029, 1439158, 1440260, 1441337, 1442390, 1443420, 1444427, 1445413, 1446378, 1447323, 1448249, + 1449156, 1492841, 1483156, 1471789, 1459718, 1448874, 1440487, 1434556, 1430580, 1428054, 1426587, 1425898, 1425784, 1426097, + 1426728, 1427595, 1428636, 1429804, 1431063, 1432384, 1433747, 1435134, 1436532, 1437931, 1439323, 1440703, 1442067, 1443410, + 1444730, 1446027, 1447298, 1448543, 1449762, 1450955, 1452122, 1453263, 1454378, 1455469, 1456536, 1457579, 1458599, 1459598, + 1460574, 1461530, 1462466, 1463383, 1464281, 1465160, 1466023, 1466868, 1514218, 1505862, 1495834, 1484733, 1474191, 1465587, + 1459208, 1454718, 1451676, 1449714, 1448559, 1448010, 1447918, 1448173, 1448693, 1449412, 1450282, 1451266, 1452332, 1453459, + 1454626, 1455820, 1457030, 1458245, 1459460, 1460669, 1461867, 1463051, 1464218, 1465368, 1466498, 1467608, 1468696, 1469764, + 1470810, 1471835, 1472840, 1473823, 1474786, 1475729, 1476653, 1477558, 1478445, 1479313, 1480165, 1480999, 1481817, 1482620, + 1483408, 1533753, 1526527, 1517708, 1507610, 1497530, 1488868, 1482157, 1477236, 1473744, 1471343, 1469770, 1468828, 1468369, + 1468281, 1468482, 1468905, 1469501, 1470229, 1471058, 1471964, 1472927, 1473930, 1474962, 1476011, 1477071, 1478134, 1479195, + 1480250, 1481297, 1482332, 1483354, 1484361, 1485352, 1486327, 1487285, 1488225, 1489148, 1490054, 1490942, 1491813, 1492668, + 1493506, 1494328, 1495134, 1495925, 1496700, 1497462, 1498209, 1498942, 1551687, 1545421, 1537674, 1528560, 1519057, 1510484, + 1503552, 1498282, 1494403, 1491615, 1489669, 1488373, 1487580, 1487181, 1487091, 1487242, 1487585, 1488077, 1488687, 1489388, + 1490160, 1490985, 1491851, 1492745, 1493659, 1494586, 1495519, 1496454, 1497387, 1498315, 1499235, 1500146, 1501046, 1501934, + 1502809, 1503671, 1504518, 1505351, 1506170, 1506975, 1507765, 1508541, 1509303, 1510051, 1510786, 1511508, 1512216, 1512912, + 1513596, 1568236, 1562788, 1555980, 1547797, 1538940, 1530580, 1523536, 1517995, 1513788, 1510660, 1508382, 1506767, 1505673, + 1504990, 1504634, 1504536, 1504645, 1504920, 1505326, 1505838, 1506432, 1507091, 1507801, 1508550, 1509328, 1510127, 1510940, + 1511762, 1512588, 1513416, 1514241, 1515062, 1515877, 1516684, 1517482, 1518270, 1519047, 1519813, 1520567, 1521310, 1522041, + 1522759, 1523466, 1524161, 1524844, 1525515, 1526175, 1526824, 1527462, 1583574, 1578823, 1572834, 1565510, 1557329, 1549283, + 1542229, 1536494, 1532015, 1528592, 1526018, 1524117, 1522750, 1521809, 1521209, 1520882, 1520777, 1520850, 1521068, 1521403, + 1521832, 1522336, 1522901, 1523514, 1524164, 1524843, 1525543, 1526259, 1526986, 1527719, 1528455, 1529192, 1529927, 1530658, + 1531383, 1532102, 1532814, 1533517, 1534211, 1534896, 1535572, 1536237, 1536892, 1537538, 1538173, 1538798, 1539414, 1540019, + 1540615, 1597846, 1593693, 1588416, 1581872, 1574368, 1566711, 1559738, 1553882, 1549186, 1545510, 1542674, 1540516, 1538902, + 1537726, 1536902, 1536365, 1536062, 1535949, 1535992, 1536162, 1536437, 1536796, 1537226, 1537711, 1538241, 1538807, 1539402, + 1540018, 1540650, 1541295, 1541947, 1542604, 1543264, 1543923, 1544581, 1545236, 1545886, 1546530, 1547168, 1547799, 1548423, + 1549039, 1549647, 1550246, 1550837, 1551420, 1551994, 1552559, 1553116, 1611175, 1607538, 1602881, 1597037, 1590188, 1582969, + 1576156, 1570250, 1565390, 1561501, 1558436, 1556048, 1554210, 1552818, 1551790, 1551060, 1550573, 1550287, 1550167, 1550185, + 1550315, 1550540, 1550841, 1551207, 1551624, 1552084, 1552578, 1553100, 1553644, 1554204, 1554777, 1555360, 1555948, 1556540, + 1557134, 1557728, 1558320, 1558909, 1559495, 1560075, 1560651, 1561220, 1561784, 1562340, 1562890, 1563433, 1563968, 1564497, + 1565018, 1623660, 1620471, 1616354, 1611136, 1604908, 1598154, 1591565, 1585674, 1580702, 1576639, 1573376, 1570783, 1568742, + 1567155, 1565939, 1565030, 1564374, 1563928, 1563656, 1563531, 1563526, 1563624, 1563806, 1564058, 1564369, 1564729, 1565129, + 1565562, 1566021, 1566502, 1567000, 1567511, 1568032, 1568561, 1569094, 1569630, 1570167, 1570704, 1571240, 1571773, 1572303, + 1572829, 1573351, 1573867, 1574378, 1574884, 1575384, 1575877, 1576365, 1635394, 1632595, 1628950, 1624289, 1618638, 1612358, + 1606043, 1600227, 1595192, 1590993, 1587560, 1584786, 1582563, 1580797, 1579409, 1578335, 1577522, 1576927, 1576514, 1576254, + 1576124, 1576102, 1576171, 1576317, 1576528, 1576793, 1577103, 1577451, 1577831, 1578236, 1578663, 1579106, 1579563, 1580031, + 1580507, 1580988, 1581473, 1581961, 1582449, 1582937, 1583424, 1583909, 1584391, 1584869, 1585344, 1585815, 1586281, 1586742, + 1587199, 1646457, 1643999, 1640768, 1636602, 1631482, 1625670, 1619664, 1613973, 1608924, 1604625, 1601051, 1598118, 1595731, + 1593802, 1592256, 1591029, 1590070, 1589335, 1588791, 1588406, 1588156, 1588022, 1587984, 1588030, 1588145, 1588320, 1588545, + 1588813, 1589117, 1589450, 1589808, 1590187, 1590583, 1590993, 1591413, 1591842, 1592278, 1592718, 1593162, 1593607, 1594052, + 1594498, 1594943, 1595385, 1595826, 1596263, 1596697, 1597128, 1597555, 1656903, 1654745, 1651880, 1648153, 1643518, 1638159, + 1632484, 1626962, 1621941, 1617580, 1613892, 1610822, 1608289, 1606213, 1604521, 1603154, 1602059, 1601196, 1600527, 1600025, + 1599664, 1599423, 1599285, 1599235, 1599260, 1599350, 1599494, 1599685, 1599916, 1600181, 1600474, 1600791, 1601129, 1601483, + 1601851, 1602230, 1602618, 1603012, 1603413, 1603817, 1604223, 1604631, 1605040, 1605448, 1605856, 1606262, 1606666, 1607067, + 1607466, 1666792, 1664900, 1662358, 1659022, 1654829, 1649901, 1644567, 1639247, 1634294, 1629904, 1626131, 1622946, 1620284, + 1618074, 1616250, 1614752, 1613532, 1612548, 1611764, 1611151, 1610684, 1610344, 1610111, 1609970, 1609910, 1609918, 1609985, + 1610103, 1610265, 1610464, 1610694, 1610953, 1611234, 1611535, 1611852, 1612183, 1612525, 1612876, 1613235, 1613599, 1613968, + 1614340, 1614715, 1615090, 1615466, 1615842, 1616217, 1616591, 1616963, 1676178, 1674521, 1672265, 1669278, 1665485, 1660963, + 1655971, 1650878, 1646028, 1641642, 1637810, 1634530, 1631756, 1629426, 1627481, 1625863, 1624526, 1623429, 1622536, 1621819, + 1621254, 1620818, 1620495, 1620269, 1620127, 1620058, 1620051, 1620099, 1620194, 1620330, 1620501, 1620702, 1620929, 1621179, + 1621447, 1621732, 1622030, 1622339, 1622658, 1622984, 1623317, 1623654, 1623996, 1624339, 1624685, 1625032, 1625379, 1625726, + 1626073, 1685104, 1683658, 1681657, 1678980, 1675548, 1671404, 1666749, 1661900, 1657181, 1652830, 1648964, 1645610, 1642739, + 1640304, 1638248, 1636520, 1635074, 1633871, 1632877, 1632063, 1631403, 1630878, 1630469, 1630162, 1629942, 1629798, 1629721, + 1629702, 1629733, 1629809, 1629922, 1630068, 1630243, 1630443, 1630665, 1630904, 1631160, 1631428, 1631708, 1631998, 1632295, + 1632599, 1632908, 1633222, 1633538, 1633857, 1634177, 1634499, 1634820, 1693599, 1692342, 1690569, 1688170, 1685066, 1681273, + 1676944, 1672348, 1667784, 1663494, 1659620, 1656212, 1653262, 1650732, 1648577, 1646748, 1645203, 1643901, 1642812, 1641905, + 1641157, 1640547, 1640057, 1639672, 1639378, 1639164, 1639020, 1638936, 1638907, 1638923, 1638981, 1639075, 1639200, 1639352, + 1639528, 1639724, 1639938, 1640168, 1640410, 1640664, 1640927, 1641199, 1641477, 1641760, 1642048, 1642340, 1642634, 1642931, + 1643229, 1701705, 1700616, 1699048, 1696900, 1694091, 1690621, 1686604, 1682265, 1677874, 1673669, 1669810, 1666367, 1663353, + 1660744, 1658499, 1656578, 1654940, 1653547, 1652368, 1651375, 1650544, 1649853, 1649286, 1648827, 1648462, 1648181, 1647972, + 1647827, 1647738, 1647699, 1647703, 1647746, 1647822, 1647928, 1648060, 1648214, 1648388, 1648580, 1648786, 1649005, 1649235, + 1649475, 1649723, 1649977, 1650238, 1650503, 1650772, 1651044, 1651319, 1709445, 1708510, 1707126, 1705202, 1702661, 1699489, + 1695769, 1691686, 1687479, 1683381, 1679557, 1676100, 1673037, 1670360, 1668037, 1666033, 1664309, 1662831, 1661569, 1660494, + 1659584, 1658817, 1658177, 1657647, 1657215, 1656869, 1656598, 1656394, 1656249, 1656156, 1656108, 1656102, 1656131, 1656192, + 1656281, 1656395, 1656530, 1656684, 1656855, 1657040, 1657238, 1657447, 1657666, 1657892, 1658126, 1658366, 1658610, 1658859, + 1659111, 1716854, 1716057, 1714839, 1713118, 1710819, 1707920, 1704479, 1700647, 1696634, 1692657, 1688889, 1685434, 1682339, + 1679606, 1677215, 1675135, 1673333, 1671777, 1670436, 1669285, 1668300, 1667461, 1666751, 1666154, 1665657, 1665249, 1664919, + 1664658, 1664459, 1664313, 1664217, 1664163, 1664146, 1664164, 1664212, 1664286, 1664383, 1664501, 1664637, 1664790, 1664956, + 1665135, 1665325, 1665524, 1665731, 1665946, 1666166, 1666392, 1666622, 1723954, 1723282, 1722214, 1720677, 1718598, 1715949, + 1712770, 1709181, 1705365, 1701523, 1697827, 1694392, 1691279, 1688502, 1686053, 1683906, 1682033, 1680403, 1678990, 1677766, + 1676711, 1675804, 1675027, 1674367, 1673808, 1673341, 1672953, 1672638, 1672386, 1672190, 1672046, 1671945, 1671885, 1671861, + 1671868, 1671904, 1671964, 1672047, 1672150, 1672270, 1672406, 1672555, 1672717, 1672889, 1673071, 1673260, 1673457, 1673660, + 1673868, 1730752, 1730194, 1729264, 1727893, 1726015, 1723596, 1720661, 1717307, 1713690, 1709993, 1706383, 1702984, 1699866, + 1697059, 1694562, 1692356, 1690419, 1688723, 1687241, 1685951, 1684829, 1683858, 1683018, 1682297, 1681680, 1681155, 1680714, + 1680346, 1680043, 1679800, 1679608, 1679464, 1679361, 1679296, 1679264, 1679262, 1679287, 1679336, 1679406, 1679495, 1679601, + 1679721, 1679856, 1680002, 1680158, 1680324, 1680497, 1680678, 1680865, 1737288, 1736834, 1736028, 1734808, 1733112, 1730904, + 1728197, 1725066, 1721646, 1718100, 1714589, 1711238, 1708130, 1705304, 1702768, 1700512, 1698517, 1696760, 1695215, 1693862, + 1692678, 1691645, 1690746, 1689966, 1689293, 1688714, 1688220, 1687801, 1687450, 1687160, 1686924, 1686736, 1686592, 1686488, + 1686418, 1686379, 1686369, 1686385, 1686423, 1686481, 1686557, 1686650, 1686757, 1686878, 1687009, 1687151, 1687302, 1687461, + 1687628, 1743575, 1743216, 1742524, 1741442, 1739912, 1737897, 1735400, 1732482, 1729254, 1725863, 1722460, 1719171, 1716084, + 1713250, 1710685, 1708386, 1706341, 1704527, 1702925, 1701513, 1700270, 1699179, 1698223, 1697388, 1696661, 1696030, 1695485, + 1695018, 1694620, 1694285, 1694005, 1693776, 1693592, 1693448, 1693342, 1693268, 1693224, 1693206, 1693213, 1693241, 1693289, + 1693354, 1693435, 1693530, 1693637, 1693756, 1693885, 1694022, 1694168, 1749619, 1749347, 1748759, 1747803, 1746425, 1744587, + 1742287, 1739570, 1736529, 1733295, 1730007, 1726790, 1723737, 1720905, 1718320, 1715988, 1713898, 1712035, 1710380, 1708913, + 1707615, 1706469, 1705460, 1704572, 1703793, 1703113, 1702520, 1702006, 1701563, 1701184, 1700862, 1700593, 1700370, 1700189, + 1700046, 1699938, 1699861, 1699812, 1699788, 1699787, 1699807, 1699845, 1699900, 1699970, 1700053, 1700149, 1700256, 1700373, + 1700498, 1755442, 1755250, 1754757, 1753916, 1752676, 1751002, 1748884, 1746356, 1743497, 1740419, 1737252, 1734116, 1731106, + 1728287, 1725692, 1723333, 1721205, 1719298, 1717595, 1716077, 1714728, 1713531, 1712470, 1711532, 1710705, 1709976, 1709337, + 1708778, 1708292, 1707871, 1707509, 1707200, 1706939, 1706722, 1706545, 1706403, 1706293, 1706213, 1706159, 1706130, 1706122, + 1706134, 1706163, 1706209, 1706269, 1706343, 1706428, 1706524, 1706629, 1761046, 1760928, 1760523, 1759788, 1758676, 1757152, + 1755203, 1752854, 1750168, 1747245, 1744203, 1741155, 1738199, 1735402, 1732805, 1730427, 1728269, 1726323, 1724576, 1723013, + 1721616, 1720370, 1719262, 1718276, 1717402, 1716628, 1715945, 1715343, 1714815, 1714353, 1713952, 1713605, 1713308, 1713056, + 1712845, 1712670, 1712530, 1712419, 1712336, 1712279, 1712244, 1712230, 1712235, 1712257, 1712294, 1712345, 1712409, 1712485, + 1712571, 1766464, 1766413, 1766089, 1765451, 1764457, 1763071, 1761278, 1759096, 1756576, 1753805, 1750888, 1747934, 1745038, + 1742272, 1739683, 1737293, 1735110, 1733131, 1731345, 1729739, 1728298, 1727007, 1725853, 1724822, 1723903, 1723086, 1722360, + 1721716, 1721147, 1720647, 1720208, 1719824, 1719492, 1719206, 1718961, 1718755, 1718583, 1718443, 1718332, 1718247, 1718186, + 1718146, 1718127, 1718125, 1718140, 1718169, 1718213, 1718268, 1718335, 1771689, 1771701, 1771451, 1770903, 1770016, 1768758, + 1767111, 1765085, 1762724, 1760100, 1757310, 1754455, 1751626, 1748899, 1746324, 1743930, 1741729, 1739722, 1737902, 1736257, + 1734775, 1733442, 1732245, 1731172, 1730211, 1729352, 1728585, 1727902, 1727294, 1726756, 1726280, 1725861, 1725495, 1725175, + 1724899, 1724661, 1724460, 1724291, 1724152, 1724040, 1723953, 1723889, 1723846, 1723821, 1723814, 1723822, 1723844, 1723880, + 1723928, 1776743, 1776813, 1776631, 1776166, 1775379, 1774238, 1772726, 1770847, 1768636, 1766155, 1763491, 1760736, 1757981, + 1755300, 1752746, 1750354, 1748141, 1746112, 1744262, 1742583, 1741063, 1739691, 1738454, 1737340, 1736339, 1735440, 1734634, + 1733912, 1733267, 1732692, 1732181, 1731728, 1731328, 1730976, 1730669, 1730401, 1730171, 1729974, 1729808, 1729670, 1729557, + 1729469, 1729402, 1729354, 1729325, 1729312, 1729315, 1729331, 1729360, 1781629, 1781752, 1781634, 1781245, 1780550, 1779519, + 1778131, 1776389, 1774321, 1771979, 1769438, 1766787, 1764109, 1761479, 1758954, 1756571, 1754352, 1752305, 1750430, 1748720, + 1747166, 1745758, 1744483, 1743331, 1742292, 1741355, 1740512, 1739753, 1739073, 1738463, 1737917, 1737431, 1736999, 1736616, + 1736278, 1735981, 1735722, 1735497, 1735305, 1735141, 1735004, 1734892, 1734801, 1734732, 1734681, 1734648, 1734630, 1734627, + 1734638, 1786359, 1786532, 1786473, 1786154, 1785544, 1784614, 1783342, 1781729, 1779795, 1777585, 1775167, 1772619, 1770022, + 1767449, 1764958, 1762590, 1760371, 1758312, 1756416, 1754679, 1753095, 1751653, 1750343, 1749156, 1748080, 1747107, 1746228, + 1745434, 1744719, 1744075, 1743497, 1742978, 1742515, 1742101, 1741733, 1741408, 1741121, 1740870, 1740652, 1740463, 1740302, + 1740166, 1740053, 1739962, 1739890, 1739836, 1739799, 1739777, 1739769, 1790935, 1791154, 1791150, 1790897, 1790366, 1789529, + 1788366, 1786873, 1785066, 1782984, 1780685, 1778240, 1775727, 1773215, 1770764, 1768417, 1766202, 1764136, 1762223, 1760464, + 1758852, 1757380, 1756038, 1754817, 1753707, 1752700, 1751787, 1750959, 1750211, 1749535, 1748924, 1748375, 1747881, 1747438, + 1747042, 1746689, 1746375, 1746098, 1745854, 1745641, 1745456, 1745297, 1745162, 1745049, 1744957, 1744883, 1744827, 1744786, + 1744760, 1795381, 1795642, 1795688, 1795496, 1795038, 1794287, 1793225, 1791844, 1790157, 1788196, 1786012, 1783671, 1781243, + 1778796, 1776388, 1774067, 1771862, 1769793, 1767868, 1766090, 1764453, 1762953, 1761581, 1760329, 1759187, 1758147, 1757201, + 1756341, 1755561, 1754853, 1754212, 1753632, 1753109, 1752637, 1752213, 1751833, 1751493, 1751190, 1750921, 1750684, 1750476, + 1750295, 1750138, 1750004, 1749891, 1749798, 1749722, 1749663, 1749620, 1799676, 1799977, 1800071, 1799935, 1799545, 1798876, + 1797907, 1796632, 1795058, 1793213, 1791142, 1788902, 1786560, 1784181, 1781822, 1779532, 1777342, 1775275, 1773342, 1771548, + 1769891, 1768367, 1766967, 1765686, 1764514, 1763443, 1762467, 1761576, 1760765, 1760028, 1759357, 1758748, 1758197, 1757697, + 1757246, 1756840, 1756474, 1756147, 1755854, 1755593, 1755363, 1755159, 1754981, 1754827, 1754694, 1754582, 1754488, 1754411, + 1754350, 1803854, 1804192, 1804330, 1804247, 1803920, 1803325, 1802444, 1801267, 1799801, 1798066, 1796102, 1793962, 1791707, + 1789397, 1787091, 1784834, 1782664, 1780603, 1778667, 1776861, 1775186, 1773639, 1772215, 1770906, 1769706, 1768607, 1767600, + 1766681, 1765840, 1765073, 1764374, 1763738, 1763158, 1762632, 1762155, 1761723, 1761332, 1760980, 1760664, 1760380, 1760127, + 1759903, 1759704, 1759529, 1759377, 1759245, 1759132, 1759038, 1758959, 1807907, 1808279, 1808458, 1808424, 1808156, 1807631, + 1806832, 1805747, 1804381, 1802751, 1800892, 1798849, 1796680, 1794442, 1792190, 1789972, 1787825, 1785775, 1783838, 1782024, + 1780335, 1778769, 1777322, 1775989, 1774762, 1773635, 1772601, 1771654, 1770785, 1769991, 1769264, 1768600, 1767994, 1767442, + 1766939, 1766482, 1766068, 1765692, 1765353, 1765047, 1764772, 1764526, 1764307, 1764112, 1763941, 1763790, 1763660, 1763547, + 1763452, 1811834, 1812239, 1812456, 1812468, 1812256, 1811796, 1811073, 1810075, 1808804, 1807275, 1805515, 1803568, 1801484, + 1799319, 1797124, 1794948, 1792828, 1790793, 1788860, 1787041, 1785340, 1783758, 1782291, 1780936, 1779685, 1778533, 1777473, + 1776498, 1775604, 1774782, 1774029, 1773340, 1772708, 1772131, 1771603, 1771122, 1770684, 1770286, 1769924, 1769596, 1769300, + 1769034, 1768795, 1768581, 1768390, 1768222, 1768073, 1767944, 1767832, 1815661, 1816096, 1816348, 1816404, 1816242, 1815844, + 1815192, 1814275, 1813094, 1811658, 1809995, 1808140, 1806140, 1804048, 1801912, 1799781, 1797691, 1795674, 1793748, 1791927, + 1790218, 1788622, 1787138, 1785762, 1784488, 1783312, 1782227, 1781228, 1780307, 1779461, 1778682, 1777967, 1777311, 1776709, + 1776158, 1775653, 1775192, 1774771, 1774387, 1774039, 1773722, 1773435, 1773176, 1772943, 1772734, 1772547, 1772382, 1772235, + 1772107, 1819377, 1819839, 1820126, 1820221, 1820108, 1819766, 1819181, 1818341, 1817244, 1815898, 1814326, 1812561, 1810645, + 1808625, 1806550, 1804465, 1802410, 1800413, 1798498, 1796679, 1794964, 1793357, 1791858, 1790463, 1789169, 1787971, 1786863, + 1785840, 1784895, 1784024, 1783221, 1782482, 1781802, 1781176, 1780602, 1780075, 1779591, 1779148, 1778743, 1778374, 1778037, + 1777730, 1777452, 1777200, 1776973, 1776769, 1776586, 1776423, 1776278, 1822994, 1823483, 1823801, 1823933, 1823865, 1823577, + 1823054, 1822286, 1821268, 1820008, 1818524, 1816845, 1815010, 1813062, 1811049, 1809013, 1806994, 1805021, 1803120, 1801305, + 1799588, 1797973, 1796460, 1795049, 1793737, 1792518, 1791388, 1790342, 1789374, 1788480, 1787654, 1786891, 1786188, 1785540, + 1784943, 1784393, 1783888, 1783424, 1782999, 1782609, 1782252, 1781926, 1781629, 1781359, 1781114, 1780892, 1780692, 1780513, + 1780352, 1826515, 1827028, 1827375, 1827543, 1827516, 1827278, 1826814, 1826113, 1825170, 1823991, 1822590, 1820995, 1819239, + 1817364, 1815412, 1813427, 1811446, 1809501, 1807616, 1805809, 1804092, 1802470, 1800947, 1799522, 1798193, 1796955, 1795805, + 1794738, 1793748, 1792831, 1791983, 1791198, 1790473, 1789802, 1789183, 1788613, 1788086, 1787602, 1787156, 1786746, 1786370, + 1786025, 1785710, 1785421, 1785159, 1784920, 1784704, 1784508, 1784332, 1829939, 1830475, 1830849, 1831050, 1831063, 1830872, + 1830463, 1829825, 1828953, 1827851, 1826531, 1825016, 1823337, 1821533, 1819644, 1817710, 1815769, 1813854, 1811988, 1810191, + 1808477, 1806852, 1805321, 1803884, 1802539, 1801284, 1800116, 1799028, 1798018, 1797081, 1796211, 1795405, 1794658, 1793966, + 1793326, 1792735, 1792188, 1791683, 1791218, 1790788, 1790393, 1790030, 1789697, 1789391, 1789111, 1788856, 1788623, 1788412, + 1788220, 1833280, 1833837, 1834237, 1834469, 1834519, 1834372, 1834015, 1833436, 1832631, 1831601, 1830357, 1828919, 1827316, + 1825582, 1823755, 1821874, 1819975, 1818091, 1816247, 1814463, 1812754, 1811128, 1809590, 1808143, 1806785, 1805515, 1804328, + 1803223, 1802193, 1801235, 1800345, 1799518, 1798751, 1798038, 1797378, 1796766, 1796200, 1795675, 1795191, 1794743, 1794329, + 1793948, 1793597, 1793274, 1792977, 1792706, 1792457, 1792230, 1792023, 1836525, 1837103, 1837527, 1837788, 1837873, 1837768, + 1837459, 1836937, 1836195, 1835234, 1834063, 1832700, 1831170, 1829504, 1827739, 1825911, 1824056, 1822206, 1820386, 1818618, + 1816916, 1815291, 1813750, 1812295, 1810925, 1809641, 1808439, 1807316, 1806268, 1805292, 1804382, 1803536, 1802749, 1802017, + 1801337, 1800706, 1800120, 1799577, 1799073, 1798607, 1798176, 1797777, 1797409, 1797069, 1796756, 1796468, 1796204, 1795961, + 1795739, 1839689, 1840285, 1840732, 1841021, 1841139, 1841073, 1840810, 1840341, 1839659, 1838763, 1837662, 1836370, 1834911, + 1833313, 1831609, 1829835, 1828025, 1826209, 1824416, 1822665, 1820973, 1819352, 1817809, 1816347, 1814969, 1813672, 1812456, + 1811317, 1810252, 1809258, 1808330, 1807465, 1806659, 1805908, 1805209, 1804559, 1803955, 1803393, 1802872, 1802388, 1801939, + 1801523, 1801138, 1800782, 1800453, 1800149, 1799869, 1799612, 1799376, 1842786, 1843399, 1843868, 1844181, 1844330, 1844301, + 1844081, 1843662, 1843036, 1842202, 1841167, 1839944, 1838553, 1837020, 1835377, 1833656, 1831891, 1830113, 1828347, 1826615, + 1824936, 1823320, 1821777, 1820311, 1818924, 1817617, 1816387, 1815234, 1814153, 1813141, 1812196, 1811313, 1810489, 1809720, + 1809003, 1808334, 1807712, 1807132, 1806593, 1806092, 1805626, 1805193, 1804791, 1804419, 1804074, 1803755, 1803460, 1803188, + 1802937, 1845788, 1846418, 1846907, 1847245, 1847423, 1847428, 1847250, 1846878, 1846305, 1845531, 1844560, 1843402, 1842077, + 1840609, 1839026, 1837359, 1835640, 1833900, 1832163, 1830454, 1828788, 1827181, 1825640, 1824171, 1822778, 1821462, 1820221, + 1819054, 1817959, 1816932, 1815970, 1815070, 1814229, 1813442, 1812708, 1812022, 1811383, 1810786, 1810230, 1809711, 1809229, + 1808780, 1808362, 1807974, 1807614, 1807280, 1806970, 1806684, 1806419, 1848738, 1849383, 1849891, 1850251, 1850456, 1850494, + 1850354, 1850027, 1849505, 1848786, 1847874, 1846780, 1845518, 1844112, 1842587, 1840974, 1839302, 1837600, 1835894, 1834207, + 1832558, 1830959, 1829422, 1827953, 1826555, 1825231, 1823980, 1822801, 1821692, 1820650, 1819673, 1818757, 1817898, 1817095, + 1816344, 1815641, 1814984, 1814371, 1813798, 1813263, 1812764, 1812299, 1811866, 1811462, 1811087, 1810737, 1810413, 1810112, + 1809834, 1851608, 1852268, 1852793, 1853175, 1853406, 1853475, 1853371, 1853086, 1852611, 1851946, 1851092, 1850058, 1848858, + 1847512, 1846045, 1844484, 1842859, 1841196, 1839523, 1837861, 1836229, 1834642, 1833111, 1831642, 1830242, 1828911, 1827651, + 1826462, 1825340, 1824285, 1823293, 1822361, 1821487, 1820668, 1819900, 1819181, 1818508, 1817878, 1817289, 1816739, 1816224, + 1815743, 1815295, 1814876, 1814486, 1814122, 1813784, 1813469, 1813177, 1854413, 1855087, 1855628, 1856030, 1856286, 1856383, + 1856314, 1856068, 1855640, 1855025, 1854225, 1853249, 1852108, 1850821, 1849410, 1847902, 1846323, 1844701, 1843061, 1841425, + 1839812, 1838238, 1836714, 1835248, 1833846, 1832511, 1831244, 1830044, 1828911, 1827843, 1826838, 1825892, 1825003, 1824168, + 1823385, 1822650, 1821962, 1821316, 1820711, 1820145, 1819615, 1819119, 1818656, 1818222, 1817817, 1817440, 1817087, 1816759, + 1816453, 1857138, 1857825, 1858382, 1858804, 1859082, 1859208, 1859171, 1858964, 1858578, 1858012, 1857265, 1856344, 1855260, + 1854030, 1852675, 1851219, 1849687, 1848105, 1846499, 1844891, 1843299, 1841740, 1840225, 1838764, 1837362, 1836024, 1834751, + 1833543, 1832400, 1831321, 1830303, 1829343, 1828441, 1827591, 1826793, 1826044, 1825340, 1824679, 1824060, 1823478, 1822934, + 1822423, 1821945, 1821498, 1821079, 1820687, 1820321, 1819980, 1819661, 1859814, 1860512, 1861085, 1861524, 1861824, 1861976, + 1861970, 1861798, 1861454, 1860933, 1860236, 1859368, 1858339, 1857164, 1855863, 1854457, 1852972, 1851431, 1849860, 1848280, + 1846710, 1845167, 1843663, 1842207, 1840807, 1839467, 1838189, 1836974, 1835822, 1834732, 1833702, 1832730, 1831814, 1830951, + 1830139, 1829375, 1828656, 1827981, 1827347, 1826751, 1826192, 1825667, 1825174, 1824713, 1824280, 1823875, 1823496, 1823141, + 1822809, 1862425, 1863135, 1863721, 1864178, 1864499, 1864675, 1864698, 1864560, 1864255, 1863777, 1863128, 1862311, 1861335, + 1860213, 1858964, 1857609, 1856169, 1854670, 1853134, 1851584, 1850037, 1848512, 1847019, 1845571, 1844174, 1842834, 1841552, + 1840331, 1839171, 1838072, 1837031, 1836047, 1835118, 1834242, 1833417, 1832639, 1831906, 1831217, 1830568, 1829958, 1829385, + 1828846, 1828340, 1827865, 1827419, 1827001, 1826608, 1826241, 1825896, 1864989, 1865708, 1866308, 1866780, 1867120, 1867320, + 1867371, 1867265, 1866995, 1866559, 1865955, 1865186, 1864261, 1863191, 1861993, 1860687, 1859293, 1857834, 1856334, 1854814, + 1853291, 1851784, 1850305, 1848866, 1847473, 1846133, 1844849, 1843623, 1842456, 1841348, 1840297, 1839303, 1838362, 1837473, + 1836634, 1835843, 1835097, 1834394, 1833732, 1833108, 1832521, 1831969, 1831449, 1830960, 1830501, 1830070, 1829665, 1829284, + 1828927, 1867488, 1868217, 1868829, 1869317, 1869675, 1869897, 1869974, 1869898, 1869664, 1869267, 1868706, 1867985, 1867108, + 1866088, 1864940, 1863681, 1862332, 1860915, 1859451, 1857961, 1856464, 1854977, 1853513, 1852083, 1850696, 1849358, 1848073, + 1846844, 1845671, 1844555, 1843495, 1842490, 1841538, 1840638, 1839787, 1838983, 1838224, 1837508, 1836832, 1836195, 1835595, + 1835030, 1834497, 1833995, 1833523, 1833079, 1832661, 1832269, 1831900, 1869939, 1870678, 1871301, 1871803, 1872179, 1872421, + 1872523, 1872476, 1872275, 1871916, 1871396, 1870719, 1869889, 1868918, 1867817, 1866605, 1865301, 1863924, 1862496, 1861038, + 1859567, 1858100, 1856652, 1855233, 1853853, 1852518, 1851233, 1850001, 1848824, 1847701, 1846633, 1845618, 1844656, 1843745, + 1842882, 1842066, 1841295, 1840566, 1839877, 1839228, 1838615, 1838036, 1837491, 1836976, 1836492, 1836035, 1835605, 1835200, + 1834820, 1872327, 1873075, 1873709, 1874224, 1874616, 1874879, 1875004, 1874985, 1874816, 1874493, 1874013, 1873378, 1872594, + 1871669, 1870615, 1869449, 1868188, 1866852, 1865461, 1864034, 1862590, 1861145, 1859714, 1858307, 1856936, 1855605, 1854322, + 1853088, 1851907, 1850779, 1849704, 1848681, 1847709, 1846788, 1845914, 1845086, 1844303, 1843562, 1842862, 1842200, 1841574, + 1840983, 1840426, 1839899, 1839402, 1838934, 1838492, 1838075, 1837683, 1874668, 1875423, 1876068, 1876596, 1877004, 1877285, + 1877433, 1877440, 1877301, 1877012, 1876570, 1875976, 1875235, 1874355, 1873347, 1872226, 1871008, 1869712, 1868357, 1866962, + 1865546, 1864124, 1862710, 1861317, 1859954, 1858630, 1857349, 1856115, 1854931, 1853798, 1852716, 1851686, 1850706, 1849774, + 1848890, 1848052, 1847257, 1846505, 1845793, 1845119, 1844481, 1843878, 1843309, 1842770, 1842261, 1841781, 1841328, 1840900, + 1840496, 1876961, 1877724, 1878378, 1878919, 1879341, 1879641, 1879810, 1879842, 1879732, 1879475, 1879069, 1878514, 1877815, + 1876978, 1876015, 1874937, 1873761, 1872505, 1871186, 1869824, 1868435, 1867036, 1865641, 1864263, 1862911, 1861593, 1860315, + 1859082, 1857896, 1856759, 1855672, 1854635, 1853646, 1852706, 1851812, 1850964, 1850158, 1849395, 1848671, 1847986, 1847337, + 1846722, 1846141, 1845591, 1845070, 1844579, 1844114, 1843674, 1843259, 1879208, 1879978, 1880641, 1881193, 1881630, 1881946, + 1882135, 1882191, 1882108, 1881882, 1881511, 1880994, 1880335, 1879540, 1878619, 1877584, 1876449, 1875232, 1873950, 1872619, + 1871259, 1869884, 1868509, 1867145, 1865805, 1864494, 1863221, 1861990, 1860803, 1859663, 1858572, 1857528, 1856532, 1855584, + 1854681, 1853823, 1853007, 1852233, 1851499, 1850802, 1850142, 1849516, 1848923, 1848362, 1847830, 1847327, 1846851, 1846401, + 1845975, 1881408, 1882185, 1882856, 1883419, 1883869, 1884201, 1884410, 1884489, 1884432, 1884235, 1883897, 1883416, 1882795, + 1882041, 1881161, 1880167, 1879073, 1877895, 1876648, 1875350, 1874019, 1872668, 1871313, 1869966, 1868638, 1867336, 1866068, + 1864839, 1863653, 1862511, 1861416, 1860367, 1859365, 1858408, 1857497, 1856629, 1855804, 1855020, 1854275, 1853568, 1852897, + 1852260, 1851657, 1851084, 1850542, 1850028, 1849541, 1849080, 1848643, 1883562, 1884344, 1885024, 1885597, 1886060, 1886407, + 1886634, 1886734, 1886703, 1886534, 1886227, 1885781, 1885198, 1884482, 1883643, 1882689, 1881635, 1880494, 1879283, 1878018, + 1876715, 1875390, 1874056, 1872726, 1871410, 1870118, 1868857, 1867632, 1866446, 1865304, 1864205, 1863152, 1862144, 1861180, + 1860261, 1859385, 1858551, 1857757, 1857003, 1856285, 1855604, 1854957, 1854342, 1853759, 1853206, 1852681, 1852184, 1851712, + 1851266, 1885669, 1886457, 1887145, 1887727, 1888202, 1888564, 1888809, 1888929, 1888921, 1888780, 1888504, 1888091, 1887543, + 1886865, 1886065, 1885150, 1884135, 1883032, 1881856, 1880623, 1879349, 1878049, 1876737, 1875425, 1874123, 1872842, 1871588, + 1870368, 1869184, 1868041, 1866940, 1865883, 1864870, 1863901, 1862974, 1862090, 1861248, 1860445, 1859681, 1858954, 1858262, + 1857605, 1856980, 1856387, 1855824, 1855289, 1854781, 1854299, 1853842, 1887748, 1888541, 1889235, 1889827, 1890313, 1890689, + 1890950, 1891090, 1891104, 1890989, 1890741, 1890360, 1889846, 1889205, 1888442, 1887565, 1886587, 1885521, 1884379, 1883179, + 1881934, 1880659, 1879369, 1878075, 1876789, 1875519, 1874273, 1873057, 1871877, 1870734, 1869632, 1868572, 1867554, 1866579, + 1865646, 1864754, 1863903, 1863092, 1862319, 1861582, 1860881, 1860214, 1859579, 1858976, 1858403, 1857858, 1857340, 1856848, + 1856381, 1889780, 1890578, 1891279, 1891879, 1892376, 1892765, 1893042, 1893201, 1893237, 1893146, 1892926, 1892575, 1892095, + 1891488, 1890761, 1889922, 1888980, 1887950, 1886843, 1885674, 1884458, 1883210, 1881942, 1880667, 1879396, 1878138, 1876901, + 1875692, 1874515, 1873373, 1872271, 1871208, 1870186, 1869206, 1868267, 1867369, 1866510, 1865691, 1864909, 1864164, 1863453, + 1862777, 1862133, 1861520, 1860936, 1860382, 1859854, 1859352, 1858876, 1891766, 1892568, 1893276, 1893884, 1894391, 1894793, + 1895085, 1895262, 1895319, 1895252, 1895058, 1894737, 1894288, 1893715, 1893023, 1892220, 1891315, 1890319, 1889246, 1888110, + 1886923, 1885701, 1884456, 1883200, 1881946, 1880701, 1879474, 1878271, 1877099, 1875960, 1874857, 1873793, 1872768, 1871784, + 1870839, 1869935, 1869070, 1868242, 1867453, 1866699, 1865980, 1865294, 1864641, 1864019, 1863426, 1862862, 1862325, 1861814, + 1861328, 1893705, 1894512, 1895226, 1895842, 1896359, 1896773, 1897079, 1897273, 1897350, 1897306, 1897138, 1896845, 1896427, + 1895887, 1895230, 1894461, 1893592, 1892631, 1891591, 1890486, 1889329, 1888133, 1886912, 1885676, 1884438, 1883207, 1881991, + 1880796, 1879629, 1878493, 1877391, 1876327, 1875300, 1874312, 1873363, 1872453, 1871581, 1870747, 1869950, 1869188, 1868460, + 1867766, 1867104, 1866473, 1865872, 1865298, 1864752, 1864232, 1863737, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1 V (slice 4): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_4 and r_4). +pub const VSB_N4 : [4851]u32 = [ + 4294967295, 16776, 88354, 76027, 75367, 78596, 82487, 87154, 91980, 96753, 101394, 105874, 110185, 114327, + 118305, 122130, 125809, 129353, 132773, 136079, 139279, 142385, 145405, 148347, 151221, 154033, 156792, 159506, + 162181, 164824, 167441, 170040, 172625, 175203, 177780, 180362, 182953, 185562, 188194, 190858, 193565, 196329, + 199166, 202200, 205285, 208547, 212042, 215838, 220020, 224692, 64153, 113181, 104168, 104587, 108101, 112854, + 118002, 123290, 128493, 133529, 138369, 143004, 147437, 151675, 155730, 159611, 163332, 166902, 170335, 173641, + 176829, 179911, 182894, 185788, 188602, 191342, 194016, 196632, 199196, 201714, 204193, 206637, 209054, 211448, + 213825, 216190, 218548, 220906, 223270, 225648, 228049, 230486, 232975, 235613, 238295, 241120, 244138, 247410, + 251012, 111555, 143736, 137676, 139023, 143070, 148267, 153819, 159494, 165055, 170418, 175552, 180452, 185121, + 189571, 193812, 197858, 201721, 205416, 208954, 212348, 215607, 218744, 221767, 224685, 227507, 230242, 232895, + 235475, 237988, 240441, 242838, 245186, 247489, 249754, 251985, 254186, 256363, 258520, 260662, 262796, 264929, + 267068, 269225, 271413, 273705, 276030, 278462, 281043, 283824, 158979, 179274, 175577, 177647, 182109, 187649, + 193516, 199489, 205324, 210934, 216292, 221392, 226241, 230849, 235231, 239401, 243373, 247162, 250781, 254243, + 257559, 260741, 263798, 266739, 269574, 272311, 274957, 277518, 280003, 282415, 284763, 287049, 289281, 291462, + 293596, 295690, 297746, 299768, 301762, 303732, 305682, 307619, 309550, 311483, 313430, 315443, 317476, 319584, + 321799, 206426, 218722, 216761, 219352, 224118, 229908, 236115, 242289, 248294, 254019, 259538, 264783, 269760, + 274483, 278967, 283226, 287278, 291136, 294815, 298328, 301687, 304903, 307988, 310950, 313799, 316542, 319187, + 321742, 324212, 326604, 328923, 331174, 333363, 335493, 337570, 339597, 341578, 343517, 345417, 347283, 349118, + 350927, 352714, 354485, 356248, 358029, 359810, 361619, 363475, 253895, 260998, 260232, 263184, 268162, 274129, + 280504, 286831, 292976, 298869, 304459, 309806, 314875, 319679, 324235, 328559, 332667, 336575, 340297, 343848, + 347239, 350483, 353590, 356569, 359431, 362182, 364832, 367386, 369851, 372233, 374538, 376771, 378936, 381038, + 383082, 385070, 387007, 388897, 390741, 392545, 394311, 396042, 397743, 399417, 401068, 402703, 404329, 405970, + 407611, 301385, 305202, 305226, 308419, 313545, 319671, 326130, 332565, 338809, 344792, 350488, 355882, 361016, + 365878, 370486, 374856, 379006, 382935, 386689, 390267, 393683, 396949, 400074, 403068, 405942, 408703, 411359, + 413917, 416383, 418763, 421063, 423288, 425442, 427539, 429565, 431533, 433445, 435307, 437120, 438888, 440614, + 442301, 443951, 445568, 447155, 448717, 450256, 451785, 453303, 348895, 350669, 351201, 354556, 359785, 366002, + 372545, 379058, 385374, 391422, 397177, 402636, 407806, 412711, 417357, 421749, 425928, 429898, 433677, 437277, + 440713, 443995, 447134, 450142, 453026, 455796, 458458, 461021, 463490, 465871, 468170, 470392, 472542, 474624, + 476642, 478600, 480501, 482348, 484145, 485894, 487599, 489261, 490884, 492470, 494025, 495545, 497036, 498503, + 499951, 396425, 396944, 397799, 401263, 406566, 412850, 419456, 426028, 432399, 438496, 444296, 449796, 455002, + 459940, 464607, 469035, 473237, 477230, 481028, 484646, 488097, 491393, 494545, 497564, 500458, 503235, 505905, + 508473, 510946, 513331, 515632, 517855, 520005, 522085, 524100, 526053, 527949, 529789, 531578, 533317, 535010, + 536660, 538267, 539836, 541368, 542865, 544331, 545768, 547178, 443973, 443727, 444789, 448328, 453687, 460023, + 466679, 473298, 479712, 485849, 491684, 497217, 502452, 507413, 512108, 516558, 520780, 524791, 528605, 532238, + 535702, 539011, 542174, 545202, 548105, 550890, 553567, 556141, 558620, 561008, 563313, 565539, 567690, 569772, + 571787, 573740, 575633, 577472, 579257, 580992, 582680, 584323, 585923, 587483, 589005, 590491, 591942, 593362, + 594753, 491538, 490831, 492024, 495619, 501023, 507401, 514099, 520756, 527206, 533376, 539242, 544801, 550062, + 555045, 559761, 564230, 568469, 572495, 576324, 579970, 583446, 586765, 589938, 592976, 595886, 598680, 601363, + 603943, 606427, 608821, 611130, 613359, 615514, 617597, 619615, 621569, 623463, 625302, 627087, 628821, 630507, + 632148, 633745, 635302, 636819, 638299, 639744, 641155, 642536, 539116, 538134, 539415, 543052, 548493, 554908, + 561641, 568332, 574814, 581013, 586905, 592489, 597774, 602774, 607509, 611994, 616248, 620288, 624130, 627788, + 631275, 634604, 637786, 640832, 643751, 646551, 649241, 651827, 654317, 656716, 659029, 661263, 663421, 665508, + 667528, 669485, 671381, 673221, 675007, 676743, 678429, 680070, 681667, 683222, 684738, 686216, 687658, 689066, + 690442, 586702, 585562, 586904, 590575, 596048, 602496, 609261, 615982, 622492, 628717, 634633, 640239, 645543, + 650562, 655313, 659814, 664082, 668135, 671988, 675657, 679154, 682492, 685683, 688737, 691663, 694470, 697167, + 699759, 702254, 704658, 706976, 709214, 711376, 713467, 715490, 717450, 719349, 721192, 722980, 724717, 726405, + 728047, 729645, 731201, 732717, 734195, 735636, 737043, 738417, 634290, 633066, 634452, 638152, 643654, 650132, + 656925, 663674, 670210, 676459, 682397, 688022, 693345, 698381, 703147, 707662, 711943, 716008, 719872, 723550, + 727057, 730404, 733603, 736664, 739597, 742411, 745113, 747711, 750211, 752620, 754943, 757185, 759352, 761446, + 763473, 765436, 767338, 769183, 770974, 772714, 774404, 776048, 777647, 779205, 780722, 782200, 783643, 785050, + 786424, 681867, 680609, 682032, 685758, 691286, 697790, 704610, 711384, 717943, 724213, 730171, 735815, 741155, + 746206, 750986, 755513, 759806, 763882, 767756, 771444, 774959, 778314, 781520, 784588, 787528, 790348, 793055, + 795659, 798164, 800577, 802905, 805151, 807321, 809419, 811450, 813416, 815321, 817169, 818963, 820704, 822397, + 824043, 825644, 827204, 828722, 830202, 831646, 833054, 834429, 729836, 728403, 729745, 733430, 738947, 745459, + 752295, 759088, 765666, 771955, 777930, 783590, 788944, 794008, 798801, 803339, 807643, 811728, 815611, 819307, + 822829, 826191, 829404, 832479, 835424, 838249, 840962, 843570, 846080, 848498, 850829, 853079, 855253, 857354, + 859388, 861357, 863265, 865116, 866912, 868656, 870351, 871999, 873602, 875163, 876683, 878165, 879610, 881020, + 882396, 785031, 780434, 779740, 782242, 787138, 793352, 800057, 806801, 813366, 819657, 825641, 831312, 836677, + 841751, 846553, 851101, 855413, 859505, 863396, 867098, 870627, 873995, 877213, 880293, 883243, 886072, 888789, + 891401, 893914, 896336, 898670, 900923, 903100, 905204, 907240, 909212, 911122, 912975, 914774, 916520, 918216, + 919866, 921471, 923034, 924556, 926039, 927486, 928897, 930274, 846358, 836565, 832304, 832559, 836148, 841650, + 847989, 854553, 861035, 867291, 873263, 878932, 884299, 889379, 894186, 898739, 903056, 907153, 911048, 914755, + 918287, 921659, 924881, 927963, 930916, 933748, 936468, 939083, 941598, 944022, 946359, 948614, 950792, 952898, + 954936, 956909, 958821, 960676, 962475, 964223, 965921, 967572, 969178, 970742, 972265, 973749, 975196, 976608, + 977987, 909405, 894515, 886471, 884113, 886007, 890463, 896185, 902396, 908681, 914830, 920745, 926383, 931735, + 936806, 941610, 946161, 950477, 954574, 958469, 962176, 965709, 969081, 972303, 975385, 978339, 981171, 983891, + 986506, 989022, 991446, 993783, 996038, 998217, 1000323, 1002361, 1004335, 1006247, 1008102, 1009902, 1011649, 1013348, + 1014999, 1016605, 1018169, 1019692, 1021176, 1022624, 1024036, 1025414, 971731, 952676, 941284, 936410, 936509, 939738, + 944647, 950334, 956288, 962230, 968014, 973571, 978872, 983910, 988691, 993226, 997530, 1001618, 1005505, 1009205, + 1012732, 1016099, 1019316, 1022395, 1025344, 1028173, 1030889, 1033501, 1036014, 1038435, 1040769, 1043022, 1045198, 1047302, + 1049338, 1051310, 1053220, 1055073, 1056871, 1058617, 1060313, 1061963, 1063568, 1065130, 1066652, 1068135, 1069581, 1070992, + 1072369, 1032316, 1010149, 996007, 988899, 987277, 989229, 993215, 998248, 1003745, 1009371, 1014938, 1020344, 1025540, + 1030502, 1035228, 1039722, 1043994, 1048056, 1051922, 1055604, 1059115, 1062468, 1065672, 1068739, 1071677, 1074496, 1077203, + 1079805, 1082310, 1084723, 1087050, 1089296, 1091466, 1093563, 1095593, 1097559, 1099464, 1101312, 1103105, 1104846, 1106538, + 1108183, 1109784, 1111343, 1112861, 1114340, 1115782, 1117190, 1118563, 1090702, 1066411, 1050099, 1041070, 1037863, 1038559, + 1041573, 1045866, 1050806, 1056015, 1061273, 1066448, 1071470, 1076302, 1080927, 1085341, 1089550, 1093560, 1097381, 1101026, + 1104505, 1107828, 1111006, 1114049, 1116965, 1119764, 1122452, 1125037, 1127526, 1129923, 1132235, 1134467, 1136624, 1138709, + 1140727, 1142682, 1144576, 1146414, 1148197, 1149929, 1151612, 1153249, 1154841, 1156392, 1157902, 1159374, 1160810, 1162210, + 1163577, 1146534, 1121046, 1103091, 1092429, 1087777, 1087260, 1089282, 1092775, 1097077, 1101782, 1106641, 1111502, 1116275, + 1120908, 1125373, 1129658, 1133759, 1137679, 1141425, 1145003, 1148424, 1151695, 1154827, 1157828, 1160706, 1163469, 1166125, + 1168679, 1171139, 1173509, 1175796, 1178005, 1180138, 1182202, 1184200, 1186135, 1188011, 1189830, 1191597, 1193312, 1194980, + 1196602, 1198180, 1199717, 1201214, 1202673, 1204097, 1205485, 1206841, 1199408, 1173621, 1154519, 1142475, 1136496, 1134804, + 1135820, 1138465, 1142060, 1146178, 1150553, 1155015, 1159459, 1163819, 1168057, 1172150, 1176090, 1179872, 1183497, 1186971, + 1190299, 1193489, 1196546, 1199480, 1202296, 1205003, 1207606, 1210111, 1212525, 1214853, 1217099, 1219269, 1221367, 1223396, + 1225362, 1227266, 1229112, 1230903, 1232643, 1234333, 1235976, 1237574, 1239129, 1240644, 1242121, 1243560, 1244963, 1246333, + 1247671, 1248859, 1223636, 1203881, 1190689, 1183482, 1180645, 1180638, 1182391, 1185215, 1188672, 1192482, 1196464, 1200498, + 1204508, 1208446, 1212282, 1215999, 1219586, 1223041, 1226364, 1229558, 1232627, 1235576, 1238410, 1241135, 1243758, 1246283, + 1248716, 1251062, 1253327, 1255513, 1257627, 1259672, 1261651, 1263568, 1265426, 1267229, 1268979, 1270679, 1272330, 1273937, + 1275500, 1277022, 1278505, 1279950, 1281359, 1282734, 1284076, 1285387, 1294469, 1270580, 1250680, 1236584, 1228247, 1224290, + 1223252, 1224078, 1226079, 1228813, 1231989, 1235417, 1238969, 1242558, 1246128, 1249641, 1253073, 1256409, 1259641, 1262765, + 1265779, 1268685, 1271486, 1274186, 1276787, 1279295, 1281714, 1284049, 1286303, 1288480, 1290585, 1292622, 1294594, 1296504, + 1298355, 1300151, 1301894, 1303587, 1305232, 1306832, 1308388, 1309903, 1311379, 1312817, 1314219, 1315587, 1316922, 1318226, + 1319500, 1335992, 1314024, 1294492, 1279766, 1270415, 1265385, 1263325, 1263210, 1264359, 1266329, 1268825, 1271647, 1274661, + 1277773, 1280919, 1284055, 1287150, 1290185, 1293147, 1296026, 1298819, 1301525, 1304142, 1306673, 1309119, 1311483, 1313768, + 1315977, 1318114, 1320182, 1322184, 1324123, 1326002, 1327824, 1329592, 1331309, 1332976, 1334596, 1336172, 1337705, 1339198, + 1340652, 1342068, 1343450, 1344797, 1346112, 1347396, 1348651, 1349877, 1373422, 1353714, 1335025, 1319983, 1309774, 1303747, + 1300703, 1299666, 1299967, 1301164, 1302960, 1305152, 1307598, 1310200, 1312887, 1315611, 1318334, 1321033, 1323689, 1326291, + 1328832, 1331306, 1333711, 1336046, 1338311, 1340507, 1342636, 1344699, 1346699, 1348638, 1350518, 1352342, 1354112, 1355831, + 1357500, 1359122, 1360700, 1362235, 1363728, 1365182, 1366599, 1367980, 1369327, 1370641, 1371923, 1373175, 1374399, 1375595, + 1376764, 1406984, 1389627, 1372166, 1357145, 1346272, 1339358, 1335400, 1333489, 1332975, 1333421, 1334529, 1336094, 1337971, + 1340055, 1342273, 1344569, 1346904, 1349249, 1351583, 1353890, 1356160, 1358385, 1360561, 1362683, 1364751, 1366763, 1368721, + 1370623, 1372472, 1374269, 1376015, 1377712, 1379362, 1380966, 1382527, 1384045, 1385524, 1386963, 1388366, 1389732, 1391065, + 1392365, 1393634, 1394873, 1396082, 1397264, 1398420, 1399550, 1400656, 1437039, 1421937, 1405954, 1391286, 1379975, 1372309, + 1367533, 1364819, 1363548, 1363288, 1363745, 1364711, 1366038, 1367619, 1369376, 1371250, 1373199, 1375190, 1377199, 1379207, + 1381201, 1383172, 1385112, 1387015, 1388879, 1390702, 1392481, 1394217, 1395909, 1397558, 1399164, 1400729, 1402253, 1403738, + 1405184, 1406594, 1407968, 1409308, 1410615, 1411889, 1413134, 1414349, 1415535, 1416695, 1417828, 1418936, 1420020, 1421080, + 1422119, 1464015, 1450962, 1436566, 1422541, 1411031, 1402768, 1397280, 1393849, 1391890, 1390985, 1390840, 1391248, 1392059, + 1393166, 1394485, 1395956, 1397534, 1399183, 1400876, 1402592, 1404316, 1406037, 1407744, 1409431, 1411093, 1412726, 1414329, + 1415898, 1417433, 1418934, 1420401, 1421833, 1423231, 1424596, 1425928, 1427229, 1428498, 1429738, 1430948, 1432131, 1433286, + 1434415, 1435519, 1436598, 1437654, 1438688, 1439699, 1440689, 1441660, 1488321, 1477067, 1464250, 1451086, 1439615, 1430920, + 1424835, 1420777, 1418205, 1416718, 1416027, 1415926, 1416264, 1416931, 1417844, 1418939, 1420169, 1421495, 1422889, 1424328, + 1425794, 1427275, 1428759, 1430238, 1431705, 1433156, 1434587, 1435995, 1437379, 1438737, 1440067, 1441371, 1442646, 1443895, + 1445116, 1446310, 1447478, 1448620, 1449737, 1450829, 1451898, 1452943, 1453966, 1454968, 1455948, 1456909, 1457849, 1458771, + 1459675, 1510340, 1500633, 1489306, 1477140, 1465923, 1456963, 1450398, 1445800, 1442689, 1440684, 1439503, 1438942, 1438851, + 1439117, 1439657, 1440406, 1441313, 1442339, 1443454, 1444634, 1445859, 1447114, 1448388, 1449670, 1450953, 1452231, 1453499, + 1454755, 1455994, 1457215, 1458416, 1459597, 1460756, 1461894, 1463009, 1464102, 1465173, 1466222, 1467250, 1468257, 1469243, + 1470209, 1471155, 1472082, 1472991, 1473882, 1474755, 1475611, 1476451, 1530387, 1521999, 1512029, 1500922, 1490139, 1481078, + 1474149, 1469097, 1465518, 1463054, 1461437, 1460463, 1459984, 1459888, 1460089, 1460520, 1461132, 1461882, 1462740, 1463680, + 1464680, 1465726, 1466803, 1467901, 1469012, 1470128, 1471244, 1472356, 1473459, 1474552, 1475632, 1476698, 1477747, 1478780, + 1479796, 1480794, 1481774, 1482736, 1483680, 1484606, 1485515, 1486406, 1487281, 1488138, 1488980, 1489805, 1490615, 1491410, + 1492191, 1548742, 1541473, 1532712, 1522661, 1512449, 1503439, 1496259, 1490837, 1486854, 1483988, 1481982, 1480639, 1479811, + 1479387, 1479280, 1479423, 1479764, 1480262, 1480883, 1481601, 1482394, 1483246, 1484141, 1485068, 1486018, 1486983, 1487957, + 1488934, 1489911, 1490884, 1491851, 1492809, 1493756, 1494692, 1495615, 1496524, 1497419, 1498300, 1499166, 1500018, 1500854, + 1501676, 1502484, 1503276, 1504055, 1504820, 1505572, 1506310, 1507035, 1565635, 1559315, 1551615, 1542575, 1533022, 1524199, + 1516879, 1511166, 1506840, 1503623, 1501272, 1499599, 1498458, 1497737, 1497350, 1497230, 1497325, 1497591, 1497995, 1498509, + 1499111, 1499782, 1500509, 1501277, 1502078, 1502903, 1503744, 1504597, 1505456, 1506318, 1507178, 1508036, 1508888, 1509733, + 1510569, 1511396, 1512213, 1513018, 1513812, 1514594, 1515364, 1516121, 1516867, 1517600, 1518321, 1519030, 1519727, 1520412, + 1521087, 1581253, 1575741, 1568968, 1560867, 1552018, 1543493, 1536138, 1530213, 1525603, 1522080, 1519425, 1517456, 1516033, + 1515043, 1514403, 1514044, 1513913, 1513967, 1514171, 1514497, 1514922, 1515428, 1515998, 1516620, 1517282, 1517976, 1518694, + 1519431, 1520180, 1520937, 1521699, 1522463, 1523227, 1523987, 1524743, 1525493, 1526236, 1526971, 1527698, 1528416, 1529124, + 1529822, 1530510, 1531187, 1531855, 1532512, 1533160, 1533797, 1534424, 1595757, 1590936, 1584967, 1577724, 1569588, 1561448, + 1554154, 1548091, 1543253, 1539468, 1536545, 1534312, 1532634, 1531402, 1530531, 1529954, 1529616, 1529475, 1529495, 1529648, + 1529910, 1530261, 1530686, 1531171, 1531704, 1532277, 1532880, 1533508, 1534154, 1534814, 1535485, 1536161, 1536841, 1537523, + 1538204, 1538882, 1539557, 1540227, 1540891, 1541549, 1542199, 1542842, 1543477, 1544104, 1544722, 1545331, 1545932, 1546525, + 1547109, 1609275, 1605047, 1599777, 1593307, 1585869, 1578173, 1571025, 1564897, 1559883, 1555879, 1552721, 1550253, 1548346, + 1546894, 1545813, 1545035, 1544508, 1544188, 1544038, 1544031, 1544142, 1544350, 1544640, 1544998, 1545411, 1545870, 1546366, + 1546892, 1547442, 1548011, 1548595, 1549190, 1549792, 1550400, 1551010, 1551622, 1552233, 1552842, 1553447, 1554049, 1554646, + 1555237, 1555823, 1556402, 1556974, 1557540, 1558098, 1558649, 1559193, 1621920, 1618205, 1613543, 1607764, 1600991, 1593775, + 1586843, 1580717, 1575582, 1571397, 1568035, 1565359, 1563245, 1561593, 1560320, 1559360, 1558658, 1558172, 1557866, 1557710, + 1557680, 1557756, 1557921, 1558159, 1558460, 1558812, 1559207, 1559638, 1560098, 1560582, 1561084, 1561602, 1562132, 1562670, + 1563214, 1563763, 1564313, 1564865, 1565416, 1565965, 1566512, 1567055, 1567594, 1568129, 1568658, 1569183, 1569701, 1570214, + 1570721, 1633794, 1630523, 1626392, 1621227, 1615076, 1608353, 1601693, 1595632, 1590425, 1586097, 1582561, 1579700, 1577402, + 1575568, 1574120, 1572991, 1572129, 1571490, 1571038, 1570744, 1570583, 1570534, 1570581, 1570708, 1570903, 1571155, 1571456, + 1571797, 1572172, 1572575, 1573001, 1573446, 1573906, 1574379, 1574861, 1575350, 1575844, 1576341, 1576840, 1577340, 1577840, + 1578338, 1578833, 1579326, 1579816, 1580301, 1580783, 1581260, 1581732, 1644964, 1642083, 1638416, 1633796, 1628220, 1621990, + 1615642, 1609699, 1604469, 1600036, 1596356, 1593334, 1590869, 1588871, 1587262, 1585979, 1584969, 1584188, 1583601, 1583178, + 1582895, 1582731, 1582667, 1582689, 1582785, 1582943, 1583154, 1583411, 1583705, 1584032, 1584386, 1584762, 1585157, 1585567, + 1585990, 1586423, 1586863, 1587309, 1587760, 1588213, 1588668, 1589123, 1589578, 1590031, 1590483, 1590932, 1591379, 1591822, + 1592262, 1655505, 1652965, 1649707, 1645571, 1640521, 1634769, 1628760, 1622983, 1617774, 1613273, 1609476, 1606315, 1603703, + 1601556, 1599801, 1598375, 1597227, 1596315, 1595603, 1595060, 1594663, 1594389, 1594222, 1594146, 1594148, 1594218, 1594344, + 1594521, 1594739, 1594993, 1595278, 1595589, 1595922, 1596273, 1596640, 1597019, 1597408, 1597806, 1598210, 1598618, 1599031, + 1599445, 1599861, 1600277, 1600693, 1601108, 1601522, 1601933, 1602342, 1665479, 1663240, 1660342, 1656636, 1652064, 1646770, + 1641114, 1635538, 1630392, 1625858, 1621972, 1618693, 1615951, 1613670, 1611781, 1610224, 1608950, 1607915, 1607085, 1606430, + 1605926, 1605550, 1605285, 1605116, 1605030, 1605015, 1605062, 1605162, 1605308, 1605494, 1605713, 1605962, 1606236, 1606531, + 1606843, 1607171, 1607512, 1607863, 1608222, 1608589, 1608960, 1609336, 1609715, 1610096, 1610477, 1610860, 1611242, 1611623, + 1612003, 1674940, 1672966, 1670387, 1667063, 1662924, 1658062, 1652763, 1647416, 1642370, 1637835, 1633886, 1630511, 1627655, + 1625254, 1623243, 1621566, 1620174, 1619025, 1618086, 1617326, 1616720, 1616248, 1615892, 1615635, 1615465, 1615371, 1615341, + 1615369, 1615446, 1615566, 1615723, 1615912, 1616129, 1616370, 1616632, 1616910, 1617204, 1617511, 1617828, 1618153, 1618486, + 1618825, 1619168, 1619515, 1619864, 1620215, 1620567, 1620919, 1621271, 1683922, 1682185, 1679889, 1676907, 1673160, 1668701, + 1663755, 1658657, 1653741, 1649237, 1645252, 1641801, 1638849, 1636340, 1634219, 1632432, 1630931, 1629677, 1628635, 1627777, + 1627077, 1626514, 1626070, 1625731, 1625482, 1625311, 1625210, 1625169, 1625180, 1625237, 1625335, 1625467, 1625630, 1625819, + 1626031, 1626263, 1626512, 1626775, 1627051, 1627338, 1627633, 1627936, 1628245, 1628559, 1628877, 1629198, 1629521, 1629846, + 1630172, 1692472, 1690948, 1688905, 1686227, 1682834, 1678750, 1674146, 1669309, 1664548, 1660104, 1656108, 1652601, 1649568, + 1646966, 1644745, 1642856, 1641255, 1639903, 1638766, 1637815, 1637025, 1636377, 1635851, 1635433, 1635108, 1634866, 1634696, + 1634589, 1634538, 1634535, 1634575, 1634653, 1634764, 1634903, 1635068, 1635254, 1635460, 1635682, 1635919, 1636168, 1636427, + 1636696, 1636972, 1637254, 1637542, 1637834, 1638129, 1638427, 1638727, 1700622, 1699288, 1697471, 1695066, 1691993, 1688255, + 1683980, 1679409, 1674823, 1670463, 1666480, 1662937, 1659839, 1657156, 1654847, 1652866, 1651173, 1649729, 1648502, 1647465, + 1646592, 1645862, 1645259, 1644766, 1644370, 1644059, 1643823, 1643654, 1643542, 1643482, 1643468, 1643493, 1643553, 1643645, + 1643764, 1643907, 1644071, 1644254, 1644452, 1644665, 1644889, 1645125, 1645369, 1645621, 1645879, 1646143, 1646412, 1646684, + 1646959, 1708407, 1707244, 1705630, 1703471, 1700687, 1697267, 1693305, 1689000, 1684603, 1680348, 1676399, 1672840, 1669693, + 1666942, 1664554, 1662490, 1660711, 1659183, 1657872, 1656753, 1655801, 1654996, 1654318, 1653755, 1653290, 1652914, 1652616, + 1652386, 1652217, 1652102, 1652034, 1652009, 1652022, 1652067, 1652142, 1652243, 1652367, 1652511, 1652672, 1652850, 1653041, + 1653244, 1653457, 1653679, 1653909, 1654146, 1654389, 1654636, 1654887, 1715855, 1714846, 1713415, 1711477, 1708955, 1705826, + 1702159, 1698116, 1693918, 1689786, 1685891, 1682334, 1679152, 1676345, 1673889, 1671750, 1669894, 1668286, 1666898, 1665703, + 1664676, 1663798, 1663051, 1662420, 1661891, 1661452, 1661093, 1660806, 1660582, 1660414, 1660296, 1660222, 1660188, 1660189, + 1660221, 1660281, 1660366, 1660472, 1660598, 1660742, 1660900, 1661071, 1661255, 1661448, 1661651, 1661861, 1662078, 1662301, + 1662529, 1722975, 1722107, 1720843, 1719104, 1716820, 1713959, 1710569, 1706781, 1702786, 1698792, 1694969, 1691431, 1688231, + 1685381, 1682867, 1680661, 1678734, 1677055, 1675594, 1674327, 1673231, 1672285, 1671472, 1670776, 1670185, 1669687, 1669272, + 1668929, 1668652, 1668433, 1668267, 1668146, 1668067, 1668025, 1668017, 1668037, 1668084, 1668155, 1668246, 1668356, 1668482, + 1668624, 1668778, 1668943, 1669119, 1669304, 1669496, 1669695, 1669901, 1729811, 1729069, 1727956, 1726398, 1724329, 1721713, + 1718582, 1715039, 1711250, 1707403, 1703668, 1700164, 1696959, 1694078, 1691515, 1689252, 1687261, 1685515, 1683987, 1682653, + 1681490, 1680480, 1679604, 1678848, 1678198, 1677643, 1677172, 1676777, 1676449, 1676181, 1675968, 1675802, 1675680, 1675596, + 1675548, 1675530, 1675541, 1675576, 1675634, 1675711, 1675807, 1675918, 1676044, 1676182, 1676332, 1676491, 1676660, 1676836, + 1677019, 1736377, 1735752, 1734774, 1733381, 1731507, 1729117, 1726226, 1722917, 1719332, 1715640, 1712004, 1708549, 1705354, + 1702453, 1699851, 1697537, 1695489, 1693682, 1692092, 1690696, 1689471, 1688399, 1687464, 1686649, 1685943, 1685334, 1684810, + 1684364, 1683988, 1683673, 1683414, 1683205, 1683040, 1682917, 1682829, 1682775, 1682749, 1682751, 1682775, 1682822, 1682887, + 1682969, 1683067, 1683179, 1683303, 1683438, 1683582, 1683736, 1683897, 1742682, 1742162, 1741309, 1740066, 1738371, 1736186, + 1733519, 1730434, 1727049, 1723516, 1719991, 1716598, 1713424, 1710515, 1707884, 1705528, 1703430, 1701568, 1699921, 1698466, + 1697183, 1696054, 1695062, 1694193, 1693433, 1692771, 1692198, 1691703, 1691279, 1690919, 1690616, 1690365, 1690161, 1689998, + 1689873, 1689783, 1689723, 1689691, 1689684, 1689699, 1689735, 1689789, 1689860, 1689946, 1690045, 1690156, 1690277, 1690409, + 1690548, 1748748, 1748325, 1747587, 1746479, 1744947, 1742952, 1740493, 1737618, 1734428, 1731058, 1727650, 1724330, 1721190, + 1718283, 1715633, 1713243, 1711101, 1709190, 1707490, 1705981, 1704643, 1703460, 1702415, 1701493, 1700682, 1699971, 1699349, + 1698808, 1698339, 1697935, 1697590, 1697298, 1697055, 1696854, 1696693, 1696568, 1696474, 1696410, 1696372, 1696358, 1696365, + 1696391, 1696436, 1696496, 1696570, 1696658, 1696757, 1696866, 1696985, 1754582, 1754247, 1753614, 1752631, 1751249, 1749428, + 1747161, 1744486, 1741485, 1738276, 1734992, 1731755, 1728659, 1725765, 1723106, 1720689, 1718510, 1716556, 1714808, 1713249, + 1711861, 1710627, 1709531, 1708560, 1707701, 1706942, 1706274, 1705688, 1705176, 1704730, 1704345, 1704014, 1703732, 1703496, + 1703300, 1703140, 1703014, 1702918, 1702850, 1702807, 1702786, 1702786, 1702804, 1702840, 1702890, 1702955, 1703031, 1703120, + 1703218, 1760215, 1759962, 1759424, 1758556, 1757310, 1755648, 1753560, 1751072, 1748252, 1745203, 1742047, 1738900, 1735857, + 1732986, 1730325, 1727889, 1725680, 1723687, 1721896, 1720291, 1718856, 1717574, 1716431, 1715412, 1714507, 1713703, 1712990, + 1712361, 1711807, 1711321, 1710896, 1710527, 1710209, 1709937, 1709707, 1709514, 1709356, 1709230, 1709132, 1709061, 1709012, + 1708986, 1708979, 1708990, 1709017, 1709059, 1709114, 1709181, 1709260, 1765642, 1765464, 1765015, 1764252, 1763132, 1761617, + 1759695, 1757382, 1754736, 1751845, 1748818, 1745767, 1742786, 1739946, 1737292, 1734846, 1732612, 1730586, 1728757, 1727111, + 1725632, 1724305, 1723117, 1722054, 1721104, 1720257, 1719502, 1718832, 1718238, 1717713, 1717250, 1716845, 1716491, 1716185, + 1715921, 1715697, 1715508, 1715352, 1715226, 1715126, 1715051, 1714999, 1714967, 1714954, 1714958, 1714978, 1715012, 1715059, + 1715117, 1770887, 1770779, 1770410, 1769744, 1768739, 1767361, 1765591, 1763443, 1760962, 1758224, 1755328, 1752377, 1749465, + 1746665, 1744026, 1741575, 1739324, 1737270, 1735408, 1733723, 1732204, 1730835, 1729605, 1728499, 1727508, 1726619, 1725824, + 1725114, 1724481, 1723918, 1723419, 1722979, 1722591, 1722251, 1721955, 1721700, 1721481, 1721296, 1721141, 1721015, 1720914, + 1720836, 1720780, 1720744, 1720726, 1720724, 1720736, 1720763, 1720802, 1775953, 1775909, 1775616, 1775039, 1774140, 1772887, + 1771260, 1769266, 1766941, 1764352, 1761586, 1758739, 1755902, 1753148, 1750531, 1748083, 1745820, 1743745, 1741853, 1740134, + 1738578, 1737171, 1735900, 1734755, 1733724, 1732796, 1731962, 1731214, 1730544, 1729945, 1729411, 1728936, 1728515, 1728143, + 1727816, 1727530, 1727282, 1727069, 1726887, 1726734, 1726608, 1726506, 1726426, 1726366, 1726326, 1726302, 1726295, 1726302, + 1726322, 1780854, 1780869, 1780645, 1780151, 1779350, 1778212, 1776717, 1774867, 1772691, 1770246, 1767608, 1764867, 1762109, + 1759408, 1756820, 1754381, 1752112, 1750020, 1748103, 1746355, 1744765, 1743322, 1742015, 1740832, 1739763, 1738797, 1737926, + 1737142, 1736436, 1735802, 1735234, 1734726, 1734273, 1733869, 1733512, 1733197, 1732921, 1732680, 1732471, 1732292, 1732141, + 1732015, 1731912, 1731830, 1731768, 1731724, 1731696, 1731683, 1731684, 1785592, 1785662, 1785502, 1785084, 1784375, 1783344, + 1781971, 1780256, 1778221, 1775913, 1773402, 1770768, 1768093, 1765450, 1762897, 1760474, 1758205, 1756102, 1754164, 1752390, + 1750770, 1749294, 1747952, 1746734, 1745629, 1744629, 1743722, 1742903, 1742163, 1741496, 1740895, 1740355, 1739870, 1739437, + 1739050, 1738707, 1738403, 1738135, 1737900, 1737696, 1737521, 1737371, 1737245, 1737142, 1737058, 1736993, 1736945, 1736914, + 1736896, 1790191, 1790311, 1790211, 1789864, 1789238, 1788306, 1787047, 1785458, 1783556, 1781380, 1778991, 1776464, 1773874, + 1771294, 1768782, 1766380, 1764116, 1762005, 1760052, 1758255, 1756608, 1755102, 1753728, 1752477, 1751338, 1750303, 1749364, + 1748511, 1747738, 1747038, 1746405, 1745834, 1745319, 1744857, 1744441, 1744070, 1743739, 1743445, 1743185, 1742956, 1742757, + 1742584, 1742436, 1742311, 1742206, 1742121, 1742054, 1742003, 1741967, 1794631, 1794799, 1794755, 1794473, 1793926, 1793086, + 1791933, 1790462, 1788685, 1786636, 1784368, 1781947, 1779445, 1776931, 1774464, 1772089, 1769836, 1767724, 1765759, 1763943, + 1762272, 1760740, 1759337, 1758055, 1756885, 1755818, 1754846, 1753962, 1753157, 1752427, 1751764, 1751163, 1750619, 1750128, + 1749685, 1749286, 1748929, 1748610, 1748325, 1748073, 1747850, 1747655, 1747485, 1747339, 1747214, 1747109, 1747022, 1746953, + 1746900, 1798948, 1799160, 1799167, 1798946, 1798472, 1797717, 1796663, 1795302, 1793643, 1791714, 1789562, 1787245, 1784832, + 1782388, 1779970, 1777627, 1775389, 1773279, 1771307, 1769476, 1767784, 1766227, 1764798, 1763487, 1762287, 1761190, 1760188, + 1759273, 1758438, 1757677, 1756985, 1756355, 1755783, 1755264, 1754795, 1754370, 1753987, 1753643, 1753334, 1753058, 1752813, + 1752596, 1752404, 1752237, 1752092, 1751968, 1751863, 1751775, 1751704, 1803133, 1803386, 1803440, 1803277, 1802869, 1802194, + 1801232, 1799974, 1798427, 1796613, 1794572, 1792358, 1790034, 1787661, 1785298, 1782989, 1780772, 1778668, 1776693, 1774851, + 1773142, 1771564, 1770109, 1768772, 1767545, 1766419, 1765388, 1764444, 1763580, 1762791, 1762070, 1761413, 1760813, 1760268, + 1759772, 1759322, 1758914, 1758546, 1758214, 1757915, 1757648, 1757409, 1757196, 1757009, 1756844, 1756701, 1756577, 1756472, + 1756383, 1807186, 1807477, 1807577, 1807466, 1807122, 1806521, 1805645, 1804484, 1803042, 1801337, 1799404, 1797292, 1795056, + 1792757, 1790450, 1788181, 1785988, 1783896, 1781921, 1780071, 1778349, 1776752, 1775276, 1773914, 1772661, 1771509, 1770450, + 1769479, 1768588, 1767771, 1767023, 1766339, 1765714, 1765142, 1764621, 1764147, 1763715, 1763323, 1762968, 1762647, 1762358, + 1762098, 1761866, 1761658, 1761474, 1761312, 1761170, 1761047, 1760942, 1811133, 1811460, 1811601, 1811540, 1811254, 1810722, + 1809926, 1808856, 1807512, 1805911, 1804082, 1802067, 1799920, 1797695, 1795446, 1793220, 1791055, 1788978, 1787007, 1785153, + 1783419, 1781806, 1780311, 1778927, 1777650, 1776473, 1775388, 1774390, 1773473, 1772630, 1771856, 1771146, 1770495, 1769899, + 1769353, 1768855, 1768400, 1767985, 1767608, 1767265, 1766954, 1766674, 1766421, 1766194, 1765992, 1765811, 1765651, 1765511, + 1765389, 1814963, 1815323, 1815504, 1815489, 1815257, 1814790, 1814069, 1813084, 1811834, 1810331, 1808601, 1806682, 1804621, + 1802471, 1800283, 1798103, 1795969, 1793911, 1791948, 1790093, 1788351, 1786725, 1785212, 1783809, 1782510, 1781309, 1780200, + 1779178, 1778235, 1777367, 1776568, 1775833, 1775158, 1774538, 1773968, 1773446, 1772969, 1772532, 1772132, 1771769, 1771438, + 1771137, 1770865, 1770619, 1770397, 1770199, 1770022, 1769864, 1769725, 1818690, 1819081, 1819299, 1819326, 1819146, 1818739, + 1818089, 1817183, 1816021, 1814611, 1812976, 1811149, 1809174, 1807099, 1804973, 1802841, 1800742, 1798705, 1796753, 1794900, + 1793154, 1791517, 1789990, 1788568, 1787249, 1786026, 1784895, 1783849, 1782882, 1781990, 1781167, 1780409, 1779709, 1779066, + 1778473, 1777929, 1777429, 1776970, 1776550, 1776165, 1775814, 1775494, 1775202, 1774938, 1774698, 1774482, 1774287, 1774113, + 1773958, 1822316, 1822736, 1822987, 1823055, 1822923, 1822572, 1821987, 1821157, 1820077, 1818756, 1817211, 1815474, 1813583, + 1811582, 1809519, 1807437, 1805375, 1803364, 1801426, 1799578, 1797830, 1796185, 1794645, 1793208, 1791870, 1790628, 1789475, + 1788407, 1787418, 1786502, 1785656, 1784875, 1784153, 1783486, 1782872, 1782305, 1781784, 1781304, 1780863, 1780458, 1780087, + 1779748, 1779438, 1779155, 1778897, 1778664, 1778452, 1778262, 1778091, 1825840, 1826287, 1826571, 1826677, 1826589, 1826292, + 1825768, 1825008, 1824006, 1822769, 1821311, 1819660, 1817851, 1815925, 1813925, 1811895, 1809873, 1807889, 1805969, 1804129, + 1802381, 1800731, 1799181, 1797730, 1796376, 1795115, 1793943, 1792854, 1791843, 1790906, 1790038, 1789234, 1788491, 1787802, + 1787166, 1786579, 1786037, 1785536, 1785075, 1784651, 1784261, 1783902, 1783574, 1783273, 1782998, 1782748, 1782520, 1782313, + 1782126, 1829278, 1829750, 1830063, 1830205, 1830159, 1829911, 1829446, 1828751, 1827823, 1826665, 1825290, 1823722, 1821992, + 1820139, 1818203, 1816226, 1814245, 1812292, 1810392, 1808563, 1806818, 1805165, 1803607, 1802145, 1800776, 1799498, 1798307, + 1797198, 1796168, 1795210, 1794321, 1793496, 1792731, 1792022, 1791365, 1790757, 1790194, 1789674, 1789193, 1788750, 1788341, + 1787964, 1787617, 1787299, 1787007, 1786740, 1786496, 1786273, 1786071, 1832616, 1833112, 1833454, 1833628, 1833623, 1833421, + 1833010, 1832378, 1831520, 1830437, 1829142, 1827653, 1826001, 1824220, 1822348, 1820425, 1818487, 1816567, 1814689, 1812874, + 1811135, 1809482, 1807918, 1806446, 1805065, 1803772, 1802564, 1801437, 1800387, 1799410, 1798501, 1797656, 1796871, 1796141, + 1795464, 1794836, 1794254, 1793715, 1793215, 1792753, 1792326, 1791931, 1791567, 1791232, 1790923, 1790640, 1790380, 1790142, + 1789924, 1835869, 1836387, 1836755, 1836961, 1836993, 1836836, 1836476, 1835902, 1835109, 1834098, 1832878, 1831467, 1829890, + 1828179, 1826371, 1824503, 1822610, 1820724, 1818871, 1817072, 1815342, 1813690, 1812123, 1810643, 1809251, 1807945, 1806722, + 1805578, 1804510, 1803515, 1802587, 1801722, 1800917, 1800169, 1799473, 1798825, 1798224, 1797666, 1797148, 1796668, 1796223, + 1795811, 1795430, 1795078, 1794753, 1794453, 1794177, 1793924, 1793692, 1839051, 1839590, 1839983, 1840218, 1840284, 1840168, + 1839856, 1839338, 1838607, 1837663, 1836515, 1835177, 1833672, 1832031, 1830286, 1828472, 1826625, 1824775, 1822949, 1821168, + 1819448, 1817800, 1816232, 1814746, 1813345, 1812026, 1810789, 1809630, 1808545, 1807532, 1806586, 1805703, 1804879, 1804112, + 1803397, 1802731, 1802111, 1801535, 1800999, 1800501, 1800038, 1799609, 1799211, 1798843, 1798502, 1798186, 1797895, 1797627, + 1797380, 1842135, 1842694, 1843110, 1843374, 1843473, 1843396, 1843129, 1842663, 1841991, 1841112, 1840033, 1838766, 1837332, + 1835758, 1834075, 1832317, 1830517, 1828705, 1826907, 1825147, 1823440, 1821798, 1820231, 1818741, 1817333, 1816004, 1814754, + 1813581, 1812481, 1811452, 1810488, 1809588, 1808747, 1807962, 1807229, 1806545, 1805908, 1805314, 1804761, 1804245, 1803766, + 1803321, 1802906, 1802522, 1802165, 1801835, 1801529, 1801246, 1800985, 1845164, 1845742, 1846179, 1846468, 1846599, 1846558, + 1846334, 1845917, 1845300, 1844482, 1843467, 1842268, 1840901, 1839393, 1837772, 1836068, 1834315, 1832542, 1830775, 1829036, + 1827344, 1825710, 1824145, 1822654, 1821239, 1819901, 1818640, 1817454, 1816340, 1815294, 1814315, 1813398, 1812539, 1811737, + 1810987, 1810286, 1809631, 1809020, 1808449, 1807917, 1807422, 1806960, 1806529, 1806129, 1805757, 1805412, 1805091, 1804793, + 1804518, 1848110, 1848705, 1849164, 1849477, 1849636, 1849630, 1849446, 1849076, 1848512, 1847751, 1846799, 1845664, 1844364, + 1842919, 1841358, 1839710, 1838004, 1836271, 1834535, 1832821, 1831145, 1829521, 1827961, 1826469, 1825050, 1823705, 1822434, + 1821236, 1820109, 1819049, 1818055, 1817122, 1816247, 1815428, 1814661, 1813944, 1813272, 1812644, 1812058, 1811509, 1810998, + 1810520, 1810074, 1809659, 1809272, 1808911, 1808576, 1808265, 1807975, 1850989, 1851600, 1852078, 1852414, 1852601, 1852627, + 1852481, 1852155, 1851640, 1850935, 1850042, 1848969, 1847732, 1846349, 1844847, 1843253, 1841595, 1839902, 1838200, 1836511, + 1834853, 1833242, 1831687, 1830197, 1828776, 1827425, 1826146, 1824937, 1823798, 1822725, 1821716, 1820768, 1819878, 1819043, + 1818260, 1817526, 1816839, 1816195, 1815592, 1815028, 1814501, 1814008, 1813547, 1813116, 1812714, 1812340, 1811990, 1811665, + 1811362, 1853785, 1854411, 1854908, 1855266, 1855479, 1855536, 1855427, 1855142, 1854675, 1854022, 1853186, 1852173, 1850996, + 1849675, 1848231, 1846690, 1845081, 1843429, 1841761, 1840099, 1838462, 1836864, 1835318, 1833831, 1832409, 1831054, 1829768, + 1828550, 1827400, 1826315, 1825293, 1824331, 1823426, 1822577, 1821779, 1821030, 1820327, 1819668, 1819050, 1818470, 1817928, + 1817420, 1816944, 1816499, 1816083, 1815695, 1815332, 1814993, 1814677, 1856529, 1857170, 1857683, 1858063, 1858300, 1858386, + 1858311, 1858065, 1857642, 1857039, 1856257, 1855301, 1854183, 1852920, 1851532, 1850045, 1848483, 1846873, 1845240, 1843606, + 1841990, 1840408, 1838871, 1837389, 1835967, 1834609, 1833317, 1832092, 1830932, 1829835, 1828801, 1827826, 1826907, 1826043, + 1825231, 1824467, 1823749, 1823075, 1822442, 1821848, 1821291, 1820768, 1820278, 1819819, 1819389, 1818986, 1818610, 1818258, + 1817929, 1859206, 1859860, 1860390, 1860789, 1861050, 1861163, 1861120, 1860912, 1860532, 1859976, 1859245, 1858343, 1857282, + 1856075, 1854743, 1853308, 1851794, 1850226, 1848628, 1847024, 1845430, 1843865, 1842339, 1840863, 1839444, 1838084, 1836788, + 1835556, 1834387, 1833281, 1832235, 1831247, 1830316, 1829438, 1828612, 1827834, 1827101, 1826413, 1825766, 1825157, 1824586, + 1824049, 1823545, 1823072, 1822628, 1822212, 1821822, 1821457, 1821116, 1861833, 1862500, 1863045, 1863462, 1863744, 1863884, + 1863871, 1863698, 1863357, 1862846, 1862164, 1861315, 1860308, 1859156, 1857877, 1856492, 1855025, 1853500, 1851938, 1850363, + 1848794, 1847246, 1845733, 1844265, 1842849, 1841489, 1840190, 1838952, 1837775, 1836659, 1835603, 1834604, 1833660, 1832769, + 1831929, 1831138, 1830392, 1829689, 1829028, 1828405, 1827820, 1827269, 1826751, 1826265, 1825808, 1825379, 1824976, 1824598, + 1824244, 1864394, 1865072, 1865632, 1866066, 1866369, 1866533, 1866550, 1866410, 1866108, 1865639, 1865004, 1864205, 1863250, + 1862151, 1860924, 1859590, 1858169, 1856686, 1855161, 1853617, 1852073, 1850544, 1849045, 1847586, 1846174, 1844816, 1843515, + 1842273, 1841090, 1839965, 1838899, 1837890, 1836934, 1836032, 1835179, 1834374, 1833615, 1832899, 1832224, 1831588, 1830989, + 1830425, 1829894, 1829394, 1828924, 1828482, 1828067, 1827676, 1827310, 1866905, 1867595, 1868168, 1868618, 1868941, 1869128, + 1869171, 1869063, 1868798, 1868370, 1867779, 1867027, 1866122, 1865074, 1863898, 1862613, 1861239, 1859797, 1858309, 1856796, + 1855278, 1853770, 1852286, 1850837, 1849431, 1848076, 1846774, 1845528, 1844339, 1843208, 1842133, 1841113, 1840147, 1839233, + 1838368, 1837551, 1836779, 1836050, 1835362, 1834713, 1834101, 1833523, 1832979, 1832467, 1831984, 1831529, 1831101, 1830699, + 1830320, 1869351, 1870051, 1870636, 1871103, 1871444, 1871653, 1871723, 1871645, 1871414, 1871025, 1870476, 1869771, 1868914, + 1867916, 1866789, 1865552, 1864223, 1862823, 1861373, 1859892, 1858400, 1856914, 1855446, 1854009, 1852611, 1851259, 1849958, + 1848710, 1847517, 1846379, 1845296, 1844268, 1843292, 1842367, 1841491, 1840662, 1839877, 1839136, 1838436, 1837774, 1837149, + 1836560, 1836003, 1835478, 1834983, 1834516, 1834076, 1833662, 1833271, 1871747, 1872457, 1873055, 1873536, 1873895, 1874125, + 1874219, 1874170, 1873972, 1873620, 1873112, 1872450, 1871640, 1870689, 1869611, 1868420, 1867136, 1865777, 1864364, 1862916, + 1861452, 1859988, 1858538, 1857113, 1855724, 1854377, 1853077, 1851828, 1850632, 1849489, 1848399, 1847362, 1846377, 1845442, + 1844555, 1843715, 1842919, 1842166, 1841454, 1840780, 1840143, 1839541, 1838972, 1838435, 1837928, 1837449, 1836997, 1836571, + 1836169, 1874095, 1874814, 1875423, 1875918, 1876293, 1876544, 1876661, 1876639, 1876472, 1876155, 1875686, 1875067, 1874301, + 1873396, 1872364, 1871219, 1869979, 1868661, 1867285, 1865870, 1864434, 1862993, 1861561, 1860151, 1858771, 1857430, 1856133, + 1854884, 1853685, 1852538, 1851442, 1850398, 1849404, 1848460, 1847563, 1846712, 1845905, 1845141, 1844417, 1843731, 1843083, + 1842469, 1841888, 1841339, 1840820, 1840330, 1839866, 1839429, 1839016, 1876394, 1877121, 1877741, 1878249, 1878641, 1878910, + 1879050, 1879054, 1878916, 1878633, 1878201, 1877622, 1876898, 1876038, 1875051, 1873951, 1872754, 1871476, 1870137, 1868755, + 1867348, 1865930, 1864518, 1863123, 1861754, 1860420, 1859127, 1857879, 1856679, 1855528, 1854427, 1853376, 1852374, 1851421, + 1850515, 1849654, 1848837, 1848061, 1847326, 1846629, 1845969, 1845344, 1844752, 1844191, 1843661, 1843159, 1842684, 1842236, + 1841811, 1878645, 1879380, 1880011, 1880531, 1880937, 1881224, 1881385, 1881414, 1881305, 1881053, 1880657, 1880116, 1879434, + 1878616, 1877673, 1876617, 1875461, 1874224, 1872922, 1871573, 1870194, 1868802, 1867409, 1866030, 1864673, 1863347, 1862059, + 1860813, 1859612, 1858459, 1857353, 1856297, 1855288, 1854327, 1853412, 1852541, 1851714, 1850928, 1850182, 1849475, 1848803, + 1848167, 1847564, 1846992, 1846451, 1845938, 1845452, 1844992, 1844557, 1880848, 1881591, 1882231, 1882762, 1883183, 1883487, + 1883668, 1883721, 1883639, 1883418, 1883055, 1882551, 1881909, 1881132, 1880232, 1879217, 1878103, 1876905, 1875640, 1874324, + 1872975, 1871607, 1870236, 1868873, 1867529, 1866212, 1864930, 1863687, 1862487, 1861332, 1860223, 1859161, 1858146, 1857178, + 1856254, 1855375, 1854538, 1853743, 1852987, 1852269, 1851587, 1850940, 1850326, 1849743, 1849191, 1848667, 1848171, 1847701, + 1847255, 1883003, 1883753, 1884402, 1884945, 1885379, 1885699, 1885900, 1885975, 1885918, 1885727, 1885397, 1884928, 1884324, + 1883587, 1882728, 1881754, 1880681, 1879522, 1878293, 1877010, 1875690, 1874348, 1872999, 1871653, 1870323, 1869017, 1867741, + 1866502, 1865303, 1864147, 1863036, 1861970, 1860950, 1859974, 1859044, 1858156, 1857311, 1856506, 1855740, 1855012, 1854320, + 1853663, 1853038, 1852445, 1851883, 1851348, 1850842, 1850361, 1849905, 1885128, 1885884, 1886541, 1887095, 1887542, 1887877, + 1888096, 1888192, 1888160, 1887996, 1887697, 1887263, 1886694, 1885996, 1885176, 1884243, 1883208, 1882087, 1880894, 1879644, + 1878354, 1877038, 1875710, 1874383, 1873067, 1871771, 1870504, 1869269, 1868073, 1866917, 1865803, 1864734, 1863708, 1862727, + 1861789, 1860894, 1860040, 1859226, 1858451, 1857713, 1857011, 1856344, 1855709, 1855106, 1854533, 1853989, 1853472, 1852981, + 1852515, 1887205, 1887968, 1888633, 1889196, 1889655, 1890005, 1890241, 1890358, 1890349, 1890212, 1889942, 1889540, 1889007, + 1888346, 1887564, 1886670, 1885674, 1884590, 1883432, 1882215, 1880955, 1879665, 1878360, 1877051, 1875750, 1874467, 1873208, + 1871979, 1870785, 1869630, 1868516, 1867443, 1866414, 1865427, 1864483, 1863580, 1862718, 1861896, 1861112, 1860365, 1859654, + 1858977, 1858332, 1857720, 1857137, 1856582, 1856055, 1855555, 1855079, 1889235, 1890003, 1890676, 1891249, 1891719, 1892083, + 1892336, 1892472, 1892486, 1892374, 1892133, 1891763, 1891263, 1890638, 1889893, 1889036, 1888078, 1887031, 1885908, 1884724, + 1883493, 1882230, 1880948, 1879659, 1878374, 1877103, 1875854, 1874631, 1873442, 1872288, 1871174, 1870099, 1869066, 1868075, + 1867125, 1866216, 1865347, 1864517, 1863725, 1862969, 1862249, 1861562, 1860909, 1860286, 1859694, 1859130, 1858594, 1858083, + 1857598, 1891217, 1891990, 1892671, 1893253, 1893734, 1894112, 1894381, 1894535, 1894571, 1894484, 1894270, 1893930, 1893463, + 1892872, 1892164, 1891344, 1890423, 1889411, 1888323, 1887172, 1885971, 1884735, 1883476, 1882207, 1880939, 1879682, 1878442, + 1877228, 1876043, 1874892, 1873778, 1872703, 1871667, 1870672, 1869717, 1868802, 1867926, 1867088, 1866289, 1865525, 1864796, + 1864101, 1863438, 1862807, 1862205, 1861632, 1861087, 1860567, 1860073, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1.25 V (slice 5): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_5 and r_5). +pub const VSB_N5 : [4851]u32 = [ + 4294967295, 0, 75186, 56093, 52971, 54542, 57342, 60878, 64618, 68374, 72074, 75691, 79213, 82636, + 85963, 89196, 92343, 95409, 98401, 101327, 104193, 107008, 109779, 112512, 115214, 117894, 120558, 123211, + 125862, 128516, 131180, 133860, 136561, 139290, 142052, 144853, 147698, 150597, 153555, 156584, 159698, 162915, + 166260, 169919, 173666, 177689, 182065, 186889, 192273, 198347, 0, 88537, 72426, 70440, 72803, 76176, + 80320, 84656, 88980, 93213, 97324, 101302, 105142, 108849, 112428, 115884, 119227, 122464, 125605, 128657, + 131628, 134527, 137362, 140139, 142867, 145553, 148203, 150824, 153423, 156005, 158578, 161147, 163718, 166296, + 168887, 171497, 174133, 176801, 179509, 182270, 185096, 188006, 191026, 194318, 197696, 201328, 205286, 209664, + 214568, 33586, 107208, 94507, 93766, 96681, 100968, 105753, 110711, 115619, 120394, 125003, 129436, 133691, + 137773, 141689, 145449, 149063, 152540, 155891, 159125, 162252, 165281, 168220, 171079, 173863, 176582, 179242, + 181851, 184414, 186937, 189428, 191892, 194334, 196760, 199176, 201586, 203996, 206413, 208844, 211295, 213778, + 216306, 218897, 221658, 224469, 227443, 230634, 234108, 237951, 81326, 131802, 122554, 123020, 126686, 131612, + 136996, 142525, 147966, 153230, 158284, 163120, 167739, 172149, 176359, 180382, 184229, 187913, 191446, 194839, + 198102, 201246, 204280, 207213, 210053, 212809, 215487, 218095, 220639, 223126, 225561, 227951, 230300, 232615, + 234899, 237158, 239397, 241621, 243835, 246046, 248262, 250490, 252744, 255038, 257456, 259913, 262496, 265252, + 268239, 129086, 162236, 156085, 157590, 161893, 167357, 173240, 179243, 185119, 190779, 196191, 201349, 206257, + 210925, 215367, 219596, 223627, 227473, 231149, 234666, 238037, 241273, 244384, 247378, 250266, 253056, 255755, + 258369, 260907, 263375, 265777, 268120, 270409, 272649, 274845, 277000, 279121, 281211, 283275, 285317, 287344, + 289361, 291376, 293399, 295443, 297569, 299722, 301966, 304338, 176866, 197783, 194118, 196430, 201227, 207103, + 213499, 219838, 226010, 231889, 237568, 242964, 248084, 252943, 257554, 261934, 266099, 270064, 273845, 277454, + 280905, 284209, 287378, 290420, 293346, 296164, 298882, 301507, 304046, 306505, 308890, 311207, 313460, 315655, + 317796, 319887, 321933, 323937, 325903, 327836, 329740, 331618, 333478, 335324, 337166, 339036, 340909, 342819, + 344789, 224664, 237354, 235515, 238410, 243563, 249808, 256416, 263009, 269412, 275550, 281364, 286928, 292199, + 297191, 301921, 306407, 310666, 314715, 318569, 322244, 325751, 329105, 332315, 335393, 338348, 341189, 343923, + 346559, 349102, 351560, 353938, 356242, 358476, 360646, 362755, 364808, 366809, 368762, 370669, 372535, 374364, + 376158, 377922, 379660, 381377, 383080, 384791, 386498, 388223, 272479, 279839, 279256, 282550, 287950, 294406, + 301206, 307976, 314540, 320822, 326797, 332445, 337819, 342902, 347715, 352274, 356598, 360705, 364611, 368331, + 371879, 375252, 378494, 381598, 384575, 387434, 390196, 392841, 395391, 397851, 400228, 402526, 404752, 406909, + 409001, 411034, 413010, 414933, 416807, 418634, 420418, 422163, 423870, 425544, 427189, 428808, 430406, 431998, + 433580, 320312, 324307, 324552, 328111, 333680, 340280, 347214, 354106, 360780, 367163, 373227, 378971, 384400, + 389547, 394417, 399027, 403383, 407530, 411471, 415223, 418800, 422214, 425477, 428601, 431595, 434467, 437227, + 439882, 442439, 444904, 447283, 449582, 451805, 453957, 456042, 458065, 460028, 461936, 463792, 465599, 467359, + 469081, 470757, 472395, 473998, 475569, 477111, 478630, 480133, 368160, 370070, 370845, 374580, 380264, 386965, + 393992, 400970, 407723, 414176, 420304, 426105, 431584, 436777, 441687, 446322, 450723, 454898, 458866, 462642, + 466239, 469672, 472953, 476091, 479098, 481982, 484751, 487414, 489977, 492447, 494830, 497130, 499353, 501504, + 503586, 505605, 507562, 509463, 511309, 513105, 514852, 516554, 518213, 519831, 521412, 522957, 524470, 525956, + 527410, 416024, 416657, 417768, 421619, 427384, 434158, 441253, 448294, 455104, 461609, 467783, 473626, 479148, + 484369, 489302, 493972, 498397, 502595, 506583, 510377, 513991, 517438, 520732, 523882, 526899, 529793, 532571, + 535241, 537810, 540285, 542671, 544975, 547200, 549352, 551435, 553452, 555408, 557305, 559148, 560938, 562679, + 564373, 566023, 567631, 569200, 570731, 572227, 573690, 575124, 463902, 463760, 465083, 469014, 474838, 481667, + 488814, 495903, 502757, 509302, 515512, 521387, 526939, 532186, 537143, 541835, 546279, 550494, 554498, 558307, + 561934, 565394, 568698, 571858, 574885, 577786, 580571, 583248, 585823, 588303, 590694, 593001, 595229, 597383, + 599468, 601486, 603442, 605340, 607181, 608970, 610708, 612399, 614045, 615649, 617211, 618735, 620223, 621676, + 623097, 511791, 511183, 512643, 516630, 522500, 529373, 536561, 543689, 550578, 557156, 563395, 569297, 574873, + 580142, 585118, 589828, 594288, 598519, 602536, 606357, 609995, 613465, 616779, 619948, 622982, 625891, 628683, + 631365, 633946, 636431, 638826, 641137, 643369, 645526, 647613, 649634, 651591, 653490, 655332, 657121, 658859, + 660550, 662195, 663796, 665356, 666878, 668361, 669810, 671225, 559688, 558805, 560354, 564384, 570291, 577200, + 584423, 591583, 598503, 605108, 611373, 617297, 622894, 628179, 633175, 637900, 642374, 646617, 650647, 654478, + 658126, 661606, 664928, 668105, 671146, 674061, 676859, 679548, 682133, 684623, 687023, 689338, 691573, 693734, + 695823, 697847, 699807, 701707, 703551, 705341, 707081, 708772, 710417, 712019, 713579, 715099, 716582, 718028, + 719441, 607588, 606548, 608157, 612221, 618159, 625100, 632353, 639542, 646488, 653117, 659404, 665349, 670964, + 676266, 681276, 686015, 690502, 694757, 698796, 702637, 706295, 709782, 713112, 716296, 719344, 722266, 725069, + 727763, 730353, 732848, 735251, 737570, 739809, 741973, 744066, 746092, 748055, 749958, 751804, 753596, 755337, + 757030, 758676, 760279, 761839, 763360, 764843, 766289, 767701, 655903, 654599, 656139, 660167, 666099, 673051, + 680324, 687535, 694504, 701154, 707460, 713423, 719054, 724371, 729394, 734145, 738644, 742909, 746958, 750808, + 754473, 757968, 761305, 764495, 767549, 770476, 773285, 775984, 778579, 781077, 783485, 785808, 788051, 790218, + 792314, 794343, 796308, 798213, 800062, 801856, 803599, 805293, 806941, 808545, 810107, 811629, 813112, 814560, + 815972, 711484, 706941, 706446, 709295, 714611, 721269, 728416, 735582, 742542, 749199, 755517, 761493, 767137, + 772466, 777502, 782264, 786772, 791046, 795103, 798961, 802634, 806135, 809478, 812674, 815734, 818666, 821479, + 824182, 826781, 829284, 831695, 834021, 836267, 838437, 840536, 842567, 844535, 846443, 848294, 850090, 851835, + 853531, 855181, 856786, 858350, 859873, 861357, 862806, 864219, 773265, 763445, 759375, 759979, 763995, 769949, + 776737, 783731, 790614, 797241, 803552, 809531, 815182, 820520, 825564, 830335, 834851, 839132, 843197, 847060, + 850739, 854246, 857594, 860795, 863859, 866795, 869612, 872319, 874921, 877427, 879842, 882171, 884419, 886592, + 888693, 890727, 892697, 894607, 896459, 898257, 900004, 901702, 903353, 904960, 906525, 908049, 909535, 910984, + 912399, 836879, 821854, 813982, 811977, 814306, 819228, 825411, 832063, 838760, 845290, 851553, 857509, 863152, + 868490, 873536, 878310, 882830, 887116, 891185, 895053, 898736, 902246, 905598, 908802, 911869, 914808, 917628, + 920337, 922942, 925450, 927867, 930198, 932448, 934622, 936725, 938761, 940733, 942644, 944498, 946297, 948045, + 949744, 951396, 953004, 954570, 956095, 957582, 959032, 960447, 899952, 880605, 869350, 864832, 865384, 869098, + 874489, 880636, 887019, 893358, 899506, 905396, 911000, 916315, 921349, 926117, 930634, 934919, 938988, 942856, + 946539, 950051, 953403, 956608, 959676, 962616, 965436, 968146, 970752, 973260, 975678, 978009, 980260, 982435, + 984539, 986575, 988547, 990459, 992313, 994113, 995861, 997560, 999213, 1000821, 1002387, 1003913, 1005400, 1006850, + 1008265, 961567, 938871, 924808, 918061, 916917, 919385, 923884, 929408, 935364, 941413, 947368, 953129, 958648, + 963907, 968904, 973646, 978146, 982419, 986478, 990340, 994018, 997525, 1000874, 1004075, 1007140, 1010077, 1012896, + 1015603, 1018207, 1020714, 1023129, 1025459, 1027709, 1029882, 1031984, 1034019, 1035990, 1037900, 1039753, 1041552, 1043299, + 1044998, 1046649, 1048257, 1049822, 1051346, 1052833, 1054282, 1055697, 1021406, 996233, 979905, 971242, 968553, 969812, + 973386, 978216, 983659, 989333, 995016, 1000582, 1005960, 1011117, 1016040, 1020727, 1025187, 1029428, 1033463, 1037305, + 1040967, 1044461, 1047798, 1050990, 1054045, 1056974, 1059785, 1062486, 1065083, 1067584, 1069994, 1072319, 1074563, 1076732, + 1078829, 1080860, 1082827, 1084733, 1086583, 1088378, 1090122, 1091817, 1093465, 1095070, 1096632, 1098154, 1099637, 1101084, + 1102496, 1079290, 1052419, 1034300, 1024004, 1019922, 1020034, 1022685, 1026782, 1031650, 1036878, 1042218, 1047520, 1052696, + 1057697, 1062500, 1067094, 1071480, 1075662, 1079650, 1083453, 1087082, 1090548, 1093861, 1097031, 1100067, 1102979, 1105774, + 1108460, 1111044, 1113532, 1115930, 1118243, 1120477, 1122636, 1124725, 1126746, 1128704, 1130603, 1132445, 1134233, 1135970, + 1137658, 1139300, 1140898, 1142454, 1143971, 1145449, 1146890, 1148297, 1134989, 1107159, 1087667, 1075974, 1070626, 1069648, + 1071381, 1074717, 1078960, 1083681, 1088609, 1093580, 1098489, 1103276, 1107905, 1112358, 1116628, 1120715, 1124623, 1128358, + 1131930, 1135345, 1138614, 1141745, 1144747, 1147627, 1150394, 1153053, 1155612, 1158078, 1160455, 1162748, 1164963, 1167105, + 1169176, 1171182, 1173125, 1175009, 1176837, 1178612, 1180336, 1182012, 1183643, 1185230, 1186776, 1188282, 1189750, 1191182, + 1192580, 1188139, 1160100, 1139628, 1126736, 1120218, 1118184, 1118994, 1121536, 1125105, 1129255, 1133705, 1138274, 1142849, + 1147355, 1151750, 1156006, 1160110, 1164055, 1167842, 1171473, 1174953, 1178288, 1181486, 1184554, 1187499, 1190327, 1193046, + 1195662, 1198181, 1200609, 1202950, 1205211, 1207395, 1209508, 1211551, 1213531, 1215449, 1217309, 1219115, 1220868, 1222572, + 1224228, 1225840, 1227409, 1228937, 1230426, 1231878, 1233295, 1234678, 1238264, 1210786, 1189738, 1175824, 1168203, 1165125, + 1164993, 1166700, 1169536, 1173051, 1176951, 1181047, 1185215, 1189372, 1193466, 1197462, 1201342, 1205092, 1208708, 1212189, + 1215537, 1218755, 1221847, 1224820, 1227678, 1230428, 1233075, 1235624, 1238082, 1240452, 1242741, 1244951, 1247088, 1249156, + 1251157, 1253097, 1254977, 1256801, 1258572, 1260292, 1261964, 1263591, 1265173, 1266715, 1268216, 1269679, 1271107, 1272499, + 1273859, 1284871, 1258697, 1237506, 1222754, 1214088, 1209970, 1208868, 1209694, 1211742, 1214556, 1217838, 1221390, 1225080, + 1228818, 1232543, 1236216, 1239810, 1243308, 1246700, 1249982, 1253151, 1256209, 1259156, 1261997, 1264735, 1267375, 1269920, + 1272376, 1274747, 1277036, 1279248, 1281387, 1283457, 1285461, 1287403, 1289285, 1291111, 1292884, 1294606, 1296279, 1297906, + 1299490, 1301031, 1302532, 1303996, 1305423, 1306815, 1308173, 1309500, 1327576, 1303332, 1282463, 1267092, 1257455, 1252310, + 1250224, 1250137, 1251353, 1253416, 1256024, 1258973, 1262124, 1265382, 1268679, 1271970, 1275223, 1278415, 1281533, 1284567, + 1287513, 1290368, 1293131, 1295803, 1298386, 1300883, 1303297, 1305630, 1307886, 1310069, 1312181, 1314226, 1316208, 1318128, + 1319991, 1321798, 1323552, 1325257, 1326914, 1328525, 1330093, 1331619, 1333105, 1334554, 1335967, 1337345, 1338690, 1340003, + 1341286, 1366233, 1344333, 1324253, 1308527, 1298035, 1291907, 1288848, 1287846, 1288214, 1289501, 1291403, 1293713, 1296287, + 1299023, 1301850, 1304717, 1307586, 1310431, 1313234, 1315982, 1318667, 1321283, 1323828, 1326299, 1328697, 1331023, 1333277, + 1335462, 1337580, 1339633, 1341624, 1343555, 1345428, 1347246, 1349011, 1350726, 1352393, 1354014, 1355591, 1357125, 1358620, + 1360076, 1361495, 1362879, 1364229, 1365546, 1366833, 1368090, 1369319, 1400944, 1381555, 1362671, 1346903, 1335717, 1328689, + 1324708, 1322820, 1322359, 1322878, 1324075, 1325739, 1327724, 1329923, 1332261, 1334681, 1337144, 1339618, 1342082, 1344520, + 1346920, 1349275, 1351578, 1353826, 1356018, 1358151, 1360227, 1362245, 1364206, 1366113, 1367965, 1369765, 1371515, 1373216, + 1374871, 1376480, 1378047, 1379571, 1381056, 1382503, 1383913, 1385288, 1386629, 1387938, 1389216, 1390464, 1391684, 1392876, + 1394042, 1432018, 1415089, 1397698, 1382214, 1370538, 1362728, 1357905, 1355192, 1353949, 1353738, 1354257, 1355296, 1356705, + 1358375, 1360228, 1362202, 1364255, 1366353, 1368471, 1370590, 1372696, 1374779, 1376830, 1378845, 1380819, 1382750, 1384636, + 1386476, 1388271, 1390021, 1391725, 1393386, 1395003, 1396579, 1398114, 1399610, 1401068, 1402489, 1403875, 1405227, 1406545, + 1407833, 1409089, 1410317, 1411517, 1412689, 1413836, 1414957, 1416055, 1459846, 1445189, 1429447, 1414552, 1402616, 1394171, + 1388607, 1385149, 1383192, 1382307, 1382196, 1382649, 1383515, 1384684, 1386072, 1387618, 1389274, 1391006, 1392785, 1394590, + 1396406, 1398218, 1400018, 1401799, 1403554, 1405281, 1406975, 1408636, 1410262, 1411852, 1413406, 1414924, 1416407, 1417854, + 1419267, 1420646, 1421993, 1423308, 1424591, 1425845, 1427070, 1428267, 1429437, 1430581, 1431699, 1432793, 1433864, 1434913, + 1435939, 1484860, 1472214, 1458148, 1444090, 1432132, 1423209, 1417017, 1412904, 1410308, 1408814, 1408130, 1408048, 1408414, + 1409117, 1410073, 1411217, 1412501, 1413886, 1415343, 1416849, 1418385, 1419938, 1421495, 1423049, 1424593, 1426120, 1427628, + 1429114, 1430574, 1432007, 1433414, 1434792, 1436141, 1437462, 1438754, 1440018, 1441255, 1442464, 1443647, 1444804, 1445936, + 1447043, 1448127, 1449187, 1450225, 1451242, 1452238, 1453213, 1454169, 1507443, 1496536, 1484078, 1471024, 1459271, 1450039, + 1443335, 1438658, 1435499, 1433464, 1432267, 1431701, 1431615, 1431894, 1432454, 1433229, 1434168, 1435232, 1436390, 1437616, + 1438890, 1440199, 1441527, 1442867, 1444209, 1445548, 1446878, 1448195, 1449497, 1450782, 1452046, 1453290, 1454511, 1455711, + 1456887, 1458041, 1459172, 1460280, 1461366, 1462429, 1463471, 1464492, 1465493, 1466473, 1467433, 1468375, 1469298, 1470203, + 1471090, 1527949, 1518527, 1507548, 1495585, 1484232, 1474858, 1467759, 1462606, 1458957, 1456445, 1454792, 1453794, 1453301, + 1453197, 1453399, 1453837, 1454462, 1455231, 1456112, 1457080, 1458113, 1459194, 1460310, 1461449, 1462603, 1463765, 1464928, + 1466088, 1467242, 1468385, 1469516, 1470633, 1471734, 1472818, 1473886, 1474935, 1475966, 1476978, 1477972, 1478948, 1479905, + 1480844, 1481766, 1482670, 1483557, 1484428, 1485282, 1486120, 1486943, 1546673, 1538511, 1528857, 1518001, 1507203, 1497844, + 1490466, 1484922, 1480853, 1477923, 1475866, 1474483, 1473625, 1473177, 1473055, 1473189, 1473527, 1474027, 1474656, 1475387, + 1476197, 1477069, 1477988, 1478943, 1479922, 1480920, 1481928, 1482941, 1483956, 1484968, 1485974, 1486973, 1487962, 1488939, + 1489904, 1490855, 1491793, 1492716, 1493624, 1494517, 1495396, 1496259, 1497107, 1497940, 1498759, 1499563, 1500353, 1501129, + 1501892, 1563861, 1556766, 1548279, 1538497, 1528359, 1519158, 1511615, 1505762, 1501336, 1498042, 1495628, 1493903, 1492719, + 1491962, 1491548, 1491406, 1491485, 1491741, 1492139, 1492653, 1493259, 1493939, 1494677, 1495461, 1496279, 1497125, 1497989, + 1498867, 1499753, 1500643, 1501533, 1502422, 1503306, 1504184, 1505054, 1505915, 1506765, 1507605, 1508434, 1509251, 1510055, + 1510848, 1511628, 1512395, 1513150, 1513893, 1514623, 1515342, 1516049, 1579718, 1573530, 1566063, 1557287, 1547868, 1538948, + 1531346, 1525264, 1520542, 1516932, 1514205, 1512175, 1510699, 1509665, 1508986, 1508595, 1508438, 1508471, 1508660, 1508975, + 1509394, 1509897, 1510469, 1511095, 1511765, 1512470, 1513201, 1513953, 1514720, 1515497, 1516280, 1517067, 1517854, 1518639, + 1519421, 1520197, 1520968, 1521731, 1522485, 1523231, 1523968, 1524695, 1525411, 1526118, 1526814, 1527500, 1528176, 1528842, + 1529497, 1594411, 1588995, 1582415, 1574562, 1565884, 1557340, 1549781, 1543545, 1538584, 1534705, 1531702, 1529402, 1527665, + 1526380, 1525464, 1524847, 1524475, 1524305, 1524302, 1524436, 1524683, 1525023, 1525441, 1525922, 1526455, 1527030, 1527638, + 1528274, 1528930, 1529602, 1530285, 1530977, 1531674, 1532373, 1533073, 1533771, 1534467, 1535158, 1535845, 1536525, 1537198, + 1537864, 1538523, 1539173, 1539816, 1540449, 1541074, 1541691, 1542299, 1608084, 1603331, 1597520, 1590501, 1582555, 1574456, + 1567028, 1560713, 1555568, 1551462, 1548219, 1545679, 1543707, 1542197, 1541065, 1540242, 1539675, 1539320, 1539140, 1539107, + 1539196, 1539387, 1539663, 1540010, 1540415, 1540870, 1541364, 1541891, 1542444, 1543018, 1543609, 1544212, 1544825, 1545445, + 1546068, 1546694, 1547320, 1547945, 1548567, 1549186, 1549801, 1550411, 1551015, 1551614, 1552206, 1552791, 1553369, 1553940, + 1554504, 1620863, 1616680, 1611537, 1605264, 1598020, 1590409, 1583188, 1576864, 1571587, 1567294, 1563843, 1561090, 1558908, + 1557195, 1555866, 1554856, 1554110, 1553584, 1553242, 1553055, 1552998, 1553051, 1553195, 1553418, 1553705, 1554047, 1554434, + 1554860, 1555317, 1555800, 1556305, 1556826, 1557360, 1557904, 1558457, 1559014, 1559575, 1560138, 1560701, 1561263, 1561823, + 1562381, 1562935, 1563484, 1564030, 1564570, 1565105, 1565634, 1566157, 1632835, 1629147, 1624586, 1618978, 1612393, 1605290, + 1598338, 1592068, 1586712, 1582271, 1578643, 1575703, 1573333, 1571436, 1569929, 1568748, 1567838, 1567155, 1566664, 1566335, + 1566143, 1566067, 1566090, 1566196, 1566373, 1566610, 1566899, 1567230, 1567597, 1567995, 1568418, 1568862, 1569322, 1569797, + 1570282, 1570776, 1571276, 1571780, 1572288, 1572796, 1573305, 1573814, 1574321, 1574825, 1575327, 1575825, 1576319, 1576809, + 1577295, 1644090, 1640832, 1636781, 1631762, 1625788, 1619197, 1612558, 1606401, 1601015, 1596464, 1592688, 1589584, 1587047, + 1584983, 1583314, 1581976, 1580915, 1580089, 1579460, 1578999, 1578682, 1578486, 1578395, 1578393, 1578467, 1578607, 1578802, + 1579045, 1579328, 1579645, 1579992, 1580363, 1580754, 1581163, 1581585, 1582019, 1582461, 1582911, 1583366, 1583824, 1584285, + 1584747, 1585210, 1585672, 1586132, 1586591, 1587048, 1587501, 1587952, 1654704, 1651823, 1648218, 1643722, 1638308, 1632217, + 1625923, 1619926, 1614556, 1609932, 1606037, 1602792, 1600106, 1597892, 1596075, 1594593, 1593394, 1592434, 1591677, 1591095, + 1590660, 1590353, 1590156, 1590053, 1590030, 1590078, 1590185, 1590345, 1590548, 1590790, 1591065, 1591367, 1591693, 1592039, + 1592402, 1592778, 1593167, 1593564, 1593970, 1594381, 1594796, 1595215, 1595635, 1596057, 1596479, 1596901, 1597322, 1597741, + 1598158, 1664740, 1662192, 1658979, 1654947, 1650043, 1644431, 1638499, 1632703, 1627391, 1622729, 1618742, 1615378, 1612560, + 1610211, 1608260, 1606646, 1605319, 1604235, 1603360, 1602663, 1602120, 1601709, 1601412, 1601213, 1601100, 1601061, 1601086, + 1601166, 1601295, 1601465, 1601672, 1601909, 1602173, 1602459, 1602766, 1603088, 1603425, 1603774, 1604132, 1604498, 1604870, + 1605247, 1605628, 1606012, 1606397, 1606784, 1607171, 1607558, 1607944, 1674244, 1671989, 1669123, 1665504, 1661062, 1655905, + 1650340, 1644775, 1639560, 1634895, 1630843, 1627381, 1624449, 1621980, 1619907, 1618172, 1616727, 1615529, 1614543, 1613740, + 1613095, 1612586, 1612195, 1611908, 1611709, 1611588, 1611535, 1611541, 1611599, 1611702, 1611843, 1612019, 1612223, 1612454, + 1612706, 1612978, 1613265, 1613567, 1613880, 1614203, 1614534, 1614872, 1615215, 1615563, 1615913, 1616267, 1616621, 1616977, + 1617333, 1683268, 1681274, 1678716, 1675465, 1671440, 1666708, 1661509, 1656197, 1651111, 1646474, 1642383, 1638844, 1635815, + 1633239, 1631055, 1629210, 1627656, 1626352, 1625263, 1624361, 1623620, 1623020, 1622541, 1622169, 1621890, 1621692, 1621565, + 1621501, 1621491, 1621529, 1621609, 1621725, 1621874, 1622051, 1622252, 1622474, 1622715, 1622972, 1623242, 1623524, 1623815, + 1624116, 1624423, 1624736, 1625053, 1625374, 1625698, 1626025, 1626352, 1691850, 1690089, 1687806, 1684882, 1681235, 1676898, + 1672056, 1667011, 1662080, 1657500, 1653397, 1649801, 1646691, 1644021, 1641738, 1639792, 1638137, 1636735, 1635551, 1634556, + 1633725, 1633039, 1632477, 1632026, 1631670, 1631399, 1631202, 1631071, 1630997, 1630973, 1630995, 1631055, 1631150, 1631275, + 1631427, 1631603, 1631799, 1632012, 1632241, 1632484, 1632738, 1633002, 1633274, 1633554, 1633839, 1634130, 1634425, 1634723, + 1635023, 1700031, 1698478, 1696441, 1693810, 1690504, 1686532, 1682033, 1677261, 1672507, 1668010, 1663918, 1660285, 1657110, + 1654358, 1651987, 1649949, 1648202, 1646709, 1645435, 1644354, 1643439, 1642671, 1642031, 1641504, 1641077, 1640736, 1640473, + 1640277, 1640142, 1640060, 1640025, 1640032, 1640076, 1640152, 1640257, 1640387, 1640540, 1640712, 1640901, 1641106, 1641324, + 1641553, 1641792, 1642039, 1642294, 1642555, 1642822, 1643093, 1643367, 1707844, 1706477, 1704660, 1702293, 1699295, 1695658, + 1691485, 1686988, 1682426, 1678035, 1673975, 1670325, 1667100, 1664280, 1661830, 1659710, 1657878, 1656300, 1654943, 1653780, + 1652786, 1651942, 1651228, 1650630, 1650133, 1649727, 1649400, 1649144, 1648950, 1648812, 1648723, 1648679, 1648673, 1648702, + 1648761, 1648848, 1648959, 1649092, 1649243, 1649411, 1649593, 1649789, 1649996, 1650213, 1650438, 1650670, 1650909, 1651154, + 1651403, 1715300, 1714103, 1712485, 1710355, 1707636, 1704307, 1700443, 1696217, 1691858, 1687591, 1683586, 1679937, 1676678, + 1673803, 1671285, 1669090, 1667181, 1665525, 1664091, 1662852, 1661785, 1660868, 1660085, 1659419, 1658857, 1658388, 1658001, + 1657687, 1657438, 1657246, 1657106, 1657012, 1656959, 1656942, 1656959, 1657004, 1657075, 1657169, 1657283, 1657416, 1657565, + 1657728, 1657904, 1658090, 1658287, 1658492, 1658705, 1658924, 1659148, 1722447, 1721402, 1719963, 1718047, 1715580, 1712534, + 1708960, 1704998, 1700847, 1696720, 1692786, 1689155, 1685877, 1682959, 1680383, 1678122, 1676143, 1674415, 1672909, 1671599, + 1670462, 1669477, 1668627, 1667898, 1667274, 1666745, 1666300, 1665931, 1665628, 1665385, 1665196, 1665054, 1664956, 1664895, + 1664869, 1664874, 1664907, 1664963, 1665042, 1665141, 1665257, 1665389, 1665534, 1665692, 1665861, 1666039, 1666226, 1666420, + 1666621, 1729302, 1728396, 1727119, 1725396, 1723157, 1720370, 1717067, 1713359, 1709420, 1705442, 1701596, 1698000, 1694717, + 1691767, 1689143, 1686824, 1684782, 1682988, 1681415, 1680038, 1678835, 1677786, 1676874, 1676083, 1675401, 1674815, 1674315, + 1673892, 1673538, 1673246, 1673009, 1672822, 1672679, 1672577, 1672510, 1672476, 1672471, 1672492, 1672536, 1672602, 1672686, + 1672787, 1672903, 1673033, 1673174, 1673326, 1673488, 1673659, 1673836, 1735875, 1735095, 1733965, 1732418, 1730388, 1727837, + 1724787, 1721323, 1717594, 1713775, 1710030, 1706483, 1703209, 1700239, 1697577, 1695209, 1693110, 1691256, 1689621, 1688183, + 1686918, 1685809, 1684837, 1683989, 1683250, 1682610, 1682057, 1681584, 1681181, 1680841, 1680559, 1680328, 1680143, 1680000, + 1679894, 1679822, 1679781, 1679767, 1679778, 1679811, 1679865, 1679936, 1680024, 1680126, 1680241, 1680368, 1680506, 1680652, + 1680808, 1742191, 1741527, 1740532, 1739144, 1737303, 1734970, 1732153, 1728922, 1725400, 1721744, 1718111, 1714626, 1711374, + 1708397, 1705706, 1703296, 1701147, 1699239, 1697548, 1696051, 1694729, 1693563, 1692535, 1691632, 1690840, 1690148, 1689545, + 1689023, 1688573, 1688188, 1687861, 1687588, 1687362, 1687180, 1687037, 1686928, 1686852, 1686804, 1686783, 1686785, 1686808, + 1686851, 1686911, 1686986, 1687076, 1687178, 1687292, 1687416, 1687549, 1748258, 1747700, 1746828, 1745586, 1743918, 1741785, + 1739186, 1736174, 1732854, 1729364, 1725852, 1722441, 1719223, 1716249, 1713540, 1711095, 1708904, 1706947, 1705204, 1703655, + 1702279, 1701059, 1699978, 1699023, 1698181, 1697439, 1696789, 1696220, 1695725, 1695296, 1694928, 1694614, 1694349, 1694129, + 1693949, 1693805, 1693695, 1693615, 1693562, 1693534, 1693528, 1693542, 1693575, 1693625, 1693689, 1693767, 1693858, 1693960, + 1694071, 1754111, 1753648, 1752888, 1751780, 1750270, 1748319, 1745922, 1743117, 1739992, 1736669, 1733282, 1729956, 1726782, + 1723821, 1721102, 1718632, 1716404, 1714404, 1712614, 1711015, 1709588, 1708318, 1707187, 1706183, 1705292, 1704504, 1703807, + 1703193, 1702655, 1702184, 1701775, 1701422, 1701119, 1700862, 1700646, 1700469, 1700326, 1700214, 1700130, 1700072, 1700038, + 1700025, 1700031, 1700056, 1700096, 1700150, 1700218, 1700298, 1700389, 1759744, 1759370, 1758713, 1757727, 1756362, 1754579, + 1752369, 1749759, 1746822, 1743664, 1740408, 1737173, 1734054, 1731116, 1728396, 1725908, 1723650, 1721612, 1719780, 1718136, + 1716663, 1715345, 1714168, 1713117, 1712180, 1711346, 1710606, 1709949, 1709369, 1708859, 1708410, 1708019, 1707680, 1707387, + 1707137, 1706927, 1706752, 1706609, 1706495, 1706409, 1706347, 1706307, 1706288, 1706287, 1706304, 1706335, 1706381, 1706439, + 1706509, 1765182, 1764890, 1764328, 1763454, 1762221, 1760593, 1758556, 1756129, 1753371, 1750375, 1747253, 1744116, 1741059, + 1738153, 1735441, 1732942, 1730660, 1728590, 1726720, 1725035, 1723519, 1722157, 1720935, 1719840, 1718859, 1717983, 1717200, + 1716503, 1715883, 1715333, 1714847, 1714419, 1714044, 1713717, 1713434, 1713192, 1712985, 1712813, 1712670, 1712556, 1712467, + 1712401, 1712357, 1712332, 1712325, 1712334, 1712358, 1712395, 1712445, 1770431, 1770214, 1769740, 1768968, 1767858, 1766372, + 1764495, 1762240, 1759653, 1756815, 1753827, 1750792, 1747806, 1744940, 1742243, 1739740, 1737442, 1735345, 1733442, 1731719, + 1730163, 1728760, 1727497, 1726360, 1725338, 1724421, 1723598, 1722861, 1722203, 1721616, 1721093, 1720630, 1720221, 1719861, + 1719546, 1719272, 1719035, 1718833, 1718663, 1718521, 1718406, 1718315, 1718246, 1718197, 1718167, 1718154, 1718157, 1718174, + 1718204, 1775503, 1775356, 1774962, 1774286, 1773288, 1771934, 1770205, 1768110, 1765686, 1763002, 1760147, 1757219, 1754308, + 1751490, 1748816, 1746316, 1744006, 1741888, 1739956, 1738200, 1736608, 1735167, 1733864, 1732688, 1731627, 1730671, 1729810, + 1729035, 1728340, 1727717, 1727159, 1726662, 1726220, 1725827, 1725481, 1725177, 1724911, 1724681, 1724483, 1724315, 1724174, + 1724058, 1723965, 1723893, 1723841, 1723806, 1723788, 1723784, 1723795, 1780404, 1780321, 1780002, 1779413, 1778519, 1777286, + 1775696, 1773751, 1771481, 1768945, 1766222, 1763402, 1760573, 1757809, 1755164, 1752675, 1750360, 1748226, 1746270, 1744484, + 1742859, 1741383, 1740044, 1738831, 1737733, 1736739, 1735841, 1735031, 1734301, 1733643, 1733052, 1732522, 1732047, 1731624, + 1731247, 1730914, 1730620, 1730362, 1730137, 1729943, 1729777, 1729637, 1729521, 1729426, 1729352, 1729296, 1729257, 1729234, + 1729226, 1785157, 1785134, 1784883, 1784375, 1783577, 1782456, 1780994, 1779188, 1777064, 1774670, 1772077, 1769366, 1766622, + 1763917, 1761308, 1758835, 1756520, 1754374, 1752398, 1750587, 1748932, 1747424, 1746051, 1744803, 1743669, 1742641, 1741708, + 1740863, 1740098, 1739407, 1738784, 1738221, 1737716, 1737262, 1736856, 1736494, 1736172, 1735888, 1735637, 1735417, 1735227, + 1735063, 1734924, 1734807, 1734711, 1734635, 1734576, 1734533, 1734506, 1789743, 1789775, 1789589, 1789157, 1788447, 1787431, + 1786088, 1784414, 1782427, 1780170, 1777704, 1775103, 1772447, 1769806, 1767239, 1764788, 1762479, 1760327, 1758336, 1756503, + 1754822, 1753285, 1751881, 1750600, 1749433, 1748372, 1747406, 1746528, 1745731, 1745008, 1744353, 1743761, 1743225, 1742743, + 1742308, 1741919, 1741570, 1741259, 1740983, 1740739, 1740525, 1740338, 1740176, 1740038, 1739921, 1739825, 1739746, 1739685, + 1739639, 1794199, 1794282, 1794155, 1793793, 1793165, 1792245, 1791012, 1789461, 1787605, 1785477, 1783134, 1780643, 1778076, + 1775503, 1772982, 1770558, 1768261, 1766108, 1764105, 1762254, 1760550, 1758986, 1757553, 1756242, 1755044, 1753951, 1752953, + 1752044, 1751216, 1750462, 1749777, 1749155, 1748590, 1748079, 1747617, 1747201, 1746826, 1746490, 1746189, 1745921, 1745684, + 1745474, 1745291, 1745131, 1744994, 1744877, 1744779, 1744699, 1744635, 1798515, 1798646, 1798575, 1798277, 1797726, 1796895, + 1795765, 1794329, 1792595, 1790592, 1788368, 1785984, 1783508, 1781006, 1778536, 1776145, 1773864, 1771713, 1769704, 1767839, + 1766115, 1764527, 1763067, 1761728, 1760501, 1759378, 1758351, 1757411, 1756553, 1755770, 1755056, 1754405, 1753813, 1753275, + 1752786, 1752343, 1751943, 1751582, 1751257, 1750966, 1750706, 1750474, 1750269, 1750089, 1749932, 1749795, 1749678, 1749580, + 1749498, 1802694, 1802869, 1802850, 1802612, 1802133, 1801386, 1800352, 1799023, 1797404, 1795520, 1793412, 1791134, 1788749, + 1786321, 1783906, 1781551, 1779290, 1777148, 1775136, 1773260, 1771520, 1769911, 1768428, 1767063, 1765809, 1764658, 1763602, + 1762634, 1761748, 1760937, 1760195, 1759516, 1758897, 1758333, 1757818, 1757350, 1756926, 1756541, 1756193, 1755879, 1755596, + 1755343, 1755118, 1754917, 1754740, 1754584, 1754449, 1754333, 1754234, 1806760, 1806977, 1807005, 1806824, 1806411, 1805741, + 1804797, 1803568, 1802058, 1800287, 1798289, 1796115, 1793821, 1791467, 1789110, 1786795, 1784560, 1782429, 1780419, 1778535, + 1776781, 1775154, 1773650, 1772261, 1770982, 1769804, 1768722, 1767727, 1766813, 1765974, 1765206, 1764501, 1763856, 1763265, + 1762726, 1762234, 1761785, 1761376, 1761005, 1760669, 1760365, 1760091, 1759845, 1759624, 1759428, 1759254, 1759100, 1758966, + 1758850, 1810705, 1810960, 1811033, 1810905, 1810553, 1809956, 1809095, 1807961, 1806553, 1804889, 1802998, 1800924, 1798720, + 1796443, 1794146, 1791875, 1789669, 1787554, 1785548, 1783661, 1781897, 1780255, 1778731, 1777321, 1776018, 1774816, 1773708, + 1772687, 1771748, 1770883, 1770088, 1769358, 1768688, 1768073, 1767509, 1766993, 1766521, 1766090, 1765697, 1765339, 1765014, + 1764719, 1764453, 1764213, 1763998, 1763805, 1763634, 1763483, 1763349, 1814541, 1814833, 1814947, 1814868, 1814574, 1814044, + 1813262, 1812215, 1810904, 1809341, 1807552, 1805576, 1803462, 1801261, 1799026, 1796802, 1794628, 1792532, 1790535, 1788647, + 1786876, 1785221, 1783681, 1782251, 1780927, 1779702, 1778570, 1777525, 1776560, 1775671, 1774852, 1774097, 1773402, 1772763, + 1772176, 1771637, 1771142, 1770689, 1770274, 1769895, 1769550, 1769235, 1768949, 1768690, 1768456, 1768246, 1768057, 1767888, + 1767739, 1818270, 1818596, 1818750, 1818716, 1818476, 1818009, 1817300, 1816336, 1815115, 1813648, 1811957, 1810077, 1808050, + 1805926, 1803754, 1801580, 1799441, 1797368, 1795382, 1793498, 1791721, 1790057, 1788502, 1787055, 1785711, 1784465, 1783310, + 1782242, 1781254, 1780341, 1779498, 1778720, 1778002, 1777340, 1776730, 1776169, 1775652, 1775177, 1774741, 1774342, 1773976, + 1773642, 1773337, 1773059, 1772807, 1772579, 1772373, 1772188, 1772022, 1821894, 1822251, 1822442, 1822451, 1822261, 1821854, + 1821213, 1820327, 1819192, 1817816, 1816219, 1814430, 1812489, 1810442, 1808334, 1806211, 1804111, 1802064, 1800093, 1798214, + 1796437, 1794764, 1793198, 1791736, 1790374, 1789108, 1787933, 1786843, 1785833, 1784898, 1784032, 1783231, 1782491, 1781806, + 1781174, 1780591, 1780053, 1779558, 1779102, 1778682, 1778297, 1777943, 1777620, 1777324, 1777054, 1776809, 1776586, 1776384, + 1776202, 1825427, 1825814, 1826039, 1826088, 1825945, 1825593, 1825016, 1824202, 1823148, 1821859, 1820351, 1818650, 1816793, + 1814821, 1812779, 1810709, 1808649, 1806631, 1804678, 1802808, 1801031, 1799354, 1797778, 1796303, 1794925, 1793641, 1792446, + 1791336, 1790305, 1789348, 1788460, 1787638, 1786876, 1786170, 1785517, 1784912, 1784354, 1783838, 1783362, 1782923, 1782518, + 1782146, 1781804, 1781491, 1781203, 1780941, 1780701, 1780483, 1780286, 1828857, 1829271, 1829528, 1829615, 1829517, 1829217, + 1828700, 1827955, 1826978, 1825770, 1824347, 1822732, 1820957, 1819060, 1817083, 1815068, 1813051, 1811063, 1809132, 1807273, + 1805501, 1803821, 1802238, 1800751, 1799360, 1798059, 1796847, 1795718, 1794667, 1793689, 1792781, 1791938, 1791155, 1790429, + 1789755, 1789130, 1788552, 1788016, 1787521, 1787063, 1786640, 1786250, 1785890, 1785559, 1785255, 1784976, 1784720, 1784486, + 1784273, 1832197, 1832638, 1832925, 1833048, 1832991, 1832740, 1832280, 1831600, 1830694, 1829564, 1828223, 1826689, 1824994, + 1823171, 1821259, 1819299, 1817326, 1815373, 1813464, 1811620, 1809854, 1808175, 1806586, 1805091, 1803687, 1802372, 1801143, + 1799996, 1798926, 1797930, 1797002, 1796139, 1795336, 1794590, 1793897, 1793253, 1792655, 1792100, 1791586, 1791109, 1790668, + 1790260, 1789883, 1789535, 1789214, 1788919, 1788648, 1788399, 1788171, 1835463, 1835928, 1836244, 1836399, 1836382, 1836176, + 1835769, 1835149, 1834311, 1833255, 1831991, 1830536, 1828917, 1827166, 1825320, 1823416, 1821488, 1819570, 1817687, 1815859, + 1814102, 1812425, 1810834, 1809331, 1807916, 1806588, 1805344, 1804180, 1803093, 1802079, 1801132, 1800250, 1799428, 1798662, + 1797950, 1797286, 1796670, 1796096, 1795564, 1795069, 1794611, 1794185, 1793791, 1793426, 1793089, 1792778, 1792491, 1792226, + 1791983, 1838628, 1839116, 1839459, 1839646, 1839665, 1839503, 1839146, 1838584, 1837810, 1836824, 1835634, 1834255, 1832711, + 1831031, 1829250, 1827402, 1825521, 1823641, 1821785, 1819977, 1818231, 1816558, 1814966, 1813458, 1812035, 1810696, 1809438, + 1808260, 1807157, 1806125, 1805161, 1804261, 1803420, 1802637, 1801906, 1801224, 1800590, 1799998, 1799448, 1798936, 1798460, + 1798018, 1797608, 1797227, 1796874, 1796547, 1796245, 1795966, 1795708, 1841736, 1842244, 1842612, 1842828, 1842882, 1842760, + 1842450, 1841942, 1841228, 1840308, 1839188, 1837882, 1836409, 1834798, 1833080, 1831288, 1829456, 1827613, 1825787, 1824000, + 1822267, 1820601, 1819010, 1817498, 1816068, 1814719, 1813449, 1812256, 1811138, 1810090, 1809109, 1808191, 1807334, 1806532, + 1805783, 1805084, 1804432, 1803823, 1803255, 1802726, 1802234, 1801775, 1801348, 1800951, 1800583, 1800240, 1799923, 1799629, + 1799358, 1844757, 1845286, 1845677, 1845921, 1846007, 1845924, 1845658, 1845201, 1844544, 1843687, 1842634, 1841397, 1839994, + 1838451, 1836795, 1835060, 1833275, 1831473, 1829678, 1827913, 1826196, 1824539, 1822951, 1821438, 1820002, 1818644, 1817364, + 1816159, 1815026, 1813963, 1812966, 1812032, 1811158, 1810339, 1809573, 1808857, 1808188, 1807562, 1806978, 1806433, 1805924, + 1805449, 1805006, 1804594, 1804210, 1803853, 1803521, 1803213, 1802927, 1847708, 1848255, 1848668, 1848939, 1849056, 1849008, + 1848785, 1848375, 1847772, 1846975, 1845986, 1844815, 1843479, 1842001, 1840407, 1838728, 1836992, 1835230, 1833468, 1831728, + 1830028, 1828381, 1826798, 1825285, 1823846, 1822481, 1821192, 1819975, 1818830, 1817753, 1816741, 1815792, 1814901, 1814066, + 1813284, 1812551, 1811866, 1811224, 1810623, 1810062, 1809537, 1809046, 1808588, 1808161, 1807762, 1807390, 1807044, 1806722, + 1806422, 1850573, 1851139, 1851573, 1851868, 1852014, 1852001, 1851818, 1851454, 1850903, 1850162, 1849234, 1848127, 1846856, + 1845442, 1843909, 1842285, 1840599, 1838878, 1837150, 1835436, 1833755, 1832122, 1830546, 1829035, 1827594, 1826224, 1824926, + 1823700, 1822543, 1821453, 1820428, 1819464, 1818558, 1817708, 1816911, 1816162, 1815461, 1814803, 1814187, 1813610, 1813070, + 1812564, 1812091, 1811649, 1811236, 1810850, 1810490, 1810154, 1809841, 1853384, 1853966, 1854421, 1854739, 1854912, 1854931, + 1854785, 1854464, 1853962, 1853275, 1852405, 1851359, 1850150, 1848798, 1847324, 1845754, 1844117, 1842439, 1840746, 1839059, + 1837399, 1835779, 1834212, 1832705, 1831263, 1829889, 1828585, 1827350, 1826182, 1825081, 1824042, 1823065, 1822145, 1821280, + 1820467, 1819704, 1818987, 1818314, 1817683, 1817091, 1816535, 1816015, 1815527, 1815071, 1814643, 1814243, 1813870, 1813520, + 1813194, 1856126, 1856724, 1857197, 1857537, 1857737, 1857786, 1857675, 1857395, 1856939, 1856303, 1855488, 1854501, 1853352, + 1852059, 1850643, 1849128, 1847539, 1845904, 1844247, 1842589, 1840951, 1839347, 1837790, 1836288, 1834847, 1833471, 1832162, + 1830919, 1829742, 1828629, 1827579, 1826588, 1825655, 1824776, 1823949, 1823171, 1822440, 1821752, 1821106, 1820499, 1819930, + 1819395, 1818893, 1818422, 1817981, 1817568, 1817180, 1816818, 1816479, 1858816, 1859428, 1859918, 1860279, 1860503, 1860581, + 1860503, 1860261, 1859849, 1859261, 1858499, 1857567, 1856476, 1855241, 1853881, 1852419, 1850879, 1849286, 1847665, 1846037, + 1844422, 1842836, 1841290, 1839795, 1838356, 1836979, 1835666, 1834416, 1833231, 1832108, 1831047, 1830044, 1829098, 1828206, + 1827365, 1826573, 1825827, 1825125, 1824465, 1823844, 1823260, 1822711, 1822195, 1821711, 1821256, 1820829, 1820429, 1820053, + 1819701, 1861437, 1862063, 1862570, 1862950, 1863197, 1863302, 1863256, 1863051, 1862680, 1862138, 1861426, 1860548, 1859513, + 1858333, 1857028, 1855618, 1854126, 1852577, 1850993, 1849396, 1847805, 1846237, 1844705, 1843218, 1841783, 1840407, 1839090, + 1837836, 1836643, 1835512, 1834440, 1833426, 1832468, 1831563, 1830709, 1829903, 1829144, 1828429, 1827755, 1827120, 1826522, + 1825960, 1825430, 1824933, 1824465, 1824025, 1823611, 1823223, 1822859, 1864007, 1864646, 1865168, 1865567, 1865835, 1865966, + 1865950, 1865779, 1865447, 1864949, 1864285, 1863458, 1862475, 1861350, 1860098, 1858739, 1857295, 1855788, 1854241, 1852676, + 1851111, 1849563, 1848045, 1846567, 1845138, 1843763, 1842445, 1841186, 1839987, 1838848, 1837767, 1836742, 1835773, 1834856, + 1833990, 1833171, 1832399, 1831670, 1830983, 1830335, 1829724, 1829148, 1828605, 1828095, 1827614, 1827161, 1826735, 1826335, + 1825958, 1866509, 1867160, 1867697, 1868113, 1868403, 1868558, 1868570, 1868433, 1868138, 1867682, 1867063, 1866285, 1865354, + 1864281, 1863081, 1861773, 1860375, 1858911, 1857403, 1855870, 1854331, 1852804, 1851302, 1849835, 1848413, 1847041, 1845723, + 1844461, 1843257, 1842111, 1841021, 1839987, 1839007, 1838079, 1837201, 1836371, 1835586, 1834845, 1834145, 1833484, 1832860, + 1832271, 1831716, 1831193, 1830699, 1830234, 1829796, 1829383, 1828995, 1868960, 1869623, 1870173, 1870606, 1870915, 1871094, + 1871133, 1871027, 1870767, 1870351, 1869776, 1869045, 1868164, 1867141, 1865991, 1864731, 1863380, 1861959, 1860488, 1858988, + 1857477, 1855972, 1854487, 1853032, 1851618, 1850250, 1848933, 1847669, 1846461, 1845309, 1844212, 1843169, 1842180, 1841241, + 1840352, 1839510, 1838714, 1837960, 1837248, 1836574, 1835938, 1835337, 1834769, 1834234, 1833728, 1833251, 1832801, 1832376, + 1831976, 1871360, 1872034, 1872598, 1873046, 1873374, 1873574, 1873639, 1873562, 1873337, 1872959, 1872425, 1871739, 1870905, + 1869931, 1868830, 1867618, 1866312, 1864933, 1863500, 1862033, 1860550, 1859068, 1857601, 1856160, 1854754, 1853392, 1852077, + 1850813, 1849601, 1848444, 1847340, 1846290, 1845291, 1844343, 1843443, 1842591, 1841783, 1841017, 1840293, 1839608, 1838959, + 1838346, 1837767, 1837219, 1836701, 1836212, 1835751, 1835315, 1834903, 1873711, 1874394, 1874971, 1875434, 1875779, 1876000, + 1876090, 1876041, 1875848, 1875505, 1875012, 1874368, 1873579, 1872652, 1871599, 1870433, 1869173, 1867835, 1866440, 1865007, + 1863553, 1862094, 1860646, 1859219, 1857824, 1856467, 1855155, 1853892, 1852679, 1851517, 1850408, 1849350, 1848343, 1847386, + 1846476, 1845613, 1844794, 1844018, 1843282, 1842585, 1841925, 1841301, 1840709, 1840150, 1839621, 1839120, 1838647, 1838200, + 1837777, 1876011, 1876704, 1877292, 1877770, 1878132, 1878372, 1878485, 1878463, 1878300, 1877992, 1877537, 1876935, 1876189, + 1875308, 1874300, 1873180, 1871963, 1870667, 1869309, 1867910, 1866485, 1865051, 1863622, 1862211, 1860827, 1859478, 1858170, + 1856908, 1855694, 1854529, 1853415, 1852351, 1851337, 1850371, 1849452, 1848579, 1847750, 1846963, 1846216, 1845508, 1844837, + 1844201, 1843598, 1843027, 1842487, 1841975, 1841491, 1841033, 1840599, 1878262, 1878964, 1879563, 1880054, 1880432, 1880691, + 1880826, 1880830, 1880696, 1880421, 1880002, 1879439, 1878735, 1877897, 1876934, 1875858, 1874684, 1873429, 1872109, 1870743, + 1869348, 1867939, 1866531, 1865136, 1863765, 1862424, 1861122, 1859862, 1858648, 1857481, 1856363, 1855293, 1854272, 1853298, + 1852371, 1851489, 1850650, 1849853, 1849096, 1848377, 1847695, 1847048, 1846435, 1845853, 1845301, 1844779, 1844284, 1843815, + 1843370, 1880463, 1881174, 1881784, 1882287, 1882680, 1882957, 1883113, 1883141, 1883035, 1882792, 1882407, 1881882, 1881219, + 1880423, 1879503, 1878471, 1877339, 1876123, 1874841, 1873509, 1872144, 1870760, 1869374, 1867996, 1866638, 1865307, 1864011, + 1862755, 1861541, 1860373, 1859252, 1858178, 1857151, 1856170, 1855235, 1854344, 1853496, 1852689, 1851922, 1851193, 1850501, + 1849844, 1849219, 1848627, 1848065, 1847532, 1847026, 1846547, 1846092, 1882634, 1883352, 1883972, 1884486, 1884893, 1885188, + 1885363, 1885414, 1885335, 1885121, 1884770, 1884281, 1883656, 1882901, 1882022, 1881031, 1879940, 1878764, 1877519, 1876220, + 1874885, 1873528, 1872163, 1870803, 1869459, 1868139, 1866850, 1865597, 1864386, 1863217, 1862093, 1861015, 1859982, 1858995, + 1858052, 1857153, 1856297, 1855481, 1854704, 1853965, 1853263, 1852595, 1851961, 1851358, 1850785, 1850242, 1849726, 1849236, + 1848771, 1884755, 1885481, 1886110, 1886636, 1887056, 1887366, 1887561, 1887634, 1887580, 1887394, 1887075, 1886620, 1886033, + 1885317, 1884478, 1883528, 1882477, 1881340, 1880131, 1878866, 1877560, 1876230, 1874888, 1873547, 1872217, 1870908, 1869628, + 1868380, 1867171, 1866003, 1864877, 1863796, 1862759, 1861766, 1860816, 1859910, 1859045, 1858220, 1857435, 1856686, 1855974, + 1855297, 1854652, 1854039, 1853457, 1852903, 1852377, 1851877, 1851402, 1886828, 1887560, 1888198, 1888734, 1889168, 1889494, + 1889706, 1889800, 1889771, 1889613, 1889323, 1888902, 1888351, 1887672, 1886873, 1885962, 1884951, 1883851, 1882678, 1881447, + 1880172, 1878868, 1877549, 1876227, 1874914, 1873617, 1872345, 1871104, 1869899, 1868732, 1867605, 1866521, 1865480, 1864482, + 1863527, 1862614, 1861741, 1860908, 1860114, 1859357, 1858636, 1857949, 1857295, 1856672, 1856080, 1855517, 1854981, 1854471, + 1853987, 1888851, 1889590, 1890236, 1890783, 1891229, 1891570, 1891800, 1891914, 1891908, 1891776, 1891516, 1891127, 1890610, + 1889968, 1889207, 1888335, 1887361, 1886299, 1885162, 1883964, 1882720, 1881443, 1880148, 1878846, 1877549, 1876266, 1875004, + 1873770, 1872569, 1871404, 1870278, 1869192, 1868148, 1867146, 1866185, 1865265, 1864386, 1863546, 1862743, 1861978, 1861248, + 1860552, 1859889, 1859257, 1858656, 1858083, 1857538, 1857019, 1856525, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1.5 V (slice 6): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_N (deck psp103_idpa_vsb_tt.cir, blocks lam_n_6 and r_6). +pub const VSB_N6 : [4851]u32 = [ + 4294967295, 0, 77495, 54215, 49761, 49531, 51334, 53827, 56544, 59318, 62087, 64827, 67526, 70181, + 72792, 75361, 77892, 80390, 82859, 85304, 87731, 90147, 92556, 94965, 97379, 99806, 102251, 104720, + 107219, 109754, 112331, 114956, 117633, 120369, 123169, 126038, 128982, 132010, 135129, 138352, 141697, 145185, + 148850, 152929, 157130, 161693, 166714, 172306, 178602, 185744, 0, 83740, 62272, 58123, 58938, 61190, + 64167, 67368, 70614, 73836, 77005, 80109, 83143, 86106, 89001, 91830, 94599, 97314, 99979, 102601, + 105186, 107740, 110269, 112780, 115278, 117771, 120264, 122762, 125273, 127802, 130355, 132938, 135555, 138213, + 140916, 143672, 146487, 149368, 152326, 155375, 158532, 161822, 165433, 169136, 173121, 177468, 182273, 187652, + 193739, 0, 93292, 74318, 71205, 72781, 75621, 79224, 83047, 86891, 90681, 94385, 97988, 101485, + 104876, 108164, 111354, 114450, 117460, 120391, 123249, 126041, 128774, 131455, 134091, 136688, 139253, 141792, + 144311, 146816, 149314, 151810, 154309, 156818, 159342, 161887, 164457, 167060, 169702, 172392, 175140, 177960, + 180871, 183898, 187210, 190615, 194284, 198294, 202742, 207740, 8309, 107306, 91474, 89616, 92095, 95628, + 99959, 104493, 109014, 113438, 117731, 121879, 125877, 129728, 133435, 137006, 140448, 143770, 146980, 150086, + 153097, 156021, 158865, 161638, 164345, 166995, 169594, 172148, 174664, 177148, 179605, 182041, 184462, 186873, + 189280, 191688, 194102, 196528, 198974, 201447, 203959, 206521, 209153, 211970, 214843, 217891, 221170, 224753, + 228729, 56329, 126805, 114514, 114009, 117166, 121695, 126773, 132025, 137221, 142270, 147136, 151808, 156283, + 160567, 164667, 168593, 172356, 175965, 179432, 182767, 185980, 189080, 192077, 194978, 197792, 200526, 203187, + 205782, 208319, 210802, 213238, 215632, 217990, 220317, 222618, 224899, 227163, 229417, 231666, 233917, 236176, + 238454, 240763, 243119, 245613, 248151, 250830, 253697, 256818, 104366, 152327, 143564, 144343, 148335, 153580, + 159335, 165231, 171022, 176615, 181976, 187095, 191974, 196621, 201049, 205269, 209296, 213142, 216821, 220343, + 223722, 226968, 230090, 233099, 236002, 238809, 241526, 244161, 246721, 249212, 251640, 254011, 256329, 258600, + 260829, 263021, 265179, 267310, 269417, 271505, 273580, 275650, 277721, 279805, 281915, 284120, 286357, 288697, + 291180, 152420, 183694, 178039, 179904, 184589, 190423, 196876, 203261, 209406, 215428, 221174, 226639, 231828, + 236753, 241430, 245873, 250099, 254123, 257960, 261624, 265128, 268483, 271701, 274791, 277764, 280628, 283390, + 286060, 288642, 291144, 293572, 295932, 298228, 300466, 302651, 304786, 306876, 308926, 310939, 312919, 314872, + 316801, 318714, 320616, 322516, 324451, 326393, 328379, 330435, 200491, 220095, 216894, 219589, 224802, 231183, + 237954, 244719, 251293, 257597, 263563, 269278, 274689, 279813, 284666, 289268, 293635, 297786, 301735, 305499, + 309091, 312524, 315810, 318960, 321983, 324889, 327686, 330382, 332984, 335498, 337930, 340287, 342573, 344793, + 346952, 349054, 351104, 353104, 355060, 356974, 358850, 360692, 362505, 364293, 366061, 367818, 369587, 371354, + 373145, 248576, 260399, 258977, 262262, 267849, 274551, 281615, 288646, 295461, 301980, 308176, 314024, 319588, + 324848, 329823, 334533, 338997, 343234, 347260, 351093, 354746, 358233, 361567, 364758, 367817, 370753, 373576, + 376292, 378909, 381433, 383872, 386229, 388512, 390724, 392870, 394954, 396981, 398954, 400876, 402751, 404582, + 406373, 408126, 409846, 411537, 413202, 414849, 416482, 418126, 296676, 303494, 303282, 306967, 312809, 319731, + 326994, 334207, 341186, 347852, 354178, 360164, 365810, 371163, 376220, 381003, 385532, 389814, 393892, 397770, + 401465, 404989, 408356, 411576, 414661, 417620, 420461, 423193, 425823, 428357, 430802, 433164, 435447, 437657, + 439798, 441875, 443890, 445848, 447760, 449613, 451419, 453180, 454900, 456581, 458227, 459841, 461426, 462987, + 464534, 344790, 348467, 349046, 352994, 359008, 366079, 373478, 380816, 387906, 394672, 401087, 407152, 412869, + 418284, 423397, 428221, 432792, 437126, 441240, 445151, 448874, 452424, 455814, 459055, 462158, 465132, 467987, + 470731, 473370, 475912, 478363, 480729, 483015, 485225, 487365, 489437, 491448, 493399, 495294, 497137, 498929, + 500675, 502377, 504037, 505659, 507244, 508800, 510321, 511816, 392917, 394657, 395740, 399860, 405991, 413163, + 420657, 428080, 435248, 442084, 448561, 454681, 460456, 465906, 471059, 475917, 480520, 484882, 489022, 492956, + 496700, 500269, 503676, 506932, 510048, 513035, 515900, 518653, 521300, 523849, 526305, 528675, 530964, 533176, + 535316, 537389, 539398, 541346, 543237, 545074, 546860, 548598, 550290, 551939, 553547, 555117, 556651, 558151, + 559621, 441055, 441615, 443015, 447249, 453461, 460706, 468267, 475752, 482976, 489861, 496384, 502544, 508355, + 513837, 519013, 523903, 528529, 532912, 537071, 541022, 544782, 548365, 551785, 555052, 558179, 561175, 564049, + 566809, 569463, 572018, 574479, 576853, 579145, 581360, 583503, 585576, 587586, 589533, 591424, 593259, 595042, + 596777, 598464, 600108, 601709, 603271, 604795, 606284, 607739, 489204, 489051, 490651, 494962, 501232, 508531, + 516143, 523674, 530941, 537864, 544421, 550612, 556451, 561957, 567155, 572065, 576710, 581109, 585283, 589248, + 593020, 596614, 600044, 603321, 606456, 609460, 612341, 615108, 617768, 620327, 622794, 625172, 627467, 629685, + 631830, 633906, 635917, 637866, 639756, 641592, 643375, 645108, 646794, 648435, 650034, 651592, 653111, 654595, + 656043, 537359, 536781, 538509, 542875, 549189, 556530, 564182, 571750, 579050, 586004, 592588, 598804, 604665, + 610191, 615408, 620334, 624994, 629407, 633592, 637568, 641351, 644955, 648393, 651678, 654821, 657831, 660718, + 663491, 666156, 668720, 671191, 673573, 675872, 678093, 680241, 682319, 684332, 686283, 688175, 690011, 691795, + 693529, 695215, 696856, 698453, 700010, 701528, 703009, 704454, 585940, 584930, 586627, 590969, 597286, 604646, + 612323, 619919, 627246, 634225, 640832, 647069, 652949, 658493, 663724, 668664, 673336, 677761, 681957, 685943, + 689734, 693346, 696792, 700084, 703233, 706249, 709142, 711919, 714589, 717158, 719632, 722018, 724321, 726545, + 728696, 730777, 732792, 734745, 736639, 738477, 740262, 741997, 743683, 745325, 746923, 748480, 749998, 751478, + 752922, 641805, 637444, 637128, 640298, 646004, 653075, 660632, 668187, 675508, 682497, 689119, 695371, 701266, + 706825, 712069, 717021, 721704, 726139, 730344, 734339, 738138, 741757, 745209, 748508, 751662, 754684, 757582, + 760364, 763038, 765611, 768089, 770478, 772784, 775011, 777165, 779248, 781266, 783221, 785117, 786957, 788743, + 790480, 792168, 793811, 795410, 796968, 798486, 799966, 801411, 703899, 694179, 690295, 691226, 695637, 702010, + 709212, 716599, 723848, 730811, 737428, 743686, 749591, 755160, 760415, 765377, 770070, 774513, 778726, 782728, + 786534, 790159, 793618, 796921, 800081, 803107, 806009, 808795, 811473, 814050, 816531, 818924, 821233, 823463, + 825619, 827705, 829724, 831682, 833580, 835421, 837210, 838948, 840637, 842281, 843882, 845441, 846960, 848441, + 849886, 767879, 752876, 745189, 743514, 746246, 751592, 758196, 765247, 772316, 779187, 785761, 792001, 797901, + 803472, 808732, 813701, 818400, 822849, 827069, 831077, 834888, 838519, 841982, 845290, 848454, 851485, 854390, + 857180, 859861, 862440, 864925, 867320, 869631, 871864, 874022, 876110, 878132, 880091, 881991, 883834, 885624, + 887363, 889054, 890700, 892301, 893861, 895381, 896864, 898310, 831403, 811986, 800906, 796722, 797685, 801835, + 807656, 814213, 820977, 827665, 834132, 840311, 846178, 851733, 856986, 861953, 866653, 871105, 875328, 879339, + 883154, 886788, 890255, 893566, 896733, 899766, 902674, 905466, 908150, 910731, 913218, 915615, 917928, 920163, + 922322, 924412, 926435, 928396, 930297, 932141, 933933, 935673, 937365, 939011, 940614, 942175, 943696, 945179, + 946625, 893606, 870716, 856803, 850395, 849678, 852598, 857545, 863494, 869845, 876257, 882543, 888606, 894399, + 899906, 905130, 910079, 914769, 919216, 923436, 927445, 931260, 934895, 938362, 941674, 944842, 947876, 950785, + 953578, 956262, 958845, 961332, 963730, 966044, 968279, 970439, 972529, 974553, 976514, 978416, 980261, 982053, + 983793, 985486, 987133, 988735, 990297, 991818, 993301, 994748, 954255, 928702, 912482, 904165, 901924, 903663, + 907712, 912993, 918855, 924915, 930949, 936834, 942503, 947924, 953087, 957995, 962656, 967082, 971288, 975287, + 979095, 982724, 986186, 989495, 992660, 995692, 998599, 1001391, 1004073, 1006655, 1009141, 1011537, 1013850, 1016084, + 1018244, 1020333, 1022356, 1024316, 1026217, 1028061, 1029852, 1031593, 1033285, 1034930, 1036533, 1038093, 1039614, 1041097, + 1042543, 1013288, 985756, 967676, 957734, 954135, 954768, 957935, 962524, 967849, 973498, 979221, 984871, 990364, + 995655, 1000721, 1005555, 1010162, 1014546, 1018720, 1022695, 1026484, 1030097, 1033547, 1036845, 1040002, 1043026, 1045926, + 1048711, 1051389, 1053965, 1056446, 1058839, 1061148, 1063378, 1065534, 1067620, 1069639, 1071596, 1073494, 1075336, 1077124, + 1078862, 1080552, 1082195, 1083795, 1085354, 1086872, 1088353, 1089797, 1070630, 1041730, 1022164, 1010834, 1006019, 1005622, + 1007933, 1011820, 1016577, 1021770, 1027130, 1032493, 1037760, 1042872, 1047798, 1052523, 1057042, 1061358, 1065476, 1069407, + 1073158, 1076741, 1080165, 1083442, 1086579, 1089586, 1092472, 1095244, 1097909, 1100474, 1102946, 1105329, 1107629, 1109851, + 1111999, 1114077, 1116090, 1118041, 1119932, 1121768, 1123551, 1125283, 1126967, 1128606, 1130201, 1131755, 1133269, 1134745, + 1136186, 1126093, 1096423, 1075703, 1063175, 1057252, 1055880, 1057352, 1060527, 1064686, 1069380, 1074328, 1079352, 1084341, + 1089226, 1093965, 1098537, 1102931, 1107142, 1111175, 1115032, 1118723, 1122254, 1125634, 1128871, 1131974, 1134951, 1137810, + 1140557, 1143200, 1145745, 1148197, 1150563, 1152847, 1155053, 1157187, 1159252, 1161252, 1163191, 1165071, 1166895, 1168667, + 1170390, 1172064, 1173694, 1175280, 1176825, 1178331, 1179800, 1181233, 1179342, 1149536, 1127978, 1114405, 1107447, 1105127, + 1105757, 1108195, 1111717, 1115865, 1120348, 1124976, 1129630, 1134232, 1138732, 1143101, 1147323, 1151389, 1155296, 1159047, + 1162644, 1166095, 1169404, 1172579, 1175627, 1178554, 1181368, 1184075, 1186680, 1189191, 1191612, 1193948, 1196204, 1198385, + 1200494, 1202537, 1204515, 1206433, 1208294, 1210100, 1211854, 1213559, 1215218, 1216832, 1218403, 1219934, 1221426, 1222882, + 1224302, 1229906, 1200649, 1178585, 1164100, 1156148, 1152878, 1152640, 1154300, 1157133, 1160676, 1164630, 1168799, 1173055, + 1177311, 1181513, 1185623, 1189619, 1193489, 1197226, 1200826, 1204292, 1207626, 1210831, 1213913, 1216877, 1219729, 1222474, + 1225118, 1227666, 1230123, 1232495, 1234785, 1236998, 1239139, 1241210, 1243217, 1245161, 1247047, 1248877, 1250654, 1252381, + 1254060, 1255693, 1257283, 1258831, 1260339, 1261810, 1263245, 1264645, 1277240, 1249241, 1227043, 1211784, 1202866, 1198628, + 1197481, 1198309, 1200392, 1203265, 1206622, 1210263, 1214052, 1217896, 1221734, 1225524, 1229237, 1232856, 1236370, 1239772, + 1243060, 1246235, 1249297, 1252250, 1255097, 1257842, 1260489, 1263043, 1265508, 1267888, 1270188, 1272412, 1274562, 1276644, + 1278660, 1280614, 1282509, 1284348, 1286133, 1287868, 1289554, 1291194, 1292790, 1294344, 1295858, 1297333, 1298772, 1300176, + 1301547, 1320875, 1294777, 1272864, 1257001, 1247157, 1241937, 1239845, 1239793, 1241069, 1243210, 1245907, 1248956, 1252213, + 1255582, 1258995, 1262404, 1265777, 1269090, 1272329, 1275483, 1278548, 1281521, 1284399, 1287184, 1289877, 1292481, 1294999, + 1297433, 1299786, 1302063, 1304267, 1306399, 1308465, 1310467, 1312408, 1314291, 1316118, 1317893, 1319617, 1321294, 1322924, + 1324511, 1326056, 1327561, 1329028, 1330459, 1331854, 1333217, 1334547, 1360536, 1336813, 1315631, 1299389, 1288697, 1282511, + 1279463, 1278506, 1278943, 1280312, 1282307, 1284716, 1287394, 1290240, 1293179, 1296159, 1299143, 1302105, 1305024, 1307889, + 1310689, 1313420, 1316077, 1318659, 1321165, 1323596, 1325954, 1328240, 1330455, 1332603, 1334685, 1336705, 1338664, 1340566, + 1342411, 1344204, 1345946, 1347640, 1349286, 1350889, 1352449, 1353968, 1355448, 1356891, 1358298, 1359671, 1361012, 1362321, + 1363600, 1396228, 1375114, 1355083, 1338744, 1327335, 1320241, 1316263, 1314414, 1314012, 1314604, 1315882, 1317634, 1319712, + 1322008, 1324446, 1326969, 1329536, 1332116, 1334686, 1337230, 1339737, 1342197, 1344605, 1346957, 1349251, 1351485, 1353659, + 1355773, 1357829, 1359827, 1361769, 1363656, 1365491, 1367274, 1369008, 1370695, 1372336, 1373934, 1375489, 1377004, 1378480, + 1379919, 1381322, 1382692, 1384028, 1385333, 1386607, 1387852, 1389070, 1428173, 1409673, 1391123, 1375004, 1363061, 1355160, + 1350320, 1347626, 1346422, 1346263, 1346844, 1347951, 1349434, 1351183, 1353117, 1355177, 1357317, 1359505, 1361714, 1363925, + 1366124, 1368299, 1370444, 1372551, 1374617, 1376638, 1378614, 1380544, 1382426, 1384260, 1386049, 1387791, 1389489, 1391142, + 1392754, 1394323, 1395853, 1397345, 1398799, 1400217, 1401600, 1402950, 1404268, 1405555, 1406812, 1408040, 1409241, 1410415, + 1411564, 1456751, 1440698, 1423828, 1408241, 1395984, 1387410, 1381801, 1378337, 1376393, 1375535, 1375461, 1375959, 1376875, + 1378099, 1379547, 1381157, 1382881, 1384683, 1386534, 1388414, 1390305, 1392195, 1394073, 1395932, 1397766, 1399571, 1401344, + 1403083, 1404786, 1406452, 1408082, 1409674, 1411229, 1412747, 1414230, 1415678, 1417091, 1418471, 1419819, 1421135, 1422421, + 1423677, 1424905, 1426105, 1427278, 1428426, 1429549, 1430648, 1431724, 1482372, 1468508, 1453382, 1438596, 1426262, 1417171, + 1410904, 1406757, 1404149, 1402657, 1401986, 1401924, 1402317, 1403053, 1404047, 1405233, 1406564, 1407999, 1409509, 1411071, + 1412665, 1414278, 1415898, 1417515, 1419123, 1420715, 1422288, 1423839, 1425365, 1426864, 1428335, 1429777, 1431190, 1432574, + 1433928, 1435254, 1436550, 1437819, 1439059, 1440273, 1441461, 1442622, 1443759, 1444871, 1445960, 1447027, 1448071, 1449094, + 1450096, 1505450, 1493490, 1480060, 1466270, 1454091, 1444650, 1437841, 1433105, 1429911, 1427856, 1426649, 1426081, 1426000, + 1426291, 1426868, 1427665, 1428631, 1429726, 1430918, 1432182, 1433497, 1434849, 1436224, 1437611, 1439003, 1440393, 1441775, + 1443145, 1444501, 1445839, 1447157, 1448455, 1449730, 1450983, 1452213, 1453420, 1454603, 1455762, 1456899, 1458013, 1459105, + 1460174, 1461222, 1462249, 1463255, 1464242, 1465209, 1466157, 1467088, 1526350, 1516019, 1504166, 1491484, 1479669, 1470047, + 1462815, 1457581, 1453877, 1451325, 1449643, 1448625, 1448118, 1448008, 1448208, 1448651, 1449284, 1450067, 1450967, 1451956, + 1453014, 1454124, 1455271, 1456444, 1457634, 1458833, 1460035, 1461236, 1462431, 1463617, 1464791, 1465952, 1467097, 1468226, + 1469338, 1470431, 1471507, 1472563, 1473601, 1474620, 1475620, 1476601, 1477565, 1478510, 1479438, 1480348, 1481242, 1482119, + 1482980, 1545386, 1536437, 1526006, 1514468, 1503186, 1493546, 1486009, 1480364, 1476223, 1473238, 1471137, 1469718, 1468831, + 1468362, 1468223, 1468347, 1468680, 1469180, 1469812, 1470551, 1471372, 1472259, 1473196, 1474171, 1475175, 1476198, 1477233, + 1478276, 1479322, 1480366, 1481405, 1482438, 1483462, 1484475, 1485475, 1486463, 1487437, 1488397, 1489342, 1490271, 1491186, + 1492085, 1492969, 1493838, 1494692, 1495531, 1496355, 1497165, 1497961, 1562821, 1555043, 1545870, 1535452, 1524826, 1515317, + 1507590, 1501619, 1497108, 1493746, 1491276, 1489503, 1488279, 1487489, 1487046, 1486882, 1486943, 1487186, 1487577, 1488086, + 1488692, 1489376, 1490120, 1490914, 1491745, 1492605, 1493487, 1494384, 1495291, 1496204, 1497119, 1498033, 1498944, 1499849, + 1500747, 1501636, 1502516, 1503386, 1504244, 1505091, 1505926, 1506748, 1507558, 1508356, 1509141, 1509913, 1510674, 1511421, + 1512157, 1578869, 1572084, 1564012, 1554654, 1544756, 1535508, 1527703, 1521487, 1516669, 1512982, 1510189, 1508103, 1506577, + 1505500, 1504785, 1504362, 1504178, 1504189, 1504360, 1504662, 1505071, 1505568, 1506137, 1506763, 1507437, 1508148, 1508888, + 1509650, 1510430, 1511221, 1512021, 1512825, 1513631, 1514436, 1515239, 1516038, 1516831, 1517617, 1518395, 1519165, 1519926, + 1520678, 1521419, 1522151, 1522872, 1523583, 1524284, 1524975, 1525655, 1593715, 1587776, 1580661, 1572280, 1563142, 1554260, + 1546479, 1540097, 1535030, 1531065, 1527990, 1525627, 1523833, 1522499, 1521538, 1520882, 1520476, 1520276, 1520247, 1520360, + 1520590, 1520917, 1521324, 1521798, 1522327, 1522900, 1523509, 1524148, 1524809, 1525489, 1526182, 1526884, 1527593, 1528306, + 1529021, 1529735, 1530448, 1531156, 1531861, 1532560, 1533253, 1533938, 1534617, 1535288, 1535950, 1536605, 1537251, 1537888, + 1538517, 1607515, 1602299, 1596014, 1588518, 1580137, 1571698, 1564036, 1557562, 1552302, 1548104, 1544783, 1542174, 1540141, + 1538576, 1537394, 1536526, 1535919, 1535528, 1535317, 1535256, 1535322, 1535492, 1535752, 1536085, 1536480, 1536926, 1537415, + 1537939, 1538491, 1539067, 1539661, 1540269, 1540889, 1541516, 1542149, 1542785, 1543422, 1544060, 1544695, 1545328, 1545958, + 1546583, 1547203, 1547817, 1548426, 1549028, 1549623, 1550211, 1550793, 1620383, 1615790, 1610226, 1603524, 1595874, 1587928, + 1580464, 1573971, 1568572, 1564182, 1560650, 1557824, 1555578, 1553806, 1552424, 1551365, 1550574, 1550009, 1549631, 1549412, + 1549326, 1549354, 1549477, 1549680, 1549952, 1550281, 1550658, 1551076, 1551527, 1552006, 1552509, 1553030, 1553566, 1554113, + 1554670, 1555234, 1555801, 1556372, 1556944, 1557516, 1558087, 1558655, 1559221, 1559783, 1560341, 1560895, 1561443, 1561986, + 1562524, 1632430, 1628374, 1623437, 1617443, 1610484, 1603057, 1595858, 1589411, 1583926, 1579383, 1575670, 1572655, 1570219, + 1568260, 1566697, 1565464, 1564507, 1563781, 1563251, 1562886, 1562662, 1562557, 1562554, 1562637, 1562794, 1563014, 1563288, + 1563607, 1563964, 1564354, 1564771, 1565210, 1565669, 1566142, 1566628, 1567123, 1567626, 1568135, 1568647, 1569162, 1569678, + 1570194, 1570709, 1571223, 1571734, 1572242, 1572747, 1573248, 1573745, 1643747, 1640159, 1635769, 1630403, 1624085, 1617184, + 1610298, 1603958, 1598436, 1593780, 1589916, 1586736, 1584130, 1582003, 1580276, 1578884, 1577774, 1576902, 1576231, 1575732, + 1575379, 1575152, 1575032, 1575004, 1575055, 1575173, 1575350, 1575577, 1575847, 1576153, 1576489, 1576853, 1577238, 1577642, + 1578061, 1578493, 1578935, 1579386, 1579842, 1580304, 1580768, 1581235, 1581703, 1582171, 1582638, 1583104, 1583568, 1584030, + 1584489, 1654412, 1651232, 1647322, 1642512, 1636783, 1630399, 1623861, 1617677, 1612167, 1607434, 1603448, 1600125, 1597369, + 1595091, 1593215, 1591678, 1590428, 1589420, 1588620, 1587997, 1587525, 1587184, 1586955, 1586823, 1586775, 1586799, 1586885, + 1587026, 1587213, 1587440, 1587702, 1587993, 1588310, 1588649, 1589005, 1589377, 1589762, 1590158, 1590562, 1590973, 1591389, + 1591810, 1592233, 1592658, 1593084, 1593511, 1593937, 1594362, 1594785, 1664480, 1661659, 1658170, 1653854, 1648662, 1642777, + 1636607, 1630623, 1625167, 1620394, 1616315, 1612871, 1609983, 1607570, 1605559, 1603890, 1602511, 1601379, 1600459, 1599720, + 1599138, 1598691, 1598361, 1598132, 1597991, 1597926, 1597928, 1597987, 1598097, 1598250, 1598442, 1598665, 1598918, 1599194, + 1599492, 1599808, 1600139, 1600482, 1600837, 1601200, 1601571, 1601948, 1602329, 1602714, 1603101, 1603490, 1603880, 1604270, + 1604660, 1674014, 1671510, 1668394, 1664516, 1659810, 1654398, 1648606, 1642854, 1637492, 1632712, 1628566, 1625024, 1622022, + 1619487, 1617354, 1615564, 1614066, 1612819, 1611788, 1610943, 1610257, 1609711, 1609286, 1608967, 1608738, 1608590, 1608513, + 1608496, 1608533, 1608616, 1608740, 1608901, 1609092, 1609310, 1609552, 1609814, 1610093, 1610388, 1610695, 1611014, 1611341, + 1611677, 1612018, 1612365, 1612715, 1613069, 1613425, 1613782, 1614140, 1683058, 1680836, 1678049, 1674562, 1670296, 1665327, + 1659911, 1654415, 1649181, 1644428, 1640242, 1636622, 1633522, 1630881, 1628637, 1626737, 1625130, 1623777, 1622643, 1621698, + 1620916, 1620278, 1619764, 1619359, 1619049, 1618822, 1618669, 1618581, 1618548, 1618566, 1618627, 1618727, 1618860, 1619023, + 1619211, 1619422, 1619653, 1619901, 1620164, 1620439, 1620726, 1621021, 1621325, 1621635, 1621951, 1622271, 1622594, 1622920, + 1623249, 1691660, 1689689, 1687195, 1684056, 1680188, 1675631, 1670583, 1665359, 1660280, 1655583, 1651382, 1647705, 1644524, + 1641789, 1639446, 1637445, 1635738, 1634287, 1633057, 1632018, 1631147, 1630422, 1629825, 1629339, 1628952, 1628652, 1628427, + 1628270, 1628173, 1628128, 1628129, 1628171, 1628249, 1628359, 1628497, 1628659, 1628844, 1629047, 1629267, 1629501, 1629748, + 1630006, 1630274, 1630549, 1630831, 1631119, 1631411, 1631708, 1632007, 1699857, 1698110, 1695878, 1693049, 1689540, 1685364, + 1680671, 1675726, 1670826, 1666211, 1662021, 1658306, 1655059, 1652243, 1649813, 1647720, 1645921, 1644379, 1643059, 1641934, + 1640979, 1640172, 1639496, 1638934, 1638474, 1638104, 1637812, 1637590, 1637431, 1637326, 1637270, 1637257, 1637282, 1637342, + 1637431, 1637547, 1637687, 1637848, 1638027, 1638222, 1638431, 1638653, 1638885, 1639127, 1639377, 1639634, 1639897, 1640165, + 1640437, 1707667, 1706121, 1704125, 1701576, 1698391, 1694566, 1690212, 1685548, 1680844, 1676334, 1672177, 1668444, 1665148, + 1662265, 1659757, 1657581, 1655699, 1654073, 1652671, 1651464, 1650430, 1649547, 1648797, 1648165, 1647636, 1647199, 1646843, + 1646560, 1646341, 1646180, 1646069, 1646004, 1645980, 1645991, 1646034, 1646106, 1646203, 1646323, 1646463, 1646620, 1646793, + 1646980, 1647179, 1647389, 1647608, 1647836, 1648070, 1648310, 1648556, 1715139, 1713774, 1711989, 1709691, 1706799, 1703296, + 1699262, 1694877, 1690379, 1685994, 1681891, 1678159, 1674828, 1671890, 1669314, 1667065, 1665106, 1663402, 1661923, 1660641, + 1659533, 1658578, 1657758, 1657058, 1656463, 1655963, 1655547, 1655206, 1654931, 1654715, 1654552, 1654437, 1654364, 1654329, + 1654328, 1654357, 1654413, 1654494, 1654596, 1654717, 1654855, 1655009, 1655175, 1655354, 1655544, 1655742, 1655949, 1656163, + 1656383, 1722294, 1721094, 1719499, 1717426, 1714799, 1711591, 1707858, 1703745, 1699460, 1695216, 1691185, 1687471, 1684121, + 1681139, 1678506, 1676191, 1674163, 1672388, 1670837, 1669484, 1668307, 1667284, 1666398, 1665633, 1664977, 1664417, 1663943, + 1663546, 1663217, 1662949, 1662736, 1662573, 1662454, 1662375, 1662331, 1662319, 1662336, 1662378, 1662443, 1662530, 1662634, + 1662755, 1662891, 1663040, 1663200, 1663371, 1663552, 1663740, 1663935, 1729146, 1728094, 1726672, 1724804, 1722417, 1719480, + 1716028, 1712178, 1708108, 1704017, 1700074, 1696396, 1693041, 1690028, 1687348, 1684976, 1682885, 1681044, 1679428, 1678009, + 1676766, 1675680, 1674731, 1673907, 1673191, 1672575, 1672045, 1671595, 1671214, 1670897, 1670637, 1670428, 1670264, 1670142, + 1670057, 1670006, 1669985, 1669990, 1670021, 1670073, 1670145, 1670235, 1670340, 1670460, 1670593, 1670737, 1670892, 1671055, + 1671227, 1735721, 1734805, 1733540, 1731857, 1729689, 1726999, 1723808, 1720210, 1716356, 1712427, 1708586, 1704957, 1701612, + 1698580, 1695862, 1693441, 1691294, 1689394, 1687717, 1686237, 1684933, 1683786, 1682779, 1681897, 1681126, 1680455, 1679873, + 1679372, 1678942, 1678578, 1678271, 1678018, 1677812, 1677649, 1677524, 1677435, 1677377, 1677347, 1677344, 1677363, 1677404, + 1677463, 1677539, 1677631, 1677737, 1677855, 1677984, 1678124, 1678272, 1742029, 1741236, 1740114, 1738601, 1736631, 1734168, + 1731222, 1727864, 1724223, 1720460, 1716733, 1713168, 1709845, 1706806, 1704060, 1701598, 1699402, 1697449, 1695716, 1694179, + 1692818, 1691615, 1690553, 1689616, 1688792, 1688070, 1687438, 1686888, 1686412, 1686002, 1685652, 1685356, 1685109, 1684906, + 1684744, 1684618, 1684524, 1684461, 1684424, 1684412, 1684422, 1684452, 1684500, 1684565, 1684644, 1684737, 1684842, 1684958, + 1685084, 1748106, 1747426, 1746434, 1745074, 1743286, 1741031, 1738310, 1735179, 1731745, 1728152, 1724548, 1721057, 1717769, + 1714733, 1711968, 1709473, 1707235, 1705234, 1703449, 1701860, 1700446, 1699190, 1698075, 1697086, 1696212, 1695440, 1694761, + 1694164, 1693643, 1693189, 1692797, 1692460, 1692174, 1691933, 1691734, 1691572, 1691444, 1691347, 1691279, 1691236, 1691216, + 1691218, 1691239, 1691277, 1691330, 1691399, 1691480, 1691573, 1691676, 1753950, 1753373, 1752501, 1751281, 1749659, 1747594, + 1745083, 1742166, 1738934, 1735511, 1732035, 1728630, 1725387, 1722365, 1719591, 1717071, 1714797, 1712754, 1710923, 1709285, + 1707821, 1706515, 1705351, 1704314, 1703392, 1702574, 1701848, 1701208, 1700643, 1700148, 1699715, 1699339, 1699014, 1698737, + 1698502, 1698306, 1698145, 1698016, 1697917, 1697844, 1697796, 1697769, 1697763, 1697776, 1697805, 1697849, 1697907, 1697978, + 1698060, 1759586, 1759104, 1758341, 1757250, 1755779, 1753890, 1751572, 1748857, 1745817, 1742564, 1739222, 1735909, 1732722, + 1729723, 1726949, 1724411, 1722108, 1720028, 1718155, 1716473, 1714963, 1713611, 1712400, 1711317, 1710349, 1709486, 1708717, + 1708034, 1707428, 1706892, 1706420, 1706006, 1705645, 1705332, 1705062, 1704833, 1704640, 1704480, 1704351, 1704249, 1704173, + 1704120, 1704087, 1704074, 1704079, 1704100, 1704135, 1704184, 1704245, 1765020, 1764626, 1763963, 1762990, 1761658, 1759930, + 1757792, 1755266, 1752411, 1749324, 1746118, 1742905, 1739782, 1736816, 1734050, 1731502, 1729176, 1727064, 1725154, 1723431, + 1721880, 1720483, 1719229, 1718102, 1717091, 1716186, 1715375, 1714651, 1714005, 1713431, 1712922, 1712471, 1712075, 1711727, + 1711425, 1711163, 1710939, 1710749, 1710590, 1710461, 1710357, 1710277, 1710220, 1710182, 1710163, 1710161, 1710175, 1710202, + 1710243, 1770267, 1769954, 1769384, 1768519, 1767315, 1765735, 1763764, 1761414, 1758736, 1755811, 1752742, 1749634, 1746582, + 1743657, 1740907, 1738356, 1736014, 1733876, 1731933, 1730174, 1728583, 1727146, 1725851, 1724683, 1723631, 1722685, 1721835, + 1721072, 1720388, 1719776, 1719231, 1718745, 1718314, 1717934, 1717599, 1717306, 1717052, 1716833, 1716646, 1716489, 1716358, + 1716253, 1716171, 1716110, 1716067, 1716043, 1716035, 1716041, 1716062, 1775333, 1775093, 1774609, 1773844, 1772758, 1771315, + 1769498, 1767314, 1764804, 1762036, 1759104, 1756105, 1753130, 1750254, 1747528, 1744981, 1742628, 1740469, 1738499, 1736707, + 1735081, 1733607, 1732273, 1731066, 1729976, 1728991, 1728103, 1727303, 1726582, 1725935, 1725355, 1724835, 1724371, 1723959, + 1723593, 1723270, 1722986, 1722739, 1722525, 1722341, 1722185, 1722055, 1721948, 1721864, 1721799, 1721753, 1721723, 1721710, + 1721710, 1780241, 1780070, 1779665, 1778992, 1778014, 1776697, 1775023, 1772994, 1770642, 1768027, 1765229, 1762340, 1759448, + 1756627, 1753931, 1751395, 1749037, 1746863, 1744869, 1743048, 1741389, 1739881, 1738510, 1737267, 1736140, 1735119, 1734195, + 1733358, 1732603, 1731921, 1731307, 1730755, 1730259, 1729816, 1729420, 1729067, 1728755, 1728480, 1728239, 1728029, 1727848, + 1727693, 1727563, 1727456, 1727369, 1727301, 1727251, 1727217, 1727199, 1784975, 1784868, 1784536, 1783949, 1783071, 1781871, + 1780330, 1778446, 1776245, 1773776, 1771111, 1768335, 1765529, 1762769, 1760110, 1757591, 1755235, 1753050, 1751037, 1749192, + 1747504, 1745964, 1744561, 1743283, 1742122, 1741066, 1740107, 1739237, 1738449, 1737734, 1737088, 1736504, 1735978, 1735504, + 1735079, 1734698, 1734359, 1734057, 1733790, 1733555, 1733349, 1733171, 1733018, 1732888, 1732780, 1732692, 1732621, 1732568, + 1732530, 1789570, 1789522, 1789258, 1788749, 1787964, 1786873, 1785455, 1783706, 1781646, 1779317, 1776783, 1774118, 1771402, + 1768707, 1766091, 1763595, 1761245, 1759055, 1757027, 1755160, 1753447, 1751878, 1750444, 1749135, 1747941, 1746852, 1745860, + 1744958, 1744137, 1743391, 1742713, 1742099, 1741543, 1741040, 1740587, 1740179, 1739812, 1739484, 1739192, 1738932, 1738703, + 1738502, 1738326, 1738174, 1738045, 1737936, 1737846, 1737773, 1737717, 1794019, 1794026, 1793824, 1793389, 1792690, 1791699, + 1790395, 1788773, 1786847, 1784652, 1782244, 1779691, 1777067, 1774441, 1771872, 1769404, 1767067, 1764875, 1762838, 1760953, + 1759217, 1757623, 1756160, 1754821, 1753597, 1752477, 1751454, 1750521, 1749669, 1748892, 1748185, 1747542, 1746957, 1746426, + 1745945, 1745511, 1745118, 1744765, 1744448, 1744164, 1743912, 1743688, 1743490, 1743317, 1743167, 1743038, 1742929, 1742838, + 1742763, 1798323, 1798381, 1798239, 1797872, 1797253, 1796355, 1795158, 1793655, 1791855, 1789788, 1787502, 1785060, 1782528, + 1779976, 1777459, 1775024, 1772704, 1770516, 1768473, 1766575, 1764820, 1763202, 1761714, 1760348, 1759095, 1757946, 1756894, + 1755931, 1755050, 1754244, 1753509, 1752837, 1752225, 1751667, 1751160, 1750699, 1750281, 1749904, 1749563, 1749256, 1748981, + 1748735, 1748516, 1748323, 1748152, 1748004, 1747875, 1747766, 1747673, 1802510, 1802615, 1802527, 1802224, 1801679, 1800868, + 1799770, 1798377, 1796696, 1794751, 1792583, 1790248, 1787810, 1785332, 1782871, 1780474, 1778175, 1775996, 1773950, 1772042, + 1770271, 1768633, 1767122, 1765730, 1764450, 1763274, 1762194, 1761202, 1760293, 1759460, 1758696, 1757998, 1757359, 1756775, + 1756242, 1755756, 1755314, 1754912, 1754548, 1754218, 1753921, 1753654, 1753414, 1753200, 1753010, 1752842, 1752695, 1752567, + 1752458, 1806568, 1806718, 1806681, 1806436, 1805961, 1805230, 1804225, 1802936, 1801367, 1799537, 1797483, 1795255, 1792910, + 1790508, 1788106, 1785750, 1783477, 1781311, 1779267, 1777352, 1775568, 1773913, 1772381, 1770966, 1769661, 1768459, 1767353, + 1766335, 1765399, 1764539, 1763749, 1763024, 1762359, 1761750, 1761192, 1760682, 1760216, 1759791, 1759404, 1759053, 1758734, + 1758446, 1758186, 1757952, 1757743, 1757556, 1757391, 1757245, 1757118, 1810513, 1810704, 1810714, 1810525, 1810114, 1809459, + 1808540, 1807348, 1805884, 1804164, 1802219, 1800094, 1797841, 1795517, 1793177, 1790866, 1788622, 1786472, 1784434, 1782516, + 1780722, 1779052, 1777502, 1776066, 1774738, 1773512, 1772381, 1771337, 1770376, 1769490, 1768675, 1767925, 1767235, 1766601, + 1766020, 1765486, 1764997, 1764549, 1764140, 1763767, 1763428, 1763119, 1762839, 1762586, 1762357, 1762152, 1761969, 1761806, + 1761662, 1814346, 1814576, 1814631, 1814493, 1814142, 1813557, 1812719, 1811618, 1810253, 1808637, 1806797, 1804771, 1802610, + 1800364, 1798087, 1795824, 1793614, 1791484, 1789454, 1787537, 1785736, 1784054, 1782488, 1781033, 1779684, 1778436, 1777281, + 1776213, 1775228, 1774318, 1773478, 1772704, 1771990, 1771333, 1770728, 1770171, 1769660, 1769190, 1768760, 1768366, 1768005, + 1767677, 1767377, 1767105, 1766858, 1766635, 1766435, 1766255, 1766094, 1818069, 1818335, 1818432, 1818342, 1818047, 1817528, + 1816766, 1815750, 1814478, 1812961, 1811221, 1809293, 1807221, 1805054, 1802842, 1800629, 1798455, 1796349, 1794332, 1792418, + 1790614, 1788922, 1787342, 1785871, 1784503, 1783233, 1782057, 1780967, 1779958, 1779025, 1778162, 1777364, 1776627, 1775947, + 1775320, 1774741, 1774208, 1773717, 1773266, 1772852, 1772472, 1772123, 1771805, 1771514, 1771249, 1771009, 1770791, 1770594, + 1770417, 1821697, 1821997, 1822132, 1822087, 1821845, 1821387, 1820695, 1819759, 1818576, 1817152, 1815508, 1813673, 1811689, + 1809600, 1807453, 1805293, 1803158, 1801079, 1799078, 1797170, 1795365, 1793666, 1792075, 1790588, 1789203, 1787915, 1786717, + 1785606, 1784575, 1783620, 1782735, 1781915, 1781156, 1780454, 1779804, 1779204, 1778650, 1778139, 1777667, 1777233, 1776833, + 1776466, 1776129, 1775820, 1775537, 1775279, 1775045, 1774832, 1774639, 1825218, 1825549, 1825721, 1825718, 1825526, 1825125, + 1824500, 1823639, 1822539, 1821204, 1819651, 1817907, 1816009, 1813997, 1811917, 1809812, 1807718, 1805668, 1803686, 1801788, + 1799985, 1798282, 1796681, 1795182, 1793782, 1792476, 1791260, 1790129, 1789077, 1788101, 1787194, 1786353, 1785573, 1784850, + 1784180, 1783559, 1782984, 1782453, 1781962, 1781508, 1781089, 1780704, 1780348, 1780022, 1779722, 1779448, 1779196, 1778967, + 1778759, 1828645, 1829006, 1829212, 1829250, 1829103, 1828757, 1828194, 1827404, 1826382, 1825131, 1823666, 1822009, 1820194, + 1818259, 1816246, 1814196, 1812146, 1810128, 1808168, 1806282, 1804483, 1802779, 1801172, 1799662, 1798248, 1796926, 1795693, + 1794543, 1793473, 1792476, 1791549, 1790688, 1789887, 1789144, 1788453, 1787813, 1787218, 1786667, 1786157, 1785685, 1785248, + 1784844, 1784471, 1784127, 1783811, 1783520, 1783252, 1783007, 1782784, 1831995, 1832384, 1832621, 1832696, 1832593, 1832297, + 1831792, 1831069, 1830120, 1828949, 1827566, 1825993, 1824259, 1822399, 1820453, 1818459, 1816455, 1814471, 1812534, 1810663, + 1808871, 1807167, 1805556, 1804037, 1802611, 1801275, 1800026, 1798859, 1797770, 1796754, 1795808, 1794927, 1794107, 1793343, + 1792633, 1791973, 1791360, 1790790, 1790261, 1789770, 1789315, 1788893, 1788503, 1788142, 1787809, 1787502, 1787219, 1786958, + 1786720, 1835240, 1835655, 1835923, 1836033, 1835971, 1835723, 1835274, 1834613, 1833734, 1832638, 1831336, 1829843, 1828188, + 1826402, 1824522, 1822586, 1820628, 1818681, 1816771, 1814917, 1813135, 1811435, 1809821, 1808296, 1806860, 1805511, 1804248, + 1803065, 1801959, 1800926, 1799961, 1799062, 1798223, 1797441, 1796712, 1796033, 1795401, 1794813, 1794266, 1793758, 1793285, + 1792847, 1792440, 1792063, 1791713, 1791390, 1791092, 1790816, 1790563, 1838424, 1838864, 1839160, 1839302, 1839279, 1839075, + 1838677, 1838075, 1837261, 1836237, 1835010, 1833595, 1832015, 1830301, 1828487, 1826608, 1824698, 1822789, 1820907, 1819072, + 1817302, 1815606, 1813992, 1812462, 1811018, 1809658, 1808381, 1807183, 1806061, 1805011, 1804029, 1803112, 1802255, 1801455, + 1800708, 1800011, 1799361, 1798755, 1798190, 1797664, 1797175, 1796719, 1796296, 1795902, 1795537, 1795199, 1794885, 1794595, + 1794326, 1841520, 1841982, 1842305, 1842478, 1842491, 1842329, 1841980, 1841433, 1840682, 1839726, 1838570, 1837229, 1835723, + 1834080, 1832330, 1830509, 1828648, 1826778, 1824926, 1823113, 1821357, 1819669, 1818056, 1816523, 1815072, 1813703, 1812414, + 1811203, 1810067, 1809001, 1808003, 1807068, 1806194, 1805376, 1804612, 1803898, 1803230, 1802607, 1802025, 1801483, 1800977, + 1800505, 1800065, 1799656, 1799276, 1798922, 1798593, 1798289, 1798006, 1844542, 1845026, 1845373, 1845576, 1845622, 1845500, + 1845197, 1844702, 1844010, 1843118, 1842031, 1840761, 1839326, 1837751, 1836066, 1834301, 1832489, 1830660, 1828840, 1827051, + 1825311, 1823632, 1822023, 1820489, 1819033, 1817656, 1816357, 1815134, 1813983, 1812903, 1811889, 1810939, 1810048, 1809214, + 1808432, 1807701, 1807017, 1806377, 1805779, 1805220, 1804698, 1804210, 1803755, 1803331, 1802935, 1802566, 1802223, 1801904, + 1801608, 1847476, 1847980, 1848352, 1848582, 1848661, 1848576, 1848317, 1847872, 1847236, 1846405, 1845383, 1844181, 1842815, + 1841307, 1839685, 1837978, 1836216, 1834429, 1832642, 1830879, 1829156, 1827489, 1825885, 1824353, 1822894, 1821511, 1820203, + 1818969, 1817806, 1816712, 1815684, 1814719, 1813813, 1812962, 1812165, 1811418, 1810718, 1810062, 1809448, 1808874, 1808336, + 1807833, 1807362, 1806923, 1806513, 1806130, 1805773, 1805440, 1805130, 1850353, 1850877, 1851271, 1851527, 1851636, 1851586, + 1851368, 1850970, 1850386, 1849613, 1848654, 1847516, 1846216, 1844773, 1843212, 1841561, 1839850, 1838105, 1836353, 1834617, + 1832914, 1831259, 1829663, 1828133, 1826673, 1825285, 1823969, 1822725, 1821551, 1820445, 1819403, 1818423, 1817502, 1816637, + 1815825, 1815062, 1814346, 1813675, 1813045, 1812455, 1811902, 1811384, 1810899, 1810445, 1810020, 1809623, 1809252, 1808905, + 1808582, 1853159, 1853700, 1854116, 1854396, 1854534, 1854518, 1854338, 1853984, 1853450, 1852732, 1851832, 1850757, 1849521, + 1848141, 1846640, 1845045, 1843383, 1841682, 1839965, 1838257, 1836576, 1834936, 1833349, 1831823, 1830363, 1828971, 1827650, + 1826397, 1825213, 1824095, 1823041, 1822048, 1821113, 1820233, 1819406, 1818628, 1817898, 1817211, 1816567, 1815962, 1815394, + 1814861, 1814362, 1813894, 1813455, 1813044, 1812659, 1812299, 1811963, 1855910, 1856468, 1856903, 1857206, 1857371, 1857386, + 1857243, 1856931, 1856444, 1855778, 1854934, 1853919, 1852743, 1851424, 1849982, 1848442, 1846829, 1845171, 1843491, 1841813, + 1840154, 1838530, 1836954, 1835433, 1833974, 1832581, 1831254, 1829995, 1828801, 1827673, 1826607, 1825601, 1824653, 1823759, + 1822918, 1822126, 1821381, 1820680, 1820021, 1819401, 1818819, 1818272, 1817758, 1817276, 1816823, 1816399, 1816001, 1815628, + 1815278, 1858591, 1859165, 1859618, 1859943, 1860133, 1860179, 1860070, 1859797, 1859355, 1858739, 1857949, 1856991, 1855874, + 1854613, 1853228, 1851742, 1850180, 1848565, 1846923, 1845275, 1843640, 1842034, 1840470, 1838956, 1837501, 1836107, 1834776, + 1833511, 1832309, 1831171, 1830095, 1829077, 1828116, 1827210, 1826355, 1825549, 1824790, 1824075, 1823402, 1822769, 1822172, + 1821612, 1821084, 1820588, 1820122, 1819685, 1819274, 1818888, 1818526, 1861218, 1861806, 1862277, 1862623, 1862837, 1862911, + 1862834, 1862599, 1862199, 1861630, 1860891, 1859987, 1858927, 1857723, 1856394, 1854961, 1853447, 1851876, 1850272, 1848655, + 1847045, 1845459, 1843908, 1842403, 1840952, 1839558, 1838226, 1836955, 1835747, 1834600, 1833513, 1832485, 1831512, 1830593, + 1829726, 1828907, 1828134, 1827406, 1826719, 1826072, 1825462, 1824888, 1824347, 1823838, 1823359, 1822908, 1822485, 1822086, + 1821712, 1863775, 1864378, 1864866, 1865231, 1865468, 1865568, 1865523, 1865324, 1864964, 1864440, 1863750, 1862898, 1861892, + 1860744, 1859469, 1858088, 1856623, 1855096, 1853529, 1851945, 1850362, 1848795, 1847260, 1845765, 1844320, 1842928, 1841595, + 1840321, 1839107, 1837953, 1836857, 1835818, 1834835, 1833904, 1833025, 1832193, 1831408, 1830667, 1829967, 1829307, 1828684, + 1828097, 1827543, 1827021, 1826529, 1826066, 1825630, 1825220, 1824833, 1866280, 1866896, 1867399, 1867783, 1868042, 1868167, + 1868152, 1867986, 1867665, 1867183, 1866540, 1865738, 1864784, 1863689, 1862467, 1861137, 1859720, 1858236, 1856708, 1855157, + 1853601, 1852056, 1850537, 1849054, 1847615, 1846227, 1844894, 1843617, 1842399, 1841238, 1840134, 1839086, 1838093, 1837151, + 1836260, 1835417, 1834620, 1833866, 1833154, 1832481, 1831845, 1831245, 1830679, 1830145, 1829640, 1829165, 1828717, 1828294, + 1827896, 1868732, 1869361, 1869879, 1870280, 1870560, 1870709, 1870721, 1870588, 1870303, 1869862, 1869263, 1868509, 1867605, + 1866561, 1865391, 1864111, 1862740, 1861300, 1859810, 1858292, 1856764, 1855242, 1853740, 1852270, 1850840, 1849456, 1848124, + 1846846, 1845624, 1844457, 1843346, 1842290, 1841287, 1840336, 1839434, 1838579, 1837770, 1837004, 1836280, 1835595, 1834947, + 1834335, 1833756, 1833210, 1832694, 1832206, 1831746, 1831312, 1830902, 1871133, 1871773, 1872305, 1872723, 1873022, 1873194, + 1873233, 1873130, 1872879, 1872477, 1871921, 1871213, 1870357, 1869362, 1868241, 1867010, 1865685, 1864288, 1862837, 1861353, + 1859853, 1858355, 1856871, 1855415, 1853994, 1852617, 1851287, 1850009, 1848783, 1847612, 1846495, 1845431, 1844419, 1843458, + 1842546, 1841681, 1840861, 1840084, 1839348, 1838651, 1837991, 1837367, 1836777, 1836218, 1835690, 1835191, 1834719, 1834274, + 1833853, 1873482, 1874133, 1874679, 1875112, 1875429, 1875623, 1875687, 1875613, 1875396, 1875030, 1874515, 1873850, 1873040, + 1872093, 1871021, 1869836, 1868557, 1867202, 1865790, 1864340, 1862870, 1861396, 1859932, 1858490, 1857080, 1855709, 1854383, + 1853105, 1851879, 1850704, 1849581, 1848510, 1847491, 1846521, 1845599, 1844724, 1843893, 1843105, 1842358, 1841649, 1840978, + 1840343, 1839741, 1839171, 1838631, 1838121, 1837638, 1837181, 1836749, 1875780, 1876442, 1877000, 1877448, 1877783, 1877997, + 1878085, 1878039, 1877853, 1877522, 1877045, 1876423, 1875657, 1874756, 1873730, 1872592, 1871358, 1870045, 1868671, 1867255, + 1865815, 1864366, 1862922, 1861496, 1860098, 1858735, 1857414, 1856138, 1854910, 1853733, 1852606, 1851529, 1850502, 1849524, + 1848593, 1847708, 1846867, 1846069, 1845311, 1844592, 1843910, 1843263, 1842650, 1842069, 1841518, 1840997, 1840503, 1840035, + 1839592, 1878027, 1878699, 1879269, 1879731, 1880082, 1880317, 1880427, 1880407, 1880251, 1879954, 1879515, 1878932, 1878209, + 1877353, 1876372, 1875279, 1874088, 1872817, 1871481, 1870100, 1868690, 1867266, 1865844, 1864435, 1863049, 1861696, 1860380, + 1859107, 1857880, 1856700, 1855569, 1854488, 1853454, 1852469, 1851530, 1850636, 1849786, 1848977, 1848209, 1847480, 1846787, + 1846130, 1845506, 1844914, 1844353, 1843820, 1843316, 1842837, 1842384, 1880242, 1880923, 1881503, 1881979, 1882346, 1882598, + 1882730, 1882735, 1882607, 1882343, 1881938, 1881394, 1880712, 1879898, 1878961, 1877911, 1876763, 1875532, 1874234, 1872887, + 1871507, 1870110, 1868709, 1867318, 1865946, 1864602, 1863293, 1862023, 1860797, 1859617, 1858483, 1857396, 1856357, 1855365, + 1854418, 1853516, 1852656, 1851839, 1851061, 1850321, 1849618, 1848950, 1848316, 1847713, 1847141, 1846599, 1846083, 1845595, + 1845131, 1882406, 1883095, 1883687, 1884175, 1884557, 1884827, 1884979, 1885008, 1884907, 1884673, 1884302, 1883795, 1883152, + 1882379, 1881484, 1880477, 1879371, 1878180, 1876919, 1875607, 1874257, 1872886, 1871508, 1870135, 1868778, 1867445, 1866143, + 1864878, 1863654, 1862473, 1861338, 1860247, 1859203, 1858205, 1857251, 1856341, 1855473, 1854646, 1853859, 1853109, 1852397, + 1851719, 1851074, 1850462, 1849879, 1849326, 1848801, 1848302, 1847828, 1884521, 1885218, 1885819, 1886320, 1886716, 1887002, + 1887175, 1887226, 1887151, 1886946, 1886608, 1886136, 1885531, 1884798, 1883944, 1882978, 1881913, 1880761, 1879538, 1878259, + 1876940, 1875597, 1874242, 1872888, 1871546, 1870225, 1868932, 1867672, 1866451, 1865271, 1864134, 1863041, 1861993, 1860989, + 1860028, 1859111, 1858235, 1857400, 1856604, 1855846, 1855123, 1854436, 1853782, 1853159, 1852567, 1852004, 1851469, 1850960, + 1850477, 1886584, 1887289, 1887901, 1888412, 1888822, 1889125, 1889316, 1889389, 1889340, 1889163, 1888856, 1888417, 1887849, + 1887155, 1886341, 1885415, 1884389, 1883276, 1882090, 1880845, 1879558, 1878241, 1876910, 1875576, 1874251, 1872942, 1871659, + 1870406, 1869189, 1868010, 1866873, 1865778, 1864726, 1863717, 1862751, 1861827, 1860944, 1860101, 1859297, 1858530, 1857799, + 1857102, 1856439, 1855807, 1855206, 1854633, 1854088, 1853570, 1853077, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.25 V (slice 1): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_1 and r_1). +pub const VSB_P1 : [4851]u32 = [ + 4294967295, 71502, 85622, 81462, 81080, 82089, 84059, 85765, 87707, 89718, 91754, 93807, 95877, 97967, + 100079, 102217, 104381, 106575, 108799, 111054, 113340, 115659, 118009, 120392, 122806, 125251, 127728, 130236, + 132775, 135347, 137957, 140612, 143326, 146119, 149026, 152096, 155591, 159289, 163461, 168269, 173898, 180554, + 188442, 197744, 208594, 221050, 235085, 250587, 267372, 285215, 116779, 123850, 120144, 119386, 119930, 121052, + 122518, 123876, 125305, 126757, 128225, 129707, 131207, 132728, 134273, 135843, 137440, 139066, 140723, 142410, + 144130, 145881, 147666, 149485, 151336, 153221, 155140, 157093, 159081, 161107, 163176, 165296, 167481, 169754, + 172150, 174850, 177705, 180913, 184600, 188921, 194059, 200211, 207579, 216339, 226624, 238493, 251926, 266819, + 282997, 162271, 165041, 161563, 160426, 160607, 161350, 162429, 163370, 164377, 165404, 166441, 167486, 168544, + 169616, 170705, 171814, 172943, 174095, 175272, 176473, 177701, 178956, 180239, 181551, 182892, 184262, 185662, + 187093, 188556, 190052, 191584, 193158, 194782, 196471, 198246, 200141, 202321, 204658, 207331, 210458, 214185, + 218682, 224136, 230741, 238670, 248062, 258989, 271451, 285367, 207931, 208119, 204791, 203348, 203233, 203720, + 204404, 205198, 205919, 206655, 207395, 208138, 208886, 209642, 210409, 211187, 211979, 212787, 213611, 214453, + 215314, 216195, 217096, 218019, 218964, 219931, 220922, 221937, 222976, 224041, 225134, 226258, 227418, 228623, + 229886, 231227, 232749, 234375, 236221, 238367, 240919, 244006, 247780, 252414, 258087, 264970, 273206, 282890, + 294050, 253725, 252377, 249159, 247507, 247159, 247467, 247977, 248595, 249129, 249675, 250220, 250763, 251306, + 251851, 252401, 252957, 253521, 254094, 254677, 255271, 255877, 256496, 257128, 257775, 258437, 259115, 259808, + 260519, 261247, 261993, 262759, 263546, 264357, 265197, 266074, 267000, 267991, 269134, 270367, 271786, 273459, + 275474, 277942, 280994, 284778, 289457, 295192, 302129, 310378, 299626, 297381, 294224, 292451, 291938, 292111, + 292511, 292958, 293434, 293858, 294278, 294694, 295106, 295516, 295926, 296338, 296754, 297174, 297598, 298029, + 298467, 298913, 299366, 299828, 300300, 300782, 301273, 301776, 302290, 302816, 303355, 303907, 304474, 305060, + 305668, 306305, 306980, 307742, 308557, 309480, 310553, 311832, 313387, 315307, 317700, 320690, 324416, 329022, + 334646, 345614, 342854, 339725, 337886, 337268, 337341, 337667, 338043, 338418, 338795, 339138, 339474, 339803, + 340129, 340452, 340774, 341095, 341418, 341743, 342070, 342401, 342735, 343074, 343417, 343766, 344120, 344481, + 344848, 345222, 345603, 345992, 346389, 346795, 347212, 347642, 348089, 348557, 349055, 349619, 350226, 350917, + 351726, 352694, 353877, 355344, 357180, 359484, 362368, 365955, 391675, 388625, 385506, 383628, 382949, 382956, + 383227, 383560, 383890, 384205, 384517, 384803, 385082, 385355, 385624, 385890, 386153, 386416, 386679, 386941, + 387205, 387470, 387737, 388006, 388277, 388552, 388830, 389111, 389396, 389685, 389978, 390276, 390580, 390889, + 391206, 391532, 391869, 392223, 392613, 393026, 393485, 394008, 394620, 395354, 396250, 397361, 398750, 400495, + 402682, 437800, 434591, 431476, 429572, 428860, 428824, 429057, 429360, 429663, 429951, 430223, 430490, 430738, + 430979, 431215, 431447, 431675, 431901, 432125, 432349, 432571, 432794, 433016, 433239, 433463, 433688, 433915, + 434142, 434372, 434604, 434838, 435074, 435314, 435556, 435802, 436054, 436311, 436577, 436854, 437159, 437480, + 437836, 438241, 438711, 439272, 439953, 440793, 441839, 443148, 483981, 480688, 477575, 475655, 474924, 474864, + 475071, 475354, 475640, 475911, 476166, 476408, 476644, 476866, 477082, 477293, 477500, 477704, 477905, 478104, + 478302, 478498, 478694, 478889, 479084, 479279, 479474, 479669, 479865, 480062, 480259, 480458, 480658, 480859, + 481062, 481268, 481477, 481690, 481909, 482141, 482383, 482643, 482928, 483249, 483619, 484054, 484578, 485217, + 486006, 530211, 526879, 523768, 521839, 521096, 521023, 521214, 521483, 521759, 522020, 522264, 522495, 522716, + 522927, 523132, 523334, 523528, 523718, 523906, 524091, 524273, 524454, 524634, 524812, 524989, 525166, 525342, + 525518, 525693, 525868, 526044, 526220, 526395, 526572, 526749, 526927, 527107, 527288, 527473, 527661, 527860, + 528065, 528283, 528520, 528783, 529081, 529427, 529836, 530329, 576483, 573140, 570032, 568099, 567349, 567269, + 567452, 567712, 567980, 568235, 568474, 568698, 568912, 569117, 569315, 569507, 569694, 569879, 570058, 570234, + 570408, 570580, 570750, 570918, 571085, 571251, 571415, 571579, 571742, 571905, 572067, 572229, 572391, 572552, + 572714, 572875, 573037, 573200, 573364, 573530, 573699, 573875, 574056, 574246, 574450, 574672, 574920, 575202, + 575530, 622789, 619454, 616352, 614417, 613664, 613580, 613759, 614014, 614278, 614529, 614765, 614986, 615196, + 615398, 615591, 615779, 615962, 616141, 616316, 616487, 616656, 616824, 616988, 617150, 617311, 617471, 617629, + 617786, 617942, 618097, 618251, 618405, 618558, 618710, 618863, 619015, 619166, 619318, 619470, 619623, 619777, + 619935, 620094, 620259, 620430, 620611, 620806, 621018, 621255, 669116, 665805, 662712, 660779, 660025, 659941, + 660118, 660371, 660632, 660882, 661116, 661336, 661545, 661744, 661936, 662122, 662303, 662479, 662651, 662821, + 662987, 663150, 663312, 663471, 663629, 663785, 663940, 664093, 664244, 664395, 664545, 664694, 664842, 664990, + 665137, 665283, 665429, 665574, 665720, 665865, 666011, 666157, 666306, 666456, 666610, 666768, 666934, 667108, + 667296, 715442, 712176, 709098, 707169, 706418, 706334, 706513, 706766, 707026, 707276, 707510, 707730, 707939, + 708138, 708329, 708515, 708695, 708870, 709042, 709210, 709375, 709537, 709697, 709855, 710011, 710165, 710317, + 710469, 710618, 710767, 710915, 711061, 711207, 711352, 711496, 711639, 711781, 711924, 712065, 712206, 712348, + 712489, 712631, 712773, 712917, 713064, 713214, 713368, 713529, 762158, 758784, 755614, 753629, 752850, 752754, + 752928, 753180, 753442, 753692, 753927, 754149, 754358, 754558, 754751, 754937, 755117, 755293, 755465, 755633, + 755798, 755960, 756120, 756278, 756433, 756587, 756739, 756889, 757039, 757186, 757333, 757478, 757623, 757766, + 757909, 758051, 758192, 758333, 758473, 758612, 758751, 758889, 759028, 759167, 759306, 759446, 759588, 759732, + 759879, 816080, 809610, 804407, 801233, 799821, 799415, 799446, 799635, 799872, 800113, 800346, 800568, 800779, + 800981, 801176, 801363, 801546, 801723, 801896, 802066, 802232, 802396, 802556, 802715, 802871, 803026, 803178, + 803329, 803479, 803627, 803774, 803919, 804064, 804207, 804350, 804492, 804633, 804773, 804912, 805051, 805189, + 805327, 805464, 805601, 805738, 805875, 806013, 806152, 806292, 876084, 864504, 855753, 850337, 847619, 846500, + 846162, 846169, 846319, 846522, 846739, 846957, 847168, 847373, 847570, 847761, 847946, 848127, 848303, 848475, + 848644, 848810, 848973, 849134, 849292, 849448, 849603, 849755, 849906, 850056, 850204, 850351, 850497, 850641, + 850785, 850928, 851069, 851210, 851350, 851490, 851628, 851766, 851904, 852041, 852178, 852314, 852451, 852588, + 852725, 937718, 921159, 908667, 900661, 896266, 894119, 893177, 892844, 892809, 892914, 893083, 893278, 893481, + 893684, 893883, 894078, 894268, 894453, 894634, 894811, 894984, 895154, 895321, 895485, 895647, 895807, 895965, + 896120, 896274, 896427, 896578, 896727, 896876, 897023, 897168, 897313, 897457, 897600, 897742, 897883, 898024, + 898163, 898302, 898441, 898579, 898716, 898853, 898990, 899127, 998478, 977924, 962161, 951690, 945547, 942216, + 940503, 939683, 939348, 939276, 939343, 939481, 939656, 939846, 940042, 940239, 940433, 940624, 940811, 940995, + 941175, 941351, 941524, 941695, 941862, 942028, 942191, 942351, 942510, 942668, 942823, 942977, 943129, 943281, + 943430, 943579, 943727, 943873, 944018, 944163, 944307, 944449, 944591, 944733, 944873, 945013, 945153, 945292, + 945430, 1057261, 1033843, 1015459, 1002846, 995070, 990547, 987991, 986590, 985867, 985540, 985444, 985483, 985598, + 985756, 985937, 986128, 986324, 986520, 986715, 986907, 987095, 987281, 987463, 987643, 987819, 987993, 988164, + 988333, 988499, 988663, 988826, 988987, 989146, 989303, 989459, 989614, 989767, 989919, 990070, 990220, 990368, + 990516, 990663, 990809, 990954, 991098, 991242, 991385, 991527, 1113517, 1088316, 1067962, 1053582, 1044371, 1038738, + 1035346, 1033333, 1032169, 1031533, 1031226, 1031123, 1031146, 1031247, 1031395, 1031571, 1031761, 1031959, 1032160, 1032361, + 1032561, 1032758, 1032953, 1033144, 1033333, 1033519, 1033701, 1033881, 1034059, 1034234, 1034407, 1034577, 1034746, 1034913, + 1035078, 1035241, 1035403, 1035563, 1035722, 1035879, 1036035, 1036190, 1036344, 1036497, 1036649, 1036800, 1036950, 1037099, + 1037247, 1166808, 1140847, 1119148, 1103370, 1092945, 1086327, 1082159, 1079547, 1077931, 1076960, 1076409, 1076133, 1076037, + 1076058, 1076156, 1076302, 1076477, 1076672, 1076876, 1077085, 1077297, 1077507, 1077717, 1077924, 1078128, 1078329, 1078527, + 1078722, 1078914, 1079104, 1079290, 1079474, 1079656, 1079835, 1080013, 1080188, 1080361, 1080533, 1080702, 1080870, 1081037, + 1081202, 1081365, 1081528, 1081689, 1081848, 1082007, 1082164, 1082321, 1216705, 1190944, 1168507, 1151684, 1140264, 1132798, + 1127937, 1124769, 1122715, 1121406, 1120598, 1120130, 1119895, 1119819, 1119849, 1119952, 1120103, 1120285, 1120488, 1120702, + 1120923, 1121147, 1121372, 1121596, 1121818, 1122037, 1122254, 1122467, 1122677, 1122884, 1123088, 1123288, 1123486, 1123681, + 1123874, 1124064, 1124251, 1124437, 1124620, 1124801, 1124980, 1125157, 1125333, 1125507, 1125679, 1125850, 1126019, 1126187, + 1126354, 1262815, 1238109, 1215534, 1198007, 1185796, 1177617, 1172151, 1168480, 1166018, 1164380, 1163314, 1162647, 1162260, + 1162071, 1162020, 1162066, 1162180, 1162341, 1162534, 1162747, 1162973, 1163207, 1163445, 1163685, 1163924, 1164162, 1164397, + 1164630, 1164859, 1165084, 1165307, 1165526, 1165741, 1165954, 1166163, 1166369, 1166573, 1166773, 1166972, 1167167, 1167360, + 1167551, 1167740, 1167927, 1168112, 1168295, 1168476, 1168655, 1168833, 1304897, 1281916, 1259782, 1241886, 1229072, 1220299, + 1214306, 1210186, 1207345, 1205395, 1204074, 1203203, 1202655, 1202340, 1202194, 1202171, 1202235, 1202361, 1202532, 1202734, + 1202957, 1203194, 1203439, 1203690, 1203942, 1204195, 1204446, 1204695, 1204941, 1205184, 1205424, 1205660, 1205893, 1206122, + 1206347, 1206569, 1206788, 1207004, 1207216, 1207426, 1207633, 1207837, 1208038, 1208237, 1208434, 1208628, 1208821, 1209011, + 1209199, 1342930, 1322095, 1300923, 1282987, 1269742, 1260477, 1254024, 1249498, 1246306, 1244057, 1242486, 1241406, 1240688, + 1240236, 1239981, 1239872, 1239870, 1239948, 1240083, 1240261, 1240468, 1240697, 1240940, 1241192, 1241449, 1241709, 1241970, + 1242230, 1242489, 1242745, 1242997, 1243247, 1243493, 1243735, 1243973, 1244208, 1244440, 1244668, 1244892, 1245113, 1245331, + 1245546, 1245758, 1245967, 1246173, 1246377, 1246578, 1246777, 1246974, 1377103, 1358581, 1338784, 1321129, 1307620, 1297949, + 1291091, 1286193, 1282671, 1280134, 1278314, 1277024, 1276127, 1275526, 1275148, 1274937, 1274854, 1274867, 1274951, 1275089, + 1275267, 1275474, 1275701, 1275943, 1276195, 1276454, 1276715, 1276978, 1277241, 1277502, 1277762, 1278019, 1278272, 1278522, + 1278769, 1279012, 1279251, 1279487, 1279719, 1279948, 1280173, 1280395, 1280614, 1280830, 1281043, 1281252, 1281460, 1281664, + 1281866, 1407756, 1391506, 1373358, 1356284, 1342674, 1332680, 1325462, 1320220, 1316386, 1313570, 1311504, 1309998, 1308915, + 1308155, 1307640, 1307315, 1307136, 1307068, 1307086, 1307170, 1307303, 1307475, 1307674, 1307894, 1308129, 1308374, 1308627, + 1308883, 1309142, 1309401, 1309659, 1309916, 1310171, 1310423, 1310672, 1310918, 1311160, 1311399, 1311634, 1311866, 1312094, + 1312320, 1312541, 1312760, 1312975, 1313188, 1313397, 1313604, 1313808, 1435285, 1421139, 1404763, 1388531, 1374990, 1364755, + 1357221, 1351662, 1347531, 1344445, 1342136, 1340414, 1339141, 1338213, 1337553, 1337102, 1336814, 1336653, 1336591, 1336607, + 1336684, 1336807, 1336966, 1337153, 1337360, 1337582, 1337815, 1338056, 1338302, 1338551, 1338801, 1339051, 1339300, 1339548, + 1339794, 1340037, 1340277, 1340514, 1340748, 1340979, 1341206, 1341431, 1341652, 1341869, 1342084, 1342296, 1342505, 1342711, + 1342914, 1460101, 1447827, 1433219, 1418029, 1404731, 1394344, 1386539, 1380690, 1376278, 1372931, 1370384, 1368448, 1366982, + 1365883, 1365071, 1364486, 1364080, 1363816, 1363665, 1363603, 1363611, 1363676, 1363784, 1363927, 1364097, 1364287, 1364493, + 1364710, 1364935, 1365167, 1365402, 1365639, 1365877, 1366115, 1366352, 1366587, 1366821, 1367052, 1367281, 1367507, 1367730, + 1367950, 1368167, 1368381, 1368592, 1368800, 1369006, 1369208, 1369408, 1482566, 1471923, 1458991, 1444971, 1432083, 1421643, + 1413617, 1407506, 1402833, 1399238, 1396462, 1394315, 1392658, 1391386, 1390419, 1389696, 1389166, 1388792, 1388544, 1388396, + 1388329, 1388326, 1388376, 1388468, 1388592, 1388743, 1388914, 1389100, 1389299, 1389507, 1389721, 1389940, 1390162, 1390385, + 1390609, 1390833, 1391056, 1391278, 1391498, 1391716, 1391931, 1392144, 1392355, 1392563, 1392768, 1392971, 1393171, 1393368, + 1393563, 1503013, 1493770, 1482371, 1469576, 1457247, 1446860, 1438672, 1432331, 1427417, 1423588, 1420591, 1418240, 1416396, + 1414953, 1413831, 1412967, 1412311, 1411823, 1411473, 1411233, 1411085, 1411010, 1410995, 1411029, 1411102, 1411207, 1411338, + 1411488, 1411655, 1411834, 1412023, 1412219, 1412421, 1412626, 1412833, 1413042, 1413251, 1413461, 1413669, 1413876, 1414082, + 1414286, 1414488, 1414688, 1414885, 1415081, 1415273, 1415464, 1415652, 1521708, 1513663, 1503632, 1492055, 1480407, 1470184, + 1461898, 1455365, 1450233, 1446186, 1442981, 1440435, 1438410, 1436800, 1435525, 1434521, 1433737, 1433134, 1432679, 1432346, + 1432112, 1431961, 1431877, 1431849, 1431866, 1431921, 1432007, 1432117, 1432248, 1432395, 1432554, 1432724, 1432901, 1433085, + 1433273, 1433464, 1433657, 1433851, 1434046, 1434240, 1434434, 1434627, 1434819, 1435009, 1435197, 1435384, 1435569, 1435751, + 1435932, 1538890, 1531867, 1523042, 1512630, 1501744, 1491794, 1483480, 1476796, 1471472, 1467226, 1463826, 1461094, 1458894, + 1457123, 1455699, 1454557, 1453648, 1452929, 1452369, 1451939, 1451619, 1451388, 1451233, 1451140, 1451098, 1451100, 1451138, + 1451205, 1451296, 1451407, 1451534, 1451674, 1451825, 1451985, 1452150, 1452321, 1452496, 1452673, 1452852, 1453032, 1453213, + 1453393, 1453573, 1453752, 1453931, 1454107, 1454283, 1454457, 1454629, 1554753, 1548605, 1540832, 1531504, 1521425, 1511843, + 1503578, 1496789, 1491301, 1486874, 1483293, 1480387, 1478022, 1476096, 1474527, 1473251, 1472218, 1471386, 1470721, 1470195, + 1469786, 1469476, 1469247, 1469087, 1468985, 1468931, 1468918, 1468939, 1468988, 1469061, 1469154, 1469262, 1469385, 1469517, + 1469659, 1469808, 1469962, 1470121, 1470282, 1470447, 1470612, 1470779, 1470946, 1471114, 1471281, 1471447, 1471612, 1471777, + 1471940, 1569457, 1564060, 1557204, 1548865, 1539602, 1530469, 1522329, 1515484, 1509865, 1505279, 1501532, 1498462, 1495941, + 1493867, 1492159, 1490754, 1489601, 1488657, 1487889, 1487268, 1486772, 1486380, 1486077, 1485850, 1485685, 1485575, 1485509, + 1485483, 1485488, 1485521, 1485577, 1485653, 1485744, 1485849, 1485965, 1486090, 1486222, 1486361, 1486504, 1486651, 1486801, + 1486953, 1487106, 1487261, 1487416, 1487571, 1487725, 1487880, 1488033, 1583142, 1578391, 1572332, 1564885, 1556421, 1547795, + 1539852, 1533005, 1527288, 1522565, 1518669, 1515449, 1512781, 1510567, 1508727, 1507197, 1505927, 1504875, 1504005, 1503291, + 1502708, 1502237, 1501860, 1501564, 1501337, 1501168, 1501050, 1500974, 1500935, 1500927, 1500945, 1500985, 1501044, 1501120, + 1501208, 1501308, 1501418, 1501535, 1501659, 1501787, 1501920, 1502057, 1502195, 1502336, 1502478, 1502621, 1502765, 1502909, + 1503052, 1595916, 1591727, 1586362, 1579712, 1572010, 1563928, 1556247, 1549453, 1543676, 1538841, 1534812, 1531454, 1528650, + 1526304, 1524338, 1522690, 1521308, 1520151, 1519183, 1518378, 1517709, 1517159, 1516709, 1516345, 1516055, 1515828, 1515656, + 1515531, 1515446, 1515396, 1515375, 1515379, 1515405, 1515450, 1515511, 1515584, 1515670, 1515765, 1515868, 1515977, 1516092, + 1516212, 1516336, 1516462, 1516591, 1516721, 1516853, 1516986, 1517119, 1607883, 1604182, 1599423, 1593483, 1586494, 1578971, + 1571606, 1564920, 1559120, 1554200, 1550057, 1546576, 1543646, 1541176, 1539092, 1537330, 1535841, 1534582, 1533520, 1532625, + 1531874, 1531246, 1530724, 1530293, 1529940, 1529656, 1529430, 1529255, 1529123, 1529030, 1528969, 1528937, 1528929, 1528943, + 1528974, 1529021, 1529081, 1529153, 1529234, 1529324, 1529421, 1529523, 1529631, 1529742, 1529857, 1529974, 1530094, 1530215, + 1530337, 1619132, 1615857, 1611628, 1606317, 1599988, 1593023, 1586015, 1579485, 1573704, 1568725, 1564489, 1560897, 1557852, + 1555268, 1553071, 1551202, 1549610, 1548255, 1547101, 1546120, 1545288, 1544584, 1543990, 1543493, 1543078, 1542736, 1542457, + 1542231, 1542054, 1541917, 1541816, 1541747, 1541705, 1541686, 1541687, 1541706, 1541741, 1541789, 1541848, 1541917, 1541994, + 1542079, 1542170, 1542265, 1542365, 1542469, 1542576, 1542685, 1542796, 1629722, 1626823, 1623059, 1618307, 1612582, 1606162, + 1599539, 1593209, 1587487, 1582480, 1578170, 1574483, 1571335, 1568645, 1566344, 1564373, 1562684, 1561236, 1559994, 1558930, + 1558019, 1557242, 1556579, 1556016, 1555541, 1555142, 1554809, 1554534, 1554310, 1554130, 1553989, 1553882, 1553805, 1553754, + 1553725, 1553716, 1553724, 1553747, 1553784, 1553832, 1553889, 1553955, 1554029, 1554108, 1554193, 1554283, 1554376, 1554473, + 1554572, 1639722, 1637153, 1633800, 1629545, 1624369, 1618470, 1612247, 1606156, 1600529, 1595525, 1591163, 1587398, 1584158, + 1581371, 1578973, 1576908, 1575127, 1573590, 1572264, 1571120, 1570133, 1569284, 1568554, 1567928, 1567393, 1566937, 1566552, + 1566228, 1565958, 1565735, 1565553, 1565409, 1565296, 1565212, 1565152, 1565115, 1565096, 1565095, 1565108, 1565134, 1565171, + 1565218, 1565274, 1565337, 1565406, 1565481, 1565561, 1565645, 1565732, 1649188, 1646913, 1643923, 1640108, 1635431, 1630024, + 1624206, 1618381, 1612886, 1607913, 1603523, 1599695, 1596376, 1593502, 1591015, 1588861, 1586993, 1585372, 1583965, 1582744, + 1581685, 1580766, 1579970, 1579282, 1578688, 1578178, 1577741, 1577368, 1577052, 1576786, 1576565, 1576382, 1576234, 1576117, + 1576027, 1575960, 1575915, 1575888, 1575877, 1575881, 1575897, 1575925, 1575962, 1576008, 1576062, 1576122, 1576188, 1576258, + 1576333, 1658170, 1656155, 1653487, 1650065, 1645838, 1640891, 1635474, 1629935, 1624602, 1619691, 1615295, 1611422, 1608036, + 1605086, 1602517, 1600280, 1598330, 1596630, 1595146, 1593851, 1592721, 1591735, 1590876, 1590127, 1589477, 1588912, 1588424, + 1588004, 1587642, 1587334, 1587073, 1586853, 1586669, 1586519, 1586397, 1586302, 1586229, 1586176, 1586141, 1586123, 1586118, + 1586126, 1586145, 1586173, 1586210, 1586255, 1586306, 1586363, 1586426, 1666700, 1664918, 1662537, 1659465, 1655644, 1651125, + 1646098, 1640859, 1635714, 1630891, 1626513, 1622613, 1619174, 1616158, 1613515, 1611202, 1609177, 1607402, 1605845, 1604480, + 1603282, 1602232, 1601311, 1600504, 1599798, 1599181, 1598643, 1598175, 1597770, 1597419, 1597118, 1596861, 1596643, 1596459, + 1596306, 1596182, 1596081, 1596003, 1595944, 1595902, 1595876, 1595864, 1595864, 1595875, 1595895, 1595924, 1595961, 1596004, + 1596053, 1674821, 1673248, 1671123, 1668365, 1664911, 1660787, 1656134, 1651200, 1646263, 1641554, 1637216, 1633308, 1629830, + 1626758, 1624051, 1621668, 1619572, 1617727, 1616101, 1614669, 1613407, 1612295, 1611314, 1610451, 1609690, 1609022, 1608436, + 1607921, 1607472, 1607080, 1606740, 1606446, 1606193, 1605976, 1605793, 1605639, 1605511, 1605406, 1605323, 1605258, 1605211, + 1605178, 1605159, 1605152, 1605155, 1605168, 1605189, 1605218, 1605254, 1682563, 1681177, 1679282, 1676805, 1673682, 1669921, + 1665625, 1660996, 1656282, 1651709, 1647433, 1643534, 1640033, 1636916, 1634152, 1631708, 1629547, 1627636, 1625946, 1624450, + 1623126, 1621954, 1620917, 1619998, 1619186, 1618468, 1617834, 1617275, 1616782, 1616350, 1615971, 1615641, 1615353, 1615104, + 1614889, 1614706, 1614551, 1614420, 1614312, 1614225, 1614155, 1614102, 1614063, 1614038, 1614024, 1614021, 1614027, 1614041, + 1614064, 1689960, 1688743, 1687054, 1684829, 1682006, 1678577, 1674617, 1670288, 1665807, 1661388, 1657195, 1653323, 1649812, + 1646662, 1643852, 1641352, 1639132, 1637160, 1635409, 1633853, 1632471, 1631242, 1630149, 1629178, 1628315, 1627548, 1626868, + 1626265, 1625730, 1625258, 1624842, 1624475, 1624153, 1623872, 1623626, 1623414, 1623231, 1623075, 1622942, 1622832, 1622740, + 1622666, 1622608, 1622564, 1622533, 1622513, 1622504, 1622504, 1622512, 1697038, 1695973, 1694471, 1692472, 1689920, 1686796, + 1683151, 1679113, 1674870, 1670619, 1666526, 1662700, 1659194, 1656022, 1653173, 1650626, 1648353, 1646325, 1644517, 1642905, + 1641466, 1640183, 1639038, 1638016, 1637104, 1636290, 1635565, 1634918, 1634343, 1633832, 1633378, 1632975, 1632620, 1632306, + 1632031, 1631790, 1631579, 1631397, 1631240, 1631106, 1630993, 1630898, 1630820, 1630757, 1630708, 1630672, 1630647, 1630632, + 1630626, 1703806, 1702879, 1701545, 1699752, 1697445, 1694600, 1691249, 1687493, 1683489, 1679418, 1675441, 1671676, 1668190, + 1665009, 1662133, 1659546, 1657225, 1655147, 1653287, 1651622, 1650131, 1648796, 1647601, 1646530, 1645571, 1644712, 1643943, + 1643255, 1642640, 1642090, 1641600, 1641163, 1640774, 1640429, 1640124, 1639854, 1639617, 1639409, 1639228, 1639070, 1638935, + 1638819, 1638722, 1638640, 1638574, 1638521, 1638479, 1638449, 1638429, 1710304, 1709502, 1708320, 1706713, 1704628, 1702038, + 1698960, 1695473, 1691706, 1687822, 1683975, 1680286, 1676833, 1673654, 1670760, 1668140, 1665780, 1663656, 1661747, 1660033, + 1658493, 1657109, 1655865, 1654748, 1653743, 1652840, 1652029, 1651300, 1650646, 1650059, 1649533, 1649062, 1648641, 1648265, + 1647930, 1647632, 1647368, 1647134, 1646928, 1646748, 1646591, 1646454, 1646337, 1646237, 1646152, 1646082, 1646025, 1645980, + 1645945, 1716548, 1715859, 1714816, 1713377, 1711493, 1709136, 1706312, 1703079, 1699545, 1695851, 1692144, 1688544, 1685138, + 1681974, 1679070, 1676427, 1674032, 1671868, 1669916, 1668155, 1666569, 1665138, 1663849, 1662687, 1661638, 1660693, 1659841, + 1659073, 1658381, 1657757, 1657196, 1656692, 1656238, 1655832, 1655467, 1655141, 1654851, 1654592, 1654362, 1654158, 1653979, + 1653822, 1653684, 1653565, 1653463, 1653376, 1653303, 1653242, 1653193, 1722545, 1721960, 1721043, 1719756, 1718056, 1715912, + 1713322, 1710330, 1707022, 1703521, 1699961, 1696463, 1693116, 1689978, 1687075, 1684416, 1681994, 1679795, 1677804, 1676001, + 1674372, 1672898, 1671565, 1670360, 1669270, 1668285, 1667393, 1666587, 1665858, 1665199, 1664604, 1664066, 1663582, 1663145, + 1662752, 1662398, 1662081, 1661797, 1661543, 1661317, 1661116, 1660938, 1660781, 1660643, 1660523, 1660419, 1660329, 1660253, + 1660189, 1728317, 1727826, 1727024, 1725876, 1724344, 1722394, 1720022, 1717255, 1714165, 1710856, 1707450, 1704063, 1700786, + 1697684, 1694793, 1692126, 1689683, 1687455, 1685429, 1683589, 1681920, 1680405, 1679032, 1677786, 1676656, 1675632, 1674702, + 1673859, 1673094, 1672401, 1671772, 1671203, 1670688, 1670222, 1669800, 1669420, 1669077, 1668768, 1668490, 1668241, 1668019, + 1667820, 1667643, 1667487, 1667348, 1667227, 1667121, 1667030, 1666951, 1733869, 1733465, 1732767, 1731747, 1730367, 1728597, + 1726425, 1723870, 1720989, 1717870, 1714621, 1711352, 1708157, 1705102, 1702231, 1699565, 1697109, 1694858, 1692802, 1690928, + 1689223, 1687671, 1686259, 1684975, 1683807, 1682745, 1681779, 1680901, 1680102, 1679375, 1678714, 1678114, 1677569, 1677074, + 1676625, 1676218, 1675849, 1675516, 1675215, 1674944, 1674700, 1674481, 1674284, 1674109, 1673953, 1673815, 1673693, 1673586, + 1673492, 1739233, 1738908, 1738306, 1737402, 1736161, 1734554, 1732567, 1730210, 1727528, 1724594, 1721504, 1718360, 1715253, + 1712255, 1709413, 1706756, 1704293, 1702024, 1699943, 1698040, 1696301, 1694714, 1693267, 1691946, 1690743, 1689645, 1688644, + 1687731, 1686898, 1686139, 1685447, 1684817, 1684242, 1683719, 1683242, 1682809, 1682416, 1682058, 1681734, 1681441, 1681176, + 1680936, 1680720, 1680526, 1680352, 1680197, 1680059, 1679936, 1679828, 1744404, 1744151, 1743638, 1742839, 1741726, 1740270, + 1738453, 1736281, 1733788, 1731033, 1728102, 1725087, 1722076, 1719143, 1716340, 1713699, 1711237, 1708957, 1706856, 1704927, + 1703159, 1701540, 1700059, 1698705, 1697468, 1696336, 1695301, 1694355, 1693491, 1692700, 1691978, 1691318, 1690715, 1690164, + 1689661, 1689203, 1688784, 1688403, 1688057, 1687741, 1687455, 1687195, 1686960, 1686748, 1686556, 1686384, 1686229, 1686091, + 1685968, 1749404, 1749218, 1748785, 1748084, 1747087, 1745768, 1744109, 1742110, 1739795, 1737214, 1734439, 1731556, 1728647, + 1725787, 1723030, 1720413, 1717957, 1715672, 1713556, 1711606, 1709812, 1708164, 1706653, 1705267, 1703997, 1702833, 1701767, + 1700789, 1699894, 1699073, 1698321, 1697632, 1697001, 1696424, 1695895, 1695411, 1694969, 1694564, 1694195, 1693858, 1693551, + 1693271, 1693017, 1692786, 1692577, 1692388, 1692217, 1692063, 1691925, 1754237, 1754112, 1753753, 1753141, 1752252, 1751060, + 1749546, 1747707, 1745560, 1743145, 1740525, 1737774, 1734973, 1732192, 1729488, 1726902, 1724460, 1722175, 1720050, 1718082, + 1716266, 1714593, 1713054, 1711639, 1710338, 1709144, 1708047, 1707040, 1706114, 1705264, 1704484, 1703767, 1703109, 1702506, + 1701951, 1701443, 1700977, 1700550, 1700158, 1699800, 1699473, 1699173, 1698900, 1698651, 1698425, 1698219, 1698032, 1697862, + 1697710, 1758916, 1758847, 1758555, 1758025, 1757235, 1756159, 1754780, 1753090, 1751101, 1748846, 1746375, 1743758, 1741066, + 1738370, 1735726, 1733179, 1730757, 1728477, 1726347, 1724367, 1722532, 1720837, 1719272, 1717830, 1716502, 1715279, 1714153, + 1713117, 1712163, 1711285, 1710477, 1709734, 1709049, 1708420, 1707841, 1707309, 1706819, 1706370, 1705957, 1705577, 1705230, + 1704911, 1704619, 1704352, 1704108, 1703885, 1703683, 1703498, 1703330, 1763442, 1763425, 1763196, 1762742, 1762042, 1761074, + 1759819, 1758268, 1756428, 1754324, 1751999, 1749514, 1746935, 1744327, 1741749, 1739246, 1736851, 1734583, 1732453, 1730465, + 1728616, 1726901, 1725314, 1723848, 1722493, 1721244, 1720091, 1719027, 1718046, 1717141, 1716307, 1715537, 1714828, 1714174, + 1713571, 1713015, 1712503, 1712031, 1711597, 1711197, 1710830, 1710492, 1710181, 1709897, 1709636, 1709396, 1709178, 1708978, + 1708796, 1767839, 1767870, 1767698, 1767314, 1766697, 1765828, 1764687, 1763265, 1761565, 1759604, 1757420, 1755065, 1752599, + 1750083, 1747576, 1745123, 1742760, 1740509, 1738384, 1736391, 1734531, 1732800, 1731194, 1729705, 1728327, 1727052, 1725873, + 1724784, 1723776, 1722846, 1721986, 1721191, 1720457, 1719779, 1719152, 1718573, 1718039, 1717546, 1717091, 1716671, 1716284, + 1715927, 1715598, 1715296, 1715018, 1714762, 1714527, 1714312, 1714116, 1772089, 1772163, 1772046, 1771725, 1771186, 1770408, + 1769374, 1768072, 1766503, 1764679, 1762630, 1760403, 1758050, 1755630, 1753197, 1750800, 1748474, 1746246, 1744132, 1742139, + 1740272, 1738529, 1736906, 1735398, 1733998, 1732700, 1731498, 1730384, 1729352, 1728397, 1727512, 1726694, 1725936, 1725234, + 1724585, 1723984, 1723428, 1722914, 1722439, 1721999, 1721593, 1721218, 1720871, 1720551, 1720257, 1719985, 1719735, 1719505, + 1719293, 1776225, 1776340, 1776271, 1776010, 1775542, 1774848, 1773912, 1772722, 1771274, 1769579, 1767661, 1765557, 1763316, + 1760993, 1758639, 1756302, 1754018, 1751817, 1749717, 1747730, 1745859, 1744107, 1742470, 1740944, 1739525, 1738206, 1736981, + 1735844, 1734789, 1733810, 1732903, 1732061, 1731280, 1730556, 1729884, 1729262, 1728685, 1728150, 1727655, 1727196, 1726771, + 1726377, 1726013, 1725676, 1725365, 1725077, 1724811, 1724566, 1724341, 1780237, 1780390, 1780367, 1780161, 1779758, 1779143, + 1778298, 1777211, 1775878, 1774305, 1772510, 1770527, 1768397, 1766171, 1763899, 1761625, 1759389, 1757220, 1755139, 1753160, + 1751290, 1749531, 1747884, 1746344, 1744907, 1743569, 1742324, 1741165, 1740088, 1739087, 1738157, 1737293, 1736490, 1735744, + 1735052, 1734408, 1733811, 1733256, 1732741, 1732263, 1731819, 1731408, 1731026, 1730673, 1730345, 1730041, 1729761, 1729501, + 1729261, 1784128, 1784316, 1784335, 1784180, 1783839, 1783296, 1782535, 1781545, 1780320, 1778861, 1777185, 1775318, 1773298, + 1771170, 1768980, 1766774, 1764589, 1762456, 1760399, 1758433, 1756568, 1754807, 1753151, 1751599, 1750148, 1748793, 1747529, + 1746351, 1745253, 1744231, 1743280, 1742395, 1741571, 1740804, 1740091, 1739427, 1738810, 1738236, 1737702, 1737205, 1736744, + 1736315, 1735916, 1735546, 1735202, 1734883, 1734588, 1734313, 1734059, 1787922, 1788142, 1788200, 1788092, 1787807, 1787331, + 1786649, 1785748, 1784623, 1783272, 1781708, 1779953, 1778040, 1776009, 1773904, 1771766, 1769636, 1767544, 1765514, 1763565, + 1761707, 1759947, 1758287, 1756725, 1755261, 1753891, 1752610, 1751413, 1750296, 1749255, 1748283, 1747378, 1746533, 1745747, + 1745013, 1744330, 1743693, 1743100, 1742548, 1742033, 1741554, 1741108, 1740692, 1740306, 1739946, 1739612, 1739301, 1739013, + 1738745, 1791609, 1791858, 1791952, 1791888, 1791655, 1791241, 1790632, 1789815, 1788783, 1787534, 1786077, 1784430, 1782621, + 1780686, 1778665, 1776600, 1774527, 1772479, 1770481, 1768552, 1766706, 1764950, 1763287, 1761719, 1760245, 1758861, 1757565, + 1756352, 1755217, 1754157, 1753166, 1752241, 1751378, 1750572, 1749819, 1749117, 1748462, 1747850, 1747280, 1746747, 1746251, + 1745788, 1745356, 1744954, 1744579, 1744229, 1743904, 1743601, 1743319, 1795200, 1795477, 1795605, 1795581, 1795396, 1795040, + 1794499, 1793760, 1792815, 1791662, 1790306, 1788762, 1787053, 1785213, 1783277, 1781285, 1779272, 1777271, 1775308, 1773404, + 1771572, 1769823, 1768161, 1766589, 1765107, 1763712, 1762402, 1761174, 1760023, 1758945, 1757937, 1756994, 1756112, 1755287, + 1754516, 1753796, 1753122, 1752493, 1751905, 1751355, 1750842, 1750362, 1749915, 1749496, 1749106, 1748742, 1748402, 1748085, + 1747790, 1798699, 1799001, 1799160, 1799173, 1799034, 1798731, 1798252, 1797586, 1796723, 1795660, 1794400, 1792954, 1791343, + 1789595, 1787744, 1785826, 1783875, 1781924, 1780000, 1778123, 1776309, 1774570, 1772912, 1771338, 1769850, 1768446, 1767124, + 1765883, 1764717, 1763623, 1762598, 1761638, 1760738, 1759896, 1759107, 1758369, 1757678, 1757031, 1756426, 1755860, 1755330, + 1754835, 1754371, 1753938, 1753532, 1753154, 1752800, 1752469, 1752160, 1802105, 1802431, 1802618, 1802666, 1802569, 1802316, + 1801896, 1801297, 1800511, 1799532, 1798363, 1797011, 1795494, 1793837, 1792070, 1790226, 1788339, 1786441, 1784557, 1782710, + 1780918, 1779192, 1777540, 1775968, 1774476, 1773065, 1771734, 1770481, 1769301, 1768193, 1767153, 1766176, 1765260, 1764401, + 1763595, 1762840, 1762132, 1761469, 1760847, 1760265, 1759719, 1759208, 1758729, 1758281, 1757861, 1757468, 1757100, 1756755, + 1756433, 1805432, 1805779, 1805994, 1806074, 1806015, 1805809, 1805443, 1804907, 1804193, 1803293, 1802209, 1800946, 1799520, + 1797951, 1796267, 1794497, 1792676, 1790831, 1788991, 1787177, 1785409, 1783699, 1782057, 1780487, 1778994, 1777579, 1776240, + 1774976, 1773784, 1772663, 1771608, 1770616, 1769684, 1768809, 1767987, 1767216, 1766492, 1765812, 1765175, 1764576, 1764015, + 1763489, 1762995, 1762532, 1762097, 1761690, 1761308, 1760951, 1760616, 1808667, 1809035, 1809275, 1809385, 1809363, 1809199, + 1808885, 1808408, 1807760, 1806936, 1805932, 1804755, 1803415, 1801932, 1800329, 1798634, 1796878, 1795090, 1793295, 1791518, + 1789777, 1788086, 1786455, 1784892, 1783400, 1781982, 1780637, 1779364, 1778163, 1777029, 1775961, 1774955, 1774009, 1773119, + 1772282, 1771495, 1770755, 1770060, 1769407, 1768794, 1768217, 1767676, 1767167, 1766690, 1766242, 1765821, 1765426, 1765055, + 1764707, 1811825, 1812212, 1812474, 1812613, 1812625, 1812502, 1812234, 1811813, 1811228, 1810473, 1809546, 1808450, 1807194, + 1805793, 1804270, 1802649, 1800959, 1799228, 1797481, 1795742, 1794031, 1792361, 1790745, 1789190, 1787701, 1786282, 1784933, + 1783654, 1782443, 1781299, 1780219, 1779201, 1778241, 1777336, 1776485, 1775683, 1774929, 1774219, 1773551, 1772923, 1772332, + 1771776, 1771254, 1770762, 1770300, 1769866, 1769458, 1769074, 1768714, 1814919, 1815324, 1815608, 1815772, 1815815, 1815729, + 1815506, 1815136, 1814609, 1813920, 1813065, 1812046, 1810869, 1809548, 1808102, 1806554, 1804930, 1803257, 1801559, 1799861, + 1798180, 1796534, 1794935, 1793390, 1791907, 1790489, 1789138, 1787853, 1786635, 1785482, 1784391, 1783360, 1782388, 1781470, + 1780605, 1779789, 1779020, 1778296, 1777614, 1776971, 1776366, 1775796, 1775259, 1774754, 1774279, 1773831, 1773410, 1773014, + 1772641, 1817923, 1818344, 1818648, 1818837, 1818910, 1818859, 1818678, 1818355, 1817884, 1817257, 1816471, 1815524, 1814423, + 1813180, 1811809, 1810333, 1808775, 1807161, 1805514, 1803858, 1802212, 1800592, 1799012, 1797480, 1796005, 1794591, 1793239, + 1791951, 1790727, 1789566, 1788466, 1787425, 1786440, 1785510, 1784632, 1783803, 1783021, 1782283, 1781587, 1780931, 1780312, + 1779729, 1779179, 1778661, 1778173, 1777712, 1777279, 1776870, 1776486, 1820879, 1821315, 1821637, 1821849, 1821949, 1821930, + 1821787, 1821510, 1821090, 1820521, 1819798, 1818920, 1817892, 1816722, 1815425, 1814019, 1812526, 1810970, 1809375, 1807762, + 1806151, 1804560, 1803000, 1801484, 1800019, 1798609, 1797258, 1795969, 1794740, 1793572, 1792463, 1791413, 1790418, 1789476, + 1788586, 1787744, 1786949, 1786198, 1785489, 1784819, 1784187, 1783591, 1783028, 1782496, 1781995, 1781522, 1781076, 1780656, + 1780259, 1823759, 1824209, 1824549, 1824782, 1824907, 1824919, 1824812, 1824576, 1824205, 1823690, 1823028, 1822216, 1821256, + 1820157, 1818931, 1817594, 1816166, 1814669, 1813126, 1811558, 1809985, 1808423, 1806887, 1805388, 1803934, 1802531, 1801184, + 1799894, 1798662, 1797489, 1796374, 1795314, 1794310, 1793357, 1792456, 1791603, 1790795, 1790032, 1789310, 1788628, 1787983, + 1787374, 1786798, 1786255, 1785741, 1785256, 1784798, 1784365, 1783957, 1826578, 1827041, 1827397, 1827649, 1827798, 1827839, + 1827765, 1827569, 1827243, 1826780, 1826174, 1825424, 1824530, 1823499, 1822341, 1821071, 1819707, 1818269, 1816778, 1815256, + 1813722, 1812192, 1810681, 1809201, 1807761, 1806367, 1805024, 1803735, 1802502, 1801325, 1800204, 1799137, 1798124, 1797162, + 1796250, 1795386, 1794567, 1793792, 1793058, 1792363, 1791706, 1791085, 1790497, 1789941, 1789416, 1788919, 1788449, 1788005, + 1787585, 1829321, 1829796, 1830167, 1830438, 1830610, 1830677, 1830636, 1830477, 1830193, 1829779, 1829227, 1828535, 1827705, + 1826739, 1825648, 1824443, 1823141, 1821762, 1820325, 1818849, 1817355, 1815859, 1814375, 1812916, 1811491, 1810108, 1808772, + 1807487, 1806254, 1805075, 1803949, 1802876, 1801855, 1800885, 1799964, 1799089, 1798260, 1797474, 1796729, 1796023, 1795354, + 1794721, 1794121, 1793554, 1793017, 1792508, 1792027, 1791572, 1791141, 1832019, 1832504, 1832890, 1833178, 1833370, 1833463, + 1833451, 1833326, 1833083, 1832713, 1832212, 1831576, 1830805, 1829902, 1828874, 1827732, 1826492, 1825170, 1823786, 1822358, + 1820905, 1819443, 1817988, 1816551, 1815144, 1813773, 1812445, 1811164, 1809933, 1808752, 1807623, 1806546, 1805518, 1804540, + 1803610, 1802726, 1801887, 1801090, 1800334, 1799617, 1798937, 1798293, 1797682, 1797103, 1796554, 1796035, 1795543, 1795076, + 1794635, 1834656, 1835152, 1835550, 1835855, 1836066, 1836182, 1836198, 1836106, 1835900, 1835573, 1835120, 1834537, 1833822, + 1832978, 1832012, 1830932, 1829751, 1828487, 1827155, 1825775, 1824363, 1822937, 1821512, 1820099, 1818711, 1817354, 1816036, + 1814762, 1813533, 1812353, 1811222, 1810140, 1809107, 1808123, 1807185, 1806292, 1805443, 1804637, 1803871, 1803143, 1802453, + 1801797, 1801176, 1800586, 1800026, 1799496, 1798993, 1798516, 1798064, 1837249, 1837754, 1838164, 1838484, 1838713, 1838851, + 1838892, 1838830, 1838659, 1838373, 1837964, 1837431, 1836770, 1835983, 1835075, 1834054, 1832932, 1831723, 1830444, 1829111, + 1827742, 1826352, 1824958, 1823571, 1822203, 1820862, 1819555, 1818288, 1817063, 1815885, 1814753, 1813668, 1812631, 1811640, + 1810695, 1809795, 1808937, 1808122, 1807346, 1806608, 1805907, 1805242, 1804609, 1804009, 1803439, 1802898, 1802384, 1801896, + 1801434, 1839781, 1840296, 1840717, 1841050, 1841297, 1841455, 1841520, 1841487, 1841349, 1841100, 1840735, 1840248, 1839638, + 1838905, 1838054, 1837090, 1836025, 1834871, 1833643, 1832358, 1831032, 1829681, 1828318, 1826959, 1825612, 1824288, 1822994, + 1821736, 1820517, 1819341, 1818209, 1817123, 1816082, 1815087, 1814136, 1813228, 1812363, 1811539, 1810754, 1810007, 1809297, + 1808621, 1807979, 1807368, 1806788, 1806236, 1805713, 1805215, 1804742, 1842270, 1842792, 1843224, 1843570, 1843832, 1844010, + 1844098, 1844091, 1843984, 1843771, 1843445, 1843003, 1842441, 1841760, 1840962, 1840054, 1839044, 1837944, 1836767, 1835530, + 1834246, 1832933, 1831604, 1830272, 1828948, 1827643, 1826363, 1825115, 1823903, 1822731, 1821601, 1820514, 1819471, 1818471, + 1817515, 1816601, 1815729, 1814897, 1814104, 1813348, 1812628, 1811943, 1811291, 1810670, 1810080, 1809519, 1808985, 1808478, + 1807995, 1844699, 1845229, 1845670, 1846029, 1846306, 1846501, 1846610, 1846629, 1846552, 1846372, 1846084, 1845684, 1845168, + 1844537, 1843791, 1842936, 1841979, 1840931, 1839805, 1838615, 1837375, 1836101, 1834806, 1833503, 1832204, 1830918, 1829654, + 1828418, 1827214, 1826048, 1824920, 1823834, 1822789, 1821787, 1820826, 1819907, 1819029, 1818189, 1817388, 1816625, 1815896, + 1815202, 1814541, 1813911, 1813312, 1812741, 1812198, 1811681, 1811189, 1847084, 1847621, 1848071, 1848441, 1848732, 1848944, + 1849074, 1849116, 1849066, 1848918, 1848666, 1848305, 1847833, 1847249, 1846553, 1845749, 1844844, 1843848, 1842771, 1841628, + 1840431, 1839196, 1837935, 1836663, 1835389, 1834124, 1832877, 1831653, 1830460, 1829300, 1828176, 1827091, 1826046, 1825042, + 1824078, 1823154, 1822270, 1821424, 1820616, 1819845, 1819108, 1818406, 1817736, 1817097, 1816489, 1815909, 1815356, 1814830, + 1814329, 1849425, 1849969, 1850428, 1850808, 1851112, 1851340, 1851488, 1851553, 1851529, 1851410, 1851192, 1850869, 1850438, + 1849899, 1849250, 1848495, 1847640, 1846694, 1845666, 1844569, 1843415, 1842219, 1840994, 1839752, 1838504, 1837262, 1836032, + 1834823, 1833640, 1832488, 1831369, 1830287, 1829243, 1828237, 1827271, 1826343, 1825454, 1824603, 1823788, 1823009, 1822265, + 1821555, 1820877, 1820230, 1819613, 1819024, 1818463, 1817927, 1817417, 1851724, 1852273, 1852740, 1853130, 1853446, 1853688, + 1853854, 1853940, 1853940, 1853850, 1853663, 1853376, 1852985, 1852487, 1851884, 1851176, 1850370, 1849472, 1848491, 1847440, + 1846329, 1845172, 1843983, 1842772, 1841552, 1840332, 1839121, 1837928, 1836757, 1835613, 1834501, 1833422, 1832380, 1831374, + 1830406, 1829475, 1828582, 1827725, 1826905, 1826120, 1825369, 1824651, 1823965, 1823310, 1822684, 1822087, 1821517, 1820973, + 1820455, 1853979, 1854533, 1855008, 1855407, 1855734, 1855990, 1856173, 1856278, 1856301, 1856237, 1856081, 1855827, 1855473, + 1855016, 1854456, 1853794, 1853034, 1852183, 1851249, 1850242, 1849174, 1848057, 1846903, 1845724, 1844532, 1843336, 1842145, + 1840968, 1839810, 1838677, 1837571, 1836498, 1835458, 1834453, 1833484, 1832551, 1831654, 1830793, 1829967, 1829176, 1828419, + 1827694, 1827001, 1826338, 1825704, 1825099, 1824521, 1823969, 1823442, 1856191, 1856750, 1857231, 1857639, 1857977, 1858246, + 1858445, 1858568, 1858613, 1858574, 1858446, 1858224, 1857906, 1857487, 1856969, 1856350, 1855635, 1854830, 1853941, 1852978, + 1851951, 1850874, 1849756, 1848609, 1847446, 1846274, 1845105, 1843945, 1842801, 1841679, 1840582, 1839514, 1838477, 1837474, + 1836505, 1835571, 1834671, 1833807, 1832976, 1832180, 1831417, 1830685, 1829985, 1829315, 1828674, 1828062, 1827476, 1826916, + 1826381, 1858360, 1858924, 1859411, 1859826, 1860175, 1860456, 1860669, 1860810, 1860876, 1860860, 1860759, 1860568, 1860283, + 1859901, 1859422, 1858845, 1858174, 1857412, 1856567, 1855648, 1854663, 1853624, 1852542, 1851428, 1850294, 1849148, 1848001, + 1846859, 1845731, 1844620, 1843533, 1842471, 1841439, 1840439, 1839470, 1838535, 1837634, 1836767, 1835933, 1835132, 1834363, + 1833626, 1832919, 1832243, 1831595, 1830975, 1830381, 1829814, 1829271, 1860503, 1861071, 1861564, 1861987, 1862344, 1862637, + 1862864, 1863021, 1863105, 1863112, 1863036, 1862873, 1862620, 1862273, 1861831, 1861294, 1860664, 1859945, 1859143, 1858265, + 1857321, 1856321, 1855275, 1854194, 1853089, 1851969, 1850844, 1849722, 1848609, 1847511, 1846434, 1845380, 1844354, 1843356, + 1842389, 1841454, 1840552, 1839682, 1838845, 1838039, 1837266, 1836523, 1835811, 1835128, 1834473, 1833846, 1833245, 1832670, + 1832120, 1862604, 1863175, 1863673, 1864103, 1864469, 1864773, 1865012, 1865185, 1865287, 1865314, 1865262, 1865127, 1864904, + 1864590, 1864184, 1863685, 1863096, 1862418, 1861657, 1860820, 1859916, 1858954, 1857944, 1856896, 1855821, 1854728, 1853626, + 1852524, 1851427, 1850343, 1849277, 1848232, 1847211, 1846218, 1845254, 1844320, 1843417, 1842545, 1841705, 1840896, 1840118, + 1839371, 1838653, 1837964, 1837303, 1836669, 1836062, 1835480, 1834923, 1864661, 1865236, 1865739, 1866175, 1866549, 1866863, + 1867115, 1867302, 1867421, 1867469, 1867439, 1867329, 1867135, 1866853, 1866482, 1866020, 1865468, 1864830, 1864109, 1863313, + 1862448, 1861524, 1860549, 1859535, 1858490, 1857424, 1856346, 1855264, 1854186, 1853117, 1852062, 1851027, 1850013, 1849025, + 1848064, 1847132, 1846229, 1845357, 1844515, 1843703, 1842921, 1842169, 1841447, 1840752, 1840086, 1839446, 1838832, 1838244, + 1837680, 1866674, 1867253, 1867761, 1868203, 1868585, 1868908, 1869172, 1869373, 1869508, 1869575, 1869567, 1869482, 1869315, + 1869063, 1868724, 1868297, 1867783, 1867183, 1866502, 1865745, 1864919, 1864032, 1863093, 1862111, 1861097, 1860059, 1859006, + 1857945, 1856885, 1855832, 1854790, 1853765, 1852760, 1851778, 1850821, 1849891, 1848990, 1848117, 1847274, 1846460, 1845675, + 1844919, 1844192, 1843493, 1842821, 1842176, 1841556, 1840962, 1840391, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.5 V (slice 2): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_2 and r_2). +pub const VSB_P2 : [4851]u32 = [ + 4294967295, 0, 23347, 11772, 11716, 14225, 17761, 21181, 24783, 28415, 32040, 35650, 39248, 42838, + 46424, 50008, 53593, 57181, 60774, 64373, 67978, 71589, 75207, 78830, 82460, 86095, 89735, 93381, + 97033, 100697, 104378, 108090, 111855, 115709, 119701, 123909, 128721, 133792, 139511, 146082, 153725, 162661, + 173080, 185114, 198809, 214115, 230892, 248931, 267979, 287776, 0, 41917, 32198, 32159, 34350, 37436, + 40172, 43121, 46123, 49133, 52145, 55161, 58183, 61216, 64261, 67322, 70401, 73497, 76612, 79747, + 82902, 86076, 89269, 92481, 95711, 98958, 102223, 105504, 108806, 112131, 115490, 118897, 122379, 125974, + 129743, 134000, 138471, 143481, 149212, 155875, 163691, 172872, 183591, 195954, 209976, 225576, 242590, 260790, + 279921, 29311, 67131, 59081, 58705, 60468, 63099, 65160, 67444, 69796, 72167, 74549, 76944, 79354, + 81784, 84237, 86713, 89216, 91746, 94305, 96892, 99509, 102156, 104831, 107535, 110268, 113029, 115817, + 118633, 121476, 124351, 127263, 130221, 133245, 136364, 139620, 143259, 147071, 151315, 156149, 161761, 168362, + 176173, 185395, 196188, 208635, 222730, 238372, 255382, 273527, 75135, 98404, 91851, 91002, 92206, 93934, + 95886, 97570, 99328, 101110, 102905, 104715, 106542, 108391, 110263, 112162, 114089, 116046, 118035, 120055, + 122108, 124194, 126314, 128468, 130655, 132876, 135130, 137417, 139738, 142094, 144489, 146930, 149429, 152005, + 154690, 157530, 160770, 164210, 168108, 172624, 177944, 184280, 191846, 200837, 211402, 223614, 237458, 252827, + 269541, 121316, 134631, 129321, 128058, 128670, 129952, 131489, 132697, 133972, 135269, 136577, 137897, 139230, + 140580, 141951, 143344, 144762, 146206, 147678, 149179, 150710, 152271, 153865, 155490, 157148, 158839, 160563, + 162321, 164112, 165938, 167801, 169706, 171660, 173675, 175774, 177987, 180484, 183130, 186111, 189551, 193604, + 198452, 204298, 211349, 219797, 229786, 241394, 254611, 269341, 167747, 174591, 170154, 168629, 168747, 169628, + 170645, 171714, 172630, 173566, 174508, 175456, 176411, 177378, 178358, 179354, 180368, 181402, 182457, 183534, + 184635, 185760, 186911, 188088, 189292, 190524, 191783, 193071, 194388, 195735, 197114, 198527, 199979, 201477, + 203036, 204674, 206422, 208434, 210595, 213072, 215980, 219462, 223688, 228848, 235139, 242748, 251824, 262456, + 274658, 214351, 217144, 213255, 211593, 211363, 211910, 212681, 213435, 214194, 214879, 215565, 216252, 216941, + 217635, 218336, 219047, 219769, 220504, 221252, 222016, 222796, 223593, 224408, 225242, 226096, 226970, 227864, + 228781, 229719, 230681, 231666, 232677, 233716, 234788, 235901, 237067, 238303, 239705, 241202, 242903, 244884, + 247246, 250114, 253640, 257995, 263361, 269916, 277816, 287167, 261075, 261398, 257841, 256093, 255653, 255958, + 256537, 257135, 257739, 258257, 258775, 259289, 259800, 260312, 260827, 261345, 261869, 262400, 262938, 263486, + 264044, 264613, 265193, 265785, 266391, 267010, 267642, 268290, 268953, 269632, 270327, 271039, 271771, 272525, + 273305, 274117, 274973, 275888, 276939, 278072, 279376, 280914, 282770, 285049, 287879, 291407, 295795, 301207, + 307797, 307888, 306730, 303371, 301560, 301005, 301151, 301586, 302077, 302540, 302996, 303405, 303809, 304207, + 304602, 304996, 305390, 305786, 306184, 306587, 306994, 307406, 307824, 308249, 308681, 309121, 309569, 310025, + 310491, 310967, 311452, 311948, 312456, 312975, 313508, 314057, 314626, 315220, 315847, 316552, 317304, 318153, + 319138, 320310, 321736, 323499, 325703, 328468, 331930, 336233, 354767, 352734, 349491, 347639, 347014, 347068, + 347403, 347816, 348216, 348587, 348950, 349285, 349612, 349934, 350253, 350570, 350885, 351201, 351517, 351835, + 352155, 352478, 352804, 353133, 353467, 353805, 354149, 354497, 354851, 355211, 355578, 355951, 356331, 356720, + 357118, 357526, 357950, 358391, 358859, 359385, 359948, 360587, 361330, 362218, 363300, 364642, 366323, 368437, + 371094, 401701, 399156, 395981, 394102, 393432, 393437, 393709, 394066, 394423, 394755, 395078, 395370, 395654, + 395932, 396204, 396473, 396739, 397003, 397267, 397530, 397793, 398056, 398321, 398587, 398855, 399125, 399398, + 399673, 399951, 400232, 400517, 400805, 401097, 401394, 401697, 402005, 402321, 402647, 402987, 403357, 403748, + 404179, 404667, 405233, 405908, 406728, 407743, 409010, 410603, 448680, 445840, 442705, 440810, 440112, 440087, + 440324, 440643, 440970, 441278, 441564, 441843, 442101, 442351, 442596, 442836, 443072, 443305, 443537, 443766, + 443995, 444222, 444450, 444677, 444905, 445133, 445362, 445592, 445823, 446056, 446290, 446526, 446764, 447005, + 447248, 447494, 447745, 448000, 448263, 448535, 448831, 449141, 449481, 449863, 450303, 450822, 451449, 452217, + 453171, 495698, 492691, 489581, 487677, 486962, 486918, 487137, 487432, 487738, 488030, 488301, 488558, 488802, + 489042, 489270, 489492, 489710, 489925, 490137, 490347, 490554, 490760, 490965, 491169, 491373, 491575, 491778, + 491981, 492184, 492387, 492591, 492795, 493001, 493207, 493414, 493623, 493834, 494047, 494263, 494485, 494718, + 494959, 495215, 495493, 495802, 496152, 496561, 497047, 497635, 542748, 539653, 536558, 534649, 533924, 533870, + 534077, 534360, 534652, 534933, 535196, 535443, 535678, 535905, 536123, 536339, 536547, 536750, 536951, 537148, + 537344, 537537, 537728, 537918, 538107, 538295, 538482, 538669, 538855, 539040, 539226, 539411, 539596, 539782, + 539968, 540154, 540341, 540529, 540719, 540911, 541106, 541309, 541518, 541738, 541974, 542232, 542521, 542851, + 543236, 589823, 586687, 583605, 581694, 580964, 580903, 581104, 581380, 581664, 581938, 582196, 582438, 582668, + 582889, 583102, 583309, 583511, 583709, 583904, 584095, 584283, 584469, 584652, 584834, 585014, 585193, 585371, + 585548, 585724, 585899, 586074, 586248, 586421, 586595, 586768, 586941, 587114, 587287, 587460, 587635, 587811, + 587989, 588173, 588361, 588557, 588765, 588988, 589233, 589507, 637336, 634009, 630824, 628849, 628084, 628005, + 628196, 628465, 628744, 629013, 629267, 629507, 629734, 629952, 630162, 630366, 630564, 630758, 630949, 631136, + 631320, 631502, 631682, 631859, 632035, 632208, 632381, 632552, 632722, 632891, 633060, 633227, 633394, 633560, + 633726, 633891, 634055, 634220, 634385, 634549, 634714, 634880, 635049, 635219, 635393, 635573, 635761, 635960, + 636175, 692136, 685616, 680373, 677197, 675793, 675396, 675438, 675639, 675888, 676142, 676389, 676625, 676851, + 677067, 677276, 677478, 677675, 677868, 678056, 678241, 678424, 678603, 678780, 678955, 679128, 679299, 679470, + 679638, 679805, 679970, 680135, 680299, 680462, 680624, 680785, 680946, 681106, 681266, 681425, 681584, 681743, + 681902, 682061, 682223, 682385, 682550, 682719, 682894, 683077, 753157, 741391, 732556, 727122, 724401, 723283, + 722947, 722959, 723115, 723325, 723551, 723778, 723999, 724213, 724421, 724623, 724820, 725012, 725200, 725385, + 725566, 725745, 725921, 726095, 726267, 726437, 726606, 726773, 726938, 727102, 727266, 727428, 727589, 727749, + 727908, 728067, 728224, 728381, 728538, 728694, 728850, 729005, 729160, 729316, 729472, 729630, 729789, 729950, + 730116, 816033, 799081, 786438, 778386, 773972, 771813, 770863, 770525, 770486, 770591, 770761, 770959, 771165, + 771373, 771578, 771779, 771975, 772168, 772357, 772542, 772724, 772903, 773079, 773254, 773426, 773596, 773764, + 773931, 774096, 774260, 774423, 774585, 774745, 774905, 775063, 775221, 775378, 775534, 775689, 775844, 775998, + 776152, 776305, 776458, 776612, 776765, 776919, 777075, 777232, 878396, 857133, 841107, 830547, 824360, 820998, + 819260, 818420, 818070, 817986, 818043, 818175, 818345, 818532, 818726, 818921, 819116, 819308, 819497, 819684, + 819867, 820047, 820225, 820401, 820574, 820746, 820915, 821083, 821249, 821414, 821578, 821740, 821901, 822061, + 822220, 822378, 822535, 822691, 822847, 823001, 823155, 823309, 823462, 823615, 823767, 823919, 824071, 824224, + 824377, 939329, 914724, 895903, 883135, 875278, 870695, 868089, 866648, 865890, 865534, 865414, 865432, 865530, + 865673, 865840, 866021, 866207, 866396, 866584, 866771, 866956, 867139, 867319, 867497, 867673, 867847, 868018, + 868188, 868357, 868524, 868689, 868853, 869016, 869178, 869338, 869498, 869656, 869814, 869971, 870127, 870282, + 870436, 870590, 870744, 870896, 871049, 871201, 871353, 871505, 998526, 971447, 950389, 935753, 926406, 920672, + 917196, 915111, 913887, 913198, 912845, 912702, 912690, 912761, 912881, 913031, 913199, 913378, 913561, 913746, + 913932, 914116, 914300, 914481, 914661, 914838, 915014, 915188, 915360, 915530, 915699, 915867, 916033, 916198, + 916361, 916524, 916685, 916845, 917005, 917163, 917321, 917478, 917634, 917789, 917944, 918098, 918252, 918405, + 918558, 1055823, 1027041, 1004245, 988061, 977426, 970651, 966353, 963631, 961919, 960865, 960240, 959900, 959746, + 959716, 959766, 959869, 960006, 960165, 960337, 960517, 960701, 960887, 961073, 961258, 961443, 961626, 961807, + 961986, 962164, 962340, 962515, 962688, 962859, 963029, 963197, 963365, 963531, 963696, 963859, 964022, 964184, + 964345, 964505, 964664, 964822, 964980, 965137, 965293, 965449, 1111008, 1081255, 1057174, 1039735, 1028006, 1020317, + 1015273, 1011948, 1009759, 1008331, 1007418, 1006858, 1006540, 1006387, 1006349, 1006389, 1006483, 1006612, 1006766, 1006935, + 1007114, 1007300, 1007488, 1007678, 1007869, 1008059, 1008247, 1008435, 1008621, 1008805, 1008987, 1009168, 1009347, 1009525, + 1009701, 1009875, 1010048, 1010220, 1010390, 1010560, 1010728, 1010895, 1011061, 1011226, 1011390, 1011553, 1011715, 1011877, + 1012038, 1163740, 1133762, 1108834, 1090411, 1077772, 1069299, 1063595, 1059724, 1057087, 1055298, 1054097, 1053310, 1052816, + 1052529, 1052389, 1052354, 1052394, 1052486, 1052615, 1052769, 1052940, 1053123, 1053313, 1053508, 1053705, 1053904, 1054102, + 1054299, 1054496, 1054691, 1054884, 1055076, 1055265, 1055453, 1055640, 1055824, 1056007, 1056189, 1056368, 1056547, 1056724, + 1056900, 1057074, 1057247, 1057419, 1057590, 1057760, 1057929, 1058097, 1213568, 1184132, 1158813, 1139667, 1126291, 1117160, + 1110887, 1106532, 1103490, 1101364, 1099888, 1098879, 1098207, 1097781, 1097533, 1097416, 1097395, 1097443, 1097541, 1097675, + 1097836, 1098014, 1098205, 1098404, 1098609, 1098816, 1099025, 1099235, 1099444, 1099652, 1099859, 1100064, 1100267, 1100469, + 1100668, 1100865, 1101061, 1101255, 1101447, 1101637, 1101825, 1102012, 1102198, 1102381, 1102564, 1102745, 1102925, 1103103, + 1103280, 1260004, 1231867, 1206640, 1187033, 1173084, 1163409, 1156653, 1151878, 1148475, 1146044, 1144313, 1143092, 1142247, + 1141681, 1141323, 1141119, 1141032, 1141030, 1141093, 1141203, 1141348, 1141519, 1141708, 1141910, 1142120, 1142337, 1142557, + 1142779, 1143001, 1143224, 1143445, 1143665, 1143883, 1144100, 1144314, 1144526, 1144736, 1144944, 1145150, 1145353, 1145555, + 1145755, 1145953, 1146149, 1146343, 1146535, 1146726, 1146916, 1147103, 1302657, 1276469, 1251841, 1232046, 1217673, 1207556, + 1200391, 1195252, 1191530, 1188822, 1186854, 1185433, 1184421, 1183717, 1183246, 1182952, 1182793, 1182736, 1182757, 1182837, + 1182961, 1183119, 1183301, 1183501, 1183714, 1183936, 1184164, 1184396, 1184630, 1184865, 1185100, 1185334, 1185567, 1185797, + 1186026, 1186252, 1186477, 1186699, 1186918, 1187135, 1187350, 1187562, 1187773, 1187981, 1188187, 1188391, 1188593, 1188793, + 1188991, 1341351, 1317566, 1294027, 1274324, 1259668, 1249193, 1241680, 1236220, 1232210, 1229248, 1227058, 1225445, 1224268, + 1223425, 1222837, 1222447, 1222209, 1222088, 1222058, 1222099, 1222193, 1222329, 1222496, 1222687, 1222896, 1223117, 1223347, + 1223584, 1223825, 1224068, 1224312, 1224556, 1224799, 1225041, 1225281, 1225519, 1225755, 1225988, 1226219, 1226447, 1226673, + 1226896, 1227117, 1227335, 1227551, 1227764, 1227975, 1228185, 1228391, 1376153, 1354977, 1332946, 1313625, 1298823, 1288061, + 1280243, 1274494, 1270218, 1267016, 1264612, 1262810, 1261469, 1260483, 1259772, 1259277, 1258950, 1258756, 1258665, 1258655, + 1258709, 1258812, 1258954, 1259125, 1259320, 1259531, 1259755, 1259988, 1260228, 1260472, 1260719, 1260967, 1261215, 1261462, + 1261708, 1261953, 1262195, 1262436, 1262673, 1262909, 1263141, 1263372, 1263599, 1263824, 1264046, 1264266, 1264483, 1264698, + 1264911, 1407339, 1388752, 1368526, 1349870, 1335062, 1324075, 1315988, 1309971, 1305444, 1302011, 1299397, 1297406, 1295897, + 1294762, 1293921, 1293312, 1292887, 1292607, 1292443, 1292371, 1292372, 1292432, 1292537, 1292678, 1292847, 1293039, 1293246, + 1293467, 1293697, 1293934, 1294175, 1294419, 1294665, 1294911, 1295157, 1295402, 1295646, 1295888, 1296128, 1296365, 1296600, + 1296833, 1297063, 1297290, 1297515, 1297737, 1297956, 1298173, 1298388, 1435279, 1419106, 1400836, 1383102, 1368437, 1357292, + 1348966, 1342700, 1337933, 1334275, 1331454, 1329275, 1327595, 1326307, 1325329, 1324598, 1324065, 1323690, 1323443, 1323298, + 1323236, 1323240, 1323298, 1323398, 1323532, 1323694, 1323876, 1324075, 1324286, 1324507, 1324735, 1324969, 1325205, 1325444, + 1325683, 1325923, 1326162, 1326400, 1326637, 1326871, 1327104, 1327334, 1327563, 1327788, 1328011, 1328232, 1328450, 1328666, + 1328879, 1460390, 1446373, 1430070, 1413467, 1399104, 1387873, 1379343, 1372846, 1367849, 1363973, 1360948, 1358581, 1356729, + 1355284, 1354164, 1353305, 1352657, 1352179, 1351840, 1351614, 1351480, 1351420, 1351421, 1351471, 1351562, 1351684, 1351832, + 1352001, 1352187, 1352385, 1352593, 1352808, 1353029, 1353254, 1353481, 1353710, 1353940, 1354169, 1354398, 1354626, 1354852, + 1355076, 1355299, 1355519, 1355738, 1355954, 1356167, 1356379, 1356588, 1483048, 1470910, 1456483, 1441151, 1427250, 1416019, + 1407324, 1400617, 1395404, 1391318, 1388095, 1385543, 1383519, 1381917, 1380653, 1379663, 1378896, 1378310, 1377874, 1377560, + 1377346, 1377216, 1377153, 1377147, 1377186, 1377263, 1377371, 1377504, 1377657, 1377826, 1378008, 1378200, 1378400, 1378606, + 1378817, 1379030, 1379246, 1379462, 1379680, 1379897, 1380113, 1380328, 1380542, 1380755, 1380965, 1381174, 1381381, 1381585, + 1381788, 1503605, 1493079, 1480372, 1466377, 1453088, 1441953, 1433141, 1426249, 1420835, 1416549, 1413135, 1410403, 1408212, + 1406454, 1405046, 1403923, 1403035, 1402338, 1401801, 1401395, 1401098, 1400892, 1400761, 1400692, 1400676, 1400702, 1400764, + 1400856, 1400971, 1401107, 1401258, 1401423, 1401598, 1401781, 1401971, 1402165, 1402364, 1402564, 1402767, 1402970, 1403174, + 1403378, 1403581, 1403783, 1403984, 1404183, 1404381, 1404577, 1404772, 1522356, 1513204, 1502034, 1489372, 1476819, 1465885, + 1457013, 1449966, 1444369, 1439896, 1436300, 1433395, 1431040, 1429130, 1427580, 1426326, 1425317, 1424509, 1423869, 1423369, + 1422986, 1422701, 1422498, 1422364, 1422288, 1422260, 1422272, 1422319, 1422393, 1422492, 1422609, 1422743, 1422889, 1423047, + 1423213, 1423385, 1423564, 1423746, 1423931, 1424119, 1424308, 1424498, 1424688, 1424878, 1425067, 1425256, 1425444, 1425630, + 1425816, 1539547, 1531563, 1521746, 1510363, 1498633, 1488005, 1479138, 1471972, 1466214, 1461569, 1457802, 1454731, 1452220, + 1450162, 1448474, 1447091, 1445962, 1445043, 1444301, 1443706, 1443236, 1442871, 1442594, 1442393, 1442255, 1442170, 1442130, + 1442129, 1442160, 1442218, 1442299, 1442399, 1442515, 1442644, 1442784, 1442933, 1443089, 1443250, 1443417, 1443587, 1443759, + 1443934, 1444110, 1444286, 1444463, 1444640, 1444816, 1444992, 1445167, 1555386, 1548399, 1539760, 1529568, 1518709, 1508485, + 1499693, 1492450, 1486555, 1481754, 1477828, 1474602, 1471941, 1469741, 1467920, 1466412, 1465166, 1464138, 1463294, 1462605, + 1462048, 1461603, 1461252, 1460982, 1460780, 1460637, 1460544, 1460493, 1460479, 1460495, 1460537, 1460601, 1460684, 1460783, + 1460895, 1461018, 1461150, 1461290, 1461436, 1461587, 1461742, 1461900, 1462060, 1462222, 1462386, 1462550, 1462714, 1462878, + 1463042, 1570041, 1563906, 1556290, 1547185, 1537209, 1527469, 1518827, 1511553, 1505550, 1500612, 1496540, 1493169, 1490367, + 1488032, 1486083, 1484455, 1483095, 1481961, 1481018, 1480236, 1479593, 1479068, 1478642, 1478303, 1478038, 1477836, 1477688, + 1477587, 1477526, 1477499, 1477501, 1477529, 1477578, 1477645, 1477728, 1477824, 1477931, 1478047, 1478171, 1478302, 1478438, + 1478579, 1478723, 1478869, 1479018, 1479168, 1479320, 1479472, 1479625, 1583660, 1578256, 1571527, 1563401, 1554288, 1545093, + 1536673, 1529419, 1523339, 1518285, 1514082, 1510576, 1507642, 1505179, 1503108, 1501364, 1499894, 1498658, 1497618, 1496746, + 1496019, 1495414, 1494915, 1494508, 1494179, 1493917, 1493715, 1493562, 1493454, 1493383, 1493344, 1493334, 1493348, 1493382, + 1493435, 1493503, 1493584, 1493676, 1493778, 1493887, 1494004, 1494126, 1494253, 1494383, 1494517, 1494653, 1494791, 1494931, + 1495071, 1596370, 1591597, 1585637, 1578383, 1570094, 1561481, 1553347, 1546165, 1540043, 1534895, 1530576, 1526947, 1523890, + 1521307, 1519120, 1517265, 1515691, 1514354, 1513221, 1512261, 1511451, 1510769, 1510198, 1509722, 1509330, 1509010, 1508752, + 1508548, 1508392, 1508276, 1508196, 1508148, 1508126, 1508127, 1508148, 1508187, 1508241, 1508308, 1508387, 1508475, 1508571, + 1508674, 1508783, 1508896, 1509014, 1509136, 1509260, 1509387, 1509515, 1608260, 1604035, 1598744, 1592265, 1584746, 1576733, + 1568939, 1561882, 1555756, 1550538, 1546121, 1542382, 1539212, 1536516, 1534220, 1532260, 1530585, 1529154, 1527930, 1526885, + 1525995, 1525237, 1524595, 1524053, 1523598, 1523219, 1522907, 1522652, 1522448, 1522288, 1522167, 1522079, 1522021, 1521988, + 1521978, 1521988, 1522014, 1522056, 1522110, 1522176, 1522251, 1522334, 1522425, 1522521, 1522623, 1522729, 1522839, 1522952, + 1523068, 1619422, 1615674, 1610968, 1605175, 1598368, 1590952, 1583540, 1576658, 1570566, 1565305, 1560808, 1556972, 1553698, + 1550899, 1548500, 1546441, 1544671, 1543148, 1541838, 1540711, 1539742, 1538911, 1538200, 1537593, 1537077, 1536640, 1536274, + 1535969, 1535717, 1535513, 1535350, 1535223, 1535128, 1535062, 1535020, 1535000, 1534998, 1535014, 1535043, 1535086, 1535140, + 1535203, 1535275, 1535354, 1535439, 1535530, 1535625, 1535724, 1535827, 1629935, 1626605, 1622410, 1617224, 1611067, 1604232, + 1597231, 1590567, 1584548, 1579273, 1574715, 1570796, 1567430, 1564535, 1562040, 1559887, 1558027, 1556417, 1555023, 1553817, + 1552773, 1551871, 1551092, 1550421, 1549845, 1549353, 1548933, 1548577, 1548279, 1548030, 1547826, 1547660, 1547529, 1547428, + 1547354, 1547304, 1547274, 1547263, 1547268, 1547288, 1547320, 1547363, 1547415, 1547476, 1547544, 1547619, 1547699, 1547784, + 1547873, 1639862, 1636901, 1633155, 1628507, 1622939, 1616660, 1610084, 1603676, 1597767, 1592506, 1587908, 1583922, 1580474, + 1577491, 1574908, 1572667, 1570721, 1569028, 1567555, 1566273, 1565156, 1564185, 1563341, 1562608, 1561973, 1561425, 1560953, + 1560548, 1560203, 1559911, 1559665, 1559461, 1559293, 1559158, 1559052, 1558971, 1558913, 1558876, 1558856, 1558851, 1558861, + 1558883, 1558916, 1558959, 1559010, 1559068, 1559133, 1559203, 1559279, 1649251, 1646615, 1643266, 1639094, 1634060, 1628305, + 1622160, 1616035, 1610272, 1605055, 1600439, 1596401, 1592883, 1589822, 1587158, 1584835, 1582808, 1581037, 1579488, 1578133, + 1576947, 1575909, 1575002, 1574209, 1573517, 1572915, 1572392, 1571939, 1571548, 1571212, 1570926, 1570683, 1570479, 1570310, + 1570172, 1570061, 1569975, 1569910, 1569865, 1569837, 1569824, 1569825, 1569838, 1569862, 1569896, 1569938, 1569987, 1570043, + 1570104, 1658155, 1655808, 1652811, 1649063, 1644510, 1639244, 1633523, 1627704, 1622115, 1616971, 1612361, 1608287, 1604712, + 1601582, 1598844, 1596445, 1594343, 1592498, 1590877, 1589452, 1588199, 1587098, 1586129, 1585278, 1584531, 1583876, 1583302, + 1582802, 1582366, 1581988, 1581661, 1581381, 1581141, 1580938, 1580767, 1580626, 1580512, 1580420, 1580350, 1580298, 1580263, + 1580242, 1580235, 1580240, 1580256, 1580281, 1580314, 1580355, 1580403, 1666614, 1664525, 1661841, 1658469, 1654350, 1649538, + 1644229, 1638727, 1633339, 1628296, 1623712, 1619621, 1616001, 1612813, 1610009, 1607541, 1605368, 1603453, 1601764, 1600273, + 1598957, 1597793, 1596766, 1595858, 1595057, 1594351, 1593729, 1593182, 1592702, 1592282, 1591916, 1591598, 1591323, 1591086, + 1590884, 1590713, 1590569, 1590451, 1590355, 1590279, 1590222, 1590180, 1590153, 1590139, 1590137, 1590145, 1590162, 1590188, + 1590221, 1674670, 1672811, 1670405, 1667370, 1663642, 1659248, 1654335, 1649154, 1643988, 1639068, 1634535, 1630443, 1626793, + 1623556, 1620693, 1618163, 1615925, 1613945, 1612191, 1610638, 1609260, 1608037, 1606953, 1605991, 1605138, 1604382, 1603712, + 1603120, 1602597, 1602136, 1601731, 1601376, 1601066, 1600796, 1600562, 1600361, 1600189, 1600044, 1599923, 1599823, 1599743, + 1599680, 1599632, 1599599, 1599578, 1599569, 1599570, 1599581, 1599599, 1682356, 1680703, 1678547, 1675812, 1672437, 1668426, + 1663887, 1659027, 1654097, 1649323, 1644861, 1640787, 1637120, 1633846, 1630933, 1628346, 1626048, 1624008, 1622194, 1620580, + 1619144, 1617865, 1616726, 1615711, 1614808, 1614003, 1613287, 1612651, 1612086, 1611585, 1611141, 1610750, 1610405, 1610102, + 1609837, 1609606, 1609407, 1609235, 1609088, 1608965, 1608861, 1608777, 1608709, 1608656, 1608618, 1608591, 1608576, 1608570, + 1608574, 1689685, 1688219, 1686287, 1683823, 1680766, 1677106, 1672922, 1668377, 1663692, 1659083, 1654711, 1650673, 1647004, + 1643703, 1640750, 1638114, 1635763, 1633666, 1631795, 1630126, 1628634, 1627302, 1626111, 1625046, 1624094, 1623242, 1622482, + 1621803, 1621197, 1620656, 1620176, 1619748, 1619369, 1619034, 1618739, 1618479, 1618251, 1618053, 1617881, 1617734, 1617608, + 1617502, 1617414, 1617342, 1617284, 1617241, 1617209, 1617188, 1617177, 1696705, 1695406, 1693676, 1691455, 1688684, 1685346, + 1681492, 1677253, 1672819, 1668387, 1664125, 1660139, 1656482, 1653166, 1650181, 1647502, 1645103, 1642955, 1641032, 1639309, + 1637766, 1636382, 1635141, 1634027, 1633028, 1632132, 1631328, 1630607, 1629961, 1629382, 1628865, 1628402, 1627990, 1627623, + 1627297, 1627008, 1626753, 1626528, 1626332, 1626160, 1626012, 1625884, 1625776, 1625685, 1625609, 1625547, 1625499, 1625462, + 1625436, 1703434, 1702286, 1700739, 1698737, 1696226, 1693180, 1689634, 1685689, 1681505, 1677262, 1673124, 1669207, 1665576, + 1662256, 1659248, 1656535, 1654093, 1651899, 1649927, 1648155, 1646562, 1645129, 1643840, 1642680, 1641636, 1640696, 1639849, + 1639088, 1638403, 1637787, 1637233, 1636737, 1636291, 1635893, 1635537, 1635219, 1634937, 1634686, 1634465, 1634270, 1634099, + 1633950, 1633821, 1633710, 1633616, 1633537, 1633472, 1633419, 1633378, 1709882, 1708873, 1707490, 1705687, 1703410, 1700633, + 1697373, 1693709, 1689772, 1685726, 1681725, 1677890, 1674299, 1670988, 1667967, 1665226, 1662749, 1660513, 1658497, 1656679, + 1655040, 1653561, 1652227, 1651022, 1649934, 1648952, 1648065, 1647264, 1646542, 1645889, 1645301, 1644771, 1644293, 1643864, + 1643479, 1643133, 1642824, 1642547, 1642301, 1642083, 1641890, 1641719, 1641570, 1641440, 1641327, 1641231, 1641149, 1641080, + 1641024, 1716077, 1715193, 1713960, 1712336, 1710273, 1707740, 1704745, 1701346, 1697653, 1693806, 1689952, 1686214, 1682676, + 1679385, 1676360, 1673600, 1671093, 1668821, 1666765, 1664905, 1663222, 1661700, 1660323, 1659076, 1657946, 1656924, 1655998, + 1655159, 1654399, 1653711, 1653089, 1652526, 1652017, 1651558, 1651143, 1650770, 1650434, 1650132, 1649862, 1649620, 1649405, + 1649214, 1649044, 1648895, 1648764, 1648650, 1648551, 1648466, 1648395, 1722025, 1721255, 1720158, 1718698, 1716829, 1714520, + 1711771, 1708622, 1705164, 1701519, 1697821, 1694190, 1690717, 1687458, 1684439, 1681668, 1679138, 1676836, 1674744, 1672846, + 1671123, 1669560, 1668142, 1666855, 1665686, 1664625, 1663661, 1662786, 1661991, 1661269, 1660613, 1660018, 1659479, 1658990, + 1658547, 1658147, 1657785, 1657458, 1657164, 1656899, 1656662, 1656450, 1656260, 1656092, 1655942, 1655811, 1655695, 1655595, + 1655508, 1727761, 1727094, 1726122, 1724810, 1723118, 1721013, 1718490, 1715577, 1712344, 1708899, 1705362, 1701848, 1698451, + 1695233, 1692231, 1689456, 1686909, 1684582, 1682459, 1680526, 1678766, 1677166, 1675709, 1674383, 1673177, 1672078, 1671078, + 1670167, 1669337, 1668582, 1667894, 1667268, 1666699, 1666181, 1665710, 1665283, 1664895, 1664544, 1664226, 1663939, 1663680, + 1663447, 1663237, 1663050, 1662882, 1662733, 1662601, 1662484, 1662382, 1733281, 1732710, 1731851, 1730675, 1729143, 1727226, + 1724912, 1722219, 1719203, 1715955, 1712581, 1709192, 1705881, 1702716, 1699738, 1696968, 1694412, 1692065, 1689916, 1687952, + 1686159, 1684523, 1683031, 1681669, 1680426, 1679292, 1678257, 1677312, 1676449, 1675662, 1674943, 1674287, 1673688, 1673142, + 1672644, 1672191, 1671778, 1671402, 1671061, 1670752, 1670471, 1670217, 1669988, 1669781, 1669596, 1669429, 1669281, 1669148, + 1669031, 1738610, 1738127, 1737371, 1736319, 1734935, 1733189, 1731066, 1728579, 1725770, 1722713, 1719505, 1716246, 1713029, + 1709925, 1706981, 1704224, 1701665, 1699304, 1697133, 1695142, 1693319, 1691651, 1690125, 1688729, 1687453, 1686285, 1685216, + 1684238, 1683344, 1682525, 1681775, 1681090, 1680462, 1679889, 1679364, 1678885, 1678448, 1678048, 1677684, 1677352, 1677051, + 1676776, 1676528, 1676302, 1676099, 1675915, 1675750, 1675602, 1675469, 1743754, 1743350, 1742690, 1741751, 1740501, 1738912, + 1736968, 1734672, 1732059, 1729188, 1726144, 1723020, 1719904, 1716870, 1713968, 1711232, 1708676, 1706307, 1704119, 1702106, + 1700256, 1698559, 1697002, 1695574, 1694265, 1693065, 1691965, 1690956, 1690030, 1689181, 1688402, 1687688, 1687033, 1686432, + 1685882, 1685378, 1684916, 1684493, 1684106, 1683753, 1683430, 1683136, 1682868, 1682624, 1682402, 1682202, 1682020, 1681856, + 1681708, 1748726, 1748396, 1747823, 1746988, 1745861, 1744417, 1742636, 1740519, 1738090, 1735398, 1732517, 1729530, 1726521, + 1723563, 1720712, 1718003, 1715459, 1713087, 1710887, 1708855, 1706982, 1705259, 1703673, 1702216, 1700877, 1699646, 1698515, + 1697476, 1696521, 1695643, 1694835, 1694093, 1693411, 1692785, 1692209, 1691680, 1691194, 1690749, 1690340, 1689965, 1689622, + 1689308, 1689020, 1688758, 1688519, 1688301, 1688103, 1687923, 1687761, 1753530, 1753268, 1752775, 1752035, 1751022, 1749711, + 1748081, 1746131, 1743875, 1741356, 1738634, 1735785, 1732887, 1730013, 1727219, 1724546, 1722018, 1719650, 1717443, 1715397, + 1713505, 1711758, 1710147, 1708662, 1707295, 1706036, 1704876, 1703808, 1702824, 1701918, 1701083, 1700315, 1699607, 1698954, + 1698354, 1697801, 1697292, 1696824, 1696394, 1695998, 1695634, 1695301, 1694994, 1694714, 1694457, 1694223, 1694008, 1693813, + 1693636, 1758192, 1757991, 1757573, 1756920, 1756011, 1754821, 1753331, 1751535, 1749443, 1747087, 1744520, 1741808, 1739025, + 1736240, 1733509, 1730877, 1728373, 1726013, 1723805, 1721749, 1719840, 1718073, 1716439, 1714929, 1713535, 1712249, 1711062, + 1709966, 1708955, 1708022, 1707161, 1706366, 1705632, 1704955, 1704331, 1703754, 1703223, 1702733, 1702281, 1701864, 1701481, + 1701128, 1700803, 1700504, 1700230, 1699979, 1699749, 1699538, 1699345, 1762692, 1762549, 1762198, 1761627, 1760814, 1759736, + 1758376, 1756723, 1754785, 1752586, 1750169, 1747594, 1744928, 1742235, 1739574, 1736991, 1734516, 1732171, 1729966, 1727904, + 1725983, 1724199, 1722545, 1721013, 1719595, 1718284, 1717071, 1715949, 1714913, 1713954, 1713067, 1712248, 1711490, 1710789, + 1710141, 1709542, 1708988, 1708476, 1708003, 1707567, 1707164, 1706792, 1706449, 1706133, 1705842, 1705574, 1705328, 1705102, + 1704894, 1767066, 1766976, 1766688, 1766191, 1765466, 1764492, 1763251, 1761732, 1759937, 1757886, 1755615, 1753174, 1750624, + 1748028, 1745441, 1742911, 1740472, 1738146, 1735949, 1733886, 1731956, 1730158, 1728486, 1726934, 1725494, 1724159, 1722922, + 1721776, 1720715, 1719731, 1718820, 1717976, 1717194, 1716470, 1715800, 1715178, 1714603, 1714070, 1713577, 1713120, 1712698, + 1712308, 1711947, 1711613, 1711305, 1711021, 1710759, 1710518, 1710295, 1771305, 1771264, 1771035, 1770607, 1769963, 1769085, + 1767954, 1766559, 1764899, 1762989, 1760856, 1758547, 1756114, 1753616, 1751108, 1748636, 1746237, 1743937, 1741753, 1739692, + 1737758, 1735949, 1734263, 1732693, 1731233, 1729876, 1728617, 1727448, 1726363, 1725356, 1724421, 1723554, 1722750, 1722003, + 1721310, 1720667, 1720071, 1719518, 1719005, 1718529, 1718087, 1717679, 1717300, 1716949, 1716625, 1716324, 1716047, 1715790, + 1715554, 1775412, 1775417, 1775241, 1774877, 1774309, 1773520, 1772491, 1771212, 1769678, 1767900, 1765902, 1763720, 1761404, + 1759006, 1756580, 1754171, 1751818, 1749548, 1747381, 1745327, 1743392, 1741577, 1739878, 1738293, 1736815, 1735440, 1734160, + 1732969, 1731862, 1730833, 1729876, 1728987, 1728161, 1727392, 1726678, 1726015, 1725398, 1724825, 1724292, 1723797, 1723338, + 1722911, 1722515, 1722147, 1721806, 1721490, 1721197, 1720926, 1720675, 1779413, 1779459, 1779333, 1779028, 1778529, 1777822, + 1776888, 1775716, 1774300, 1772647, 1770776, 1768718, 1766516, 1764219, 1761877, 1759535, 1757231, 1754996, 1752851, 1750808, + 1748876, 1747056, 1745349, 1743751, 1742257, 1740864, 1739565, 1738354, 1737226, 1736176, 1735198, 1734287, 1733440, 1732650, + 1731916, 1731232, 1730595, 1730002, 1729451, 1728937, 1728460, 1728015, 1727602, 1727218, 1726861, 1726529, 1726221, 1725935, + 1725670, 1783296, 1783381, 1783301, 1783051, 1782617, 1781985, 1781139, 1780067, 1778762, 1777227, 1775477, 1773539, 1771449, + 1769253, 1766996, 1764724, 1762474, 1760278, 1758159, 1756131, 1754205, 1752385, 1750672, 1749064, 1747557, 1746148, 1744831, + 1743602, 1742455, 1741385, 1740387, 1739456, 1738588, 1737778, 1737024, 1736320, 1735664, 1735052, 1734482, 1733951, 1733456, + 1732994, 1732564, 1732164, 1731791, 1731444, 1731121, 1730821, 1730541, 1787076, 1787197, 1787160, 1786960, 1786586, 1786025, + 1785260, 1784281, 1783079, 1781655, 1780021, 1778197, 1776217, 1774121, 1771951, 1769751, 1767559, 1765406, 1763316, 1761308, + 1759392, 1757574, 1755857, 1754241, 1752724, 1751301, 1749968, 1748722, 1747557, 1746468, 1745451, 1744501, 1743613, 1742785, + 1742011, 1741288, 1740613, 1739983, 1739395, 1738846, 1738333, 1737855, 1737409, 1736992, 1736604, 1736241, 1735904, 1735589, + 1735296, 1790755, 1790910, 1790912, 1790759, 1790441, 1789944, 1789256, 1788363, 1787257, 1785938, 1784413, 1782699, 1780826, + 1778829, 1776747, 1774621, 1772488, 1770381, 1768326, 1766340, 1764437, 1762625, 1760908, 1759287, 1757761, 1756326, 1754980, + 1753718, 1752536, 1751430, 1750395, 1749426, 1748520, 1747673, 1746880, 1746139, 1745447, 1744799, 1744193, 1743627, 1743097, + 1742602, 1742140, 1741708, 1741304, 1740927, 1740575, 1740246, 1739939, 1794334, 1794519, 1794559, 1794449, 1794183, 1793747, + 1793129, 1792316, 1791301, 1790080, 1788659, 1787051, 1785281, 1783381, 1781387, 1779336, 1777266, 1775209, 1773190, 1771231, + 1769345, 1767542, 1765828, 1764204, 1762671, 1761226, 1759868, 1758593, 1757396, 1756273, 1755221, 1754235, 1753312, 1752447, + 1751637, 1750878, 1750168, 1749503, 1748880, 1748297, 1747751, 1747240, 1746762, 1746314, 1745896, 1745504, 1745138, 1744795, + 1744475, 1797827, 1798041, 1798114, 1798045, 1797826, 1797447, 1796894, 1796157, 1795226, 1794097, 1792774, 1791267, 1789597, + 1787792, 1785884, 1783910, 1781905, 1779899, 1777921, 1775991, 1774125, 1772334, 1770625, 1769001, 1767463, 1766011, 1764643, + 1763355, 1762144, 1761006, 1759939, 1758936, 1757996, 1757114, 1756287, 1755511, 1754784, 1754102, 1753463, 1752864, 1752302, + 1751775, 1751282, 1750819, 1750386, 1749980, 1749599, 1749243, 1748910, 1801221, 1801462, 1801568, 1801536, 1801362, 1801036, + 1800544, 1799877, 1799025, 1797983, 1796753, 1795342, 1793769, 1792056, 1790235, 1788338, 1786399, 1784448, 1782512, 1780615, + 1778772, 1776996, 1775295, 1773674, 1772134, 1770677, 1769300, 1768001, 1766778, 1765627, 1764545, 1763527, 1762571, 1761674, + 1760830, 1760039, 1759295, 1758597, 1757942, 1757327, 1756750, 1756208, 1755699, 1755222, 1754774, 1754354, 1753960, 1753591, + 1753244, 1804531, 1804798, 1804933, 1804937, 1804805, 1804527, 1804093, 1803491, 1802713, 1801753, 1800610, 1799291, 1797810, + 1796188, 1794452, 1792632, 1790759, 1788865, 1786975, 1785113, 1783296, 1781538, 1779848, 1778232, 1776693, 1775232, 1773848, + 1772541, 1771307, 1770143, 1769048, 1768016, 1767046, 1766133, 1765274, 1764467, 1763708, 1762994, 1762324, 1761693, 1761101, + 1760544, 1760021, 1759530, 1759068, 1758634, 1758227, 1757844, 1757485, 1807773, 1808062, 1808225, 1808262, 1808168, 1807935, + 1807554, 1807013, 1806304, 1805420, 1804360, 1803128, 1801736, 1800201, 1798548, 1796804, 1795000, 1793163, 1791321, 1789496, + 1787708, 1785970, 1784293, 1782684, 1781148, 1779685, 1778297, 1776982, 1775738, 1774564, 1773456, 1772411, 1771426, 1770499, + 1769626, 1768804, 1768030, 1767301, 1766616, 1765970, 1765363, 1764792, 1764255, 1763749, 1763274, 1762826, 1762406, 1762010, + 1761638, 1810918, 1811229, 1811418, 1811485, 1811428, 1811238, 1810907, 1810423, 1809779, 1808968, 1807986, 1806837, 1805530, + 1804080, 1802509, 1800841, 1799104, 1797327, 1795534, 1793750, 1791993, 1790278, 1788618, 1787019, 1785487, 1784025, 1782634, + 1781313, 1780062, 1778878, 1777759, 1776703, 1775705, 1774765, 1773878, 1773042, 1772253, 1771511, 1770811, 1770152, 1769531, + 1768946, 1768394, 1767875, 1767386, 1766926, 1766493, 1766085, 1765701, 1814010, 1814341, 1814554, 1814650, 1814626, 1814475, + 1814190, 1813760, 1813176, 1812432, 1811524, 1810453, 1809227, 1807859, 1806366, 1804773, 1803104, 1801386, 1799645, 1797902, + 1796178, 1794489, 1792847, 1791260, 1789735, 1788275, 1786883, 1785558, 1784300, 1783108, 1781979, 1780911, 1779902, 1778948, + 1778048, 1777199, 1776397, 1775640, 1774927, 1774253, 1773619, 1773020, 1772455, 1771923, 1771421, 1770947, 1770501, 1770081, + 1769684, 1817022, 1817371, 1817606, 1817729, 1817736, 1817623, 1817381, 1817001, 1816474, 1815793, 1814954, 1813958, 1812810, + 1811520, 1810105, 1808585, 1806984, 1805326, 1803637, 1801938, 1800250, 1798588, 1796966, 1795394, 1793877, 1792422, 1791030, + 1789703, 1788441, 1787241, 1786104, 1785026, 1784006, 1783041, 1782129, 1781266, 1780452, 1779682, 1778955, 1778269, 1777621, + 1777009, 1776431, 1775886, 1775371, 1774885, 1774427, 1773994, 1773586, 1819967, 1820334, 1820590, 1820737, 1820774, 1820696, + 1820494, 1820160, 1819686, 1819065, 1818293, 1817367, 1816293, 1815078, 1813738, 1812289, 1810755, 1809158, 1807522, 1805869, + 1804217, 1802585, 1800986, 1799430, 1797925, 1796476, 1795087, 1793759, 1792492, 1791287, 1790143, 1789056, 1788026, 1787050, + 1786127, 1785252, 1784425, 1783643, 1782904, 1782205, 1781544, 1780919, 1780329, 1779771, 1779244, 1778746, 1778275, 1777830, + 1777411, 1822832, 1823215, 1823491, 1823662, 1823727, 1823681, 1823517, 1823228, 1822804, 1822239, 1821529, 1820671, 1819667, + 1818525, 1817257, 1815880, 1814412, 1812876, 1811293, 1809686, 1808074, 1806474, 1804899, 1803362, 1801870, 1800430, 1799045, + 1797718, 1796450, 1795241, 1794090, 1792996, 1791957, 1790972, 1790038, 1789153, 1788314, 1787520, 1786769, 1786058, 1785385, + 1784748, 1784145, 1783575, 1783036, 1782526, 1782044, 1781588, 1781157, 1825648, 1826046, 1826340, 1826532, 1826623, 1826607, + 1826479, 1826231, 1825854, 1825342, 1824690, 1823895, 1822958, 1821886, 1820688, 1819379, 1817976, 1816500, 1814972, 1813412, + 1811840, 1810273, 1808725, 1807208, 1805731, 1804301, 1802922, 1801597, 1800329, 1799117, 1797961, 1796861, 1795814, 1794820, + 1793876, 1792980, 1792131, 1791326, 1790563, 1789840, 1789155, 1788507, 1787892, 1787311, 1786760, 1786238, 1785745, 1785277, + 1784835, 1828399, 1828811, 1829122, 1829335, 1829449, 1829462, 1829367, 1829157, 1828825, 1828363, 1827766, 1827031, 1826158, + 1825152, 1824022, 1822779, 1821440, 1820024, 1818551, 1817039, 1815509, 1813976, 1812456, 1810962, 1809501, 1808083, 1806711, + 1805391, 1804124, 1802910, 1801751, 1800645, 1799592, 1798589, 1797637, 1796732, 1795872, 1795056, 1794283, 1793549, 1792853, + 1792193, 1791567, 1790974, 1790412, 1789879, 1789374, 1788896, 1788443, 1831102, 1831527, 1831853, 1832085, 1832222, 1832261, + 1832198, 1832024, 1831732, 1831317, 1830771, 1830093, 1829281, 1828339, 1827273, 1826095, 1824818, 1823461, 1822042, 1820579, + 1819090, 1817594, 1816104, 1814633, 1813190, 1811785, 1810423, 1809108, 1807843, 1806629, 1805467, 1804357, 1803298, 1802289, + 1801328, 1800414, 1799545, 1798719, 1797935, 1797191, 1796484, 1795813, 1795176, 1794572, 1793999, 1793455, 1792939, 1792450, + 1791987, 1833741, 1834178, 1834520, 1834769, 1834927, 1834991, 1834957, 1834817, 1834564, 1834192, 1833696, 1833072, 1832318, + 1831436, 1830433, 1829317, 1828102, 1826803, 1825437, 1824023, 1822578, 1821118, 1819659, 1818214, 1816791, 1815402, 1814050, + 1812742, 1811481, 1810268, 1809105, 1807992, 1806928, 1805913, 1804945, 1804023, 1803145, 1802310, 1801516, 1800762, 1800044, + 1799363, 1798716, 1798101, 1797517, 1796963, 1796437, 1795938, 1795463, 1836333, 1836781, 1837136, 1837402, 1837580, 1837668, + 1837660, 1837552, 1837336, 1837005, 1836555, 1835981, 1835282, 1834458, 1833515, 1832459, 1831304, 1830062, 1828750, 1827384, + 1825983, 1824561, 1823134, 1821715, 1820315, 1818941, 1817602, 1816303, 1815047, 1813836, 1812673, 1811558, 1810490, 1809470, + 1808495, 1807566, 1806680, 1805837, 1805033, 1804269, 1803542, 1802851, 1802193, 1801568, 1800975, 1800410, 1799874, 1799364, + 1798880, 1838861, 1839320, 1839689, 1839970, 1840167, 1840276, 1840295, 1840216, 1840034, 1839743, 1839337, 1838811, 1838164, + 1837396, 1836510, 1835513, 1834415, 1833229, 1831970, 1830654, 1829297, 1827914, 1826521, 1825129, 1823752, 1822397, 1821071, + 1819782, 1818533, 1817326, 1816164, 1815048, 1813978, 1812953, 1811973, 1811037, 1810145, 1809293, 1808481, 1807708, 1806972, + 1806271, 1805604, 1804970, 1804366, 1803792, 1803245, 1802726, 1802232, 1841343, 1841812, 1842192, 1842488, 1842702, 1842832, + 1842875, 1842825, 1842675, 1842421, 1842056, 1841576, 1840978, 1840262, 1839431, 1838491, 1837449, 1836318, 1835112, 1833844, + 1832531, 1831188, 1829829, 1828467, 1827113, 1825778, 1824468, 1823190, 1821948, 1820747, 1819587, 1818471, 1817399, 1816371, + 1815387, 1814446, 1813546, 1812688, 1811868, 1811087, 1810342, 1809632, 1808956, 1808312, 1807699, 1807115, 1806559, 1806030, + 1805526, 1843778, 1844256, 1844648, 1844958, 1845188, 1845337, 1845403, 1845379, 1845260, 1845040, 1844714, 1844277, 1843726, + 1843061, 1842282, 1841396, 1840409, 1839331, 1838176, 1836957, 1835688, 1834385, 1833061, 1831729, 1830401, 1829086, 1827793, + 1826527, 1825295, 1824100, 1822944, 1821829, 1820756, 1819726, 1818738, 1817792, 1816887, 1816021, 1815195, 1814406, 1813652, + 1812934, 1812249, 1811596, 1810974, 1810381, 1809816, 1809277, 1808765, 1846168, 1846654, 1847056, 1847379, 1847624, 1847792, + 1847878, 1847879, 1847789, 1847602, 1847312, 1846916, 1846410, 1845792, 1845065, 1844230, 1843296, 1842270, 1841166, 1839994, + 1838770, 1837507, 1836218, 1834917, 1833616, 1832323, 1831047, 1829796, 1828574, 1827386, 1826234, 1825122, 1824050, 1823018, + 1822027, 1821077, 1820167, 1819295, 1818462, 1817666, 1816905, 1816179, 1815485, 1814824, 1814193, 1813591, 1813017, 1812470, + 1811948, 1848511, 1849005, 1849417, 1849752, 1850011, 1850196, 1850303, 1850327, 1850264, 1850107, 1849852, 1849495, 1849031, + 1848459, 1847779, 1846995, 1846112, 1845137, 1844082, 1842957, 1841777, 1840554, 1839302, 1838033, 1836759, 1835489, 1834232, + 1832995, 1831785, 1830606, 1829460, 1828351, 1827280, 1826248, 1825255, 1824302, 1823387, 1822511, 1821672, 1820869, 1820101, + 1819367, 1818666, 1817996, 1817357, 1816746, 1816164, 1815608, 1815078, 1850808, 1851310, 1851731, 1852077, 1852350, 1852551, + 1852676, 1852723, 1852685, 1852557, 1852336, 1852015, 1851591, 1851062, 1850429, 1849693, 1848859, 1847933, 1846926, 1845848, + 1844712, 1843529, 1842314, 1841077, 1839831, 1838585, 1837348, 1836128, 1834931, 1833761, 1832622, 1831518, 1830449, 1829417, + 1828424, 1827468, 1826550, 1825668, 1824824, 1824015, 1823241, 1822500, 1821791, 1821114, 1820467, 1819848, 1819257, 1818693, + 1818155, 1853060, 1853569, 1853999, 1854355, 1854641, 1854857, 1855000, 1855067, 1855053, 1854953, 1854763, 1854476, 1854091, + 1853604, 1853015, 1852325, 1851538, 1850660, 1849701, 1848669, 1847575, 1846433, 1845255, 1844051, 1842834, 1841612, 1840397, + 1839194, 1838010, 1836851, 1835721, 1834622, 1833557, 1832526, 1831532, 1830575, 1829654, 1828769, 1827920, 1827106, 1826325, + 1825578, 1824862, 1824178, 1823523, 1822897, 1822299, 1821726, 1821180, 1855285, 1855799, 1856237, 1856603, 1856901, 1857130, + 1857290, 1857377, 1857385, 1857311, 1857150, 1856896, 1856546, 1856099, 1855551, 1854905, 1854164, 1853333, 1852419, 1851432, + 1850381, 1849279, 1848137, 1846967, 1845779, 1844583, 1843389, 1842204, 1841036, 1839888, 1838767, 1837674, 1836613, 1835585, + 1834591, 1833633, 1832710, 1831822, 1830968, 1830149, 1829363, 1828610, 1827888, 1827196, 1826534, 1825901, 1825295, 1824715, + 1824160, 1857464, 1857984, 1858429, 1858804, 1859113, 1859356, 1859532, 1859636, 1859666, 1859617, 1859483, 1859260, 1858945, + 1858534, 1858027, 1857424, 1856726, 1855940, 1855071, 1854127, 1853119, 1852056, 1850951, 1849814, 1848656, 1847487, 1846316, + 1845150, 1843997, 1842863, 1841751, 1840666, 1839610, 1838585, 1837593, 1836634, 1835710, 1834819, 1833962, 1833139, 1832348, + 1831589, 1830861, 1830163, 1829494, 1828854, 1828240, 1827653, 1827091, 1859597, 1860123, 1860575, 1860959, 1861278, 1861534, + 1861724, 1861846, 1861897, 1861870, 1861762, 1861569, 1861287, 1860912, 1860443, 1859880, 1859226, 1858482, 1857657, 1856756, + 1855789, 1854766, 1853698, 1852595, 1851467, 1850325, 1849177, 1848032, 1846896, 1845775, 1844674, 1843597, 1842547, 1841527, + 1840537, 1839579, 1838654, 1837762, 1836902, 1836075, 1835280, 1834516, 1833782, 1833078, 1832403, 1831756, 1831136, 1830542, + 1829973, 1861685, 1862216, 1862675, 1863067, 1863396, 1863664, 1863868, 1864007, 1864076, 1864072, 1863989, 1863824, 1863573, + 1863232, 1862800, 1862277, 1861663, 1860962, 1860178, 1859320, 1858394, 1857410, 1856379, 1855309, 1854213, 1853098, 1851975, + 1850850, 1849732, 1848626, 1847537, 1846469, 1845427, 1844411, 1843424, 1842468, 1841543, 1840650, 1839788, 1838958, 1838159, + 1837391, 1836652, 1835943, 1835263, 1834610, 1833983, 1833382, 1832807, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 0.75 V (slice 3): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_3 and r_3). +pub const VSB_P3 : [4851]u32 = [ + 4294967295, 0, 23395, 4877, 3459, 6317, 9404, 13079, 16922, 20792, 24650, 28490, 32312, 36121, + 39920, 43713, 47501, 51287, 55072, 58857, 62643, 66431, 70220, 74010, 77801, 81592, 85384, 89178, + 92974, 96779, 100602, 104458, 108375, 112394, 116577, 121260, 126147, 131586, 137771, 144922, 153274, 163045, + 174411, 187468, 202219, 218562, 236312, 255222, 275021, 295442, 0, 27419, 9963, 9004, 12249, 15189, + 18593, 22184, 25809, 29429, 33036, 36632, 40221, 43806, 47390, 50977, 54567, 58164, 61766, 65376, + 68992, 72616, 76248, 79885, 83529, 87179, 90835, 94497, 98170, 101859, 105577, 109344, 113193, 117174, + 121360, 126133, 131160, 136828, 143344, 150937, 159839, 170251, 182317, 196092, 211529, 228486, 246745, 266043, + 286109, 0, 35086, 18954, 18107, 20818, 24451, 27506, 30751, 34044, 37340, 40630, 43916, 47203, + 50493, 53791, 57099, 60418, 63751, 67097, 70457, 73833, 77223, 80627, 84045, 87476, 90920, 94377, + 97846, 101329, 104831, 108360, 111931, 115570, 119315, 123226, 127623, 132229, 137375, 143253, 150079, 158087, + 167499, 178495, 191183, 205576, 221584, 239030, 257673, 277244, 0, 47493, 33211, 32180, 35264, 38271, + 40984, 43789, 46658, 49539, 52423, 55311, 58206, 61114, 64037, 66977, 69937, 72917, 75920, 78944, + 81992, 85062, 88154, 91269, 94405, 97561, 100737, 103934, 107151, 110391, 113660, 116968, 120334, 123788, + 127376, 131166, 135512, 140112, 145327, 151358, 158430, 166773, 176598, 188061, 201234, 216092, 232511, 250286, + 269163, 1319, 65636, 53702, 52364, 54363, 57548, 60026, 62339, 64716, 67115, 69523, 71940, 74372, + 76821, 79291, 81785, 84304, 86850, 89425, 92028, 94661, 97324, 100016, 102737, 105487, 108266, 111072, + 113906, 116767, 119658, 122580, 125542, 128556, 131645, 134842, 138201, 142002, 146010, 150520, 155710, 161788, + 168980, 177514, 187582, 199319, 212769, 227876, 244491, 262393, 47467, 90146, 80581, 79029, 80309, 82854, + 85089, 86959, 88829, 90727, 92637, 94559, 96497, 98454, 100434, 102440, 104473, 106536, 108630, 110755, + 112913, 115105, 117330, 119589, 121881, 124206, 126565, 128957, 131381, 133839, 136333, 138867, 141449, 144096, + 146831, 149693, 152739, 156260, 160019, 164322, 169349, 175310, 182432, 190932, 200993, 212731, 226171, 241240, + 257777, 94120, 120826, 113280, 111655, 112261, 113908, 115927, 117481, 118897, 120334, 121784, 123244, 124717, + 126207, 127717, 129251, 130810, 132396, 134010, 135655, 137331, 139039, 140779, 142553, 144361, 146202, 148077, + 149987, 151931, 153909, 155924, 157978, 160076, 162229, 164452, 166774, 169232, 172038, 175027, 178426, 182383, + 187078, 192718, 199523, 207705, 217437, 228829, 241901, 256579, 141096, 156759, 150760, 149085, 149209, 150277, + 151779, 153075, 154151, 155212, 156282, 157359, 158444, 159541, 160652, 161781, 162930, 164100, 165293, 166510, + 167753, 169023, 170321, 171647, 173002, 174387, 175803, 177249, 178726, 180235, 181776, 183352, 184966, 186625, + 188338, 190122, 192005, 194026, 196381, 198924, 201868, 205354, 209552, 214662, 220892, 228447, 237499, 248161, + 260465, 188279, 196697, 191786, 190049, 189879, 190512, 191584, 192601, 193464, 194248, 195036, 195825, 196617, + 197415, 198222, 199039, 199870, 200715, 201577, 202455, 203353, 204270, 205207, 206166, 207148, 208152, 209180, + 210232, 211309, 212412, 213541, 214697, 215883, 217102, 218361, 219670, 221045, 222511, 224194, 226002, 228077, + 230518, 233453, 237039, 241456, 246899, 253564, 261622, 271199, 235595, 239440, 235248, 233459, 233095, 233454, + 234143, 234975, 235689, 236296, 236887, 237476, 238064, 238653, 239245, 239843, 240448, 241061, 241684, 242318, + 242964, 243623, 244295, 244982, 245685, 246403, 247137, 247889, 248659, 249447, 250254, 251080, 251928, 252799, + 253698, 254628, 255602, 256631, 257740, 259031, 260435, 262069, 264017, 266391, 269323, 272974, 277516, 283130, + 289986, 283003, 284037, 280300, 278472, 277976, 278178, 278668, 279261, 279837, 280389, 280853, 281311, 281765, + 282216, 282666, 283118, 283572, 284030, 284493, 284962, 285437, 285920, 286411, 286912, 287421, 287941, 288471, + 289012, 289565, 290129, 290707, 291297, 291902, 292522, 293158, 293816, 294498, 295215, 295977, 296844, 297778, + 298845, 300100, 301612, 303470, 305785, 308687, 312326, 316861, 330477, 329814, 326357, 324504, 323921, 324027, + 324399, 324868, 325346, 325785, 326204, 326578, 326947, 327310, 327670, 328029, 328387, 328745, 329106, 329468, + 329834, 330203, 330577, 330955, 331339, 331729, 332124, 332526, 332935, 333352, 333776, 334208, 334649, 335099, + 335560, 336032, 336520, 337026, 337558, 338126, 338775, 339476, 340283, 341237, 342391, 343815, 345596, 347837, + 350659, 378002, 376328, 373039, 371170, 370533, 370577, 370885, 371274, 371681, 372066, 372419, 372760, 373075, + 373385, 373689, 373990, 374288, 374585, 374881, 375178, 375475, 375773, 376073, 376375, 376680, 376987, 377298, + 377612, 377930, 378252, 378578, 378909, 379245, 379586, 379933, 380287, 380649, 381022, 381409, 381814, 382263, + 382741, 383275, 383889, 384614, 385491, 386572, 387922, 389619, 425566, 423298, 420109, 418230, 417560, 417566, + 417835, 418179, 418537, 418885, 419207, 419518, 419801, 420077, 420347, 420613, 420875, 421135, 421392, 421648, + 421904, 422158, 422413, 422669, 422925, 423182, 423440, 423699, 423961, 424224, 424490, 424758, 425028, 425302, + 425579, 425859, 426144, 426434, 426731, 427038, 427360, 427713, 428088, 428504, 428981, 429539, 430209, 431030, + 432048, 473164, 470550, 467421, 465536, 464846, 464828, 465073, 465393, 465722, 466043, 466345, 466627, 466895, + 467158, 467408, 467652, 467892, 468129, 468363, 468595, 468825, 469054, 469282, 469509, 469735, 469962, 470188, + 470415, 470642, 470870, 471099, 471329, 471560, 471792, 472025, 472261, 472498, 472739, 472982, 473231, 473487, + 473759, 474042, 474347, 474683, 475062, 475502, 476022, 476650, 521210, 518218, 515011, 513058, 512323, 512276, + 512500, 512802, 513113, 513416, 513704, 513975, 514232, 514478, 514720, 514953, 515180, 515403, 515624, 515841, + 516056, 516269, 516481, 516691, 516900, 517108, 517316, 517523, 517730, 517936, 518143, 518350, 518557, 518764, + 518972, 519180, 519389, 519600, 519812, 520026, 520244, 520467, 520701, 520944, 521202, 521482, 521794, 522149, + 522562, 576565, 570255, 565000, 561842, 560461, 560089, 560156, 560382, 560656, 560935, 561209, 561470, 561720, + 561959, 562191, 562416, 562636, 562854, 563066, 563275, 563482, 563686, 563888, 564088, 564287, 564484, 564681, + 564876, 565071, 565265, 565458, 565651, 565844, 566037, 566229, 566422, 566614, 566807, 567000, 567195, 567390, + 567588, 567792, 567999, 568215, 568441, 568684, 568949, 569245, 638178, 626525, 617677, 612255, 609551, 608452, + 608135, 608167, 608342, 608572, 608819, 609066, 609307, 609540, 609767, 609988, 610204, 610416, 610624, 610828, + 611031, 611230, 611426, 611621, 611814, 612005, 612195, 612384, 612571, 612758, 612944, 613129, 613313, 613497, + 613681, 613864, 614046, 614229, 614411, 614594, 614777, 614961, 615146, 615336, 615528, 615725, 615931, 616148, + 616381, 701710, 684778, 672106, 664059, 659656, 657509, 656573, 656249, 656226, 656345, 656531, 656745, 656968, + 657192, 657412, 657629, 657842, 658051, 658256, 658458, 658656, 658853, 659046, 659238, 659428, 659616, 659803, + 659988, 660171, 660354, 660535, 660716, 660896, 661075, 661253, 661431, 661608, 661784, 661961, 662137, 662312, + 662488, 662665, 662842, 663022, 663204, 663390, 663581, 663781, 764834, 743477, 727394, 716825, 710641, 707285, + 705554, 704722, 704382, 704308, 704376, 704520, 704702, 704901, 705108, 705316, 705523, 705729, 705932, 706132, + 706329, 706524, 706716, 706906, 707095, 707281, 707466, 707649, 707831, 708012, 708191, 708369, 708546, 708723, + 708898, 709073, 709247, 709421, 709593, 709766, 709938, 710109, 710281, 710453, 710626, 710799, 710974, 711152, + 711334, 826706, 801843, 782913, 770116, 762250, 757662, 755055, 753614, 752858, 752506, 752391, 752416, 752521, + 752672, 752848, 753037, 753233, 753431, 753629, 753827, 754022, 754216, 754408, 754597, 754785, 754971, 755155, + 755338, 755519, 755699, 755877, 756055, 756231, 756407, 756581, 756755, 756927, 757099, 757271, 757441, 757611, + 757781, 757950, 758119, 758288, 758458, 758628, 758799, 758972, 887125, 859540, 838290, 823591, 814216, 808461, + 804971, 802875, 801643, 800949, 800592, 800448, 800437, 800508, 800631, 800784, 800957, 801140, 801328, 801520, + 801712, 801903, 802094, 802283, 802471, 802657, 802841, 803025, 803206, 803386, 803565, 803743, 803919, 804095, + 804269, 804443, 804616, 804787, 804958, 805129, 805299, 805468, 805636, 805804, 805972, 806140, 806307, 806475, + 806644, 946084, 916419, 893295, 876998, 866304, 859486, 855154, 852403, 850668, 849594, 848955, 848602, 848438, + 848399, 848443, 848542, 848675, 848832, 849002, 849182, 849366, 849553, 849741, 849929, 850117, 850303, 850488, + 850673, 850855, 851037, 851217, 851396, 851574, 851751, 851926, 852101, 852275, 852447, 852619, 852791, 852961, + 853131, 853300, 853468, 853636, 853804, 853971, 854138, 854306, 1003589, 972391, 947771, 930138, 918306, 910541, + 905433, 902055, 899821, 898354, 897408, 896819, 896476, 896302, 896245, 896269, 896348, 896465, 896607, 896767, + 896938, 897117, 897299, 897484, 897671, 897857, 898044, 898229, 898414, 898598, 898780, 898962, 899142, 899321, + 899499, 899676, 899852, 900027, 900202, 900375, 900547, 900719, 900890, 901060, 901230, 901399, 901567, 901735, + 901903, 1059559, 1027343, 1001558, 982819, 970015, 961418, 955611, 951652, 948940, 947086, 945828, 944991, 944452, + 944125, 943950, 943883, 943894, 943959, 944064, 944197, 944349, 944514, 944688, 944868, 945052, 945238, 945425, + 945613, 945800, 945987, 946173, 946358, 946542, 946726, 946908, 947088, 947268, 947447, 947625, 947802, 947978, + 948153, 948327, 948501, 948673, 948845, 949017, 949188, 949358, 1113792, 1081089, 1054453, 1034816, 1021190, 1011875, + 1005450, 1000965, 997811, 995588, 994026, 992940, 992200, 991712, 991408, 991241, 991173, 991179, 991238, 991336, + 991464, 991611, 991774, 991947, 992127, 992312, 992500, 992690, 992881, 993073, 993264, 993454, 993644, 993833, + 994020, 994207, 994393, 994577, 994761, 994943, 995125, 995305, 995485, 995664, 995841, 996018, 996194, 996370, + 996544, 1165936, 1133333, 1106173, 1085836, 1071529, 1061604, 1054643, 1049694, 1046141, 1043578, 1041731, 1040406, 1039469, + 1038819, 1038385, 1038112, 1037960, 1037900, 1037909, 1037969, 1038068, 1038195, 1038344, 1038508, 1038684, 1038868, 1039057, + 1039250, 1039446, 1039643, 1039841, 1040039, 1040236, 1040433, 1040629, 1040824, 1041017, 1041210, 1041402, 1041592, 1041782, + 1041970, 1042157, 1042343, 1042528, 1042712, 1042895, 1043077, 1043258, 1215498, 1183655, 1156337, 1135500, 1120647, 1110214, + 1102799, 1097448, 1093545, 1090678, 1088571, 1087025, 1085901, 1085097, 1084534, 1084156, 1083920, 1083793, 1083749, 1083768, + 1083836, 1083942, 1084075, 1084230, 1084401, 1084583, 1084775, 1084972, 1085173, 1085378, 1085584, 1085790, 1085998, 1086204, + 1086411, 1086616, 1086820, 1087024, 1087226, 1087427, 1087626, 1087824, 1088021, 1088217, 1088411, 1088604, 1088796, 1088987, + 1089177, 1261933, 1231542, 1204480, 1183357, 1168088, 1157244, 1149450, 1143758, 1139551, 1136418, 1134078, 1132331, 1131036, + 1130085, 1129401, 1128922, 1128603, 1128408, 1128310, 1128288, 1128324, 1128406, 1128523, 1128667, 1128832, 1129013, 1129205, + 1129407, 1129614, 1129826, 1130042, 1130259, 1130476, 1130695, 1130913, 1131130, 1131346, 1131562, 1131776, 1131989, 1132200, + 1132410, 1132618, 1132825, 1133030, 1133234, 1133437, 1133638, 1133838, 1304755, 1276453, 1250109, 1228931, 1213371, 1202200, + 1194093, 1188113, 1183644, 1180277, 1177729, 1175800, 1174347, 1173260, 1172459, 1171882, 1171481, 1171219, 1171066, 1171000, + 1171001, 1171057, 1171154, 1171285, 1171441, 1171618, 1171810, 1172013, 1172225, 1172443, 1172666, 1172892, 1173120, 1173349, + 1173578, 1173807, 1174035, 1174262, 1174488, 1174713, 1174936, 1175157, 1175377, 1175595, 1175811, 1176026, 1176239, 1176450, + 1176660, 1343696, 1317954, 1292794, 1271813, 1256081, 1244654, 1236285, 1230055, 1225356, 1221778, 1219040, 1216942, 1215338, + 1214120, 1213206, 1212530, 1212046, 1211713, 1211500, 1211385, 1211347, 1211370, 1211443, 1211554, 1211697, 1211864, 1212049, + 1212250, 1212462, 1212682, 1212909, 1213140, 1213374, 1213611, 1213848, 1214085, 1214322, 1214559, 1214794, 1215028, 1215260, + 1215491, 1215720, 1215948, 1216173, 1216396, 1216618, 1216838, 1217055, 1378738, 1355789, 1332234, 1311717, 1295932, 1284306, + 1275711, 1269259, 1264347, 1260573, 1257655, 1255394, 1253644, 1252295, 1251264, 1250488, 1249914, 1249504, 1249225, 1249053, + 1248967, 1248951, 1248990, 1249074, 1249194, 1249344, 1249516, 1249706, 1249911, 1250126, 1250350, 1250581, 1250815, 1251053, + 1251293, 1251534, 1251775, 1252016, 1252256, 1252495, 1252733, 1252970, 1253204, 1253437, 1253667, 1253896, 1254123, 1254348, + 1254571, 1410110, 1389951, 1368310, 1348528, 1332813, 1321040, 1312245, 1305586, 1300474, 1296509, 1293415, 1290992, 1289094, + 1287611, 1286460, 1285575, 1284905, 1284409, 1284056, 1283818, 1283675, 1283608, 1283605, 1283652, 1283741, 1283863, 1284013, + 1284184, 1284373, 1284576, 1284789, 1285011, 1285239, 1285472, 1285708, 1285946, 1286185, 1286425, 1286665, 1286904, 1287142, + 1287378, 1287614, 1287847, 1288079, 1288309, 1288537, 1288763, 1288987, 1438162, 1420616, 1401056, 1382264, 1366755, 1354889, + 1345918, 1339063, 1333757, 1329607, 1326337, 1323751, 1321702, 1320082, 1318804, 1317805, 1317032, 1316444, 1316007, 1315694, + 1315485, 1315359, 1315303, 1315304, 1315352, 1315439, 1315557, 1315701, 1315866, 1316048, 1316243, 1316449, 1316663, 1316884, + 1317109, 1317338, 1317570, 1317803, 1318036, 1318270, 1318503, 1318736, 1318967, 1319197, 1319426, 1319653, 1319878, 1320101, + 1320322, 1463309, 1448107, 1430649, 1413058, 1397904, 1386008, 1376885, 1369846, 1364353, 1360020, 1356577, 1353827, 1351626, + 1349864, 1348456, 1347338, 1346455, 1345767, 1345240, 1344846, 1344562, 1344369, 1344253, 1344200, 1344200, 1344243, 1344322, + 1344431, 1344565, 1344718, 1344889, 1345072, 1345266, 1345469, 1345678, 1345892, 1346111, 1346331, 1346554, 1346778, 1347002, + 1347226, 1347449, 1347672, 1347894, 1348114, 1348333, 1348550, 1348766, 1485951, 1472790, 1457342, 1441098, 1426455, 1414605, + 1405362, 1398156, 1392482, 1387972, 1384357, 1381445, 1379091, 1377187, 1375647, 1374406, 1373411, 1372619, 1371996, 1371515, + 1371151, 1370886, 1370703, 1370590, 1370535, 1370529, 1370563, 1370631, 1370727, 1370847, 1370987, 1371143, 1371312, 1371491, + 1371679, 1371874, 1372075, 1372280, 1372487, 1372697, 1372909, 1373121, 1373333, 1373545, 1373757, 1373968, 1374178, 1374387, + 1374594, 1506443, 1495034, 1481432, 1466607, 1452621, 1440907, 1431587, 1424232, 1418390, 1413709, 1409928, 1406857, 1404353, + 1402307, 1400634, 1399270, 1398160, 1397262, 1396542, 1395970, 1395523, 1395181, 1394928, 1394751, 1394636, 1394576, 1394560, + 1394583, 1394638, 1394720, 1394825, 1394949, 1395088, 1395241, 1395405, 1395577, 1395756, 1395942, 1396131, 1396325, 1396520, + 1396718, 1396917, 1397116, 1397316, 1397515, 1397714, 1397913, 1398110, 1525096, 1515177, 1503226, 1489817, 1476615, 1465137, + 1455790, 1448312, 1442317, 1437475, 1433535, 1430310, 1427659, 1425474, 1423671, 1422184, 1420960, 1419956, 1419136, 1418473, + 1417941, 1417520, 1417195, 1416950, 1416774, 1416656, 1416588, 1416562, 1416573, 1416613, 1416680, 1416769, 1416877, 1417000, + 1417136, 1417283, 1417438, 1417602, 1417771, 1417945, 1418123, 1418304, 1418487, 1418672, 1418858, 1419045, 1419231, 1419418, + 1419604, 1542163, 1533510, 1523010, 1510960, 1498631, 1487492, 1478180, 1470612, 1464482, 1459491, 1455401, 1452029, 1449237, + 1446918, 1444988, 1443381, 1442044, 1440935, 1440017, 1439261, 1438643, 1438144, 1437744, 1437431, 1437191, 1437014, 1436892, + 1436816, 1436780, 1436777, 1436804, 1436856, 1436929, 1437020, 1437127, 1437246, 1437377, 1437516, 1437664, 1437817, 1437976, + 1438139, 1438305, 1438474, 1438644, 1438817, 1438990, 1439164, 1439337, 1557863, 1550287, 1541049, 1530266, 1518858, 1508156, + 1498947, 1491327, 1485084, 1479959, 1475728, 1472218, 1469291, 1466842, 1464789, 1463066, 1461620, 1460407, 1459392, 1458546, + 1457843, 1457264, 1456791, 1456408, 1456105, 1455868, 1455690, 1455562, 1455478, 1455431, 1455417, 1455430, 1455467, 1455525, + 1455601, 1455691, 1455795, 1455909, 1456033, 1456165, 1456303, 1456447, 1456595, 1456747, 1456902, 1457059, 1457217, 1457378, + 1457539, 1572381, 1565724, 1557579, 1547949, 1537474, 1527288, 1518254, 1510626, 1504296, 1499053, 1494694, 1491054, 1487999, + 1485427, 1483257, 1481421, 1479868, 1478555, 1477445, 1476510, 1475723, 1475066, 1474519, 1474068, 1473700, 1473404, 1473169, + 1472989, 1472856, 1472764, 1472707, 1472681, 1472682, 1472705, 1472749, 1472809, 1472885, 1472973, 1473073, 1473182, 1473298, + 1473422, 1473551, 1473685, 1473823, 1473965, 1474108, 1474254, 1474402, 1585854, 1579984, 1572786, 1564192, 1554628, 1545021, + 1536233, 1528646, 1522259, 1516917, 1512443, 1508683, 1505509, 1502820, 1500537, 1498594, 1496939, 1495529, 1494327, 1493305, + 1492437, 1491703, 1491084, 1490565, 1490133, 1489777, 1489487, 1489255, 1489073, 1488935, 1488835, 1488769, 1488732, 1488721, + 1488732, 1488762, 1488809, 1488871, 1488945, 1489030, 1489125, 1489228, 1489338, 1489453, 1489574, 1489699, 1489827, 1489959, + 1490093, 1598411, 1593219, 1586840, 1579170, 1570474, 1561483, 1553004, 1545510, 1539100, 1533680, 1529106, 1525236, 1521951, + 1519154, 1516764, 1514719, 1512966, 1511462, 1510171, 1509065, 1508118, 1507308, 1506619, 1506033, 1505539, 1505124, 1504779, + 1504494, 1504264, 1504080, 1503938, 1503831, 1503757, 1503710, 1503688, 1503687, 1503705, 1503739, 1503788, 1503849, 1503922, + 1504003, 1504093, 1504190, 1504293, 1504401, 1504514, 1504630, 1504750, 1610159, 1605554, 1599887, 1593035, 1585149, 1576789, + 1568675, 1561325, 1554926, 1549453, 1544794, 1540827, 1537440, 1534540, 1532050, 1529907, 1528061, 1526467, 1525092, 1523904, + 1522880, 1521997, 1521238, 1520588, 1520032, 1519559, 1519159, 1518824, 1518545, 1518315, 1518130, 1517984, 1517871, 1517789, + 1517734, 1517702, 1517690, 1517697, 1517720, 1517757, 1517806, 1517866, 1517935, 1518013, 1518098, 1518189, 1518286, 1518387, + 1518492, 1621189, 1617095, 1612047, 1605918, 1598779, 1591045, 1583336, 1576179, 1569830, 1564328, 1559603, 1555550, 1552070, + 1549075, 1546491, 1544257, 1542321, 1540642, 1539184, 1537919, 1536820, 1535867, 1535041, 1534326, 1533710, 1533180, 1532727, + 1532341, 1532014, 1531739, 1531512, 1531325, 1531175, 1531058, 1530969, 1530905, 1530864, 1530843, 1530840, 1530852, 1530878, + 1530916, 1530965, 1531023, 1531090, 1531163, 1531243, 1531329, 1531420, 1631565, 1627919, 1623413, 1617922, 1611465, 1604339, + 1597064, 1590143, 1583883, 1578380, 1573606, 1569482, 1565920, 1562838, 1560167, 1557846, 1555826, 1554065, 1552529, 1551189, + 1550018, 1548997, 1548106, 1547330, 1546655, 1546070, 1545564, 1545127, 1544754, 1544435, 1544165, 1543939, 1543752, 1543599, + 1543476, 1543382, 1543311, 1543262, 1543232, 1543220, 1543222, 1543238, 1543266, 1543305, 1543353, 1543409, 1543473, 1543543, + 1543618, 1641361, 1638108, 1634078, 1629151, 1623311, 1616767, 1609938, 1603290, 1597155, 1591680, 1586878, 1582697, 1579063, + 1575902, 1573150, 1570748, 1568649, 1566811, 1565200, 1563788, 1562548, 1561461, 1560507, 1559671, 1558939, 1558300, 1557742, + 1557257, 1556837, 1556475, 1556164, 1555898, 1555674, 1555486, 1555331, 1555204, 1555104, 1555027, 1554971, 1554934, 1554913, + 1554907, 1554914, 1554932, 1554962, 1555000, 1555047, 1555101, 1555162, 1650627, 1647721, 1644110, 1639684, 1634401, 1628403, + 1622024, 1615677, 1609702, 1604283, 1599475, 1595251, 1591557, 1588327, 1585501, 1583024, 1580850, 1578939, 1577257, 1575776, + 1574470, 1573319, 1572305, 1571411, 1570624, 1569932, 1569324, 1568792, 1568326, 1567921, 1567569, 1567265, 1567004, 1566781, + 1566593, 1566436, 1566306, 1566202, 1566119, 1566057, 1566012, 1565984, 1565970, 1565969, 1565979, 1565999, 1566029, 1566067, + 1566113, 1659417, 1656819, 1653579, 1649596, 1644815, 1639327, 1633390, 1627364, 1621577, 1616243, 1611450, 1607201, 1603458, + 1600168, 1597274, 1594728, 1592484, 1590504, 1588755, 1587208, 1585840, 1584628, 1583555, 1582605, 1581764, 1581021, 1580364, + 1579785, 1579276, 1578828, 1578436, 1578094, 1577797, 1577540, 1577319, 1577131, 1576972, 1576840, 1576731, 1576644, 1576576, + 1576525, 1576490, 1576469, 1576460, 1576463, 1576475, 1576497, 1576527, 1667773, 1665449, 1662539, 1658949, 1654620, 1649603, + 1644095, 1638400, 1632828, 1627605, 1622850, 1618592, 1614813, 1611471, 1608518, 1605908, 1603600, 1601555, 1599742, 1598133, + 1596703, 1595433, 1594304, 1593300, 1592407, 1591614, 1590910, 1590285, 1589732, 1589244, 1588812, 1588433, 1588100, 1587809, + 1587556, 1587338, 1587150, 1586990, 1586855, 1586743, 1586651, 1586578, 1586522, 1586480, 1586453, 1586437, 1586433, 1586438, + 1586453, 1675717, 1673639, 1671023, 1667785, 1663862, 1659279, 1654182, 1648823, 1643484, 1638398, 1633702, 1629453, 1625652, + 1622269, 1619265, 1616598, 1614230, 1612125, 1610252, 1608584, 1607097, 1605771, 1604588, 1603532, 1602589, 1601748, 1600998, + 1600330, 1599735, 1599206, 1598736, 1598320, 1597952, 1597628, 1597344, 1597095, 1596879, 1596691, 1596531, 1596394, 1596279, + 1596183, 1596106, 1596044, 1595998, 1595964, 1595942, 1595932, 1595931, 1683302, 1681444, 1679091, 1676167, 1672610, 1668424, + 1663716, 1658690, 1653599, 1648669, 1644054, 1639832, 1636021, 1632607, 1629560, 1626843, 1624420, 1622259, 1620330, 1618606, + 1617065, 1615685, 1614450, 1613344, 1612353, 1611465, 1610671, 1609959, 1609323, 1608755, 1608247, 1607795, 1607393, 1607037, + 1606721, 1606442, 1606197, 1605983, 1605797, 1605635, 1605497, 1605380, 1605281, 1605199, 1605134, 1605082, 1605043, 1605016, + 1604999, 1690554, 1688893, 1686775, 1684134, 1680906, 1677083, 1672740, 1668041, 1663206, 1658449, 1653934, 1649756, 1645950, + 1642516, 1639434, 1636673, 1634201, 1631989, 1630007, 1628230, 1626637, 1625206, 1623921, 1622767, 1621729, 1620796, 1619958, + 1619205, 1618529, 1617922, 1617378, 1616891, 1616455, 1616066, 1615720, 1615412, 1615139, 1614898, 1614686, 1614500, 1614339, + 1614199, 1614079, 1613978, 1613893, 1613823, 1613767, 1613723, 1613691, 1697486, 1696004, 1694099, 1691711, 1688780, 1685289, + 1681287, 1676905, 1672330, 1667761, 1663364, 1659245, 1655458, 1652016, 1648908, 1646110, 1643595, 1641336, 1639305, 1637480, + 1635837, 1634358, 1633026, 1631825, 1630743, 1629767, 1628887, 1628093, 1627378, 1626734, 1626154, 1625633, 1625164, 1624743, + 1624367, 1624030, 1623729, 1623462, 1623225, 1623015, 1622831, 1622669, 1622528, 1622407, 1622303, 1622215, 1622141, 1622081, + 1622033, 1704130, 1702809, 1701096, 1698936, 1696275, 1693086, 1689402, 1685323, 1681008, 1676637, 1672372, 1668329, 1664575, + 1661136, 1658011, 1655183, 1652631, 1650330, 1648255, 1646383, 1644694, 1643170, 1641792, 1640547, 1639422, 1638404, 1637484, + 1636651, 1635898, 1635218, 1634603, 1634048, 1633547, 1633095, 1632689, 1632324, 1631996, 1631703, 1631440, 1631207, 1631000, + 1630816, 1630655, 1630514, 1630391, 1630285, 1630194, 1630117, 1630053, 1710496, 1709322, 1707783, 1705830, 1703412, 1700500, + 1697111, 1693321, 1689262, 1685095, 1680976, 1677024, 1673317, 1669892, 1666759, 1663910, 1661326, 1658988, 1656872, 1654959, + 1653227, 1651659, 1650239, 1648952, 1647786, 1646728, 1645768, 1644898, 1644109, 1643393, 1642744, 1642157, 1641624, 1641143, + 1640707, 1640314, 1639960, 1639641, 1639354, 1639097, 1638867, 1638663, 1638481, 1638320, 1638178, 1638054, 1637946, 1637853, + 1637774, 1716623, 1715582, 1714200, 1712434, 1710237, 1707576, 1704460, 1700943, 1697134, 1693175, 1689210, 1685361, 1681713, + 1678314, 1675183, 1672319, 1669710, 1667340, 1665188, 1663235, 1661463, 1659855, 1658394, 1657067, 1655861, 1654764, 1653767, + 1652861, 1652036, 1651286, 1650604, 1649984, 1649421, 1648910, 1648446, 1648025, 1647645, 1647300, 1646990, 1646709, 1646457, + 1646231, 1646029, 1645848, 1645688, 1645546, 1645421, 1645311, 1645216, 1722508, 1721589, 1720350, 1718755, 1716758, 1714328, + 1711463, 1708204, 1704637, 1700886, 1697083, 1693348, 1689772, 1686410, 1683290, 1680419, 1677792, 1675395, 1673211, 1671223, + 1669414, 1667768, 1666269, 1664904, 1663660, 1662527, 1661494, 1660552, 1659693, 1658910, 1658196, 1657545, 1656952, 1656412, + 1655920, 1655473, 1655066, 1654697, 1654362, 1654059, 1653785, 1653538, 1653316, 1653116, 1652937, 1652777, 1652635, 1652509, + 1652398, 1728180, 1727372, 1726264, 1724823, 1723009, 1720789, 1718156, 1715138, 1711804, 1708259, 1704623, 1701012, 1697517, + 1694202, 1691103, 1688234, 1685594, 1683175, 1680964, 1678945, 1677102, 1675420, 1673885, 1672484, 1671204, 1670036, 1668968, + 1667992, 1667100, 1666284, 1665539, 1664858, 1664236, 1663667, 1663148, 1662675, 1662243, 1661850, 1661491, 1661166, 1660870, + 1660602, 1660359, 1660140, 1659943, 1659765, 1659606, 1659464, 1659338, 1733646, 1732939, 1731950, 1730651, 1729003, 1726976, + 1724557, 1721765, 1718653, 1715310, 1711844, 1708363, 1704959, 1701701, 1698632, 1695772, 1693127, 1690692, 1688458, 1686411, + 1684537, 1682823, 1681254, 1679819, 1678506, 1677303, 1676202, 1675194, 1674270, 1673423, 1672648, 1671937, 1671287, 1670691, + 1670145, 1669646, 1669189, 1668772, 1668391, 1668043, 1667726, 1667437, 1667175, 1666937, 1666721, 1666526, 1666350, 1666192, + 1666050, 1738921, 1738307, 1737428, 1736258, 1734762, 1732911, 1730689, 1728107, 1725207, 1722061, 1718765, 1715419, 1712115, + 1708924, 1705893, 1703050, 1700405, 1697960, 1695708, 1693637, 1691736, 1689992, 1688392, 1686925, 1685580, 1684345, 1683212, + 1682172, 1681218, 1680341, 1679536, 1678797, 1678119, 1677496, 1676925, 1676400, 1675919, 1675478, 1675074, 1674705, 1674367, + 1674058, 1673776, 1673519, 1673285, 1673073, 1672880, 1672706, 1672548, 1744011, 1743483, 1742704, 1741652, 1740296, 1738606, + 1736566, 1734181, 1731480, 1728526, 1725399, 1722193, 1718995, 1715878, 1712894, 1710075, 1707439, 1704989, 1702723, 1700632, + 1698707, 1696937, 1695308, 1693812, 1692436, 1691171, 1690008, 1688938, 1687954, 1687048, 1686215, 1685449, 1684744, 1684095, + 1683498, 1682949, 1682444, 1681980, 1681554, 1681163, 1680804, 1680476, 1680174, 1679899, 1679647, 1679418, 1679209, 1679018, + 1678846, 1748942, 1748492, 1747805, 1746862, 1745633, 1744091, 1742219, 1740016, 1737504, 1734733, 1731773, 1728708, 1725621, + 1722585, 1719655, 1716869, 1714246, 1711797, 1709522, 1707416, 1705470, 1703675, 1702021, 1700497, 1699092, 1697798, 1696606, + 1695508, 1694495, 1693562, 1692701, 1691908, 1691177, 1690502, 1689881, 1689308, 1688779, 1688293, 1687845, 1687433, 1687054, + 1686705, 1686385, 1686091, 1685822, 1685575, 1685349, 1685143, 1684955, 1753698, 1753320, 1752718, 1751874, 1750763, 1749358, + 1747641, 1745608, 1743274, 1740678, 1737882, 1734959, 1731988, 1729040, 1726172, 1723424, 1720823, 1718380, 1716102, 1713984, + 1712021, 1710206, 1708528, 1706979, 1705548, 1704227, 1703008, 1701882, 1700843, 1699883, 1698996, 1698177, 1697420, 1696721, + 1696076, 1695479, 1694929, 1694421, 1693951, 1693519, 1693119, 1692752, 1692413, 1692101, 1691814, 1691551, 1691309, 1691087, + 1690884, 1758314, 1758003, 1757479, 1756727, 1755723, 1754443, 1752869, 1750994, 1748826, 1746398, 1743760, 1740979, 1738126, + 1735271, 1732470, 1729768, 1727193, 1724763, 1722485, 1720360, 1718384, 1716551, 1714852, 1713279, 1711824, 1710478, 1709233, + 1708081, 1707016, 1706030, 1705118, 1704274, 1703493, 1702770, 1702101, 1701482, 1700909, 1700379, 1699889, 1699436, 1699017, + 1698630, 1698273, 1697943, 1697639, 1697359, 1697101, 1696864, 1696646, 1762783, 1762534, 1762082, 1761414, 1760509, 1759346, + 1757904, 1756175, 1754164, 1751895, 1749411, 1746770, 1744037, 1741278, 1738550, 1735899, 1733357, 1730945, 1728673, 1726545, + 1724559, 1722711, 1720994, 1719401, 1717923, 1716554, 1715284, 1714108, 1713018, 1712008, 1711071, 1710203, 1709398, 1708652, + 1707961, 1707319, 1706725, 1706174, 1705664, 1705191, 1704753, 1704347, 1703972, 1703624, 1703304, 1703007, 1702733, 1702481, + 1702248, 1767108, 1766916, 1766531, 1765942, 1765129, 1764072, 1762752, 1761160, 1759296, 1757178, 1754842, 1752339, 1749726, + 1747067, 1744418, 1741824, 1739320, 1736931, 1734670, 1732543, 1730552, 1728692, 1726960, 1725348, 1723851, 1722460, 1721168, + 1719969, 1718855, 1717821, 1716862, 1715971, 1715143, 1714375, 1713661, 1712999, 1712383, 1711812, 1711282, 1710789, 1710333, + 1709909, 1709516, 1709151, 1708814, 1708501, 1708212, 1707944, 1707697, 1771316, 1771177, 1770853, 1770336, 1769607, 1768649, + 1767442, 1765976, 1764249, 1762275, 1760081, 1757711, 1755219, 1752662, 1750094, 1747561, 1745102, 1742741, 1740495, 1738373, + 1736379, 1734511, 1732766, 1731139, 1729623, 1728212, 1726899, 1725678, 1724542, 1723486, 1722504, 1721591, 1720741, 1719951, + 1719216, 1718533, 1717897, 1717306, 1716756, 1716245, 1715769, 1715328, 1714917, 1714536, 1714182, 1713853, 1713548, 1713266, + 1713004, 1775398, 1775307, 1775040, 1774590, 1773940, 1773072, 1771971, 1770622, 1769024, 1767184, 1765126, 1762887, 1760514, + 1758060, 1755576, 1753110, 1750698, 1748370, 1746145, 1744033, 1742040, 1740167, 1738412, 1736771, 1735239, 1733810, 1732478, + 1731237, 1730080, 1729003, 1728000, 1727065, 1726195, 1725384, 1724628, 1723924, 1723269, 1722658, 1722089, 1721560, 1721066, + 1720607, 1720179, 1719781, 1719411, 1719067, 1718747, 1718450, 1718174, 1779367, 1779321, 1779107, 1778719, 1778141, 1777358, + 1776353, 1775114, 1773636, 1771924, 1769995, 1767882, 1765626, 1763275, 1760879, 1758482, 1756123, 1753832, 1751631, 1749532, + 1747544, 1745669, 1743908, 1742256, 1740710, 1739265, 1737915, 1736655, 1735479, 1734382, 1733358, 1732403, 1731512, 1730681, + 1729906, 1729183, 1728508, 1727878, 1727291, 1726743, 1726232, 1725755, 1725311, 1724897, 1724511, 1724151, 1723816, 1723504, + 1723214, 1783226, 1783222, 1783058, 1782726, 1782215, 1781511, 1780596, 1779459, 1778093, 1776500, 1774695, 1772704, 1770563, + 1768315, 1766007, 1763682, 1761380, 1759130, 1756957, 1754876, 1752897, 1751023, 1749257, 1747597, 1746039, 1744580, 1743214, + 1741937, 1740743, 1739627, 1738584, 1737610, 1736699, 1735849, 1735054, 1734312, 1733619, 1732971, 1732365, 1731800, 1731272, + 1730778, 1730317, 1729887, 1729485, 1729111, 1728761, 1728435, 1728131, 1786977, 1787012, 1786893, 1786615, 1786167, 1785534, + 1784703, 1783661, 1782400, 1780921, 1779233, 1777359, 1775329, 1773184, 1770965, 1768715, 1766473, 1764269, 1762128, 1760068, + 1758101, 1756232, 1754465, 1752798, 1751231, 1749760, 1748380, 1747087, 1745876, 1744742, 1743681, 1742689, 1741760, 1740891, + 1740078, 1739318, 1738606, 1737940, 1737317, 1736735, 1736190, 1735680, 1735203, 1734757, 1734340, 1733950, 1733586, 1733246, + 1732928, 1790634, 1790706, 1790629, 1790400, 1790010, 1789445, 1788691, 1787737, 1786575, 1785201, 1783625, 1781862, 1779941, + 1777896, 1775768, 1773594, 1771414, 1769259, 1767154, 1765119, 1763167, 1761306, 1759540, 1757870, 1756296, 1754814, 1753421, + 1752114, 1750887, 1749737, 1748660, 1747650, 1746703, 1745816, 1744986, 1744208, 1743478, 1742795, 1742156, 1741556, 1740995, + 1740469, 1739976, 1739515, 1739083, 1738678, 1738300, 1737946, 1737614, 1794187, 1794292, 1794255, 1794072, 1793735, 1793233, + 1792553, 1791681, 1790610, 1789337, 1787865, 1786210, 1784395, 1782449, 1780410, 1778315, 1776199, 1774096, 1772030, 1770024, + 1768091, 1766240, 1764479, 1762808, 1761229, 1759739, 1758336, 1757016, 1755775, 1754610, 1753517, 1752490, 1751527, 1750624, + 1749776, 1748981, 1748235, 1747536, 1746879, 1746264, 1745686, 1745145, 1744637, 1744161, 1743714, 1743295, 1742903, 1742535, + 1742191, 1797649, 1797786, 1797785, 1797645, 1797359, 1796915, 1796302, 1795507, 1794522, 1793343, 1791971, 1790419, 1788705, + 1786856, 1784906, 1782889, 1780841, 1778791, 1776769, 1774794, 1772882, 1771046, 1769292, 1767623, 1766041, 1764545, 1763132, + 1761802, 1760549, 1759370, 1758262, 1757220, 1756241, 1755322, 1754458, 1753647, 1752885, 1752169, 1751497, 1750865, 1750273, + 1749716, 1749193, 1748702, 1748241, 1747808, 1747402, 1747021, 1746664, 1801036, 1801201, 1801235, 1801135, 1800895, 1800506, + 1799955, 1799232, 1798327, 1797235, 1795958, 1794503, 1792887, 1791132, 1789270, 1787332, 1785351, 1783358, 1781380, 1779439, + 1777553, 1775733, 1773989, 1772324, 1770741, 1769240, 1767821, 1766481, 1765216, 1764025, 1762903, 1761847, 1760853, 1759918, + 1759039, 1758212, 1757434, 1756703, 1756015, 1755369, 1754761, 1754189, 1753652, 1753146, 1752671, 1752225, 1751805, 1751411, + 1751040, 1804320, 1804514, 1804579, 1804517, 1804321, 1803982, 1803490, 1802834, 1802005, 1800997, 1799808, 1798447, 1796924, + 1795262, 1793486, 1791627, 1789715, 1787781, 1785850, 1783947, 1782089, 1780289, 1778557, 1776898, 1775318, 1773815, 1772391, + 1771043, 1769769, 1768566, 1767432, 1766363, 1765355, 1764406, 1763512, 1762671, 1761878, 1761132, 1760430, 1759768, 1759146, + 1758560, 1758008, 1757489, 1757001, 1756541, 1756108, 1755701, 1755318, 1807547, 1807765, 1807860, 1807832, 1807677, 1807385, + 1806948, 1806354, 1805595, 1804664, 1803560, 1802286, 1800854, 1799280, 1797589, 1795807, 1793965, 1792090, 1790209, 1788345, + 1786517, 1784739, 1783022, 1781372, 1779795, 1778292, 1776864, 1775510, 1774228, 1773015, 1771869, 1770788, 1769767, 1768804, + 1767897, 1767041, 1766234, 1765473, 1764756, 1764081, 1763444, 1762844, 1762278, 1761746, 1761243, 1760770, 1760325, 1759905, + 1759509, 1810687, 1810929, 1811052, 1811057, 1810939, 1810692, 1810305, 1809770, 1809077, 1808219, 1807194, 1806004, 1804658, + 1803170, 1801562, 1799858, 1798085, 1796270, 1794441, 1792618, 1790823, 1789070, 1787370, 1785732, 1784161, 1782660, 1781230, + 1779871, 1778582, 1777361, 1776205, 1775113, 1774080, 1773105, 1772184, 1771314, 1770494, 1769719, 1768989, 1768299, 1767649, + 1767035, 1766456, 1765910, 1765395, 1764909, 1764451, 1764019, 1763611, 1813757, 1814021, 1814170, 1814205, 1814123, 1813916, + 1813578, 1813097, 1812466, 1811677, 1810726, 1809616, 1808352, 1806947, 1805419, 1803791, 1802087, 1800334, 1798557, 1796779, + 1795018, 1793292, 1791612, 1789988, 1788425, 1786928, 1785498, 1784136, 1782841, 1781613, 1780448, 1779345, 1778302, 1777315, + 1776381, 1775499, 1774666, 1773878, 1773134, 1772432, 1771768, 1771141, 1770549, 1769990, 1769462, 1768964, 1768493, 1768049, + 1767629, 1816742, 1817027, 1817200, 1817264, 1817215, 1817048, 1816754, 1816325, 1815752, 1815027, 1814148, 1813113, 1811928, + 1810603, 1809154, 1807600, 1805966, 1804275, 1802552, 1800819, 1799096, 1797399, 1795741, 1794133, 1792580, 1791089, 1789661, + 1788298, 1787000, 1785766, 1784594, 1783482, 1782428, 1781431, 1780486, 1779592, 1778746, 1777946, 1777190, 1776475, 1775798, + 1775159, 1774554, 1773983, 1773443, 1772932, 1772450, 1771994, 1771562, 1819673, 1819977, 1820173, 1820263, 1820245, 1820114, + 1819862, 1819481, 1818962, 1818299, 1817486, 1816523, 1815413, 1814164, 1812791, 1811310, 1809744, 1808115, 1806447, 1804760, + 1803076, 1801410, 1799776, 1798185, 1796646, 1795162, 1793738, 1792375, 1791074, 1789835, 1788657, 1787537, 1786475, 1785467, + 1784511, 1783606, 1782749, 1781937, 1781169, 1780441, 1779752, 1779101, 1778484, 1777900, 1777348, 1776826, 1776331, 1775864, + 1775421, 1822535, 1822857, 1823075, 1823190, 1823201, 1823104, 1822891, 1822555, 1822087, 1821481, 1820731, 1819836, 1818797, + 1817622, 1816322, 1814913, 1813414, 1811847, 1810234, 1808595, 1806951, 1805318, 1803710, 1802140, 1800614, 1799140, 1797721, + 1796360, 1795059, 1793817, 1792633, 1791507, 1790436, 1789419, 1788454, 1787538, 1786670, 1785847, 1785067, 1784328, 1783627, + 1782964, 1782335, 1781740, 1781176, 1780642, 1780136, 1779657, 1779204, 1825345, 1825684, 1825922, 1826060, 1826098, 1826032, + 1825856, 1825562, 1825142, 1824589, 1823898, 1823067, 1822096, 1820992, 1819762, 1818422, 1816990, 1815484, 1813926, 1812336, + 1810733, 1809135, 1807555, 1806006, 1804496, 1803033, 1801621, 1800264, 1798963, 1797719, 1796531, 1795399, 1794321, 1793296, + 1792322, 1791396, 1790518, 1789684, 1788893, 1788142, 1787431, 1786756, 1786116, 1785509, 1784934, 1784388, 1783871, 1783381, + 1782917, 1828088, 1828443, 1828699, 1828859, 1828922, 1828886, 1828745, 1828490, 1828115, 1827613, 1826978, 1826208, 1825302, + 1824264, 1823103, 1821831, 1820463, 1819018, 1817516, 1815975, 1814415, 1812852, 1811302, 1809776, 1808285, 1806835, 1805432, + 1804079, 1802780, 1801535, 1800345, 1799208, 1798124, 1797092, 1796110, 1795175, 1794287, 1793443, 1792642, 1791881, 1791158, + 1790473, 1789822, 1789204, 1788618, 1788061, 1787534, 1787033, 1786558, 1830781, 1831150, 1831423, 1831603, 1831691, 1831682, + 1831573, 1831355, 1831023, 1830568, 1829986, 1829273, 1828428, 1827455, 1826359, 1825152, 1823848, 1822463, 1821016, 1819525, + 1818008, 1816483, 1814963, 1813462, 1811990, 1810555, 1809162, 1807816, 1806521, 1805276, 1804084, 1802944, 1801855, 1800816, + 1799826, 1798884, 1797987, 1797134, 1796322, 1795551, 1794818, 1794122, 1793460, 1792832, 1792235, 1791668, 1791130, 1790619, + 1790133, 1833406, 1833789, 1834079, 1834278, 1834388, 1834406, 1834327, 1834145, 1833852, 1833442, 1832910, 1832251, 1831465, + 1830553, 1829521, 1828378, 1827135, 1825810, 1824417, 1822976, 1821504, 1820017, 1818530, 1817056, 1815605, 1814186, 1812805, + 1811467, 1810177, 1808934, 1807742, 1806599, 1805506, 1804462, 1803466, 1802516, 1801611, 1800749, 1799929, 1799148, 1798406, + 1797699, 1797028, 1796389, 1795782, 1795205, 1794656, 1794135, 1793640, 1835982, 1836378, 1836683, 1836900, 1837031, 1837074, + 1837023, 1836873, 1836618, 1836251, 1835766, 1835159, 1834428, 1833575, 1832603, 1831521, 1830339, 1829071, 1827734, 1826343, + 1824915, 1823467, 1822014, 1820567, 1819139, 1817738, 1816370, 1815043, 1813758, 1812519, 1811327, 1810184, 1809088, 1808039, + 1807038, 1806081, 1805169, 1804299, 1803470, 1802680, 1801928, 1801213, 1800531, 1799883, 1799266, 1798679, 1798121, 1797589, + 1797084, 1838509, 1838916, 1839235, 1839469, 1839620, 1839686, 1839662, 1839543, 1839323, 1838996, 1838555, 1837997, 1837319, + 1836522, 1835608, 1834585, 1833462, 1832251, 1830967, 1829626, 1828244, 1826836, 1825416, 1823999, 1822595, 1821212, 1819860, + 1818543, 1817266, 1816032, 1814842, 1813698, 1812600, 1811548, 1810542, 1809580, 1808661, 1807783, 1806946, 1806148, 1805388, + 1804663, 1803972, 1803314, 1802688, 1802091, 1801523, 1800983, 1800468, 1840986, 1841405, 1841737, 1841987, 1842157, 1842244, + 1842245, 1842156, 1841969, 1841678, 1841280, 1840768, 1840140, 1839396, 1838538, 1837572, 1836505, 1835350, 1834119, 1832828, + 1831491, 1830123, 1828739, 1827352, 1825973, 1824611, 1823275, 1821970, 1820702, 1819473, 1818287, 1817144, 1816045, 1814991, + 1813980, 1813013, 1812088, 1811204, 1810360, 1809554, 1808785, 1808051, 1807352, 1806685, 1806050, 1805444, 1804867, 1804317, + 1803793, 1843415, 1843844, 1844189, 1844454, 1844641, 1844748, 1844773, 1844711, 1844555, 1844301, 1843941, 1843473, 1842893, + 1842200, 1841395, 1840484, 1839472, 1838371, 1837193, 1835950, 1834659, 1833332, 1831984, 1830628, 1829275, 1827935, 1826616, + 1825325, 1824067, 1822845, 1821663, 1820522, 1819424, 1818368, 1817354, 1816383, 1815452, 1814562, 1813711, 1812898, 1812121, + 1811380, 1810672, 1809997, 1809353, 1808738, 1808152, 1807593, 1807060, 1845795, 1846235, 1846591, 1846870, 1847073, 1847200, + 1847247, 1847211, 1847085, 1846863, 1846541, 1846115, 1845580, 1844935, 1844181, 1843322, 1842365, 1841316, 1840189, 1838995, + 1837749, 1836463, 1835152, 1833828, 1832502, 1831185, 1829885, 1828609, 1827362, 1826149, 1824972, 1823834, 1822737, 1821680, + 1820664, 1819689, 1818755, 1817859, 1817002, 1816182, 1815398, 1814649, 1813934, 1813250, 1812598, 1811975, 1811380, 1810812, + 1810271, 1848128, 1848576, 1848944, 1849236, 1849454, 1849599, 1849668, 1849656, 1849557, 1849368, 1849081, 1848694, 1848202, + 1847603, 1846899, 1846090, 1845184, 1844187, 1843110, 1841964, 1840763, 1839518, 1838244, 1836953, 1835655, 1834362, 1833082, + 1831822, 1830588, 1829384, 1828214, 1827081, 1825985, 1824929, 1823912, 1822934, 1821996, 1821096, 1820233, 1819407, 1818617, + 1817861, 1817138, 1816446, 1815786, 1815155, 1814552, 1813976, 1813426, 1850430, 1850887, 1851265, 1851569, 1851802, 1851964, + 1852052, 1852062, 1851990, 1851830, 1851577, 1851226, 1850775, 1850220, 1849562, 1848802, 1847945, 1846998, 1845970, 1844871, + 1843714, 1842511, 1841274, 1840016, 1838747, 1837479, 1836219, 1834976, 1833755, 1832562, 1831400, 1830271, 1829179, 1828123, + 1827106, 1826126, 1825185, 1824281, 1823413, 1822582, 1821785, 1821022, 1820292, 1819594, 1818925, 1818286, 1817676, 1817092, + 1816534, 1852685, 1853150, 1853537, 1853853, 1854099, 1854277, 1854384, 1854416, 1854368, 1854236, 1854015, 1853699, 1853286, + 1852773, 1852160, 1851447, 1850638, 1849739, 1848758, 1847706, 1846593, 1845430, 1844231, 1843006, 1841768, 1840525, 1839287, + 1838062, 1836856, 1835674, 1834520, 1833398, 1832310, 1831256, 1830239, 1829259, 1828315, 1827407, 1826536, 1825699, 1824897, + 1824128, 1823391, 1822686, 1822010, 1821364, 1820746, 1820154, 1819588, 1854892, 1855364, 1855761, 1856088, 1856347, 1856540, + 1856664, 1856717, 1856692, 1856587, 1856396, 1856114, 1855738, 1855264, 1854693, 1854025, 1853262, 1852411, 1851477, 1850470, + 1849400, 1848278, 1847116, 1845926, 1844718, 1843502, 1842287, 1841081, 1839890, 1838721, 1837577, 1836462, 1835379, 1834328, + 1833312, 1832332, 1831386, 1830476, 1829601, 1828760, 1827953, 1827178, 1826436, 1825724, 1825042, 1824388, 1823763, 1823164, + 1822591, 1857052, 1857531, 1857937, 1858273, 1858545, 1858752, 1858894, 1858965, 1858963, 1858883, 1858720, 1858470, 1858129, + 1857694, 1857164, 1856539, 1855821, 1855014, 1854126, 1853163, 1852136, 1851056, 1849932, 1848776, 1847598, 1846410, 1845218, + 1844033, 1842859, 1841703, 1840570, 1839463, 1838386, 1837340, 1836326, 1835346, 1834400, 1833488, 1832610, 1831765, 1830954, + 1830174, 1829426, 1828708, 1828020, 1827360, 1826728, 1826122, 1825542, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1 V (slice 4): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_4 and r_4). +pub const VSB_P4 : [4851]u32 = [ + 4294967295, 0, 40920, 19532, 16895, 18312, 20921, 24123, 27516, 30959, 34413, 37867, 41320, 44776, + 48236, 51704, 55180, 58665, 62162, 65670, 69189, 72719, 76261, 79813, 83376, 86947, 90528, 94119, + 97722, 101342, 104990, 108683, 112450, 116338, 120413, 125035, 129895, 135364, 141647, 148978, 157596, 167722, + 179518, 193062, 208325, 225175, 243400, 262733, 282891, 303605, 0, 40751, 19313, 17305, 19362, 22018, + 25132, 28445, 31809, 35182, 38555, 41928, 45303, 48685, 52074, 55473, 58884, 62307, 65743, 69193, + 72656, 76133, 79622, 83123, 86636, 90160, 93694, 97242, 100805, 104391, 108014, 111697, 115476, 119406, + 123796, 128381, 133483, 139294, 146034, 153943, 163256, 174169, 186805, 201191, 217246, 234793, 253589, 273354, + 293810, 0, 41775, 20674, 18762, 21280, 24247, 27255, 30454, 33709, 36972, 40236, 43499, 46767, + 50042, 53326, 56623, 59933, 63257, 66598, 69954, 73326, 76714, 80117, 83535, 86967, 90413, 93872, + 97345, 100834, 104343, 107884, 111473, 115139, 118928, 122907, 127429, 132194, 137567, 143754, 150988, 159510, + 169540, 181244, 194699, 209881, 226659, 244820, 264098, 284209, 0, 44465, 24079, 22210, 24699, 28147, + 31114, 34148, 37248, 40359, 43470, 46583, 49702, 52830, 55970, 59124, 62295, 65484, 68691, 71917, + 75162, 78426, 81709, 85011, 88330, 91665, 95017, 98386, 101771, 105178, 108612, 112087, 115625, 119263, + 123054, 127298, 131741, 136698, 142359, 148943, 156690, 165836, 176578, 189045, 203269, 219172, 236582, 255257, + 274919, 0, 49572, 30554, 28214, 30778, 34454, 37564, 40386, 43267, 46166, 49067, 51973, 54886, + 57811, 60751, 63709, 66687, 69686, 72707, 75751, 78818, 81908, 85021, 88157, 91314, 94493, 97691, + 100910, 104150, 107411, 110700, 114025, 117404, 120863, 124447, 128220, 132524, 137072, 142217, 148163, 155140, + 163388, 173132, 184542, 197706, 212607, 229124, 247050, 266123, 0, 58273, 41184, 38779, 40936, 44330, + 47637, 50264, 52852, 55466, 58087, 60714, 63352, 66005, 68676, 71369, 74085, 76827, 79594, 82388, + 85210, 88059, 90936, 93840, 96771, 99728, 102710, 105717, 108748, 111806, 114891, 118012, 121181, 124417, + 127754, 131245, 135169, 139291, 143912, 149211, 155405, 162730, 171422, 181687, 193665, 207404, 222846, 239831, + 258128, 0, 71867, 57099, 54831, 56267, 59226, 62425, 64957, 67193, 69451, 71722, 74001, 76293, + 78603, 80934, 83289, 85670, 88080, 90518, 92988, 95488, 98020, 100583, 103179, 105805, 108463, 111151, + 113869, 116616, 119393, 122202, 125047, 127936, 130883, 133915, 137070, 140407, 144233, 148299, 152924, 158304, + 164659, 172228, 181240, 191879, 204257, 218386, 234173, 251434, 30071, 91438, 79206, 77108, 77995, 80275, + 82961, 85383, 87285, 89141, 91015, 92899, 94797, 96712, 98649, 100610, 102598, 104616, 106663, 108743, + 110856, 113002, 115182, 117396, 119645, 121927, 124244, 126595, 128979, 131396, 133848, 136337, 138869, 141454, + 144109, 146863, 149760, 153037, 156504, 160417, 164941, 170274, 176643, 184282, 193409, 204192, 216718, 230974, + 246847, 77094, 117448, 107674, 105679, 106161, 107808, 109792, 111894, 113550, 115013, 116487, 117971, 119467, + 120978, 122508, 124060, 125637, 127240, 128872, 130534, 132227, 133952, 135709, 137501, 139326, 141185, 143079, + 145008, 146971, 148968, 151002, 153072, 155182, 157340, 159557, 161852, 164258, 166820, 169779, 172951, 176593, + 180872, 185988, 192162, 199625, 208584, 219197, 231537, 245582, 124482, 149534, 141864, 139927, 140077, 141099, + 142588, 144206, 145643, 146790, 147908, 149035, 150170, 151315, 152474, 153651, 154847, 156064, 157305, 158570, + 159862, 161181, 162528, 163904, 165310, 166746, 168214, 169713, 171244, 172806, 174402, 176032, 177698, 179404, + 181158, 182973, 184869, 186878, 189166, 191609, 194393, 197644, 201526, 206230, 211971, 218971, 227430, 237502, + 249262, 172098, 186683, 180624, 178720, 178593, 179262, 180312, 181461, 182625, 183564, 184403, 185245, 186090, + 186940, 187799, 188669, 189553, 190451, 191366, 192299, 193251, 194224, 195218, 196235, 197275, 198339, 199428, + 200543, 201683, 202850, 204043, 205265, 206517, 207800, 209120, 210485, 211906, 213405, 215011, 216876, 218892, + 221228, 224002, 227363, 231490, 236582, 242848, 250485, 259647, 219860, 227631, 222702, 220815, 220484, 220911, + 221617, 222477, 223357, 224143, 224795, 225429, 226063, 226698, 227336, 227980, 228631, 229291, 229962, 230644, + 231339, 232048, 232771, 233509, 234264, 235036, 235826, 236634, 237461, 238308, 239174, 240062, 240971, 241903, + 242862, 243851, 244878, 245955, 247100, 248404, 249804, 251405, 253288, 255555, 258336, 261790, 266094, 271440, + 278016, 267719, 271211, 267025, 265148, 264678, 264935, 265461, 266108, 266761, 267404, 267946, 268441, 268931, + 269419, 269907, 270396, 270888, 271384, 271885, 272393, 272908, 273431, 273964, 274505, 275058, 275621, 276195, + 276782, 277381, 277993, 278619, 279259, 279913, 280584, 281271, 281979, 282710, 283471, 284273, 285131, 286120, + 287190, 288428, 289899, 291688, 293903, 296676, 300159, 304520, 315646, 316517, 312799, 310926, 310368, 310513, + 310927, 311416, 311950, 312466, 312937, 313347, 313745, 314138, 314528, 314917, 315305, 315694, 316085, 316478, + 316876, 317277, 317683, 318094, 318511, 318935, 319365, 319802, 320247, 320701, 321162, 321633, 322113, 322602, + 323103, 323615, 324142, 324686, 325253, 325852, 326523, 327241, 328052, 328996, 330124, 331503, 333219, 335376, + 338098, 363622, 362917, 359484, 357613, 356999, 357074, 357415, 357831, 358260, 358701, 359091, 359475, 359815, + 360149, 360478, 360804, 361127, 361449, 361771, 362092, 362415, 362739, 363065, 363394, 363725, 364060, 364398, + 364740, 365086, 365437, 365792, 366153, 366519, 366891, 367269, 367654, 368048, 368451, 368867, 369300, 369757, + 370268, 370815, 371435, 372155, 373016, 374068, 375376, 377019, 412059, 410234, 406858, 404924, 404243, 404259, + 404547, 404915, 405292, 405665, 406024, 406358, 406679, 406976, 407268, 407555, 407839, 408120, 408399, 408677, + 408954, 409230, 409507, 409785, 410063, 410343, 410624, 410906, 411191, 411478, 411768, 412060, 412355, 412653, + 412955, 413260, 413570, 413885, 414207, 414538, 414881, 415253, 415643, 416071, 416554, 417111, 417773, 418575, + 419567, 467814, 462227, 456882, 453744, 452403, 452075, 452187, 452460, 452779, 453106, 453429, 453738, 454029, + 454313, 454582, 454846, 455106, 455362, 455615, 455866, 456116, 456364, 456611, 456858, 457104, 457350, 457597, + 457844, 458091, 458339, 458589, 458839, 459091, 459344, 459599, 459855, 460114, 460376, 460641, 460910, 461186, + 461470, 461775, 462094, 462441, 462828, 463269, 463786, 464406, 529840, 518640, 509746, 504343, 501670, 500603, + 500321, 500386, 500596, 500859, 501141, 501424, 501698, 501962, 502222, 502471, 502717, 502958, 503196, 503432, + 503665, 503896, 504126, 504354, 504581, 504807, 505033, 505259, 505484, 505709, 505934, 506159, 506385, 506611, + 506837, 507065, 507293, 507522, 507753, 507986, 508222, 508463, 508713, 508971, 509242, 509534, 509854, 510214, + 510628, 593803, 577155, 564459, 556428, 552050, 549928, 549018, 548720, 548722, 548868, 549080, 549322, 549571, + 549819, 550064, 550304, 550543, 550775, 551004, 551230, 551454, 551675, 551894, 552111, 552327, 552542, 552756, + 552968, 553180, 553392, 553602, 553813, 554023, 554233, 554443, 554653, 554863, 555073, 555284, 555496, 555709, + 555924, 556141, 556366, 556596, 556836, 557091, 557366, 557669, 657392, 636200, 620099, 609542, 603377, 600041, + 598330, 597518, 597199, 597145, 597234, 597399, 597603, 597823, 598049, 598277, 598504, 598730, 598952, 599174, + 599391, 599607, 599820, 600031, 600240, 600448, 600655, 600860, 601064, 601267, 601470, 601672, 601873, 602073, + 602273, 602473, 602673, 602872, 603071, 603270, 603470, 603670, 603872, 604075, 604284, 604496, 604715, 604944, + 605188, 719782, 694985, 676030, 663239, 655385, 650812, 648220, 646794, 646054, 645719, 645620, 645662, 645784, + 645952, 646145, 646351, 646563, 646778, 646994, 647208, 647421, 647632, 647841, 648050, 648255, 648459, 648662, + 648863, 649063, 649262, 649459, 649656, 649852, 650047, 650242, 650436, 650629, 650822, 651014, 651206, 651399, + 651591, 651783, 651976, 652171, 652368, 652568, 652773, 652986, 780811, 753183, 731886, 717183, 707813, 702067, + 698586, 696500, 695279, 694597, 694253, 694121, 694123, 694209, 694345, 694512, 694698, 694895, 695098, 695304, + 695510, 695717, 695922, 696127, 696330, 696532, 696732, 696931, 697129, 697325, 697520, 697714, 697908, 698100, + 698291, 698482, 698672, 698861, 699050, 699238, 699426, 699614, 699801, 699989, 700176, 700366, 700556, 700748, + 700944, 840531, 810678, 787466, 771147, 760448, 753630, 749299, 746551, 744822, 743754, 743122, 742777, 742622, + 742593, 742647, 742756, 742900, 743067, 743249, 743439, 743636, 743835, 744035, 744235, 744436, 744635, 744833, + 745031, 745227, 745422, 745616, 745809, 746001, 746192, 746382, 746572, 746760, 746948, 747135, 747321, 747507, + 747692, 747877, 748062, 748246, 748431, 748616, 748802, 748990, 899039, 867441, 842663, 824981, 813127, 805348, + 800230, 796845, 794607, 793138, 792193, 791605, 791265, 791095, 791042, 791071, 791156, 791280, 791430, 791597, + 791776, 791963, 792154, 792349, 792544, 792741, 792937, 793133, 793328, 793523, 793716, 793909, 794101, 794291, + 794481, 794670, 794858, 795046, 795232, 795418, 795603, 795788, 795972, 796155, 796338, 796521, 796704, 796887, + 797071, 956396, 923455, 897397, 878565, 865714, 857084, 851249, 847269, 844539, 842671, 841402, 840557, 840012, + 839680, 839502, 839434, 839444, 839510, 839616, 839750, 839905, 840073, 840252, 840436, 840625, 840817, 841010, + 841204, 841398, 841591, 841785, 841977, 842169, 842361, 842551, 842741, 842929, 843117, 843304, 843491, 843677, + 843862, 844046, 844230, 844413, 844596, 844779, 844961, 845143, 1012597, 978679, 951589, 931791, 918079, 908700, + 902222, 897694, 894503, 892248, 890660, 889552, 888792, 888288, 887971, 887791, 887713, 887710, 887762, 887854, + 887977, 888120, 888280, 888451, 888630, 888814, 889003, 889193, 889385, 889578, 889772, 889965, 890158, 890350, + 890542, 890733, 890923, 891113, 891302, 891490, 891677, 891864, 892050, 892235, 892420, 892604, 892788, 892971, + 893154, 1067536, 1033018, 1005126, 984521, 970072, 960041, 952992, 947968, 944351, 941733, 939838, 938471, 937497, + 936814, 936350, 936051, 935877, 935795, 935785, 935828, 935912, 936026, 936162, 936316, 936482, 936657, 936838, + 937025, 937215, 937406, 937600, 937794, 937988, 938183, 938377, 938570, 938763, 938956, 939148, 939339, 939529, + 939719, 939907, 940096, 940283, 940470, 940656, 940842, 941027, 1120979, 1086283, 1057825, 1036565, 1021494, 1010900, + 1003351, 997887, 993885, 990933, 988750, 987138, 985955, 985097, 984486, 984065, 983790, 983626, 983549, 983538, + 983578, 983658, 983768, 983901, 984052, 984216, 984390, 984572, 984759, 984950, 985143, 985339, 985536, 985733, + 985931, 986128, 986326, 986523, 986719, 986915, 987110, 987304, 987497, 987690, 987882, 988073, 988264, 988454, + 988643, 1172546, 1138179, 1109419, 1087657, 1072071, 1061002, 1053024, 1047176, 1042833, 1039582, 1037137, 1035298, 1033920, + 1032894, 1032142, 1031601, 1031225, 1030979, 1030833, 1030767, 1030762, 1030806, 1030888, 1030999, 1031134, 1031286, 1031452, + 1031629, 1031814, 1032005, 1032200, 1032398, 1032598, 1032800, 1033003, 1033206, 1033410, 1033613, 1033816, 1034018, 1034219, + 1034420, 1034620, 1034820, 1035018, 1035216, 1035413, 1035609, 1035804, 1221712, 1188274, 1159529, 1137427, 1121436, 1109977, + 1101639, 1095464, 1090827, 1087314, 1084637, 1082594, 1081038, 1079858, 1078974, 1078320, 1077849, 1077522, 1077310, 1077189, + 1077140, 1077148, 1077202, 1077292, 1077410, 1077551, 1077709, 1077882, 1078065, 1078256, 1078454, 1078656, 1078862, 1079070, + 1079279, 1079490, 1079701, 1079913, 1080124, 1080335, 1080545, 1080754, 1080963, 1081171, 1081378, 1081584, 1081789, 1081993, + 1082197, 1267894, 1236043, 1207688, 1185431, 1169142, 1157373, 1148741, 1142294, 1137408, 1133669, 1130790, 1128566, 1126851, + 1125533, 1124527, 1123769, 1123209, 1122806, 1122531, 1122357, 1122264, 1122238, 1122264, 1122332, 1122434, 1122564, 1122715, + 1122883, 1123065, 1123257, 1123458, 1123665, 1123876, 1124091, 1124309, 1124528, 1124748, 1124969, 1125190, 1125411, 1125631, + 1125850, 1126069, 1126287, 1126504, 1126719, 1126934, 1127148, 1127360, 1310556, 1280914, 1253385, 1231181, 1214702, 1202695, + 1193826, 1187153, 1182057, 1178124, 1175068, 1172686, 1170828, 1169383, 1168267, 1167412, 1166767, 1166293, 1165956, 1165730, + 1165595, 1165533, 1165530, 1165576, 1165661, 1165778, 1165920, 1166082, 1166262, 1166454, 1166656, 1166866, 1167083, 1167304, + 1167529, 1167756, 1167984, 1168214, 1168444, 1168674, 1168904, 1169133, 1169361, 1169589, 1169815, 1170040, 1170264, 1170487, + 1170709, 1349378, 1322416, 1296167, 1274250, 1257686, 1245501, 1236437, 1229573, 1224294, 1220189, 1216975, 1214447, 1212458, + 1210894, 1209672, 1208723, 1207996, 1207449, 1207049, 1206770, 1206589, 1206488, 1206453, 1206472, 1206536, 1206636, 1206765, + 1206918, 1207090, 1207278, 1207478, 1207688, 1207906, 1208130, 1208358, 1208590, 1208824, 1209060, 1209296, 1209533, 1209770, + 1210006, 1210242, 1210477, 1210711, 1210943, 1211174, 1211404, 1211633, 1384298, 1360258, 1335704, 1314328, 1297786, 1285472, + 1276243, 1269208, 1263762, 1259499, 1256135, 1253468, 1251351, 1249671, 1248342, 1247298, 1246486, 1245864, 1245397, 1245058, + 1244825, 1244679, 1244606, 1244592, 1244627, 1244703, 1244812, 1244949, 1245108, 1245285, 1245477, 1245681, 1245894, 1246115, + 1246342, 1246573, 1246808, 1247044, 1247283, 1247522, 1247761, 1248001, 1248240, 1248478, 1248715, 1248951, 1249186, 1249419, + 1249651, 1415523, 1394402, 1371856, 1351285, 1334877, 1322477, 1313103, 1305909, 1300303, 1295884, 1292373, 1289568, 1287322, + 1285522, 1284084, 1282940, 1282037, 1281332, 1280791, 1280385, 1280093, 1279894, 1279774, 1279718, 1279717, 1279761, 1279842, + 1279954, 1280092, 1280251, 1280427, 1280618, 1280820, 1281031, 1281249, 1281473, 1281702, 1281934, 1282168, 1282404, 1282641, + 1282878, 1283115, 1283352, 1283588, 1283823, 1284057, 1284290, 1284521, 1443402, 1425019, 1404648, 1385133, 1368989, 1356548, + 1347045, 1339698, 1333935, 1329362, 1325702, 1322757, 1320378, 1318455, 1316902, 1315652, 1314652, 1313857, 1313235, 1312755, + 1312395, 1312136, 1311960, 1311854, 1311808, 1311812, 1311857, 1311937, 1312046, 1312179, 1312332, 1312502, 1312685, 1312880, + 1313084, 1313295, 1313512, 1313733, 1313958, 1314185, 1314414, 1314644, 1314874, 1315105, 1315335, 1315565, 1315794, 1316022, + 1316249, 1468349, 1452420, 1434245, 1415996, 1400259, 1387834, 1378222, 1370729, 1364812, 1360085, 1356276, 1353188, 1350674, + 1348624, 1346952, 1345592, 1344488, 1343599, 1342889, 1342328, 1341894, 1341567, 1341329, 1341167, 1341069, 1341025, 1341027, + 1341067, 1341141, 1341241, 1341365, 1341508, 1341667, 1341840, 1342023, 1342215, 1342415, 1342621, 1342831, 1343045, 1343261, + 1343480, 1343700, 1343920, 1344141, 1344362, 1344583, 1344802, 1345021, 1490770, 1476979, 1460902, 1444066, 1428887, 1416550, + 1406856, 1399229, 1393161, 1388283, 1384325, 1381094, 1378444, 1376265, 1374472, 1372998, 1371788, 1370800, 1369998, 1369352, + 1368839, 1368439, 1368133, 1367909, 1367754, 1367658, 1367611, 1367608, 1367640, 1367703, 1367792, 1367903, 1368033, 1368178, + 1368337, 1368506, 1368685, 1368871, 1369063, 1369259, 1369460, 1369664, 1369869, 1370077, 1370285, 1370494, 1370704, 1370913, + 1371121, 1511028, 1499069, 1484917, 1469563, 1455088, 1442926, 1433188, 1425443, 1419234, 1414209, 1410106, 1406733, 1403948, + 1401641, 1399727, 1398138, 1396821, 1395732, 1394836, 1394102, 1393508, 1393031, 1392655, 1392366, 1392150, 1391997, 1391899, + 1391847, 1391834, 1391856, 1391907, 1391983, 1392080, 1392194, 1392325, 1392468, 1392622, 1392785, 1392956, 1393133, 1393314, + 1393501, 1393690, 1393882, 1394076, 1394271, 1394467, 1394663, 1394860, 1529439, 1519039, 1506606, 1492728, 1479082, 1467192, + 1457459, 1449619, 1443282, 1438117, 1433874, 1430365, 1427448, 1425014, 1422980, 1421277, 1419853, 1418663, 1417672, 1416850, + 1416173, 1415618, 1415170, 1414813, 1414534, 1414323, 1414170, 1414067, 1414008, 1413985, 1413995, 1414033, 1414095, 1414177, + 1414276, 1414391, 1414518, 1414656, 1414803, 1414958, 1415120, 1415287, 1415458, 1415632, 1415810, 1415989, 1416171, 1416353, + 1416536, 1546275, 1537196, 1526272, 1513808, 1501079, 1489562, 1479892, 1471986, 1465536, 1460243, 1455867, 1452226, 1449181, + 1446625, 1444473, 1442659, 1441129, 1439840, 1438755, 1437844, 1437083, 1436451, 1435930, 1435504, 1435161, 1434890, 1434681, + 1434526, 1434418, 1434350, 1434318, 1434316, 1434340, 1434387, 1434455, 1434539, 1434638, 1434749, 1434871, 1435003, 1435142, + 1435288, 1435440, 1435596, 1435756, 1435919, 1436085, 1436252, 1436421, 1561743, 1553786, 1544174, 1533023, 1521258, 1510210, + 1500671, 1492737, 1486195, 1480786, 1476286, 1472521, 1469354, 1466680, 1464415, 1462493, 1460860, 1459473, 1458296, 1457298, + 1456455, 1455746, 1455152, 1454658, 1454251, 1453920, 1453654, 1453446, 1453289, 1453174, 1453099, 1453056, 1453042, 1453054, + 1453088, 1453140, 1453210, 1453294, 1453390, 1453497, 1453614, 1453738, 1453869, 1454006, 1454148, 1454293, 1454443, 1454595, + 1454749, 1576028, 1569028, 1560551, 1550595, 1539801, 1529303, 1519965, 1512046, 1505437, 1499927, 1495315, 1491433, 1488151, + 1485364, 1482991, 1480965, 1479233, 1477751, 1476484, 1475401, 1474478, 1473693, 1473027, 1472465, 1471995, 1471604, 1471282, + 1471021, 1470813, 1470653, 1470533, 1470449, 1470397, 1470372, 1470372, 1470392, 1470432, 1470487, 1470557, 1470639, 1470732, + 1470834, 1470944, 1471061, 1471184, 1471312, 1471444, 1471580, 1471719, 1589285, 1583105, 1575608, 1566724, 1556875, 1546986, + 1537920, 1530062, 1523415, 1517822, 1513109, 1509121, 1505731, 1502838, 1500361, 1498235, 1496407, 1494834, 1493480, 1492315, + 1491313, 1490453, 1489717, 1489089, 1488556, 1488105, 1487728, 1487414, 1487157, 1486950, 1486786, 1486661, 1486569, 1486508, + 1486473, 1486461, 1486470, 1486497, 1486540, 1486596, 1486665, 1486744, 1486833, 1486929, 1487033, 1487143, 1487258, 1487377, + 1487500, 1601641, 1596166, 1589516, 1581585, 1572634, 1563388, 1554657, 1546912, 1540258, 1534604, 1529804, 1525718, 1522228, + 1519234, 1516659, 1514438, 1512519, 1510858, 1509420, 1508175, 1507097, 1506165, 1505360, 1504667, 1504072, 1503563, 1503131, + 1502765, 1502459, 1502205, 1501998, 1501831, 1501701, 1501603, 1501533, 1501489, 1501467, 1501465, 1501480, 1501511, 1501555, + 1501611, 1501678, 1501754, 1501838, 1501929, 1502027, 1502129, 1502237, 1613191, 1608326, 1602411, 1595324, 1587209, 1578620, + 1570276, 1562696, 1556071, 1550377, 1545506, 1541334, 1537752, 1534666, 1531998, 1529687, 1527681, 1525936, 1524418, 1523096, + 1521944, 1520942, 1520070, 1519314, 1518659, 1518093, 1517607, 1517190, 1516835, 1516536, 1516285, 1516078, 1515909, 1515774, + 1515670, 1515593, 1515541, 1515509, 1515497, 1515502, 1515521, 1515554, 1515599, 1515654, 1515719, 1515791, 1515871, 1515957, + 1516048, 1624030, 1619696, 1614422, 1608078, 1600732, 1592792, 1584876, 1577508, 1570950, 1565242, 1560316, 1556070, 1552405, + 1549233, 1546480, 1544084, 1541994, 1540170, 1538574, 1537178, 1535955, 1534885, 1533949, 1533132, 1532418, 1531797, 1531257, + 1530790, 1530388, 1530044, 1529750, 1529502, 1529295, 1529124, 1528986, 1528876, 1528793, 1528733, 1528693, 1528671, 1528666, + 1528676, 1528699, 1528733, 1528778, 1528831, 1528893, 1528962, 1529038, 1634230, 1630361, 1625645, 1619958, 1613312, 1606001, + 1598538, 1591425, 1584971, 1579276, 1574314, 1570007, 1566269, 1563019, 1560185, 1557710, 1555542, 1553642, 1551972, 1550505, + 1549214, 1548079, 1547081, 1546204, 1545433, 1544758, 1544167, 1543651, 1543202, 1542813, 1542478, 1542190, 1541945, 1541738, + 1541566, 1541425, 1541310, 1541221, 1541154, 1541107, 1541077, 1541063, 1541064, 1541077, 1541102, 1541137, 1541181, 1541233, + 1541292, 1643860, 1640399, 1636174, 1631066, 1625053, 1618341, 1611342, 1604519, 1598206, 1592552, 1587574, 1583220, 1579419, + 1576098, 1573191, 1570641, 1568400, 1566427, 1564687, 1563152, 1561796, 1560598, 1559540, 1558605, 1557779, 1557051, 1556410, + 1555846, 1555352, 1554920, 1554543, 1554216, 1553934, 1553692, 1553486, 1553312, 1553168, 1553050, 1552955, 1552882, 1552828, + 1552791, 1552769, 1552762, 1552766, 1552782, 1552808, 1552843, 1552886, 1652976, 1649875, 1646082, 1641486, 1636044, 1629893, + 1623359, 1616853, 1610714, 1605129, 1600155, 1595770, 1591917, 1588533, 1585559, 1582940, 1580630, 1578589, 1576783, 1575183, + 1573765, 1572506, 1571389, 1570399, 1569520, 1568740, 1568050, 1567440, 1566901, 1566426, 1566009, 1565643, 1565325, 1565048, + 1564808, 1564603, 1564429, 1564282, 1564161, 1564062, 1563983, 1563923, 1563879, 1563850, 1563835, 1563832, 1563840, 1563858, + 1563885, 1661611, 1658830, 1655419, 1651278, 1646350, 1640721, 1634644, 1628473, 1622537, 1617050, 1612103, 1607701, 1603808, + 1600372, 1597338, 1594656, 1592282, 1590177, 1588308, 1586646, 1585168, 1583852, 1582680, 1581635, 1580705, 1579876, 1579139, + 1578483, 1577901, 1577385, 1576928, 1576525, 1576170, 1575859, 1575587, 1575351, 1575147, 1574972, 1574824, 1574700, 1574597, + 1574513, 1574448, 1574398, 1574363, 1574341, 1574331, 1574332, 1574342, 1669825, 1667329, 1664258, 1660520, 1656053, 1650906, + 1645270, 1639444, 1633735, 1628371, 1623472, 1619071, 1615151, 1611671, 1608584, 1605844, 1603411, 1601246, 1599317, 1597598, + 1596062, 1594691, 1593465, 1592369, 1591389, 1590512, 1589729, 1589029, 1588405, 1587848, 1587353, 1586913, 1586522, 1586178, + 1585874, 1585607, 1585374, 1585171, 1584996, 1584846, 1584719, 1584613, 1584525, 1584455, 1584400, 1584359, 1584331, 1584314, + 1584308, 1677653, 1675411, 1672642, 1669264, 1665212, 1660507, 1655292, 1649812, 1644348, 1639131, 1634302, 1629919, 1625984, + 1622469, 1619337, 1616546, 1614058, 1611837, 1609853, 1608078, 1606488, 1605064, 1603786, 1602640, 1601612, 1600689, 1599861, + 1599118, 1598453, 1597857, 1597324, 1596847, 1596423, 1596045, 1595709, 1595412, 1595150, 1594919, 1594718, 1594543, 1594392, + 1594263, 1594154, 1594062, 1593988, 1593928, 1593882, 1593848, 1593826, 1685115, 1683101, 1680603, 1677547, 1673868, 1669568, + 1664750, 1659614, 1654409, 1649359, 1644620, 1640272, 1636336, 1632798, 1629628, 1626793, 1624255, 1621983, 1619946, 1618119, + 1616478, 1615003, 1613676, 1612483, 1611408, 1610441, 1609569, 1608785, 1608080, 1607446, 1606876, 1606364, 1605905, 1605495, + 1605128, 1604801, 1604511, 1604254, 1604026, 1603827, 1603652, 1603500, 1603369, 1603257, 1603163, 1603084, 1603020, 1602970, + 1602931, 1692248, 1690439, 1688184, 1685416, 1682073, 1678143, 1673698, 1668898, 1663958, 1659092, 1654463, 1650167, 1646243, + 1642692, 1639493, 1636619, 1634037, 1631718, 1629633, 1627757, 1626067, 1624544, 1623171, 1621931, 1620812, 1619801, 1618889, + 1618064, 1617320, 1616649, 1616043, 1615497, 1615005, 1614563, 1614166, 1613810, 1613491, 1613207, 1612954, 1612730, 1612532, + 1612358, 1612205, 1612073, 1611959, 1611862, 1611780, 1611712, 1611657, 1699066, 1697443, 1695406, 1692898, 1689858, 1686266, + 1682169, 1677693, 1673022, 1668353, 1663850, 1659623, 1655726, 1652173, 1648955, 1646049, 1643429, 1641067, 1638938, 1637016, + 1635281, 1633712, 1632294, 1631011, 1629849, 1628797, 1627845, 1626982, 1626200, 1625492, 1624851, 1624272, 1623748, 1623275, + 1622848, 1622464, 1622118, 1621807, 1621529, 1621281, 1621060, 1620864, 1620690, 1620538, 1620404, 1620289, 1620189, 1620104, + 1620033, 1705611, 1704156, 1702317, 1700042, 1697276, 1693991, 1690217, 1686051, 1681647, 1677184, 1672822, 1668679, 1664821, + 1661278, 1658048, 1655118, 1652465, 1650066, 1647895, 1645931, 1644152, 1642541, 1641080, 1639755, 1638553, 1637461, 1636469, + 1635569, 1634750, 1634007, 1633333, 1632720, 1632165, 1631661, 1631205, 1630793, 1630420, 1630084, 1629781, 1629509, 1629265, + 1629046, 1628852, 1628679, 1628527, 1628393, 1628275, 1628174, 1628086, 1711886, 1710584, 1708924, 1706861, 1704342, 1701338, + 1697864, 1693992, 1689851, 1685599, 1681390, 1677344, 1673541, 1670018, 1666787, 1663839, 1661160, 1658727, 1656519, 1654516, + 1652698, 1651046, 1649545, 1648180, 1646939, 1645809, 1644780, 1643843, 1642990, 1642212, 1641505, 1640861, 1640275, 1639741, + 1639257, 1638817, 1638418, 1638056, 1637729, 1637433, 1637167, 1636927, 1636712, 1636519, 1636347, 1636195, 1636060, 1635942, + 1635838, 1717922, 1716758, 1715261, 1713389, 1711095, 1708347, 1705149, 1701555, 1697670, 1693632, 1689584, 1685649, 1681911, + 1678420, 1675196, 1672239, 1669538, 1667078, 1664837, 1662799, 1660943, 1659254, 1657715, 1656312, 1655033, 1653866, 1652801, + 1651829, 1650942, 1650131, 1649392, 1648717, 1648100, 1647538, 1647026, 1646559, 1646134, 1645747, 1645396, 1645077, 1644789, + 1644527, 1644292, 1644079, 1643889, 1643718, 1643566, 1643431, 1643311, 1723727, 1722690, 1721340, 1719643, 1717553, 1715038, + 1712095, 1708763, 1705125, 1701301, 1697421, 1693606, 1689946, 1686497, 1683290, 1680331, 1677616, 1675133, 1672864, 1670793, + 1668904, 1667179, 1665604, 1664165, 1662850, 1661648, 1660549, 1659543, 1658623, 1657781, 1657010, 1656305, 1655660, 1655070, + 1654530, 1654037, 1653586, 1653175, 1652800, 1652459, 1652148, 1651866, 1651610, 1651378, 1651169, 1650980, 1650811, 1650659, + 1650524, 1729321, 1728399, 1727184, 1725646, 1723741, 1721440, 1718732, 1715644, 1712243, 1708630, 1704923, 1701237, 1697665, + 1694269, 1691087, 1688134, 1685411, 1682910, 1680617, 1678518, 1676597, 1674840, 1673231, 1671759, 1670410, 1669175, 1668042, + 1667004, 1666052, 1665179, 1664378, 1663644, 1662970, 1662352, 1661786, 1661267, 1660792, 1660357, 1659959, 1659595, 1659263, + 1658960, 1658684, 1658433, 1658205, 1657999, 1657812, 1657644, 1657493, 1734710, 1733894, 1732803, 1731409, 1729674, 1727568, + 1725077, 1722218, 1719043, 1715636, 1712104, 1708554, 1705078, 1701745, 1698598, 1695659, 1692935, 1690421, 1688109, 1685986, + 1684037, 1682250, 1680610, 1679106, 1677725, 1676458, 1675294, 1674224, 1673242, 1672339, 1671509, 1670746, 1670045, 1669401, + 1668808, 1668264, 1667765, 1667306, 1666886, 1666500, 1666147, 1665823, 1665528, 1665258, 1665012, 1664788, 1664584, 1664400, + 1664233, 1739923, 1739204, 1738225, 1736963, 1735383, 1733456, 1731164, 1728518, 1725557, 1722351, 1718994, 1715584, 1712212, + 1708950, 1705846, 1702929, 1700209, 1697689, 1695361, 1693217, 1691244, 1689429, 1687760, 1686226, 1684815, 1683517, 1682323, + 1681224, 1680212, 1679280, 1678422, 1677631, 1676903, 1676233, 1675615, 1675046, 1674523, 1674041, 1673598, 1673191, 1672817, + 1672473, 1672158, 1671870, 1671606, 1671364, 1671144, 1670943, 1670760, 1744943, 1744313, 1743439, 1742298, 1740861, 1739097, + 1736990, 1734542, 1731784, 1728772, 1725588, 1722323, 1719062, 1715879, 1712827, 1709938, 1707231, 1704709, 1702372, 1700210, + 1698216, 1696377, 1694682, 1693121, 1691681, 1690355, 1689132, 1688005, 1686965, 1686005, 1685120, 1684303, 1683549, 1682853, + 1682211, 1681619, 1681072, 1680568, 1680103, 1679675, 1679280, 1678917, 1678583, 1678276, 1677994, 1677736, 1677499, 1677282, + 1677084, 1749810, 1749262, 1748483, 1747453, 1746145, 1744532, 1742595, 1740332, 1737764, 1734939, 1731925, 1728804, 1725660, + 1722563, 1719569, 1716716, 1714026, 1711509, 1709166, 1706992, 1704980, 1703119, 1701401, 1699813, 1698348, 1696994, 1695744, + 1694589, 1693522, 1692536, 1691625, 1690782, 1690003, 1689282, 1688616, 1688000, 1687431, 1686905, 1686419, 1685970, 1685555, + 1685173, 1684820, 1684495, 1684195, 1683920, 1683666, 1683434, 1683221, 1754516, 1754043, 1753352, 1752425, 1751237, 1749762, + 1747981, 1745889, 1743501, 1740854, 1738007, 1735032, 1732006, 1729001, 1726073, 1723263, 1720597, 1718091, 1715747, 1713564, + 1711537, 1709658, 1707918, 1706308, 1704817, 1703439, 1702163, 1700982, 1699889, 1698878, 1697941, 1697073, 1696270, 1695525, + 1694836, 1694198, 1693606, 1693059, 1692552, 1692082, 1691648, 1691246, 1690875, 1690532, 1690215, 1689923, 1689654, 1689405, + 1689177, 1759066, 1758663, 1758053, 1757220, 1756142, 1754795, 1753159, 1751227, 1749008, 1746530, 1743844, 1741014, 1738111, + 1735202, 1732346, 1729585, 1726950, 1724459, 1722119, 1719933, 1717895, 1716001, 1714242, 1712611, 1711098, 1709696, 1708396, + 1707191, 1706073, 1705037, 1704076, 1703185, 1702358, 1701591, 1700879, 1700219, 1699606, 1699037, 1698510, 1698021, 1697568, + 1697147, 1696758, 1696397, 1696064, 1695755, 1695470, 1695206, 1694963, 1763486, 1763148, 1762613, 1761867, 1760890, 1759660, + 1758158, 1756374, 1754312, 1751996, 1749466, 1746779, 1743998, 1741190, 1738410, 1735704, 1733105, 1730635, 1728304, 1726117, + 1724072, 1722165, 1720391, 1718740, 1717207, 1715783, 1714460, 1713232, 1712091, 1711032, 1710048, 1709133, 1708284, 1707494, + 1706760, 1706078, 1705445, 1704856, 1704308, 1703800, 1703328, 1702889, 1702482, 1702104, 1701753, 1701429, 1701127, 1700849, + 1700591, 1767770, 1767491, 1767025, 1766360, 1765477, 1764355, 1762976, 1761330, 1759416, 1757253, 1754873, 1752325, 1749668, + 1746962, 1744263, 1741618, 1739061, 1736617, 1734300, 1732116, 1730068, 1728152, 1726364, 1724697, 1723146, 1721701, 1720358, + 1719108, 1717945, 1716863, 1715857, 1714920, 1714049, 1713238, 1712483, 1711780, 1711126, 1710517, 1709950, 1709423, 1708932, + 1708476, 1708051, 1707656, 1707290, 1706949, 1706632, 1706338, 1706066, 1771931, 1771708, 1771306, 1770715, 1769918, 1768896, + 1767632, 1766113, 1764338, 1762319, 1760083, 1757672, 1755137, 1752536, 1749921, 1747341, 1744831, 1742418, 1740119, 1737943, + 1735895, 1733973, 1732174, 1730493, 1728925, 1727462, 1726099, 1724829, 1723645, 1722542, 1721515, 1720557, 1719664, 1718832, + 1718057, 1717334, 1716660, 1716032, 1715446, 1714900, 1714392, 1713918, 1713476, 1713064, 1712681, 1712325, 1711993, 1711684, + 1711397, 1775973, 1775802, 1775459, 1774936, 1774219, 1773290, 1772132, 1770732, 1769087, 1767204, 1765105, 1762826, 1760412, + 1757917, 1755390, 1752878, 1750419, 1748042, 1745765, 1743602, 1741557, 1739632, 1737825, 1736133, 1734550, 1733071, 1731690, + 1730401, 1729198, 1728075, 1727027, 1726049, 1725136, 1724284, 1723489, 1722746, 1722053, 1721406, 1720802, 1720238, 1719712, + 1719221, 1718762, 1718334, 1717935, 1717563, 1717216, 1716893, 1716592, 1779899, 1779775, 1779487, 1779028, 1778386, 1777543, + 1776483, 1775194, 1773669, 1771915, 1769947, 1767795, 1765501, 1763111, 1760674, 1758234, 1755831, 1753493, 1751244, 1749097, + 1747059, 1745134, 1743323, 1741621, 1740026, 1738533, 1737136, 1735829, 1734608, 1733466, 1732399, 1731402, 1730470, 1729598, + 1728784, 1728023, 1727311, 1726646, 1726024, 1725442, 1724898, 1724390, 1723915, 1723472, 1723057, 1722670, 1722308, 1721971, + 1721656, 1783723, 1783643, 1783406, 1783007, 1782433, 1781670, 1780701, 1779514, 1778103, 1776469, 1774626, 1772597, 1770419, + 1768135, 1765788, 1763423, 1761079, 1758785, 1756567, 1754439, 1752412, 1750491, 1748677, 1746969, 1745364, 1743858, 1742446, + 1741123, 1739885, 1738726, 1737640, 1736625, 1735674, 1734784, 1733951, 1733172, 1732442, 1731759, 1731119, 1730521, 1729960, + 1729436, 1728945, 1728485, 1728055, 1727653, 1727277, 1726925, 1726597, 1787435, 1787396, 1787207, 1786863, 1786353, 1785664, + 1784780, 1783689, 1782384, 1780864, 1779139, 1777229, 1775164, 1772984, 1770729, 1768441, 1766159, 1763914, 1761730, 1759626, + 1757613, 1755699, 1753886, 1752173, 1750561, 1749044, 1747619, 1746282, 1745028, 1743852, 1742750, 1741717, 1740749, 1739842, + 1738991, 1738194, 1737447, 1736747, 1736090, 1735475, 1734898, 1734358, 1733851, 1733377, 1732932, 1732515, 1732125, 1731759, + 1731417, 1791049, 1791049, 1790904, 1790612, 1790161, 1789541, 1788736, 1787735, 1786529, 1785116, 1783503, 1781706, 1779751, + 1777673, 1775510, 1773301, 1771084, 1768890, 1766744, 1764668, 1762673, 1760768, 1758958, 1757245, 1755626, 1754101, 1752665, + 1751315, 1750047, 1748856, 1747738, 1746689, 1745704, 1744780, 1743912, 1743098, 1742335, 1741618, 1740945, 1740314, 1739721, + 1739165, 1738643, 1738153, 1737694, 1737263, 1736858, 1736479, 1736124, 1794582, 1794617, 1794514, 1794269, 1793873, 1793316, + 1792585, 1791667, 1790553, 1789241, 1787733, 1786045, 1784197, 1782219, 1780147, 1778018, 1775867, 1773726, 1771623, 1769576, + 1767602, 1765710, 1763906, 1762193, 1760571, 1759039, 1757594, 1756233, 1754951, 1753746, 1752613, 1751548, 1750548, 1749607, + 1748724, 1747894, 1747113, 1746380, 1745692, 1745044, 1744436, 1743865, 1743328, 1742824, 1742350, 1741905, 1741487, 1741094, + 1740725, 1798006, 1798075, 1798011, 1797810, 1797467, 1796970, 1796307, 1795467, 1794440, 1793222, 1791816, 1790230, 1788485, + 1786606, 1784625, 1782576, 1780494, 1778410, 1776351, 1774338, 1772388, 1770512, 1768717, 1767008, 1765385, 1763848, 1762395, + 1761024, 1759732, 1758514, 1757368, 1756289, 1755273, 1754318, 1753419, 1752573, 1751778, 1751029, 1750325, 1749663, 1749040, + 1748454, 1747902, 1747384, 1746896, 1746437, 1746006, 1745600, 1745219, 1801367, 1801467, 1801438, 1801279, 1800983, 1800541, + 1799942, 1799174, 1798228, 1797099, 1795787, 1794300, 1792653, 1790869, 1788977, 1787009, 1784996, 1782970, 1780958, 1778982, + 1777058, 1775201, 1773417, 1771713, 1770091, 1768551, 1767093, 1765714, 1764411, 1763182, 1762023, 1760930, 1759900, 1758930, + 1758016, 1757156, 1756345, 1755582, 1754863, 1754186, 1753548, 1752948, 1752382, 1751849, 1751348, 1750875, 1750431, 1750012, + 1749618, 1804636, 1804765, 1804770, 1804649, 1804399, 1804009, 1803469, 1802769, 1801899, 1800853, 1799631, 1798237, 1796685, + 1794994, 1793189, 1791301, 1789359, 1787393, 1785430, 1783493, 1781599, 1779763, 1777993, 1776298, 1774679, 1773138, 1771676, + 1770290, 1768979, 1767739, 1766568, 1765463, 1764421, 1763437, 1762509, 1761635, 1760810, 1760032, 1759299, 1758608, 1757956, + 1757341, 1756762, 1756216, 1755701, 1755215, 1754758, 1754326, 1753920, 1807830, 1807986, 1808022, 1807938, 1807729, 1807387, + 1806903, 1806266, 1805467, 1804500, 1803362, 1802057, 1800596, 1798994, 1797276, 1795466, 1793595, 1791691, 1789779, 1787883, + 1786021, 1784209, 1782456, 1780771, 1779157, 1777618, 1776153, 1774762, 1773444, 1772195, 1771014, 1769898, 1768843, 1767847, + 1766906, 1766018, 1765179, 1764388, 1763641, 1762936, 1762270, 1761642, 1761049, 1760490, 1759962, 1759463, 1758993, 1758549, + 1758131, 1810934, 1811115, 1811181, 1811131, 1810962, 1810666, 1810234, 1809656, 1808924, 1808031, 1806973, 1805753, 1804379, + 1802864, 1801229, 1799499, 1797699, 1795856, 1793998, 1792145, 1790318, 1788532, 1786799, 1785127, 1783521, 1781985, 1780520, + 1779126, 1777802, 1776546, 1775356, 1774230, 1773164, 1772156, 1771203, 1770302, 1769451, 1768646, 1767886, 1767168, 1766489, + 1765848, 1765242, 1764670, 1764129, 1763619, 1763136, 1762681, 1762250, 1813979, 1814185, 1814278, 1814259, 1814127, 1813873, + 1813490, 1812968, 1812298, 1811474, 1810492, 1809352, 1808060, 1806629, 1805076, 1803422, 1801693, 1799913, 1798109, 1796301, + 1794511, 1792753, 1791042, 1789384, 1787788, 1786257, 1784794, 1783398, 1782070, 1780807, 1779610, 1778474, 1777398, 1776379, + 1775414, 1774501, 1773638, 1772821, 1772048, 1771317, 1770625, 1769972, 1769353, 1768769, 1768216, 1767693, 1767198, 1766731, + 1766289, 1816952, 1817180, 1817299, 1817310, 1817212, 1816998, 1816660, 1816190, 1815579, 1814820, 1813909, 1812845, 1811633, + 1810282, 1808808, 1807230, 1805570, 1803854, 1802105, 1800344, 1798592, 1796866, 1795177, 1793537, 1791953, 1790429, 1788968, + 1787573, 1786242, 1784974, 1783770, 1782626, 1781541, 1780512, 1779536, 1778612, 1777737, 1776908, 1776123, 1775380, 1774676, + 1774010, 1773380, 1772783, 1772218, 1771683, 1771177, 1770698, 1770245, 1819869, 1820117, 1820260, 1820299, 1820233, 1820056, + 1819761, 1819339, 1818783, 1818085, 1817241, 1816249, 1815112, 1813838, 1812440, 1810936, 1809346, 1807693, 1805999, 1804286, + 1802574, 1800880, 1799217, 1797596, 1796025, 1794510, 1793055, 1791660, 1790328, 1789057, 1787847, 1786696, 1785602, 1784564, + 1783579, 1782644, 1781757, 1780917, 1780121, 1779366, 1778650, 1777972, 1777330, 1776721, 1776144, 1775598, 1775080, 1774590, + 1774125, 1822715, 1822983, 1823148, 1823213, 1823177, 1823035, 1822780, 1822404, 1821900, 1821259, 1820478, 1819554, 1818489, + 1817289, 1815965, 1814533, 1813011, 1811421, 1809783, 1808120, 1806450, 1804790, 1803154, 1801554, 1799999, 1798495, 1797046, + 1795654, 1794322, 1793049, 1791834, 1790678, 1789577, 1788530, 1787536, 1786591, 1785694, 1784843, 1784036, 1783270, 1782543, + 1781854, 1781200, 1780580, 1779992, 1779434, 1778905, 1778404, 1777929, 1825507, 1825792, 1825978, 1826068, 1826060, 1825950, + 1825733, 1825400, 1824944, 1824358, 1823636, 1822776, 1821780, 1820650, 1819398, 1818035, 1816581, 1815052, 1813471, 1811858, + 1810230, 1808606, 1807000, 1805423, 1803885, 1802393, 1800952, 1799565, 1798234, 1796960, 1795742, 1794581, 1793473, 1792419, + 1791416, 1790463, 1789556, 1788695, 1787877, 1787100, 1786363, 1785662, 1784998, 1784367, 1783768, 1783199, 1782659, 1782147, + 1781661, 1828228, 1828531, 1828737, 1828849, 1828868, 1828789, 1828607, 1828314, 1827904, 1827369, 1826704, 1825906, 1824974, + 1823912, 1822729, 1821435, 1820045, 1818579, 1817055, 1815491, 1813908, 1812321, 1810745, 1809193, 1807674, 1806197, 1804766, + 1803385, 1802057, 1800783, 1799564, 1798399, 1797286, 1796226, 1795215, 1794254, 1793338, 1792468, 1791640, 1790853, 1790105, + 1789395, 1788719, 1788078, 1787468, 1786889, 1786339, 1785816, 1785320, 1830896, 1831215, 1831440, 1831574, 1831618, 1831568, + 1831419, 1831164, 1830796, 1830310, 1829698, 1828957, 1828087, 1827090, 1825973, 1824745, 1823420, 1822014, 1820546, 1819034, + 1817495, 1815946, 1814403, 1812877, 1811379, 1809917, 1808498, 1807125, 1805801, 1804529, 1803309, 1802141, 1801025, 1799959, + 1798942, 1797972, 1797049, 1796169, 1795332, 1794536, 1793778, 1793058, 1792372, 1791720, 1791101, 1790511, 1789951, 1789418, + 1788912, 1833512, 1833846, 1834088, 1834243, 1834310, 1834287, 1834169, 1833950, 1833623, 1833181, 1832619, 1831934, 1831123, + 1830187, 1829133, 1827969, 1826707, 1825361, 1823949, 1822487, 1820994, 1819484, 1817974, 1816476, 1815000, 1813556, 1812149, + 1810785, 1809468, 1808199, 1806979, 1805810, 1804690, 1803619, 1802596, 1801620, 1800689, 1799802, 1798956, 1798151, 1797384, + 1796654, 1795958, 1795297, 1794667, 1794068, 1793498, 1792955, 1792439, 1836077, 1836424, 1836683, 1836856, 1836945, 1836948, + 1836859, 1836673, 1836384, 1835985, 1835471, 1834837, 1834082, 1833206, 1832213, 1831110, 1829908, 1828621, 1827264, 1825854, + 1824406, 1822937, 1821461, 1819992, 1818540, 1817114, 1815722, 1814369, 1813058, 1811793, 1810575, 1809405, 1808283, 1807209, + 1806181, 1805199, 1804261, 1803367, 1802513, 1801699, 1800923, 1800184, 1799479, 1798808, 1798169, 1797560, 1796981, 1796429, + 1795903, 1838590, 1838950, 1839224, 1839415, 1839525, 1839551, 1839490, 1839336, 1839083, 1838724, 1838255, 1837670, 1836968, + 1836148, 1835213, 1834170, 1833027, 1831798, 1830495, 1829135, 1827733, 1826305, 1824865, 1823426, 1821999, 1820593, 1819217, + 1817876, 1816574, 1815314, 1814099, 1812930, 1811807, 1810730, 1809698, 1808711, 1807767, 1806865, 1806004, 1805182, 1804398, + 1803650, 1802937, 1802257, 1801608, 1800990, 1800401, 1799840, 1799305, 1841051, 1841424, 1841713, 1841921, 1842050, 1842099, + 1842064, 1841939, 1841720, 1841399, 1840972, 1840434, 1839782, 1839016, 1838137, 1837151, 1836066, 1834893, 1833644, 1832334, + 1830978, 1829591, 1828188, 1826780, 1825379, 1823995, 1822636, 1821307, 1820015, 1818763, 1817552, 1816384, 1815261, 1814182, + 1813147, 1812155, 1811206, 1810298, 1809430, 1808601, 1807809, 1807053, 1806331, 1805643, 1804986, 1804359, 1803761, 1803191, + 1802647, 1843463, 1843847, 1844149, 1844373, 1844521, 1844591, 1844580, 1844484, 1844297, 1844012, 1843625, 1843131, 1842527, + 1841812, 1840987, 1840056, 1839026, 1837908, 1836712, 1835452, 1834142, 1832797, 1831430, 1830054, 1828681, 1827320, 1825979, + 1824665, 1823384, 1822139, 1820934, 1819769, 1818647, 1817567, 1816530, 1815535, 1814581, 1813667, 1812793, 1811957, 1811158, + 1810395, 1809665, 1808968, 1808303, 1807668, 1807061, 1806483, 1805930, 1845842, 1846237, 1846552, 1846790, 1846955, 1847045, + 1847057, 1846987, 1846829, 1846578, 1846229, 1845777, 1845218, 1844551, 1843777, 1842899, 1841923, 1840858, 1839713, 1838503, + 1837239, 1835935, 1834606, 1833263, 1831917, 1830580, 1829259, 1827961, 1826692, 1825456, 1824256, 1823096, 1821975, 1820895, + 1819856, 1818858, 1817900, 1816982, 1816102, 1815260, 1814454, 1813683, 1812946, 1812241, 1811568, 1810925, 1810310, 1809723, + 1809162, 1848171, 1848576, 1848903, 1849155, 1849336, 1849445, 1849479, 1849434, 1849304, 1849085, 1848772, 1848359, 1847843, + 1847223, 1846498, 1845671, 1844746, 1843733, 1842639, 1841476, 1840258, 1838996, 1837704, 1836395, 1835079, 1833766, 1832465, + 1831184, 1829928, 1828703, 1827511, 1826355, 1825237, 1824158, 1823118, 1822118, 1821157, 1820235, 1819350, 1818502, 1817690, + 1816912, 1816168, 1815456, 1814775, 1814124, 1813501, 1812906, 1812337, 1850450, 1850865, 1851203, 1851469, 1851665, 1851792, + 1851846, 1851824, 1851722, 1851533, 1851253, 1850878, 1850403, 1849827, 1849149, 1848371, 1847497, 1846533, 1845489, 1844374, + 1843201, 1841981, 1840728, 1839452, 1838166, 1836879, 1835600, 1834337, 1833096, 1831881, 1830698, 1829548, 1828434, 1827357, + 1826317, 1825316, 1824352, 1823427, 1822538, 1821685, 1820867, 1820083, 1819333, 1818614, 1817926, 1817267, 1816637, 1816034, + 1815457, 1852680, 1853103, 1853452, 1853731, 1853942, 1854085, 1854159, 1854160, 1854083, 1853923, 1853675, 1853336, 1852900, + 1852366, 1851733, 1851002, 1850176, 1849262, 1848266, 1847198, 1846069, 1844892, 1843676, 1842435, 1841180, 1839920, 1838664, + 1837420, 1836194, 1834992, 1833818, 1832675, 1831566, 1830492, 1829454, 1828452, 1827487, 1826558, 1825666, 1824809, 1823986, + 1823197, 1822440, 1821715, 1821020, 1820354, 1819717, 1819107, 1818523, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1.25 V (slice 5): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_5 and r_5). +pub const VSB_P5 : [4851]u32 = [ + 4294967295, 0, 59100, 35773, 32332, 33149, 35246, 37953, 40869, 43855, 46868, 49896, 52939, 55997, + 59073, 62167, 65281, 68416, 71572, 74750, 77949, 81170, 84411, 87673, 90953, 94253, 97570, 100906, + 104264, 107648, 111070, 114548, 118113, 121816, 125726, 130220, 134983, 140401, 146691, 154095, 162858, 173200, + 185274, 199141, 214750, 231945, 250492, 270110, 290509, 311414, 0, 58704, 34759, 31552, 32981, 35157, + 37821, 40699, 43647, 46620, 49606, 52605, 55620, 58651, 61701, 64771, 67862, 70975, 74111, 77269, + 80449, 83651, 86874, 90118, 93381, 96663, 99964, 103286, 106632, 110010, 113434, 116930, 120536, 124311, + 128578, 133068, 138118, 143930, 150734, 158779, 168303, 179494, 192464, 207218, 223649, 241558, 260682, 280730, + 301417, 0, 57458, 34232, 30935, 32883, 35401, 38027, 40859, 43761, 46686, 49624, 52573, 55536, + 58516, 61514, 64533, 67574, 70637, 73723, 76833, 79965, 83121, 86299, 89499, 92719, 95960, 99221, + 102502, 105806, 109138, 112509, 115938, 119457, 123113, 126981, 131432, 136157, 141540, 147798, 155174, 163916, + 174240, 186303, 200164, 215770, 232965, 251514, 271134, 291534, 0, 57392, 34846, 30892, 33021, 36100, + 38779, 41547, 44391, 47258, 50135, 53022, 55922, 58839, 61775, 64731, 67710, 70712, 73737, 76787, + 79862, 82960, 86083, 89228, 92396, 95585, 98796, 102027, 105281, 108561, 111874, 115236, 118671, 122218, + 125936, 130146, 134581, 139578, 145339, 152094, 160093, 169574, 180726, 193662, 208386, 224792, 242681, 261787, + 281820, 0, 58027, 35393, 31932, 33906, 37425, 40390, 43087, 45851, 48640, 51438, 54244, 57064, + 59899, 62754, 65630, 68528, 71451, 74399, 77372, 80371, 83396, 86446, 89521, 92619, 95741, 98886, + 102053, 105243, 108458, 111704, 114990, 118337, 121775, 125353, 129142, 133512, 138159, 143463, 149641, 156936, + 165596, 175841, 187825, 201612, 217150, 234285, 252781, 272355, 0, 59863, 38073, 35010, 36275, 39869, + 43286, 45976, 48626, 51307, 53997, 56696, 59406, 62132, 64878, 67646, 70437, 73254, 76097, 78967, + 81864, 84789, 87741, 90719, 93724, 96754, 99809, 102888, 105992, 109120, 112278, 115473, 118718, 122038, + 125472, 129077, 133169, 137487, 142365, 147999, 154623, 162485, 171822, 182829, 195620, 210206, 226484, 244256, + 263261, 0, 63637, 43021, 39657, 41073, 44386, 48074, 50933, 53439, 55967, 58508, 61056, 63617, + 66194, 68791, 71410, 74055, 76726, 79425, 82153, 84910, 87696, 90512, 93356, 96230, 99131, 102060, + 105016, 107998, 111007, 114045, 117117, 120234, 123413, 126686, 130098, 133720, 137910, 142376, 147489, 153461, + 160536, 168961, 178957, 190688, 204222, 219519, 236432, 254728, 0, 70357, 51367, 48253, 49702, 52227, + 55784, 58886, 61272, 63590, 65926, 68272, 70630, 73004, 75399, 77817, 80262, 82735, 85237, 87769, + 90333, 92928, 95555, 98214, 100904, 103625, 106377, 109158, 111968, 114808, 117679, 120583, 123528, 126528, + 129605, 132795, 136155, 139980, 144031, 148623, 153948, 160234, 167727, 176667, 187256, 199620, 213784, 229661, + 247068, 0, 81257, 64401, 61525, 62465, 64756, 67832, 70932, 73297, 75356, 77426, 79509, 81604, + 83716, 85848, 88004, 90187, 92399, 94642, 96916, 99223, 101563, 103937, 106345, 108786, 111262, 113770, + 116312, 118886, 121492, 124131, 126805, 129518, 132281, 135108, 138029, 141086, 144344, 148129, 152181, 156844, + 162320, 168846, 176667, 186012, 197058, 209898, 224516, 240790, 20603, 97576, 83268, 80622, 81319, 83322, + 85560, 88288, 90627, 92433, 94187, 95956, 97737, 99533, 101349, 103188, 105054, 106947, 108871, 110826, + 112813, 114835, 116890, 118981, 121106, 123267, 125463, 127694, 129960, 132260, 134595, 136966, 139376, 141831, + 144344, 146933, 149630, 152485, 155751, 159232, 163200, 167835, 173348, 179977, 187962, 197520, 208805, 221881, + 236705, 67923, 120175, 108557, 106125, 106518, 108163, 109736, 111880, 113984, 115607, 117031, 118463, 119907, + 121364, 122837, 124331, 125848, 127390, 128959, 130558, 132187, 133847, 135539, 137265, 139025, 140819, 142647, + 144510, 146408, 148341, 150308, 152312, 154354, 156438, 158571, 160767, 163049, 165450, 168025, 171035, 174283, + 178050, 182516, 187894, 194420, 202327, 211819, 223035, 236024, 115632, 149176, 140040, 137793, 137887, 138923, + 140359, 141816, 143494, 144943, 146088, 147202, 148325, 149458, 150604, 151764, 152943, 154142, 155363, 156608, + 157879, 159176, 160501, 161855, 163238, 164651, 166096, 167571, 169078, 170617, 172189, 173794, 175433, 177110, + 178828, 180597, 182432, 184355, 186402, 188759, 191291, 194203, 197635, 201767, 206804, 212974, 220501, 229583, + 240353, 163586, 183901, 176790, 174686, 174531, 175236, 176346, 177345, 178577, 179776, 180732, 181583, 182437, + 183297, 184163, 185040, 185929, 186832, 187751, 188687, 189643, 190619, 191616, 192635, 193677, 194743, 195834, + 196950, 198092, 199261, 200456, 201679, 202931, 204213, 205529, 206883, 208285, 209749, 211298, 212968, 214929, + 217062, 219556, 222544, 226190, 230688, 236252, 243096, 251411, 211696, 223180, 217553, 215550, 215211, 215665, + 216411, 217279, 218116, 219036, 219847, 220515, 221164, 221816, 222471, 223131, 223797, 224471, 225156, 225852, + 226561, 227283, 228019, 228771, 229540, 230325, 231128, 231949, 232790, 233650, 234530, 235432, 236354, 237300, + 238269, 239267, 240297, 241368, 242495, 243698, 245081, 246576, 248300, 250346, 252830, 255898, 259723, 264497, + 270421, 259910, 265749, 261129, 259191, 258727, 259007, 259571, 260208, 260870, 261559, 262225, 262783, 263292, + 263799, 264306, 264813, 265322, 265836, 266354, 266879, 267411, 267951, 268500, 269059, 269628, 270208, 270799, + 271403, 272020, 272649, 273292, 273950, 274622, 275310, 276015, 276737, 277481, 278251, 279055, 279904, 280859, + 281880, 283038, 284389, 286009, 287996, 290470, 293580, 297492, 308618, 310778, 306689, 304725, 304147, 304298, + 304733, 305248, 305797, 306309, 306844, 307329, 307752, 308164, 308572, 308979, 309385, 309792, 310201, 310612, + 311026, 311444, 311868, 312296, 312731, 313172, 313619, 314074, 314537, 315008, 315487, 315976, 316473, 316981, + 317499, 318029, 318572, 319130, 319707, 320311, 320950, 321673, 322450, 323336, 324376, 325630, 327175, 329108, + 331547, 364665, 361492, 355731, 352587, 351317, 351080, 351288, 351659, 352075, 352509, 352941, 353361, 353736, + 354087, 354434, 354777, 355118, 355457, 355796, 356135, 356474, 356815, 357158, 357504, 357852, 358203, 358558, + 358917, 359280, 359648, 360021, 360399, 360782, 361172, 361567, 361969, 362379, 362798, 363228, 363671, 364135, + 364643, 365179, 365775, 366455, 367253, 368215, 369398, 370878, 426995, 417263, 408133, 402736, 400115, 399110, + 398892, 399024, 399300, 399628, 399987, 400345, 400672, 401000, 401308, 401612, 401912, 402210, 402505, 402800, + 403093, 403387, 403680, 403974, 404269, 404565, 404862, 405161, 405462, 405766, 406072, 406381, 406692, 407007, + 407325, 407647, 407973, 408304, 408641, 408985, 409340, 409709, 410110, 410534, 411002, 411532, 412151, 412891, + 413795, 491277, 475527, 462701, 454683, 450343, 448266, 447401, 447149, 447199, 447390, 447650, 447947, 448237, + 448527, 448816, 449094, 449369, 449641, 449910, 450178, 450443, 450708, 450971, 451234, 451496, 451759, 452021, + 452284, 452548, 452812, 453077, 453344, 453612, 453881, 454152, 454425, 454699, 454977, 455257, 455541, 455830, + 456126, 456433, 456763, 457110, 457489, 457915, 458404, 458982, 555196, 534560, 518389, 507848, 501713, 498409, + 496732, 495955, 495669, 495650, 495772, 495973, 496212, 496465, 496722, 496982, 497238, 497493, 497746, 497997, + 498245, 498492, 498738, 498982, 499225, 499467, 499709, 499950, 500191, 500432, 500673, 500914, 501155, 501397, + 501640, 501883, 502127, 502372, 502618, 502867, 503117, 503371, 503630, 503901, 504180, 504475, 504794, 505146, + 505545, 617935, 593483, 574490, 561714, 553885, 549337, 546771, 545371, 544657, 544348, 544276, 544343, 544493, + 544688, 544905, 545135, 545373, 545612, 545851, 546089, 546326, 546562, 546796, 547029, 547261, 547491, 547720, + 547949, 548176, 548403, 548630, 548856, 549082, 549308, 549533, 549759, 549984, 550210, 550437, 550664, 550892, + 551121, 551353, 551588, 551832, 552081, 552342, 552620, 552922, 679344, 651920, 630599, 615907, 606557, 600831, + 597370, 595305, 594104, 593443, 593120, 593009, 593033, 593140, 593297, 593484, 593690, 593907, 594129, 594357, + 594583, 594810, 595036, 595261, 595485, 595708, 595930, 596151, 596370, 596589, 596807, 597025, 597241, 597458, + 597673, 597889, 598104, 598319, 598533, 598748, 598963, 599178, 599394, 599612, 599834, 600058, 600288, 600526, + 600776, 739494, 709735, 686498, 670185, 659500, 652696, 648381, 645649, 643936, 642885, 642270, 641941, 641804, + 641793, 641864, 641990, 642151, 642335, 642534, 642742, 642955, 643171, 643389, 643608, 643826, 644044, 644260, + 644476, 644691, 644905, 645118, 645330, 645542, 645752, 645962, 646172, 646381, 646589, 646797, 647005, 647212, + 647419, 647627, 647835, 648044, 648255, 648468, 648685, 648909, 798516, 766903, 742082, 724397, 712551, 704781, + 699673, 696299, 694073, 692616, 691684, 691109, 690782, 690627, 690589, 690632, 690731, 690869, 691033, 691215, + 691409, 691611, 691818, 692027, 692238, 692450, 692662, 692875, 693086, 693297, 693506, 693716, 693924, 694131, + 694338, 694544, 694750, 694955, 695159, 695362, 695566, 695769, 695971, 696174, 696377, 696580, 696785, 696991, + 697200, 856526, 823433, 797296, 778447, 765592, 756963, 751132, 747155, 744432, 742571, 741311, 740474, 739938, + 739617, 739450, 739392, 739414, 739491, 739609, 739755, 739922, 740103, 740293, 740491, 740692, 740897, 741104, + 741311, 741519, 741726, 741934, 742141, 742347, 742553, 742758, 742962, 743166, 743369, 743571, 743773, 743974, + 744174, 744375, 744575, 744774, 744974, 745174, 745374, 745576, 913604, 879337, 852105, 832264, 818534, 809144, + 802659, 798126, 794933, 792678, 791091, 789985, 789230, 788730, 788418, 788245, 788174, 788178, 788238, 788339, + 788470, 788623, 788792, 788973, 789161, 789356, 789555, 789756, 789959, 790164, 790368, 790573, 790778, 790982, + 791186, 791389, 791592, 791794, 791996, 792197, 792397, 792597, 792796, 792995, 793193, 793392, 793589, 793788, + 793986, 969776, 934609, 906471, 885783, 871293, 861232, 854159, 849117, 845485, 842856, 840952, 839579, 838600, + 837915, 837450, 837151, 836977, 836897, 836889, 836936, 837023, 837141, 837282, 837441, 837613, 837794, 837983, + 838176, 838373, 838573, 838774, 838976, 839179, 839383, 839586, 839788, 839991, 840193, 840395, 840596, 840797, + 840997, 841196, 841395, 841593, 841791, 841989, 842186, 842384, 1024995, 989199, 960328, 938921, 923773, 913121, + 905525, 900021, 895986, 893007, 890801, 889169, 887970, 887098, 886475, 886044, 885760, 885590, 885507, 885492, + 885529, 885607, 885715, 885848, 885998, 886163, 886338, 886522, 886711, 886905, 887102, 887301, 887502, 887704, + 887907, 888110, 888312, 888515, 888717, 888920, 889121, 889322, 889523, 889723, 889923, 890122, 890321, 890519, + 890717, 1079119, 1042998, 1013568, 991560, 975845, 964679, 956620, 950703, 946302, 943000, 940512, 938635, 937223, + 936168, 935390, 934826, 934430, 934165, 934003, 933922, 933904, 933936, 934008, 934111, 934237, 934383, 934543, + 934714, 934895, 935082, 935274, 935470, 935669, 935870, 936072, 936275, 936479, 936683, 936887, 937091, 937295, + 937498, 937701, 937903, 938105, 938307, 938508, 938708, 938908, 1131878, 1095805, 1066007, 1043515, 1027322, 1015713, + 1007251, 1000970, 996243, 992650, 989904, 987799, 986188, 984960, 984032, 983338, 982831, 982472, 982230, 982081, + 982007, 981992, 982025, 982096, 982197, 982321, 982465, 982624, 982795, 982975, 983162, 983355, 983552, 983752, + 983955, 984159, 984365, 984571, 984778, 984986, 985193, 985400, 985606, 985813, 986019, 986224, 986429, 986633, + 986837, 1182866, 1147308, 1117374, 1094523, 1077939, 1065959, 1057153, 1050559, 1045546, 1041696, 1038720, 1036410, 1034617, + 1033229, 1032160, 1031345, 1030732, 1030282, 1029962, 1029747, 1029618, 1029556, 1029550, 1029589, 1029664, 1029768, 1029895, + 1030041, 1030202, 1030376, 1030559, 1030749, 1030945, 1031146, 1031351, 1031558, 1031767, 1031977, 1032188, 1032400, 1032613, + 1032825, 1033037, 1033249, 1033460, 1033672, 1033882, 1034092, 1034302, 1231526, 1197055, 1167276, 1144208, 1127325, 1115045, + 1105957, 1099100, 1093845, 1089774, 1086597, 1084107, 1082152, 1080620, 1079425, 1078498, 1077788, 1077254, 1076861, 1076584, + 1076402, 1076296, 1076253, 1076261, 1076312, 1076396, 1076508, 1076642, 1076795, 1076962, 1077142, 1077331, 1077528, 1077731, + 1077938, 1078149, 1078363, 1078579, 1078796, 1079015, 1079234, 1079453, 1079672, 1079891, 1080110, 1080329, 1080547, 1080764, + 1080981, 1277244, 1244500, 1215237, 1192119, 1175030, 1162520, 1153206, 1146134, 1140678, 1136421, 1133072, 1130426, 1128330, + 1126672, 1125363, 1124336, 1123538, 1122927, 1122467, 1122133, 1121901, 1121754, 1121676, 1121656, 1121682, 1121748, 1121845, + 1121969, 1122114, 1122276, 1122453, 1122641, 1122839, 1123044, 1123256, 1123471, 1123691, 1123913, 1124137, 1124363, 1124590, + 1124817, 1125044, 1125272, 1125499, 1125726, 1125952, 1126178, 1126403, 1319460, 1289051, 1260727, 1237756, 1220557, 1207879, + 1198390, 1191144, 1185522, 1181107, 1177612, 1174830, 1172611, 1170840, 1169430, 1168312, 1167434, 1166751, 1166229, 1165840, + 1165561, 1165374, 1165262, 1165212, 1165215, 1165262, 1165344, 1165455, 1165591, 1165748, 1165921, 1166108, 1166305, 1166512, + 1166726, 1166946, 1167170, 1167398, 1167628, 1167860, 1168094, 1168328, 1168563, 1168798, 1169033, 1169268, 1169502, 1169735, + 1169968, 1357837, 1330223, 1303284, 1280685, 1263472, 1250679, 1241049, 1233658, 1227893, 1223341, 1219715, 1216811, 1214479, + 1212603, 1211098, 1209894, 1208937, 1208184, 1207600, 1207156, 1206829, 1206599, 1206450, 1206370, 1206346, 1206369, 1206433, + 1206529, 1206653, 1206799, 1206965, 1207146, 1207340, 1207545, 1207758, 1207978, 1208204, 1208434, 1208667, 1208903, 1209140, + 1209379, 1209619, 1209859, 1210099, 1210338, 1210577, 1210816, 1211054, 1392318, 1367725, 1342578, 1320600, 1303472, 1290604, + 1280856, 1273337, 1267441, 1262760, 1259011, 1255989, 1253546, 1251568, 1249967, 1248676, 1247639, 1246813, 1246163, 1245660, + 1245280, 1245003, 1244812, 1244694, 1244637, 1244632, 1244670, 1244745, 1244850, 1244981, 1245133, 1245303, 1245487, 1245684, + 1245891, 1246107, 1246328, 1246555, 1246787, 1247021, 1247258, 1247497, 1247736, 1247977, 1248218, 1248458, 1248699, 1248938, + 1249178, 1423104, 1401513, 1378463, 1357364, 1340430, 1327524, 1317674, 1310032, 1304008, 1299200, 1295327, 1292187, 1289631, + 1287547, 1285847, 1284464, 1283342, 1282438, 1281716, 1281147, 1280706, 1280374, 1280134, 1279971, 1279874, 1279833, 1279839, + 1279884, 1279963, 1280071, 1280202, 1280354, 1280523, 1280705, 1280899, 1281103, 1281315, 1281534, 1281757, 1281984, 1282215, + 1282448, 1282683, 1282919, 1283156, 1283393, 1283630, 1283866, 1284103, 1450553, 1431767, 1410971, 1390997, 1374381, 1361479, + 1351538, 1343776, 1337624, 1332687, 1328687, 1325425, 1322752, 1320558, 1318754, 1317272, 1316059, 1315070, 1314269, 1313628, + 1313120, 1312726, 1312429, 1312214, 1312070, 1311984, 1311950, 1311959, 1312005, 1312083, 1312187, 1312313, 1312459, 1312621, + 1312796, 1312983, 1313178, 1313382, 1313592, 1313807, 1314027, 1314249, 1314474, 1314701, 1314929, 1315158, 1315388, 1315617, + 1315846, 1475080, 1458801, 1440266, 1421625, 1405468, 1392624, 1382608, 1374730, 1368450, 1363382, 1359253, 1355866, 1353073, + 1350763, 1348851, 1347267, 1345958, 1344879, 1343994, 1343273, 1342692, 1342231, 1341871, 1341598, 1341399, 1341264, 1341184, + 1341151, 1341157, 1341199, 1341269, 1341365, 1341482, 1341618, 1341769, 1341933, 1342108, 1342292, 1342484, 1342682, 1342886, + 1343094, 1343305, 1343519, 1343735, 1343952, 1344170, 1344389, 1344608, 1497098, 1482999, 1466615, 1449447, 1433899, 1421181, + 1411115, 1403131, 1396725, 1391526, 1387267, 1383753, 1380838, 1378412, 1376388, 1374699, 1373290, 1372117, 1371144, 1370341, + 1369683, 1369149, 1368722, 1368386, 1368129, 1367940, 1367809, 1367728, 1367691, 1367692, 1367724, 1367785, 1367869, 1367974, + 1368097, 1368234, 1368385, 1368546, 1368716, 1368894, 1369079, 1369269, 1369463, 1369661, 1369861, 1370064, 1370268, 1370474, + 1370680, 1516982, 1504748, 1490331, 1474695, 1459900, 1447395, 1437314, 1429237, 1422712, 1417386, 1412998, 1409358, 1406321, + 1403777, 1401641, 1399846, 1398336, 1397068, 1396004, 1395117, 1394379, 1393770, 1393273, 1392871, 1392552, 1392305, 1392121, + 1391990, 1391906, 1391862, 1391854, 1391876, 1391925, 1391996, 1392088, 1392196, 1392318, 1392454, 1392600, 1392755, 1392918, + 1393087, 1393262, 1393442, 1393625, 1393811, 1394000, 1394191, 1394383, 1535036, 1524386, 1511721, 1497604, 1483683, 1471487, + 1461441, 1453292, 1446659, 1441212, 1436700, 1432937, 1429781, 1427122, 1424875, 1422974, 1421363, 1420000, 1418846, 1417873, + 1417055, 1416371, 1415802, 1415333, 1414951, 1414645, 1414405, 1414222, 1414089, 1413999, 1413948, 1413930, 1413941, 1413977, + 1414034, 1414111, 1414204, 1414312, 1414432, 1414562, 1414702, 1414850, 1415004, 1415164, 1415328, 1415497, 1415669, 1415843, + 1416020, 1551528, 1542222, 1531091, 1518422, 1505459, 1493673, 1483719, 1475529, 1468802, 1463243, 1458615, 1454734, 1451461, + 1448690, 1446335, 1444330, 1442621, 1441163, 1439921, 1438863, 1437965, 1437205, 1436564, 1436028, 1435583, 1435217, 1434920, + 1434684, 1434501, 1434365, 1434269, 1434209, 1434181, 1434180, 1434203, 1434247, 1434310, 1434388, 1434481, 1434586, 1434701, + 1434826, 1434958, 1435097, 1435242, 1435392, 1435546, 1435703, 1435864, 1566682, 1558516, 1548717, 1537388, 1525423, 1514142, + 1504346, 1496150, 1489350, 1483692, 1478953, 1474961, 1471577, 1468698, 1466239, 1464133, 1462328, 1460778, 1459448, 1458307, + 1457330, 1456495, 1455784, 1455180, 1454672, 1454246, 1453892, 1453603, 1453370, 1453186, 1453046, 1452944, 1452876, 1452837, + 1452825, 1452836, 1452867, 1452916, 1452980, 1453059, 1453149, 1453250, 1453359, 1453477, 1453602, 1453732, 1453868, 1454008, + 1454152, 1580680, 1573485, 1564835, 1554722, 1543757, 1533057, 1523490, 1515331, 1508481, 1502738, 1497900, 1493803, 1490315, + 1487333, 1484773, 1482571, 1480672, 1479034, 1477618, 1476396, 1475342, 1474433, 1473652, 1472983, 1472411, 1471926, 1471517, + 1471174, 1470891, 1470659, 1470474, 1470330, 1470222, 1470146, 1470098, 1470075, 1470074, 1470093, 1470129, 1470180, 1470245, + 1470321, 1470408, 1470504, 1470608, 1470719, 1470836, 1470958, 1471084, 1593660, 1587297, 1579641, 1570615, 1560619, 1550557, + 1541288, 1533213, 1526343, 1520532, 1515607, 1511414, 1507828, 1504748, 1502094, 1499799, 1497811, 1496087, 1494589, 1493288, + 1492159, 1491179, 1490330, 1489596, 1488963, 1488419, 1487955, 1487560, 1487227, 1486949, 1486719, 1486533, 1486385, 1486271, + 1486187, 1486130, 1486097, 1486086, 1486093, 1486117, 1486156, 1486208, 1486272, 1486346, 1486429, 1486520, 1486618, 1486722, + 1486832, 1605755, 1600109, 1593310, 1585250, 1576170, 1566776, 1557868, 1549927, 1543069, 1537210, 1532211, 1527932, 1524256, + 1521085, 1518340, 1515957, 1513884, 1512077, 1510500, 1509124, 1507922, 1506872, 1505957, 1505160, 1504467, 1503867, 1503348, + 1502901, 1502520, 1502195, 1501921, 1501693, 1501505, 1501354, 1501235, 1501144, 1501080, 1501038, 1501016, 1501013, 1501026, + 1501054, 1501094, 1501146, 1501208, 1501279, 1501358, 1501444, 1501536, 1617065, 1612038, 1605984, 1598775, 1590547, 1581830, + 1573333, 1565577, 1558766, 1552882, 1547824, 1543470, 1539711, 1536455, 1533626, 1531160, 1529005, 1527120, 1525467, 1524018, + 1522746, 1521630, 1520650, 1519792, 1519041, 1518385, 1517813, 1517316, 1516886, 1516516, 1516199, 1515930, 1515703, 1515515, + 1515360, 1515236, 1515140, 1515068, 1515018, 1514988, 1514975, 1514978, 1514995, 1515025, 1515066, 1515117, 1515177, 1515245, + 1515319, 1627681, 1623194, 1617786, 1611330, 1603881, 1595830, 1587781, 1580258, 1573530, 1567647, 1562545, 1558128, 1554295, + 1550962, 1548053, 1545509, 1543277, 1541317, 1539592, 1538072, 1536733, 1535552, 1534511, 1533594, 1532786, 1532075, 1531452, + 1530906, 1530429, 1530014, 1529655, 1529345, 1529080, 1528854, 1528665, 1528508, 1528380, 1528278, 1528200, 1528143, 1528104, + 1528083, 1528077, 1528084, 1528104, 1528135, 1528176, 1528226, 1528283, 1637678, 1633663, 1628821, 1623026, 1616285, 1608877, + 1601298, 1594049, 1587442, 1581585, 1576459, 1571990, 1568093, 1564689, 1561707, 1559089, 1556785, 1554754, 1552959, 1551373, + 1549969, 1548726, 1547625, 1546650, 1545787, 1545024, 1544351, 1543757, 1543234, 1542775, 1542374, 1542024, 1541721, 1541460, + 1541236, 1541047, 1540887, 1540756, 1540649, 1540565, 1540501, 1540455, 1540426, 1540412, 1540411, 1540422, 1540444, 1540475, + 1540516, 1647105, 1643505, 1639159, 1633949, 1627848, 1621049, 1613950, 1607008, 1600558, 1594757, 1589626, 1585120, 1581170, + 1577703, 1574654, 1571968, 1569596, 1567497, 1565638, 1563987, 1562522, 1561219, 1560061, 1559031, 1558115, 1557301, 1556579, + 1555938, 1555371, 1554870, 1554428, 1554039, 1553699, 1553403, 1553145, 1552923, 1552734, 1552573, 1552438, 1552328, 1552239, + 1552169, 1552117, 1552080, 1552059, 1552050, 1552053, 1552066, 1552089, 1656035, 1652801, 1648893, 1644199, 1638674, 1632444, + 1625823, 1619213, 1612952, 1607234, 1602119, 1597591, 1593597, 1590075, 1586967, 1584217, 1581782, 1579620, 1577698, 1575987, + 1574462, 1573102, 1571888, 1570805, 1569838, 1568975, 1568205, 1567519, 1566909, 1566366, 1565884, 1565457, 1565081, 1564750, + 1564459, 1564205, 1563985, 1563796, 1563634, 1563497, 1563383, 1563289, 1563214, 1563156, 1563113, 1563085, 1563069, 1563064, + 1563070, 1664512, 1661604, 1658081, 1653845, 1648837, 1643135, 1636981, 1630718, 1624674, 1619066, 1613989, 1609455, 1605429, + 1601861, 1598698, 1595891, 1593396, 1591175, 1589194, 1587425, 1585843, 1584429, 1583162, 1582027, 1581010, 1580100, 1579284, + 1578554, 1577901, 1577318, 1576797, 1576333, 1575921, 1575555, 1575232, 1574947, 1574698, 1574480, 1574290, 1574127, 1573988, + 1573871, 1573773, 1573694, 1573630, 1573582, 1573547, 1573525, 1573514, 1672566, 1669947, 1666768, 1662939, 1658396, 1653180, + 1647475, 1641568, 1635764, 1630291, 1625274, 1620750, 1616704, 1613099, 1609890, 1607032, 1604482, 1602205, 1600169, 1598345, + 1596710, 1595243, 1593925, 1592741, 1591677, 1590720, 1589860, 1589088, 1588394, 1587771, 1587212, 1586712, 1586265, 1585866, + 1585511, 1585196, 1584917, 1584671, 1584455, 1584266, 1584103, 1583962, 1583842, 1583741, 1583657, 1583589, 1583536, 1583496, + 1583467, 1680240, 1677880, 1675007, 1671541, 1667414, 1662645, 1657366, 1651816, 1646269, 1640955, 1636018, 1631521, 1627468, + 1623837, 1620588, 1617684, 1615085, 1612757, 1610668, 1608793, 1607107, 1605590, 1604224, 1602992, 1601882, 1600881, 1599978, + 1599164, 1598430, 1597769, 1597174, 1596638, 1596157, 1595726, 1595339, 1594994, 1594686, 1594412, 1594170, 1593956, 1593768, + 1593604, 1593462, 1593340, 1593236, 1593149, 1593077, 1593019, 1592974, 1687555, 1685428, 1682829, 1679687, 1675936, 1671575, + 1666699, 1661500, 1656221, 1651085, 1646249, 1641796, 1637751, 1634103, 1630824, 1627880, 1625236, 1622861, 1620725, 1618801, + 1617067, 1615502, 1614090, 1612813, 1611659, 1610615, 1609671, 1608817, 1608045, 1607346, 1606715, 1606145, 1605631, 1605168, + 1604751, 1604376, 1604040, 1603740, 1603472, 1603233, 1603021, 1602835, 1602671, 1602528, 1602404, 1602297, 1602207, 1602132, + 1602069, 1694558, 1692641, 1690288, 1687437, 1684023, 1680034, 1675534, 1670677, 1665672, 1660729, 1656012, 1651620, 1647595, + 1643941, 1640639, 1637662, 1634979, 1632561, 1630380, 1628410, 1626631, 1625021, 1623564, 1622244, 1621047, 1619962, 1618978, + 1618085, 1617275, 1616541, 1615875, 1615272, 1614725, 1614231, 1613784, 1613380, 1613017, 1612689, 1612395, 1612132, 1611897, + 1611688, 1611502, 1611339, 1611195, 1611069, 1610961, 1610868, 1610789, 1701257, 1699529, 1697398, 1694808, 1691699, 1688049, + 1683900, 1679372, 1674643, 1669905, 1665324, 1661009, 1657018, 1653368, 1650052, 1647049, 1644332, 1641876, 1639654, 1637642, + 1635820, 1634167, 1632668, 1631307, 1630069, 1628945, 1627922, 1626992, 1626146, 1625377, 1624677, 1624041, 1623463, 1622938, + 1622462, 1622030, 1621640, 1621286, 1620968, 1620680, 1620422, 1620191, 1619984, 1619800, 1619636, 1619492, 1619365, 1619255, + 1619159, 1707686, 1706128, 1704198, 1701844, 1699010, 1695669, 1691845, 1687631, 1683174, 1678650, 1674217, 1669994, 1666051, + 1662417, 1659095, 1656072, 1653328, 1650837, 1648578, 1646528, 1644665, 1642973, 1641433, 1640032, 1638756, 1637594, 1636534, + 1635568, 1634687, 1633883, 1633151, 1632483, 1631874, 1631320, 1630815, 1630356, 1629938, 1629559, 1629216, 1628905, 1628624, + 1628371, 1628143, 1627938, 1627755, 1627592, 1627448, 1627320, 1627208, 1713856, 1712454, 1710706, 1708565, 1705980, 1702920, + 1699397, 1695480, 1691291, 1686985, 1682712, 1678594, 1674711, 1671105, 1667787, 1664752, 1661985, 1659465, 1657173, 1655087, + 1653187, 1651457, 1649880, 1648441, 1647128, 1645929, 1644833, 1643832, 1642918, 1642081, 1641317, 1640618, 1639979, 1639396, + 1638863, 1638377, 1637934, 1637530, 1637162, 1636828, 1636525, 1636250, 1636001, 1635777, 1635574, 1635393, 1635231, 1635086, + 1634958, 1719790, 1718530, 1716946, 1714999, 1712640, 1709836, 1706591, 1702954, 1699025, 1694938, 1690833, 1686832, 1683022, + 1679453, 1676148, 1673109, 1670325, 1667782, 1665460, 1663341, 1661408, 1659642, 1658029, 1656555, 1655206, 1653972, 1652843, + 1651808, 1650861, 1649993, 1649197, 1648468, 1647801, 1647189, 1646629, 1646117, 1645648, 1645219, 1644828, 1644471, 1644146, + 1643849, 1643580, 1643336, 1643115, 1642915, 1642735, 1642574, 1642429, 1725497, 1724366, 1722933, 1721162, 1719008, 1716439, + 1713449, 1710076, 1706397, 1702528, 1698598, 1694724, 1690997, 1687477, 1684194, 1681158, 1678364, 1675801, 1673455, 1671308, + 1669343, 1667544, 1665898, 1664390, 1663008, 1661741, 1660578, 1659512, 1658533, 1657634, 1656809, 1656051, 1655355, 1654716, + 1654129, 1653591, 1653098, 1652645, 1652231, 1651851, 1651504, 1651187, 1650898, 1650634, 1650394, 1650177, 1649980, 1649801, + 1649641, 1731007, 1729995, 1728699, 1727087, 1725120, 1722764, 1720011, 1716883, 1713443, 1709789, 1706036, 1702297, 1698664, + 1695202, 1691950, 1688924, 1686126, 1683550, 1681182, 1679010, 1677016, 1675188, 1673510, 1671970, 1670556, 1669257, 1668063, + 1666966, 1665956, 1665027, 1664173, 1663387, 1662663, 1661998, 1661385, 1660822, 1660304, 1659828, 1659390, 1658989, 1658620, + 1658283, 1657973, 1657691, 1657432, 1657197, 1656982, 1656788, 1656611, 1736307, 1735403, 1734233, 1732768, 1730971, 1728812, + 1726276, 1723378, 1720166, 1716722, 1713148, 1709549, 1706019, 1702625, 1699413, 1696405, 1693611, 1691026, 1688643, 1686449, + 1684430, 1682575, 1680868, 1679299, 1677855, 1676526, 1675302, 1674175, 1673136, 1672179, 1671297, 1670483, 1669733, 1669042, + 1668404, 1667816, 1667275, 1666776, 1666316, 1665893, 1665504, 1665146, 1664818, 1664516, 1664240, 1663987, 1663755, 1663544, + 1663352, 1741436, 1740632, 1739576, 1738245, 1736604, 1734624, 1732288, 1729604, 1726607, 1723366, 1719971, 1716517, 1713096, + 1709779, 1706615, 1703633, 1700847, 1698260, 1695865, 1693653, 1691613, 1689732, 1687999, 1686402, 1684929, 1683572, 1682319, + 1681164, 1680097, 1679112, 1678203, 1677363, 1676587, 1675870, 1675208, 1674596, 1674032, 1673510, 1673029, 1672584, 1672175, + 1671797, 1671449, 1671129, 1670835, 1670564, 1670316, 1670089, 1669881, 1746390, 1745677, 1744727, 1743518, 1742020, 1740205, + 1738053, 1735568, 1732775, 1729730, 1726511, 1723205, 1719899, 1716666, 1713557, 1710609, 1707839, 1705254, 1702852, 1700626, + 1698567, 1696665, 1694908, 1693285, 1691786, 1690401, 1689122, 1687939, 1686846, 1685835, 1684899, 1684033, 1683233, 1682491, + 1681805, 1681170, 1680583, 1680039, 1679537, 1679072, 1678642, 1678245, 1677878, 1677540, 1677228, 1676940, 1676676, 1676433, + 1676209, 1751173, 1750545, 1749692, 1748597, 1747230, 1745566, 1743585, 1741284, 1738683, 1735826, 1732780, 1729623, 1726438, + 1723294, 1720249, 1717341, 1714594, 1712017, 1709612, 1707377, 1705303, 1703382, 1701603, 1699957, 1698434, 1697024, 1695719, + 1694511, 1693392, 1692355, 1691395, 1690505, 1689679, 1688915, 1688205, 1687548, 1686939, 1686374, 1685850, 1685365, 1684916, + 1684500, 1684115, 1683759, 1683429, 1683125, 1682844, 1682585, 1682347, 1755815, 1755264, 1754501, 1753509, 1752263, 1750737, + 1748913, 1746784, 1744364, 1741686, 1738808, 1735800, 1732737, 1729689, 1726714, 1723853, 1721133, 1718569, 1716167, 1713926, + 1711841, 1709903, 1708105, 1706438, 1704892, 1703458, 1702129, 1700897, 1699753, 1698692, 1697707, 1696793, 1695945, 1695157, + 1694425, 1693746, 1693115, 1692529, 1691985, 1691481, 1691012, 1690577, 1690174, 1689800, 1689454, 1689133, 1688836, 1688562, + 1688308, 1760307, 1759829, 1759148, 1758252, 1757117, 1755719, 1754040, 1752071, 1749819, 1747312, 1744597, 1741736, 1738798, + 1735851, 1732950, 1730142, 1727457, 1724912, 1722518, 1720275, 1718181, 1716231, 1714416, 1712730, 1711163, 1709708, 1708356, + 1707100, 1705933, 1704849, 1703841, 1702904, 1702033, 1701223, 1700470, 1699769, 1699117, 1698511, 1697948, 1697423, 1696936, + 1696483, 1696062, 1695671, 1695308, 1694971, 1694658, 1694368, 1694100, 1764667, 1764255, 1763651, 1762843, 1761810, 1760530, + 1758985, 1757164, 1755071, 1752725, 1750168, 1747451, 1744639, 1741795, 1738975, 1736225, 1733579, 1731059, 1728676, 1726436, + 1724337, 1722377, 1720548, 1718845, 1717259, 1715784, 1714411, 1713133, 1711945, 1710838, 1709808, 1708849, 1707956, 1707125, + 1706350, 1705629, 1704957, 1704331, 1703748, 1703205, 1702699, 1702228, 1701789, 1701381, 1701002, 1700649, 1700320, 1700015, + 1699732, 1768897, 1768547, 1768014, 1767287, 1766349, 1765178, 1763757, 1762073, 1760128, 1757936, 1755529, 1752954, 1750268, + 1747529, 1744793, 1742107, 1739506, 1737015, 1734649, 1732415, 1730315, 1728348, 1726508, 1724791, 1723188, 1721694, 1720302, + 1719004, 1717794, 1716666, 1715615, 1714635, 1713721, 1712869, 1712074, 1711333, 1710641, 1709996, 1709394, 1708832, 1708308, + 1707820, 1707364, 1706939, 1706543, 1706175, 1705831, 1705511, 1705214, 1773002, 1772709, 1772242, 1771591, 1770740, 1769670, + 1768363, 1766808, 1765001, 1762954, 1760692, 1758254, 1755692, 1753061, 1750413, 1747794, 1745243, 1742787, 1740441, 1738218, + 1736121, 1734150, 1732302, 1730572, 1728955, 1727444, 1726033, 1724717, 1723487, 1722340, 1721269, 1720268, 1719335, 1718462, + 1717648, 1716887, 1716176, 1715512, 1714892, 1714312, 1713771, 1713265, 1712792, 1712351, 1711940, 1711555, 1711197, 1710862, + 1710551, 1776997, 1776757, 1776350, 1775769, 1774999, 1774022, 1772822, 1771385, 1769708, 1767797, 1765673, 1763369, 1760930, + 1758406, 1755848, 1753301, 1750804, 1748386, 1746066, 1743857, 1741766, 1739794, 1737940, 1736200, 1734571, 1733045, 1731618, + 1730284, 1729036, 1727870, 1726779, 1725760, 1724806, 1723915, 1723081, 1722302, 1721572, 1720890, 1720251, 1719654, 1719096, + 1718573, 1718084, 1717627, 1717200, 1716800, 1716427, 1716078, 1715752, 1780871, 1780681, 1780331, 1779815, 1779120, 1778230, + 1777128, 1775802, 1774247, 1772464, 1770472, 1768296, 1765978, 1763562, 1761095, 1758624, 1756185, 1753810, 1751520, 1749330, + 1747248, 1745279, 1743422, 1741675, 1740035, 1738496, 1737054, 1735704, 1734439, 1733255, 1732147, 1731109, 1730138, 1729228, + 1728376, 1727578, 1726831, 1726131, 1725475, 1724861, 1724286, 1723747, 1723242, 1722769, 1722327, 1721912, 1721525, 1721162, + 1720822, 1784641, 1784496, 1784199, 1783744, 1783119, 1782309, 1781299, 1780077, 1778634, 1776973, 1775105, 1773054, 1770853, + 1768544, 1766170, 1763776, 1761399, 1759071, 1756814, 1754647, 1752578, 1750615, 1748757, 1747006, 1745357, 1743808, 1742353, + 1740988, 1739708, 1738507, 1737382, 1736327, 1735338, 1734410, 1733541, 1732726, 1731961, 1731244, 1730572, 1729941, 1729349, + 1728795, 1728274, 1727786, 1727329, 1726900, 1726498, 1726121, 1725768, 1788322, 1788220, 1787972, 1787572, 1787012, 1786277, + 1785352, 1784225, 1782888, 1781341, 1779591, 1777658, 1775572, 1773368, 1771088, 1768773, 1766460, 1764182, 1761963, 1759821, + 1757769, 1755814, 1753959, 1752205, 1750550, 1748991, 1747525, 1746147, 1744852, 1743636, 1742495, 1741423, 1740417, 1739473, + 1738586, 1737754, 1736973, 1736239, 1735550, 1734903, 1734296, 1733725, 1733190, 1732687, 1732215, 1731771, 1731355, 1730965, + 1730598, 1791888, 1791826, 1791624, 1791278, 1790778, 1790112, 1789267, 1788230, 1786993, 1785552, 1783915, 1782096, 1780120, + 1778021, 1775834, 1773600, 1771355, 1769130, 1766951, 1764839, 1762807, 1760864, 1759014, 1757261, 1755602, 1754036, 1752560, + 1751171, 1749863, 1748633, 1747477, 1746390, 1745369, 1744408, 1743506, 1742658, 1741860, 1741111, 1740406, 1739744, 1739121, + 1738535, 1737985, 1737468, 1736981, 1736524, 1736094, 1735690, 1735311, 1795385, 1795360, 1795200, 1794902, 1794458, 1793857, + 1793085, 1792132, 1790987, 1789647, 1788116, 1786405, 1784536, 1782538, 1780444, 1778291, 1776114, 1773945, 1771810, 1769730, + 1767721, 1765792, 1763951, 1762200, 1760539, 1758968, 1757484, 1756084, 1754764, 1753522, 1752352, 1751250, 1750213, 1749238, + 1748320, 1747456, 1746643, 1745878, 1745158, 1744480, 1743842, 1743242, 1742677, 1742145, 1741645, 1741174, 1740730, 1740313, + 1739921, 1798784, 1798794, 1798674, 1798422, 1798030, 1797489, 1796787, 1795911, 1794853, 1793607, 1792176, 1790569, 1788803, + 1786904, 1784902, 1782831, 1780724, 1778613, 1776525, 1774481, 1772497, 1770586, 1768756, 1767009, 1765349, 1763775, 1762284, + 1760876, 1759546, 1758292, 1757109, 1755994, 1754943, 1753953, 1753021, 1752142, 1751314, 1750534, 1749799, 1749107, 1748455, + 1747840, 1747261, 1746715, 1746201, 1745716, 1745260, 1744830, 1744425, 1802103, 1802145, 1802062, 1801852, 1801510, 1801025, + 1800387, 1799583, 1798606, 1797450, 1796114, 1794605, 1792938, 1791135, 1789223, 1787234, 1785198, 1783147, 1781108, 1779102, + 1777147, 1775257, 1773440, 1771701, 1770043, 1768467, 1766972, 1765557, 1764218, 1762954, 1761759, 1760632, 1759568, 1758564, + 1757618, 1756725, 1755883, 1755088, 1754339, 1753632, 1752966, 1752337, 1751744, 1751185, 1750658, 1750160, 1749691, 1749248, + 1748831, 1805327, 1805400, 1805352, 1805182, 1804886, 1804454, 1803875, 1803141, 1802240, 1801167, 1799921, 1798506, 1796934, + 1795225, 1793402, 1791493, 1789530, 1787541, 1785553, 1783588, 1781665, 1779798, 1777997, 1776268, 1774615, 1773040, 1771543, + 1770122, 1768776, 1767503, 1766298, 1765159, 1764083, 1763067, 1762107, 1761201, 1760346, 1759538, 1758775, 1758055, 1757375, + 1756733, 1756127, 1755554, 1755014, 1754504, 1754022, 1753567, 1753138, 1808488, 1808589, 1808574, 1808441, 1808187, 1807804, + 1807282, 1806611, 1805782, 1804787, 1803626, 1802300, 1800819, 1799199, 1797463, 1795635, 1793744, 1791818, 1789882, 1787961, + 1786072, 1784230, 1782447, 1780730, 1779084, 1777512, 1776014, 1774589, 1773238, 1771956, 1770742, 1769593, 1768506, 1767477, + 1766505, 1765586, 1764718, 1763897, 1763121, 1762387, 1761694, 1761039, 1760420, 1759835, 1759282, 1758759, 1758265, 1757798, + 1757357, 1811571, 1811700, 1811715, 1811617, 1811403, 1811066, 1810597, 1809985, 1809223, 1808302, 1807220, 1805979, 1804585, + 1803053, 1801400, 1799652, 1797833, 1795970, 1794089, 1792213, 1790360, 1788546, 1786784, 1785081, 1783445, 1781877, 1780380, + 1778953, 1777597, 1776309, 1775087, 1773928, 1772831, 1771792, 1770808, 1769877, 1768996, 1768162, 1767374, 1766628, 1765922, + 1765254, 1764622, 1764025, 1763459, 1762924, 1762418, 1761940, 1761487, 1814595, 1814748, 1814791, 1814726, 1814550, 1814256, + 1813835, 1813279, 1812579, 1811728, 1810721, 1809560, 1808249, 1806800, 1805230, 1803559, 1801811, 1800013, 1798187, 1796357, + 1794542, 1792759, 1791019, 1789333, 1787707, 1786146, 1784651, 1783224, 1781865, 1780571, 1779342, 1778175, 1777068, 1776019, + 1775024, 1774082, 1773189, 1772343, 1771543, 1770784, 1770066, 1769386, 1768742, 1768132, 1767555, 1767008, 1766490, 1766000, + 1765536, 1817544, 1817720, 1817790, 1817756, 1817615, 1817361, 1816986, 1816483, 1815841, 1815055, 1814120, 1813034, 1811803, + 1810434, 1808943, 1807349, 1805672, 1803938, 1802168, 1800387, 1798612, 1796860, 1795146, 1793478, 1791866, 1790313, 1788822, + 1787396, 1786035, 1784737, 1783502, 1782328, 1781213, 1780154, 1779150, 1778197, 1777293, 1776436, 1775624, 1774854, 1774124, + 1773432, 1772776, 1772155, 1771566, 1771007, 1770478, 1769977, 1769501, 1820434, 1820632, 1820728, 1820722, 1820614, 1820397, + 1820066, 1819611, 1819025, 1818300, 1817431, 1816418, 1815262, 1813970, 1812556, 1811036, 1809429, 1807759, 1806046, 1804314, + 1802580, 1800863, 1799175, 1797528, 1795930, 1794387, 1792903, 1791480, 1790118, 1788818, 1787578, 1786398, 1785275, 1784208, + 1783194, 1782231, 1781317, 1780449, 1779626, 1778845, 1778103, 1777400, 1776733, 1776100, 1775500, 1774930, 1774390, 1773877, + 1773391, 1823251, 1823470, 1823589, 1823610, 1823533, 1823352, 1823062, 1822653, 1822119, 1821452, 1820647, 1819701, 1818617, + 1817400, 1816060, 1814612, 1813075, 1811468, 1809813, 1808131, 1806440, 1804758, 1803099, 1801475, 1799894, 1798363, 1796887, + 1795468, 1794107, 1792806, 1791563, 1790378, 1789249, 1788174, 1787152, 1786180, 1785256, 1784378, 1783544, 1782752, 1782000, + 1781286, 1780608, 1779964, 1779353, 1778773, 1778222, 1777698, 1777202, 1826012, 1826250, 1826391, 1826438, 1826390, 1826242, + 1825990, 1825624, 1825139, 1824526, 1823781, 1822900, 1821884, 1820738, 1819470, 1818092, 1816622, 1815079, 1813481, 1811850, + 1810204, 1808559, 1806931, 1805330, 1803768, 1802251, 1800784, 1799371, 1798013, 1796711, 1795466, 1794277, 1793143, 1792061, + 1791031, 1790051, 1789118, 1788231, 1787388, 1786586, 1785823, 1785099, 1784410, 1783756, 1783134, 1782543, 1781981, 1781448, + 1780941, 1828717, 1828973, 1829135, 1829206, 1829185, 1829069, 1828852, 1828527, 1828088, 1827526, 1826837, 1826018, 1825067, + 1823988, 1822789, 1821480, 1820076, 1818595, 1817055, 1815475, 1813873, 1812267, 1810670, 1809096, 1807554, 1806052, 1804596, + 1803190, 1801836, 1800536, 1799290, 1798098, 1796959, 1795872, 1794836, 1793848, 1792907, 1792011, 1791158, 1790346, 1789574, + 1788839, 1788141, 1787476, 1786844, 1786243, 1785671, 1785127, 1784610, 1831368, 1831641, 1831822, 1831915, 1831920, 1831833, + 1831650, 1831363, 1830967, 1830454, 1829818, 1829056, 1828167, 1827153, 1826020, 1824777, 1823438, 1822018, 1820535, 1819007, + 1817451, 1815884, 1814321, 1812774, 1811254, 1809769, 1808326, 1806928, 1805580, 1804282, 1803036, 1801843, 1800700, 1799608, + 1798566, 1797571, 1796622, 1795718, 1794856, 1794036, 1793254, 1792510, 1791802, 1791127, 1790485, 1789874, 1789292, 1788739, + 1788212, 1833964, 1834253, 1834453, 1834567, 1834595, 1834536, 1834385, 1834134, 1833779, 1833311, 1832725, 1832018, 1831188, + 1830236, 1829166, 1827987, 1826711, 1825352, 1823925, 1822448, 1820939, 1819412, 1817883, 1816365, 1814869, 1813402, 1811973, + 1810586, 1809244, 1807950, 1806706, 1805511, 1804367, 1803271, 1802223, 1801222, 1800267, 1799355, 1798485, 1797656, 1796866, + 1796112, 1795395, 1794711, 1794059, 1793439, 1792848, 1792284, 1791748, 1836507, 1836810, 1837027, 1837161, 1837213, 1837180, + 1837058, 1836842, 1836524, 1836099, 1835561, 1834906, 1834132, 1833239, 1832230, 1831113, 1829898, 1828598, 1827227, 1825802, + 1824339, 1822853, 1821360, 1819872, 1818400, 1816954, 1815540, 1814164, 1812831, 1811542, 1810301, 1809106, 1807960, 1806862, + 1805810, 1804803, 1803842, 1802923, 1802046, 1801209, 1800410, 1799648, 1798922, 1798229, 1797568, 1796938, 1796338, 1795766, + 1795220, 1838996, 1839314, 1839547, 1839700, 1839773, 1839765, 1839671, 1839487, 1839205, 1838821, 1838328, 1837722, 1837001, + 1836164, 1835214, 1834157, 1833001, 1831758, 1830443, 1829069, 1827653, 1826209, 1824753, 1823296, 1821850, 1820425, 1819028, + 1817665, 1816341, 1815059, 1813821, 1812629, 1811482, 1810381, 1809326, 1808315, 1807348, 1806423, 1805539, 1804695, 1803889, + 1803119, 1802384, 1801682, 1801013, 1800374, 1799765, 1799184, 1798629, 1841451, 1841781, 1842030, 1842200, 1842293, 1842308, + 1842241, 1842086, 1841839, 1841492, 1841042, 1840483, 1839812, 1839028, 1838134, 1837134, 1836035, 1834849, 1833588, 1832265, + 1830895, 1829493, 1828074, 1826649, 1825230, 1823827, 1822449, 1821100, 1819786, 1818512, 1817279, 1816089, 1814943, 1813841, + 1812783, 1811768, 1810796, 1809866, 1808975, 1808124, 1807310, 1806532, 1805789, 1805080, 1804402, 1803755, 1803137, 1802547, + 1801984, 1843853, 1844196, 1844459, 1844646, 1844758, 1844794, 1844752, 1844626, 1844410, 1844100, 1843690, 1843175, 1842551, + 1841819, 1840978, 1840033, 1838991, 1837859, 1836651, 1835378, 1834055, 1832696, 1831314, 1829922, 1828531, 1827152, 1825793, + 1824459, 1823158, 1821892, 1820665, 1819478, 1818334, 1817232, 1816172, 1815154, 1814178, 1813243, 1812347, 1811489, 1810668, + 1809883, 1809133, 1808415, 1807730, 1807074, 1806448, 1805850, 1805278, 1846204, 1846559, 1846835, 1847037, 1847167, 1847225, + 1847206, 1847107, 1846922, 1846645, 1846273, 1845800, 1845222, 1844538, 1843749, 1842857, 1841868, 1840790, 1839634, 1838411, + 1837135, 1835818, 1834474, 1833116, 1831755, 1830400, 1829061, 1827745, 1826456, 1825200, 1823980, 1822799, 1821657, 1820555, + 1819495, 1818475, 1817496, 1816556, 1815655, 1814792, 1813965, 1813173, 1812416, 1811691, 1810997, 1810334, 1809700, 1809094, + 1808515, 1848502, 1848868, 1849158, 1849375, 1849522, 1849599, 1849603, 1849529, 1849373, 1849129, 1848793, 1848359, 1847825, + 1847188, 1846448, 1845607, 1844670, 1843645, 1842539, 1841365, 1840135, 1838861, 1837556, 1836233, 1834901, 1833573, 1832255, + 1830957, 1829682, 1828438, 1827226, 1826050, 1824912, 1823812, 1822752, 1821731, 1820749, 1819806, 1818901, 1818033, 1817200, + 1816402, 1815638, 1814907, 1814206, 1813536, 1812894, 1812281, 1811693, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// PMOS log-domain current table, corner mos_tt, IHP-Open-PDK 21133f21, L 0.45 um, 27 C, at the source-to-bulk voltage Vsb = 1.5 V (slice 6): the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (1.164 pA), then the 97 rv words; the format of TT_LG_P (deck psp103_idpa_vsb_tt.cir, blocks lam_p_6 and r_6). +pub const VSB_P6 : [4851]u32 = [ + 4294967295, 0, 74815, 50744, 46622, 46948, 48635, 50943, 53472, 56083, 58732, 61406, 64103, 66823, + 69569, 72341, 75141, 77968, 80824, 83709, 86623, 89564, 92533, 95529, 98552, 101599, 104672, 107771, + 110898, 114059, 117266, 120539, 123910, 127432, 131387, 135542, 140203, 145558, 151835, 159284, 168156, 178668, + 190966, 205094, 220983, 238457, 257263, 277109, 297697, 318752, 0, 74104, 49548, 45648, 46514, 48277, + 50553, 53056, 55639, 58258, 60900, 63564, 66250, 68961, 71698, 74463, 77255, 80077, 82927, 85806, + 88714, 91651, 94615, 97606, 100623, 103666, 106735, 109831, 112958, 116125, 119346, 122649, 126074, 129685, + 133813, 138190, 143163, 148943, 155771, 163901, 173572, 184971, 198194, 213230, 229950, 248136, 267510, 287771, + 308632, 0, 73437, 48540, 44607, 45947, 48021, 50277, 52750, 55304, 57892, 60501, 63130, 65781, + 68456, 71156, 73883, 76639, 79424, 82237, 85081, 87953, 90855, 93785, 96743, 99728, 102739, 105776, + 108840, 111933, 115061, 118236, 121478, 124820, 128313, 132242, 136374, 141014, 146353, 152618, 160061, 168933, + 179452, 191762, 205907, 221815, 239308, 258133, 277995, 298597, 0, 72924, 48142, 43716, 45262, 47856, + 50180, 52616, 55139, 57693, 60267, 62859, 65471, 68107, 70767, 73455, 76170, 78915, 81689, 84493, + 87327, 90190, 93083, 96004, 98953, 101929, 104932, 107961, 111019, 114109, 117239, 120425, 123694, 127086, + 130666, 134764, 139114, 144064, 149824, 156637, 164757, 174424, 185824, 199053, 214098, 230830, 249028, 268413, + 288685, 0, 71840, 47988, 43203, 44696, 47737, 50354, 52761, 55244, 57761, 60295, 62845, 65414, + 68006, 70621, 73264, 75934, 78633, 81362, 84122, 86912, 89732, 92582, 95461, 98369, 101305, 104269, + 107260, 110278, 113327, 116411, 119544, 122745, 126047, 129502, 133393, 137489, 142096, 147404, 153642, 161061, + 169914, 180417, 192717, 206855, 222761, 240254, 259079, 278942, 0, 71673, 48316, 43597, 44586, 47799, + 50899, 53355, 55787, 58257, 60744, 63244, 65763, 68302, 70864, 73453, 76070, 78716, 81392, 84098, + 86836, 89604, 92403, 95233, 98092, 100980, 103897, 106841, 109813, 112815, 115850, 118926, 122060, 125278, + 128620, 132151, 136200, 140503, 145406, 151121, 157891, 165969, 175598, 186962, 200160, 215177, 231886, 250064, + 269433, 0, 72122, 48708, 44740, 45344, 48463, 51951, 54661, 57040, 59447, 61873, 64311, 66765, + 69238, 71735, 74257, 76807, 79386, 81996, 84636, 87308, 90012, 92747, 95513, 98311, 101138, 103995, + 106881, 109795, 112738, 115714, 118727, 121789, 124921, 128155, 131542, 135364, 139392, 143931, 149169, 155335, + 162682, 171460, 181890, 194118, 208188, 224031, 241468, 260244, 0, 73598, 50846, 47164, 47767, 50348, + 53929, 57042, 59428, 61749, 64092, 66447, 68816, 71203, 73613, 76048, 78510, 81002, 83524, 86078, + 88664, 91282, 93933, 96617, 99332, 102078, 104856, 107664, 110501, 113368, 116267, 119201, 122178, 125215, + 128335, 131581, 135016, 138962, 143163, 147960, 153563, 160213, 168166, 177663, 188893, 201957, 216846, 233436, + 251508, 0, 76717, 54962, 51059, 52122, 54267, 57653, 61029, 63582, 65795, 68022, 70263, 72516, + 74787, 77080, 79397, 81741, 84115, 86520, 88956, 91425, 93928, 96464, 99034, 101636, 104272, 106941, + 109641, 112372, 115135, 117929, 120757, 123626, 126545, 129536, 132629, 135875, 139545, 143422, 147800, 152867, + 158847, 165991, 174552, 184752, 196743, 210580, 226199, 243430, 0, 82367, 62074, 58381, 59447, 61476, + 64244, 67552, 70351, 72484, 74550, 76634, 78731, 80843, 82976, 85134, 87318, 89531, 91776, 94052, + 96362, 98706, 101084, 103497, 105945, 108427, 110943, 113493, 116076, 118691, 121340, 124023, 126745, 129512, + 132340, 135253, 138290, 141511, 145223, 149186, 153726, 159047, 165386, 172997, 182123, 192962, 205627, 220123, + 236341, 0, 91702, 73426, 69987, 71011, 72774, 75011, 77953, 80797, 82947, 84811, 86687, 88577, + 90481, 92405, 94352, 96324, 98326, 100358, 102422, 104519, 106650, 108816, 111018, 113255, 115528, 117836, + 120179, 122558, 124970, 127417, 129900, 132420, 134984, 137600, 140288, 143077, 146013, 149343, 152875, 156880, + 161534, 167055, 173686, 181680, 191266, 202612, 215795, 230778, 17447, 106005, 90254, 87115, 87574, 89424, + 91387, 93632, 96195, 98364, 100033, 101652, 103287, 104936, 106601, 108288, 109999, 111737, 113504, 115301, + 117130, 118993, 120889, 122821, 124787, 126790, 128828, 130902, 133011, 135156, 137337, 139554, 141808, 144103, + 146447, 148851, 151336, 153939, 156710, 159918, 163361, 167327, 172004, 177615, 184407, 192624, 202481, 214120, + 227586, 65009, 126349, 113396, 110577, 110794, 112320, 113912, 115593, 117666, 119661, 121193, 122535, 123886, + 125250, 126629, 128024, 129440, 130880, 132345, 133838, 135359, 136911, 138494, 140109, 141758, 143440, 145156, + 146906, 148691, 150511, 152366, 154256, 156183, 158148, 160157, 162216, 164343, 166560, 168905, 171578, 174432, + 177687, 181498, 186057, 191588, 198334, 206532, 216381, 228006, 112978, 153179, 142938, 140416, 140399, 141384, + 142799, 144154, 145612, 147239, 148634, 149736, 150807, 151890, 152983, 154089, 155210, 156351, 157511, 158694, + 159901, 161132, 162391, 163676, 164990, 166333, 167707, 169110, 170545, 172011, 173508, 175038, 176601, 178199, + 179834, 181511, 183242, 185040, 186933, 188960, 191317, 193865, 196823, 200341, 204609, 209845, 216283, 224151, + 233639, 161206, 186110, 178174, 175892, 175679, 176357, 177454, 178495, 179532, 180751, 181925, 182859, 183692, + 184529, 185373, 186224, 187086, 187961, 188850, 189755, 190678, 191620, 192582, 193564, 194569, 195597, 196649, + 197724, 198825, 199952, 201105, 202284, 203491, 204726, 205992, 207292, 208631, 210019, 211473, 213018, 214784, + 216681, 218858, 221425, 224525, 228336, 233060, 238919, 246131, 210023, 224341, 218039, 215867, 215472, 215902, + 216647, 217527, 218339, 219181, 220094, 220895, 221557, 222203, 222852, 223504, 224162, 224827, 225501, 226185, + 226881, 227589, 228311, 229048, 229800, 230568, 231353, 232156, 232977, 233817, 234676, 235556, 236456, 237377, + 238322, 239290, 240287, 241318, 242392, 243524, 244738, 246148, 247678, 249460, 251590, 254196, 257434, 261487, + 266557, 266239, 270609, 263450, 260189, 259049, 259000, 259416, 260049, 260660, 261268, 261952, 262615, 263172, + 263682, 264192, 264702, 265214, 265728, 266248, 266772, 267303, 267842, 268389, 268945, 269510, 270086, 270673, + 271272, 271882, 272506, 273142, 273792, 274457, 275136, 275830, 276542, 277271, 278023, 278802, 279616, 280478, + 281455, 282505, 283703, 285113, 286816, 288918, 291550, 294870, 328775, 323645, 313665, 308209, 305680, 304802, + 304721, 304995, 305440, 305897, 306387, 306912, 307394, 307819, 308235, 308650, 309064, 309478, 309894, 310311, + 310732, 311156, 311584, 312017, 312456, 312900, 313352, 313810, 314275, 314748, 315229, 315719, 316218, 316726, + 317244, 317773, 318313, 318867, 319436, 320026, 320643, 321300, 322046, 322852, 323777, 324870, 326198, 327843, + 329910, 393285, 380322, 366995, 358953, 354678, 352688, 351914, 351756, 351900, 352202, 352541, 352940, 353345, + 353715, 354069, 354421, 354772, 355121, 355470, 355819, 356169, 356520, 356872, 357226, 357583, 357943, 358306, + 358673, 359044, 359419, 359799, 360184, 360574, 360970, 361371, 361779, 362193, 362615, 363047, 363489, 363947, + 364425, 364952, 365510, 366133, 366848, 367692, 368715, 369981, 457449, 438499, 422042, 411496, 405410, 402166, + 400551, 399837, 399616, 399660, 399856, 400117, 400430, 400747, 401053, 401360, 401668, 401976, 402283, 402589, + 402894, 403199, 403504, 403810, 404116, 404423, 404732, 405042, 405354, 405668, 405984, 406303, 406625, 406950, + 407278, 407609, 407944, 408283, 408627, 408977, 409335, 409704, 410089, 410509, 410953, 411445, 412006, 412663, + 413453, 520448, 497021, 477868, 465098, 457306, 452802, 450280, 448924, 448256, 447991, 447963, 448081, 448279, + 448515, 448780, 449045, 449317, 449593, 449871, 450148, 450425, 450702, 450978, 451253, 451529, 451804, 452079, + 452355, 452631, 452908, 453186, 453464, 453744, 454026, 454308, 454593, 454879, 455168, 455459, 455753, 456051, + 456354, 456665, 456994, 457335, 457701, 458103, 458554, 459076, 582129, 555334, 533926, 519246, 509925, 504231, + 500803, 498771, 497604, 496975, 496685, 496607, 496666, 496807, 496996, 497217, 497450, 497695, 497946, 498201, + 498458, 498715, 498972, 499228, 499484, 499740, 499995, 500250, 500505, 500759, 501014, 501268, 501523, 501779, + 502034, 502291, 502548, 502806, 503065, 503325, 503587, 503852, 504121, 504395, 504681, 504977, 505290, 505629, + 506005, 642571, 613199, 589914, 573614, 562952, 556174, 551884, 549178, 547490, 546465, 545875, 545572, 545461, + 545476, 545574, 545724, 545908, 546117, 546339, 546570, 546806, 547046, 547288, 547531, 547774, 548017, 548259, + 548501, 548743, 548984, 549225, 549465, 549705, 549945, 550184, 550424, 550664, 550904, 551144, 551384, 551626, + 551868, 552112, 552358, 552611, 552868, 553133, 553412, 553708, 701915, 670531, 645680, 628006, 616178, 608428, + 603341, 599987, 597781, 596345, 595433, 594880, 594573, 594439, 594422, 594486, 594605, 594762, 594946, 595149, + 595362, 595584, 595810, 596040, 596272, 596504, 596737, 596970, 597203, 597436, 597668, 597899, 598130, 598361, + 598591, 598821, 599050, 599280, 599509, 599738, 599967, 600196, 600426, 600657, 600890, 601126, 601366, 601612, + 601867, 760297, 727314, 701149, 682305, 669464, 660850, 655034, 651074, 648367, 646522, 645279, 644459, 643940, + 643636, 643487, 643447, 643485, 643579, 643713, 643877, 644060, 644258, 644466, 644682, 644901, 645124, 645348, + 645573, 645799, 646025, 646251, 646477, 646702, 646927, 647152, 647376, 647599, 647822, 648045, 648267, 648489, + 648711, 648933, 649155, 649378, 649601, 649828, 650057, 650289, 817829, 783560, 756284, 736441, 722718, 713338, + 706863, 702341, 699159, 696917, 695343, 694251, 693509, 693023, 692725, 692567, 692510, 692529, 692603, 692719, + 692864, 693032, 693216, 693412, 693616, 693826, 694040, 694258, 694477, 694697, 694918, 695139, 695360, 695581, + 695801, 696021, 696241, 696461, 696679, 696898, 697116, 697334, 697551, 697769, 697986, 698203, 698422, 698641, + 698863, 874591, 839285, 811070, 790365, 775873, 765813, 758744, 753706, 750081, 747459, 745563, 744199, 743230, + 742555, 742100, 741812, 741650, 741582, 741586, 741644, 741744, 741874, 742028, 742200, 742384, 742579, 742781, + 742987, 743198, 743412, 743627, 743843, 744061, 744278, 744496, 744713, 744930, 745147, 745364, 745580, 745796, + 746011, 746226, 746441, 746656, 746870, 747084, 747299, 747515, 930618, 894491, 865482, 844034, 828869, 818207, + 810604, 805096, 801059, 798080, 795876, 794247, 793052, 792185, 791568, 791144, 790868, 790705, 790630, 790623, + 790669, 790756, 790874, 791016, 791177, 791352, 791538, 791732, 791933, 792138, 792346, 792557, 792770, 792984, + 793198, 793414, 793629, 793844, 794059, 794274, 794489, 794703, 794917, 795130, 795344, 795556, 795769, 795982, + 796195, 985900, 949157, 919487, 897399, 881645, 870450, 862368, 856434, 852019, 848707, 846210, 844327, 842912, + 841854, 841075, 840511, 840116, 839853, 839694, 839616, 839603, 839640, 839717, 839825, 839958, 840110, 840277, + 840455, 840643, 840838, 841038, 841243, 841450, 841660, 841872, 842084, 842298, 842511, 842725, 842940, 843154, + 843367, 843581, 843794, 844007, 844220, 844432, 844645, 844857, 1040349, 1003214, 973015, 950381, 934113, 922448, + 913941, 907622, 902863, 899243, 896475, 894352, 892725, 891484, 890544, 889841, 889327, 888961, 888714, 888562, + 888485, 888468, 888500, 888570, 888671, 888797, 888943, 889104, 889277, 889460, 889651, 889848, 890049, 890254, + 890462, 890672, 890884, 891096, 891310, 891524, 891738, 891952, 892166, 892380, 892593, 892807, 893020, 893233, + 893446, 1093795, 1056539, 1025952, 1002863, 986153, 974078, 965194, 958533, 953464, 949565, 946546, 944199, 942374, + 940958, 939864, 939026, 938394, 937926, 937591, 937363, 937221, 937148, 937133, 937163, 937231, 937328, 937450, + 937592, 937750, 937920, 938100, 938289, 938484, 938684, 938889, 939096, 939306, 939518, 939731, 939945, 940160, + 940375, 940591, 940806, 941021, 941237, 941452, 941667, 941881, 1145929, 1108902, 1078098, 1054650, 1037569, 1025144, + 1015935, 1008975, 1003632, 999483, 996239, 993689, 991682, 990103, 988864, 987900, 987155, 986589, 986168, 985865, + 985659, 985531, 985469, 985459, 985492, 985561, 985659, 985781, 985922, 986079, 986249, 986430, 986619, 986815, + 987016, 987222, 987431, 987643, 987857, 988072, 988289, 988506, 988724, 988942, 989161, 989379, 989598, 989816, + 990034, 1196309, 1159969, 1129165, 1105468, 1088090, 1075375, 1065893, 1058677, 1053098, 1048733, 1045289, 1042559, 1040389, + 1038663, 1037293, 1036211, 1035363, 1034705, 1034204, 1033831, 1033563, 1033383, 1033275, 1033226, 1033227, 1033268, 1033343, + 1033446, 1033572, 1033717, 1033877, 1034050, 1034234, 1034426, 1034626, 1034831, 1035040, 1035253, 1035469, 1035687, 1035907, + 1036128, 1036350, 1036573, 1036796, 1037019, 1037243, 1037466, 1037689, 1244342, 1209257, 1178736, 1154921, 1137328, 1124385, + 1114683, 1107259, 1101483, 1096935, 1093322, 1090437, 1088124, 1086270, 1084784, 1083598, 1082656, 1081916, 1081341, 1080904, + 1080581, 1080352, 1080202, 1080117, 1080088, 1080103, 1080157, 1080243, 1080355, 1080489, 1080641, 1080808, 1080988, 1081178, + 1081377, 1081582, 1081793, 1082009, 1082228, 1082451, 1082675, 1082901, 1083129, 1083357, 1083586, 1083816, 1084045, 1084275, + 1084504, 1289395, 1256195, 1226316, 1202544, 1184820, 1171712, 1161840, 1154250, 1148315, 1143615, 1139861, 1136844, 1134410, + 1132444, 1130857, 1129579, 1128555, 1127741, 1127101, 1126606, 1126231, 1125958, 1125770, 1125652, 1125594, 1125586, 1125621, + 1125690, 1125789, 1125913, 1126058, 1126220, 1126396, 1126585, 1126783, 1126990, 1127203, 1127422, 1127646, 1127872, 1128102, + 1128334, 1128567, 1128802, 1129038, 1129274, 1129510, 1129747, 1129983, 1330912, 1300189, 1271373, 1247835, 1230068, 1216850, + 1206851, 1199131, 1193067, 1188242, 1184368, 1181238, 1178698, 1176635, 1174958, 1173597, 1172499, 1171617, 1170917, 1170367, + 1169945, 1169630, 1169404, 1169255, 1169169, 1169138, 1169152, 1169205, 1169290, 1169403, 1169539, 1169695, 1169867, 1170053, + 1170250, 1170456, 1170670, 1170891, 1171117, 1171347, 1171581, 1171817, 1172055, 1172295, 1172536, 1172778, 1173020, 1173262, + 1173504, 1368565, 1340751, 1313439, 1290359, 1272640, 1259355, 1249260, 1241432, 1235258, 1230324, 1226344, 1223111, 1220476, + 1218321, 1216560, 1215121, 1213951, 1213003, 1212243, 1211640, 1211169, 1210810, 1210545, 1210361, 1210245, 1210187, 1210178, + 1210211, 1210279, 1210378, 1210501, 1210647, 1210811, 1210990, 1211181, 1211384, 1211596, 1211815, 1212040, 1212270, 1212504, + 1212741, 1212981, 1213223, 1213466, 1213710, 1213954, 1214199, 1214444, 1402326, 1377612, 1352201, 1329824, 1312247, 1298932, + 1288757, 1280833, 1274556, 1269519, 1265436, 1262105, 1259374, 1257129, 1255282, 1253764, 1252520, 1251504, 1250680, 1250018, + 1249494, 1249086, 1248778, 1248554, 1248402, 1248311, 1248273, 1248280, 1248325, 1248403, 1248509, 1248638, 1248788, 1248955, + 1249136, 1249329, 1249532, 1249744, 1249963, 1250188, 1250418, 1250651, 1250888, 1251127, 1251367, 1251609, 1251852, 1252096, + 1252339, 1432416, 1410751, 1387526, 1366110, 1348782, 1335470, 1325225, 1317207, 1310828, 1305685, 1301498, 1298064, 1295235, + 1292896, 1290959, 1289357, 1288033, 1286942, 1286049, 1285323, 1284739, 1284276, 1283917, 1283646, 1283451, 1283321, 1283248, + 1283221, 1283237, 1283287, 1283368, 1283475, 1283603, 1283751, 1283915, 1284093, 1284282, 1284481, 1284688, 1284902, 1285122, + 1285346, 1285574, 1285805, 1286038, 1286274, 1286510, 1286747, 1286985, 1459211, 1440373, 1419467, 1399254, 1382299, 1369029, + 1358723, 1350611, 1344126, 1338874, 1334578, 1331037, 1328104, 1325665, 1323634, 1321941, 1320531, 1319360, 1318391, 1317594, + 1316944, 1316419, 1316003, 1315678, 1315433, 1315257, 1315141, 1315075, 1315053, 1315070, 1315119, 1315197, 1315299, 1315422, + 1315563, 1315719, 1315888, 1316069, 1316259, 1316457, 1316661, 1316872, 1317086, 1317305, 1317527, 1317751, 1317976, 1318203, + 1318431, 1483143, 1466818, 1448217, 1429404, 1412963, 1399787, 1389434, 1381230, 1374638, 1369272, 1364863, 1361210, 1358168, + 1355625, 1353493, 1351705, 1350205, 1348948, 1347898, 1347025, 1346303, 1345711, 1345231, 1344847, 1344547, 1344319, 1344154, + 1344043, 1343980, 1343957, 1343970, 1344013, 1344083, 1344176, 1344289, 1344419, 1344564, 1344721, 1344890, 1345068, 1345253, + 1345445, 1345643, 1345845, 1346052, 1346261, 1346473, 1346686, 1346902, 1504612, 1490464, 1474038, 1456752, 1440975, 1427964, + 1417589, 1409301, 1402601, 1397123, 1392598, 1388832, 1385679, 1383029, 1380795, 1378908, 1377314, 1375969, 1374835, 1373882, + 1373084, 1372421, 1371874, 1371427, 1371068, 1370785, 1370567, 1370408, 1370298, 1370232, 1370204, 1370209, 1370244, 1370303, + 1370385, 1370485, 1370602, 1370734, 1370877, 1371032, 1371195, 1371366, 1371544, 1371728, 1371916, 1372108, 1372303, 1372501, + 1372702, 1523987, 1511699, 1497251, 1481540, 1466567, 1453808, 1443447, 1435087, 1428287, 1422697, 1418059, 1414179, 1410916, + 1408158, 1405820, 1403835, 1402146, 1400710, 1399490, 1398456, 1397581, 1396845, 1396229, 1395717, 1395296, 1394955, 1394683, + 1394472, 1394313, 1394202, 1394131, 1394096, 1394092, 1394115, 1394163, 1394231, 1394318, 1394421, 1394537, 1394666, 1394805, + 1394954, 1395110, 1395273, 1395441, 1395614, 1395792, 1395973, 1396156, 1541585, 1530875, 1518181, 1504017, 1489963, 1477553, + 1467254, 1458845, 1451955, 1446259, 1441510, 1437520, 1434147, 1431283, 1428843, 1426759, 1424976, 1423450, 1422144, 1421027, + 1420075, 1419265, 1418579, 1418001, 1417518, 1417117, 1416789, 1416525, 1416317, 1416158, 1416042, 1415965, 1415921, 1415907, + 1415919, 1415954, 1416009, 1416082, 1416170, 1416272, 1416386, 1416510, 1416643, 1416783, 1416931, 1417084, 1417243, 1417405, + 1417571, 1557667, 1548294, 1537132, 1524432, 1511373, 1499412, 1489234, 1480804, 1473838, 1468045, 1463191, 1459094, 1455616, + 1452649, 1450108, 1447927, 1446052, 1444437, 1443046, 1441849, 1440819, 1439936, 1439180, 1438536, 1437989, 1437529, 1437145, + 1436827, 1436568, 1436361, 1436200, 1436080, 1435996, 1435943, 1435919, 1435919, 1435942, 1435984, 1436043, 1436117, 1436204, + 1436303, 1436412, 1436530, 1436656, 1436788, 1436927, 1437071, 1437219, 1572438, 1564200, 1554366, 1543014, 1530983, 1519562, + 1509573, 1501159, 1494137, 1488259, 1483308, 1479111, 1475531, 1472465, 1469828, 1467553, 1465587, 1463886, 1462412, 1461136, + 1460031, 1459075, 1458250, 1457541, 1456932, 1456413, 1455973, 1455602, 1455292, 1455037, 1454831, 1454668, 1454543, 1454452, + 1454390, 1454356, 1454345, 1454356, 1454385, 1454431, 1454491, 1454564, 1454649, 1454744, 1454848, 1454960, 1455078, 1455203, + 1455333, 1586082, 1578812, 1570122, 1559989, 1548980, 1538172, 1528441, 1520087, 1513033, 1507084, 1502046, 1497755, 1494081, + 1490920, 1488190, 1485825, 1483773, 1481987, 1480433, 1479079, 1477900, 1476874, 1475983, 1475209, 1474539, 1473962, 1473466, + 1473042, 1472683, 1472380, 1472129, 1471923, 1471757, 1471627, 1471529, 1471460, 1471416, 1471395, 1471394, 1471411, 1471445, + 1471492, 1471553, 1471624, 1471706, 1471796, 1471895, 1472000, 1472111, 1598741, 1592300, 1584598, 1575552, 1565526, 1555383, + 1545979, 1537731, 1530674, 1524672, 1519558, 1515182, 1511419, 1508169, 1505351, 1502901, 1500764, 1498899, 1497267, 1495839, + 1494588, 1493494, 1492536, 1491700, 1490971, 1490336, 1489786, 1489311, 1488902, 1488553, 1488257, 1488008, 1487802, 1487634, + 1487499, 1487395, 1487319, 1487266, 1487236, 1487224, 1487231, 1487253, 1487288, 1487337, 1487396, 1487465, 1487543, 1487629, + 1487722, 1610541, 1604814, 1597966, 1589883, 1580781, 1571328, 1562310, 1554220, 1547192, 1541156, 1535980, 1531528, 1527683, + 1524350, 1521449, 1518917, 1516701, 1514758, 1513052, 1511552, 1510232, 1509071, 1508050, 1507153, 1506366, 1505676, 1505073, + 1504547, 1504090, 1503694, 1503354, 1503064, 1502818, 1502612, 1502441, 1502303, 1502193, 1502110, 1502050, 1502010, 1501990, + 1501986, 1501997, 1502022, 1502059, 1502107, 1502165, 1502232, 1502306, 1621584, 1616475, 1610368, 1603133, 1594886, 1586126, + 1577542, 1569659, 1562695, 1556649, 1551425, 1546907, 1542989, 1539578, 1536599, 1533990, 1531698, 1529681, 1527903, 1526334, + 1524948, 1523723, 1522641, 1521685, 1520841, 1520097, 1519442, 1518866, 1518362, 1517922, 1517539, 1517207, 1516922, 1516679, + 1516473, 1516300, 1516158, 1516044, 1515954, 1515887, 1515839, 1515810, 1515797, 1515799, 1515814, 1515841, 1515879, 1515926, + 1515982, 1631939, 1627370, 1621907, 1615420, 1607954, 1599873, 1591756, 1584127, 1577265, 1571233, 1565978, 1561407, 1557424, + 1553943, 1550892, 1548211, 1545848, 1543761, 1541915, 1540280, 1538830, 1537544, 1536403, 1535390, 1534491, 1533695, 1532990, + 1532366, 1531816, 1531332, 1530907, 1530536, 1530212, 1529932, 1529691, 1529485, 1529312, 1529167, 1529048, 1528953, 1528879, + 1528825, 1528788, 1528767, 1528760, 1528766, 1528783, 1528812, 1528849, 1641700, 1637602, 1632701, 1626874, 1620116, 1612684, + 1605054, 1597717, 1590993, 1585003, 1579735, 1575122, 1571083, 1567539, 1564422, 1561673, 1559242, 1557089, 1555179, 1553480, + 1551970, 1550624, 1549426, 1548358, 1547407, 1546560, 1545806, 1545136, 1544541, 1544014, 1543548, 1543137, 1542776, 1542460, + 1542184, 1541946, 1541741, 1541566, 1541419, 1541296, 1541196, 1541117, 1541056, 1541012, 1540984, 1540969, 1540967, 1540976, + 1540995, 1650923, 1647240, 1642833, 1637586, 1631466, 1624647, 1617509, 1610496, 1603945, 1598024, 1592763, 1588123, 1584037, + 1580438, 1577260, 1574448, 1571954, 1569738, 1567766, 1566008, 1564438, 1563036, 1561783, 1560662, 1559660, 1558763, 1557962, + 1557247, 1556608, 1556039, 1555533, 1555084, 1554686, 1554335, 1554026, 1553755, 1553519, 1553315, 1553139, 1552990, 1552864, + 1552760, 1552676, 1552609, 1552559, 1552523, 1552501, 1552492, 1552493, 1659650, 1656334, 1652363, 1647629, 1642083, 1635836, + 1629185, 1622518, 1616172, 1610348, 1605115, 1600462, 1596341, 1592694, 1589462, 1586593, 1584040, 1581766, 1579735, 1577920, + 1576294, 1574838, 1573532, 1572361, 1571309, 1570365, 1569519, 1568759, 1568078, 1567469, 1566924, 1566437, 1566003, 1565618, + 1565276, 1564973, 1564707, 1564474, 1564271, 1564095, 1563944, 1563815, 1563708, 1563619, 1563547, 1563491, 1563450, 1563421, + 1563405, 1667934, 1664944, 1661359, 1657080, 1652049, 1646331, 1640152, 1633845, 1627731, 1622030, 1616846, 1612197, 1608052, + 1604366, 1601086, 1598165, 1595559, 1593229, 1591144, 1589274, 1587596, 1586087, 1584731, 1583511, 1582412, 1581422, 1580531, + 1579729, 1579008, 1578359, 1577776, 1577253, 1576784, 1576364, 1575990, 1575657, 1575361, 1575099, 1574869, 1574667, 1574491, + 1574338, 1574208, 1574097, 1574004, 1573928, 1573867, 1573820, 1573786, 1675806, 1673106, 1669864, 1665991, 1661421, 1656190, + 1650465, 1644523, 1638661, 1633109, 1627996, 1623366, 1619211, 1615495, 1612175, 1609208, 1606552, 1604171, 1602034, 1600114, + 1598385, 1596828, 1595423, 1594156, 1593012, 1591978, 1591045, 1590202, 1589441, 1588753, 1588134, 1587575, 1587072, 1586620, + 1586215, 1585851, 1585526, 1585237, 1584979, 1584752, 1584551, 1584375, 1584222, 1584089, 1583976, 1583880, 1583800, 1583735, + 1583683, 1683318, 1680878, 1677942, 1674429, 1670274, 1665488, 1660193, 1654614, 1649019, 1643637, 1638616, 1634023, 1629869, + 1626133, 1622780, 1619772, 1617071, 1614643, 1612458, 1610489, 1608713, 1607108, 1605658, 1604345, 1603157, 1602081, 1601107, + 1600224, 1599424, 1598700, 1598044, 1597451, 1596915, 1596431, 1595994, 1595601, 1595248, 1594931, 1594647, 1594394, 1594169, + 1593970, 1593795, 1593641, 1593507, 1593391, 1593292, 1593209, 1593139, 1690484, 1688278, 1685616, 1682426, 1678644, 1674264, + 1669372, 1664151, 1658833, 1653639, 1648729, 1644190, 1640051, 1636305, 1632927, 1629884, 1627143, 1624673, 1622444, 1620430, + 1618608, 1616959, 1615464, 1614109, 1612879, 1611762, 1610748, 1609827, 1608990, 1608229, 1607539, 1606912, 1606344, 1605829, + 1605362, 1604940, 1604559, 1604215, 1603906, 1603628, 1603379, 1603157, 1602960, 1602785, 1602630, 1602495, 1602378, 1602276, + 1602190, 1697343, 1695347, 1692931, 1690031, 1686584, 1682574, 1678060, 1673184, 1668147, 1663156, 1658374, 1653905, 1649794, + 1646049, 1642654, 1639583, 1636808, 1634299, 1632028, 1629972, 1628108, 1626417, 1624880, 1623484, 1622213, 1621057, 1620005, + 1619046, 1618173, 1617378, 1616654, 1615995, 1615395, 1614849, 1614353, 1613902, 1613494, 1613124, 1612789, 1612487, 1612215, + 1611970, 1611751, 1611555, 1611381, 1611227, 1611091, 1610971, 1610868, 1703911, 1702106, 1699911, 1697272, 1694128, 1690455, + 1686291, 1681746, 1676991, 1672213, 1667575, 1663192, 1659123, 1655389, 1651986, 1648894, 1646089, 1643545, 1641238, 1639143, + 1637239, 1635507, 1633931, 1632495, 1631187, 1629993, 1628903, 1627909, 1627001, 1626172, 1625415, 1624724, 1624094, 1623518, + 1622994, 1622516, 1622081, 1621685, 1621325, 1620999, 1620704, 1620437, 1620197, 1619980, 1619786, 1619613, 1619459, 1619322, + 1619201, 1710213, 1708581, 1706587, 1704183, 1701312, 1697946, 1694107, 1689877, 1685399, 1680841, 1676360, 1672077, 1668063, + 1664352, 1660949, 1657842, 1655014, 1652440, 1650099, 1647968, 1646027, 1644258, 1642644, 1641171, 1639826, 1638596, 1637471, + 1636442, 1635501, 1634639, 1633850, 1633128, 1632468, 1631863, 1631311, 1630806, 1630345, 1629924, 1629540, 1629191, 1628873, + 1628584, 1628323, 1628086, 1627873, 1627680, 1627508, 1627354, 1627217, 1716263, 1714787, 1712976, 1710784, 1708161, 1705076, + 1701536, 1697604, 1693397, 1689062, 1684749, 1680578, 1676632, 1672955, 1669561, 1666448, 1663601, 1661003, 1658632, 1656468, + 1654493, 1652689, 1651040, 1649532, 1648151, 1646886, 1645728, 1644666, 1643692, 1642798, 1641979, 1641227, 1640538, 1639906, + 1639326, 1638794, 1638308, 1637862, 1637455, 1637082, 1636742, 1636432, 1636150, 1635894, 1635661, 1635450, 1635260, 1635089, + 1634935, 1722092, 1720760, 1719114, 1717115, 1714716, 1711886, 1708622, 1704970, 1701025, 1696914, 1692775, 1688727, 1684861, + 1681227, 1677852, 1674739, 1671881, 1669262, 1666865, 1664672, 1662665, 1660828, 1659146, 1657604, 1656190, 1654892, 1653700, + 1652606, 1651601, 1650677, 1649828, 1649047, 1648329, 1647669, 1647063, 1646506, 1645994, 1645524, 1645094, 1644699, 1644337, + 1644006, 1643703, 1643427, 1643175, 1642946, 1642739, 1642550, 1642380, 1727690, 1726489, 1724993, 1723171, 1720977, 1718379, + 1715370, 1711982, 1708288, 1704399, 1700439, 1696525, 1692748, 1689170, 1685822, 1682718, 1679854, 1677220, 1674801, 1672583, + 1670548, 1668681, 1666968, 1665394, 1663948, 1662619, 1661397, 1660272, 1659237, 1658283, 1657405, 1656597, 1655852, 1655165, + 1654533, 1653951, 1653415, 1652922, 1652469, 1652052, 1651669, 1651317, 1650995, 1650699, 1650429, 1650182, 1649957, 1649752, + 1649566, 1733099, 1732017, 1730659, 1728996, 1726988, 1724603, 1721829, 1718685, 1715232, 1711560, 1707782, 1704008, 1700331, + 1696817, 1693506, 1690417, 1687553, 1684909, 1682473, 1680233, 1678172, 1676278, 1674535, 1672932, 1671456, 1670097, 1668845, + 1667691, 1666626, 1665644, 1664738, 1663902, 1663131, 1662419, 1661761, 1661155, 1660595, 1660079, 1659603, 1659165, 1658761, + 1658389, 1658047, 1657732, 1657444, 1657179, 1656937, 1656715, 1656513, 1738314, 1737342, 1736111, 1734594, 1732756, 1730566, + 1728007, 1725093, 1721867, 1718407, 1714812, 1711183, 1707614, 1704173, 1700907, 1697840, 1694984, 1692335, 1689887, 1687628, + 1685545, 1683625, 1681856, 1680225, 1678721, 1677334, 1676053, 1674871, 1673778, 1672769, 1671836, 1670974, 1670177, 1669440, + 1668758, 1668128, 1667545, 1667006, 1666509, 1666049, 1665624, 1665232, 1664871, 1664538, 1664232, 1663949, 1663690, 1663452, + 1663234, 1743344, 1742472, 1741357, 1739975, 1738293, 1736281, 1733921, 1731220, 1728210, 1724955, 1721541, 1718062, 1714607, + 1711248, 1708035, 1704999, 1702156, 1699509, 1697052, 1694778, 1692677, 1690735, 1688942, 1687286, 1685755, 1684341, 1683034, + 1681824, 1680705, 1679670, 1678711, 1677824, 1677002, 1676240, 1675535, 1674882, 1674277, 1673716, 1673197, 1672717, 1672272, + 1671861, 1671481, 1671130, 1670805, 1670506, 1670230, 1669976, 1669743, 1748217, 1747439, 1746430, 1745171, 1743631, 1741782, + 1739606, 1737103, 1734296, 1731238, 1728002, 1724674, 1721339, 1718068, 1714916, 1711918, 1709094, 1706453, 1703992, 1701708, + 1699590, 1697629, 1695814, 1694134, 1692579, 1691140, 1689806, 1688572, 1687427, 1686366, 1685383, 1684471, 1683625, 1682840, + 1682111, 1681435, 1680808, 1680226, 1679686, 1679186, 1678722, 1678291, 1677893, 1677523, 1677182, 1676866, 1676573, 1676304, + 1676055, 1752929, 1752236, 1751325, 1750179, 1748770, 1747072, 1745065, 1742746, 1740130, 1737261, 1734199, 1731023, 1727811, + 1724635, 1721550, 1718596, 1715799, 1713169, 1710710, 1708419, 1706288, 1704311, 1702476, 1700775, 1699197, 1697734, 1696377, + 1695118, 1693949, 1692864, 1691857, 1690921, 1690051, 1689244, 1688493, 1687795, 1687147, 1686544, 1685984, 1685463, 1684980, + 1684531, 1684114, 1683727, 1683368, 1683036, 1682728, 1682442, 1682178, 1757495, 1756882, 1756061, 1755019, 1753731, 1752171, + 1750320, 1748171, 1745735, 1743045, 1740153, 1737128, 1734042, 1730965, 1727954, 1725051, 1722286, 1719673, 1717219, 1714925, + 1712786, 1710794, 1708943, 1707222, 1705624, 1704139, 1702759, 1701477, 1700285, 1699177, 1698146, 1697187, 1696296, 1695466, + 1694693, 1693974, 1693305, 1692682, 1692102, 1691562, 1691060, 1690593, 1690158, 1689754, 1689378, 1689029, 1688705, 1688404, + 1688125, 1761922, 1761381, 1760645, 1759699, 1758521, 1757088, 1755381, 1753391, 1751124, 1748604, 1745876, 1742999, 1740041, + 1737067, 1734135, 1731290, 1728562, 1725971, 1723528, 1721235, 1719090, 1717088, 1715222, 1713484, 1711867, 1710361, 1708960, + 1707656, 1706442, 1705312, 1704260, 1703279, 1702366, 1701514, 1700721, 1699981, 1699292, 1698649, 1698050, 1697491, 1696970, + 1696485, 1696033, 1695612, 1695220, 1694855, 1694515, 1694199, 1693905, 1766212, 1765739, 1765080, 1764223, 1763148, 1761833, + 1760259, 1758416, 1756307, 1753948, 1751378, 1748648, 1745818, 1742950, 1740102, 1737318, 1734634, 1732071, 1729643, 1727355, + 1725208, 1723198, 1721320, 1719567, 1717933, 1716409, 1714988, 1713664, 1712430, 1711278, 1710205, 1709203, 1708269, 1707397, + 1706583, 1705824, 1705115, 1704453, 1703835, 1703258, 1702719, 1702216, 1701747, 1701310, 1700901, 1700520, 1700165, 1699834, + 1699526, 1770384, 1769973, 1769386, 1768611, 1767630, 1766423, 1764973, 1763267, 1761304, 1759099, 1756680, 1754092, 1751389, + 1748630, 1745869, 1743152, 1740515, 1737985, 1735576, 1733298, 1731152, 1729138, 1727250, 1725485, 1723836, 1722295, 1720856, + 1719513, 1718259, 1717087, 1715994, 1714972, 1714018, 1713126, 1712292, 1711513, 1710785, 1710105, 1709468, 1708873, 1708317, + 1707797, 1707311, 1706857, 1706433, 1706037, 1705666, 1705321, 1704998, 1774426, 1774074, 1773553, 1772854, 1771961, 1770855, + 1769519, 1767941, 1766116, 1764055, 1761780, 1759331, 1756755, 1754105, 1751434, 1748788, 1746205, 1743712, 1741327, 1739062, + 1736921, 1734905, 1733012, 1731237, 1729574, 1728018, 1726563, 1725202, 1723930, 1722740, 1721627, 1720586, 1719613, 1718702, + 1717850, 1717052, 1716306, 1715607, 1714953, 1714340, 1713767, 1713231, 1712728, 1712258, 1711819, 1711407, 1711022, 1710662, + 1710326, 1778355, 1778058, 1777599, 1776970, 1776159, 1775146, 1773916, 1772456, 1770760, 1768835, 1766699, 1764383, 1761931, + 1759391, 1756813, 1754241, 1751715, 1749264, 1746908, 1744660, 1742528, 1740513, 1738616, 1736833, 1735160, 1733591, 1732121, + 1730744, 1729454, 1728247, 1727116, 1726057, 1725065, 1724136, 1723266, 1722450, 1721686, 1720970, 1720298, 1719669, 1719079, + 1718526, 1718008, 1717523, 1717068, 1716641, 1716242, 1715868, 1715518, 1782188, 1781941, 1781540, 1780977, 1780240, 1779314, + 1778182, 1776832, 1775257, 1773459, 1771454, 1769267, 1766936, 1764505, 1762021, 1759526, 1757061, 1754655, 1752331, 1750104, + 1747984, 1745974, 1744076, 1742288, 1740605, 1739025, 1737541, 1736150, 1734844, 1733620, 1732472, 1731396, 1730386, 1729440, + 1728552, 1727718, 1726937, 1726203, 1725515, 1724869, 1724263, 1723694, 1723160, 1722660, 1722190, 1721749, 1721335, 1720947, + 1720583, 1785900, 1785701, 1785353, 1784851, 1784185, 1783339, 1782299, 1781052, 1779589, 1777913, 1776032, 1773969, 1771757, + 1769434, 1767045, 1764630, 1762229, 1759873, 1757585, 1755383, 1753279, 1751277, 1749381, 1747589, 1745900, 1744311, 1742816, + 1741411, 1740091, 1738852, 1737688, 1736595, 1735570, 1734606, 1733701, 1732852, 1732053, 1731304, 1730599, 1729937, 1729316, + 1728731, 1728182, 1727667, 1727182, 1726727, 1726299, 1725898, 1725521, 1789535, 1789380, 1789081, 1788637, 1788035, 1787264, + 1786309, 1785156, 1783799, 1782235, 1780473, 1778528, 1776431, 1774214, 1771920, 1769586, 1767252, 1764948, 1762700, 1760526, + 1758440, 1756449, 1754557, 1752765, 1751071, 1749474, 1747969, 1746552, 1745219, 1743965, 1742787, 1741678, 1740636, 1739657, + 1738736, 1737870, 1737056, 1736290, 1735570, 1734892, 1734255, 1733655, 1733091, 1732561, 1732062, 1731593, 1731152, 1730737, + 1730346, 1793068, 1792953, 1792701, 1792310, 1791769, 1791067, 1790191, 1789128, 1787869, 1786412, 1784761, 1782930, 1780943, + 1778832, 1776631, 1774380, 1772115, 1769866, 1767661, 1765519, 1763455, 1761478, 1759593, 1757803, 1756107, 1754504, 1752991, + 1751563, 1750219, 1748952, 1747759, 1746637, 1745580, 1744585, 1743649, 1742767, 1741938, 1741156, 1740421, 1739728, 1739076, + 1738462, 1737884, 1737339, 1736826, 1736343, 1735888, 1735460, 1735057, 1796514, 1796437, 1796229, 1795887, 1795403, 1794766, + 1793963, 1792983, 1791816, 1790459, 1788914, 1787191, 1785311, 1783302, 1781195, 1779027, 1776832, 1774642, 1772482, 1770375, + 1768336, 1766376, 1764501, 1762715, 1761019, 1759412, 1757892, 1756456, 1755101, 1753822, 1752617, 1751480, 1750410, 1749400, + 1748449, 1747553, 1746709, 1745912, 1745162, 1744455, 1743788, 1743160, 1742567, 1742009, 1741482, 1740986, 1740518, 1740077, + 1739661, 1799859, 1799819, 1799652, 1799356, 1798925, 1798349, 1797615, 1796713, 1795633, 1794370, 1792925, 1791306, 1789529, + 1787620, 1785606, 1783521, 1781398, 1779268, 1777157, 1775088, 1773077, 1771136, 1769274, 1767495, 1765801, 1764193, 1762668, + 1761225, 1759861, 1758572, 1757355, 1756207, 1755123, 1754100, 1753135, 1752225, 1751366, 1750556, 1749792, 1749071, 1748390, + 1747748, 1747142, 1746570, 1746030, 1745521, 1745040, 1744587, 1744159, 1803137, 1803130, 1803001, 1802748, 1802367, 1801847, + 1801178, 1800348, 1799349, 1798174, 1796823, 1795302, 1793625, 1791812, 1789889, 1787887, 1785837, 1783768, 1781708, 1779679, + 1777699, 1775781, 1773934, 1772164, 1770474, 1768866, 1767338, 1765889, 1764517, 1763219, 1761992, 1760832, 1759735, 1758700, + 1757722, 1756798, 1755926, 1755102, 1754324, 1753589, 1752895, 1752239, 1751620, 1751035, 1750482, 1749960, 1749467, 1749001, + 1748561, 1806333, 1806358, 1806264, 1806052, 1805717, 1805250, 1804641, 1803879, 1802955, 1801864, 1800602, 1799175, 1797592, + 1795872, 1794039, 1792119, 1790142, 1788137, 1786130, 1784143, 1782196, 1780303, 1778474, 1776715, 1775032, 1773426, 1771897, + 1770444, 1769066, 1767759, 1766522, 1765352, 1764244, 1763197, 1762207, 1761270, 1760385, 1759548, 1758757, 1758009, 1757302, + 1756633, 1756001, 1755403, 1754838, 1754303, 1753798, 1753320, 1752868, 1809465, 1809518, 1809458, 1809284, 1808992, 1808574, + 1808021, 1807323, 1806470, 1805456, 1804278, 1802939, 1801447, 1799818, 1798071, 1796232, 1794328, 1792387, 1790434, 1788493, + 1786581, 1784715, 1782905, 1781161, 1779486, 1777883, 1776354, 1774899, 1773516, 1772203, 1770958, 1769777, 1768660, 1767601, + 1766599, 1765650, 1764753, 1763903, 1763099, 1762338, 1761618, 1760937, 1760292, 1759682, 1759104, 1758558, 1758040, 1757551, + 1757087, 1812517, 1812598, 1812569, 1812431, 1812179, 1811808, 1811307, 1810668, 1809882, 1808942, 1807843, 1806588, 1805183, + 1803641, 1801978, 1800219, 1798389, 1796512, 1794615, 1792720, 1790846, 1789010, 1787223, 1785494, 1783829, 1782233, 1780706, + 1779250, 1777863, 1776545, 1775292, 1774104, 1772976, 1771908, 1770895, 1769935, 1769025, 1768164, 1767348, 1766575, 1765843, + 1765149, 1764492, 1763870, 1763280, 1762722, 1762193, 1761692, 1761217, 1815508, 1815615, 1815615, 1815509, 1815296, 1814967, + 1814516, 1813933, 1813209, 1812337, 1811314, 1810139, 1808816, 1807357, 1805777, 1804096, 1802337, 1800526, 1798686, 1796839, + 1795004, 1793199, 1791437, 1789726, 1788074, 1786485, 1784962, 1783507, 1782118, 1780795, 1779536, 1778340, 1777205, 1776126, + 1775103, 1774133, 1773212, 1772339, 1771512, 1770727, 1769983, 1769277, 1768609, 1767975, 1767373, 1766803, 1766263, 1765750, + 1765264, 1818421, 1818552, 1818580, 1818506, 1818328, 1818041, 1817636, 1817105, 1816440, 1815633, 1814681, 1813581, 1812337, + 1810959, 1809458, 1807854, 1806167, 1804421, 1802638, 1800841, 1799048, 1797277, 1795540, 1793850, 1792212, 1790633, 1789116, + 1787663, 1786273, 1784948, 1783685, 1782482, 1781339, 1780252, 1779220, 1778239, 1777309, 1776425, 1775586, 1774791, 1774035, + 1773319, 1772639, 1771993, 1771381, 1770800, 1770248, 1769725, 1769228, 1821275, 1821428, 1821482, 1821438, 1821293, 1821044, + 1820682, 1820201, 1819591, 1818845, 1817960, 1816931, 1815763, 1814461, 1813038, 1811508, 1809892, 1808211, 1806486, 1804739, + 1802989, 1801253, 1799546, 1797877, 1796256, 1794688, 1793179, 1791729, 1790340, 1789013, 1787746, 1786539, 1785389, 1784295, + 1783254, 1782264, 1781324, 1780430, 1779581, 1778775, 1778009, 1777281, 1776590, 1775934, 1775310, 1774718, 1774156, 1773622, + 1773115, 1824070, 1824245, 1824323, 1824306, 1824193, 1823979, 1823658, 1823223, 1822665, 1821977, 1821154, 1820194, 1819097, + 1817869, 1816520, 1815063, 1813516, 1811899, 1810232, 1808537, 1806831, 1805132, 1803454, 1801809, 1800206, 1798652, 1797151, + 1795707, 1794321, 1792993, 1791724, 1790513, 1789357, 1788256, 1787207, 1786209, 1785260, 1784357, 1783498, 1782681, 1781905, + 1781167, 1780465, 1779798, 1779165, 1778562, 1777989, 1777445, 1776927, 1826806, 1827001, 1827102, 1827112, 1827028, 1826848, + 1826566, 1826173, 1825664, 1825030, 1824267, 1823371, 1822342, 1821185, 1819907, 1818521, 1817042, 1815488, 1813880, 1812236, + 1810576, 1808915, 1807269, 1805649, 1804066, 1802527, 1801037, 1799599, 1798217, 1796890, 1795620, 1794405, 1793245, 1792138, + 1791082, 1790077, 1789119, 1788207, 1787339, 1786512, 1785726, 1784978, 1784267, 1783589, 1782945, 1782333, 1781750, 1781195, + 1780668, 1829486, 1829700, 1829823, 1829856, 1829800, 1829652, 1829406, 1829054, 1828591, 1828008, 1827301, 1826466, 1825502, + 1824412, 1823203, 1821885, 1820472, 1818982, 1817431, 1815840, 1814225, 1812604, 1810991, 1809399, 1807837, 1806314, 1804836, + 1803407, 1802030, 1800705, 1799435, 1798218, 1797054, 1795942, 1794881, 1793868, 1792903, 1791982, 1791105, 1790270, 1789475, + 1788717, 1787996, 1787309, 1786655, 1786032, 1785439, 1784875, 1784338, 1832110, 1832341, 1832484, 1832540, 1832511, 1832393, + 1832180, 1831867, 1831447, 1830912, 1830258, 1829481, 1828578, 1827553, 1826410, 1825158, 1823810, 1822382, 1820889, 1819350, + 1817782, 1816201, 1814622, 1813059, 1811520, 1810016, 1808551, 1807132, 1805761, 1804440, 1803171, 1801953, 1800787, 1799671, + 1798604, 1797585, 1796613, 1795685, 1794800, 1793956, 1793152, 1792385, 1791654, 1790958, 1790295, 1789663, 1789060, 1788487, + 1787940, 1834677, 1834925, 1835087, 1835166, 1835161, 1835071, 1834890, 1834613, 1834234, 1833745, 1833141, 1832418, 1831574, + 1830610, 1829531, 1828343, 1827059, 1825691, 1824255, 1822768, 1821247, 1819708, 1818165, 1816631, 1815117, 1813632, 1812183, + 1810775, 1809412, 1808096, 1806829, 1805612, 1804444, 1803325, 1802254, 1801230, 1800251, 1799316, 1798424, 1797572, 1796759, + 1795984, 1795244, 1794539, 1793867, 1793226, 1792614, 1792031, 1791475, 1837207, 1837471, 1837651, 1837749, 1837768, 1837704, + 1837553, 1837311, 1836969, 1836523, 1835966, 1835295, 1834507, 1833601, 1832582, 1831456, 1830233, 1828924, 1827544, 1826110, + 1824636, 1823139, 1821632, 1820129, 1818641, 1817177, 1815744, 1814349, 1812994, 1811685, 1810421, 1809205, 1808036, 1806915, + 1805840, 1804811, 1803827, 1802885, 1801986, 1801127, 1800306, 1799522, 1798774, 1798061, 1797379, 1796729, 1796109, 1795517, + 1794952, 1839683, 1839962, 1840158, 1840276, 1840316, 1840277, 1840155, 1839944, 1839639, 1839233, 1838721, 1838099, 1837363, + 1836514, 1835553, 1834487, 1833322, 1832072, 1830747, 1829365, 1827938, 1826483, 1825014, 1823543, 1822082, 1820640, 1819225, + 1817843, 1816499, 1815197, 1813938, 1812724, 1811556, 1810433, 1809355, 1808323, 1807333, 1806386, 1805480, 1804614, 1803786, + 1802995, 1802239, 1801517, 1800827, 1800169, 1799540, 1798939, 1798366, 1842104, 1842397, 1842610, 1842746, 1842807, 1842791, + 1842696, 1842516, 1842244, 1841877, 1841407, 1840832, 1840146, 1839350, 1838446, 1837436, 1836330, 1835135, 1833866, 1832534, + 1831155, 1829743, 1828312, 1826874, 1825441, 1824023, 1822627, 1821260, 1819928, 1818634, 1817381, 1816170, 1815003, 1813880, + 1812801, 1811765, 1810772, 1809820, 1808908, 1808036, 1807201, 1806403, 1805639, 1804909, 1804212, 1803545, 1802908, 1802299, + 1801717, 1844472, 1844777, 1845005, 1845159, 1845240, 1845247, 1845177, 1845025, 1844787, 1844455, 1844026, 1843495, 1842857, + 1842112, 1841261, 1840307, 1839256, 1838117, 1836901, 1835621, 1834289, 1832920, 1831527, 1830124, 1828720, 1827326, 1825951, + 1824601, 1823282, 1821998, 1820751, 1819545, 1818381, 1817258, 1816178, 1815140, 1814144, 1813187, 1812271, 1811393, 1810552, + 1809747, 1808976, 1808239, 1807534, 1806860, 1806215, 1805598, 1805008, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 135924, 125277, 108081, 91368, 77552, + 66660, 58112, 51334, 45876, 41412, 37706, 34587, 31931, 29644, 27657, 25914, 24375, 23005, 21780, + 20677, 19679, 18772, 17944, 17186, 16489, 15845, 15250, 14698, 14184, 13704, 13256, 12836, 12442, + 12071, 11721, 11392, 11080, 10784, 10504, 10238, 9986, 9745, 9516, 9297, 9088, 8888, 8697, + 8513, 8338, 8169, 8007, 7852, 7702, 7558, 7419, 7285, 7156, 7031, 6911, 6795, 6682, + 6574, 6468, 6366, 6267, 6172, 6079, 5989, 5901, 5816, 5733, 5653, 5575, 5499, 5425, + 5353, 5283, 5215, 5148, 5083, 5020, 4959 +]; +/// NMOS drain current in pA at 1000 centres of the (Vgs, Vds, Vsb) grid's cells, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, Vsb = (floor(6 frac(k a3)) + 1/2) * 0.25 V (deck psp103_idpa_vsb_tt.cir, block cen_n; a1, a2, a3 are R3_A1, R3_A2, R3_A3). Vsb is halfway between two slices. +pub const VSB_CEN_N : [1000]u32 = [ + 211441885, 126760981, 2967941, 4336987, 270, 31433176, 141402417, 69441337, 2516501, 179418, 180, 43389369, 147434150, 26166014, + 2849157, 753, 258610723, 47069542, 81643532, 7763739, 41482, 431, 206988427, 70013198, 36232054, 5581718, 175, 304678187, + 145008359, 55412156, 29560373, 166793, 296, 225385781, 139834873, 29270666, 6155208, 759, 158160924, 163190685, 78938541, 25206109, + 402832, 342, 141347862, 156531212, 35496012, 4788552, 1977, 307352260, 155358751, 90305587, 33776924, 135856, 786, 227611996, + 124497462, 42860399, 7781562, 1309, 326486742, 228141551, 80200665, 33948222, 414125, 627, 250552110, 151396395, 38440712, 10755335, + 207817, 248748995, 248362026, 88690133, 33894498, 869630, 1763, 200006290, 7810568, 47597973, 7200389, 97415, 328548229, 202890093, + 16796961, 42216808, 669024, 344, 251231410, 151135920, 36864087, 10551205, 380351, 2, 239501991, 93100132, 26950114, 954398, + 1466, 96072867, 163007864, 89975446, 7836809, 395614, 8, 112379014, 106907298, 40046689, 473927, 3765, 306919846, 97653272, + 102911761, 14391290, 260193, 18, 239575460, 73060616, 48179162, 1463465, 1073, 346419534, 167095889, 85544545, 15859871, 714117, + 11, 251836349, 104750805, 42445832, 11359972, 3633, 218575644, 185792365, 98469770, 13403422, 1372686, 17, 196792356, 117545247, + 46790412, 9828611, 8702, 345408765, 147511929, 110528092, 18596750, 591853, 41, 263152068, 150483080, 54703433, 16014427, 6940, + 11199063, 181056474, 100759850, 5418870, 1327587, 30, 28735445, 179097566, 50763723, 8660600, 9383, 293693669, 54419070, 107536256, + 18036767, 704521, 83, 241068551, 70795167, 60559229, 14576412, 4273, 362224357, 178024575, 59759098, 23460961, 1930501, 3337, + 278227496, 181261191, 39524461, 19299723, 19454, 10, 201274827, 112407365, 19492483, 2334430, 10417, 148711472, 188435078, 59123458, + 16405276, 25008, 32, 139592476, 127191816, 55461238, 2049020, 23563, 266343604, 144030772, 68616157, 18323885, 15721, 77, + 205639370, 99722464, 64406374, 3968258, 7423, 292757166, 200746422, 55454015, 23278497, 54578, 59, 291390007, 123470722, 59217085, + 4695241, 20651, 228357282, 219230100, 67961248, 20937002, 8812, 74, 239763649, 20356992, 61782700, 3641948, 8768, 296850135, + 184197003, 22730691, 26995385, 2645773, 36, 296843394, 117686590, 29555056, 5996079, 41839, 85279840, 213232010, 72061527, 15830652, + 4414721, 149, 105722561, 134763100, 66383788, 4192543, 45158, 273311719, 103912193, 131511148, 26019508, 3314938, 179, 274679688, + 95737060, 77426959, 5816389, 28070, 312721991, 204141740, 99849321, 32202159, 3927964, 108, 309282920, 146091636, 58939296, 8584119, + 95610, 88, 225784543, 137408664, 28162031, 6022957, 386, 213559054, 152562027, 74473901, 6852416, 170449, 234, 176424727, + 152313752, 31739560, 4943484, 913, 295787382, 133520476, 85050674, 28426583, 128712, 503, 231418239, 131270860, 3217863, 7693976, + 348, 31333117, 159439215, 70727868, 8798623, 347750, 475, 43788711, 153135187, 34943426, 3725346, 1038, 274255240, 62747808, + 83141988, 32140448, 171390, 429, 213946617, 63909332, 38119970, 7106167, 801, 312675185, 216125099, 55725230, 39279495, 340803, + 271, 245981361, 146119209, 30566019, 10189942, 3515, 158925050, 244148504, 88566479, 27821275, 780568, 921, 144099468, 163489833, + 42160414, 8191125, 392031, 307627685, 165008761, 97602522, 37208169, 496943, 891, 236338383, 128024264, 50246878, 9842241, 302355, + 341137902, 232617044, 86059120, 44311517, 821497, 1119, 259716220, 169920633, 80037518, 13270482, 722045, 4, 254608043, 104109909, + 34546011, 1612621, 3303, 214028130, 7898743, 95056140, 11488786, 148656, 10, 218569618, 17409877, 42799888, 1193597, 1528, + 331202875, 157535498, 30365166, 13184510, 597316, 5, 260349194, 100419429, 27071272, 2427536, 2947, 96556642, 182142820, 94788553, + 9846736, 1244617, 17, 112922784, 115039043, 47208770, 8600495, 7640, 318849990, 100088796, 108239742, 15405551, 833064, 35, + 245674086, 82005549, 49342673, 13177188, 4856, 344989521, 175074067, 84894171, 20209481, 1155132, 21, 273182295, 173251319, 46905349, + 17211120, 7938, 215759868, 194597497, 114672356, 14501587, 2116501, 70, 196203057, 191548296, 58604586, 15195249, 19025, 343617661, + 161190679, 116998717, 19971715, 1561937, 9454, 264084632, 165743950, 67548248, 16237750, 14957, 8, 190077158, 106176553, 6490196, + 2093391, 8581, 29418856, 198162885, 56332775, 8617598, 42816, 26, 40372278, 124374298, 49143861, 1118141, 21165, 252191031, + 71060660, 66805504, 18838056, 9331, 68, 189577651, 61698354, 62763456, 2771430, 14272, 280075906, 186425090, 46742844, 19839063, + 44652, 42, 279060837, 119204516, 49103848, 4670444, 17565, 148042652, 208602423, 65550926, 16873756, 113083, 140, 167301469, + 134649977, 68392092, 2355162, 40962, 283490945, 147010693, 75626814, 23132936, 70291, 148, 280731911, 112478451, 69021905, 4492396, + 32423, 302563698, 201042159, 67137365, 31609063, 3235284, 114, 306139326, 131274946, 62587712, 6801602, 39415, 232776979, 219659667, + 81408909, 24377127, 640080, 328, 237532068, 20800170, 75372606, 4181508, 15206, 304689673, 195179766, 34867114, 31024140, 4221191, + 63, 302627524, 133637109, 30819462, 6767418, 75698, 2, 214516552, 131889663, 20684359, 4605393, 314, 109587663, 152774643, + 71563659, 4741297, 193115, 201, 103254289, 149370692, 30213817, 3360372, 813, 292899573, 88445252, 83162820, 9649038, 54917, + 458, 216717985, 102249383, 36950678, 5911179, 491, 316554190, 148653111, 69969505, 33260756, 187287, 373, 234789293, 142864855, + 32301380, 8502481, 880, 214954565, 165023272, 80629796, 30090041, 428686, 375, 180711187, 158214756, 41504971, 5227913, 2110, + 316098160, 185415988, 91704881, 37922431, 166492, 830, 238964323, 141697374, 3480721, 9567620, 1608, 10560387, 231933129, 84277539, + 10631061, 453495, 754, 45648696, 153734195, 39986188, 5374159, 227460, 278869971, 64668420, 98353519, 35145755, 212184, 1897, + 221298441, 63296034, 48548833, 9043931, 142214, 333999224, 234261785, 58696013, 43026149, 762302, 464, 254752298, 157871126, 63765613, + 12615661, 421894, 5, 250242059, 95524996, 36142049, 1450932, 1652, 151783084, 164979935, 92068721, 10231683, 869521, 8, + 165994246, 108302693, 41136088, 902899, 4013, 318730848, 128179843, 104200964, 15104075, 313113, 19, 252573185, 86093326, 48948968, + 2132786, 3043, 350001276, 177542480, 93876886, 16278778, 776302, 13, 262059875, 106686631, 44593342, 3603170, 4001, 275600390, + 8328059, 100182467, 14199505, 161071, 19, 222870365, 18415713, 54246354, 12238580, 1743, 352464408, 164464548, 29881960, 19307047, + 966670, 8, 267421022, 109685638, 29164872, 16473614, 8087, 95940234, 190148779, 105097637, 12198473, 1921559, 35, 117957258, + 188004936, 52294498, 13375426, 10161, 322493573, 107002990, 109030879, 18794597, 1209458, 92, 252543113, 120569388, 61551442, 15175772, + 6181, 366993763, 193471025, 84831899, 24033124, 2719747, 4051, 281465000, 192241057, 48353720, 19759267, 36207, 31, 203536376, + 115361599, 20911007, 3165138, 11393, 197648544, 197653424, 60444562, 17414398, 86095, 36, 166880325, 128611321, 56635198, 2324587, + 25166, 272524259, 169447291, 69551294, 23131135, 33985, 8, 209451500, 112268702, 4794098, 4274281, 8666, 29529270, 204023832, + 63954623, 9659047, 98590, 69, 50836564, 131685092, 61224957, 1741969, 22301, 253717389, 75077930, 69156243, 21808510, 42009, + 80, 264080543, 67401492, 71839478, 3967969, 21297, 301244749, 192593056, 47723909, 27622705, 2904917, 47, 300712815, 135914213, + 48766745, 6346010, 76068, 149709794, 215820317, 78548967, 19841123, 4600488, 167, 174802161, 142444389, 68380741, 4704152, 78963, + 285337890, 157883890, 139117936, 26831776, 3667965, 401, 285991131, 117768230, 78475903, 6180199, 56829, 317031558, 208709424, 120245992, + 32817489, 6042389, 236, 312326120, 148869926, 63215411, 8971464, 168732, 3, 227974703, 145816223, 29890009, 774314, 706, + 251214807, 7266298, 76195809, 7388847, 64763, 252, 197424543, 37417710, 32513785, 5318630, 284, 301333290, 141305476, 34805151, + 10881746, 150805, 165, 234848858, 136936476, 21332378, 8002363, 709, 108289549, 161681946, 85576740, 22146790, 382730, 862, + 104694629, 155156318, 36114115, 4431558, 1873, 292088895, 95696390, 89707228, 33112121, 222700, 751, 222959595, 112328144, 38867428, + 7502154, 1085, 330225809, 224599925, 74508747, 39980577, 383411, 548, 248716380, 161008923, 36937845, 10519205, 4077, 213751867, + 246659042, 95497947, 29813727, 844810, 1658, 188528698, 165244189, 46828806, 8972656, 413150, 316636230, 199026208, 98798620, 38092847, + 596436, 3680, 241423593, 146973395, 4040187, 10256885, 347725, 2, 237792633, 90781402, 10492627, 1398904, 1320, 45456198, + 172543210, 88077090, 5636245, 773582, 7, 64520181, 105771723, 45462435, 414021, 3571, 232404294, 64390723, 101868168, 12252850, + 221180, 16, 232785787, 58080385, 47566237, 1350553, 2066, 336034298, 163814611, 72491272, 16465819, 665350, 9, 264424148, + 103087210, 39516875, 2585584, 3345, 188594364, 184314673, 107859211, 11019090, 1319009, 31, 164619056, 116517818, 52297765, 9357706, + 8314, 338305994, 139484367, 109587101, 16161114, 972587, 38, 252515051, 98501126, 54309230, 13655990, 6053, 372420676, 178774696, + 98136598, 23130499, 1255503, 26, 275872690, 177148241, 49402452, 17600923, 18200, 267207978, 8283334, 116616651, 17415648, 240423, + 80, 222803214, 25424756, 59759656, 15950515, 3542 +]; +/// PMOS drain current in pA at 1000 centres of the (Vgs, Vds, Vsb) grid's cells, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, Vsb = (floor(6 frac(k a3)) + 1/2) * 0.25 V (deck psp103_idpa_vsb_tt.cir, block cen_p; a1, a2, a3 are R3_A1, R3_A2, R3_A3). Vsb is halfway between two slices. +pub const VSB_CEN_P : [1000]u32 = [ + 125491582, 80789705, 1397600, 440367, 5, 21571809, 69894048, 34619948, 331408, 2950, 12, 27589201, 90860433, 7790927, + 548759, 9, 172331543, 27004929, 39275186, 708771, 1413, 20, 127325987, 44461571, 11072018, 902997, 4, 201823193, + 75340963, 31018943, 12037434, 2475, 26, 129640183, 83902639, 10884260, 571092, 8, 105170929, 82621861, 37145815, 12168423, + 4264, 12, 86465406, 91447318, 10684730, 742429, 14, 208592885, 105977525, 41449608, 15235614, 2234, 23, 135605068, + 78420910, 12760456, 1134601, 15, 211633714, 154610685, 40673905, 12679923, 3885, 27, 146358653, 86421613, 13206499, 1629510, + 9020, 163744068, 165244695, 39889888, 15067694, 6717, 47, 118776584, 4985604, 15850213, 1010129, 11502, 217782799, 134059430, + 9413393, 17945436, 10509, 18, 146708811, 90324584, 23693382, 1484910, 23381, 1, 155582795, 44636497, 14286007, 6545, + 33, 59316901, 89327359, 52641513, 1667645, 10263, 3, 74962534, 49795140, 16432162, 10074, 58, 221399374, 58812821, + 58290514, 3148756, 15900, 7, 159791064, 36741581, 19192689, 17769, 27, 249479324, 95546988, 53273623, 2572742, 27032, + 2, 157674264, 48194046, 19334347, 2797887, 46, 154271105, 103688211, 53813712, 2906170, 45490, 4, 128295481, 53023749, + 18079876, 3207881, 81, 252439774, 84431880, 58969926, 3938421, 21063, 17, 170452154, 99211230, 20802805, 5260780, 118, + 7799338, 99816790, 58322869, 1606889, 35916, 3, 18678190, 114566195, 21542629, 4103997, 69, 205692248, 33103011, 55645382, + 3782906, 53034, 5, 153669778, 47933963, 24901102, 4442649, 102, 257122517, 98720598, 35484971, 4926756, 93191, 289, + 174746367, 120062443, 17820050, 5712369, 181, 1, 108751324, 61307207, 5167245, 52867, 486, 95837528, 114919364, 23817029, + 6063441, 113, 3, 81603761, 67401272, 28665716, 128458, 811, 165490326, 93103243, 27088766, 5110143, 170, 11, + 115360209, 54451104, 32345431, 216353, 309, 179091445, 127405471, 22405599, 6440031, 298, 3, 200751456, 64205340, 32851174, + 136634, 523, 144599093, 136426731, 26326585, 6997962, 203, 4, 168443841, 12299754, 29556878, 200683, 670, 186460831, + 114964279, 11526071, 8728234, 365903, 2, 209085864, 60725588, 17279568, 331507, 1377, 53784039, 129872358, 30295051, 5664822, + 574214, 4, 71579300, 67434072, 34074911, 439230, 661, 170172292, 66744338, 78291956, 8112220, 737523, 6, 188532507, + 54260247, 38412554, 324273, 1025, 192193631, 122685179, 64711123, 9887445, 431923, 3, 209971144, 77469632, 30029583, 520907, + 1764, 7, 132885203, 85214109, 10247762, 671572, 6, 145680660, 74952493, 35843096, 683275, 1561, 13, 109676155, + 92164876, 9451239, 875118, 14, 197344999, 71185534, 39954918, 11860131, 2437, 31, 140536471, 80255384, 1485624, 1302872, + 5, 21116556, 81703677, 33486546, 5016629, 4200, 28, 27398804, 90540553, 11955374, 675739, 9, 184841911, 43104509, + 38036026, 14919518, 6452, 14, 129036440, 41268540, 11029545, 1105851, 14, 202938275, 147933911, 29940203, 17571777, 3826, + 16, 144971943, 84727327, 10805464, 1601335, 25, 103954176, 163849218, 43067169, 12565239, 6623, 29, 86861406, 92381132, + 13825294, 1867815, 14916, 203722168, 113363442, 43673201, 15724125, 10315, 18, 138482771, 78207511, 16236855, 1452060, 23056, + 223807129, 152651102, 42570715, 18293973, 6442, 32, 149452445, 99652325, 47454094, 2041117, 38573, 2, 163908929, 49199669, + 14182216, 11200, 56, 129481955, 4931187, 54031298, 2396786, 12961, 4, 146300319, 9581378, 16909508, 17454, 79, + 238823397, 91676181, 19955321, 1938307, 26675, 1, 172242642, 47148467, 13490236, 30348, 45, 67946444, 102726303, 52801285, + 2109630, 44965, 3, 73649443, 52511725, 20454387, 3008430, 77, 231332923, 59111648, 58459534, 3080707, 68240, 6, + 159540351, 42973481, 18493994, 4212176, 116, 240646072, 97906126, 50927907, 4071368, 35428, 2, 174498129, 112475696, 20622148, + 5394420, 68, 148552730, 106277748, 64820719, 2912688, 60034, 4, 124814189, 121335437, 24548791, 5903674, 118, 243625383, + 94475336, 60122668, 3948271, 91161, 317, 166279274, 110941864, 27786830, 4623003, 178, 1, 102890525, 59208434, 2222404, + 52105, 480, 19228617, 129541926, 23259912, 3657139, 308, 2, 24320356, 66742740, 25574880, 75836, 802, 162421148, + 46624322, 26774663, 6474737, 165, 5, 107047923, 35680433, 32017295, 133522, 1235, 171541838, 119017580, 22607920, 5266551, + 293, 3, 192755226, 63059853, 28785489, 223099, 516, 93667017, 130091139, 25889348, 5608183, 510, 5, 115994243, + 69281204, 37060669, 122720, 872, 179630223, 92392381, 29313536, 7300550, 789, 9, 198109910, 63444606, 32809040, 208083, + 1358, 182324351, 122952889, 29138126, 10363209, 378508, 4, 213132407, 66604214, 32995040, 342184, 653, 145331524, 131777177, + 33858859, 7877208, 183302, 7, 161717562, 12314160, 37985592, 202717, 838, 188778932, 123328070, 23310491, 9736968, 786290, + 3, 206982174, 71450203, 17366029, 336087, 1737, 2, 126497688, 83170774, 8567896, 445832, 5, 74657629, 79234009, + 35173657, 442763, 2970, 12, 64750542, 91397134, 9250037, 584538, 10, 203438528, 49236755, 39583231, 1023208, 1441, + 22, 132177353, 63709987, 11165291, 916076, 10, 209779968, 76432698, 37421605, 13853580, 2496, 27, 135441507, 84927833, + 11471551, 1340650, 8, 143561694, 83049758, 37518205, 14447993, 4296, 13, 110273570, 91872074, 14099504, 760976, 16, + 214170865, 126662713, 41722148, 17332427, 2258, 29, 142509330, 87958524, 1586038, 1570025, 15, 7037882, 156264682, 41937583, + 6360194, 3918, 28, 28858741, 87075508, 13479101, 1515919, 9085, 184346952, 44578067, 47276825, 15336394, 6013, 48, + 131307147, 39581204, 15990756, 1413455, 13917, 220608189, 162465390, 30856562, 18082305, 10610, 19, 147913910, 93174579, 39532311, + 2004801, 23543, 2, 162480163, 45240438, 17707370, 11030, 34, 92773451, 89825088, 53254501, 2281142, 39281, 3, + 110781356, 50081578, 16628443, 17100, 60, 230420117, 75844354, 58587240, 3206353, 16072, 12, 168608308, 41422690, 19317180, + 29846, 86, 251169355, 101382767, 57359107, 2598929, 27224, 2, 164220988, 48619148, 19882685, 51607, 47, 196934852, + 5255940, 54234825, 2980851, 17963, 4, 145359322, 10302929, 23263053, 4100947, 65, 257307988, 93649749, 18779401, 3997527, + 34903, 2, 172320125, 53263967, 14130507, 5312930, 120, 66120279, 105097769, 59865946, 2681265, 59252, 3, 77570159, + 120308523, 21858341, 5511171, 70, 227889708, 64256317, 55979905, 3849856, 88724, 6, 160410605, 81215759, 25074000, 4510732, + 105, 259749315, 111141348, 48695289, 4977444, 150973, 292, 175923772, 127194422, 20186289, 5761764, 303, 2, 109344829, + 62123949, 5363433, 87231, 489, 127198987, 120613704, 24059340, 6254342, 524, 4, 96192935, 67720908, 28921101, 130540, + 819, 168450258, 109440965, 27248412, 7933317, 288, 1, 116633901, 60761973, 3056715, 219266, 311, 19039482, 128612308, + 27768525, 3943126, 501, 3, 35474294, 68593840, 33450857, 115579, 527, 160589542, 49662962, 26534438, 7125265, 765, + 5, 186606332, 39828107, 37836690, 203568, 1327, 188331206, 119319351, 22278261, 8807852, 371625, 3, 210910961, 74362201, + 26779837, 336080, 2274, 93533288, 130675054, 33290326, 6371583, 579324, 5, 121829796, 71677372, 34552532, 454220, 1098, + 177033952, 100604791, 83005536, 8218530, 759784, 10, 195886693, 64983048, 38623377, 328780, 1711, 193783089, 124514076, 77313288, + 9964780, 1146943, 5, 211159586, 78243624, 31384903, 528169, 2934, 2, 133500872, 90386309, 10574206, 202673, 9, + 172532959, 4261457, 36205258, 698689, 3770, 14, 122026810, 25216385, 9549043, 892022, 9, 200252563, 74109223, 20230763, + 1064497, 2460, 16, 141756389, 82787949, 8366952, 1317395, 7, 72232683, 82260533, 44053418, 11215999, 4240, 45, + 64547881, 91089427, 12143431, 724039, 13, 197352328, 54525808, 41331576, 15111736, 6585, 21, 133529061, 71212873, 11124354, + 1122932, 15, 221568597, 152856133, 38669352, 17691242, 3860, 27, 145817929, 98144406, 12923381, 1617752, 26, 139857639, + 164699177, 46647968, 13080063, 6690, 47, 116239957, 92818821, 15734310, 1937367, 14998, 209243967, 137235474, 43906204, 15876664, + 10430, 83, 140518645, 88333110, 1964303, 1471369, 23250, 1, 154916292, 44004664, 5868940, 18076, 33, 28276001, + 100441829, 52018109, 1425063, 38816, 3, 43305806, 49557405, 21394479, 9937, 57, 139790198, 39344769, 58043940, 2455506, + 15706, 5, 155650307, 32009231, 19092312, 17637, 84, 241541092, 94330425, 46024175, 3311111, 26884, 2, 173823464, + 47809759, 18522946, 30629, 45, 132727834, 103307154, 64331609, 2226057, 45267, 3, 106951423, 52815519, 22899055, 3140816, + 79, 247084207, 84208861, 58762468, 3138584, 69184, 10, 163206611, 49638540, 20739621, 4264531, 117, 270922404, 99129503, + 57251804, 5025708, 35710, 2, 175404324, 113922080, 21236850, 5436679, 203, 185826273, 5118591, 65330891, 3724758, 23228, + 4, 141543009, 17386805, 24759171, 6030365, 97 +]; + +; --- the accessors --------------------------------------------------------------------------------------------------------------- + +/// The table of device dev (DEV_N, DEV_P) at the source-to-bulk voltage k * 0.25 V, k = 0 .. 6: the slice 0 is t0, the existing 2-D table the caller passes (TT_LG_N or TT_LG_P, or a +/// table of its own), the slices 1 .. 6 are the tables of this file. Any other k, or a dev that is neither, is t0. +pub fn vsb_tab(dev: u32, t0: []const u32, k: u32) -> []const u32 { + if (dev == DEV_N) { + if (k == 1) { return &VSB_N1; } + if (k == 2) { return &VSB_N2; } + if (k == 3) { return &VSB_N3; } + if (k == 4) { return &VSB_N4; } + if (k == 5) { return &VSB_N5; } + if (k == 6) { return &VSB_N6; } + } + if (dev == DEV_P) { + if (k == 1) { return &VSB_P1; } + if (k == 2) { return &VSB_P2; } + if (k == 3) { return &VSB_P3; } + if (k == 4) { return &VSB_P4; } + if (k == 5) { return &VSB_P5; } + if (k == 6) { return &VSB_P6; } + } + return t0; +} + +/// Id(vg, vd) of device dev at the source-to-bulk voltage vsb (units of 2^-24 V, 0 .. 1.5 V), in IUNIT = 1.164 pA: the two slices around vsb, the log word blended between them +/// (`lg_fine_vsb`). t0 is the slice 0. At vsb = 0 this is `lg_fine(t0, vg, vd)` exactly, and at a slice's own voltage it is `lg_fine` of that slice. +pub fn vsb_fine(dev: u32, t0: []const u32, vg: u32, vd: u32, vsb: u32) -> u64 { + const j : u32 = lg_vsb_cell(vsb); + return lg_fine_vsb(vsb_tab(dev, t0, j), vsb_tab(dev, t0, j + 1), vg, vd, lg_vsb_frac(vsb)); +} + +/// The held-out currents of device dev in pA. +pub fn vsb_cen(dev: u32) -> []const u32 { + if (dev == DEV_P) { return &VSB_CEN_P; } + return &VSB_CEN_N; +} + +; --- the tests ----------------------------------------------------------------------------------------------------------------- +; Variables, not constants, carry the data of the asserts: an assert on a constant is folded by the compiler and counts as no assert at all. + +test the_vsb_slices_are_the_numbers_ngspice_printed_and_are_tables_of_the_format_the_2d_reader_reads { + // the twelve slices, N then P, and the two held-out sets: the pins see one changed number + var s : u64 = 0; + var k : u32 = 1; + while (k < 7) { + s = fold_arr(vsb_tab(DEV_N, &TT_LG_N, k), 4851, s); + k = k + 1; + } + k = 1; + while (k < 7) { + s = fold_arr(vsb_tab(DEV_P, &TT_LG_P, k), 4851, s); + k = k + 1; + } + assert_eq(s, PIN_VSB_LG); + var c : u64 = fold_arr(&VSB_CEN_N, 1000, 0); + c = fold_arr(&VSB_CEN_P, 1000, c); + assert_eq(c, PIN_VSB_CEN); + // a pin sees one changed number in a table of this size too: the slice 3 of the NMOS with one word one higher is another word of the fold + var t : [4851]u32 = [0] ** 4851; + var i : usize = 0; + while (i < 4851) { + t[i] = VSB_N3[i]; + i = i + 1; + } + assert_eq(fold_arr(&t, 4851, 0), fold_arr(&VSB_N3, 4851, 0)); + t[2000] = t[2000] + 1; + assert fold_arr(&t, 4851, 0) != fold_arr(&VSB_N3, 4851, 0); + // the layout of a table of the 2-D reader: the tag word, 4753 log words under 2^21, and the 97 rv words, which are the same in every slice and in the existing tables (rv is a + // function of Vgs only: the deck prints them for every slice and they are the same words) + var nslice : u32 = VSB_NSLICE; + var ncen : u32 = VSB_CEN_COUNT; + var step : u32 = VSB_STEP_MV; + assert_eq(nslice, 7); + assert_eq(ncen, 1000); + assert_eq(step * 6, 1500); + var same_rv : u32 = 0; + var tags : u32 = 0; + var under : u32 = 0; + k = 1; + while (k < 7) { + const tn : []const u32 = vsb_tab(DEV_N, &TT_LG_N, k); + const tp : []const u32 = vsb_tab(DEV_P, &TT_LG_P, k); + if (tn[0] == LG_TAG) { tags = tags + 1; } + if (tp[0] == LG_TAG) { tags = tags + 1; } + var r : usize = 0; + while (r < 97) { + if (tn[4754 + r] == TT_LG_N[4754 + r]) { same_rv = same_rv + 1; } + if (tp[4754 + r] == TT_LG_P[4754 + r]) { same_rv = same_rv + 1; } + r = r + 1; + } + i = 1; + while (i <= 4753) { + if (tn[i] < 2097152) { under = under + 1; } + if (tp[i] < 2097152) { under = under + 1; } + i = i + 1; + } + k = k + 1; + } + assert_eq(tags, 12); + assert_eq(same_rv, 12 * 97); + assert_eq(under, 12 * 4753); + // the held-out currents: all positive, the smallest 2 pA (NMOS) and 1 pA (PMOS, at a high Vsb), the largest 372 uA and 271 uA + var cmin_n : u32 = VSB_CEN_N[0]; + var cmax_n : u32 = VSB_CEN_N[0]; + var cmin_p : u32 = VSB_CEN_P[0]; + var cmax_p : u32 = VSB_CEN_P[0]; + i = 0; + while (i < 1000) { + if (VSB_CEN_N[i] < cmin_n) { cmin_n = VSB_CEN_N[i]; } + if (VSB_CEN_N[i] > cmax_n) { cmax_n = VSB_CEN_N[i]; } + if (VSB_CEN_P[i] < cmin_p) { cmin_p = VSB_CEN_P[i]; } + if (VSB_CEN_P[i] > cmax_p) { cmax_p = VSB_CEN_P[i]; } + i = i + 1; + } + assert_eq(cmin_n, 2); + assert_eq(cmin_p, 1); + assert_eq(cmax_n, 372420676); + assert_eq(cmax_p, 270922404); +} + +test the_current_of_both_devices_falls_with_the_source_to_bulk_voltage_at_every_node_above_a_quarter_volt_of_gate_drive_and_the_accessors_pick_the_right_slices { + // The body effect raises the threshold, so at one (Vgs, Vds) the current falls as Vsb grows: the log word of slice k + 1 is at most that of slice k at every node with Vgs at or + // above 0.25 V (ix >= 16), 81 * 49 nodes, six steps, both devices. Below it the PMOS off current is a floor and a junction leakage that rises with Vsb, and the table holds both + // (a rise of up to 18180 words, a factor 2^0.28, at Vgs under 0.125 V), so the test does not claim the whole table. + var viol : u32 = 0; + var checked : u32 = 0; + var dev : u32 = 0; + while (dev < 2) { + var t0 : []const u32 = &TT_LG_N; + if (dev == DEV_P) { t0 = &TT_LG_P; } + var k : u32 = 0; + while (k < 6) { + const a : []const u32 = vsb_tab(dev, t0, k); + const b : []const u32 = vsb_tab(dev, t0, k + 1); + var ix : usize = 16; + while (ix < 97) { + var iy : usize = 0; + while (iy < 49) { + if (b[1 + ix * 49 + iy] > a[1 + ix * 49 + iy]) { viol = viol + 1; } + checked = checked + 1; + iy = iy + 1; + } + ix = ix + 1; + } + k = k + 1; + } + dev = dev + 1; + } + assert_eq(checked, 2 * 6 * 81 * 49); + assert_eq(viol, 0); + // how large the body effect is, at Vgs = 0.25 V (ix = 16), Vds = 1.5 V (iy = 48), weak inversion: the NMOS word falls from 1228960 at Vsb = 0 to 801411 at 1.5 V, a factor + // 2^6.52 = 92 in the current, the PMOS from 940848 to 294870, a factor 2^9.85 = 922; in strong inversion (Vgs = 0.75 V, Vds = 1.5 V) a few percent per quarter volt + assert_eq(TT_LG_N[1 + 16 * 49 + 48], 1228960); + assert_eq(VSB_N6[1 + 16 * 49 + 48], 801411); + assert_eq(TT_LG_P[1 + 16 * 49 + 48], 940848); + assert_eq(VSB_P6[1 + 16 * 49 + 48], 294870); + assert_eq(TT_LG_N[1 + 48 * 49 + 48], 1704014); + assert_eq(VSB_N6[1 + 48 * 49 + 48], 1632007); + // the accessors: the slice 0 is the table the caller passes (word for word, it is that table), the others are this file's tables, k outside 0 .. 6 and a device that is neither are the slice 0 + var w0 : u32 = vsb_tab(DEV_N, &TT_LG_N, 0)[2000]; + var w1 : u32 = vsb_tab(DEV_N, &TT_LG_N, 1)[2000]; + var w6 : u32 = vsb_tab(DEV_N, &TT_LG_N, 6)[2000]; + var w9 : u32 = vsb_tab(DEV_N, &TT_LG_N, 9)[2000]; + var wp : u32 = vsb_tab(DEV_P, &TT_LG_P, 6)[2000]; + var wx : u32 = vsb_tab(7, &TT_LG_N, 3)[2000]; + assert_eq(w0, TT_LG_N[2000]); + assert_eq(w1, VSB_N1[2000]); + assert_eq(w6, VSB_N6[2000]); + assert_eq(w9, TT_LG_N[2000]); + assert_eq(wp, VSB_P6[2000]); + assert_eq(wx, TT_LG_N[2000]); + assert w1 < w0; + assert w6 < w1; + assert wp < VSB_N6[2000]; + var h0 : usize = vsb_cen(DEV_N).len; + assert_eq(h0, 1000); + assert_eq(vsb_cen(DEV_N)[0], VSB_CEN_N[0]); + assert_eq(vsb_cen(DEV_P)[999], VSB_CEN_P[999]); +} + +test the_read_at_zero_source_to_bulk_voltage_is_the_2d_read_bit_for_bit_and_at_a_slice_it_is_the_read_of_that_slice_and_between_two_slices_it_lies_between_them { + // FR-002. At Vsb = 0 the weight of the second slice is 0 and the read is the existing 2-D read of the table passed as the slice 0, to the word, at every point of a lattice of + // 70 x 40 points over (Vgs, Vds), both devices; at the voltage of a slice (k * 2^22 units) it is the 2-D read of that slice; above the supply it is the top slice. Between two slices the + // read of the current lies between the reads of the two (the log word is a blend, and the current is monotone in it). + var at_zero : u32 = 0; + var at_slice : u32 = 0; + var above : u32 = 0; + var between : u32 = 0; + var total : u32 = 0; + var dev : u32 = 0; + while (dev < 2) { + var t0 : []const u32 = &TT_LG_N; + if (dev == DEV_P) { t0 = &TT_LG_P; } + var vg : u32 = 20000; + while (vg < 25165824) { + var vd : u32 = 30000; + while (vd < 25165824) { + total = total + 1; + if (vsb_fine(dev, t0, vg, vd, 0) == lg_fine(t0, vg, vd)) { at_zero = at_zero + 1; } + var k : u32 = 1; + var ok : bool = true; + while (k < 7) { + if (vsb_fine(dev, t0, vg, vd, k << 22) != lg_fine(vsb_tab(dev, t0, k), vg, vd)) { ok = false; } + k = k + 1; + } + if (ok) { at_slice = at_slice + 1; } + if (vsb_fine(dev, t0, vg, vd, 25165824 + 77) == lg_fine(vsb_tab(dev, t0, 6), vg, vd)) { above = above + 1; } + // between slices 2 and 3 (0.5 V and 0.75 V) at 0.6 V: the current is not above the lower Vsb's and not below the higher's (the 0.25 V slices of one device fall with Vsb + // at the nodes above 0.25 V of gate drive; elsewhere the order may flip, so the check is made where Vgs is at least 0.3 V) + const lo : u64 = lg_fine(vsb_tab(dev, t0, 3), vg, vd); + const hi : u64 = lg_fine(vsb_tab(dev, t0, 2), vg, vd); + const mid : u64 = vsb_fine(dev, t0, vg, vd, 10066330); + if (vg < 5033165) { + between = between + 1; + } else { + if (mid >= lo and mid <= hi) { between = between + 1; } + } + vd = vd + 600011; + } + vg = vg + 360007; + } + dev = dev + 1; + } + assert total > 2000; + assert_eq(at_zero, total); + assert_eq(at_slice, total); + assert_eq(above, total); + assert_eq(between, total); + // NEGATIVE CONTROL: the slices of the wrong device (the PMOS table as the slice 0 of an NMOS read) are not the 2-D read, so a mix-up of the devices is seen at Vsb = 0 and between + assert vsb_fine(DEV_N, &TT_LG_P, 12000000, 3000000, 0) != lg_fine(&TT_LG_N, 12000000, 3000000); + assert vsb_fine(DEV_N, &TT_LG_N, 12000000, 3000000, 6291456) != vsb_fine(DEV_P, &TT_LG_P, 12000000, 3000000, 6291456); +} diff --git a/specs/analog/mos_table.t27 b/specs/analog/mos_table.t27 index 0793ffbf68..0ec25fc9e0 100644 --- a/specs/analog/mos_table.t27 +++ b/specs/analog/mos_table.t27 @@ -407,12 +407,51 @@ pub fn lg_lam(t: []const u32, vg: u32, vd: u32) -> u32 { return read_w(t, 1, vg, vd, LG_GBITS, LG_DBITS, LG_NG, LG_ND); } +/// The current in IUNIT from a log word lam and an rv word at the drain voltage dv (units of 2^-24 V): F * 2^(lam / 2^16), both rounded. The common tail of `lg_fine` (lam read from +/// one table) and `lg_fine_vsb` (lam blended from two slices along the source-to-bulk axis), so the two cannot drift apart. +pub fn lg_cur(lam: u32, rv: u64, dv: u32) -> u64 { + const x24 : u64 = (((dv as u64) * rv) + 2048) >> 12; + return (exp2_lam(lam) * vds_factor(x24) + 8388608) >> 24; +} + /// Id(vg, vd) of a log table in IUNIT = 2^-8 of a linear-table word (1.164 pA): F * 2^(lam / 2^16), both rounded. The largest, 402 uA, is 3.5e8 under 2^29. pub fn lg_fine(t: []const u32, vg: u32, vd: u32) -> u64 { const gv : u32 = lim(vg); const dv : u32 = lim(vd); - const x24 : u64 = (((dv as u64) * lg_rv(t, gv)) + 2048) >> 12; - return (exp2_lam(lg_lam(t, gv, dv)) * vds_factor(x24) + 8388608) >> 24; + return lg_cur(lg_lam(t, gv, dv), lg_rv(t, gv), dv); +} + +; --- the source-to-bulk axis (M3e, #11283): the log table read as a function of three voltages ------------------------------------------------------------------------------------- +; The 2-D tables have each bulk tied to its source, so they hold no body effect; a device whose bulk sits on a rail while its source moves (the transmission gate's two devices) is +; read at a source-to-bulk voltage Vsb > 0. The third axis is a stack of LG_NV + 1 = 7 log tables (the slices) at Vsb = k * 2^22 units = k * 0.25 V, k = 0 .. 6, each a legal log +; table of its own (tag word, 4753 log words, 97 rv words), the slice 0 being the 2-D table itself. The read of a point is the read of the two slices around its Vsb with the LOG +; WORD blended linearly between them (`blend1_w`, weights 2^22): the weak-inversion current is exponential in the threshold, and the threshold moves with Vsb nearly linearly over a +; slice, so the blend of the log word is the right one (a blend of the currents would be a chord of an exponential). At Vsb = 0 the weight of the second slice is 0 and the read is the +; 2-D read bit for bit (`blend1_w` with f = 0 returns d0: the rounding half is below the weight 2^22), a test. rv is a function of Vgs only, the same in every slice, and is read from +; the first slice of the pair. The slices of a device are the arguments, not a global, so that the tables of another corner or temperature can use the same read. +/// The Vsb axis: 2^22 units (0.25 V) per cell, 6 cells, 7 slices. +pub const LG_VBITS : u32 = 22; +pub const LG_NV : u32 = 6; + +/// The cell of a source-to-bulk voltage on the axis (0 .. 5): the top slice's voltage belongs to the last cell; a voltage above the supply is the supply. +pub fn lg_vsb_cell(vsb: u32) -> u32 { + return cell_w(lim(vsb), LG_VBITS, LG_NV); +} + +/// The position of a source-to-bulk voltage in its cell, 0 .. 2^22 (2^22 only at the top of the axis). +pub fn lg_vsb_frac(vsb: u32) -> u32 { + const v : u32 = lim(vsb); + return v - (cell_w(v, LG_VBITS, LG_NV) << LG_VBITS); +} + +/// Id(vg, vd) at a source-to-bulk voltage a fraction fz (0 .. 2^22) of the way from the slice ta to the slice tb: the log word of the two slices blended with weights 2^22, then the +/// same tail as `lg_fine`. fz = 0 is `lg_fine(ta, vg, vd)` exactly, fz = 2^22 is `lg_fine(tb, vg, vd)` exactly. +pub fn lg_fine_vsb(ta: []const u32, tb: []const u32, vg: u32, vd: u32, fz: u32) -> u64 { + const gv : u32 = lim(vg); + const dv : u32 = lim(vd); + const la : u64 = (lg_lam(ta, gv, dv)) as u64; + const lb : u64 = (lg_lam(tb, gv, dv)) as u64; + return lg_cur(blend1_w(la, lb, fz, LG_VBITS) as u32, lg_rv(ta, gv), dv); } /// Id(vg, vd) of a log table in table units (words of 298 pA), rounded half up: what the Newton step adds. @@ -1600,3 +1639,77 @@ test a_synthetic_log_table_gives_the_closed_form_value_and_slope { assert_eq(gds_log(&tabz, 12000000, 3000000), 0); assert lg_fine(&tabz, 12000000, 3000000) > 0; } + +test the_source_to_bulk_read_blends_the_log_word_between_two_slices_and_is_the_2d_read_at_the_ends { + // M3e (#11283). Two slices of one synthetic device: the log word of the first is L0 + 8192 ix, the second's is 65536 higher (a factor 2 in the current), rv = 50000 in both. So the + // current at a fraction fz of the way is F 2^(lam / 65536) with lam = L0 + vg / 32 + fz / 64 (fz in units of 2^-22 of a slice: 65536 / 2^22 = 1 / 64). + var ta : [4851]u32 = [0] ** 4851; + var tb : [4851]u32 = [0] ** 4851; + ta[0] = LG_TAG; + tb[0] = LG_TAG; + var ix : u32 = 0; + while (ix < 97) { + var iy : u32 = 0; + while (iy < 49) { + const at : usize = (1 + ix * 49 + iy) as usize; + ta[at] = 700000 + 8192 * ix; + tb[at] = 765536 + 8192 * ix; + iy = iy + 1; + } + ta[(4754 + ix) as usize] = 50000; + tb[(4754 + ix) as usize] = 50000; + ix = ix + 1; + } + var full : u32 = 4194304; + var half : u32 = 2097152; + var worst : f64 = 0.0; + var at_ends : u32 = 0; + var rising : u32 = 0; + var checked : u32 = 0; + var vg : u32 = 100000; + while (vg < VDD) { + var vd : u32 = 70000; + while (vd < VDD) { + // the two ends are the 2-D reads of the slices, exactly + if (lg_fine_vsb(&ta, &tb, vg, vd, 0) == lg_fine(&ta, vg, vd)) { at_ends = at_ends + 1; } + if (lg_fine_vsb(&ta, &tb, vg, vd, full) == lg_fine(&tb, vg, vd)) { at_ends = at_ends + 1; } + // the middle is the closed form: the rounding of an integer (half) and a part in 1e5 of the value + const x : f64 = (vd as f64) * 50000.0 / 68719476736.0; + const f : f64 = 1.0 - exp_f64(0.0 - x); + const lamh : f64 = 700000.0 + (vg as f64) / 32.0 + 32768.0; + const eh : f64 = exp_f64(lamh * 0.6931471805599453 / 65536.0); + worst = fmax64(worst, fabs64(((lg_fine_vsb(&ta, &tb, vg, vd, half)) as f64) - f * eh) - 0.00007 * f * eh); + // and the current rises with the fraction (the second slice is the higher) + if (lg_fine_vsb(&ta, &tb, vg, vd, half) > lg_fine_vsb(&ta, &tb, vg, vd, 1048576)) { rising = rising + 1; } + checked = checked + 1; + vd = vd + 1700003; + } + vg = vg + 1300007; + } + assert checked > 100; + assert_eq(at_ends, 2 * checked); + assert_eq(rising, checked); + assert worst < 1.01; + // NEGATIVE CONTROL: the slices in each other's places read the other end (the second slice is twice the first), so a swap is seen at both ends + assert lg_fine_vsb(&tb, &ta, 12000000, 3000000, 0) != lg_fine_vsb(&ta, &tb, 12000000, 3000000, 0); + assert lg_fine_vsb(&tb, &ta, 12000000, 3000000, 0) > lg_fine_vsb(&ta, &tb, 12000000, 3000000, 0); + // the cell and the position of a source-to-bulk voltage: 0.25 V = 2^22 units, the top of the axis is the end of the last cell, and a voltage above the supply is the supply + var v0 : u32 = 0; + var v1 : u32 = 4194303; + var v2 : u32 = 4194304; + var v3 : u32 = 10000000; + var top : u32 = VDD; + var over : u32 = VDD + 5; + assert_eq(lg_vsb_cell(v0), 0); + assert_eq(lg_vsb_frac(v0), 0); + assert_eq(lg_vsb_cell(v1), 0); + assert_eq(lg_vsb_frac(v1), 4194303); + assert_eq(lg_vsb_cell(v2), 1); + assert_eq(lg_vsb_frac(v2), 0); + assert_eq(lg_vsb_cell(v3), 2); + assert_eq(lg_vsb_frac(v3), 1611392); + assert_eq(lg_vsb_cell(top), 5); + assert_eq(lg_vsb_frac(top), 4194304); + assert_eq(lg_vsb_cell(over), 5); + assert_eq(lg_vsb_frac(over), 4194304); +}