From 3d09358671a78b180093ea222cc3db446f8c9ab4 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 12 Aug 2026 21:47:54 +0000 Subject: [PATCH 01/18] One name for the function that builds a chain Seven example scripts wrapped their chain in a factory, under four spellings for the same idea: `get_link`, `link`, `link_chain`, `get_full_chain`, `uncoded_chain`. A reader who learnt one had to re-learn it on the next page, and nothing said when a factory was called for in the first place. The tutorial skill now carries three rules. A factory exists only when the chain is built more than once; a chain built once and used once stays inline, because wrapping four blocks in a function called once with no argument puts an indirection between the reader and their first chain. When it exists it is `get_()`, the noun following the page's organisation: `get_chain()` for one chain, `get_channel()` and `get_receiver()` for the two halves when a page cuts one in two, `get_transmitter()` when what comes back is a sub-assembly, and `get_uncoded_chain()` / `get_coded_chain(soft)` when two chains differ in structure rather than in a parameter -- two blocks of difference is an argument, four blocks against six is two functions, since merging those would hide behind a flag exactly what the page compares. The third rule is the one that motivated the other two, and it is the same shape as the defect fixed in the previous commit: what the page varies is a parameter, never a module global read behind the signature's back. `get_full_chain(n_spans, steps, linear_only)` also read eleven module-level names, so the call site did not say what changed between two calls. The rename reaches `validation/fec_coding_gain.py` as well: a layer that contradicts the convention is where the convention starts to rot. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Pn2F8X4HZhS8fEJcL5enzw --- .claude/skills/comnumpy-tutorial/SKILL.md | 36 +++++++++++++++++-- CHANGELOG.md | 24 +++++++++++++ docs/tutorials/optical_fiber_nonlinearity.rst | 2 +- examples/mimo/one_shot_alamouti.py | 8 ++--- examples/mimo/one_shot_mimo.py | 4 +-- examples/optical/NLI_simulation.py | 4 +-- examples/optical/gn_model.py | 8 ++--- examples/optical/one_shot_NLI.py | 10 +++--- examples/simple/channel_coding.py | 12 +++---- validation/fec_coding_gain.py | 10 +++--- 10 files changed, 86 insertions(+), 32 deletions(-) diff --git a/.claude/skills/comnumpy-tutorial/SKILL.md b/.claude/skills/comnumpy-tutorial/SKILL.md index 1a26062..c160aea 100644 --- a/.claude/skills/comnumpy-tutorial/SKILL.md +++ b/.claude/skills/comnumpy-tutorial/SKILL.md @@ -63,9 +63,39 @@ then learns the wrong lesson -- they came to see how the library is used. ## Structuring the example script -- One `get_*` function per assembly the page talks about, so that what - varies is an argument. `get_full_chain(n_spans)` beats building a chain - inline six times. +### Naming the chain + +Three rules, and they are about where the reader looks and what the +signature promises. + +1. **A function only when the chain is built more than once** -- several + values of a parameter, several variants, a Monte-Carlo. A chain built + once and used once is written inline: wrapping four blocks in a + function called once, with no argument, is ceremony, and it puts an + indirection between the reader and their first chain. +2. **Always `get_()`**, one prefix, the noun saying what comes + back. Which noun follows from how the page is organized: + + | the page… | names | + |---|---| + | has one chain | `get_chain(...)` | + | cuts one chain in two | `get_channel()` and `get_receiver()` | + | compares two structurally different chains | `get_uncoded_chain()`, `get_coded_chain(soft)` | + | builds a sub-assembly, not a whole chain | the part: `get_transmitter()` | + + Two chains that differ by a block or two are **one** function with a + parameter, not two functions. Two chains that differ in structure -- + four blocks against six -- are two functions, because merging them + would hide behind a flag exactly what the page is comparing. +3. **What varies is a parameter, never a module global.** Constants of + the page (the fibre, the constellation, the roll-off) may stay + global; anything the page *varies* goes through the signature. A + function whose signature announces three arguments and silently reads + eleven more is a closure wearing a `def`, and the reader cannot tell + from the call site what changed. + +### The rest of the script + - **Prefer one chain, transmitter to decision.** A full chain is what the reader will write. Cutting the chain into pieces is justified only when a Monte-Carlo re-runs an expensive stage that could be run once -- and then diff --git a/CHANGELOG.md b/CHANGELOG.md index ab0c3f3..bad37ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -247,6 +247,30 @@ and wiring was not fed, and profiling a wired chain raised. It now shares the edge plan with `forward` and keys its result by block id (`block_ids()`), so two blocks with the same name get one entry each. +### Documentation — one name for the function that builds a chain + +Seven example scripts wrapped their chain in a factory, under four +spellings for the same idea: `get_link`, `link`, `link_chain`, +`get_full_chain`, `uncoded_chain`. A reader who learnt one had to +re-learn it on the next page. + +They now follow one rule, written into the tutorial skill. A factory +exists only when the chain is built more than once — a chain built once +and used once stays inline, because wrapping four blocks in a function +called once with no argument is an indirection between the reader and +their first chain. When it exists it is `get_()`: `get_chain()` +for the page's one chain, `get_channel()` and `get_receiver()` for the +two halves when a page cuts one in two, `get_transmitter()` when what +comes back is a sub-assembly rather than a chain, and +`get_uncoded_chain()` / `get_coded_chain(soft)` when the page compares +two chains that differ in structure rather than in a parameter. + +The third rule is the one that motivated the other two: what the page +varies is a parameter of the function, never a module global read +behind the signature's back. `get_full_chain(n_spans, steps, +linear_only)` also read eleven module-level names, so the call site did +not say what changed between two calls. + ### Documentation — the tutorials on one plan The OFDM, MIMO, Alamouti and PAPR tutorials are rewritten on a single diff --git a/docs/tutorials/optical_fiber_nonlinearity.rst b/docs/tutorials/optical_fiber_nonlinearity.rst index b9366b7..00e328a 100644 --- a/docs/tutorials/optical_fiber_nonlinearity.rst +++ b/docs/tutorials/optical_fiber_nonlinearity.rst @@ -261,7 +261,7 @@ removed by the backward pass. Dispersion compensation alone is the same algorithm with the nonlinear term switched off -- one step per span instead of :math:`\mathrm{StPS}` -- so the -two strategies are one argument of ``get_full_chain`` apart. +two strategies are one argument of ``get_chain`` apart. Results """"""" diff --git a/examples/mimo/one_shot_alamouti.py b/examples/mimo/one_shot_alamouti.py index e06a945..ca036b0 100644 --- a/examples/mimo/one_shot_alamouti.py +++ b/examples/mimo/one_shot_alamouti.py @@ -55,7 +55,7 @@ # --- the three links -------------------------------------------------- -def get_link(kind, H, sigma2=sigma2): +def get_chain(kind, H, sigma2=sigma2): """Build the chain of one scheme, on a given channel realization. The three schemes differ by two blocks -- what is put on the @@ -84,9 +84,9 @@ def get_link(kind, H, sigma2=sigma2): raise ValueError(f"unknown link {kind!r}") -alamouti = get_link("alamouti", rayleigh_channel(1, 2, seed=42)) -siso = get_link("linear", rayleigh_channel(1, 1, seed=1)) -mrc = get_link("linear", rayleigh_channel(2, 1, seed=2)) +alamouti = get_chain("alamouti", rayleigh_channel(1, 2, seed=42)) +siso = get_chain("linear", rayleigh_channel(1, 1, seed=1)) +mrc = get_chain("linear", rayleigh_channel(2, 1, seed=2)) # --- one shot --------------------------------------------------------- alamouti.seed(7) # every stochastic block, reproducibly diff --git a/examples/mimo/one_shot_mimo.py b/examples/mimo/one_shot_mimo.py index f610dd1..444f2cd 100644 --- a/examples/mimo/one_shot_mimo.py +++ b/examples/mimo/one_shot_mimo.py @@ -25,7 +25,7 @@ H = rayleigh_channel(N_r, N_t, seed=0) -def link(detector): +def get_chain(detector): """The same link, closed by one detector or another. Only the last block changes, which is the point: a detector is a @@ -53,7 +53,7 @@ def link(detector): } chains = {} for name, detector in detectors.items(): - chains[name] = link(detector) + chains[name] = get_chain(detector) for name, chain in chains.items(): chain.seed(0) diff --git a/examples/optical/NLI_simulation.py b/examples/optical/NLI_simulation.py index c7fde91..09a287a 100644 --- a/examples/optical/NLI_simulation.py +++ b/examples/optical/NLI_simulation.py @@ -51,7 +51,7 @@ # receiver would re-do 192 split-step propagations instead of 32, and # the propagation is where all the time goes. So the chain is cut where # the physics ends and the DSP begins. -def get_unprocessed_chain(): +def get_channel(): """Symbols to the field the receiver sees, launch power included.""" return Sequential([ SymbolGenerator(constellation.order, name="data_tx"), @@ -116,7 +116,7 @@ def get_receiver(steps, linear_only, *, gain, reference): "DBP, 50 steps/span": (50, False), } -channel = get_unprocessed_chain() +channel = get_channel() snr = {} ser = {} elapsed = {} diff --git a/examples/optical/gn_model.py b/examples/optical/gn_model.py index 8bcf97c..06b8ff9 100644 --- a/examples/optical/gn_model.py +++ b/examples/optical/gn_model.py @@ -120,7 +120,7 @@ def launch_gain(power_W): return np.sqrt(np.asarray(power_W) / 2) -def link_chain(order=16, power_W=1e-3): +def get_chain(order=16, power_W=1e-3): """The whole link, from symbols to equalized symbols, as one chain.""" source = ([GaussianGenerator(1.0, name="tx")] if order is None else [SymbolGenerator(order, name="source"), @@ -152,7 +152,7 @@ def measure(chain, powers_W, seed=3): reference="tx", seed=seed)["snr_dB"] -chain = link_chain() +chain = get_chain() chain.summary(STIMULUS) chain.set_params(fibre__use_only_linear=True) @@ -198,13 +198,13 @@ def measure(chain, powers_W, seed=3): print("stimulus nonlinear SNR above the model") for order, label in ((4, "QPSK"), (16, "16QAM"), (64, "64QAM"), (256, "256QAM"), (None, "Gaussian")): - noiseless = link_chain(order) + noiseless = get_chain(order) noiseless.set_params(fibre__noise_scaling=0.0) value = measure(noiseless, [1e-3])[0] print(f"{label:12s} {value:10.2f} dB {value - nli_only_dB:+10.2f} dB") mermaid_dir = "../../docs/tutorials/mermaid/" with open(f"{mermaid_dir}/gn_model.mmd", "w") as stream: - stream.write(link_chain().to_mermaid()) + stream.write(get_chain().to_mermaid()) plt.show() diff --git a/examples/optical/one_shot_NLI.py b/examples/optical/one_shot_NLI.py index bfdd197..d19cbec 100644 --- a/examples/optical/one_shot_NLI.py +++ b/examples/optical/one_shot_NLI.py @@ -44,7 +44,7 @@ # --- the chain -------------------------------------------------------- -def get_full_chain(n_spans, *, steps=1, linear_only=True): +def get_chain(n_spans, *, steps=1, linear_only=True): """The whole link, from the symbols to the decisions. Transmitter, ``n_spans`` of fibre and amplifier, and the receiver @@ -109,7 +109,7 @@ def score(chain): snr_ase_only = {} print("spans measured ASE only the fibre SER phase time") for n_spans in spans: - chain = get_full_chain(n_spans).seed(0) + chain = get_chain(n_spans).seed(0) estimates[n_spans] = chain(N) snr, ser = score(chain) snr_per_span[n_spans] = snr @@ -136,7 +136,7 @@ def score(chain): # pulse shaping, resampling, matched filtering. It has to sit far above # every number in the table, or the chain is measuring its own filters # rather than the fibre. -floor = get_full_chain(1).seed(0) +floor = get_chain(1).seed(0) floor.set_params(link__use_only_linear=True, link__noise_scaling=0.0) floor(N) print(f"\ndistortion floor of the chain, no noise and no fibre: " @@ -182,7 +182,7 @@ def score(chain): # Where that time goes. `profile_execution_time` runs the chain and times # each block on the way through, so the same pass answers the question. -profile = get_full_chain(N_span).seed(0).profile_execution_time(N) +profile = get_chain(N_span).seed(0).profile_execution_time(N) print("\nblock time") for block_id, elapsed in profile.items(): print(f"{block_id:22s} {1e3 * elapsed:8.1f} ms") @@ -191,7 +191,7 @@ def score(chain): # The same chain with the nonlinear term switched back on in the # receiver. Everything else -- the seed, the link, the phase correction # -- is unchanged, so the comparison is over the same realization. -back_propagated = get_full_chain(N_span, steps=StPS_DBP, +back_propagated = get_chain(N_span, steps=StPS_DBP, linear_only=False).seed(0) profile_dbp = back_propagated.profile_execution_time(N) snr_dbp, ser_dbp = score(back_propagated) diff --git a/examples/simple/channel_coding.py b/examples/simple/channel_coding.py index e63c0bb..7016ea2 100644 --- a/examples/simple/channel_coding.py +++ b/examples/simple/channel_coding.py @@ -52,7 +52,7 @@ def row(label, values): print(row("beta_d ", spectrum.beta_d)) -def uncoded_chain(): +def get_uncoded_chain(): return Sequential([ SymbolGenerator(2, name="tx"), SymbolMapper(BPSK), @@ -61,7 +61,7 @@ def uncoded_chain(): ], taps=["tx"], name="uncoded BPSK") -def coded_chain(soft): +def get_coded_chain(soft): return Sequential([ SymbolGenerator(2, name="tx"), ConvolutionalEncoder((0o133, 0o171)), @@ -73,9 +73,9 @@ def coded_chain(soft): curves = {} -for label, chain, code_rate in (("uncoded", uncoded_chain(), 1.0), - ("hard-decision Viterbi", coded_chain(False), rate), - ("soft-decision Viterbi", coded_chain(True), rate)): +for label, chain, code_rate in (("uncoded", get_uncoded_chain(), 1.0), + ("hard-decision Viterbi", get_coded_chain(False), rate), + ("soft-decision Viterbi", get_coded_chain(True), rate)): start = time.perf_counter() results = sweep(chain, "noise.snr_dB", snr_dB(ebn0_dB, code_rate), {"ber": compute_ser}, n_bits, reference="tx", seed=4) @@ -134,7 +134,7 @@ def coded_chain(soft): plt.savefig(f"{img_dir}/channel_coding_fig2.png") mermaid_dir = "../../docs/tutorials/mermaid/" -for diagram_name, diagram_chain in [("channel_coding", coded_chain(True))]: +for diagram_name, diagram_chain in [("channel_coding", get_coded_chain(True))]: with open(f"{mermaid_dir}/{diagram_name}.mmd", "w") as stream: stream.write(diagram_chain.to_mermaid()) diff --git a/validation/fec_coding_gain.py b/validation/fec_coding_gain.py index 3ccdcc7..8a858c6 100644 --- a/validation/fec_coding_gain.py +++ b/validation/fec_coding_gain.py @@ -25,7 +25,7 @@ BPSK = np.array([1.0 + 0.0j, -1.0 + 0.0j]) # bit 0 -> +1, bit 1 -> -1 -def coded_chain(soft): +def get_coded_chain(soft): bpsk = BPSK demapper = (SymbolDemapper(bpsk, soft=True, name="demap") if soft else SymbolDemapper(bpsk, name="demap")) @@ -39,7 +39,7 @@ def coded_chain(soft): ]) -def uncoded_chain(): +def get_uncoded_chain(): bpsk = BPSK return Sequential([ SymbolGenerator(2, name="tx"), @@ -54,13 +54,13 @@ def main(): snr_coded = EBN0_DB_RANGE + 10 * np.log10(CODE_RATE) ber = {} - ber["uncoded"] = sweep(uncoded_chain(), "noise.snr_dB", EBN0_DB_RANGE, + ber["uncoded"] = sweep(get_uncoded_chain(), "noise.snr_dB", EBN0_DB_RANGE, {"ber": compute_ber_bits}, N_BITS, reference="tx", seed=10)["ber"] - ber["hard"] = sweep(coded_chain(soft=False), "noise.snr_dB", snr_coded, + ber["hard"] = sweep(get_coded_chain(soft=False), "noise.snr_dB", snr_coded, {"ber": compute_ber_bits}, N_BITS, reference="tx", seed=20)["ber"] - ber["soft"] = sweep(coded_chain(soft=True), "noise.snr_dB", snr_coded, + ber["soft"] = sweep(get_coded_chain(soft=True), "noise.snr_dB", snr_coded, {"ber": compute_ber_bits}, N_BITS, reference="tx", seed=30)["ber"] From 7740652e79a3ba6014d467a60f678247e8ceb228 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 05:59:03 +0000 Subject: [PATCH 02/18] Write down where derived state lives (D50) Some blocks precompute in `__post_init__`, others in `prepare()`, and nothing said which belonged where. `set_params` was never the ambiguity -- it validates the field is an init field and re-runs `__post_init__` on every block it touches, so both families are correct through it. The hole is direct assignment, which stays legal and silently leaves the majority of blocks inconsistent: of the 95 Processor subclasses, 57 of the 67 that derive anything derive it in the constructor. The rule splits by what a value depends on. `__post_init__` precomputes what depends only on the block's parameters; `prepare(x)` derives what depends on the signal. The direction is asymmetric, which is why there are two places: signal-dependent state in `__post_init__` is wrong, while parameter-only state in `prepare()` is merely repeated work -- `FiberLink` and `DBP` do the latter, negligibly against the split-step cost, so deriving in `prepare()` is not evidence of signal dependence. Blocks cannot be frozen to close the hole: `wiring` writes `reference` during the pass and estimators write `theta_`, so a Processor must stay mutable. The discipline is therefore carried by the rule rather than by the type, and the corollary that makes it work is that `__post_init__` must be re-callable with no side effect. The measured example in CONVENTIONS.md is checked, not asserted: `Downsampler(4, use_filter=True)` keeps a 1/4 cutoff after `.L = 2` and rebuilds it to 1/2 after `set_params`. The ratchet that would make an incomplete `__post_init__` unshippable -- build in A, `set_params` to B, require the output of a block built directly in B -- is named as not done. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Pn2F8X4HZhS8fEJcL5enzw --- ARCHITECTURE.md | 17 +++++++++++++++++ CONVENTIONS.md | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 4b263b9..24c38b9 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -974,6 +974,23 @@ qui dit ce qu'un code récupérera. --- +### 4.19 Où vit l'état dérivé, et comment on change un paramètre (nouveau) + +| # | Décision | Motif | Alternatives rejetées | Statut | +|---|----------|-------|-----------------------|--------| +| D50 | **Un bloc précalcule à deux endroits, et un seul chemin change un paramètre.** (a) `__post_init__` valide, normalise et précalcule ce qui ne dépend **que des paramètres du bloc** — coefficients de filtre, alphabet coercé en tableau, masque d'allocation. (b) `prepare(x)` dérive ce qui dépend du **signal** : sa longueur, son rythme, sa forme, son nombre de trajets — et c'est là que se fait la validation d'axe des blocs de catégorie 3 (D2). (c) Un paramètre se change par `Sequential.set_params` (D34), **jamais par affectation directe** sur le bloc. (d) Corollaire normatif qui rend (c) vrai : tout ce que `__post_init__` calcule doit être recalculable par un second appel à `__post_init__`, sans effet de bord — c'est exactement ce que `set_params` fait sur chaque bloc touché. | **La majorité des blocs précalcule au constructeur** : sur les 95 sous-classes de `Processor`, 50 dérivent leur état dans `__post_init__` seul, 7 dans les deux, 10 dans `prepare()` seul — soit **57 sur 67** de ceux qui dérivent quelque chose. Une affectation directe laisse donc la majorité des blocs dans un état incohérent, **en silence** : mesuré sur `Downsampler(4, use_filter=True)`, écrire `.L = 2` laisse le filtre anti-repliement à une coupure de 1/4 alors que la décimation vaut 2, et `set_params(downsampler__L=2)` le reconstruit à 1/2. Ce n'est pas un risque théorique — le défaut corrigé dans les exemples optiques était **le même couple désaccordé**, une coupure et une décimation écrites à la main au lieu d'être dérivées l'une de l'autre, et il a posé un plancher d'ISI à 22,9 dB sous toutes les courbes d'un tutoriel sans rien lever. **La direction est asymétrique**, et c'est ce qui justifie deux endroits plutôt qu'un : mettre de l'état dépendant du signal dans `__post_init__` est **faux** (le constructeur ne connaît pas le signal) ; mettre de l'état purement paramétrique dans `prepare()` est **seulement du travail répété**. `DBP` est dans ce second cas — son `prepare()` ne lit pas le signal du tout — et `FiberLink` y est pour tout sauf `manakov_`. Négligeable devant le SSFM, donc laissé tel quel, mais cela veut dire que « dérive dans `prepare()` » ne prouve pas la dépendance au signal, et la règle doit être écrite plutôt que lue dans le code. | **Geler les blocs** pour que l'affectation lève : fermé par la bibliothèque elle-même — `wiring` (D42c) écrit `reference` sur un bloc **pendant** la passe, et tout estimateur écrit son `theta_` (D23). Un `Processor` doit rester mutable, ce qui distingue sa nature de celle des objets valeur (`FiberSpec`, `Constellation`, `CarrierAllocation`), gelés à juste titre. La discipline ne peut donc pas être portée par le type. **Un `__setattr__` qui reconstruit tout seul** : rendrait `.L = 2` correct, mais fait qu'une affectation déclenche du calcul en silence, exige un drapeau de ré-entrance (`__post_init__` affecte des champs) et un second pour « construction terminée » (la dataclass affecte champ par champ), et surtout **cache la règle au lieu de l'enseigner**. **Tout dériver dans `prepare()`** : supprime l'ambiguïté, mais reconstruirait les 16 001 coefficients d'un SRRC à chaque passe, ou imposerait un cache invalidé à la main — le même problème déplacé d'un cran. **Ne rien écrire** : c'est l'état d'avant, celui qui laisse un bloc neuf dériver sans que rien ne le dise. | **Acté** | + +**Ce que cette décision ne fait pas.** Elle énonce l'invariant, elle ne +le vérifie pas. Le cliquet correspondant — construire un bloc en A, +`set_params` vers B, et exiger la même sortie qu'un bloc construit +directement en B — reste à écrire, et c'est lui qui rendrait un +`__post_init__` incomplet impossible à livrer. Il demande une table de +cas par classe (on ne devine pas des paramètres valides génériquement), +avec les blocs non couverts listés en `skip` explicite pour que +l'omission se voie. + +--- + ### 4.15 Fibre et simulation, séparées (nouveau) | # | Décision | Motif | Alternatives rejetées | Statut | diff --git a/CONVENTIONS.md b/CONVENTIONS.md index 7a84996..a91b889 100644 --- a/CONVENTIONS.md +++ b/CONVENTIONS.md @@ -120,6 +120,46 @@ idea. Blocks that need one are `DataAided*`, by opposition to the `Blind*` family; that is the standard pair of the field (Proakis, §8: *data-aided* vs *blind* estimation). +## Where derived state lives, and how a parameter changes (D50) + +A block precomputes in two places, and the split is by *what the value +depends on*: + +* **`__post_init__`** — validate, normalize, and precompute whatever + depends **only on the block's own parameters**: filter taps, an + alphabet coerced to an array, an allocation mask. +* **`prepare(x)`** — derive whatever depends on the **signal**: its + length, its rate, its shape, how many paths it carries. Axis + validation for category-3 blocks happens here. + +The direction is asymmetric, which is why there are two places and not +one. Signal-dependent state in `__post_init__` is **wrong** — the +constructor has not seen the signal. Parameter-only state in `prepare()` +is merely **repeated work**; `FiberLink` and `DBP` do this and it is +negligible against the split-step cost, so "derived in `prepare()`" is +not evidence that a value depends on the signal. + +**A parameter changes through `Sequential.set_params` (D34), never by +assignment.** `set_params` re-runs `__post_init__` on every block it +touches; a direct assignment does not, and 57 of the 67 blocks that +derive anything derive it there: + +```python +chain.set_params(downsampler__L=2) # rebuilds the anti-alias filter +chain["downsampler"].L = 2 # does not -- the filter stays at 1/4 +``` + +Blocks cannot be frozen to make that assignment raise: `wiring` writes +`reference` on a block *during* the pass, and every estimator writes its +own `theta_`. Mutability is what separates a `Processor` from a value +object such as `FiberSpec` or `Constellation`. + +**Writing a new block.** Whatever `__post_init__` computes must be +recomputable by calling `__post_init__` again, with no side effect — that +second call is exactly what `set_params` makes. A block that appends to a +list, opens a file or consumes a generator there breaks `set_params` for +everything downstream of it. + ## Error messages Validation failures raise `comnumpy.ShapeError` and follow the template From b484394df306588f0afb53d8b417178bba2be1db Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 06:58:33 +0000 Subject: [PATCH 03/18] Let the link budget its own noise, and fix what direct assignment broke Three tutorials wrote the same amplifier-noise product by hand, with three spellings of the polarization factor: `2 * N_SPANS * density * BAUD`, `N_span * density * R_s`, `n_spans * n_ase * R_s`. That factor is the one whose convention made the GN-model page and the back-propagation page look like they disagreed, and `FiberLink` already held every term of it. `FiberLink.budget(bandwidth_Hz, polarizations=)` returns the noise the block will actually add, integrated over the bandwidth a receiver keeps -- the symbol rate, not the simulated `fs`, which is why the examples were recomputing rather than reading `edfa_N_ase`. `prepare` and `budget` now share `_ase_densities`, so the two cannot drift: one turns the density into a variance over `fs`, the other into a power over the receiver's bandwidth. The three call sites reproduce their published numbers to the decimal: -21.88 dBm, -20.88 dBm. `launch_amplitude(power_W, polarizations=)` names the other half of the same trap -- the `sqrt(P/2)` of a dual-polarization launch, written by hand at three call sites. Two smaller things the examples were doing the long way: `compute_effective_snr` already takes `unit="dB"` and two of its three call sites converted by hand, and the optical chains decided outside the chain with `hard_projector` where a `SymbolDemapper` and a tap give both the soft estimate and the decisions. D50 found a live regression within the hour. `CD_compensation_part1.py` raised `TypeError: 'Constellation' object is not subscriptable`: it sets `chain["mapper"].alphabet` by assignment, and the `Constellation` migration put the coercion in `__post_init__`, which a direct write skips. The example is in `SLOW`, so the smoke test never ran it and the breakage shipped silently -- nine examples are in that position and nothing executes them. Fixed here through `set_params`, along with the three other scripts that assigned into a block (`monte_carlo_simulation_1` and `_2` on `noise.sigma2` and `channel.H`). Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Pn2F8X4HZhS8fEJcL5enzw --- docs/tutorials/gn_model.rst | 49 +++--- docs/tutorials/optical_fiber_nonlinearity.rst | 4 +- examples/mimo/monte_carlo_simulation_1.py | 4 +- examples/mimo/monte_carlo_simulation_2.py | 4 +- examples/optical/CD_compensation_part1.py | 13 +- examples/optical/NLI_simulation.py | 20 +-- examples/optical/gn_model.py | 26 ++-- examples/optical/one_shot_NLI.py | 38 ++--- src/comnumpy/optical/links.py | 135 +++++++++++++++- src/comnumpy/optical/utils.py | 70 ++++++++- tests/optical/test_link_budget.py | 146 ++++++++++++++++++ 11 files changed, 423 insertions(+), 86 deletions(-) create mode 100644 tests/optical/test_link_budget.py diff --git a/docs/tutorials/gn_model.rst b/docs/tutorials/gn_model.rst index f26b14d..127e99f 100644 --- a/docs/tutorials/gn_model.rst +++ b/docs/tutorials/gn_model.rst @@ -107,27 +107,29 @@ of this page asks it several. the GN model's convention, and the first of three places a factor of two hides in this tutorial. -``analytic_ase`` is the second. It calls -:func:`~comnumpy.optical.utils.compute_erbium_doped_fiber_N_ase`, which is -*the same function* :class:`~comnumpy.optical.links.FiberLink` uses to -generate the noise it adds during propagation. That is deliberate: in Part 2 -this prediction is compared against a measurement through the whole chain, -and had the prediction used a formula retyped from a textbook, the comparison -would only be checking the transcription. Using the library's own function -makes the comparison test the *chain* instead -- the spectral density, the -bandwidth, the two polarizations, the matched filter. - -The factor two in ``analytic_ase`` is the polarization: the function returns -the density for one, and an amplifier emits into both, each with its own -independent noise. +``analytic_ase`` is the second, and it does not compute anything: it asks +the link. :meth:`~comnumpy.optical.links.FiberLink.budget` returns the noise +that same block will add during propagation, integrated over the bandwidth a +receiver keeps. That is deliberate: in Part 2 this prediction is compared +against a measurement through the whole chain, and had the prediction used a +formula retyped from a textbook, the comparison would only be checking the +transcription. Asking the link makes the comparison test the *chain* instead +-- the spectral density, the bandwidth, the two polarizations, the matched +filter. + +``polarizations=2`` is where the factor lives. A spectral density is per +polarization, and an amplifier emits into both, each with its own +independent noise; writing that product by hand at every call site is how +two pages end up quoting budgets 3 dB apart. .. warning:: **The 3 dB that becomes 9 dB.** ``power_W`` is the power of the *channel*, summed over both polarizations, because that is the convention the GN model uses. Each polarization therefore carries half of it, which - is what ``launch_gain`` is for in Part 2. Give each polarization the full - ``power_W`` instead and you launch 3 dB more than you think; since the + is what ``launch_amplitude(..., polarizations=2)`` is for in Part 2. Give + each polarization the full ``power_W`` instead and you launch 3 dB more + than you think; since the nonlinear interference goes as the cube of the power, your simulation then reports **9 dB** more of it than the model predicts, and the model looks broken when it is not. @@ -162,7 +164,7 @@ roll-off smearing the very guard band the figure exists to show. eta = 1223 /W^2 (GN model, one channel) P_ASE = -20.88 dBm (5 spans, NF = 6 dB, both polarizations) - optimum = +1.74 dBm SNR = 20.86 dB + optimum = +1.74 dBm SNR = 20.86 dB check : eta P^3 / (P_ASE/2) = 1.000000 Two things read off the figure. The **cut** is the filled channel: the one @@ -248,12 +250,13 @@ Everything above is a prediction. Now we propagate samples and find out. .. literalinclude:: ../../examples/optical/gn_model.py :language: python - :lines: 115-153 + :lines: 114-149 .. mermaid:: mermaid/gn_model.mmd -``launch_gain`` is the factor of two of the warning above, made explicit: -:math:`\sqrt{P/2}` per polarization for a channel power :math:`P`. +``launch_amplitude(power_W, polarizations=2)`` is the factor of two of the +warning above, named rather than written: :math:`\sqrt{P/2}` of field per +polarization for a channel power :math:`P`. ``name="launch"`` and ``name="fibre"`` are what let the rest of the page *reconfigure* the link instead of rebuilding it: ``chain.set_params`` reaches @@ -293,7 +296,7 @@ form. At 0 dBm launch the measured SNR *is* :math:`-P_{\mathrm{ASE}}` in dBm. .. literalinclude:: ../../examples/optical/gn_model.py :language: python - :lines: 155-165 + :lines: 151-161 .. code:: @@ -320,7 +323,7 @@ Now the nonlinear term, at fourteen launch powers. .. literalinclude:: ../../examples/optical/gn_model.py :language: python - :lines: 166-193 + :lines: 162-189 .. code:: @@ -376,7 +379,7 @@ modulation formats are not, and the model is blind to the difference. .. literalinclude:: ../../examples/optical/gn_model.py :language: python - :lines: 195-204 + :lines: 191-200 .. code:: @@ -401,7 +404,7 @@ decibel for 16QAM, less as the format grows. .. literalinclude:: ../../examples/optical/gn_model.py :language: python - :lines: 206-210 + :lines: 202-206 Going further diff --git a/docs/tutorials/optical_fiber_nonlinearity.rst b/docs/tutorials/optical_fiber_nonlinearity.rst index 00e328a..0123b4c 100644 --- a/docs/tutorials/optical_fiber_nonlinearity.rst +++ b/docs/tutorials/optical_fiber_nonlinearity.rst @@ -325,7 +325,7 @@ the amplifier noise alone would allow. .. literalinclude:: ../../examples/optical/NLI_simulation.py :language: python - :lines: 1-84 + :lines: 1-85 Before propagating anything, the closed form of :doc:`gn_model` says where the optimum should fall. It describes this link with two changes from the @@ -334,7 +334,7 @@ instead of two, which is what ``polarizations=1`` is for: .. literalinclude:: ../../examples/optical/NLI_simulation.py :language: python - :lines: 87-104 + :lines: 88-104 .. code:: diff --git a/examples/mimo/monte_carlo_simulation_1.py b/examples/mimo/monte_carlo_simulation_1.py index 52f187d..d342bf8 100644 --- a/examples/mimo/monte_carlo_simulation_1.py +++ b/examples/mimo/monte_carlo_simulation_1.py @@ -44,13 +44,13 @@ for index_snr, snr_dB in enumerate(snr_dB_list): sigma2 = sig_power*(10**(-snr_dB/10)) - chain["noise"].sigma2 = sigma2 + chain.set_params(noise__sigma2=sigma2) for _ in range(N_test): # new channel realization H = rayleigh_channel(N_r=N_r, N_t=N_t) - chain["channel"].H = H + chain.set_params(channel__H=H) # generate data Y = chain((N_t, N)) diff --git a/examples/mimo/monte_carlo_simulation_2.py b/examples/mimo/monte_carlo_simulation_2.py index fa6303f..4b392ff 100644 --- a/examples/mimo/monte_carlo_simulation_2.py +++ b/examples/mimo/monte_carlo_simulation_2.py @@ -40,13 +40,13 @@ for index_snr, snr_dB in enumerate(snr_dB_list): sigma2 = N_t*(10**(-snr_dB/10)) - chain["noise"].sigma2 = sigma2 + chain.set_params(noise__sigma2=sigma2) for _ in range(N_test): # new channel realization H = rayleigh_channel(N_r=N_r, N_t=N_t) - chain["channel"].H = H + chain.set_params(channel__H=H) # generate data Y = chain((N_t, N)) diff --git a/examples/optical/CD_compensation_part1.py b/examples/optical/CD_compensation_part1.py index ef4d42d..ec072ff 100644 --- a/examples/optical/CD_compensation_part1.py +++ b/examples/optical/CD_compensation_part1.py @@ -78,10 +78,13 @@ epsilon_b = constellation.energy / k # update chain and compensator parameters - chain["generator"].M = constellation.order - chain["mapper"].alphabet = constellation - full_compensator1["demapper"].alphabet = constellation - full_compensator2["demapper"].alphabet = constellation + # through set_params, never by assignment (D50): SymbolMapper coerces + # its alphabet in __post_init__, and a direct write skips that -- the + # block then holds a Constellation where its forward indexes an array + chain.set_params(generator__M=constellation.order, + mapper__alphabet=constellation) + full_compensator1.set_params(demapper__alphabet=constellation) + full_compensator2.set_params(demapper__alphabet=constellation) # perform simulation ber_theo = [] @@ -96,7 +99,7 @@ # perform MC simulations N0 = epsilon_b/snr_per_bit # snr_bit = epsilon_b/N0 = (epsilon_s/log2(order))/N0 - chain["noise"].sigma2 = N0 # change noise variance + chain.set_params(noise__sigma2=N0) y = chain(N) # evaluate metric diff --git a/examples/optical/NLI_simulation.py b/examples/optical/NLI_simulation.py index 09a287a..ecb867d 100644 --- a/examples/optical/NLI_simulation.py +++ b/examples/optical/NLI_simulation.py @@ -11,18 +11,18 @@ from comnumpy.core.compensators import DataAidedPhaseCompensator from comnumpy.core.filters import SRRCFilter from comnumpy.core.generators import SymbolGenerator -from comnumpy.core.mappers import SymbolMapper +from comnumpy.core.mappers import SymbolDemapper, SymbolMapper from comnumpy.core.metrics import compute_effective_snr, compute_ser from comnumpy.core.processors import Amplifier, Downsampler, Upsampler -from comnumpy.core.utils import Constellation, hard_projector +from comnumpy.core.utils import Constellation from comnumpy.core.visualizers import plot_error_rate from comnumpy.optical.dbp import DBP from comnumpy.optical.fiber import FiberSpec from comnumpy.optical.gn_model import (gn_model_nli_power, gn_model_snr, optimal_launch_power) from comnumpy.optical.links import FiberLink -from comnumpy.optical.utils import (compute_erbium_doped_fiber_N_ase, - dbm_to_watt, watt_to_dbm) +from comnumpy.optical.utils import (dbm_to_watt, launch_amplitude, + watt_to_dbm) img_dir = "../../docs/tutorials/img/" @@ -81,7 +81,8 @@ def get_receiver(steps, linear_only, *, gain, reference): Downsampler(oversampling_dsp), Amplifier(gain), DataAidedPhaseCompensator(reference, name="phase"), - ]) + SymbolDemapper(constellation, name="data_rx"), + ], taps=["phase"]) # --- what the closed form expects of this link ------------------------- @@ -91,8 +92,7 @@ def get_receiver(steps, linear_only, *, gain, reference): # and it is *single*-polarization, so the scalar NLSE applies and the # weights are the ones of `polarizations=1` -- 5.3 dB more interference # at equal power. The ASE is over one polarization for the same reason. -ase_W = N_span * compute_erbium_doped_fiber_N_ase( - fiber.alpha_dB, L_span, NF_dB, nu=fiber.carrier_frequency_Hz) * R_s +ase_W = get_channel()["link"].budget(R_s)["ase_power_W"] eta = gn_model_nli_power(fiber, span_length_km=L_span, n_spans=N_span, powers_W=np.array([1e-3]), frequencies_Hz=np.array([fiber.carrier_frequency_Hz]), @@ -126,7 +126,7 @@ def get_receiver(steps, linear_only, *, gain, reference): elapsed[name] = 0.0 for index, dBm in enumerate(dBm_list): - amp = np.sqrt(dbm_to_watt(dBm)) + amp = launch_amplitude(dbm_to_watt(dBm)) for trial in range(N_trial): # the two fields differ only by the fibre's nonlinearity, and # the same seed gives them the same symbols and the same noise @@ -142,9 +142,9 @@ def get_receiver(steps, linear_only, *, gain, reference): receiver = get_receiver(steps, linear_only, gain=1 / amp, reference=symbols) bound = name == "amplifier noise only" - estimate = receiver(fields[bound]) + detected = receiver(fields[bound]) elapsed[name] += receiver.elapsed_ - detected, _ = hard_projector(estimate, constellation) + estimate = receiver.tap("phase") snr[name][index] += compute_effective_snr(symbols, estimate) / N_trial ser[name][index] += compute_ser(reference, detected) / N_trial diff --git a/examples/optical/gn_model.py b/examples/optical/gn_model.py index 06b8ff9..b712166 100644 --- a/examples/optical/gn_model.py +++ b/examples/optical/gn_model.py @@ -15,8 +15,8 @@ from comnumpy.optical.gn_model import (gn_model_nli_power, gn_model_snr, optimal_launch_power) from comnumpy.optical.links import FiberLink -from comnumpy.optical.utils import (compute_erbium_doped_fiber_N_ase, - dbm_to_watt, watt_to_dbm) +from comnumpy.optical.utils import (dbm_to_watt, launch_amplitude, + watt_to_dbm) from comnumpy.optical.wdm import WDMGrid img_dir = "../../docs/tutorials/img/" @@ -59,13 +59,13 @@ def comb_eta(n_channels): def analytic_ase(n_spans=N_SPANS, bandwidth_Hz=BAUD): """Amplifier noise in the channel, over both polarizations. - ``compute_erbium_doped_fiber_N_ase`` returns the one-sided spectral - density of a single amplifier **per polarization**; the factor two - is the second polarization, which carries its own independent noise - and is the term the channel-power convention makes easy to forget. + The link budgets its own noise. ``polarizations=2`` is the term the + channel-power convention makes easy to forget: the spectral density + of an amplifier is **per polarization**, and a coherent link carries + two independent copies of it. """ - density = compute_erbium_doped_fiber_N_ase(SMF.alpha_dB, SPAN_KM, NF_dB) - return 2 * n_spans * density * bandwidth_Hz + link = FiberLink(n_spans, L_span=SPAN_KM, fs=FS, fiber=SMF, NF_dB=NF_dB) + return link.budget(bandwidth_Hz, polarizations=2)["ase_power_W"] grid = comb(9) @@ -115,11 +115,6 @@ def analytic_ase(n_spans=N_SPANS, bandwidth_Hz=BAUD): # Part 2 -- the simulation, which is here to disagree # =========================================================================== -def launch_gain(power_W): - """Amplifier gain for a channel power split over two polarizations.""" - return np.sqrt(np.asarray(power_W) / 2) - - def get_chain(order=16, power_W=1e-3): """The whole link, from symbols to equalized symbols, as one chain.""" source = ([GaussianGenerator(1.0, name="tx")] if order is None else @@ -129,7 +124,7 @@ def get_chain(order=16, power_W=1e-3): *source, Upsampler(OS, scale=np.sqrt(OS)), SRRCFilter(ROLLOFF, OS, N_h=40, method="fft"), - Amplifier(launch_gain(power_W), name="launch"), + Amplifier(launch_amplitude(power_W, polarizations=2), name="launch"), FiberLink(N_SPANS, L_span=SPAN_KM, StPS=40, fs=FS, fiber=SMF, NF_dB=NF_dB, name="fibre"), DBP(N_SPANS, L_span=SPAN_KM, StPS=1, fs=FS, fiber=SMF, @@ -147,7 +142,8 @@ def effective_snr_dB(sent, received): def measure(chain, powers_W, seed=3): - return sweep(chain, "launch.gain", launch_gain(powers_W), + return sweep(chain, "launch.gain", + launch_amplitude(powers_W, polarizations=2), {"snr_dB": effective_snr_dB}, STIMULUS, reference="tx", seed=seed)["snr_dB"] diff --git a/examples/optical/one_shot_NLI.py b/examples/optical/one_shot_NLI.py index d19cbec..7126322 100644 --- a/examples/optical/one_shot_NLI.py +++ b/examples/optical/one_shot_NLI.py @@ -10,16 +10,15 @@ from comnumpy.core.compensators import DataAidedPhaseCompensator from comnumpy.core.filters import SRRCFilter from comnumpy.core.generators import SymbolGenerator -from comnumpy.core.mappers import SymbolMapper +from comnumpy.core.mappers import SymbolDemapper, SymbolMapper from comnumpy.core.metrics import compute_effective_snr, compute_ser from comnumpy.core.processors import Amplifier, Downsampler, Upsampler -from comnumpy.core.utils import Constellation, hard_projector +from comnumpy.core.utils import Constellation from comnumpy.core.visualizers import plot_error_rate, plot_iq from comnumpy.optical.dbp import DBP from comnumpy.optical.fiber import FiberSpec from comnumpy.optical.links import FiberLink -from comnumpy.optical.utils import (compute_erbium_doped_fiber_N_ase, - dbm_to_watt) +from comnumpy.optical.utils import dbm_to_watt, launch_amplitude img_dir = "../../docs/tutorials/img/" @@ -40,7 +39,7 @@ N = N_s * oversampling_sim fs = R_s * oversampling_sim oversampling_ratio = oversampling_sim // oversampling_dsp -amp = np.sqrt(dbm_to_watt(dBm)) +amp = launch_amplitude(dbm_to_watt(dBm)) # --- the chain -------------------------------------------------------- @@ -76,17 +75,16 @@ def get_chain(n_spans, *, steps=1, linear_only=True): Downsampler(oversampling_dsp), Amplifier(1 / amp), DataAidedPhaseCompensator(name="phase"), - ], taps=["data_tx", "signal_tx", "rx_field", "phase"], + SymbolDemapper(constellation, name="data_rx"), + ], taps=["data_tx", "signal_tx", "rx_field", "phase", "data_rx"], wiring={"phase.reference": "signal_tx"}) def score(chain): """Effective SNR in dB and symbol error rate of a finished run.""" - estimate = chain.tap("phase") - detected, _ = hard_projector(estimate, constellation) - return (10 * np.log10(compute_effective_snr(chain.tap("signal_tx"), - estimate)), - compute_ser(chain.tap("data_tx"), detected)) + return (compute_effective_snr(chain.tap("signal_tx"), + chain.tap("phase"), unit="dB"), + compute_ser(chain.tap("data_tx"), chain.tap("data_rx"))) # --- 1. what the link does to the signal ------------------------------ @@ -110,7 +108,8 @@ def score(chain): print("spans measured ASE only the fibre SER phase time") for n_spans in spans: chain = get_chain(n_spans).seed(0) - estimates[n_spans] = chain(N) + chain(N) + estimates[n_spans] = chain.tap("phase") snr, ser = score(chain) snr_per_span[n_spans] = snr elapsed = chain.elapsed_ @@ -142,15 +141,16 @@ def score(chain): print(f"\ndistortion floor of the chain, no noise and no fibre: " f"{score(floor)[0]:.1f} dB") -# The second is the amplifier noise against its closed form. N spans pile -# up N times the noise of one, in the symbol-rate bandwidth the matched -# filter collects, and that prediction owes nothing to the simulation: -# it comes from the noise figure and the span loss alone. -n_ase = compute_erbium_doped_fiber_N_ase(fiber.alpha_dB, L_span, NF_dB, - nu=fiber.carrier_frequency_Hz) +# The second is the amplifier noise against its closed form. The link +# budgets its own noise: `budget` asks it how much ASE it accumulates in +# the bandwidth a matched filter keeps -- the symbol rate, not the +# simulated `fs` -- and that prediction owes the simulation nothing, it +# comes from the noise figure and the span loss alone. print("\nspans ASE only P / P_ASE gap") for n_spans in spans: - predicted = 10 * np.log10(dbm_to_watt(dBm) / (n_spans * n_ase * R_s)) + link = get_chain(n_spans)["link"] + ase_W = link.budget(R_s)["ase_power_W"] + predicted = 10 * np.log10(dbm_to_watt(dBm) / ase_W) print(f"{n_spans:5d} {snr_ase_only[n_spans]:8.2f} dB {predicted:8.2f} dB " f"{snr_ase_only[n_spans] - predicted:+8.2f} dB") diff --git a/src/comnumpy/optical/links.py b/src/comnumpy/optical/links.py index d4cecad..ddadf3b 100644 --- a/src/comnumpy/optical/links.py +++ b/src/comnumpy/optical/links.py @@ -11,7 +11,7 @@ from .constants import PLANCK_CONSTANT from .utils import (get_linear_step_size, get_logarithmic_step_size, compute_erbium_doped_fiber_amplifier_gain, compute_erbium_doped_fiber_N_ase, apply_chromatic_dispersion, apply_kerr_nonlinearity, - is_polarization_pair, manakov_kerr) + is_polarization_pair, manakov_kerr, watt_to_dbm) __all__ = ["FiberLink"] @@ -253,10 +253,7 @@ def prepare(self, x: np.ndarray) -> None: # bandwidth, spread over the simulated one. Averaged over the # channels and added flat across the band: the gain is shaped # in frequency, this noise is not. - if self.raman.bandwidth_Hz > 0: - ase_W = float(np.mean(np.atleast_2d(self.raman.ase_W)[:, -1])) - self.raman_sigma2_ = (self.noise_scaling * ase_W - * self.fs / self.raman.bandwidth_Hz) + self.raman_sigma2_ = self.fs * self._ase_densities()[2] if residual_dB < 0: logger.warning( "Raman over-compensates the span: %.2f dB of on-off gain " @@ -267,11 +264,135 @@ def prepare(self, x: np.ndarray) -> None: # the EDFA makes up whatever the Raman gain did not, so a span # stays transparent whether or not it is Raman-pumped - equivalent_alpha_dB = residual_dB / self.L_span + equivalent_alpha_dB, edfa_density, _ = self._ase_densities() self.edfa_gain = compute_erbium_doped_fiber_amplifier_gain(equivalent_alpha_dB, self.L_span) - self.edfa_N_ase = self.noise_scaling * self.fs * compute_erbium_doped_fiber_N_ase( + # a density becomes a power in the simulated bandwidth; `budget` + # multiplies the same density by the bandwidth a receiver keeps + self.edfa_N_ase = self.fs * edfa_density + + def _ase_densities(self) -> tuple[float, float, float]: + """One span's noise, before any bandwidth is chosen. + + Returns the equivalent attenuation the EDFA has to make up, and + the one-sided ASE spectral densities of the EDFA and of the + distributed Raman amplifier, in W/Hz **per polarization**, both + already scaled by ``noise_scaling``. + + It exists so that :meth:`prepare` and :meth:`budget` cannot + disagree: the first turns these densities into a variance over + ``fs``, the second into a power over the bandwidth a receiver + collects, and the physics is written once. + """ + residual_dB = self.fiber.alpha_dB * self.L_span + raman_density = 0.0 + if self.raman is not None: + residual_dB -= float(np.mean(np.atleast_1d(self.raman.on_off_gain_dB))) + if self.raman.bandwidth_Hz > 0: + ase_W = float(np.mean(np.atleast_2d(self.raman.ase_W)[:, -1])) + raman_density = (self.noise_scaling * ase_W + / self.raman.bandwidth_Hz) + equivalent_alpha_dB = residual_dB / self.L_span + edfa_density = self.noise_scaling * compute_erbium_doped_fiber_N_ase( equivalent_alpha_dB, self.L_span, self.NF_dB, h=PLANCK_CONSTANT, nu=self.fiber.carrier_frequency_Hz) + return equivalent_alpha_dB, edfa_density, raman_density + + def budget(self, bandwidth_Hz: float, *, + polarizations: int = 1) -> Dict[str, float]: + r"""The amplifier noise this link accumulates, in closed form. + + Signal Model + ------------ + Each of the :math:`N_s` spans adds one amplifier's worth of + spontaneous emission, and the noise a receiver sees is that + density integrated over the bandwidth it keeps -- the symbol + rate, for a matched filter: + + .. math:: + + P_{\mathrm{ASE}} = P \, N_s \, N_{\mathrm{ASE}} \, B, + \qquad + N_{\mathrm{ASE}} = (G - 1) h \nu \, n_{sp}, + \qquad + n_{sp} = \frac{\mathrm{NF}/2}{1 - 1/G} + + with :math:`P` the number of polarizations. That factor is the + whole reason this method exists. :math:`N_{\mathrm{ASE}}` is a + density **per polarization**, and a dual-polarization link + carries two independent copies of it; quoting a channel power + against a single-polarization budget is a 3 dB error that looks + exactly like a modelling disagreement. Writing the product by + hand at each call site is how the two conventions drift apart. + + The result is the link's *own* prediction: it owes nothing to a + simulation, so it is the reference a measured effective SNR is + checked against. ``noise_scaling`` is applied, so a link with + its noise switched off budgets zero. + + Parameters + ---------- + bandwidth_Hz : float + Bandwidth the receiver collects, in Hz. For a matched filter + this is the symbol rate, not the simulated ``fs``. + polarizations : int, optional, keyword-only + 1 (default) for a single-polarization link, 2 for the + dual-polarization link a coherent system uses -- the same + convention as + :func:`~comnumpy.optical.gn_model.gn_model_nli_power`. + + Returns + ------- + dict + ``ase_power_W`` and ``ase_power_dBm``, the accumulated noise; + ``ase_density_W_per_Hz``, one span's density per + polarization; and the inputs it was built from + (``n_spans``, ``NF_dB``, ``span_gain_dB``, ``bandwidth_Hz``, + ``polarizations``). + + Raises + ------ + ValueError + If the bandwidth is not positive, or if ``polarizations`` is + neither 1 nor 2: a fibre carries one or two. + + Examples + -------- + Ten 100 km spans with a 5 dB noise figure, one polarization, + read in a 32 GBd matched filter: + + >>> link = FiberLink(10, L_span=100.0, NF_dB=5.0, fs=192e9) + >>> budget = link.budget(32e9) + >>> print(f"{budget['ase_power_dBm']:.2f} dBm") + -21.88 dBm + + The second polarization carries its own noise, and nothing else + changes: + + >>> print(f"{link.budget(32e9, polarizations=2)['ase_power_dBm']:.2f} dBm") + -18.87 dBm + """ + if bandwidth_Hz <= 0: + raise ValueError( + f"a noise power needs a bandwidth to be quoted in, got " + f"bandwidth_Hz={bandwidth_Hz}. For a matched filter this " + f"is the symbol rate, not the simulated fs.") + if polarizations not in (1, 2): + raise ValueError( + f"a fibre carries one or two polarizations, got " + f"{polarizations}.") + equivalent_alpha_dB, edfa_density, raman_density = self._ase_densities() + density = edfa_density + raman_density + power = polarizations * self.N_spans * density * bandwidth_Hz + return { + "ase_power_W": power, + "ase_power_dBm": watt_to_dbm(power) if power > 0 else -np.inf, + "ase_density_W_per_Hz": density, + "span_gain_dB": equivalent_alpha_dB * self.L_span, + "n_spans": self.N_spans, + "NF_dB": self.NF_dB, + "bandwidth_Hz": bandwidth_Hz, + "polarizations": polarizations, + } def _raman_step_gain(self) -> np.ndarray: """Amplitude gain of each SSFM step, from the Raman profile.""" diff --git a/src/comnumpy/optical/utils.py b/src/comnumpy/optical/utils.py index d9466af..6a8763e 100644 --- a/src/comnumpy/optical/utils.py +++ b/src/comnumpy/optical/utils.py @@ -11,7 +11,7 @@ "compute_erbium_doped_fiber_amplifier_gain", "compute_erbium_doped_fiber_N_ase", "get_linear_step_size", "get_logarithmic_step_size", "itu_grid_frequency", "is_polarization_pair", - "manakov_kerr", "dbm_to_watt", "watt_to_dbm", + "manakov_kerr", "dbm_to_watt", "watt_to_dbm", "launch_amplitude", ] @@ -526,3 +526,71 @@ def watt_to_dbm(power_W: np.ndarray | float) -> np.ndarray | float: f"positive power in watts; got a minimum of {float(np.min(power))}.") result = 10 * np.log10(power / 1e-3) return result if np.ndim(power_W) else float(result) + + +def launch_amplitude(power_W: np.ndarray | float, *, + polarizations: int = 1) -> np.ndarray | float: + r"""Field amplitude that launches a given optical power. + + Signal Model + ------------ + An :class:`~comnumpy.core.processors.Amplifier` multiplies the + **field**, and a power is the squared modulus of it, so a launch + power is set through a square root: + + .. math:: + + a = \sqrt{\frac{P}{P_{\mathrm{pol}}}} + + The division is the point. A dual-polarization signal carries the + channel power split between its two polarizations, so each one is + launched at :math:`\sqrt{P/2}` -- and that factor, written by hand + at each call site, is the same one that makes an ASE budget or a + nonlinear coefficient disagree by 3 dB (see + :meth:`~comnumpy.optical.links.FiberLink.budget`). + + Axes: *element-wise* -- an array of powers gives an array of + amplitudes, which is what a launch-power sweep needs. + + Parameters + ---------- + power_W : float or np.ndarray + Channel power in watts, summed over the polarizations. + polarizations : int, optional, keyword-only + 1 (default) for a single-polarization field, 2 for a + polarization pair. + + Returns + ------- + float or np.ndarray + Amplitude gain to give an ``Amplifier``. + + Raises + ------ + ValueError + If a power is negative, or if ``polarizations`` is neither 1 + nor 2. + + Examples + -------- + >>> print(f"{launch_amplitude(dbm_to_watt(0.0)):.6f}") + 0.031623 + + Two polarizations share the channel power, so each carries half of + it -- 3 dB down, which is :math:`\sqrt{2}` in amplitude: + + >>> single = launch_amplitude(1e-3) + >>> pair = launch_amplitude(1e-3, polarizations=2) + >>> print(f"{single / pair:.6f}") + 1.414214 + """ + if polarizations not in (1, 2): + raise ValueError( + f"a fibre carries one or two polarizations, got {polarizations}.") + power = np.asarray(power_W, dtype=float) + if np.any(power < 0): + raise ValueError( + f"a launch power is not negative; got a minimum of " + f"{float(np.min(power))} W.") + result = np.sqrt(power / polarizations) + return result if np.ndim(power_W) else float(result) diff --git a/tests/optical/test_link_budget.py b/tests/optical/test_link_budget.py new file mode 100644 index 0000000..c703603 --- /dev/null +++ b/tests/optical/test_link_budget.py @@ -0,0 +1,146 @@ +"""The link budgets its own amplifier noise. + +Three tutorials used to write the same product by hand -- span count, +spectral density, bandwidth, and a factor for the polarizations -- with +three different spellings of the last term. That factor is the one whose +convention made two pages of this documentation appear to disagree by +several decibels, so the formula now lives next to the block that +generates the noise, and these tests hold it there. +""" +import unittest + +import numpy as np + +from comnumpy.optical.fiber import FiberSpec +from comnumpy.optical.links import FiberLink +from comnumpy.optical.utils import (compute_erbium_doped_fiber_N_ase, + dbm_to_watt, launch_amplitude, + watt_to_dbm) + + +class TestBudget(unittest.TestCase): + + def link(self, **kwargs): + params = dict(L_span=100.0, NF_dB=5.0, fs=192e9) + params.update(kwargs) + n_spans = params.pop("N_spans", 10) + return FiberLink(n_spans, **params) + + def test_matches_the_formula_it_replaces(self): + """The three examples wrote this product; it must not move.""" + link = self.link() + density = compute_erbium_doped_fiber_N_ase( + link.fiber.alpha_dB, link.L_span, link.NF_dB, + nu=link.fiber.carrier_frequency_Hz) + by_hand = link.N_spans * density * 32e9 + self.assertAlmostEqual(link.budget(32e9)["ase_power_W"], by_hand, + delta=1e-18) + + def test_the_second_polarization_doubles_it(self): + """The 3 dB that made two pages look like they disagreed.""" + link = self.link() + single = link.budget(32e9)["ase_power_dBm"] + pair = link.budget(32e9, polarizations=2)["ase_power_dBm"] + self.assertAlmostEqual(pair - single, 3.0103, places=3) + + def test_published_values_of_the_two_tutorials(self): + """Both pages quote a budget; both come from here now.""" + # the back-propagation page: 10 x 100 km, NF 5 dB, one polarization + self.assertAlmostEqual(self.link().budget(32e9)["ase_power_dBm"], + -21.88, places=2) + # the GN-model page: 5 x 100 km, NF 6 dB, both polarizations + smf = FiberSpec(0.2, gamma=1.3, cd_coefficient=17.0, + wavelength_nm=1550.0) + page = self.link(N_spans=5, NF_dB=6.0, fiber=smf) + self.assertAlmostEqual(page.budget(32e9, polarizations=2)["ase_power_dBm"], + -20.88, places=2) + + def test_it_scales_with_the_spans_and_the_bandwidth(self): + one = self.link(N_spans=1).budget(32e9)["ase_power_W"] + self.assertAlmostEqual(self.link(N_spans=10).budget(32e9)["ase_power_W"], + 10 * one, delta=1e-18) + self.assertAlmostEqual(self.link(N_spans=1).budget(64e9)["ase_power_W"], + 2 * one, delta=1e-18) + + def test_it_agrees_with_what_the_link_actually_adds(self): + """`prepare` and `budget` read one formula, so they cannot drift. + + The block stores its per-span variance over the *simulated* + bandwidth; the budget quotes the accumulated power over the + bandwidth a receiver keeps. Same density, two bandwidths. + """ + link = self.link() + link(np.zeros(64, dtype=complex)) # prepare() runs on the call + density = link.budget(32e9)["ase_density_W_per_Hz"] + self.assertAlmostEqual(link.edfa_N_ase, link.fs * density, delta=1e-18) + + def test_noise_scaling_is_honoured(self): + """A link with its noise off budgets nothing, and says so.""" + budget = self.link(noise_scaling=0.0).budget(32e9) + self.assertEqual(budget["ase_power_W"], 0.0) + self.assertEqual(budget["ase_power_dBm"], -np.inf) + + def test_the_link_really_adds_what_it_budgets(self): + """The claim the tutorials make: this predicts the simulation. + + A transparent span returns the power it was given, so whatever + power the output carries above the input is the noise the + amplifiers put there -- measured over the whole simulated band, + which is the bandwidth to ask the budget for. Comparing powers + rather than a sample-wise difference keeps the dispersion out of + it: it reshapes the waveform and conserves the power. + """ + from comnumpy.core import Sequential + from comnumpy.core.generators import GaussianGenerator + + link = FiberLink(5, L_span=80.0, NF_dB=5.0, fs=64e9, + use_only_linear=True, name="link") + chain = Sequential([GaussianGenerator(dbm_to_watt(0.0), name="tx"), + link], taps=["tx"]).seed(0) + y = chain(400000) + measured = float(np.var(y) - np.var(chain.tap("tx"))) + predicted = link.budget(link.fs)["ase_power_W"] + self.assertAlmostEqual(10 * np.log10(measured / predicted), 0.0, + delta=0.1) + + def test_refusals(self): + link = self.link() + for bandwidth in (0.0, -1.0): + with self.subTest(bandwidth=bandwidth): + with self.assertRaises(ValueError) as ctx: + link.budget(bandwidth) + self.assertIn("symbol rate", str(ctx.exception)) + with self.assertRaises(ValueError): + link.budget(32e9, polarizations=3) + + +class TestLaunchAmplitude(unittest.TestCase): + + def test_it_is_the_square_root_of_the_power(self): + self.assertAlmostEqual(launch_amplitude(1e-4) ** 2, 1e-4) + + def test_the_pair_splits_the_channel_power(self): + """Each polarization carries half, i.e. 3 dB less.""" + pair = launch_amplitude(1e-3, polarizations=2) + self.assertAlmostEqual(watt_to_dbm(pair ** 2), watt_to_dbm(5e-4)) + + def test_an_array_of_powers_gives_an_array(self): + """A launch-power sweep passes the whole axis at once.""" + powers = np.array([1e-4, 1e-3, 1e-2]) + amplitudes = launch_amplitude(powers) + self.assertEqual(amplitudes.shape, powers.shape) + np.testing.assert_allclose(amplitudes ** 2, powers) + + def test_a_scalar_stays_a_scalar(self): + """Scalar in, scalar out -- the library's rule everywhere else.""" + self.assertIsInstance(launch_amplitude(1e-3), float) + + def test_refusals(self): + with self.assertRaises(ValueError): + launch_amplitude(-1e-3) + with self.assertRaises(ValueError): + launch_amplitude(1e-3, polarizations=0) + + +if __name__ == "__main__": + unittest.main() From a45b25dea65eb2d93027ba02fbc8bba02d03db11 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 07:06:25 +0000 Subject: [PATCH 04/18] Repaste the back-propagation tables from one run The receiver gained a `SymbolDemapper`, so the profile table gained a `data_rx` row and every wall time on the page moved. All four blocks now come from a single execution of the example, which is the only way two tables on one page can be read against each other: 12.3 ms of dispersion compensation against 2892 ms of back-propagation, 235 times for 8.2 dB. Every measured decibel is unchanged -- the effective SNRs, the fibre's cost per span, the two checks and the launch-power sweep are identical to the figures they replace, which is what the refactoring promised. One sentence had to go with them. The span table's time column was introduced as growing with the number of spans, and on a shared runner it does not do so monotonically; what the column actually shows, and what `profile_execution_time` then explains, is that the propagation is the whole cost. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Pn2F8X4HZhS8fEJcL5enzw --- docs/tutorials/optical_fiber_nonlinearity.rst | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/docs/tutorials/optical_fiber_nonlinearity.rst b/docs/tutorials/optical_fiber_nonlinearity.rst index 0123b4c..8fad353 100644 --- a/docs/tutorials/optical_fiber_nonlinearity.rst +++ b/docs/tutorials/optical_fiber_nonlinearity.rst @@ -114,12 +114,12 @@ be read against. .. code:: spans measured ASE only the fibre SER phase time - 1 36.09 dB 37.11 dB 1.02 dB 0.0000 -1.2 deg 1.1 s - 5 25.93 dB 30.65 dB 4.72 dB 0.0000 -7.0 deg 4.0 s - 10 20.99 dB 27.68 dB 6.69 dB 0.0007 -14.8 deg 7.4 s - 15 18.55 dB 25.94 dB 7.38 dB 0.0023 -22.9 deg 14.2 s - 20 16.73 dB 24.72 dB 7.99 dB 0.0091 -31.0 deg 14.9 s - 25 15.30 dB 23.70 dB 8.39 dB 0.0238 -39.2 deg 18.5 s + 1 36.09 dB 37.11 dB 1.02 dB 0.0000 -1.2 deg 0.9 s + 5 25.93 dB 30.65 dB 4.72 dB 0.0000 -7.0 deg 3.3 s + 10 20.99 dB 27.68 dB 6.69 dB 0.0007 -14.8 deg 6.8 s + 15 18.55 dB 25.94 dB 7.38 dB 0.0023 -22.9 deg 10.3 s + 20 16.73 dB 24.72 dB 7.99 dB 0.0091 -31.0 deg 17.6 s + 25 15.30 dB 23.70 dB 8.39 dB 0.0238 -39.2 deg 17.4 s The third column is the subject of this tutorial. It is the price of the Kerr effect, measured rather than argued: **1.02 dB after one span, 8.39 dB @@ -210,9 +210,9 @@ span, 39 degrees over the link. Left in, that rotation would dominate the error rate, which is why the compensator sits in the chain and not in a comment. -The last column is the one to keep. It grows with the number of spans, and -``profile_execution_time`` says why -- it runs the chain and times each -block on the way through: +The last column is the one to keep, and it is not the receiver's: +``profile_execution_time`` runs the chain and times each block on the way +through, which says where it all went. .. literalinclude:: ../../examples/optical/one_shot_NLI.py :language: python @@ -224,17 +224,18 @@ block on the way through: data_tx 0.1 ms signal_tx 0.0 ms upsampler 0.3 ms - srrcfilter 2.6 ms + srrcfilter 2.9 ms signal_amplifier 0.2 ms - link 17961.4 ms + link 17200.7 ms rx_field 1.7 ms - dbp 13.5 ms + dbp 12.3 ms srrcfilter_2 0.7 ms downsampler 0.0 ms signal_amplifier_2 0.0 ms - phase 0.2 ms + phase 0.1 ms + data_rx 0.7 ms -Twelve blocks, and one of them is **99.9 %** of the run. The split-step +Thirteen blocks, and one of them is **99.9 %** of the run. The split-step propagation is 25 spans of 200 steps, each an FFT pair and a pointwise rotation; everything else is a handful of milliseconds. Keep that ratio in mind -- it is what the Monte-Carlo section below has to work around. @@ -272,8 +273,8 @@ Results .. code:: - dispersion compensation SNR=15.30 dB receiver 13.5 ms - digital back-propagation SNR=23.48 dB SER=0.0000 receiver 3037.2 ms residual phase=-0.1 deg + dispersion compensation SNR=15.30 dB receiver 12.3 ms + digital back-propagation SNR=23.48 dB SER=0.0000 receiver 2892.2 ms residual phase=-0.1 deg .. image:: img/one_shot_nli_fig4.png :width: 100% @@ -307,8 +308,8 @@ What it costs The last column of the table is the reason DBP is not simply switched on everywhere. Dispersion compensation is one FFT pair for the whole link; DBP at :math:`\mathrm{StPS}` steps per span is :math:`N_{sp} \times \mathrm{StPS}` -FFT pairs plus as many pointwise phase rotations. Here that is 13.5 ms -against 3037 ms -- **225 times** -- for 8.2 dB. +FFT pairs plus as many pointwise phase rotations. Here that is 12.3 ms +against 2892 ms -- **235 times** -- for 8.2 dB. That ratio is what the literature on low-complexity back-propagation exists to improve, and it is also why the useful question is not "DBP or not" but *how @@ -377,12 +378,12 @@ and back-propagation **moves it to the right**: .. code:: receiver best SNR at power total time - amplifier noise only 26.35 dB 4.5 dBm 0.8 s - dispersion compensation 18.78 dB -1.5 dBm 0.7 s + amplifier noise only 26.35 dB 4.5 dBm 0.9 s + dispersion compensation 18.78 dB -1.5 dBm 0.8 s DBP, 1 step/span 19.28 dB 0.0 dBm 1.7 s - DBP, 2 steps/span 20.64 dB 0.0 dBm 3.4 s - DBP, 4 steps/span 23.81 dB 3.0 dBm 6.5 s - DBP, 50 steps/span 25.94 dB 4.5 dBm 76.8 s + DBP, 2 steps/span 20.64 dB 0.0 dBm 3.2 s + DBP, 4 steps/span 23.81 dB 3.0 dBm 6.1 s + DBP, 50 steps/span 25.94 dB 4.5 dBm 73.2 s Start with the second row, because it is the one the closed form claims to predict: From 2816d51a0a538d00583a110bb4cbf2b1776e7ba4 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 07:21:51 +0000 Subject: [PATCH 05/18] Count Monte-Carlo errors in one place, and leave the loops alone A Monte-Carlo over a fading channel, over several detectors and over a split-step link has a different shape each time, and that shape is what the reader of an example came to see -- so the loop stays written out. What is the same everywhere, and what hides mistakes, is the counting. `ErrorCounter` accumulates errors and symbols across the trials of one point. The rate it returns is a ratio of totals rather than a mean of per-trial rates: identical while every trial has the same length, which is where the examples stand, and a factor fifty apart when they do not -- one error in ten symbols then none in a thousand is 1/1010, not 1/20. A test pins both readings. It also keeps `n_errors` readable, which is the number a point's credibility rests on. A rate of 1e-4 from three errors and one from three hundred are different claims, and the launch-power sweep now prints, per receiver, how many errors it actually saw at its best power -- so the page can state its resolution instead of apologising for it in prose. Only two of the four hand-written loops count what this counts, and the other two are left alone rather than bent to fit: `monte_carlo_simulation_1` accumulates a *block* error rate, and `CD_compensation_part1` runs one trial per point and has nothing to accumulate. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Pn2F8X4HZhS8fEJcL5enzw --- docs/tutorials/optical_fiber_nonlinearity.rst | 2 +- examples/mimo/monte_carlo_simulation_2.py | 21 ++- examples/optical/NLI_simulation.py | 28 +++- src/comnumpy/core/metrics.py | 145 ++++++++++++++++++ tests/core/test_error_counter.py | 106 +++++++++++++ 5 files changed, 292 insertions(+), 10 deletions(-) create mode 100644 tests/core/test_error_counter.py diff --git a/docs/tutorials/optical_fiber_nonlinearity.rst b/docs/tutorials/optical_fiber_nonlinearity.rst index 8fad353..14a757c 100644 --- a/docs/tutorials/optical_fiber_nonlinearity.rst +++ b/docs/tutorials/optical_fiber_nonlinearity.rst @@ -345,7 +345,7 @@ That is the prediction the sweep below has to land on. .. literalinclude:: ../../examples/optical/NLI_simulation.py :language: python - :lines: 107-198 + :lines: 107-217 .. code:: diff --git a/examples/mimo/monte_carlo_simulation_2.py b/examples/mimo/monte_carlo_simulation_2.py index 4b392ff..1f19162 100644 --- a/examples/mimo/monte_carlo_simulation_2.py +++ b/examples/mimo/monte_carlo_simulation_2.py @@ -4,7 +4,7 @@ from comnumpy.core import Sequential from comnumpy.core.generators import SymbolGenerator from comnumpy.core.mappers import SymbolMapper -from comnumpy.core.metrics import compute_ber +from comnumpy.core.metrics import ErrorCounter from comnumpy.core.utils import Constellation from comnumpy.mimo.channels import AWGN, FlatMIMOChannel from comnumpy.mimo.utils import rayleigh_channel @@ -35,8 +35,13 @@ # compute snr list from snr per bit in dB snr_dB_list = np.arange(0, 45, 5) -# perform simulation -ber_data = np.zeros((len(snr_dB_list), len(detector_names))) +# perform simulation. One counter per (SNR, detector): it accumulates +# errors and bits over the trials, so the rate is a ratio of totals and +# the count that makes it credible stays available. +counters = {} +for index_snr in range(len(snr_dB_list)): + for index in range(len(detector_names)): + counters[index_snr, index] = ErrorCounter(width=int(np.log2(M))) for index_snr, snr_dB in enumerate(snr_dB_list): sigma2 = N_t*(10**(-snr_dB/10)) @@ -59,9 +64,15 @@ # perform detection S_est = detector(Y) # evaluate metrics - ber_data[index_snr, index] += compute_ber(S_ref, S_est, width=int(np.log2(M))) + counters[index_snr, index].update(S_ref, S_est) + +ber_data = np.zeros((len(snr_dB_list), len(detector_names))) +for (index_snr, index), counter in counters.items(): + ber_data[index_snr, index] = counter.rate - ber_data[index_snr, :] /= N_test +worst = min(counters.values(), key=lambda counter: counter.n_errors) +print(f"fewest errors at any point: {worst.n_errors} over " + f"{worst.n_symbols * worst.width} bits") # plot figures for index, detector_name in enumerate(detector_names): diff --git a/examples/optical/NLI_simulation.py b/examples/optical/NLI_simulation.py index ecb867d..c6591d1 100644 --- a/examples/optical/NLI_simulation.py +++ b/examples/optical/NLI_simulation.py @@ -12,7 +12,7 @@ from comnumpy.core.filters import SRRCFilter from comnumpy.core.generators import SymbolGenerator from comnumpy.core.mappers import SymbolDemapper, SymbolMapper -from comnumpy.core.metrics import compute_effective_snr, compute_ser +from comnumpy.core.metrics import ErrorCounter, compute_effective_snr from comnumpy.core.processors import Amplifier, Downsampler, Upsampler from comnumpy.core.utils import Constellation from comnumpy.core.visualizers import plot_error_rate @@ -118,11 +118,16 @@ def get_receiver(steps, linear_only, *, gain, reference): channel = get_channel() snr = {} -ser = {} +counters = {} elapsed = {} for name in receivers: snr[name] = np.zeros(len(dBm_list)) - ser[name] = np.zeros(len(dBm_list)) + # one counter per launch power: it accumulates errors and symbols + # over the four trials rather than averaging four rates, so the + # count that says whether a point means anything stays readable + counters[name] = [] + for _ in dBm_list: + counters[name].append(ErrorCounter()) elapsed[name] = 0.0 for index, dBm in enumerate(dBm_list): @@ -146,12 +151,18 @@ def get_receiver(steps, linear_only, *, gain, reference): elapsed[name] += receiver.elapsed_ estimate = receiver.tap("phase") snr[name][index] += compute_effective_snr(symbols, estimate) / N_trial - ser[name][index] += compute_ser(reference, detected) / N_trial + counters[name][index].update(reference, detected) snr_dB = {} for name, values in snr.items(): snr_dB[name] = 10 * np.log10(values) +ser = {} +for name, points in counters.items(): + ser[name] = np.zeros(len(points)) + for index, counter in enumerate(points): + ser[name][index] = counter.rate + header = "launch power [dBm] " for value in dBm_list: header += f"{value:7.1f}" @@ -174,6 +185,15 @@ def get_receiver(steps, linear_only, *, gain, reference): f"{watt_to_dbm(best_power):+.2f} dBm, dispersion compensation " f"{reference[best]:.2f} dB at {dBm_list[best]:+.1f} dBm") +# What the error-rate figure can resolve, in counts rather than in a +# caveat. At its own best power each receiver is where its curve bottoms +# out, and a point that saw no error has not measured a rate: it has run +# out of symbols. The counters kept the numbers, so the page can say so. +print("\nreceiver errors at its best power") +for name, points in counters.items(): + counter = points[int(np.argmax(snr_dB[name]))] + print(f"{name:24s} {counter.n_errors:7d} over {counter.n_symbols} symbols") + # The prediction, on the same axes as the measurement. It describes the # receiver that only undoes the dispersion -- the GN model counts the # nonlinear interference as noise, so it has nothing to say about a diff --git a/src/comnumpy/core/metrics.py b/src/comnumpy/core/metrics.py index 24d55ff..7447890 100644 --- a/src/comnumpy/core/metrics.py +++ b/src/comnumpy/core/metrics.py @@ -1,8 +1,10 @@ +from dataclasses import dataclass, field from typing import Optional, Sequence import numpy as np from comnumpy.core.utils import sym_2_bin # single definition (annex A.5) +from comnumpy.exceptions import NotFittedError __all__ = [ "compute_ser_awgn_psk", "compute_ser_awgn_qam", "compute_metric_awgn_theo", @@ -10,6 +12,7 @@ "compute_metric_rayleigh_theo", "compute_ser", "compute_ber", "compute_evm", "compute_effective_snr", "compute_power", "compute_ccdf", "compute_acpr", "signal_report", + "ErrorCounter", ] # Craig's finite-range form of the Q function turns every average over @@ -1204,3 +1207,145 @@ def signal_report(x: np.ndarray, compute_papr: bool = False, from comnumpy.ofdm.metrics import compute_papr as papr_of report["papr"] = float(papr_of(abs_x, unit=papr_unit)) return report + + +@dataclass(slots=True) +class ErrorCounter: + r"""Accumulate errors over the trials of one Monte-Carlo point. + + Signal Model + ------------ + A Monte-Carlo point runs the chain several times and reports one + error rate. The rate is a ratio of **totals**, not a mean of ratios: + + .. math:: + + \mathrm{rate} = \frac{\sum_t N_{e,t}}{\sum_t N_t} + + Averaging the per-trial rates instead gives the same answer only + when every trial has the same length, and it throws away the number + the point's credibility rests on -- how many errors were actually + seen. A rate of :math:`10^{-4}` from three errors and one from three + hundred are different claims, and only the counts tell them apart. + + That is what this object is for. It does not own the loop: a + Monte-Carlo over a fading channel, over several detectors or over a + split-step link has a different shape each time, and that shape is + what the reader of an example came to see. It owns the counting, + which is the same everywhere and the part that hides mistakes. + + Parameters + ---------- + width : int, optional + Bits per symbol. The default 1 counts **symbol** errors, one per + mismatched entry. Give the constellation's ``bits_per_symbol`` + to count **bit** errors instead, expanded by + :func:`~comnumpy.core.utils.sym_2_bin` exactly as + :func:`compute_ber` does. + + Attributes + ---------- + n_errors : int + Errors accumulated so far -- symbols or bits, per ``width``. + n_symbols : int + Symbols compared so far. + n_trials : int + Number of :meth:`update` calls. + + Raises + ------ + ValueError + If ``width`` is not positive. + + Examples + -------- + Three trials of a hundred symbols, one error in the second: + + >>> import numpy as np + >>> counter = ErrorCounter() + >>> sent = np.zeros(100, dtype=int) + >>> for trial in range(3): + ... received = sent.copy() + ... if trial == 1: + ... received[7] = 1 + ... _ = counter.update(sent, received) + >>> print(counter) + ErrorCounter(1 error / 300 symbols, rate 3.33e-03) + + The counts are what makes the rate readable, and they are what an + example should print beside it: + + >>> print(counter.n_errors, counter.n_symbols, counter.n_trials) + 1 300 3 + + ``width`` switches to bits, on the same convention as + :func:`compute_ber`: + + >>> bits = ErrorCounter(width=4) + >>> _ = bits.update(np.array([0, 0]), np.array([0, 15])) + >>> print(bits.n_errors, bits.n_symbols, f"{bits.rate:.3f}") + 4 2 0.500 + """ + width: int = 1 + n_errors: int = field(init=False, default=0) + n_symbols: int = field(init=False, default=0) + n_trials: int = field(init=False, default=0) + + def __post_init__(self) -> None: + if self.width < 1: + raise ValueError( + f"a symbol carries at least one bit, got width={self.width}. " + f"Leave it at 1 to count symbol errors, or pass the " + f"constellation's bits_per_symbol to count bit errors.") + + def update(self, reference: np.ndarray, + detected: np.ndarray) -> "ErrorCounter": + """Count one trial, and return self so calls can be chained. + + Both arrays carry symbol **indices**, as :func:`compute_ser` + requires: the output of a ``SymbolGenerator`` against that of a + ``SymbolDemapper``, not complex constellation points. The + shorter of the two sets the length, which is what a chain with + a filter delay produces. + """ + target = np.asarray(reference).ravel() + estimate = np.asarray(detected).ravel() + length = min(target.size, estimate.size) + if length == 0: + raise ValueError( + "nothing to count: one of the two sequences is empty.") + target, estimate = target[:length], estimate[:length] + if self.width == 1: + errors = int(np.count_nonzero(target - estimate)) + else: + errors = int(np.count_nonzero( + sym_2_bin(target, self.width) - sym_2_bin(estimate, self.width))) + self.n_errors += errors + self.n_symbols += length + self.n_trials += 1 + return self + + @property + def rate(self) -> float: + """Errors over the units compared -- symbols, or bits if ``width``.""" + if self.n_symbols == 0: + raise NotFittedError( + "no trial has been counted yet, so there is no rate; call " + "update(reference, detected) at least once.") + return self.n_errors / (self.n_symbols * self.width) + + def reset(self) -> "ErrorCounter": + """Forget every trial, keeping ``width``. Returns self.""" + self.n_errors = 0 + self.n_symbols = 0 + self.n_trials = 0 + return self + + def __str__(self) -> str: + unit = "symbol" if self.width == 1 else "bit" + plural = "" if self.n_errors == 1 else "s" + if self.n_symbols == 0: + return "ErrorCounter(nothing counted yet)" + return (f"ErrorCounter({self.n_errors} error{plural} / " + f"{self.n_symbols * self.width} {unit}s, " + f"rate {self.rate:.2e})") diff --git a/tests/core/test_error_counter.py b/tests/core/test_error_counter.py new file mode 100644 index 0000000..026b7f5 --- /dev/null +++ b/tests/core/test_error_counter.py @@ -0,0 +1,106 @@ +"""Counting errors across the trials of a Monte-Carlo point. + +Four example scripts accumulate errors over trials, each with its own +loop, and three of them wrote ``+= compute_ser(...) / n_trials``. That +averages *rates*, which is only the same answer when every trial has the +same length, and it discards the count the point's credibility rests on. +The counter keeps the totals; the loop stays where it was. +""" +import unittest + +import numpy as np + +from comnumpy.core.metrics import ErrorCounter, compute_ber, compute_ser +from comnumpy.exceptions import NotFittedError + + +class TestErrorCounter(unittest.TestCase): + + def test_one_trial_agrees_with_compute_ser(self): + rng = np.random.default_rng(0) + sent = rng.integers(0, 16, 500) + received = sent.copy() + received[rng.choice(500, 20, replace=False)] ^= 1 + counter = ErrorCounter().update(sent, received) + self.assertAlmostEqual(counter.rate, compute_ser(sent, received)) + + def test_bits_agree_with_compute_ber(self): + rng = np.random.default_rng(1) + sent = rng.integers(0, 16, 500) + received = rng.integers(0, 16, 500) + counter = ErrorCounter(width=4).update(sent, received) + self.assertAlmostEqual(counter.rate, compute_ber(sent, received, 4)) + + def test_it_is_a_ratio_of_totals_not_a_mean_of_rates(self): + """The regression this exists for: unequal trials. + + One error in ten symbols, then none in a thousand. The honest + rate is 1/1010; averaging the two rates gives 1/20, fifty times + larger, and that is what a loop dividing by the trial count + computes. + """ + counter = ErrorCounter() + counter.update(np.zeros(10, dtype=int), + np.array([1] + [0] * 9)) + counter.update(np.zeros(1000, dtype=int), np.zeros(1000, dtype=int)) + self.assertAlmostEqual(counter.rate, 1 / 1010) + mean_of_rates = (0.1 + 0.0) / 2 + self.assertNotAlmostEqual(counter.rate, mean_of_rates) + + def test_equal_trials_reproduce_the_loop_being_replaced(self): + """Where the examples stand today, the answer must not move.""" + rng = np.random.default_rng(2) + counter = ErrorCounter() + by_hand = 0.0 + n_trials = 4 + for _ in range(n_trials): + sent = rng.integers(0, 4, 250) + received = rng.integers(0, 4, 250) + counter.update(sent, received) + by_hand += compute_ser(sent, received) / n_trials + self.assertAlmostEqual(counter.rate, by_hand) + + def test_counts_are_reported_beside_the_rate(self): + counter = ErrorCounter() + counter.update(np.zeros(100, dtype=int), np.zeros(100, dtype=int)) + counter.update(np.zeros(100, dtype=int), + np.array([1, 1] + [0] * 98)) + self.assertEqual((counter.n_errors, counter.n_symbols, + counter.n_trials), (2, 200, 2)) + + def test_a_shorter_estimate_sets_the_length(self): + """A chain with a filter delay returns fewer symbols than it got.""" + counter = ErrorCounter().update(np.zeros(100, dtype=int), + np.zeros(90, dtype=int)) + self.assertEqual(counter.n_symbols, 90) + + def test_update_chains_and_reset_forgets(self): + counter = ErrorCounter(width=2) + counter.update(np.zeros(8, dtype=int), np.zeros(8, dtype=int)) + self.assertIs(counter.reset(), counter) + self.assertEqual((counter.n_errors, counter.n_trials), (0, 0)) + self.assertEqual(counter.width, 2) # reset keeps the unit + + def test_a_rate_before_any_trial_is_refused(self): + """An empty average is a NaN waiting to reach a figure (D38).""" + with self.assertRaises(NotFittedError) as ctx: + _ = ErrorCounter().rate + self.assertIn("update", str(ctx.exception)) + + def test_str_says_counts_and_rate(self): + counter = ErrorCounter() + self.assertIn("nothing counted", str(counter)) + counter.update(np.zeros(1000, dtype=int), + np.array([1] + [0] * 999)) + self.assertEqual(str(counter), + "ErrorCounter(1 error / 1000 symbols, rate 1.00e-03)") + + def test_refusals(self): + with self.assertRaises(ValueError): + ErrorCounter(width=0) + with self.assertRaises(ValueError): + ErrorCounter().update(np.zeros(0, dtype=int), np.zeros(5, dtype=int)) + + +if __name__ == "__main__": + unittest.main() From 273f7580e705324ab9d2e5ec34471b894516424f Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 07:41:03 +0000 Subject: [PATCH 06/18] Rename sweep to monte_carlo `sweep` was the only bare verb in the root namespace -- beside `compute_ser`, `get_alphabet`, `to_json`, `ebn0_to_snr_dB` -- and the only exported name that said nothing about what it returns. More to the point, it said nothing about the points being random: `sweep` is what a frequency or DC scan is called, while every point here draws its own noise and needs `seed=` to be reproducible. `monte_carlo` says that, and it is the word the tutorials already use for these sections. The module, its two test files and its API page move with it, and the migration table carries the row. A pyright entry pinned the old path, which is what the D37 ratchet is for: it failed on the rename. The English noun is left alone. "A launch-power sweep", "a sweep over N_cp", "the points of a sweep" are the domain's own words and still read as such in the prose; only code references, ``sweep`` markup and the identifier itself moved. A first blanket rewrite replaced the noun too and was reverted. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Pn2F8X4HZhS8fEJcL5enzw --- .claude/skills/comnumpy-tutorial/SKILL.md | 2 +- ARCHITECTURE.md | 12 ++--- CHANGELOG.md | 9 ++-- CONVENTIONS.md | 2 +- docs/documentation/toplevel/index.rst | 2 +- .../toplevel/{sweep.rst => monte_carlo.rst} | 2 +- docs/getting_started/first_simulation.rst | 2 +- docs/getting_started/who_is_comnumpy_for.rst | 2 +- docs/tutorials/alamouti.rst | 2 +- docs/tutorials/awgn.rst | 14 ++--- docs/tutorials/coding.rst | 4 +- docs/tutorials/gn_model.rst | 2 +- docs/tutorials/index.rst | 2 +- docs/tutorials/mimo.rst | 4 +- docs/tutorials/ofdm.rst | 2 +- examples/mimo/one_shot_alamouti.py | 10 ++-- examples/mimo/one_shot_mimo.py | 8 +-- examples/ofdm/one_shot_ofdm.py | 6 +-- examples/optical/gn_model.py | 10 ++-- examples/simple/channel_coding.py | 12 ++--- examples/simple/monte_carlo_awgn.py | 6 +-- pyrightconfig.json | 2 +- src/comnumpy/__init__.py | 4 +- src/comnumpy/core/generics.py | 2 +- src/comnumpy/{sweep.py => monte_carlo.py} | 31 +++++------ tests/core/test_set_params.py | 2 +- tests/test_docs_coverage.py | 2 +- tests/test_monte_carlo.py | 52 +++++++++++++++++++ ...rallel.py => test_monte_carlo_parallel.py} | 42 +++++++-------- tests/test_sweep.py | 52 ------------------- validation/core_awgn_ser.py | 8 +-- validation/fec_coding_gain.py | 20 +++---- validation/ofdm_awgn_ser.py | 8 +-- 33 files changed, 171 insertions(+), 169 deletions(-) rename docs/documentation/toplevel/{sweep.rst => monte_carlo.rst} (56%) rename src/comnumpy/{sweep.py => monte_carlo.py} (93%) create mode 100644 tests/test_monte_carlo.py rename tests/{test_sweep_parallel.py => test_monte_carlo_parallel.py} (65%) delete mode 100644 tests/test_sweep.py diff --git a/.claude/skills/comnumpy-tutorial/SKILL.md b/.claude/skills/comnumpy-tutorial/SKILL.md index c160aea..a6d25a8 100644 --- a/.claude/skills/comnumpy-tutorial/SKILL.md +++ b/.claude/skills/comnumpy-tutorial/SKILL.md @@ -54,7 +54,7 @@ then learns the wrong lesson -- they came to see how the library is used. `compute_ccdf`, `compute_metric_awgn_theo` and `compute_metric_rayleigh_theo` for the closed forms, `constellation_capacity` and `bicm_capacity` for the rates. -- Monte-Carlo: `sweep(chain, param, values, metrics, stimulus, seed=)`. +- Monte-Carlo: `monte_carlo(chain, param, values, metrics, stimulus, seed=)`. - Figures: `plot_iq`, `plot_error_rate`, `plot_spectrum`, `plot_time`, `plot_channel_response`, and the channels' own `info()` / `plot()`. - If the library makes something awkward, that is a finding about the diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 24c38b9..b3ade90 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -159,7 +159,7 @@ Le détail fichier par fichier est en annexe A. | # | Décision | Motif | Alternatives rejetées | Statut | |---|----------|-------|-----------------------|--------| -| D22 | **Cycle de vie inspiré de scikit-learn.** Signature unique `fit(X, y=None)` où `y` est la référence connue (préambule, pilotes) ; `y=None` = estimation aveugle. `fit` retourne `self`. `partial_fit(X)` pour les algorithmes adaptatifs (CMA, RDE, décision-dirigé). `forward()` reste l'interface unique du `Processor`. *Amendé v0.5* : **vocabulaire arrêté** — le signal connu contre lequel un estimateur se cale s'appelle `reference` partout (paramètre du bloc, `sweep(reference=…)`, `wiring`), et les blocs qui en demandent un sont `DataAided*`, par opposition à la famille `Blind*` déjà nommée ainsi. Les classes `TrainedBased*` sont renommées en conséquence | La convention sklearn est la plus répandue en Python scientifique, et le couple supervisé/non-supervisé se superpose exactement à *data-aided*/*blind*. L'audit montre que `fit()` existe déjà sur 8 classes, mais que le second argument y désigne tour à tour `x_target`, `x_preamble` et `w0` (une initialisation d'algorithme, pas une donnée). L'amendement v0.5 clôt le même problème côté *nom* : `target_data` était un emprunt à scikit-learn, où la cible est ce qu'on **prédit** — ici c'est le signal **connu**. `reference` est le terme du domaine (3GPP *reference signal*), et surtout celui que `sweep()` employait déjà pour l'exacte même chose. Note : les *métriques* gardent `X_target` / `X_detected`, qui est la paire standard d'une mesure d'erreur (`y_true`/`y_pred` chez sklearn) — rôle différent, mot différent, les deux justes | Renommer `forward` en `transform` (fragmenterait `Sequential`) ; garder l'état actuel | **Amendé v0.5** | +| D22 | **Cycle de vie inspiré de scikit-learn.** Signature unique `fit(X, y=None)` où `y` est la référence connue (préambule, pilotes) ; `y=None` = estimation aveugle. `fit` retourne `self`. `partial_fit(X)` pour les algorithmes adaptatifs (CMA, RDE, décision-dirigé). `forward()` reste l'interface unique du `Processor`. *Amendé v0.5* : **vocabulaire arrêté** — le signal connu contre lequel un estimateur se cale s'appelle `reference` partout (paramètre du bloc, `monte_carlo(reference=…)`, `wiring`), et les blocs qui en demandent un sont `DataAided*`, par opposition à la famille `Blind*` déjà nommée ainsi. Les classes `TrainedBased*` sont renommées en conséquence | La convention sklearn est la plus répandue en Python scientifique, et le couple supervisé/non-supervisé se superpose exactement à *data-aided*/*blind*. L'audit montre que `fit()` existe déjà sur 8 classes, mais que le second argument y désigne tour à tour `x_target`, `x_preamble` et `w0` (une initialisation d'algorithme, pas une donnée). L'amendement v0.5 clôt le même problème côté *nom* : `target_data` était un emprunt à scikit-learn, où la cible est ce qu'on **prédit** — ici c'est le signal **connu**. `reference` est le terme du domaine (3GPP *reference signal*), et surtout celui que `monte_carlo()` employait déjà pour l'exacte même chose. Note : les *métriques* gardent `X_target` / `X_detected`, qui est la paire standard d'une mesure d'erreur (`y_true`/`y_pred` chez sklearn) — rôle différent, mot différent, les deux justes | Renommer `forward` en `transform` (fragmenterait `Sequential`) ; garder l'état actuel | **Amendé v0.5** | | D23 | **Underscore final pour toute grandeur estimée à partir de données** : `theta_`, `h_`, `gain_`, `H_`, `n_iter_`. Les quantités dérivées des seuls paramètres n'en portent pas. `NotFittedError` si `forward` précède `fit` | P7 ; l'ambiguïté existe déjà et mord : le canal *estimé* `self.H` du compensateur MIMO est homonyme du canal *configuré* `H` de `FlatMIMOChannel`. Aujourd'hui un `forward` avant `fit` applique silencieusement `theta = 0` | Préfixe `est_` ; documentation seule | **Acté** | | D24 | **Frontière explicite avec scikit-learn** : on emprunte les noms de méthodes et le cycle de vie, **jamais la disposition des données**. Le layout `(n_samples, n_features)` est incompatible avec D2 et n'entre pas dans la lib. Pas de `score()` | sklearn met les échantillons en lignes (axe 0) ; D2 met le temps en dernier axe. Sans clause explicite, « faisons comme sklearn » ferait rentrer la mauvaise convention par la fenêtre. Et `score()` est un « plus grand est meilleur », alors que BER/SER/EVM/MSE sont des « plus petit est meilleur » | Adoption intégrale de l'API sklearn | **Acté** | @@ -416,12 +416,12 @@ Sequential( | # | Décision | Motif | Alternatives rejetées | Statut | |---|----------|-------|-----------------------|--------| | D34 | **Toute chaîne est reconfigurable après construction** : `chain.set_params(**{"awgn.value": 12})` modifie le paramètre désigné en notation pointée `id_bloc.champ` et redéclenche le précalcul paramétrique du bloc (`__post_init__` ou équivalent). Emprunt du `set_params` de scikit-learn, adressage par les `id` de D31. Corollaire rendu possible par la restriction sur `__init__` de la §4.3 : puisque le constructeur ne fait ni travail dépendant des données ni création de RNG, reconstruire l'état d'un bloc après modification d'un champ est sûr et bon marché | Tout balayage de paramètre (BER vs SNR, pénalité vs distance) exige de modifier un paramètre et relancer. Aujourd'hui la seule voie est de reconstruire la chaîne entière à la main, en dupliquant sa définition — la classe de bugs « configurations divergentes » de D18, appliquée au temps : la chaîne du point de mesure n s'écarte silencieusement de celle du point 0. `set_params` + `Sequential.seed` (D6) forment le couple minimal : reconfigurer, re-semer, relancer | Mutation directe des attributs (saute le précalcul → état incohérent, exactement le piège que D23 nomme) ; reconstruction depuis le JSON D31 avec surcharge (valide, mais plus coûteux à écrire pour l'usage interactif ; reste la voie recommandée pour les scénarios sérialisés) | **Acté** | -| D35 | **Le balayage est une fonction, pas un framework.** Forme cible : `sweep(chain, param, values, metrics, seed, n_frames)` retournant un dict de tableaux — le patron `GridSearchCV`/`cross_validate` de sklearn, cohérent avec l'emprunt D22–D24. **L'implémentation est différée** : elle n'entre dans `src/` qu'après que trois scripts `validation/` (D7) auront exhibé le même squelette recopié à l'identique, et sa forme finale sera extraite de ces scripts, pas conçue a priori. Le patron *Trainer* de PyTorch Lightning (inversion de contrôle par hooks) est **explicitement rejeté** | Un balayage Monte-Carlo est une boucle `for` sans état, sans optimiseur, embarrassingly parallel : l'inversion de contrôle rendrait la boucle invisible, ce qui contredit P2 frontalement — un étudiant doit pouvoir lire *où* le SNR est balayé. À l'inverse, tout coder à la main pour chaque figure recopie le triplet construire/balayer/collecter. La fonction sklearn-like est le point d'équilibre : la boucle reste visible dans son implémentation (quinze lignes lisibles), l'appelant n'écrit qu'une ligne. D31/D32/D6 fournissent déjà sérialisation et reproductibilité ; un « scénario » n'est que chaîne JSON + spec de balayage + graine + noms de métriques — un format de fichier avant d'être du code | *Trainer* à hooks (inversion de contrôle injustifiée, boucle invisible) ; classe `Simulation` avec cycle de vie (sur-abstraction pour une boucle sans état) ; implémentation immédiate (violerait le principe de complexité à la demande : la forme doit sortir d'un motif constaté dans `validation/`, pas d'une anticipation) | **Acté — implémentation différée, déclencheur : 3ᵉ script `validation/` au squelette identique** | +| D35 | **Le balayage est une fonction, pas un framework.** Forme cible : `monte_carlo(chain, param, values, metrics, seed, n_frames)` retournant un dict de tableaux — le patron `GridSearchCV`/`cross_validate` de sklearn, cohérent avec l'emprunt D22–D24. **L'implémentation est différée** : elle n'entre dans `src/` qu'après que trois scripts `validation/` (D7) auront exhibé le même squelette recopié à l'identique, et sa forme finale sera extraite de ces scripts, pas conçue a priori. Le patron *Trainer* de PyTorch Lightning (inversion de contrôle par hooks) est **explicitement rejeté** | Un balayage Monte-Carlo est une boucle `for` sans état, sans optimiseur, embarrassingly parallel : l'inversion de contrôle rendrait la boucle invisible, ce qui contredit P2 frontalement — un étudiant doit pouvoir lire *où* le SNR est balayé. À l'inverse, tout coder à la main pour chaque figure recopie le triplet construire/balayer/collecter. La fonction sklearn-like est le point d'équilibre : la boucle reste visible dans son implémentation (quinze lignes lisibles), l'appelant n'écrit qu'une ligne. D31/D32/D6 fournissent déjà sérialisation et reproductibilité ; un « scénario » n'est que chaîne JSON + spec de balayage + graine + noms de métriques — un format de fichier avant d'être du code | *Trainer* à hooks (inversion de contrôle injustifiée, boucle invisible) ; classe `Simulation` avec cycle de vie (sur-abstraction pour une boucle sans état) ; implémentation immédiate (violerait le principe de complexité à la demande : la forme doit sortir d'un motif constaté dans `validation/`, pas d'une anticipation) | **Acté — implémentation différée, déclencheur : 3ᵉ script `validation/` au squelette identique** | **Esquisse (D35), non normative tant que le déclencheur n'est pas atteint :** ```python -results = sweep( +results = monte_carlo( chain, param="awgn.snr_dB", # dotted path, resolved by D34 values=np.arange(0, 21, 2), @@ -452,7 +452,7 @@ vérifiable en CI, pas une intention. | D38 | **Hiérarchie d'exceptions à trois membres, pas plus** : `ComnumpyError(Exception)` racine ; `ShapeError(ComnumpyError, ValueError)` pour tout refus de `prepare()` ; `NotFittedError(ComnumpyError, RuntimeError)` pour D23. Le double héritage préserve les `except ValueError` existants. Le gabarit de message de la §8 devient **normatif** : *constat, attendu, action* — « got X, expected Y, do Z ». Jamais d'`assert` pour la validation d'entrée utilisateur (`python -O` les supprime) | P5 exige de refuser explicitement ; ceci outille le refus. `except ComnumpyError` sépare « j'ai mal configuré ma chaîne » de « bug numpy sous-jacent », distinction qu'un `ValueError` nu ne fait pas. Trois classes suffisent : chaque exception supplémentaire est une décision de plus imposée à l'utilisateur au moment du `except` | Une exception par module (taxonomie sans usage) ; codes d'erreur ; `ValueError` nus (état actuel — indistinguables de numpy) | **Acté** | | D39 | **Un seul outil de qualité : `ruff`** (lint **et** format, remplace flake8 + black + isort), configuré dans `pyproject.toml`, exécuté par pre-commit et en CI. Couverture mesurée avec **seuil cliquet** : le pourcentage constaté devient le minimum exigé, il ne peut que monter. Complète C1–C5 : matrice 3.11/3.12/3.13, doctests bloquants (D8), étape `pip install .` + import nu | Zéro débat de style pour un projet à mainteneur unique qui espère des contributions JOSS : le formateur tranche, la revue parle d'architecture. Le cliquet évite le double piège des seuils : l'objectif arbitraire (90 % ?) et les tests de remplissage écrits pour l'atteindre — on interdit seulement la régression, ce qui est le vrai risque constaté (`optical/` à 0 %) | black + flake8 + isort (trois outils, trois configs, conflits connus) ; seuil de couverture fixe ; pylint (lent, verbeux) | **Acté** | | D40 | **Python moderne comme filet, budget de simplicité comme contrat.** (a) Toutes les dataclasses passent en `slots=True` ; les paramètres optionnels sont `kw_only=True` ; les objets valeur (`CarrierAllocation`, `FrameStructure`, `FrameField`) restent `frozen`. (b) Dans toute signature publique, seul le premier argument (la donnée ou le paramètre principal) est positionnel ; le reste est keyword-only. (c) **Budget d'ergonomie normatif, vérifié par doctest** : l'exemple du README tient en ≤ 8 lignes imports compris ; aucune tâche du tutoriel n'importe un module préfixé `_` ; toute chaîne de la doc se construit sans variable intermédiaire autre que les blocs eux-mêmes | `slots` transforme la classe de défauts S1/S2 (typo d'attribut, `__post__init__` jamais appelé silencieusement) d'un bug silencieux en `AttributeError` immédiate — c'est le même mouvement que P5, appliqué à la lib elle-même. Le kw-only rend les appels auto-documentés (`AWGN(snr_dB=15)` se lit sans la doc, P7) et rend l'ajout de paramètres non cassant. Le budget (c) rend « simple à utiliser » **falsifiable** : si l'exemple ne tient plus en 8 lignes, c'est l'API qui a tort, pas l'exemple | `attrs` (dépendance, viole P1) ; `pydantic` (validation runtime coûteuse sur des tableaux, dépendance lourde) ; budget en prose non testé (vœu pieux — exactement ce que P3 interdit ailleurs) | **Acté** | -| D41 | **Paramétrages alternatifs : un kwarg nommé par paramétrage, mutuellement exclusifs — jamais de couple `value`/`unit`.** Un bloc admettant plusieurs façons équivalentes d'être configuré expose un keyword par voie (`AWGN(snr_dB=15)` **ou** `AWGN(sigma2=0.01)`), tous `None` par défaut, avec validation « exactement un » dans `__post_init__` et message énumérant les choix. Le nom du kwarg porte l'unité (`snr_dB`, `sigma2`, `length_km`) : il n'existe **aucun** paramètre `unit` dans la lib | Le couple `value`/`unit` actuel est de la *primitive obsession* : deux paramètres sans sens séparés, où la faute de frappe (`"snr_db"`) traverse jusqu'au runtime. Surtout, `snr_dB` et `sigma2` ne sont pas la même grandeur dans deux unités — l'un est relatif à la puissance du signal, l'autre absolu ; ils changent le *calcul* de `forward`, pas une conversion. Un kwarg par voie rend la sémantique visible dans l'appel (P7), la faute de frappe devient `TypeError` immédiate (D40a/b), le JSON D31 sérialise `{"snr_dB": 15}` sans champ discriminant, et `sweep(param="awgn.snr_dB")` (D35) devient auto-descriptif là où `awgn.value` était muet. Précédent : `timedelta(hours=…, minutes=…)` | `Literal["snr_dB", "sigma2"]` sur `unit` (corrige le typage, garde le couple, masque la différence relatif/absolu) ; `IntEnum NoiseUnit` (verbeux à l'appel, un import de plus, conversion JSON nécessaire — les enums D15/D21 se justifient pour des *données*, pas un sélecteur binaire) ; `pint`/objets quantité (viole P1) ; surcharge par type (indécidable : tout est `float`) | **Acté** | +| D41 | **Paramétrages alternatifs : un kwarg nommé par paramétrage, mutuellement exclusifs — jamais de couple `value`/`unit`.** Un bloc admettant plusieurs façons équivalentes d'être configuré expose un keyword par voie (`AWGN(snr_dB=15)` **ou** `AWGN(sigma2=0.01)`), tous `None` par défaut, avec validation « exactement un » dans `__post_init__` et message énumérant les choix. Le nom du kwarg porte l'unité (`snr_dB`, `sigma2`, `length_km`) : il n'existe **aucun** paramètre `unit` dans la lib | Le couple `value`/`unit` actuel est de la *primitive obsession* : deux paramètres sans sens séparés, où la faute de frappe (`"snr_db"`) traverse jusqu'au runtime. Surtout, `snr_dB` et `sigma2` ne sont pas la même grandeur dans deux unités — l'un est relatif à la puissance du signal, l'autre absolu ; ils changent le *calcul* de `forward`, pas une conversion. Un kwarg par voie rend la sémantique visible dans l'appel (P7), la faute de frappe devient `TypeError` immédiate (D40a/b), le JSON D31 sérialise `{"snr_dB": 15}` sans champ discriminant, et `monte_carlo(param="awgn.snr_dB")` (D35) devient auto-descriptif là où `awgn.value` était muet. Précédent : `timedelta(hours=…, minutes=…)` | `Literal["snr_dB", "sigma2"]` sur `unit` (corrige le typage, garde le couple, masque la différence relatif/absolu) ; `IntEnum NoiseUnit` (verbeux à l'appel, un import de plus, conversion JSON nécessaire — les enums D15/D21 se justifient pour des *données*, pas un sélecteur binaire) ; `pint`/objets quantité (viole P1) ; surcharge par type (indécidable : tout est `float`) | **Acté** | **Piège d'implémentation (D40a, à connaître avant le refactor).** Avec `slots=True`, tout attribut créé dans `__post_init__` doit être déclaré @@ -1155,7 +1155,7 @@ versions de Python annoncées. export JSON et test d'aller-retour. Peu coûteux et immédiatement utile : `summary()` sert le refactor D2, le JSON sert D6 et le papier *(2 après-midi)* 5ter. **D35** — *si et seulement si* le déclencheur est atteint (3ᵉ script - `validation/` au squelette identique) : extraction de `sweep()` depuis + `validation/` au squelette identique) : extraction de `monte_carlo()` depuis ces scripts *(1 après-midi)* ; sinon, reporté post-1.0 6. **D6, D10, D11, D23, D25, D27, D30, D37** — graine de chaîne, docstrings au gabarit §4.10 (validation `numpydoc` en CI dès le @@ -1262,7 +1262,7 @@ ou à corriger. longueur dépend de l'en-tête). À spécifier avec le point précédent. - *Format de scénario sérialisé* — extension naturelle de D31 + D35 : un fichier décrivant chaîne (JSON D31), balayage (`param`, `values`), - graine (D6) et métriques, exécutable par `sweep()` sans code. Utile + graine (D6) et métriques, exécutable par `monte_carlo()` sans code. Utile pour le BANC (rejouer une campagne de mesures) et comme argument de reproductibilité JOSS, mais c'est un format de fichier, pas une API : à spécifier après que D35 existe, jamais avant. Danger identifié à ne diff --git a/CHANGELOG.md b/CHANGELOG.md index bad37ef..b074c71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ one release; there is no compatibility layer. | Before (0.91) | After (1.0.0) | |---|---| +| `sweep(chain, param, values, metrics, stimulus)` | `monte_carlo(...)`, same signature — the only bare verb of the root namespace, and a name that said nothing about the points being random draws. Every point reseeds and redraws, so `seed=` is what makes a curve reproducible; the new name says so | | `Serial2Parallel(N, order="F")` → shape `(N_sub, M)` | `Serial2Parallel(N)` → Block layout `(..., T, F)` = `(..., M, N_sub)`, pure C-order reshape; `order` removed | | `Parallel2Serial(order="F")` | `Parallel2Serial()` — C-order flatten of `(..., T, F)`; `order` removed | | OFDM blocks operate on axis 0 by default | OFDM blocks operate on the block content axis -1 (`FFTProcessor`/`IFFTProcessor` hardcode it; `axis` removed there) | @@ -34,7 +35,7 @@ one release; there is no compatibility layer. | `Scope(scope_type="iq", ...)`, `TimeScope`, `SpectrumScope`, `IQScope`, `KDEScope`, `WelchScope` blocks | removed — functions `plot_iq`, `plot_time`, `plot_spectrum`, `plot_kde`, `plot_welch` applied to a tapped signal | | `ofdm.visualizers.FFTMonitor` block | `ofdm.visualizers.plot_subcarrier_amplitude(X, ax=...)` | | `CarrierExtractor(..., pilot_recorder=rec)` | pilot content exposed as the estimated attribute `extractor.pilots_` (D23) | -| `TrainedBased*(target_data=recorder)` | `DataAided*(reference=…)` — the class family is renamed after the standard pair of the field (*data-aided* vs *blind*, which the `Blind*` classes already used), and the known signal an estimator compares against is a `reference`, the same word `sweep(reference=…)` uses. It takes a plain array; when the reference is produced by the chain itself, declare `wiring={"comp.reference": "source"}` | +| `TrainedBased*(target_data=recorder)` | `DataAided*(reference=…)` — the class family is renamed after the standard pair of the field (*data-aided* vs *blind*, which the `Blind*` classes already used), and the known signal an estimator compares against is a `reference`, the same word `monte_carlo(reference=…)` uses. It takes a plain array; when the reference is produced by the chain itself, declare `wiring={"comp.reference": "source"}` | | `DataAidedFIRCompensator(h, reference=…)` | `DataAidedFIRCompensator(reference=…)` — `h` was only an initial value that `fit` overwrote from scratch, i.e. a purely estimated quantity; it is now `h_` and not a constructor parameter | | `Normalizer(gain, method, …)` (inherited from `Amplifier`) | `Normalizer(method, …)` — `gain` is no longer constructible, so `Normalizer('max')` finally means what it reads; the measured gain is `gain_` (D23) | | `Amplifier(gain, axis=…)` | `Amplifier(gain)` — `axis` implemented no defensible model (it scaled only entries at index `axis` of the *last* axis, whatever axis was asked); use `WeightAmplifier` for a per-branch gain | @@ -585,7 +586,7 @@ Substantive changes rather than reorganisation: the two overlaid on one figure (0.25 dB apart on the optimal launch power, 0.17 dB on the peak SNR). -- `sweep(n_jobs=...)`: the points of a sweep are independent by +- `monte_carlo(n_jobs=...)`: the points of a sweep are independent by construction -- each one reconfigures and reseeds the chain from scratch -- so they can run at once. The curve is **identical** value for value, not merely statistically equivalent, because every point @@ -1248,7 +1249,7 @@ Substantive changes rather than reorganisation: to `cupyx.scipy.fft`. CuPy is imported only when a CuPy array is seen and remains a non-dependency. -- `comnumpy.sweep(chain, param, values, metrics, stimulus, ...)` (D35): +- `comnumpy.monte_carlo(chain, param, values, metrics, stimulus, ...)` (D35): the parameter-sweep loop shared by the validation scripts, extracted after the third script needed it. Dotted `set_params` addressing, per-point child seeds, zip semantics for multi-parameter sweeps. @@ -1273,7 +1274,7 @@ Substantive changes rather than reorganisation: `comnumpy.core.metrics.signal_report(x)`, which returns the statistics as a dict for the caller to log, tabulate or assert on. A CI guard test keeps these names out of the public surface. -- `sweep(..., reference="tx")` now names a tapped block and declares the +- `monte_carlo(..., reference="tx")` now names a tapped block and declares the tap itself if needed; blocks no longer hold references to other blocks (`reference=` takes a plain array). - `Sequential(..., wiring={"comp.reference": "ref"})`: declares the diff --git a/CONVENTIONS.md b/CONVENTIONS.md index a91b889..27a1da7 100644 --- a/CONVENTIONS.md +++ b/CONVENTIONS.md @@ -115,7 +115,7 @@ D31: a second input to a block, declared by the chain. A general DAG is still out of scope. **Naming.** The known signal an estimator compares against is the -`reference` — the same word `sweep(reference=...)` uses for the same +`reference` — the same word `monte_carlo(reference=...)` uses for the same idea. Blocks that need one are `DataAided*`, by opposition to the `Blind*` family; that is the standard pair of the field (Proakis, §8: *data-aided* vs *blind* estimation). diff --git a/docs/documentation/toplevel/index.rst b/docs/documentation/toplevel/index.rst index 5539a54..0d62aca 100644 --- a/docs/documentation/toplevel/index.rst +++ b/docs/documentation/toplevel/index.rst @@ -11,5 +11,5 @@ import, parameter sweeps, and the plotting style. exceptions serialization - sweep + monte_carlo style diff --git a/docs/documentation/toplevel/sweep.rst b/docs/documentation/toplevel/monte_carlo.rst similarity index 56% rename from docs/documentation/toplevel/sweep.rst rename to docs/documentation/toplevel/monte_carlo.rst index eb89e49..8cd61a0 100644 --- a/docs/documentation/toplevel/sweep.rst +++ b/docs/documentation/toplevel/monte_carlo.rst @@ -1,5 +1,5 @@ Parameter sweeps ================ -.. automodule:: comnumpy.sweep +.. automodule:: comnumpy.monte_carlo :members: diff --git a/docs/getting_started/first_simulation.rst b/docs/getting_started/first_simulation.rst index aa47b73..eabea60 100644 --- a/docs/getting_started/first_simulation.rst +++ b/docs/getting_started/first_simulation.rst @@ -181,7 +181,7 @@ The chain answers the same way: ``seed`` for reproducibility, :meth:`~comnumpy.core.generics.Sequential.set_params` to reconfigure a named block after construction, ``elapsed_`` for the time the last pass took, and -:func:`~comnumpy.sweep.sweep` to run the whole thing over a range of one +:func:`~comnumpy.monte_carlo.sweep` to run the whole thing over a range of one parameter. None of those exist for a script of loose arrays -- not because they would be hard to write, but because there is nothing to attach them to. diff --git a/docs/getting_started/who_is_comnumpy_for.rst b/docs/getting_started/who_is_comnumpy_for.rst index a1570b7..04e417c 100644 --- a/docs/getting_started/who_is_comnumpy_for.rst +++ b/docs/getting_started/who_is_comnumpy_for.rst @@ -55,7 +55,7 @@ the ones that matter in daily research work. A chain can be:: chain.seed(42) # every stochastic block, reproducibly chain.set_params(noise__snr_dB=12) # reconfigured after construction - results = sweep(chain, {"noise.snr_dB": range(0, 20, 2)}) + results = monte_carlo(chain, {"noise.snr_dB": range(0, 20, 2)}) text = to_json(chain) # the experiment, as a file print(chain.to_mermaid()) # the experiment, as a picture diff --git a/docs/tutorials/alamouti.rst b/docs/tutorials/alamouti.rst index afde28b..9976fdd 100644 --- a/docs/tutorials/alamouti.rst +++ b/docs/tutorials/alamouti.rst @@ -234,7 +234,7 @@ Monte Carlo Evaluation ^^^^^^^^^^^^^^^^^^^^^^ Averaging over fading means running the chain once per channel realization, -which is a sweep whose parameter is the channel. :func:`~comnumpy.sweep.sweep` +which is a sweep whose parameter is the channel. :func:`~comnumpy.monte_carlo.sweep` takes several dotted parameter names at once and zips them, so one sweep point sets the channel the signal goes through **and** the channel the detector inverts: diff --git a/docs/tutorials/awgn.rst b/docs/tutorials/awgn.rst index 3883929..7bafaa8 100644 --- a/docs/tutorials/awgn.rst +++ b/docs/tutorials/awgn.rst @@ -7,7 +7,7 @@ that repetition is what "Monte Carlo simulation" means, and there is nothing more to it than a loop. We will write that loop by hand first, because it is worth seeing exactly -what a sweep is made of. Then we will replace it with :func:`~comnumpy.sweep.sweep`, +what a sweep is made of. Then we will replace it with :func:`~comnumpy.monte_carlo.sweep`, which does the same four things in one call, and use *that* in every tutorial that follows. @@ -22,7 +22,7 @@ that follows. - How to reconfigure a chain between runs with ``set_params``, and make each run reproducible with ``seed``. -- How to write a Monte Carlo loop, and then how to replace it with ``sweep``. +- How to write a Monte Carlo loop, and then how to replace it with ``monte_carlo``. - How to compare a measured curve with the closed form it should follow. - How to draw the result with ``plot_error_rate``, the figure this library uses for every error rate. @@ -130,7 +130,7 @@ construction, with the dotted notation ``"awgn_channel.snr_dB"``; this is why blocks are named. And the tap returns what the transmitter produced, so the metric has something to compare against -- after the run, never before. -Now the same thing in one call. :func:`~comnumpy.sweep.sweep` takes the chain, +Now the same thing in one call. :func:`~comnumpy.monte_carlo.sweep` takes the chain, the dotted name of what varies, the values it takes, and the metrics to collect -- and does the reseed, the reconfigure, the run and the measurement at every point: @@ -145,11 +145,11 @@ at every point: sweep : 7.410e-01 3.533e-01 7.117e-03 The two are the same computation. They do not print the same digits because -``sweep`` gives each point its own child seed rather than reseeding every +``monte_carlo`` gives each point its own child seed rather than reseeding every point to the same value, so the noise realizations differ; the gap is the Monte Carlo error of a million symbols, not a difference of method. -**From here on, the other tutorials use** ``sweep`` **without rewriting the +**From here on, the other tutorials use** ``monte_carlo`` **without rewriting the loop.** When you see it sweeping a channel matrix rather than an SNR (in :doc:`mimo` and :doc:`alamouti`), it is still these four steps -- only the parameter that varies has changed. @@ -190,14 +190,14 @@ share a colour, so a pair reads as one statement. Conclusion ^^^^^^^^^^ -You have turned one run into a curve, and you have seen that ``sweep`` is not +You have turned one run into a curve, and you have seen that ``monte_carlo`` is not a new concept but the loop you already wrote, packaged. You have learned how to: - Reconfigure and reseed a chain between runs. - Collect a metric over a range of parameter values, by hand and with - ``sweep``. + ``monte_carlo``. - Read a measured curve against a closed form. From here, :doc:`ofdm` keeps the chain and changes the channel: instead of one diff --git a/docs/tutorials/coding.rst b/docs/tutorials/coding.rst index 2c3d52d..b7128ff 100644 --- a/docs/tutorials/coding.rst +++ b/docs/tutorials/coding.rst @@ -17,7 +17,7 @@ tutorial is plotted against :math:`E_b/N_0` rather than SNR. .. note:: - **Before you start.** :doc:`awgn` introduced ``sweep`` and + **Before you start.** :doc:`awgn` introduced ``monte_carlo`` and ``plot_error_rate``, both used here without comment. Nothing else is assumed: the codes are built from scratch. @@ -318,7 +318,7 @@ independent, so they can be run at the same time: .. code:: python - results = sweep(chain, "noise.snr_dB", snr_dB(ebn0_dB, rate), + results = monte_carlo(chain, "noise.snr_dB", snr_dB(ebn0_dB, rate), {"ber": compute_ser}, n_bits, reference="tx", seed=4, n_jobs=4) diff --git a/docs/tutorials/gn_model.rst b/docs/tutorials/gn_model.rst index 127e99f..069dcce 100644 --- a/docs/tutorials/gn_model.rst +++ b/docs/tutorials/gn_model.rst @@ -261,7 +261,7 @@ polarization for a channel power :math:`P`. ``name="launch"`` and ``name="fibre"`` are what let the rest of the page *reconfigure* the link instead of rebuilding it: ``chain.set_params`` reaches a block by its identifier and re-runs its precomputation (decision D34), and -:func:`~comnumpy.sweep` drives ``"launch.gain"`` over a list of values the +:func:`~comnumpy.monte_carlo` drives ``"launch.gain"`` over a list of values the same way. One chain, built once, answers every question below. ``taps=["tx"]`` marks the mapper output as readable from outside the chain -- diff --git a/docs/tutorials/index.rst b/docs/tutorials/index.rst index 89a9b6f..9cef39c 100644 --- a/docs/tutorials/index.rst +++ b/docs/tutorials/index.rst @@ -19,7 +19,7 @@ and nothing is explained twice. * - 1 - :doc:`awgn` - A Monte Carlo study: first as an ordinary ``for`` loop, then the same - thing with ``sweep``. Also ``seed``, ``set_params`` and + thing with ``monte_carlo``. Also ``seed``, ``set_params`` and ``plot_error_rate``. * - 2 - :doc:`ofdm` diff --git a/docs/tutorials/mimo.rst b/docs/tutorials/mimo.rst index 2463011..9d19ed7 100644 --- a/docs/tutorials/mimo.rst +++ b/docs/tutorials/mimo.rst @@ -7,7 +7,7 @@ compare on it. .. note:: - **Before you start.** :doc:`awgn` introduced ``sweep``, which is used + **Before you start.** :doc:`awgn` introduced ``monte_carlo``, which is used here to average over channel realizations rather than over noise. The chain is the same object; only the number of antennas changes. @@ -227,7 +227,7 @@ Monte Carlo Evaluation A single channel realization proves nothing: over fading, the error rate is an *average*, dominated by the rare draws where the matrix is nearly singular. Averaging means running the chain once per realization, which is a -sweep whose parameter is the channel. :func:`~comnumpy.sweep.sweep` takes +sweep whose parameter is the channel. :func:`~comnumpy.monte_carlo.sweep` takes several dotted parameter names at once and zips them, so one sweep point sets the matrix the signal goes through **and** the one the detector inverts: diff --git a/docs/tutorials/ofdm.rst b/docs/tutorials/ofdm.rst index af19ece..5392e5a 100644 --- a/docs/tutorials/ofdm.rst +++ b/docs/tutorials/ofdm.rst @@ -14,7 +14,7 @@ channel (**OFDM**). .. note:: **Before you start.** :doc:`awgn` introduced the chain, ``seed``, - ``sweep`` and ``plot_error_rate``; they are used here without being + ``monte_carlo`` and ``plot_error_rate``; they are used here without being re-explained. What is new is the channel: it is no longer a single coefficient. diff --git a/examples/mimo/one_shot_alamouti.py b/examples/mimo/one_shot_alamouti.py index ca036b0..2c51ab1 100644 --- a/examples/mimo/one_shot_alamouti.py +++ b/examples/mimo/one_shot_alamouti.py @@ -6,7 +6,7 @@ import matplotlib.pyplot as plt import numpy as np -from comnumpy import sweep +from comnumpy import monte_carlo from comnumpy.core import Sequential from comnumpy.core.generators import SymbolGenerator from comnumpy.core.mappers import SymbolDemapper, SymbolMapper @@ -110,7 +110,7 @@ def get_chain(kind, H, sigma2=sigma2): def average_ser(chain, n_rx, n_tx, snr_dB, stimulus, n_channels, seed=0): """Average one chain over independent quasi-static fading draws. - The chain is built once. ``sweep`` takes several dotted parameters + The chain is built once. ``monte_carlo`` takes several dotted parameters at once and zips them, so one sweep point sets the channel the signal goes through *and* the channel the detector inverts -- which is exactly what a fading realization is. @@ -121,9 +121,9 @@ def average_ser(chain, n_rx, n_tx, snr_dB, stimulus, n_channels, seed=0): H = rayleigh_channel(n_rx, n_tx, rng=rng) draws.append((H, H)) chain.set_params(noise__sigma2=10 ** (-snr_dB / 10)) - results = sweep(chain, ("channel.H", "detector.H"), draws, - {"ser": compute_ser}, stimulus=stimulus, - reference="tx", seed=seed) + results = monte_carlo(chain, ("channel.H", "detector.H"), draws, + {"ser": compute_ser}, stimulus=stimulus, + reference="tx", seed=seed) return float(np.mean(results["ser"])) diff --git a/examples/mimo/one_shot_mimo.py b/examples/mimo/one_shot_mimo.py index 444f2cd..7628568 100644 --- a/examples/mimo/one_shot_mimo.py +++ b/examples/mimo/one_shot_mimo.py @@ -3,7 +3,7 @@ import numpy as np import matplotlib.pyplot as plt -from comnumpy import sweep +from comnumpy import monte_carlo from comnumpy.core import Sequential from comnumpy.core.generators import SymbolGenerator from comnumpy.core.mappers import SymbolMapper @@ -100,9 +100,9 @@ def average_ser(name, chain, snr_dB, seed=0): if name in NOISE_AWARE: params["detector.sigma2"] = noise_variance chain.set_params(**params) - results = sweep(chain, ("channel.H", "detector.H"), draws, - {"ser": compute_ser}, stimulus=(N_t, n_symbols), - reference="tx", seed=seed) + results = monte_carlo(chain, ("channel.H", "detector.H"), draws, + {"ser": compute_ser}, stimulus=(N_t, n_symbols), + reference="tx", seed=seed) return float(np.mean(results["ser"])) diff --git a/examples/ofdm/one_shot_ofdm.py b/examples/ofdm/one_shot_ofdm.py index 375f033..bb94b21 100644 --- a/examples/ofdm/one_shot_ofdm.py +++ b/examples/ofdm/one_shot_ofdm.py @@ -7,7 +7,7 @@ import matplotlib.pyplot as plt import numpy as np -from comnumpy import sweep +from comnumpy import monte_carlo from comnumpy.core import Sequential from comnumpy.core.channels import AWGN, FIRChannel, TappedDelayLineChannel from comnumpy.core.compensators import LinearEqualizer @@ -105,8 +105,8 @@ snr_list = np.arange(6, 22, 2) measured = {} for name, chain in (("single carrier", sc_chain), ("OFDM", ofdm_chain)): - runs = [sweep(chain, "data_rx.snr_dB", snr_list, {"ser": compute_ser}, N, - reference="data_tx", seed=trial)["ser"] + runs = [monte_carlo(chain, "data_rx.snr_dB", snr_list, {"ser": compute_ser}, N, + reference="data_tx", seed=trial)["ser"] for trial in range(1, 3)] measured[name] = np.mean(runs, axis=0) diff --git a/examples/optical/gn_model.py b/examples/optical/gn_model.py index b712166..3e73c72 100644 --- a/examples/optical/gn_model.py +++ b/examples/optical/gn_model.py @@ -1,7 +1,7 @@ import numpy as np import matplotlib.pyplot as plt -from comnumpy import sweep +from comnumpy import monte_carlo from comnumpy.core import Sequential from comnumpy.core.compensators import DataAidedComplexGainCompensator from comnumpy.core.filters import SRRCFilter @@ -142,10 +142,10 @@ def effective_snr_dB(sent, received): def measure(chain, powers_W, seed=3): - return sweep(chain, "launch.gain", - launch_amplitude(powers_W, polarizations=2), - {"snr_dB": effective_snr_dB}, STIMULUS, - reference="tx", seed=seed)["snr_dB"] + return monte_carlo(chain, "launch.gain", + launch_amplitude(powers_W, polarizations=2), + {"snr_dB": effective_snr_dB}, STIMULUS, + reference="tx", seed=seed)["snr_dB"] chain = get_chain() diff --git a/examples/simple/channel_coding.py b/examples/simple/channel_coding.py index 7016ea2..b21e58a 100644 --- a/examples/simple/channel_coding.py +++ b/examples/simple/channel_coding.py @@ -3,7 +3,7 @@ import numpy as np import matplotlib.pyplot as plt -from comnumpy import sweep +from comnumpy import monte_carlo from comnumpy.core import Sequential from comnumpy.core.channels import AWGN from comnumpy.core.generators import SymbolGenerator @@ -77,8 +77,8 @@ def get_coded_chain(soft): ("hard-decision Viterbi", get_coded_chain(False), rate), ("soft-decision Viterbi", get_coded_chain(True), rate)): start = time.perf_counter() - results = sweep(chain, "noise.snr_dB", snr_dB(ebn0_dB, code_rate), - {"ber": compute_ser}, n_bits, reference="tx", seed=4) + results = monte_carlo(chain, "noise.snr_dB", snr_dB(ebn0_dB, code_rate), + {"ber": compute_ser}, n_bits, reference="tx", seed=4) curves[label] = results["ber"] line = f"{label:24s} " for value in results["ber"]: @@ -115,9 +115,9 @@ def get_coded_chain(soft): SymbolDemapper(BPSK, soft=True), LDPCDecoder(H, n_iter=n_iter), ], taps=["tx"], name=f"LDPC, {n_iter} iterations") - results = sweep(link, "noise.snr_dB", snr_dB(ebn0_dB, ldpc_encoder.rate), - {"ber": compute_ser}, (n_frames, ldpc_encoder.k), - reference="tx", seed=6) + results = monte_carlo(link, "noise.snr_dB", snr_dB(ebn0_dB, ldpc_encoder.rate), + {"ber": compute_ser}, (n_frames, ldpc_encoder.k), + reference="tx", seed=6) ldpc_curves[f"LDPC (2040, {ldpc_encoder.k}), {n_iter} iterations"] = results["ber"] line = f"LDPC {n_iter:2d} iterations " for value in results["ber"]: diff --git a/examples/simple/monte_carlo_awgn.py b/examples/simple/monte_carlo_awgn.py index be0b9f1..599815d 100644 --- a/examples/simple/monte_carlo_awgn.py +++ b/examples/simple/monte_carlo_awgn.py @@ -1,6 +1,6 @@ import numpy as np import matplotlib.pyplot as plt -from comnumpy import sweep +from comnumpy import monte_carlo from comnumpy.core import Sequential from comnumpy.core.generators import SymbolGenerator from comnumpy.core.mappers import SymbolMapper, SymbolDemapper @@ -35,8 +35,8 @@ # sweep (decision D35) is that loop, and nothing more: the same # reconfigure-reseed-run-collect, over every point, in one call. -results = sweep(chain, "awgn_channel.snr_dB", snr_dB_list, - {"ser": compute_ser}, N, reference="tx", seed=1) +results = monte_carlo(chain, "awgn_channel.snr_dB", snr_dB_list, + {"ser": compute_ser}, N, reference="tx", seed=1) ser_array = results["ser"] loop_line = "loop :" for value in by_hand: diff --git a/pyrightconfig.json b/pyrightconfig.json index 3e330be..ca784b0 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -20,7 +20,7 @@ "src/comnumpy/fec/ldpc.py", "src/comnumpy/fec/analysis.py", "src/comnumpy/core/devices.py", - "src/comnumpy/sweep.py", + "src/comnumpy/monte_carlo.py", "src/comnumpy/core/filters.py", "src/comnumpy/ofdm/compensators.py", "src/comnumpy/ofdm/predistorders.py", diff --git a/src/comnumpy/__init__.py b/src/comnumpy/__init__.py index 2c4a51f..e6f8f64 100644 --- a/src/comnumpy/__init__.py +++ b/src/comnumpy/__init__.py @@ -9,7 +9,7 @@ from .exceptions import ComnumpyError, ShapeError, NotFittedError from .serialization import to_json, from_json -from .sweep import sweep +from .monte_carlo import monte_carlo from .core import ( Processor, Sequential, SymbolGenerator, SymbolMapper, SymbolDemapper, @@ -23,5 +23,5 @@ "SymbolGenerator", "SymbolMapper", "SymbolDemapper", "AWGN", "compute_ser", "Constellation", "get_alphabet", "ebn0_to_snr_dB", "esn0_to_snr_dB", - "to_json", "from_json", "sweep", + "to_json", "from_json", "monte_carlo", ] diff --git a/src/comnumpy/core/generics.py b/src/comnumpy/core/generics.py index 64b7eec..bcd08e1 100644 --- a/src/comnumpy/core/generics.py +++ b/src/comnumpy/core/generics.py @@ -332,7 +332,7 @@ def _split_parameter(self, key: str) -> tuple[str, str]: """Split ``"block.field"`` or ``"block__field"`` (decision D34). The dotted form is the addressing used everywhere a parameter is - held in a variable -- :func:`~comnumpy.sweep.sweep` builds those + held in a variable -- :func:`~comnumpy.monte_carlo.sweep` builds those strings. A dot is not a valid character in a keyword argument, though, so writing one by hand costs a ``**{...}`` wrapper. The double underscore is the same address spelled as an identifier, diff --git a/src/comnumpy/sweep.py b/src/comnumpy/monte_carlo.py similarity index 93% rename from src/comnumpy/sweep.py rename to src/comnumpy/monte_carlo.py index 150aed0..2202aba 100644 --- a/src/comnumpy/sweep.py +++ b/src/comnumpy/monte_carlo.py @@ -25,7 +25,7 @@ from comnumpy.core.generics import Sequential -__all__ = ["sweep"] +__all__ = ["monte_carlo"] # Every worker runs one sweep point at a time, so a BLAS that spawns one # thread per core inside each of them oversubscribes the machine by @@ -75,15 +75,15 @@ def _evaluate(chain: Sequential, params: list[str], point: Any, for name, metric in metrics.items()} -def sweep(chain: Sequential, - param: str | Sequence[str], - values: Sequence[Any], - metrics: Mapping[str, Callable[..., Any]], - stimulus: Any, - *, - reference: Optional[str] = None, - seed: Optional[int] = None, - n_jobs: int = 1) -> dict[str, np.ndarray]: +def monte_carlo(chain: Sequential, + param: str | Sequence[str], + values: Sequence[Any], + metrics: Mapping[str, Callable[..., Any]], + stimulus: Any, + *, + reference: Optional[str] = None, + seed: Optional[int] = None, + n_jobs: int = 1) -> dict[str, np.ndarray]: """Run a chain over a range of parameter values and collect metrics. Parameters @@ -174,8 +174,9 @@ def sweep(chain: Sequential, >>> from comnumpy import AWGN, Sequential, SymbolGenerator >>> from comnumpy.core.metrics import compute_ser >>> chain = Sequential([SymbolGenerator(4), AWGN(snr_dB=0, name="noise")]) - >>> out = sweep(chain, "noise.snr_dB", [0, 10], {"power": lambda y: float(np.mean(np.abs(y)**2))}, - ... stimulus=1000, seed=1) + >>> out = monte_carlo(chain, "noise.snr_dB", [0, 10], + ... {"power": lambda y: float(np.mean(np.abs(y)**2))}, + ... stimulus=1000, seed=1) >>> print(out["power"].shape) (2,) """ @@ -208,7 +209,7 @@ def _sweep_parallel(chain: Sequential, params: list[str], """The same points, on several processes. Same values, out of order.""" if any(child is None for child in children): raise ValueError( - f"sweep(n_jobs={n_jobs}) needs seed= as well: the points are " + f"monte_carlo(n_jobs={n_jobs}) needs seed= as well: the points are " f"then drawn from independent child seeds and the curve is the " f"same as the serial one. Without it, what a point draws would " f"depend on which worker ran it.") @@ -217,7 +218,7 @@ def _sweep_parallel(chain: Sequential, params: list[str], pickle.dumps(payload) except Exception as error: # noqa: BLE001 -- re-raised raise ValueError( - f"sweep(n_jobs={n_jobs}) runs the points in worker " + f"monte_carlo(n_jobs={n_jobs}) runs the points in worker " f"processes, and the {label} cannot be sent to one: " f"{error}. A lambda or a closure cannot be pickled -- " f"define the metric at module level, or keep n_jobs=1." @@ -250,7 +251,7 @@ def _sweep_parallel(chain: Sequential, params: list[str], # under a __main__ guard runs itself again inside every # worker. raise RuntimeError( - "sweep(n_jobs>1) starts worker processes, and each one " + "monte_carlo(n_jobs>1) starts worker processes, and each one " "re-imports the module it was started from. If you are " "calling this from a script, its body must sit under\n\n" " if __name__ == \"__main__\":\n\n" diff --git a/tests/core/test_set_params.py b/tests/core/test_set_params.py index 0d16816..cbabadc 100644 --- a/tests/core/test_set_params.py +++ b/tests/core/test_set_params.py @@ -6,7 +6,7 @@ The double underscore is the same address spelled as an identifier, which is what scikit-learn uses, so it can be a plain keyword argument. -The dotted form stays: `sweep` builds its addresses as strings, and a +The dotted form stays: `monte_carlo` builds its addresses as strings, and a string is what you want when the address is computed rather than typed. """ import unittest diff --git a/tests/test_docs_coverage.py b/tests/test_docs_coverage.py index 9819935..270d927 100644 --- a/tests/test_docs_coverage.py +++ b/tests/test_docs_coverage.py @@ -3,7 +3,7 @@ The documentation described 25 of the 46 modules in ``src/``. Everything added after the first milestone -- capacity, fading, WDM, Raman, the whole ``fec`` package, allocation, frames, sequences, serialization, -sweep, the exception hierarchy -- existed with full course-material +monte_carlo, the exception hierarchy -- existed with full course-material docstrings that no generated page ever showed. Sphinx does not notice: a module with no ``automodule`` directive is not an error, it is simply absent, which is the worst way for documentation to be wrong. diff --git a/tests/test_monte_carlo.py b/tests/test_monte_carlo.py new file mode 100644 index 0000000..208dffc --- /dev/null +++ b/tests/test_monte_carlo.py @@ -0,0 +1,52 @@ +"""monte_carlo(): reconfigure, reseed, run, collect (decision D35).""" +import unittest + +import numpy as np + +from comnumpy import AWGN, Sequential, SymbolDemapper, \ + SymbolGenerator, SymbolMapper, compute_ser, get_alphabet, monte_carlo + + +class TestMonteCarlo(unittest.TestCase): + + def build(self): + alphabet = get_alphabet("QAM", 4) + return Sequential([ + SymbolGenerator(4, name="tx"), + SymbolMapper(alphabet), + AWGN(snr_dB=0, name="noise"), + SymbolDemapper(alphabet), + ]) + + def test_results_aligned_and_monotonic(self): + values = np.arange(0, 14, 4) + out = monte_carlo(self.build(), "noise.snr_dB", values, + {"ser": compute_ser}, 20_000, reference="tx", seed=1) + self.assertEqual(out["ser"].shape, values.shape) + self.assertTrue(np.all(np.diff(out["ser"]) < 0)) # SER falls with SNR + + def test_reproducible_across_calls(self): + values = [0, 6] + a = monte_carlo(self.build(), "noise.snr_dB", values, + {"ser": compute_ser}, 5_000, reference="tx", seed=3) + b = monte_carlo(self.build(), "noise.snr_dB", values, + {"ser": compute_ser}, 5_000, reference="tx", seed=3) + np.testing.assert_array_equal(a["ser"], b["ser"]) + + def test_multi_param_zip(self): + chain = self.build() + out = monte_carlo(chain, ["noise.snr_dB", "noise.name"], + [(0, "noise"), (10, "noise")], + {"snr_set": lambda t, y: chain["noise"].snr_dB}, + 1_000, reference="tx", seed=2) + np.testing.assert_array_equal(out["snr_set"], [0, 10]) + + def test_metric_without_reference(self): + out = monte_carlo(self.build(), "noise.snr_dB", [0, 20], + {"power": lambda y: float(np.mean(np.abs(y) ** 2))}, + 2_000, seed=4) + self.assertEqual(len(out["power"]), 2) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_sweep_parallel.py b/tests/test_monte_carlo_parallel.py similarity index 65% rename from tests/test_sweep_parallel.py rename to tests/test_monte_carlo_parallel.py index d047f54..25badd6 100644 --- a/tests/test_sweep_parallel.py +++ b/tests/test_monte_carlo_parallel.py @@ -13,7 +13,7 @@ import numpy as np -from comnumpy import sweep +from comnumpy import monte_carlo from comnumpy.core import Sequential from comnumpy.core.channels import AWGN from comnumpy.core.generators import SymbolGenerator @@ -42,51 +42,51 @@ def mean_power(y): class TestParallelIsTheSameSweep(unittest.TestCase): def test_the_curve_is_identical_value_for_value(self): - serial = sweep(build_chain(), "noise.snr_dB", SNR_DB, - {"ser": compute_ser}, 2000, reference="tx", seed=5) - parallel = sweep(build_chain(), "noise.snr_dB", SNR_DB, - {"ser": compute_ser}, 2000, reference="tx", seed=5, - n_jobs=2) + serial = monte_carlo(build_chain(), "noise.snr_dB", SNR_DB, + {"ser": compute_ser}, 2000, reference="tx", seed=5) + parallel = monte_carlo(build_chain(), "noise.snr_dB", SNR_DB, + {"ser": compute_ser}, 2000, reference="tx", seed=5, + n_jobs=2) np.testing.assert_array_equal(parallel["ser"], serial["ser"]) def test_the_order_of_the_points_is_preserved(self): """Workers finish out of order; the arrays must not.""" - serial = sweep(build_chain(), "noise.snr_dB", SNR_DB, - {"power": mean_power}, 500, seed=1) - parallel = sweep(build_chain(), "noise.snr_dB", SNR_DB, - {"power": mean_power}, 500, seed=1, n_jobs=-1) + serial = monte_carlo(build_chain(), "noise.snr_dB", SNR_DB, + {"power": mean_power}, 500, seed=1) + parallel = monte_carlo(build_chain(), "noise.snr_dB", SNR_DB, + {"power": mean_power}, 500, seed=1, n_jobs=-1) np.testing.assert_array_equal(parallel["power"], serial["power"]) self.assertEqual(parallel["power"].shape, (len(SNR_DB),)) def test_more_workers_than_points_is_not_an_error(self): - out = sweep(build_chain(), "noise.snr_dB", [3.0, 6.0], - {"power": mean_power}, 200, seed=2, n_jobs=8) + out = monte_carlo(build_chain(), "noise.snr_dB", [3.0, 6.0], + {"power": mean_power}, 200, seed=2, n_jobs=8) self.assertEqual(out["power"].shape, (2,)) class TestWhatCannotCrossIntoAWorker(unittest.TestCase): - def test_a_sweep_without_a_seed_is_refused(self): + def test_a_run_without_a_seed_is_refused(self): """Without a seed, what a point draws would depend on the worker.""" with self.assertRaises(ValueError) as ctx: - sweep(build_chain(), "noise.snr_dB", SNR_DB, - {"power": mean_power}, 100, n_jobs=2) + monte_carlo(build_chain(), "noise.snr_dB", SNR_DB, + {"power": mean_power}, 100, n_jobs=2) self.assertIn("seed=", str(ctx.exception)) def test_a_lambda_metric_is_named_rather_than_left_to_pickle(self): with self.assertRaises(ValueError) as ctx: - sweep(build_chain(), "noise.snr_dB", SNR_DB, - {"power": lambda y: float(np.mean(np.abs(y)))}, 100, - seed=3, n_jobs=2) + monte_carlo(build_chain(), "noise.snr_dB", SNR_DB, + {"power": lambda y: float(np.mean(np.abs(y)))}, 100, + seed=3, n_jobs=2) message = str(ctx.exception) self.assertIn("metrics", message) self.assertIn("lambda", message) def test_the_serial_path_still_accepts_a_lambda(self): """n_jobs=1 has no boundary to cross, and must stay permissive.""" - out = sweep(build_chain(), "noise.snr_dB", [5.0], - {"power": lambda y: float(np.mean(np.abs(y)))}, 100, - seed=3) + out = monte_carlo(build_chain(), "noise.snr_dB", [5.0], + {"power": lambda y: float(np.mean(np.abs(y)))}, 100, + seed=3) self.assertEqual(out["power"].shape, (1,)) diff --git a/tests/test_sweep.py b/tests/test_sweep.py deleted file mode 100644 index 530c169..0000000 --- a/tests/test_sweep.py +++ /dev/null @@ -1,52 +0,0 @@ -"""sweep(): reconfigure, reseed, run, collect (decision D35).""" -import unittest - -import numpy as np - -from comnumpy import AWGN, Sequential, SymbolDemapper, \ - SymbolGenerator, SymbolMapper, compute_ser, get_alphabet, sweep - - -class TestSweep(unittest.TestCase): - - def build(self): - alphabet = get_alphabet("QAM", 4) - return Sequential([ - SymbolGenerator(4, name="tx"), - SymbolMapper(alphabet), - AWGN(snr_dB=0, name="noise"), - SymbolDemapper(alphabet), - ]) - - def test_results_aligned_and_monotonic(self): - values = np.arange(0, 14, 4) - out = sweep(self.build(), "noise.snr_dB", values, - {"ser": compute_ser}, 20_000, reference="tx", seed=1) - self.assertEqual(out["ser"].shape, values.shape) - self.assertTrue(np.all(np.diff(out["ser"]) < 0)) # SER falls with SNR - - def test_reproducible_across_calls(self): - values = [0, 6] - a = sweep(self.build(), "noise.snr_dB", values, - {"ser": compute_ser}, 5_000, reference="tx", seed=3) - b = sweep(self.build(), "noise.snr_dB", values, - {"ser": compute_ser}, 5_000, reference="tx", seed=3) - np.testing.assert_array_equal(a["ser"], b["ser"]) - - def test_multi_param_zip(self): - chain = self.build() - out = sweep(chain, ["noise.snr_dB", "noise.name"], - [(0, "noise"), (10, "noise")], - {"snr_set": lambda t, y: chain["noise"].snr_dB}, - 1_000, reference="tx", seed=2) - np.testing.assert_array_equal(out["snr_set"], [0, 10]) - - def test_metric_without_reference(self): - out = sweep(self.build(), "noise.snr_dB", [0, 20], - {"power": lambda y: float(np.mean(np.abs(y) ** 2))}, - 2_000, seed=4) - self.assertEqual(len(out["power"]), 2) - - -if __name__ == "__main__": - unittest.main() diff --git a/validation/core_awgn_ser.py b/validation/core_awgn_ser.py index 2ee8ace..d6e5a14 100644 --- a/validation/core_awgn_ser.py +++ b/validation/core_awgn_ser.py @@ -11,7 +11,7 @@ from comnumpy import (AWGN, Sequential, SymbolDemapper, SymbolGenerator, SymbolMapper, compute_ser, Constellation) -from comnumpy.sweep import sweep +from comnumpy.monte_carlo import monte_carlo FIG_DIR = pathlib.Path(__file__).parent / "figures" @@ -27,9 +27,9 @@ def simulate(order, seed): AWGN(snr_dB=0, name="noise"), SymbolDemapper(constellation), ]) - results = sweep(chain, "noise.snr_dB", SNR_DB_RANGE, - {"ser": compute_ser}, N_SYMBOLS, - reference="tx", seed=seed) + results = monte_carlo(chain, "noise.snr_dB", SNR_DB_RANGE, + {"ser": compute_ser}, N_SYMBOLS, + reference="tx", seed=seed) return results["ser"] diff --git a/validation/fec_coding_gain.py b/validation/fec_coding_gain.py index 8a858c6..022f676 100644 --- a/validation/fec_coding_gain.py +++ b/validation/fec_coding_gain.py @@ -13,7 +13,7 @@ from comnumpy import AWGN, Sequential, SymbolGenerator from comnumpy.core.mappers import SymbolDemapper, SymbolMapper from comnumpy.fec import ConvolutionalEncoder, ViterbiDecoder -from comnumpy.sweep import sweep +from comnumpy.monte_carlo import monte_carlo FIG_DIR = pathlib.Path(__file__).parent / "figures" @@ -54,15 +54,15 @@ def main(): snr_coded = EBN0_DB_RANGE + 10 * np.log10(CODE_RATE) ber = {} - ber["uncoded"] = sweep(get_uncoded_chain(), "noise.snr_dB", EBN0_DB_RANGE, - {"ber": compute_ber_bits}, N_BITS, - reference="tx", seed=10)["ber"] - ber["hard"] = sweep(get_coded_chain(soft=False), "noise.snr_dB", snr_coded, - {"ber": compute_ber_bits}, N_BITS, - reference="tx", seed=20)["ber"] - ber["soft"] = sweep(get_coded_chain(soft=True), "noise.snr_dB", snr_coded, - {"ber": compute_ber_bits}, N_BITS, - reference="tx", seed=30)["ber"] + ber["uncoded"] = monte_carlo(get_uncoded_chain(), "noise.snr_dB", EBN0_DB_RANGE, + {"ber": compute_ber_bits}, N_BITS, + reference="tx", seed=10)["ber"] + ber["hard"] = monte_carlo(get_coded_chain(soft=False), "noise.snr_dB", snr_coded, + {"ber": compute_ber_bits}, N_BITS, + reference="tx", seed=20)["ber"] + ber["soft"] = monte_carlo(get_coded_chain(soft=True), "noise.snr_dB", snr_coded, + {"ber": compute_ber_bits}, N_BITS, + reference="tx", seed=30)["ber"] # Hard decisions operate 10*log10(1/R) = 3 dB below the uncoded channel # SNR, so the hard curve crosses the uncoded one around 3-4 dB (Proakis diff --git a/validation/ofdm_awgn_ser.py b/validation/ofdm_awgn_ser.py index 573bada..d1544ca 100644 --- a/validation/ofdm_awgn_ser.py +++ b/validation/ofdm_awgn_ser.py @@ -20,7 +20,7 @@ from comnumpy.ofdm.processors import (CarrierAllocator, CarrierExtractor, CyclicPrefixer, CyclicPrefixRemover, FFTProcessor, IFFTProcessor) -from comnumpy.sweep import sweep +from comnumpy.monte_carlo import monte_carlo FIG_DIR = pathlib.Path(__file__).parent / "figures" @@ -52,9 +52,9 @@ def ofdm_chain(): def main(): - results = sweep(ofdm_chain(), "noise.snr_dB", SNR_DB_RANGE, - {"ser": compute_ser_truncated}, N_SYMBOLS, - reference="tx", seed=7) + results = monte_carlo(ofdm_chain(), "noise.snr_dB", SNR_DB_RANGE, + {"ser": compute_ser_truncated}, N_SYMBOLS, + reference="tx", seed=7) ser_sim = results["ser"] # The AWGN block measures the *time-domain* power. With unit-power From 298e6ad06ab5eef59b70b5d1d264de66856395b9 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 08:08:42 +0000 Subject: [PATCH 07/18] Put the Hager reproduction back, in validation/ The original `NLI_simulation.py` reproduced the effective-SNR curves of Hager and Pfister (arXiv:2010.14258) on their own setup, and successive rewrites turned it into a teaching script: 16-QAM instead of the paper's Gaussian stimulus, linear steps where the paper uses logarithmic ones for the one- and two-step back-propagators, and far fewer steps. The reproduction was lost, and a reproduction is not a tutorial -- under D7 it belongs in `validation/`, which is where a claim of correctness lives. `validation/optical_dbp_hager.py` restores the setup: Gaussian symbols, both links (25 x 80 km at 10.7 GBd and 10 x 100 km at 32 GBd), logarithmic steps for the low-step receivers, and the paper's own complex-scalar gain and phase correction -- which is `DataAidedComplexGainCompensator(shared=True)` rather than four lines of algebra. The amplifier-noise reference spans 16.04 to 29.75 dB over -6 to +8 dBm, against the 16.5 to 29.5 dB of the paper's figure for that link. What is asserted is the structure those figures show -- the reference climbs monotonically, every other receiver turns over inside the range, more steps buy a higher peak at a higher power in order, and the best one stays within a few decibels of the bound -- because the published values are read off figures and transcribing them by eye would assert my eyesight. The table is printed in full so the curves can be laid over the paper's. The default run is ten seconds; `--full` is the paper's StPS = 500 with ten trials on both links. One thing is deliberately not restored. The original band-limited with `BWFilter(1 / oversampling_sim)` before decimating by `oversampling_sim // oversampling_dsp`, which is the defect fixed in #37: it put a distortion floor under every curve and is why a reference that should climb as P/P_ASE saturated instead. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Pn2F8X4HZhS8fEJcL5enzw --- validation/README.md | 1 + validation/optical_dbp_hager.py | 239 ++++++++++++++++++++++++++++++++ 2 files changed, 240 insertions(+) create mode 100644 validation/optical_dbp_hager.py diff --git a/validation/README.md b/validation/README.md index 3bbf1fb..e1fc842 100644 --- a/validation/README.md +++ b/validation/README.md @@ -28,6 +28,7 @@ python validation/core_awgn_ser.py | `optical_dbp_roundtrip.py` | Noiseless DBP with matched steps inverts the fiber to machine precision; CD-only equalization leaves a nonlinear residual growing with launch power | Ip & Kahn, JLT 26(20), 2008 | | `optical_raman.py` | Distributed Raman: on-off gain against the undepleted closed form `exp(g P_p L_eff)` for co, counter and bidirectional pumping; photon-number conservation `P_s/nu_s + P_p/nu_p` in the lossless limit, which holds *under depletion* where no closed form does; the counter/co gap opening monotonically with the pump; and the BVP path reproducing the IVP path | Agrawal, *Nonlinear Fiber Optics*, ch. 8; Islam, IEEE JSTQE 8(3), 2002 | | `optical_wdm_opticommpy.py` | A published 11 x 32 GBd PDM-16QAM WDM transmission over 700 km, reproduced against a **second implementation** rather than a closed form: the comb power matches the printed 8.41 dBm exactly, the ASE-limited SNR matches its own closed form to 0.02 dB, a fixed 0.5 km split step is shown to be 0.8 dB short of converged, the MI, GMI and normalized GMI land on the published 4.00 / 4.00 / 1.00, and the full link lands 1.0 dB above the published 20.63 dB -- the sign every impairment the notebook models and this one does not would give | OptiCommPy, `test_WDM_transmission.ipynb`; Essiambre et al., JLT 28(4), 2010; Marcuse et al., JLT 15(9), 1997 | +| `optical_dbp_hager.py` | The whole split-step + DBP stack against the **published effective-SNR curves** of Häger & Pfister (arXiv:2010.14258), on their own setup: Gaussian stimulus, 500 steps per span forward, logarithmic steps for the one- and two-step back-propagators. The amplifier-noise reference spans 16.0 to 29.8 dB over -6 to +8 dBm, against the 16.5-29.5 dB of the paper's figure for the same link; more steps buy a higher peak at a higher launch power, in order, and the best back-propagator comes within 3.5 dB of the noise-only bound while moving the optimum 8 dB to the right. `--full` runs both links at StPS = 500 (~1 h) | Häger & Pfister, IEEE JSAC 39(1), 2021; the reference implementation at github.com/chaeger/LDBP | | `optical_gn_model.py` | The Gaussian Noise model against **a published measurement and an independent split-step solver**: the closed form reproduces the 15-channel, 5 x 100 km `a_NL = -23.5` dB of Serena & Bononi to 0.20 dB; this library's own SSFM agrees to 0.01 dB on a five-channel WDM link and to better than 1 dB single-channel across 1-20 spans (the drift being the coherence exponent, measured at 0.21); the cubic law comes out at n = 3.006; the 27/8 Manakov-vs-scalar polarization factor of Table I is measured at 5.29 dB against 5.28; and the modulation-format gap the GN model is blind to is measured (16QAM 1.4 dB, QPSK 2.2 dB) against the published 15-channel 1.6 / 2.8 dB. `--full` reproduces the whole published link by SSFM (-23.15 dB, ~15 min) | Serena & Bononi, JLT 33(7), 2015; Poggiolini, JLT 30(24), 2012; GNPy `NliSolver` | | `optical_raman_gnpy.py` | Counter-pumped Raman against **a second implementation**, on the one thing the analytic checks cannot see: the gain *shape*. 96 channels over 4.8 THz amplified by two counter-propagating pumps, against GNPy's own expected output and its measured SSMF profile. The table normalizes to 0.4396 /W/km, the textbook SSMF figure; the profile agrees to **0.04 dB at worst** and the tilt to 6.53 dB against 6.59; the coupling coefficients match GNPy's exactly on the gain side, element by element. The effective-area correction is what buys it: tilt error 0.72 -> 0.06 dB, worst channel 0.92 -> 0.04 dB. GNPy's own solver was re-run at perturbative orders 1-4 and `numerical` to rule it out as an explanation; all five agree to the last digit **on this case** -- which is a property of counter-pumping, not of the solver, and does not carry over (see the next row) | GNPy `RamanSolver`, BSD-3-Clause; D'Amico et al., JLT 40, 3499-3511 (2022) §III.D | | `optical_raman_gnpy_regimes.py` | The same second implementation, over **four regimes and the spontaneous emission**, to answer what the residual is made of. Counter-pumped, co-propagating (the pump falls 25 dB while feeding the signals), both pumps at 600 mW, and 202 channels over 10 THz. Under GNPy's own conservation convention all four agree to **0.011 dB**, against a reference whose own 20 m / 5 m convergence is 0.030 dB. Under this library's convention the residual is 0.054 / 0.140 / 0.204 / 0.320 dB -- *ordered by depletion*, which is asserted, because a wrong coefficient would not sort itself that way and the phonon term would. Which convention is right is settled elsewhere, by the closed form: `tests/optical/test_raman.py` matches the photon one to 1e-11 and rejects the power-conserving one by 6.5%, the ratio of the two saturation limits. Spontaneous ASE agrees to **0.002 dB** on the source GNPy models; the +0.17 dB left over is the inter-channel spontaneous emission GNPy omits, and the decomposition shows it accounts for all of it. Generating the reference required pinning `method='numerical'` -- GNPy's default second-order expansion is 0.4 dB off co-propagating -- and matching the fact that a direct `RamanSolver` call applies the connector to the pumps but not the signals | GNPy `RamanSolver`, BSD-3-Clause; Agrawal, *Nonlinear Fiber Optics*, §8.1 (Manley-Rowe) | diff --git a/validation/optical_dbp_hager.py b/validation/optical_dbp_hager.py new file mode 100644 index 0000000..8a808d2 --- /dev/null +++ b/validation/optical_dbp_hager.py @@ -0,0 +1,239 @@ +"""Digital back-propagation against Häger and Pfister's published curves. + +Decision D7 asks that a claim be confronted with something outside this +library. The claim here is the whole split-step + DBP stack, and the +confrontation is the effective-SNR curves of + + C. Häger and H. D. Pfister, "Physics-based deep learning for fiber-optic + communication systems", IEEE JSAC 39(1), 2021 (arXiv:2010.14258), + +whose reference implementation is +https://github.com/chaeger/LDBP/blob/master/ldbp/ldbp.py. + +**The setup is theirs, not a teaching variant of it.** A *Gaussian* +stimulus, because the paper's curves are Gaussian-input effective SNR +and a real constellation would sit above them by the modulation-format +gap the GN model is blind to (measured in ``optical_gn_model.py``); 500 +split steps per span forward, so the channel itself is not in question; +and the two links of the paper -- 25 x 80 km at 10.7 GBd, and 10 x 100 km +at 32 GBd. The low-step back-propagators use **logarithmic** steps, which +is what the paper uses and what makes one or two steps per span worth +anything: a logarithmic grid puts the short steps where the power, and +therefore the nonlinearity, is highest. + +The tutorial ``examples/optical/NLI_simulation.py`` shares none of that +on purpose -- it carries 16-QAM so it can show a symbol error rate, and +fewer steps so it runs in minutes. It teaches; this reproduces. + +**What is asserted, and what is only printed.** The paper's numbers are +read off figures, so this script asserts the structure those figures +show rather than values transcribed by eye: + +* the linear reference climbs monotonically -- it is P/P_ASE, and + nothing bends it; +* every other receiver peaks, because the nonlinearity eventually grows + faster than the signal; +* more steps buy a higher peak at a higher launch power, in order; +* the best back-propagator stays within a few decibels of the + reference -- 3.48 dB on the default run, the rest being the + amplifier noise, which back-propagation amplifies rather than + removes. + +The table itself is printed in full so the curves can be laid over the +paper's figures, which is the check a reader actually wants. + +**One departure from the original script, and it matters.** That script +band-limited with ``BWFilter(1 / oversampling_sim)`` before decimating by +``oversampling_sim // oversampling_dsp`` -- a brick wall at half the +width the decimation needed, cutting the roll-off shoulders off the +signal it was meant to pass. It put a deterministic distortion floor +under every curve, which is why the reference saturated instead of +climbing. ``Downsampler(use_filter=True)`` applies the mask the +decimation actually calls for. + +The default run is the paper's second link at StPS = 60 with two trials +per point, and takes about ten seconds -- 512 Gaussian symbols per trial +is all an effective-SNR estimate needs. ``--full`` runs both links at the +paper's StPS = 500 with ten trials, which is of the order of an hour. + +Measured on the default run, against the axes of the paper's own figure +for this link (its y range is 16.5 to 29.5 dB over -6 to +8 dBm): + + launch [dBm] -6.0 -4.0 -2.0 0.0 2.0 4.0 6.0 8.0 + linear link 16.04 17.71 19.81 21.98 23.75 25.99 27.72 29.75 + linear 15.97 17.32 18.22 17.87 15.99 10.61 8.62 4.09 + DBP 1 15.96 17.50 18.83 19.06 17.35 12.70 10.40 5.52 + DBP 2 (log) 16.04 17.64 19.62 21.55 22.11 20.12 17.36 11.08 + DBP 4 (log) 16.03 17.67 19.77 21.87 23.58 24.75 24.68 19.68 + DBP full 16.03 17.68 19.78 21.89 23.68 25.47 26.27 25.71 +""" +import sys +import time + +import numpy as np + +from comnumpy.core import Sequential +from comnumpy.core.compensators import DataAidedComplexGainCompensator +from comnumpy.core.filters import SRRCFilter +from comnumpy.core.generators import GaussianGenerator +from comnumpy.core.metrics import compute_effective_snr +from comnumpy.core.processors import Amplifier, Downsampler, Upsampler +from comnumpy.optical.dbp import DBP +from comnumpy.optical.utils import dbm_to_watt, launch_amplitude +from comnumpy.optical.links import FiberLink + +FULL = "--full" in sys.argv + +# The two links of the paper. `dBm` is the launch-power axis of its figures. +LINKS = { + "25 x 80 km, 10.7 GBd": dict(baud_Hz=10.7e9, span_km=80.0, n_spans=25, + dBm=np.arange(-10.0, 6.0, 2.0)), + "10 x 100 km, 32 GBd": dict(baud_Hz=32e9, span_km=100.0, n_spans=10, + dBm=np.arange(-6.0, 9.0, 2.0)), +} + +# The receivers of the paper, in the order its legend lists them. The +# first is the reference: the same link with its Kerr term switched off, +# so it measures the amplifier noise alone. +RECEIVERS = [ + ("linear link", 1, True, "linear"), + ("linear", 1, True, "linear"), + ("DBP 1", 1, False, "linear"), + ("DBP 2 (log)", 2, False, "logarithmic"), + ("DBP 4 (log)", 4, False, "logarithmic"), + ("DBP full", 500 if FULL else 60, False, "linear"), +] + +N_SYMBOLS = 2 ** 9 +OVERSAMPLING_SIM = 6 +OVERSAMPLING_DSP = 2 +NF_DB = 5.0 +ROLLOFF = 0.1 +STPS = 500 if FULL else 60 +N_TRIALS = 10 if FULL else 2 + + +def get_channel(link, *, linear_only): + """Gaussian symbols to the field the receiver sees, launch included.""" + fs = link["baud_Hz"] * OVERSAMPLING_SIM + ratio = OVERSAMPLING_SIM // OVERSAMPLING_DSP + return Sequential([ + GaussianGenerator(1.0, name="tx"), + Amplifier(1.0, name="launch"), + Upsampler(OVERSAMPLING_SIM, scale=np.sqrt(OVERSAMPLING_SIM)), + SRRCFilter(ROLLOFF, OVERSAMPLING_SIM, method="fft"), + FiberLink(N_spans=link["n_spans"], L_span=link["span_km"], StPS=STPS, + NF_dB=NF_DB, fs=fs, use_only_linear=linear_only, + name="link"), + Downsampler(ratio, use_filter=True), + ], taps=["tx"]) + + +def get_receiver(link, steps, linear_only, step_type, reference): + """Back-propagation, matched filter, and the complex gain removed. + + The paper corrects amplitude and phase with a single complex scalar + fitted on the transmitted signal; that is exactly + ``DataAidedComplexGainCompensator(shared=True)``, so the estimate + comes from the library rather than from four lines of algebra. + """ + fs = link["baud_Hz"] * OVERSAMPLING_SIM + ratio = OVERSAMPLING_SIM // OVERSAMPLING_DSP + return Sequential([ + DBP(link["n_spans"], L_span=link["span_km"], StPS=steps, + step_type=step_type, fs=fs / ratio, use_only_linear=linear_only, + name="dbp"), + SRRCFilter(ROLLOFF, OVERSAMPLING_DSP, method="fft", + scale=1 / np.sqrt(OVERSAMPLING_DSP)), + Downsampler(OVERSAMPLING_DSP), + DataAidedComplexGainCompensator(reference, shared=True, name="gain"), + ]) + + +def run(name, link): + """Effective SNR against launch power, one column per receiver.""" + powers_dBm = link["dBm"] + snr_dB = np.zeros((len(powers_dBm), len(RECEIVERS))) + linear = get_channel(link, linear_only=True) + nonlinear = get_channel(link, linear_only=False) + + for index, dBm in enumerate(powers_dBm): + amplitude = launch_amplitude(dbm_to_watt(float(dBm))) + for trial in range(N_TRIALS): + fields = {} + for is_linear, channel in ((True, linear), (False, nonlinear)): + channel.seed(index * N_TRIALS + trial) + channel.set_params(launch__gain=amplitude) + fields[is_linear] = channel(N_SYMBOLS) + sent = linear.tap("tx") + + for column, (_, steps, only_linear, step_type) in enumerate(RECEIVERS): + receiver = get_receiver(link, steps, only_linear, step_type, + sent) + estimate = receiver(fields[column == 0]) + snr_dB[index, column] += ( + compute_effective_snr(sent, estimate) / N_TRIALS) + + return powers_dBm, 10 * np.log10(snr_dB) + + +def report(name, powers_dBm, snr_dB): + header = "launch [dBm] " + for value in powers_dBm: + header += f"{value:7.1f}" + print(f"\n{name} ({STPS} steps/span forward, {N_TRIALS} trials)") + print(header) + for column, (label, _, _, _) in enumerate(RECEIVERS): + line = f"{label:13s} " + for value in snr_dB[:, column]: + line += f"{value:7.2f}" + print(line) + + +def check(name, powers_dBm, snr_dB): + """The structure the paper's figures show, asserted.""" + reference = snr_dB[:, 0] + increments = np.diff(reference) + assert np.all(increments > 0), ( + f"{name}: the amplifier-noise reference must climb with the launch " + f"power -- it is P/P_ASE and nothing bends it; got {reference}") + + peaks, best_dBm = [], [] + for column in range(1, len(RECEIVERS)): + curve = snr_dB[:, column] + index = int(np.argmax(curve)) + peaks.append(curve[index]) + best_dBm.append(powers_dBm[index]) + assert index < len(curve) - 1, ( + f"{name}: {RECEIVERS[column][0]} has not turned over inside the " + f"swept range; the nonlinearity should eventually win") + + for earlier in range(len(peaks) - 1): + assert peaks[earlier + 1] >= peaks[earlier] - 0.05, ( + f"{name}: more steps must not lower the peak -- " + f"{RECEIVERS[earlier + 1][0]} {peaks[earlier]:.2f} dB then " + f"{RECEIVERS[earlier + 2][0]} {peaks[earlier + 1]:.2f} dB") + assert best_dBm[-1] >= best_dBm[0], ( + f"{name}: back-propagation must move the optimum to the right, " + f"got {best_dBm[0]:+.1f} dBm then {best_dBm[-1]:+.1f} dBm") + + gap = float(np.max(reference) - peaks[-1]) + print(f" best back-propagation is {gap:.2f} dB from the noise-only " + f"reference, and moved the optimum by " + f"{best_dBm[-1] - best_dBm[0]:+.1f} dB") + assert gap < 6.0, f"{name}: {gap:.2f} dB left on the table" + + +def main(): + links = LINKS if FULL else {"10 x 100 km, 32 GBd": LINKS["10 x 100 km, 32 GBd"]} + start = time.perf_counter() + for name, link in links.items(): + powers_dBm, snr_dB = run(name, link) + report(name, powers_dBm, snr_dB) + check(name, powers_dBm, snr_dB) + print(f"\ntotal {time.perf_counter() - start:.0f} s" + f"{'' if FULL else ' (run with --full for both links at StPS=500)'}") + + +if __name__ == "__main__": + main() From 2e4f11e79b3f2799f739c9895eb5897d11c76895 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 08:21:00 +0000 Subject: [PATCH 08/18] Type budget() like the other info dictionaries Pyright strict caught what ruff cannot: `budget()` was annotated `Dict[str, float]` while returning a span count and a polarization count as ints, and `watt_to_dbm` as `ndarray | float`. The other dictionaries of this kind -- `Constellation.info`, `SpaceTimeCode.info` -- are `dict[str, Any]`, which is what a mapping holding a count beside a power honestly is. My miss: ruff passed locally and I did not run pyright, which is the job that guards the py.typed marker (D37). --- src/comnumpy/optical/links.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/comnumpy/optical/links.py b/src/comnumpy/optical/links.py index ddadf3b..b46a77f 100644 --- a/src/comnumpy/optical/links.py +++ b/src/comnumpy/optical/links.py @@ -2,7 +2,7 @@ import numpy as np from dataclasses import dataclass, field -from typing import Optional, Literal, Callable, Dict +from typing import Any, Callable, Dict, Literal, Optional from comnumpy._backend import fft, fftfreq, ifft # cupy-compatible (D3) from comnumpy.core import Processor from .devices import ErbiumDopedFiberAmplifier @@ -298,7 +298,7 @@ def _ase_densities(self) -> tuple[float, float, float]: return equivalent_alpha_dB, edfa_density, raman_density def budget(self, bandwidth_Hz: float, *, - polarizations: int = 1) -> Dict[str, float]: + polarizations: int = 1) -> Dict[str, Any]: r"""The amplifier noise this link accumulates, in closed form. Signal Model @@ -385,7 +385,7 @@ def budget(self, bandwidth_Hz: float, *, power = polarizations * self.N_spans * density * bandwidth_Hz return { "ase_power_W": power, - "ase_power_dBm": watt_to_dbm(power) if power > 0 else -np.inf, + "ase_power_dBm": float(watt_to_dbm(power)) if power > 0 else -np.inf, "ase_density_W_per_Hz": density, "span_gain_dB": equivalent_alpha_dB * self.L_span, "n_spans": self.N_spans, From 95777cd526e783db47c1286b7f379bc4522b6680 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 08:22:38 +0000 Subject: [PATCH 09/18] Choose the step count by measuring it, not by asserting it Both optical examples propagated at 200 steps per span on the strength of one sentence -- "enough that the propagation is not in question, 500 steps give the same effective SNR to three decimals". True, and four times more than needed. Measured where the step-size error is worst, at the highest launch power of the sweep, by refining until the answer stops moving: StPS = 200 11.758 dB +0.000 dB 38.0 s StPS = 100 11.759 dB +0.001 dB 19.3 s StPS = 50 11.763 dB +0.005 dB 9.4 s StPS = 25 11.776 dB +0.018 dB 5.0 s StPS = 12 11.845 dB +0.087 dB 2.5 s Fifty steps sit 0.005 dB from the converged answer, two orders of magnitude below the hundredth of a decibel this page quotes at best. The other link agrees: +0.002 dB on dispersion compensation and 0.000 dB on back-propagation, at 5.4 s against 22.7 s. The page now carries that table instead of the sentence, which shows a reader how a step count is chosen rather than telling them one. The one-shot example drops from 17.4 s to 4.4 s per 25-span run and its profile from 17.2 s to 4.6 s; the effective SNRs move by 0.01 dB at most, and the fibre's cost per span, the two checks and the error rates are unchanged. The launch-power sweep is re-running; its tables land in the next commit. --- docs/tutorials/img/one_shot_nli_fig1.png | Bin 53492 -> 53088 bytes docs/tutorials/img/one_shot_nli_fig2.png | Bin 94614 -> 94585 bytes docs/tutorials/img/one_shot_nli_fig3.png | Bin 39874 -> 40011 bytes docs/tutorials/img/one_shot_nli_fig4.png | Bin 78879 -> 78569 bytes docs/tutorials/optical_fiber_nonlinearity.rst | 62 ++++++++++++------ examples/optical/NLI_simulation.py | 2 +- examples/optical/one_shot_NLI.py | 2 +- 7 files changed, 43 insertions(+), 23 deletions(-) diff --git a/docs/tutorials/img/one_shot_nli_fig1.png b/docs/tutorials/img/one_shot_nli_fig1.png index 93ae3ee08f383217a0d31903786e8d671034b821..f2b8e588377f51d159e1da2c8622258bd08097e5 100644 GIT binary patch literal 53088 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≪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 diff --git a/docs/tutorials/img/one_shot_nli_fig2.png b/docs/tutorials/img/one_shot_nli_fig2.png index 408fdf051e200c1065bd0288259d1cbe8f0aa1cb..95dd2cda6a2feb1f543aecd164a723bc1f7219aa 100644 GIT binary patch literal 94585 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 literal 39874 zcmce;byQbT*ENcyh=jDHMF|K{<9kg&5;@0D;(56+??|YCrhmb^xPx zG|DyPKh@d)|NcTYAUqtGt>L_+>c`K!0s<7_PktovJ9bgarlVtGX7pQVm03hpiQf>5 zeT?+Xf!}F`z_=|U%Vl$XbbMU3#>IwSDMemc`JGH>dr!}k%>G3kYa5#{&nh1bW-Bq= zzu)m`3Hx@yHwD5+w*#W|3eA6aC0-|I_oEhcA)u!2?iKyp)srmvVyc>ZZf=gA&9V9I z4aShy8H^HAQu{yfMR(Q<8wN6^@c($!wRaN1Okt-H%;O0pN5JRVy^ifHf91TYs}p`+ z?KIcP)^LxW{tdU)FtOFi;o;$*t*MVpYM<>6H?$Q~gtYUZ8xoRq$md_Nu(Dp^e(d?~ z=TGS;ku>3g@V%Btsk;jF5v8g{lZSw#eM>HGKM z{q}BQ-JwqXZlQMR8%$gZ0~;HK7DpTAw5qx`oF59S)cuindB*o|cd4(Jm(bv6h0G`66k6KabDNvpp=|Zi zUS75KscADaApr`uL;J3|BShv#i3U0@QpC~)Q8Kj?O@OZ7gyiA%}T+}et%sj2xS zjQp{kon1Z0-^;V@crko-n&99HmUaH3Feh6SGp27{C{_U98@%;j%T^ezLzTqolMP%#iX(B{rz~aAU*T zc+g2+{<`S-4q9hCtMS^eFZj;&R3CY5&5pLFtj9_MXJ-w(yuIDeciV!)!nn3FN7irh z+1)BN>z*$k(Yt%^Uciqa{J|mfEdF^x;=e7f**j4-Yu$dYC>{t8J{T*O)VbSpVUV33DyKIa`S)E0S zUgn^5l)V@Xn+QE|=LavF?ePvE0xTY{1*#7n8ZmntZx+tYO+8H^q9%@-{lo%?VMKByMz z2`|`RoE>RWa9f&q)j2H5Vkkc?)JtAJ-`(8}2@MT>Xxtj6%fb6{^0*Nqcw*NJY}n2?~D1qZU}4SY7OwqU}By@9o9+gV?h?KArX$4W&S@&SNHF8(CI} z9F)Agyk$D96ya~k^xUraH}3Q;qp!>~_!f+CTmJgq-_J3^&ucyE7Z`{En~b;pWXpW^ z`>QHFD=rE+-_2jtvfoBTVE#I@G&POO&a3x6o1dNiUSTtVaxfE~m6cUoVGCQj%yuTF zjn+2_PNhA}I;`$!xfK~~wudRpFky`y9U+hXF_#1yN=rHOb;^xK3Z7S0%+#e4WbFJq zmoZ4-t8p>i94`+D4BQbTVv0tyzGTPbpKg}_1yPYX!jTxmSs`y-nsL$tE;)E2M-4a$4MZWV|BXPIhP}X zY6w2iSB`yqYqN3Yf!JFI26px$<+G8m8aSSwXIR7ctE#H(k9X#TCNeWJ*vYSBJSc=U zLxE&P-|I;cPCsM3ReoW3emG$ZiD?fG<8N7yEgGEuv9X(epFVxkoq!i_xz}L?mpUwU zKy;4T*x10Lep zb*hG!l$6wIdpa4Su_LToUS8hHKvw83xvQ&dQc}{}&`{<+Ut$LVI_%ptDZe0P(yUBY zIYI}>KWc1e!A68E_4`H1v&xsx(>rRMRtZs3Qc?nOeg!~74s?PZbt&+ge;o;%hKLc`~tINc0a#;}A+uPTkZPnbn zcaMOa{HL0duq0$L$Ia#W`KBVn9|?l44?GVyZZk0jms^b>VbV!pO8mX3QS;T)KdV3B z6}{1Pa^Kwd=^=ld?{%_y?KEOZ)>cnCym7?F!MV%A5{4xF%kvZ6?hA+^=`RL9%clq> z=0B^9j*V>w%#grth#F48ZFGLT+v*J~fTaGv7e};^$GL`A4gfKXj%wl2iX`Qpkj=I; zq?&y9yAnpp8=>!e5%>1()#&JGK9>!0PV=5cm?5rJZk*fyPNLz@cef#Ra@ve@Sq|sP zlv@rZh^9EjD)Z^qe_zd-m*Eh3$;u`f&d0NFlABo?f0-@#`wb<>~zd$buAt znWGaEoK7pskkRTzHxBrJ?f9~u^($x2_k`{Bi05berzogicj z1Ovc&e)+k7ZQV)W^770UK_DW3&mC)PYb^j*c^++<4t$c46gZl~#G{f9C1r)}iUWO| zhqHcuvYh&7eWdqWB)|(nmkooR*+v*J9s&#^X}bNcpdm5I#l@w{2tv8wqXLOS#bklw z(^J&SAm8@%ACc61%x3p}OyZ1WT#N`S?Ge-o5K-2sDe0n49N3>79Y+5N`p@Vo*jg4v;;0=8J20!1OoJwKOVU4WsTmpFnVz0* z_4-_N-x@VxaAO@3k37oe#)h4PL$rRLs{EGP*zKdQ*6+^LU4GWxr<6Sv5#BJi9>A7B zx}EVl3SIgC^~IN>UKqH#6L_KuGGQ4sq}07c#s7N)M#)4yXH5_A{ZV;}M^DJzr6 z9!z8}`3J?`s*0%)-??+=ZDb@{|3hJ6VQgI7I1Uv#{whsVf2Qpi*v$}2S{xea0JptW zy~A*l3uypWk8V$D+JOCCQc{?|{||9odS=-O7+WLpk&Ftls+wAGNC;{gB!$n{Z@feL zDvMF4XDfdRAVoG$*T3!$I8%yLTgn>ovdn;4*qRXK&1`uSu6`G(6_^FaKgY~brVJsaO9OQTW9adbqG*#&M z>GNlYxh4!TF)?WwnYpe+&fixnzi&BHXDMh0t1Z%D8*ubf665Ix8%_nY!#|I0mAj~; z;eCQ+4|LN2!Zf$EES*spw1kkjd3Zc@+c7})J{}d{qlMP+ZW4!Ai>}mJD*u{FeiYK^ zYuC2UvRRsL+0j$#usuG?42!7-1hc%-EVfUVq;^^ zw%#WvE7;kwCnhGI#K*zc1_rmHqN0xKA_QBSo5>5a*>`6;FN_$w%KZeK+7mg=r4 z_NM_x$Vf{w+UaJXGm@x_iM>W;#Ky)3q$g`;_IVF5FcUP0@7-fv_jr}h>f_!9+m#SK zTjh+Hfw=H&TSj=$qwcZ$;d_*$=8!Bg!`t=S6~};T+iw3=G6NF846Kc<}WNiknu zUWPO@G^j$3Z5bcexhd-7Rd7~s-b;g_{8>IRL%l#(`-@Kb*ZIZ8Pe=spkYlU+^sT0b z8BUKZM8?>Kw#a4vEr7)uNy*71`1trOEiIDTrDoywsqiCaKL-dHLWOJqzai{1L&^L_ zCG!o3A}uZL(w3+%pdA&6<0MK-N-aNrh=0*6OmTp?DpXv%+e(Q5+<_uPak^W#ZuKrl zmCnFQkpOgPnV5K1Tv@64G+!sqssR#?hP|`1#@DC$Uq?qr83E^Myqx^z?YmW9u(M;A z1>c8cW@gSWEM)%5Q4t^eW^epzp|{uHi1BCnB(*tIm$9%_*);i~Zc*c+2q&bX@|tn$ z2+g=uoLcpn!Es&Y2&CioqbDXH?mYO$m9niDH2O;()4L(^OJ`&$8#_h*(;u-fov(%~ z+`Yv(Jehv&b_a^2igb6^gTCn4l$N&j-obo5)8AnhZ&I`GQs5rD3p_NJ;H)0X?PB~vBx|;prKYOtrq%F+=he-yeG$L_i`!jl>)`Ov(9m%5o4r4P3wG;K zcG&6I`1s4M;gn8mzk*@2{pR0-1Pb65@_plkZ9{hghcTr8-)P3UYT0<^JxK^gru8{) zBwua{#Btmt15okqw)pW{ZsApYe1G5| zkvm&kRphCGxyCn9{MFS}n2f0Sc*xDdqt(vLfSx+bdxL0w-ezUdp+Kp~hro7P?>|wy z{FQAqo?)wl*~|P#P-TQcv48@M%<|vM?Y~;}UhXOTqIrNW7PhyQ0LtX#SM-tj#Ce$z?&nE(IWsN9_1HX!O1GPaP*+l zuX3Q9LEnLJUzQ9eR#B?j-5vkDBHA*>ZoRpXC-?xtl$>X}1nU!Xr zx5vXHzwtD#s$h=ltnnSGq@r$8!YTchiobu>T)}nV(!PHg{Lbyk1A%6?-m;zpY7=&H zX<7NE{`P)8o49<_#_Xiit(xsopk^LFe%vZC2T5yTyW#JH9e$d7tgPX(arbZPXMg@o zL3Bf{sH7wV>S~OTG2%h{v5AT0HFUH!?xouI2#w^hIzR^;L?iGWi2!FsFOTm6MQ~sJ zTrxO4jb1THdZykxI5gCFcfKWziofJh`R5Fic1}O~PlJ|j*}iBM&)*si4BUl~9h6*- zQF!<@=qXx%dm>lPn!4c|V*)Ya@F$s#Jsla3_bqw!wu-gQdp~xo z86T*6xg^v!uCp}Vz+Q@vM9v!M4-mw!w=e1@i z=>gAlls_*VS@wwUR@W)BXq>L|bUerbc7z$g&@ZUyW{e+la`s!6m%W_&0D-2&ZP$p$ zc3R%ZXkNVKFFOaZIuzTxhljs2BSnm$k`g-GD3ugQMJl8ZS~E{H5_!L3kll$U7qAr# zpPp%^v{F=SSM>HV+OLwn6!MwsQh|8+@%$3)LsC?Czm>hbjz@qES%zDUK3dFQtTLca zk$Ndlw<;P)L=M9ybU1MGI<1tpwT&Sp%%fF~48SU61F#2D?U%`NDil&8A|ij*hC+dD zivipL2wLm|udSkyQAT@5RjH7ioE-3Yjd1i%HY;b`Hp@p6_#Mqs4D}rlR?~IbJ!q=N zwbb{oPyOFZPoP}_VqymWGtk!3UXe~Hp)JPCm{@hn823&BR%M9nI94Wd?$=Rx{J#12 zAh(+=v1b1o=WtT%$kZ#d6RttPNd*J&4mZY(C)=i{X?%Tsjfpt@{QbpK8WWO}k{pD$-x~uwIp6t#uUqAS z0Y8st(Kgz+Zhz$0euA5}vArD$eHHGksH`-H3dC!_n-}?uw4JBT3A7QEaGk=1w?$7j z%?%A-0Z;=LwW{N6F-8fg!6G6eyiQlMt2}0>y{Vz}nTIU0lv`LYRyZ>FRf8GGsv6X` zRQ)9Ukn~$44uw~8Q+-ZfnDr#JAMY+~pSff2_cI2rZtF)t%|5@eAulF|s;H<4FE0i@ z6Zk~)jVv=uO#h}&SyH1OA|dx9hR-j=7=)6Ss@^s+2A|!N7vIvD`;?tcL`)n|SZEuS z`u={G{4GrXR{-Cj^q@(Yj4gvQaR8FhIaw#no+;-{;ZWa>Q@G|lca3M` zd7hRMgeFYsM(i7gly^BmYH`IKD<7xhnq-N%>B|WwP<$WU^!`Q=)m$QeTmG5->+)V# z_{@2v3{p+C$PqqLlL=ReX}FEkcp>6%@kIZ1InmI?^V$=GccQOU+NrLEm^MY<&HFeW zC3`q9`L6_=zl)vrrE0|Avin+XO_pM3Z9nVHKNospMrw)G=j3v&m5r(lk>*HAn&BoL zuQFLOK>IB;w~i#VwW6si;{7aN@(sV75Z3BS)rN1;>d1#Rm*da{S+dbIB} z|M5mQik8DHMJIkBvE#pbH7DoZ6_y92JOtlx34hG?)uK`lw9Ukfc;xot*H>;`4=Nx{ zlPV?<^Bcdh*&2++wwvBUBMXomI06X?2^71nNq(s05nAc6Bs3$hSvxAO+*AF-LYz5D zXlM^%bpwV~N}%`5<6QH`o`Y9G3Y&UCI5%YSL`jfBM2oll?sS0*9YGO6MwiE1m8*8U z4=U_RN=p&GL{N~@5AaP>Q&Zo%+)L+K>-)C-%{#Z013?&HXF*R~9C1J~%%oj>&ab}?%4m;!q5FG8i%Or>;hNCPd zE^hDaz2p13`wR42W$~U8rhnr%g{`PnX(BuO0n79@!L`%$lXt}0X+NyB)Goqi=Ezy9!f62bfxhbOncjW{$c7F`7aK_*qiJ4e4kBvSa0oIx?^=fNeAWiLhw zsGl;jh0_d1)e#6Mfl-?J1!;~!VtGd(^XYqVPP$RAOt_#qKs^3`ahRv zu1!S?A$#>P8A-Zd3Mk(jhwO<99@J?p{5qO(Rh{wlyW3bSJ5|ZU$ZejdSwHSHH#dLZ zJj5$iA~?!ZgAZ!64xq1M%gV|oC~+|*+ogSW9Bdj+>l|!+(~kzT>F(RB7>0&f>jYlYs9AFr*O+OeZsJCS`;?LkhM; z4&yhwr;Z&jfL1HrcNTh3{15 zB=5AFIN%~R&@785K`~MIBX*N#o!V3)a{FcGoRFQ zC}ZKs#P#(lFLlH*cMN37k-%!2f`W#W)-Em;dw}Ea`#FG`N5{pb9vmFZRP3q#Yaay5 z`yO>7O0~ANyKe>nQR|u_Ohrg)s(!uw;#r+t=ajp=p$w|US9JCV5-K9Q>J7TIWnS}N zw)9bQBLnUuD{R@LRe0|BaAVGhS?b;wM!`ir62*G`KR4Sk&J;NgqN8+Yzlol0aJGz$ zX!frkwA$!{O6E=UT_y9$O`=y+{B6tUD$hZK+N}!+KyPVpm(i|v`m%ctu&meF%fX?< z=*5dKRDg^}+@X8%Rt;xyumGS$Cc-98jF`R6!IfD9QI0Wfm$ha7Y;eDz%P$zVzC5 zojN+p+uuK3FJx8{+6~w}03=KD2$qKPCG!_#-eB=~0NBGkhdjwt=}8gJg{??_9Wx7# zcL$liSClPPOCm~#zv<`s`Fs&A@4_m-kp@)Wh{qRFbNyo&K9^=%a%>Nt+$*tDA}Guk z36A_I9R5}CBfH)005>-VrIb$q?<~qIQyJGLtM}Y!#dUSkzoR&j!6U1=6LJ&gU@z{)$N80pfNTzqzpN)fp z9X=O_#A?S2zC_=CaTc@E}tKI7F?^lNq)9a28Bp4jFqRPtNa^YppTK%e5uU@%% z&Rm|&0dJ*S2!N}8A|o?%zuDkx?~%{QMOv@N$=(tRRIgSe1xT3*CHeud!$j*B#3RD@ z*W8Vb_Ifcuj0VZ-`7sbDi7lZfu-yoz?-h#oxQlD*f?L$ekr5ezg1y`y98a!?!Z=0il62Ue>(h(J9N#09aGY}#bLS?qKd9xF2+v`!3LQsZfA4TRAovBBf$87bmZqmuGfjtchoxnm7dn|tc5j{6hnN1W4pvnp3%T#TYCAbQ z+i%38EdphY6xRErZ9V9oA-flXy@?zV6694*ImXS=dmUSa*yR%MHo_y>@KvCt$N|h5q^*UwP5oI z&HQh`4wmoZ>GrYVXh~z8ISb=PD1d7BmlMw}Re{ZyL8^5)8YXj1fs7$y($ZH`eLVjD zU4+8q48kl{onB-HBQTfqD=P`P6ekM)0C0h2TMJ)(4-^81oX0s3pKqk7$Vbts$3H%NI zcI`eM_*0|H*& zrsjgDudfg3wp~--J1{0DrkIqa;d6ge&hr``sOIMz{$BoQY`g+;HxQ4A8n^vy3t#kH z`IE!8x^C)r^45_yP)eN;jg(>Bz=r-iYxBVj4%FLobB&PFR)+H_0h^eELBqX+@!zC$ zbJ)*IM90LqL+Mpq#NIpTMv?XU>0P@2?;`5`db(0fXcg*AC8i|)0`KE+mq3vgAOnuw zF8IqRj!zPKobolR$Wd97Wj92E@5BK503r+>17mJ|{iChTFK-eK&FA>tV+Ov z_^FEv4Q%gKosjx2zOWU|6_TTj4sOCGEq zpmKl(NcoFumS<~xbhH?-1u4zDA^`q$VtWk?Rbyt)o;y+MuS-( zEI||(+L`eITMjgFRJ-gN@3~yp0f9yB<&!6G?7ix!pv&O6p|BbZ+25}lab7;sUIs3m z9xyl=85ztKxH5n|x?gn&g3vsm24H<>S5~y9?_fDXMZLjv-nTi1irIkY-&snK&5N*9oGi-zl3WAesih$$%nNc6_I z(Tdrf2U7h50}p2;@@~zHy?pud$osEeG80JFTZ!jWxf`A>*t1((db18?I-A~|^`Jy` zde5-QSAqWPUNJU0N*>d2p0I}ud}do@CXrZxk8kngJslmL-_>uT>!t7=r=cP?-f-Q{ zWV{COFT-_v`bgn2cx=%$b$>>2D)gt98fjg#Jl1v zdzdSEbK@f4O6vN8z=$E@UVDSp>ggRO;g8sI5%1o`AIzeG)kMcmfBmmMG0dSnKr-1M`2Ui-Eum{(O4{$H^{QP6z(9zKo znC63Kb*Xiflt(IkujBV$v$aWIXzOSF^4t2y&PO zhoVOHj?~h4ZgBJ@@rzqnFajsZZpD)I;L7=YC>uGu0SdS$00!+3$gu&jxZlN!y~fF4 z`gD2KU-N#4ro_AaIAQHEdHR!>#-Dco11-hy6dil;9pb(Nr40ysdlwfozzkKNEq9NO%t3NP zsC$sg^}Kc^!Tr?(O3{9pYRX;sGqN(pk8fdSYI^g1(g@w>14k`%7753F)G>yqX_;6!v}3{UVlT#%xiw@ zs-%i+nXZc4KUs1*JBfq1w6t{J>pkf~O}RQgT1I{DTKw8Sd`~YR%FMNdfBVjL@0Wo$`pQ?|W2C_NewpM$TO6xH(;KOBIx=Ol; zS$LB+zM@ERLP z7I2d8YZinhCsThA!@F_7PAqwwjt&DXG=xk_LPGzf;;onrMnrer|E&PHW-s{)JqO1P zSJ$IGUcA|4a4&8NR=I)q4#W|Fi=J+12xOAzaRoKH>!59QYow)T0HeAVk5XT%a@)#@ zH5Icnh_bh@Wgt4x_}Ts_{u!U=-QddMb+mBb$dzSSfM492#$N+1P}0oM-oH|nnswUskI6W^2| zl7s1o6N1Z`u%KV82kCI14Sk*`&7l`AYwK%;xm-ubvizmiHh;?9-{XT`RVReb!c?mZ z`ep68fdq6?*@JPT>^H#W3NA?a1LfGij+icq#C=64NCR+=pEQ(t>nxUE;mP-U{xy?L ztmUuRhBt(UK4X$K5orVcRG25!IKC`6yL_@ElZCh=IwDp1@eBe#mHKVjepx?j2>La8 zClyv6cU5^J{Fl5iQ9RXc9=g(>%fyK3VvGUX;Kjf!$Bs2>qD;}z$2+M#s@Y2bVRBZ@ z+CVV;eC`t4Wqngn7GdsIfZtLm(^)x5sirAHA^Z{Q)ggQMl!apO8kQ9f9!AUFoTz!I zmmzes9$_RTCM~3pe~56&sAI<|XH2D{Re*$2)p4DIRwFYeFOCJSev3 z_8~FpyZ`eb1M;A(NS{$yb^WHXviw=?^t$)j;E%#QOX~*JZ@n4sFEFm78QI`Ue_b`4@;d)C(;9n)jQY*+Oz5;gFVaZ|DlcTD#{m4EQDYIZ>#&P@ z2sQcXkMRXVmQnAaMN@>i&2V~$UX)kl7>LJ~vpyk;;a$-lx}w#Ve1yq`ZZPaiHfn#n z<3CR}ox@zojSJ&f6c9MxRLp0IztdV)*sf+{nZ~#?u-%3oCVM~L0S0!}Pz2si$D`Qi zUR_=9NNQr9Px;Pd)p^QOj1b0bV@M4IVXc_DE&+-1Vw41Aup7Nf(uhEFu${%`D@=GP_;G%H#|Yc zqBN=&skYYR%F15{b&j`K>qkS@CVs}O)~#LH*{bHG!i!+7C_!GX@({Y3OM&m-;q#6L zAFG~iI74qkCFn9dH#$qx?d7UUL0cB7mHWS)r3Z7Mp+o)0P3pNQJ6W_X=`$5Du#Wxs zIIG_soDeHdf9VnXOMWm?985W4Z=-L+>i*_MfgPSlJbI>3OloRw+W49y-_EsY-plPy zVSzw!o+;PYymF!r~9PK{UmpO^35$(Gt#6}`1*T})=4KDc+G#+tMAQc25;qL)=z)~rIFi~(LB zivhDmrt#75?}8udgeYs&o#agxZN3VU2p&?ZD$=$Z-{i+CpUjJpH5i9_F2%{0l1t~? zF`KTa>K)19f{pL4O59Spui~V{PE396f@7JHNezOy={~PV_90vyj*Pldi%YJ4VC5+{ z%Iw0y@~C6gF=iGia`yl$1yZr)fFF6hyL z;aTy?WVU-PzGSj_*3bztVzAyVX#~ChK7KQ!r)jL5PRGfZ&D;#%>e~17DNSw1GPh;M zf8&~imC_rl5^EzHI-pK{U2l@wMmbtW!RAzm_Wh%kk|WE#0*OvCn1SXxWKPSIQC+qO zJV_K;*mmc$kG@J3zM(N$!X)YqPtJ zYPc3_U&jq|h5OX2IgnB9b!m7|(+qk@)_U_Vb?kz#4Xh$@9sZl~?uQ0T>+E?U@qI zLM4$WK|IQ1M3QSkwa2HCgOZ1 zrn}$5V71Ze+-2v(n9&VbsrwW#st-EP8!MT~OMW$`cdtafp{X6N5rH)99gn7I)I|}A z91;~+`Ws8XP*b$<`rmg`bnH)Aa^}3?F2TLl%O)smVf|Hm;a_v8(A=HEr^*eqjF_Xl zU$n*hEx5cm^032m1&Q8&XbGT`lJ5D*Vjo0^mSUjA#Ah}ZB0A4! z4mlWq+qzH>G=;W5x4g1*O3T3SE!_Cu2P5IZ=Oet2%yCB!n}(==M_~H#o}TvC`Irur zUPr|LoKH@ULHA&NVws~+o;vmD^?AI8WSyz1f|G+JV4wzT{!xR-&JVM$tNK9*L+Zel zLBVkHz+l;&YqkGYG(FjmGHU{|ZE?Om#$6On*;L(~5Xv#YapWs^@VH2YQY# zN%-grUR?Uc{@UrG(syM6%L%Wk%@actM7gz!c%Hq)@a$&Y@zn;sVGfVo8`VA2h%d66 z`ZKbQzok(b)i?D~D9OILUs3#PxMdM0Fyw4*5xRzQ@001S*^Gx*KmA9InDN==)t?|S z-or*>^fej6N9iTbuN2vG*9HG#jV1mLYn8TD9`&VrW7)%l;#IkDe>bsjav~5zsWKy5 zpG0KJPVa+1K&Q82U^$%}HX|I>eD%$Mul^T|lHfnCwBJHwVZ$PEupP|iFsLHN@bPg$i6!#P@aulsck5K-(HKtzIhkuQZ$~T`1 zraUiWcpDleb6(4qKzHW93P1!q*{VO|30-Lm0vls_qESN5x!tY{eSFl+GQwh6}|&WfjI0zOWFlT)h_tU>_PSsI-?eFdJ7i`1}bg! z5mWoi>Dm`>EIK*zNj++F3$R%HB=+$u@&+v}*4Jg_TmviW3r^@A0P#FHxL^8btisx( z3g^c&55ufM2bOy&Oq~(^o1N4!#HJ*jeNoyXsDT+B1f2i{_?@vDSGXIx7iv!nN+gZ@ z;tjA#v4Dx<#3^80c&>wI^nhRJGPCNghegFxfs~h;F)B8eMVn&8I7hm4w;1C^BZGFA zciG2B9E^>~^uZtc`e_Og#0!-Ok}4u;Cnu*@hl3W^F0r_8-SPw7)E~GDP-wME&2VkT z%dX4Mp0i*LKR|3_fdaX0aKtDjQ6~ajg9%?@*?mw=YIy3bgP|$!BwSJ=i!Wy zc|h$TG{ELWB`?iBSh;rKevSh$V_v-{pxf+#G2!=Ez1N8Y5XaYuH6@2n*DBTJ_?mE+ zpHdYZL|6Ubs2aUKN>pI#8~eto?lhGI3nx%9O(lt>QmaQ&CxL!=d|R?c0{uiWbU0eavuV%YU0;XMWpOQ}y8SrNS|8e`OWW zl1nWCsr33woj7}HOV!E{|MpIn!bR8r$F+ww5rpC2+Pdt+Huyq|)z{SY8t!5c-n@yO zqfn>uRecVGr7FVjpxrHhy;1wIyqx?4G)oMB5qSDCOoVh)xNDhcI)WN z#yd|99^xbK`)gGS53kDuk%fgvb&H7!TUqd>eB#4EP~D5*xS^&p2n#2JefSF8c9^UH z@eA}Hc`%uUPXMFemLVA$CNl>b*AEb3!s`MgIaUSG%1AAP-pzXdj`*yly;64FLN&Z0 zW&1mAZ+UiP0~Q7DMy*>6&`bT>6Lop~9?4zS{#D`#mvJrsC%4~3r7dzx5O}wFxJd;P zFLI>^t`nlnW~cfXjg^?f;_kg#29oU_+|+~fu2O2I0G5<0xbQ^lwQ~g&-iKR9u$d75 zDyS{~g@tV3YW@v3aO!Pw)7YRWJ-Mx3Khh`urB`6}KLYYf5gsYpTDp8b-J{I$>{ z%;L45&OJd4duwYkUY9c%tu8x;>Jt>-Mzs?Kb&+WNC`1Oc}R;HUuk_0}5*82f+`78iU;___S8duXsIop3I!8+n3SbXYwEW z_+a3&bhEZ$>-vb12|LK71X=n~MBhQ(+K0QF{W&UkMNU`lg5}?Vy9I>J6wsqd){=nt zF0&pZ6cugoN}cFLE@O{Z+D7K)uK#$$cCGWv{j$WI0^75z*GUSof3@_4EY}PfZimr$ zan~{d7YOESgg2Y2pKM>ulHwzzl4IJ|r-L~`Wp+SKh>bO&x-PK1oLr{@8kmft;sZ;L z46fDVYg+tb%}jg^J(K+j;c8y35eEFQ6^krGkE;<;mSqo6M7t!LgyKVUlr&d3% zsGp~6hy5U1sme=M#E7;rmG%Q??KI-=E0KxX-Gsy^nd!#Vu0HOcai8g}HpS%E6_@lm zJmg9ti>J+A-$+K{_$Q~EwHgRHV-Rg<09HXMf3Bh^#fXsiOd& zm>O5y>=VS$e2N9(t&^wAM{b zx`l1DTW@g6ThI~EQ_r>Qz~Pz$gS?-1hrth`XBN{ufvL*JU^}}9_X586)AhMTSKYnu zY|Y{vX8p{c;hAUYzA7<}E0+DN<#pfG+Qu0M+rHM3xL|-FgN4_0Y))uYfn1STz1@ov z5@h}&7Y_%m$dkvUgMjfUW5{x4Zn<$gX1w^aMNw$FR)ACo_sZj9`SXLT!VS|c1O6k@ zoxennO`tmxH%Pu<+QB^xjOnAohRgf1Dj8*#ms}fvN#|eRHh4A8!m^dC;%tuiDtS+b z&D$@nSVWz|(^iP5FV?T?+t&YFae-3KTLH3c!awM_q#k97;_c-X78(;n1d8nfD6#5a z)q_FBy8*WZz@0&38EvHUL(Ixw+=bd+@x~+Sd+X%0`vOxY)D4k51s%XB zmzc?7opK*au$vmV|ZY&Xy z{I#Nesc5!`i``NeJ5D9H1^E37D|9n1@@#7NM_v?6$9^G&Jx?4VV}^PKxhj&QTlH|e z{_Fw#QU^Z)-W}$`+9q&K%WH%&c3U3#eMp`i*BiaSxPC6`D5d_AZ$jr`m6c7a>)z6g z+8oQIV_YdO;mM}K)lR&?zQJC9>}2m3>+AP>v7u6MyA?BpqNAm?(<8V|Ktv=CzY_p1 zvLL_N0=x;vhK40VYO!V%xPNLjaNMk!nsqsBg_hnyaXo1LM*JYw`!gMap7T(iIY3XHO$_IUyz7q(k5YYPhgP=STrlq4M z%=A4sxz(C)cf@>EX#8u>cgA4-mpDb|<<{H#=s=w6t!clPd2U&}B?0jR-Jbt`V$0d< zV^d!OWP=4L)xWE0yPG=~uIiRO}WvCA=`Kdq{1OQ3(Pv|?4mN+%2 zGHUG$aTKJQf@cgSq}UH_VQJ?qxG1WJ3dJf7<;-r{K@6T<1vqn|8@lNWp^y`m97xQGsqo4w60iRN+oh zDst->03LF;AVf=2d)VdLXqEVe2H$No@%I>tJn`}?x}nbtT^GQlHQ3yl*kz5@fEBR! zbEJm+Z>QlQ)|1S|!73?RW#Cvk`z>&TUK{mymIlBs_)6@)Q^-5x6(b&m#{rHal;6Fn zN)0|2d|t=wa1HAQTkQ_&)2B}*@zi7Ohw%VAD%ds^^rp98Eh+;eeFh4PlMW_#e(QI7 z4Sp)BwkBcCF*xg+WErDAw?p1&Bqxlvya%e^&@_FifpZS2;eqbIBH&Z!gDEFj3>{;n?1a2-( z(*Wv~KOaipS1p&ZOj0&i?MS4o>wN4R3^b*S+EZYQdarlBLAI1f%=h63JlFZ@RnvQSgo- zss`1NqVP++;d6m{-1kijiIp#TcZX>}^HM{3bf7qbl6w8yV0wjM z9Cd#8&3eFUjDXdkBA0^*d!G=YLeQ8~UW<#0O)USqDK3#X+&V%6d!uXW#?RN;&*s)& zDph{Hc5zz%-7g+06C~Wit&yaw;S4My;TrHFs0dKjJo(^Fg7BvPig-%AVfq)y)%&Q( zJH9_i%UH?O8uBInTKT%@ZqYLH%26Qf9?AdS^FlTQ+r8@=gd~l!lp7V}-|G18^hrd09C)TspTyxF&34>4B^+Va!es>#w+SLBKLT4*5N|E2bo64>59@$ytPx997Ngv-G# zAB)eF1dh=yp$eL?IIDu}Q3cAv;m75Lb5@UT6ijn5D8T`P7hd}4@NjOp3`j**zv4iS zi5CD5Q=npW6;2s7ONWfyOF3#JgPRW=3+<5GF9OTwsEYilXSc=VJ zG$^e}38VaZ|B1kH;Wx)cTf)y*;{SSzz4uWM!I;wh5gSoD{>NZ2iMVv!(d{)c8>kQ6 zWcO|p`%n1=s0I8FdsqQ0qX2LS6~jPIhZ-Z9ljn|37%K;q!Dsi@LglYyblU*Gy|J_R z1yl*&WC}aN0ma*o5BbLKHuQrtJqFKMW1uaDwy|9^p7tTU(3z7=Hnci^)_4;zHVE7H z6X;+8oWlvuv4Hcpf2kezGWB@W(TU~#35A$yNUrKHhBute+%85&hZQ|-t#2Pj_OY?C zB>GMnKqxK|<_+GSegQ0z-?H-LH&=DVV+6Kc)8rW3#QL4G;>*L3+v&K&2L#!z=!+A!embT0XJwq>EoLMt?$k@26_W6aXL49Modr|x%j)L=g zBr`NX3le>DEdo-21J}_9E1w>_aOSM4wTi6)-B~FFWDbI~XEA}FQwdl-L>TI6r=(lw zNd R$sdOvw>ArkrFB%2mjY{8X5VpU>?LI1_)v#=vYce+xm{A-8VBAfcYuv$QBH} zSy$7VA01(C&Tt2XEU`7`PpfJ~!s1VZq5jI2ZeWE@mfkgHE4SV4_z3UOF>Xt~e#lF* z^w1iURrg|5qU1-~7y&Y?8d3bGQ_u`3mHUz7cq)0}xt))(<*Iqe$m5DT$m5E#^81DM zWGvG;KEb*>N}%s1y~;QraXW_JC_flmH_1jr7cLQRKQ+61U@ZA6LzIzR-R2SP)q8S= zP6w_bQED!IfkokkSND3->^aT7HQntaW|R5c!ano915P+m2F`hMceZJH$~|cE7?ikO&ab&gDT?+g zBEkxWv(ceI70(#e&d^j9I38$*kzII^PvHC>dsHeg=?vqnwV|M zERYPah7}TIJxefs&I!c)u;mFe_Jf5kho$TgY%t2 z4}{&{DY5-(^8_$}&ra1TO-Fw?Ix>F4YTC@ST_9yr;=4+44WjSEndP<}(_LuouwUj3 zu6+j~61g*v#G9wnFSy4j0yEX*o~|pkTv<*yUuk$SdXQ5&CIdb5BP?rRx=&5QQb=^}^puIzMB8W{ecc&?8oZkpyurCj4IwBmRuf8Fx0eQBzi0*vEzPbcwH; ze)rDVhg3vUudfgS==Tul{Z7l$b*ub{96@bH|3EP+Zt)B+I?NLEjkCg z?r|@Epwfu(hH_rQ<2}eWtaU~cXbABa8Yz(Nt=5l^p7 z2VAqf?S=2I&Q%%!VKP@>GM7!5n`z z>|&~Pq+b|gn!{(iwSVAM%5q!f@==R=5l0CbfKtER$in75BL9?>y>=Zhl{19ip8L;m zeLyl11Ru>if9Na7pV|@6(3HyE(cp$Mkyq`lRo^EIglxMK^jprHhak(6^4BwY+3BHg zgxU2=4S7-5)^{AFf$-h#_!bZ|tZ>Z}u49>$PV+;@FAHbvO@%Bv_V}@}^ARezCE34i zqG6qu#u+mx6=dUCc-c~o^2mQ~A4>aXw5p;tniSzO4o&0pP81Zj%t#zmHeQ?@2rSq8 zOE#z&y1sgrVFcqOFUkS8p%H*?c{+@yA=( zpF*`dM`RU`M;_OVR7?3tO};rJdPrCgz>4gJY2S2dgWTYL#ioO)l&3Y-YuqRR8?*t2 z;J{=1mQXS=hlm(ffDGS4CM>n@_XT|s5raIv{B+esA<*#Yuc!r;21M8rlrR!=IW_(M z;5=9Vr7oBA-iz_{J!V67+F|cJv2y5*jE{MeC^=(~%|A2Ycwwqm(`KWe^Nm83-&}c5 z7|tQa7LBa&?63;5W;SC6CnQbN658z_eE_jZwq)9@>@e(YkHAhAy_1%3*+aMZZO#f5 zj8tM#M+XOvJBymYV~tsU_Z*}m4-OCGb7`2QGn%^|V2e$5ENxuhY*^Y0qwAY!*iuvs z_3U{lh@3RFV;L*~YNN6=D_6xB5%R6X+<_P7H=lzJf!KhqC*i{P0Xp25YSUx+ff}lW z6fcz8Dg!q=!fa$s+dP?xl zWB))!p&mxv+Mb&LQ{IoXtmyDQDtygG7$j%{#{)Ck6k314L<8N3CeSkjC_AL(G};$f zxX8tYU4kP^DZ&%Ena<*+zr>n<57xeVd4-ek3`>IUtwFYIj3AuMGxg=vi7^#EKkH=j zaC>~L!S7cgYS5cgAegk4eeKsTA;&qZt8JT1x;nNww#zcrzq+=EEI>P|vQ1f?sxB*yd|wjm`91n5?&W7WRa#MH2dZ8(N}mJyN%1{rMW%`xvTn}C|68#xO;?^4_~tzVh8lhSpa4| z4|=WjqsAX+$k~7YPV)39|HMtc(zum^_pO;Od6d9MEx7(#(dh%+2@H&R-*ABGY{Rat z<5ZmXGMZ?7NuTerdS}m5(JeiDi*Kv6O@Uvyc@%P!)K9AfeFc5119X$wXGh*L;0x@3 z1_&0+mTSgkvjHSh=0Kp8I9kkj#VDBooBuuN%jPnJPN=6aO(j0D7tW}ZKffL1hBSNp zI(AlTi-DwW(B$nN`WfG1+RxRpkABw+9m@2um#elyL6KgR9(8#bA+Azo#rnZR{bm!TVUf{nz|Gd94EWS>Wlj zTHk+qp7m6Q&~G~zSLWdjlbN~U#Q#>qRryPps+N`EFj=>=I{L1!PX{DxTjA(rP~*<` zQfq^37WAin0czoMQBf+8$U&5E-opp_H}Az@Qxt$o`dBlX$4IG5Y6pS7gzliO5-` zSm3WBv--Tu$_xrw$~Tajj`kBf=!+j6c+!@0WLl5sUQ?MJ%cpGuFdg*lL|r8PvBeHoGzkC~t^Hp+VWBi}3x@fczx^pa+0b6lvg1K|}i4 z%IDTsma_RE#|YX+H$Z|BTC0|0VjNy2A+f|B(^U*uIZWktJCSlyV(Bsv?@v8IJZW5P3Ejav8k)Rm+Y&tvLp#k zw3;^uC>?U<90MKOE~as(gVQ2QJ>?^uC=lIHudN>(EvtY?$v~=$G9RJc-2uu}qM*Ko zNdE5MMf&1MJ1lwi=ez5z9UTSkJkl|?9XSnO@K4b~Ufm|N5jC@?@zXu>Q)r=}ke$6Q zO3u@$W0>rxAv)3wX%ZZK}&lY<7y4Vxf|-qG?W!l*-U%{@43^; zqWvY34L*acHPCr(larG>KH>UnP<~4Z1qhxy(%x#tfR5I4 zD81t7<$HQ~Yyp`I!8FYsKYuRhJ25c<9iSN?dFts=Au|#(5Q7QH`XWw2mFFopqPpz8 zF02lhqG)Vy`ahrAH(x*X#b^%r{twx(c%y{qZnzrX0A=#mU49|9Gg?||W97dR46g)( zpoiU;^V_%d*6G>dn6prn;hD*-hgX$T;=3>+{^J1vC@9vo;%;Bbnalx{&Di+(B{4K^ zEs7%0;;CD{YZoo^>5w}1-hPa11r0K=JF9a_eIqBgnvh`%vFjW0w(;0=h~B43Tz7(%Qrf5 z)+;QR#PhMah7FPO>1`D*;oh{u5Edv-H$$QGz`5y}hu}_3L;kI__)iqK7dn#GMTfRe zCaSf8K?@<0s{j#AS7*p(EAPZdX%s?bFKzM=&q=~-8 zq*5?^J9_~A)Ezs$qoFV$ZJDmiC0GCtm|B7QY%YN>*-d#~El(-K3ZfHwlxi}lh#TH% zejIcgAlph|v^?K3t;om|m6Sdv_gdh+C;oY&QlpU3;i`39Fk7Vd0EbIlDc|Cj4zv~; z8<{6vG%jh-^WDRw;85eX<&%x6;d;(%LHAb}BjN?34eTE`E%13O6+`+iEyX{(NW96 z%*4tzr=qe{*9V@!3a^;S!hqi5hk+t`fSDWso(2Ux+73YZ8TR$!X;v8wH>9rDXAykz zxmd6obVpu^B3<1e*2Is7$hnfTprc*VdoLlSMgq`K3HfTD-8zLMJ0LT zNcr;t$C4&UdWn9bN1x1%R5-D~+0+Uo<|@l>ZvWy(BzQo4FCmwc=~q)NvC0sB;$(1B znEAS}<0^{q81H@UFNP%2^!G@U0OZS_T;_e*?n&HT{nQxh2lt}V%syRnK0g*HP8c;M z{}zPk@lSuAl*1*XGFYv280x<{qjQ=ngXqd*%potHO~0Fn-ZUBG|d7 zZ~80J>jOH~Xl3T~ zp#Uu)M>LwdgI!Ce29XrhU;Q`)k|wY6a7_ zA^nn8GGxuI_wlAcnlcAA!Q@pixS0KWxDA+!&>m>7XOF0?vU$yj{FOo<`HGU9#38u) zR1q-F%`GijiU3Pp@|@SUi;Iz&G7${cf6R_ZOUfEi!90QTF1#yb466Fo5^{r(H2CJ# zdZkby$1>1By$66s7;WakJ@AT{O{BrsoUc4;JWwr~^A-^xA@(9+!s*MI<2sBJ7Xv7Q zrd!AJo;26B!@k~<9n4z`_G)!7`+-)dpP^kro76b4tyvk7ci%eR;pr11eQ|CVm|T>Q zon@&ewg98M;>jF7czDQYQUdp~9gve9palWlVA9O6AVCQ+WqWedeThJZpi9;DQ*Cx+jz znEaq3$PpB{@#o+|Va*mk2rICF`gFKL0EkK$<$DdK`#a{Kbv_ETztnK*z+_%Ga_9a~ z=ak+kl9kKH-?M(;=ObthAohik$Gn{KtRE*C7mp%lc_o;VhGJA;0}!QuUp>&Jm6i4} z(K~s5c4UoMWYjQ$)v8uzT0?_dF+;Edt2yCQxvLZJA<7C&ACeC#F1+i|%HQ4ogXtrM zGtFV~T%Ts=nm|+z0jR!Ze;FBl%HfuqSUteY#xi>FX*#JkIv_pzPUj6$nzt(EIyXq; zmqpxguFjMMyA9AoJ>jY&`u=3RqtxNP1ay2*3|~#9{Po$4At0qn&j`i}z$AkG1_1#< zCEaOvNtc|wkE|Ka`VHVz68i4lt7vwv*B;(em9<6lhNYI@FLg?HJzhM%h}3M63H5Fz z|C$XHAr<QX0R-3@f8@*k1Dy}rKJAem* zZlnUzL6)rHYv9HUO3u!qV2VE8jS$%si5vX0~VLjYVIi=d4`EQ+@L`0#KOO1%7l zQ`Ek|CO-_E{+5D}q_Y4?v!?Ep{soMXGxRl=b_gr7Iy6T4*o8{2px~LIT-#PTp$zrw z#e#=hK&@iu6bpLw2;&`dbR}i{`-S(=ugx(TX1wI)c`D8zqkWxvf}x9)1V_11UGAv^ zHB!;Jqa3;MCwP0ucF{05AwV@2bqWF_pNvXhf|kjw63TOTsTt~VATWO+x&zo6VD zapVr^GX;Bc#tk9?hRvxN1jcj~Fc!3)qP;^`9r7&Zop86^#EfOkY(eUQ$#y=|UUKR|Iz}KmMCHuopR9)cl4MS=Z5LW{o8vI!`)Ziz>fRvOJ z=ZsVaTWvIV89%pDv^kBy}czrj2$S4gCy7kGU{c{Z7sNN&}EX zEv}|CYz_csF>fojMA$)hlDuvYHf_Fkr&=Mh8V%x{54Y9K74!9d(Te5;)!1j#LDUtX z0D>KW=HTFP5!Wcx(Ssc_{e;MOT&2&-NwQ~ z2Gmhd>QaZSSM@$gXLL`kuG&XU1#<2K$!v?ZZw2KeLBRLU!h*!*`E+cj??>m8NKJqo zogNA0DisDN)8oFnx1B7vvo=$EM;Bl@4AcHQQzKL8Fo1ag1)d0qw^A2qd7@0+r-MA#j)CA$oyp16cGFYX z-IfgyD`noe)`PMKcrHBCw(ZFF4o(6eZsSeCDsBPgQd~kp%qbuWu;VF(;w$F`MO+63 z8CxRr72Sgz>YY={5tSG?st1y?YXbTURN;Ol2oh+to*qL6u0j?~+E`7bGC{O#>Kk^} z*fQAfmx1F=QpSU1SWNO4^*>mn0LG)K-3*gGG3lyACE-yAdOq9xGn{$1;AO>jhIn|I z8wI!VQlW|X`A{EMlTd)xMi?u3obavJWhqRm{os?ypY`2<_+m7Ali&*!62!F$1R_v< zf2P*hL_{h$Z{cZv)^$h|!aF-*es7Ee3C&b3uX}-!HbT>-l!bE-D3c)i*ytD-&*tN; z-4~MFR4%+D{ry;|gVzg>{t)lflYqxQ@RE2_Q8UtNKA&U3l+V~-gI7a$jy4A|qr~?> zJPPD>f1ASdNut$^)Gs-adSX3)PU%rc!0<7rHWY$MC=TziSr}B}yLGb2WhHL+v-3Wq z7GNZP$yoLr^)p0H=}RRGGJmmQg+ccK5qTAGn4q_|ww~F8^3L}IUs*~VJ4KpeQfzM= zMDX&$^A*g7<6q~aq}2gg41BKxIHe(Mnint1vkJGiw`ZWuDg-MgR2&Xy_Xt(S(AIV@ zU!jjB^ff7INELQ-M$mFsqJ_{3Av8j2AT_uLa*3PpUkR|1<)2H?HhxIza%M%?gm~QE z^ij0oS|*I7QbBqnXh5KPhE7Mlr=a}{00J*lz!8S_KOd+3PFna+2Pzf zP^&^zC!ug>)tQV)odX1wG(DBu-lD5~s`ui+S3+PHMlwuqVrlG?oo7IeuT;crS71ZE z?d~oDVjY+`I20GpwI|KnfVv*ke_upp1S>h5Nf0}hNVk=!&pQ76)>ikn9%6tW7}O&A zJ{eNv|5Cav|7Xe+CwV-#gBcwl#Rr);S-;aH!KWs>6U;7u%i(~)LblNz^9oiAPZ=G;{A2xa9pPBW|Xujf&jMG+})bDRR zH47yWvNJ$FD)8uJb#y=*W1rvsiRh4s+>qwMXM*>~qhoJibK$fCw+PMd!`+aDJ%4>W z;K}N$Hw6zei8uZGXLiI)qCOK_qJ&ILP1_9UU@0Clzb~AJGHbALbQJtoQxT+SL zLj3`KJ*q-;EG*()-%e1JTAe`1_441U#-*AkmIg_o16RL=y&TmB{j$9F2AS%#-n`e| zit5uVkKSts^iSXCUOUMB{1k(Foty-C;om@X1D^@MGwsGJBaGuZztxn+oVSj)7aXhE zyT})@9XAUsudSNf`m*|gkb(m8vy2gX1W9H=v<&8RHn+pE!-0j0M@z_j)wmN5UyD%t zj};a4?S5yzDt|lt+}-5YZDd5d`yP=rQ8g6?NdE|yG?RP8D{*uI&(%Vs^ooH|g18b) zdbihVmjNSQ;-u$OmV|CZAW}^gmf|s$;H4=RimX6n@EV;Hr0_cb;&cdheZ%TL+{!ZG zUd$fAXTSR|7Cc67Xkj#wKV3OalkiHu@UuLHHy&&flLG#`h1tj7YZ~D-^pMw3=`15Z z@|)Z;n_2&{cIKl|LXlb@Zn<=iGSJDsz@$u{gf2`tYqjUeIyN zZP&0tnXbRN+^i${4M&CJJ7D=Rhpe)Y8r=w)sJ zWzl_e^S4U%Hu{uq69#15%u{AF6C``Ig;{YFTOS0+kHhn?AaJ+lDTk|}A<0dO+jB=7 z-;cXyOmHVM*aH>@WbTr#{7tFqTTB%qJ0_`ltZpK)y&0Q#V0V{~~H=~k0k@?-b^x!kKKhD9%7PLHAm@)WMx){KaYW=CbKR5o$ z#C=gt3K;5O(0bh1aLN3+b=)A?o;SgZ>G=pfh%`x{>U9d7Jw)plI-iJ?U4oE(8%*XW ztKb_L4;_<&f&zhuJ(!^81f^VykMM|A8Qs#QRvU}l?z`v`rR224*hvVA^V)i&Fp7`a8mi&Hb|chC3gsKqMgK{3x?!3+L-z6}67 z1bpNp<>;bUAVAdwQZka44~&LIkL5kH!GI|4b#0*AJVh?_mb$Aj*R%kwKBU zpW$yR*_az;Z&UmEH&)o)|A;sz;qeGE@n2N?i>-`Zee@SlV!Ba)huwW|ym7_zD z-9<-%svi#GfdP87K%`2s`w9+PAZYc5JW?H3v#oN#f6bxsOZ3Js9{{Krhy$u*<&eD2 z0gJ#>wqEvjxS-n?n2F3vF4sZP@IImk=CQw~iX1QyZ@l{U_G^Q6puF}h`9cliFbU0| zmO%iMp+H?75eQ4)i2^&Nm^M${{I^v*N0jYzsy6ER@=qVoB^0rcx?;|K71mtZY3y>x zR2nx;ExF6{I!qW7gYBM86{`{)CusNSEHpyr9E3~1f9Qr zfveK^wijZB`LBHd(!(tv*LUCnt*l!_CNU`Re^UHYs~$W0wx2GVj z@(bE(Cei(+6}-H@2#rCtZ^Qju`*LkD6UVG;>_{(T?KmdE=!=>?s76v!G~c@cZzi!f zWC@#d$fx9aSe!u{bN$e7K_6prbyd~bS>QiH^ACPf zAuetYEUd4QvMGSmlqUPSZlCCvEd4ae5?a+KADl{l>*2`FkkQZ*;aFei$F}i!uqCCd z0g`CJQB~?NqF`(j{ra_UbhLI_Vn5l;@q>M#jdL_V!8E)tQ+O3h12o?KH)H0D8NvuQqo=$Hc=2Q{OH3DOt)H zj;hM#s-%?k(ZeeT&U!crk9lz);h$w18@+|bP6H@^(Y-vDy0ANz$%WRpyo)rxpuzLm zs+|_J#*q9y6*yBZgor_70BP8 zDJHqF+C+*8J8dvR(cFetS{2*QML!a7rZ>`I{=!>>TLc==0D#H)Zn?Ho>i89i|6=fh z-5m&Mw!@Ky1<4XVk#&BmD$(=M;x5tN+1vwJpVyUXHZq zH;cXqy7j>}hD2gn%AlaPN8IKCXiL&P)`N|(ZJZP((3nmT4yaAtG|0dBsk?5Brhj9X zZhwEfO6qajM5x2}C^A>|8;E)(z1n0C5nu`xQ=sR;5h0lt14L_ zda<0_!Nnz7TP|*2QMpNyaq6oe*U*Ul*wi=wQoZo$#~&QX+^cERmrJd>vPx8BI0D@{&!6_;{Tae*E!oO#X&>{HvS|~DdbR|RM{9%t})O9lK)>|_7^GZCabT!we3`d0IW$Oe}Q zs0J!K$q<8tax*wZy{9Fd=4kjGaTCw=@zPi;9CSfe1FjOrZJ#=AxfDfCWId4G-Y6WA zXGvr_h7#iGvI!lLU+JeMFUTtmGR!Gg$8g4|aNh?)+Icz`qkaB%hSuxE_8fW2eL=?B zUHO3@=$2Gi6sZF2u4VVDs-6aOWA1xE*tITkn3Mv=^w0-tMCLne2I89eS7Iu74ryW0K)+JYyb*(aNx*!|FjpRw8TOA`ZtCU*9 zBvj5pLeW!8JfU@=dt)hIaAFGQ{nZt-$0^?D#v}6=AwWUmmSB}J)qVZ)U(BPKpFhOv z@Do?uamR9bL|xmVGMd*qIh5{Q-y)Px z3Mk50D)tmI5chMS&K@^W#WnG6_r?N2lPKibPT#}Ue9OrHJkfxP}pj3A}bB| zxBt`zvrD&;uRdLNube7wo{+XDE40Ke{Cmox|CuY!Nrvd#ZK=qjrR3Q@R0iMOVzP&zI0i z>71)wd2Px^?s~cASD|zsr?UIIcu2QLm_M{@B%qX~j5+`HHx=#+YAeOXD&iEOdDknX z2=Y^~ykke4SRE4+NP`)I5*PaCrbtptf)f}Xvjs|~Dan<}y(CQ^LQ++*+gRjIQxJFg zvnlkUMYgM86wl%w&E4@d9^(ltoK9o8_8kpRn$haSWBfqQ^7AOCd1K`+v_D)lDN9R! zyj``GrKzEgVwswK;v$nVpfuk{>`{satq?Om(mCXu2}xkG0><0rJmu;uuip}<;W)4b zjxudQ-CN`@=E?~z_i96ViP)NXQu36Maza=TC&&~*MI#PxLE3cWp`Swz}`rWq6?4iTvbd$%d>9j~dbo z@6TVlP3RqM*OO0GG&`iOE3QvBcbjY-W)_tl7Ztk)9*NlqKRQ9JT%F|GGbeG(zPEOjG+q9DQKkO{(VyUe zzFV4?=i64Fg$3+o*M_O*>rkU2Tb2Y|NN{|r|= zou~RM%8tWDA?kf#QB-7Qp>*i+`SK2QC%r13y&YPGVhzmE?#FtJtnLP6buZm*Zpm2^ z3nHMWhgXZosBt+^_2QW6OXA1`SjZS-@zM1O2Ya)=bLz}R7AQ99qHEd{M zd_@w}7dKj1QsSgWq$i$dFt)ic+M#MCP8P(DWCFN=&t}kZ$l)$op^ecX$;#* z#?d~d>d_g^Ba{9PR#Cw~HQnuGeksc5HW-FEEvm87!oFc{t9B1@v@w9O7lafyAhS>s zQkxnygGq!}Q*5$o;pIa8p}8?$5TaA&^y)}M0z-X|UjE@vr64AP{%LF9Pb-fgB~t__ z&gWk_Xs_xp?KpCe!QK-e1pi^Y(?u!=wB8L+NT*;8Mvf)t@~p(c%37j_@-6qHKGve* z6pv4yCfNfjCY^1}4LpRoLRiYmB_rq9zu?D0 zri(GxG%~`)_EPWh?qB$?Igu^^qB$?&*t!A*f7!2vmrrT$4o9$W5qA7ZbG(;R)SAnxqW%^Sj>9d9U6YU;p;R z1kU=0KQihnua)x~oD|O?Oeka_QQ1|M7h11=n z^tB^0Tygw6)1=RgOd?Lx*Bs_>`x7VCaP!L1K}g%=1uw?=S`O{uI_g>7{cD8|-V-Q0 z9G4~0$&T`Jw!rZ>q>S1W-+r;;j^y)*zOU_X`1F*#F;}(!%7%R9dBO>bhfr+b_xhA% zGv+)QFTFCh=FPLPw6t}$I_|0SRu@bf_Q{ABF7Jmuq0o@Q#?qA6?7eZt{u#@4-+B3j zo0~$GcA2Vk39+IBHt*uwMvc^jzSODB-?*Ng9j!zb!Tu3P;H`iLg$!{z^Zuyc$??n^ z#fVUPRndim8Z*09-A=2N1usU|$mb)+!<}o}>CR&|D5Z{zk>sYwSe(_&Z{H_riN7V9 z>Th+A>EaL6ZdJ!+_XQ4dY)ik{$V7g#Y5o2f9;W+7t*`wfv~|ZE`SzHlC9V%|8s-Cw zrZ6>faCWjX(~q@mvz)NKSk_qs$Fb2POnlCEwL&b>Z_CTye{uIDoT9q5k|MMPZ*lXL z4(d-*;9O8SMI(i@A2FvGUf)}ccQ-!t{9>zj_j{p!^P#wSv5g7}G_SwMDPdJOM=K4< z=M;2bwl~xtl2FQy{uuRhEAxraE!)8#R2%rw$sCW=@FhK*mWCR6(O8+8)Axpl(51+< zE{Z7U=3R66ykx*}Qc`SSl&$5AFY<=Fw724msmsbxv)7>P`Ars?9wzxEvwT3mt=;+n ztA#+NAQ^M1?So|G^;5@%k^;0Ayfk&ptO#*Z3TaTH_7Kp?74PH;R*hPsrTdUG6AM3o zhCkN!u5Fk>t6HthSN~u&aAR-hvm$R+#3hRJaojl=%FYa8k~;B~Ia7ycik`S*kX;>3 zsb>;Rl|Y$<8R5fJ+FOOH!+537Anu;9tdz`o{$$yf4^4bi-)NydR%bBdV`SqNyTbO8 zx;L}umtdC&(@q4c^Xu;BS1%g<+O-RZ=v!bVL;XI8afryhLTM2}wnieAp6Jon2r z$AqJFN3AKglfnb@&cX*FK4here_Ce5?g{U$k`N|b>+c^!FR&VijZqENKbZOUyMBq^ z4BZD;qruTmva+F(j%lgtOwNCUP)xj6Aguu(^5N3Kz?}FoJ$3SH)0^6!1Qi=eIti67 z4z)`|dX~XqMTGx8qgalP*1d%RhDAD#enBBrv-PVKj+!?FF{kWr`A0vvCiVHcnawQV zjeANR^lj!}RWRObF!xp7bqcll0k-j&*trHW^s z)k}0e&RhN5s1)VZmGM_@yqjU@V%6m*CglaF<#fMb+e#&(DMOTqkG`>s^+O+Pf;;H( z|1Q=(L4^BUjmuZSWW39uKJn&awvMkSNsfRz1KpC}@7|u<7EiU@Sx7i*S>N^= zXSxcxYLPDrlR8$^CM8*4fA|?6B_NRc>1o=|gj{J=)Ae?p^Dzp2w7T|*KB7(%Zd_Hg~RP;46 z$m!_pf^A^E-R9HbdYI`bFTp!6XWrwH^Zd7m`7cH3Nle^wMigp#VBE_oq5ii5YSLr* z8epRF;cDLioT*`AGM*c5TBr!XLGZj_8+<6x=KYQY#wK2KaH0py2^Si>x_kqw%guFC zKF>!i)p7Hnc>xO%*zy`08oppL^kul?#}B-;v@`~qi|~7z$Fz@O}648ZR zSl7Xn22t}@h@gJ~UL@(oJzJM5kU3n8NhOSKgAexV+(ut;SrlGLTUao~@|e5?csISc zD)?$ILB>bMdyE^UnJDP;H6xUrXeiP z`;a6}sPDX`b~%^sYa>;UIQnMj(fao<8<6cv8LIRA?~n&x6a zFqJ179U(R{HlUXuylUc!7U}$F?|WVOGxlu@!w2Z@{K(dH0Akv<+aCTw>_7Zmp|YC zK_2t=EgH(!&Tezz=GjH)w}Y#kRYXK6#P%)2yXbLIQT{Lk4=cX{1Plv4zX90epsvj9 z?(BTKbh?29D)de5?L=Zp#PCw`8XB)JvVaFMb1^ZMFcv)pML?3cTUqY@P7Gs$PL2+O z;s+7?SB;Ibpup!uh659+8>6TKvkUyp>pHheXBQUs<1(1ehu>g~k{AA+Ow#nuOg$zD7PUlPi^VbG?)L)ul%EBi9L5Kc)FVLbn->c;D zn=oI)m2O*59y8X*!k2p!9gP8HKY-ZAiPKkw5K!}^W@mrT?f{P)@cXlR8EVwCy!-v< zPdPBJ9re1dDT*5EKS{pZiH zCKLIGaQr7vpQdT$bRjMSxS^fb5(@RSupJm8VQ$W$EaQ;IMQ`~r*LseDv0FXt- z-t4Tbn9v$t%_bdXr{ob7)P<64SZeBJ_%$x@-wHA<6m~Okeg|kNd=e58K4|q+!PL85cxz_Df)6rUg(_r^BrWm5+g*(+EcDa9Pm79fGEXMve|M3rj}RjBYM` zfftgVd*530+#LEE_W8YibOc>Dm5M2xp_?}`}O zuZ|8-9HaSSlz*3+fg$|kM|Rlz+Frfst_6|POK{n5KwJWSvQRLB0YPNjR)9z#%N>le zF80I90awsb70vFGU&)emKzEY{p`Q&vY-H5bjEyl}83Dg9G*m-F1IiaVCd@Z)rtHUH zi8=ia98scPpl5zYnnYM1w zyT$WYG3-{BKs(!V0>?5WYy%Zd+Oa8{Sl`g_1uT(<=4LE9;m0w{&(sZ*LHA__#5pl#`G6_uDs&%KowFvTc<0Tlp7@rv0Blu0OTZ0z)+qAnOAk;|9s>6zZV zfW3KYdb&IJ?0YegGaFi3=9Bj?uJip|06);&TrS|YH*j6O$_HG;zJY~8=U?;zk; zS%6GI9KW?%UP`%(IuKBrnI|x^7pY~y+@2PCs9<^91S*-DkaI!ELfH*`^2^Up_YtJZ zgtS3ZQ!@_GcAzZzIwd6%6m`wPn%(^mxOXrlr@xJfnF5IPR*9l@$9q4$yj#-Jz7n*X zr^oA-(7tpB|7bqY68L0XP7Gb&IAMomQ8|73B(;!)1X{=>V&1*`nRfx4--uBL<&PPF z$YcGAPM8?7o7<|Y%^(=@K;Yzdq&_53V5l7V{yjaca~2K`#ZyBK4N~A}p-_lq1^99M z0mc*q)DQ><3e6CaUv7h<`nzdY)nI6VMTC5$z@VTX`_cLN*MKsIjyl-?dKM1oD>6`` zgI&BC_MiNigW07>LMIT+bB<2F@~#%)$tqk96F($_IDtd}lHdQd`SgUv?~&_f6i z`tUmc5)B}gQp>f{!rp z?g`=J$Y^Sk!ROcjrqho?qx4n>m~e=^o>9NJsOa?9vy(!v_X!CvAyOeL69Vx!0E2N` z1#52p%Vm1vdPd4OeP5p0c<-i*w}=Z8PW9_R|b ze)Gm+jW;xuF)qIn<1({tEa;f{`=jqH^%Hn__;=$H!~CBql7DK$d+*(eP&vq&H)L%y1( zo+1T1zQ@#L$(0389v%fND|X1pu34>XF?%?}S@g|te}BIPY$K5MH2I=oID*?3@-84p z8={mctEEK_Qo+73jbW^(VCPyKEW8A}9znPQhO|-)Bs-uj2IPY`u*@K^S%RbT);?^V z79eH&y}kVw7&3!A7b!jctDPNZm@r@H6qTXto}H5;1N0mvWn~L%>yU#3clZ@1E-obQ zDBi!%3gCo5;1;^hhywu$BvE{8YM|c+VTuprhyKo7I;#i2T_><~Re3K$1}K4z?QJ=D zv5zY8{t)UD|5gjl(R=Q%-IA3>hXmOiB7R$&QcP^Dl+Gmin;>#|d8;z(PR8l^d3K1D zb5)Rezieqid}=@`k(rlQ14)aZy2iyt4j8!KNDqGdy$`IYTkh@^nn@ucAu!@p5Y3=( z@G>kcC?FsJsG=cvoW|NaJJr1ate0QMA|Y`XLdE2M!g|E@n>Wp}b-3Qd$6p!D{O|!c zU+*d;N%G#_wTlzA)dzq)nM*ONc2z~vF5p`JbO9sQd$6qcCEz^-1qB=7sx{z6|0EH( zmj)NUV0bvpVX;_93vXui<4GjfZ&@CX&&8-Wv5o_0gP+9)R zl+m!x$w@@Fg%F_UtmTtm9#Vj@DGG3%$e9r~g2j>2s~`#$42zdpQj!7U0~o9dU*Xa2 za5~tq0Jhx)SbMQI%N?g>hek(lcCGt{a?@q`zWBa!@7}$Q5xYVrF!2OGQTMgV1zr$; z*jb-6d)!;=>6Xz6*47wjhn+sNGeHE@zkvYtEmbA}tU6ynFh)t=xq}C&*Ev_10tySj z9na3s7ZfGdhH?Co%g&3fx~Y6;7CcWs-lGrwgKt{DAd=JJvtCrDDvEYoUsk! zT1>30-#%2Rh$=pRE+ru$@rv94rZ*U4QWPeKenNwIQ;Z9T;cxJ&X}y0o;PA@=uAjrh z!?*+l7`}R)sc&Or+gSV!4GobU0oKGE77^&04uLp&AZerkvG&+WO=`|&b8D+5q=$&N zBm_fxdU{^iqfx#kCHye60m*Gv-`&0GSCA8bWdRVt(r^}rv(_sGsYAlc-O)kX_3)`Z zY8k`B!yyHs0kdF$DiA>k0qe@j_Kqa+IUj1-%V6aO6DRs6K*1dZddh(Y+e)se91#(* zwP@kFAjl>KwFMyYQh~W=<44s*(4|6^8WEw~_lB*Jl?cXVV~hN73kVfLe~wf{TVc3S zD4>l;`y{`4;|Cd6!VZJ{eFhN-oK|kL-^pOtpm%a|!o|gv_V7Sr8+_7PAt)Q%0!S86 z%)=p+U%q}_T`fJBm;oQQIaXFy^S=k1BCabmWsk>?41U`@gjj(T8DIihI5WBH;S~u@kS?bimp^`z2tW`* zIJgC?WywJz2h!0IzP>2PWfSQDgbQEn6&#?@;E#y&A}J)X_#k?JNDsd)L>q+R3y@>R z>FH_q*6tn_sk! zG6$-q!jDOSV!xVLcH94aWdR}2LlG(n_SI>CstlD_lfW-oZ~*97yGUUMkWf0MLy#2d+LVNJr!-2aARr|r(%lUbA|jxaAT5Y= zNY`A?`+k4FnKf%>t@(G(l5-BQ_p_hpzOVSibsMSnNS*+X8V`j+5hyCiXrNG-At)3^ z4h}Z_#b#G z_@M0rDO_A!#`p&n&;OZkp7h-7OL#Z+Gr>G=_srLm?*87iNaew|&2*Q6IZ8DCWl5s{ z{*g(O)}F#*zzO=FKLuAvLjLzJ-N^ob^o>ll^WMs1yYVs%Sy|Z?`#%Hkd%_5A6qIX? zX7i7PzQPuB31Y}8bNTa#M%-7&c5GY$my=ylxHM*a#OWT`(6@F9P`rQJVC*64eztsO?p zBsV)|98kS%l&fKQP`qw#X=(N;jDVGub#T&Sd5|%RlIPOjzkf&6?sbsAVz^~PQ>&3^6e?Udrag1)}K1uZ5aDvo&@mxw|*v*n^Y^3<~n{^!E~U9Ybedn+R& z-r|x9nGX{=t9Y{#B!gb%X>c01M7^Zo%5qxhw*HYDJ1FjwPYjFL0)6-vFow&wfh7eWfxt-O}iid|M14~9b<>0uC5)>3<;N~V;pQsMb&d%;~Yw_H^iL5*A3Y8pBeiiFkDM^<6zX-Xj%zl&@v>BUi=xXT@#38oQ@uzZ!asn!T^XmdO`t z7Z2trlA_vzuUvCn8|OhbhM1TbUi!gEEQVep=J3!HmWBzIH#9VKc{rbRWu)+<+uBs4 zN4eDi9jbt*cVy)H>({S?76ehh>YOk?K1vIE|DImhV#cc(}dm3R3*-MPmWhhsZa^&=_TU( z%?H!yhSH@5x7DQ5QZCz(g6lr>kt{l^qs6+7?(5?anj<~R>7wuI8yhQga&D1dzupBO z-V+oQl+@ZPak5(4`tQrXE(&9ARaMo|EZM93hYPWl-g_(M5Gd{o-2~0H%q%RG33v4? zAg0Tfm#up(ND3ax%3}E}L<=NkXEWK(w1~ZY`4au;(WA9@R_Ue(n=@mL2iprhx~{HO z4dReeX!%&Wx5FFn1I~qZcXrHFl6g%rvGGm%lljn?R|w6$yu2*m-WC#iSN&`%d2e+r z7FMF1)3BlJ|LmA2ARu70$;-ukb@Xm=#rV#V!c(R@1Gcctc86PY z$k$r_$8fmE2PJ9i~&AXg-R&!wWcASU$>$LTR)i55GolDJdyg z1Q#wcZuKwn+Fe?Ul{hznh(Io-*CQ+B)A9DVyVPNnTRi;~M zS&mD}T;{$$QNA(Nc%OxZh2L|_L|aEE&#h_L$I8;OqQ&pz9t8!(=!b_Cqm@>wKhGnVjpZL@9Ib)1+v$zXZtrW+hAqwzViv#jkgKAuYE?9 z!BXbOia~Uvqsn0)@1xd+^ELG>xIdi3PFhVhxM_~f{QUW@*r<78w(_Rk6d*U8AZyD1w3F2rqzvanu8M_Y6s z?oT>Uq4uG_*x1jMqr)5Se!bHN_e2SoY;=#VudgqMI$jP%vGB^9)v?n19v&Y1ODPUE zQ)3B8l~wdJlDc*KHjli#{QjqF5_z@FXZw@NoQYTIjMD~E86uKp{r$yl2Qx5Mr<)ra zVmUZDEwklgEzi%-<*-bRjOec7;FyT{>}wq~-@bj@4oc6PZ&pz}D7)i-f8Tu3H!}K` z?zgWyny1dBZD3%x)zGkIcIW2Jpkjl1jpj4xC|^fL-m0Vu4*m8?jE^t-{8`~YS+w}& z`d&G#;~5kay@N%px!yPyT{ShL)$bo(PIu;fSX_#=pQyT{Uv3uaeX`h>_!BS$EW-K8 zW?`+Bxp`Sx8TV+e$_;IG^>#|1TM^y|8^wF;_w6TmyPZK(1Y^)pqV*2MoqtD+Iz>iC;s@$w;ALvD=|cAF45W+6#`1jRXwWWzqHrI@Ata=0 zds1flNypqgXOv%GoE~j|YtL&tRm3C4eyZWE{dn2)V&m5I(6BHYTmj9?rjHR^WyR`5s zSAwwHN>1(O$P;6Wn3$NA-Us;yM)l6OG26}$7p`R=q>1_PPgYo5b@A}98W7!$O31K? zDsT2VsDO+tyx2y+z5^S(KA0IiT@D#y1@Ne-smZ|hWM{DtQUcvW*gei9S!L3GsoDGT z<;(DBVSf!p#Kh9p$IGR~nD?MIRNMX3Xl~W7eTLLb8&&djA(y2HJSp@T?_;85y^F4w z6t=XraH00iyID3Fd?6wIimIye5aGhE%Nez$njasHH@FqH?_yrMG}syt@HJJ46!4Lh zudgVyoezH!zh(QpkBGoIJUYrB3xoV35P0_M0bqq1yPuc3DN%tuVK)Sxp-|t_#a`~O zPrfwzF??^^+}xZ&LV_NU!06-{6i*JFGSo-a_u41NedhN>_s7wCJ=?3_Dk>`e`5y3X zxMyP_p|G+m3S>{hrx2Re6v0D^p1m>fLND5-!h@LzuENr{h1i` z;9z4adfEdZO_GQQ=d{-!+FQ)bfIEuMpd5BXmlzI!RG|le#asW&tS22HqTlhq=fT1I zANg9lcOh0*4lx7Ib(ZJngZS+y@_M9Db#ANVa?#YGQ1CM0fvln2{B{;9F>a0VIoNnQ zb<)f7ez>r5$s;O%jQ6_cYN!8_|T$kzW?zRWH!vr@9kemU%UUwZQT?w+r--BiPMSlO=m zu9w?i*h}+jFSdK=$07B9`lV-8O|5<*hm$oq#yYFnyH%EuXpXJ*0xW>sLZAGn%?cNl7sz_PtI>$gSN30`sP1Zgw^h*n}xma#SF+v)M?N z^fuTtr`a})J*Vr}uh+S+Q+Is&G&1?(#fw*QalwqzVJNkJDIsCuo1C14FUjxT^LCh` z6430+!JQ#b~Z+P(OA#>>=z}hT%F@w&@#{C$K)z@+rBwwYhH^>OE&?LzW3dU zOrZ4Ln#CwFY|Ona)isUFSdg8D8^ZF2Fmw>z6j{BVap zxF5I2h5Y_4w->v6ei%Z1Rm>nG*$}4|=kE=8>tXX`T08!E|$Ijbd}|odp_WZ0bL26iUjf<1_$O@hQ1cg-=T5{QXQtCVj@E3poDc$$T9KKDD5Mng=G87W ziiVu~JGBY-W>Xl$_a!GXJp9W1!b178DdFPwrn)*xDAjUWT4ZKsX86Fq8KQw^a|$8G|(JU) zN3tk8OSiy`Z!kjbp(iEXv%pIhaEPg@;yndKbhtYpF*i4-ZecN(U+^dUW&EGpiGAAv z7Y6}{Yn21DfB!~844`LP{M6XqdRNv#q5cFr_Y%+!CR9bi-_G^I*D{G7Pkn z6AAzxy}$PJbAP|AfdS2!;QGuG6Dk9`nyc%4x#afubUU#}-sI69{$7F)yellp^jNVfa*+ z0Dp2Ax6lBy8gKHdJf_S)AS58@8j!e%g0hqOq|^wJL{ihz5MH}i?e-KX93hQhAOQGG zXaOgIjZa$7(;!=Vz-4Q5J12IXkiTYgP?4qPq6V{_Vb zwYYZn&!2E;wn#hxTNv|J%`vKkZQ0u1ZofkB8wl5>`}XbIifG7ao`iZOB2eK1RTFes z!f&}a_n{GTzMPqvsZ(up9hhSX?6a+(LhZ9D>QCXE4HE#(-S!0+g!`nn8E; zjRjau5KO)|j(vT1zufc_w%tq%?Y(#S(9JX&nRYzAyiB17jJNoSoFDz6U;9;0`uzFx zh}hVk3X8sBvup^zpi1s~e1C*r+G(5e^?e)pp9>{H^2m(DI26YHBFSxPM zr&|0!coS$9qPFncjR*Rj>}SG~Qwltznf6>D5bOJad>nIzcDt|X z6zNqfIgltVp8~U@oAEoKeG?al2tV+cH~IO=0h}W{Kz>&*1hfTSn_(Q=(IN~qzI+VL zkaHYGLkXvIJq>JuJZ#0*w9lp~Br75|VdGNcq&%h+*uvcO5v0)o|7d#0tR;eoBto!Ddg;xXL{?jgX{; z#?HlQ)D!__WC8Gq41n_KZB?;7vIh6{7smcaSV+>$T%3nf7*L3ax;UPBh}f!^C+gJg|MAKEC&Vk(x?_ny?-JVDw{P;F{0= zT01B*AwW54p|wDZlv7iC<*mH4z0Fg94g~}ft#0%?ehVS20?XKUn;`U32{m&Bb$9$7 z%`ITO^S~oU49TQW-r^uck1_&?ZE0ya-1>Bl$7Sj33TKSrrz;tAcgt%me^yu|ahqO3 zG%-lQiGM~j{wH^h0?ynFn!VqKked?eNh|zE=2n;P?e8C%MCd9YMzKx2tc|Rb^!S8? zd8km*z~Un%J6M0;Q~IA5>q5@BuZ=&)z{GC*^a&I4zpLPJAvd}kKl@p#%#Bd@bl0u7RehGuInoL<{QJwgu;7vA&$ z2*}dccfmzYSJ9~A_)0%9!_^+ucVk)Xg=yC<5|41MR!s?wC zu+KLy&aV~gRR@8#0Z4HBcbux(LU(jtUY;7g$H9i7TfoWQnDMHi6^NaVj*e{*@>m0N zJ)#m468~04t^#X`*J=R~wg_~45ZPoL9l1}>&WLZ^c=?w7iOuaNe-s}*>UJ3r3x`-j z#M8TaRc-nX%@(6|jvx$p`uKcmZ^vjoKQ5d;2N1QeUOR)JAW<WI@>;wO3`mLX4+4{S zek(Q|O#4JcMh;O|x#j2OJ%E;~q@+}JPAlrE_PrS?Y@oN!1Fw>IcjwnG(s>SgN)~LF zf~u-Oqd`K}&lpfr>b!QD0fI$9h-L$wWxaE!{AV-7oed_SUEqXw-8X(kLST`+d-ra< z)`31NJDbO5nDy>ZckEM0c3@^D={V}p|Iu^--=N+^y?H}IcK!Mslogo!`K3xgtQE#_G@TrZvS!_Fg-oo_FR1Xq$&m)0Vh&_0p^=PA^QCFYv;xJfduH1 zbiio&6$QaOF@yFF)aN=)-@}Iwhnjsnij116uaa}LLDNL=%uT2qKM|syZBx`l?sbn_z4z-zmBBsgE>1(3SHA^4l;=MZ3J8&6KH~tW zMgnH)UBWR;AT`nV-bJar7dKozgzW+O12T0`#A?1XQm=;`6gtpON9$dzvMnHL_(VLn zGN$)Ig5yE00l|_hEq7j2!VWy!>En`%T|8ROjzzR?{VHo>%(l@Y-R$ZBSY^dmFjbY-@yqECX=jnfiT10HEjjU!uN2!2vj$r~8iRDymp3kdL2xv#hK2!mpZ9^5n z3jjh*)BE6@%|nKC1LS>y?umKlW?XL&!>p1#3y;Lg#U-#x{W!9+@;<6T zllg4Jpw+h9SQHf%bpmhL24sm|{PMQWc@eKWhV~`61i^|5nR-S>F(6CKK~s?f$#w`f zw(xB<15OryN30ipz-hUn)bH$AaZqYJFU}778#WPky1S$j5)zW+CXTY3tRX-R0>&Fc zg9zXV#?{w!u^Zrzd4f0`WmH>LMTWR22m*x|)c#ioFvAQ0*&)Qo>-hMPogL?#j~^GH zp2}NWvl{vBJq|vo2mRN3e=QQ0(-dwA81*FtL_n3MzRQGy;xr3e{~tRNDzk=$x758` zIJg}+5Z$t7W;cPVaPiuW6M-hvesMN)F^5F&Ro3jt#zqmO2|*=7e#HGZ9rVj?kn1Bs zHBPz9N-$Joua8hF!GLp71j&F~N;~7bO8~cW=LmBafGQMwP*_Nz7O5K;M1f{S>hJHb z&He}KxFcAo90qknV6Fs$F9n+yf;g^_pFw|4;ptYe_5ngKPgJu*D=7EcwFJ*ir`Qh3 z#n(LOZWHiub!zOWE?v4rL{A?Z5^@=CL;`y(5W%m|)e*Ykxb&4OZsXnCx1kiqzQl`* zi=HRzwf$@d08O{yUgy97BE~n`hiyjs2PY?IM0B()^dA3&9)|&SbmIP(V7dBEZ z_6#mL2tJ4F<}@wn7S`W$aDg}@xRU8_IR#7Zu_<>uCq6X-*W?Zj1#JaMrkCPM6g5V=Zf;j+r z-@f$q>3Vqyv9qz60ZlbWgjevMIK;#ZcaVm&at|a<6N&RfCZFAY0bNi-DN&=)NcRDC z7sSqul_P#Z6i+u99@g%`ffYoKAo}YTwbT^PKzsZ1V#CJKq6#{3-z21hL)j_&^~<0g z9j|noor}u~ghVuSa4W=Z18>&?koY~%b?7+vViv|bLa&ZY9(w;RVMII!#9{=XZ3mT| zLqg(xnnXZ40X1*LNa2&%G;zO)*=CT*2SCjFSMxD9_eBY#FEp=V^fdH_pFq5Iz+e5( zmyuC=`w8*oYq~hNQa2$uDfw*3#Lxa|LUZ^JNr&X+2FyRCs|i&SY_kOb&s`ut6BxCE z5w{Xy3!g7tYSg?nBu_sF9IYlVh7JMoD26+C6nBIO2?-HQ1TyPN}1IPa%7^p%pWVh}?jlRjv0EDy+?YpmLs2>b4;O=b_Jy zSKCq`$QtNzWctG5V(7d3R`XEKJD}`ZY#oy_D?b3UiB8lr5P-x@Ha0wfUH65qcmDnH zkr;9Xglki1DG;COvrebuNO=XujCANHB?j$CFAp9I*c*95OhFMoX5`avt?PffEf1p^ zlt^;JvR(t$Q)Ty)1cF=^0)>Qx1V8T!nwDWoUe%$!|I|OW0Qv@x#x^}`7 z@9nJryyQ^$(lRoaq5d!@k-iG2-v#*wk+$uoo2ZcL2CeRP;$PUu<*`zF zc!)C49O8CDN?$oVIVrrDuCc#?FwpA0 zH7Ejzm?XO0Ns8DYA|0tj$fN=ySpXtMU!0$@a&mS9%q#QWvl%LzN!HTVo`>?|`S(L2 zh~wMfmg@aaD*{ifv$K%BC_p?XsBR$@B3z|$xD-$r`a;&QoX@9 z#5~2mM)wsgO1pnX02kcSz{aY8QJe}$l}acc+%XG?2@lrL4gD71`qAt^R)hnN|TbMb*SS0AcboPF1`Y z>Q542WJu`LhW?PCFV;2BVNB&J0f7a&J8B5;T$-qRmh!$!JCP(&5JVwpB+Z>wr{dj| zV226D#JLh?eA#1(>ygdWH-z2S7(+mMt^=t60REj$F1Rj1Fi#k0ciHOMa`E1sQr1mOI6-+o zb%d8*Gw{YC_3hTJoQ9XkZBR0>vtI@4cf=6CF|1nzKK`Wb7f~^wgV3@8nO2@w$c6AL5a+y|a^r@dj{um=tGBg7gBdBvFW; z$wrd=Rd#scfB&qo{=Yv`wHd)2>{>av9XYwV^8oRsAcP3$02|IA11@@#)B?|Oa+ITZe*gacfHRTl)~%2?H^(kfqFLG4IzWEKKmno{F}V3Z7b>G^qzGAJ?gRgY zqdSTU6S5G&xX_bpl1E^S;S!W}>)||N7zZqJR>?Yca&yB%{c7>M0c4luK>fd0>Db7R z%VmdRhP)L({R3bp$YbGC-MbvcGvopuE0m&)J=G}CU{HwfI@0$@i>s-Pi;Jst>COLy zTgc*gbLb$A`1v6kP*LFpouDJbM2-DRkPlUcqj{msB9@%uL8hB!b!@|yvI|+4!oXdb zx>k`(&4z`Ig0Q|Jw328X$#HtO?^1bpurU~znX$oc67)Z2EMA@8AECVe4qfEUz9#m7Pp ztDLhQ=bjt66moA|Zc;?xSP?;c!^+S*sRjYyt~z(Xx$p1AMboX>_L0Y()B}a3EiY8X zk01$5$)S~YK_`froi%}OlL0+j5T?1@CzDE|pfYZ@!tyk5+ zywS}vd43xM&CDA{6mn*E5Cl@d6s52$Yj-UDH55Wkd0^hN$gok{?<-^{3fIbI9m5&|zdV3{JO&ND~c3y#D2YoR9 z?OR63RF92c7|6t-^guMffB*%M1)`<_(D9I0!K7+toxGkXqZu!owvPL$y#tIlA4*|_%BV2ghDXW2@Bzw53F(4*z#L}^ z(rBIE2|pO<2>yk}O`SrQ#YSNj01Km_pb!WR0;WE>?Z&y0=?nz;0uK+nZ}n{!1T$11 zctIu|A-D*(_x2Wcc5xZ{s7jAuk2=@CBu1WdSg8^LFw{l|xvNv>$OxKCZp#=fW&{jD zWB^gWj3;0Qv5?yctc4g+P*#=!wJw?8 z{zYlavC?W2=!tVs9i@OQp-^32UCT4A5=Oq;vItxO;{|A6PXsa3V1t`2ufsGA$`Kha z;DbHbf)Q#H7#=$W>`+w_0FLP?Fm}Y?K&VO+5ax)NFF%3rF}ncxQR0*c6kD?EA%F={ zXnbIa>JH#UOM@N^Hl}2dTKH>P>7i^d)IH~yL`$1;m_iUh5RWTB$_et#k^E4UfU_p-Y$HqF=|x1z}smba8ZU98zPIL*v2M+i9OZT z3-#RTWf?IeLLmk;4B1A(bUE0UT`-R}RP|Jo7v>Fs-~AANlCL!nKo)6->ApLP$keU( z7K{JFeg0gAf=m`ODc{0!@{ubS{)^Y&nvN#y+Fa$Wj^4}U znx}s8iv49VBr*Usgk2zZDA?2VNkT5nh+zf_ru07=Bgbt)m``C~Ksa00pS6kVt1v!? z%;Lk`7YcjDnb!xeVOLsegu&XTsCX%7(}cjvzX3!dRd zo7t=5Y^Ygn+978zpso^+pR_mGib4^#HO&?5Q|ty7*k|eIrALZr&B)y&^enI^;(z}| zyEQmlI21=uH=I*hyVlUKWBCNjWI4YgJuXp*VN0ghJdlP2n5X|TP5I{N<+G{{sKbwEo4gkoR1tUl6 zy6P!Bw}erC55Gb^G5wLF!@K2-eZ{&o6mxdzmZq_XtcGv`ox&CA^_pi?H(^^tROabd z8@Tf(n&fu_*$x5=I6H&LF$z4ME%e$Iw?3ioB@s=)Q1G-SDBN7sV3CO$Ox9wg#3ZS; zy}=+zNI7$thRf}0&*n!5lj#^O?mYh<(uVMbu4i-O0e>H*m8qp%g0)b7jD3hu8L0DN z2nmFlHke)S0+EBqYsVZ_kXH=6Qv^ok39ntdCiX-<9R@heKEGl_rU^($Nrx&d9)cWy z{b2$}J1CVPPhWHW`yI=n<%qfEY+oO7WDwC5+z>krE||H!b?cT1sG&GGI1fN+-U4Hm z0vQ--^*^(7Rt?H{C*PqBqeR3o?$iPAivsr%WLhQ;j<2&qK$j6p>VJM@#rjqWPF!j6+n_fX#^-*-SY6k> zPi)ZMc+!$Dl|wNo;T>YS?HCFXu^pZ1#0kbt*k%gKH-dRg{$h;eM31`XegCpG$v36C zI`5!EK@!53`oLj~%}Y|mZ6yTkJ~J3LK^heZ< zT=Lm%(Ge?1r-qTl9zY>HFn_N2NBO-tElh;7AS0Df!jx0^3BWV#gd#g4*=Td4JHasN zIP+VE{m@Vjzg{hVxn}^iHvRP)OR9yjg${ecD*J4`G5>~iqtU>prvdXZT7j6%`+0s@ zgUM!k6qyf4t7poHXwcf;4_7I%u&}oF_rs(z0SzRMwg4eVwp3Kq;9(Qd{xvcE4kDo! zW}W?$#RtU6@q>+zuJMjM&lGRqe+4o}np3l5@5G^b*mV zP>lm0D1utj-m$U>78K`%5&RC=-sREa6z`Ojlp9d+kg+}ml8}A8)-^L(4eW&5hFxzk z|LSBd$XOClYAOD-Eo2GI9Shz#Rc5eh~M8pD4JE$zv(xxq5ZC#%GC>ys-43 z6MKs;Hnz&{f3MCE=R3ltC*fJb<0I3#jawAIzFo;-h$vVB{*D63vwnFF0|R5luK}!n zn-92btgK~*7=@@zSCY{X42AI=ykkbP#X+N9b+QG|Zn0vNXpQTgg_GWiCHDZ)g>;q4 z=s8o9>)4IPnt38eYL6Ws6zhMoVMEAUp0*uTP*Z^f2VNf=R_)l{JNc~R*)gRj+BU5z zFszt0q)19iij3)uH`zUYUOr29q*#c0g#Es5NUrp4fFnU${MO(7qG|E&3_>N%8!}Or zGf#1BtLahZQ|xknT#0&#Z*I0Kh)Ol`O*)*%XyN;R^&c}^@xQ7-JTz+4`c36@t!AnS zOGTgbvMCQl$E}ZxP!8>O>cf6<+`St&7#=EQ5s%kOWE3|+DHdBs4`l5!GVGc#x(~u1 zBR99&Rw~FtFc+A2VPWx(;z15G!@rc_pg76bRZ4s1)`6$Nwi%v>+fSnkmTm1KpUpfa zVy~IGVXJB?tI?p+9lY{;h6a<|oxSEgN!hCVJ@$&cw-cLNBR)D!68)ViW1OF*6o^7( zb!_8;8-8LKS!zoL#~L4g3%+4MY@0wSn^PINyoewDW~M=#Pkq z$fut_>%V-leRw#NqZ4F1U6G-n_hGM=`Lrj;qt@!S?oHH*k%--w@Or*U)!smhE8p$! z(P>e@G8Bn0i)Wgx9}J`?vLun}4kxb*1jw^ddo^ZA>r7RVzX3V4!>(v<<0(6_g?;87 zx4T)E=V}5hRIrDyvsp{xF!4?OK(bQP(z*;(4E4FMFBs-sKuZ|8`3xYiqmxrRxR=PJ zDwO{PfY5S4%|TIn4!#ihZYD6+HKO~LEm&2KD=afs$)%IQWaeh~@HH1(Sg5w7m`oiH zj=l|+k#FXUb7Kp-a+5>J>sAAOr2EDVXzhP`w$<<7V3d{$6$_LbPF|vkL}mqWDtUVF zScdCuUgU8H2o$OJv8DKwxsQlhrglns* zxw-oLJOW)`^(`W7Ln;%Q8HY13AKw0{=8sF)w{{hKGbsPzw%MSOEdIdZvpF4a2E(+= zwA@X(eaY*!OV-RJ^VvkSYv}6ji~_Hdu^(Ap?4f0HC);sE`>ZC1y%sLPn>xE^KT^j_ z9xezjGV+psk=7B&v?`3w_c|zG@-~Rc($TV3x)Uo@k9CLMbPruxziV@Ie>wp+%T?vq z-Mb1{t)mJXC@t-ze>_JT29(FucGk5wv55$onHEsjtc38CLV_)ynkk+OjTS@(T57L-|VpFmW@sfU58AR!Nch0Zste#;8I>^^{LA3tt7ku_q!oKxe z_hr)_9g>g_%p}c#~<1p zd2ry-dJpRB%)1vM(T^p%^)R#B-`_GTK2ZJU6c{+^YERdrNHofTxSh}*m4rc9u1Aa- z`>W=c5Jd)=J%Irm27dmUhL@Vz|BtExhnabg+O6CFx|4AYU&RmVyYg4$M&8O_un#BRAA{lB7qirRJ-67{qvW`TyNtx!Lb=($WD_RTydSN8(Z|8AeEri^ zn}=mNXYtB2#bZX7qc(n5)axvq#bF$p>)2K~tm%L3c7m>s1D+H>Q>yEsU>0@3^bAAd zRhIS=LgYD$iZ~Ec1FYK8jrn1nf<7fn+s-1#RbtLZ!g)`txzDn0;{VUkd zCm(&$h&4Tx{+8^!5vk7+ilRe@?hi+?HZ6U7aL#*oR$!ld?822mCthrtC9R@1a z(fc=!b(m;UhpsS*gpJlar3QT&X0ZI0ii=7D<#%)@dCLq&!z9Rl85;tDAiOvl2q3zC z{qdA+{*abD+vSI4OY^S!GNjcxzF}XoeGFZKrq!y{VZ6IegzCNMb-V|Rw{w~~X-ov@ zXB(FHBXdoP_kVOwzxkdL$N#)1dA&!{;!c$SMqD;)_bF|@r7U%|_Q|%C+OC7`m8L>) zSc*(3NkVJLgTeZjg_$NbFrY#D%7!T}IJiXsaug2;E(nJPrA`_ql#vOno4i_!)NoQ* z)7-)W>63_>jZE_(U`K8M98oD`dH@a}n!v~dOw`lls=kjwMt?!3L&o5o;5Y>6R_NKb z=Slqb$-+g)a29b3*au=-AP2KvgBcBJJ_m}vG{DGVHziQ%!L^A3*7s>_i~_hT;&)Z= z-)M-fCZ^^#&wE!NoP!<6BO9+<=~68hNS(P8VJI*-Il?ido0t_(ETa;9A$FrfjaN!j zg6%{`QNK_}ljex;f#Jn9=cPUo>&tCd$E8hsEVWBOPJ+hMvX5=?Dmau+#F0e(CN z3h_9>C`K&F4q$|^EXeFMh*~JtRq?Sk@gpiQ{D^kjNfKrdY#D0RtHc*o0HKpn>YK)BbFr)zpPiQYZMGkV~!}zOazc@h&|*CL&j*Jsuw)e=Rej(RuNOUf$8k2@@RAwz#eo z|5z(4J-`ouW`RpNa(EdOwmLohovnb~gQsw4kP>YYmEV=MTnj5{w`YUc9^yH?}e$NV8i`nwjlIfepM!vx9FbHw}8#(u5 zU3cNic2Dx`hECkEizfGo{Xp_M3nmfme6&iOnYvbPl}MsII`!L^u}RDR{mO%)d9wwF z9&Y2I>UX0y5}CP`V>4y-P`TP+4(`caY*49@BPl5_rJg)lr)bT|xeP7{0?z)$@Wmf~ zM;=|seEbLH(GD4R9=U?RKliZMl>4Wrs|%8fLTqer0bJBQ(Rs1fWX6pe+bFo%yM3t& zj?ZmQG#pTYcMY|xq_z|sg{(iim@Zh+l%wafi6p4*@4^wdU(i%ua-q4yD87buGv!XD z`jY&Oss^*Nf+>xn^3gX8Ygl)lWz{^ep6^LFp!LGXlA8;DJAUbWLR0&_#(`!z@t&P) zZGqKPxw3B~OMmWx3Chw=xm>?6Vf^q0>HN!1Q+sYS8ZT<{PjPtjd02nwWm5uKkA8*= z0R|esVQpl#0Hzq>Y>0NF<;0FCD#B*ylGV5Lu8UC7W9!AX_Nhs#v7Lu)YGF5Cn6Xl6 zzLcCDdhmgjEjT5d1Q`tlSp+|U=k{&c^(DQxfEvuaeaV(K6+++Wk`sK@ra$ez)TTqt zHyr=-L1xTPouiP65AwUH>@o62PA<+(aaO*cY2<2tTTLUSRN@z_8gJ`A3{uNwl`vY) zQBU3`Yo)1C!NU~lG1c?EB|hZ@$~Y~?oWCD@w=vE2sUoLPyHd&tVPr3kjW`8gzYZ4| zO)scEBb&MQBos>(*97?0H0^N5zCb00*}~@Mm`q0x_qOYf6O$<>UJ>Cl z+;>@0_65oF%?_Df9PAMzFE1GsMA2t6Ed(g|J1E+aTnC3nZ@sAk?>1e0e0GskvY*6Y^uiiObFI9b)#V2wnKIA&8V&{d^wk3vxzR1^X{ZiX(HR8@Z>cc`6ua*Ect@CQ+vHVM{Z0JMX z@brxw2=+&J$h6@web{aS8qd^>-xCr%SeW9ScUzhF|3TW2@HTde~qyRv+Ef?UpIC zT@#2|_Ee+D@FJ}LImFl}HQu2WqEI-+hm6p`)HM+d)B_m}2@RctdTBi*<%|6#e%E<3 zaelu4l0pC7&aM=!h`)ol#$3js>-wYF56y`hstG^kI57?88eZvLv_whiRrM5%*dpc) zOnqd)p%g@P6Fs|uTw&OOJi0Wov_nJjX8;8dm8S$;u=%olqnA?S$J2?o_4q~@}6W){8C+HeNp}| z5LeP$`9U{E+9%(=8g?q1=%mq*3;U~)Qs`FG@-wN)quv({*gZ+jT++pKhi$j#b)Q`0|6Yg11?GZMNHv9Zms)N5JkuOJiPG!r4`(k&h{mG}L>sC)CRBUl1FGWT)qmD`Kn^sD%7es!~wJPceMq3;_30}vEX-K(;G zFW<|MRH@M08OmVtYjbK8LoNqqV9EcrQ@?J`DRJPvrF`TZA;y&%OZU)nD0*b_*Ir=v zs2+)oy$r{@s(i)VV85wymc4}Kl?mpL=p$MzwF^yL^{OBv*pl(g1vl8mmjJXf>hwaB`E#TG5HnXh4f zO5z^jkoR2;8&7clu`G7CoX9!Qr1@yS<%y1^d-63+i6Go8&T`j_$L;GhTDHLi^`|4` zV{+)IHA*}I79k^J7rlR!*t2N_cY;pHH&lKIKeArSw?ET@nA!Eng};lbRnl{t`1h*i z_oU3p%`t5rd;F;b*|Y^O(~9)lgZ+wOL=pn+@yw(?awc2o=oN#Lzo6`Ksn7mB9f9(a%xn149r3DL zjThf(vn%I){VY&&Zg?2zwux+A=9e9c%}n@u+(&%M4VZ?8hm^N*^g&_j)_&ca4!_Y7 zLd$+DwjB*2H1(Hj*3Z$P;3zahe+?S4S0DJKdsiGB{j7C1-d@(>%`tu+drlt4mL!3u z=meH{wE~u@c;;b$kRVB+jjnv~;vUOlmQAV`7G|i(Bz^IP&9Sx&zjiaR;NYY|h_Q1( zsqkB*%r$s)q7+S7Kuv4d}p0;tY82H?%?-$3kkq-Uel% zF<5W5>zV22&v!e1uK5;!&ekCAd;5`nI=4suFM%*k2H}DI=TKKbU1Aj4(|&ya@yWDG znxRE{7F&gk+Hs?36bGd3=AV6~FVUm8quqsto-k8$Wh%CBAXl_4evW_OG1f<$t6O_I z@0>j#{mp5d_YV2wx9QIBm`}=&6%uqU{?bwfdK}9?wf|9Vva`v3fxkM@!zwu*^zWBc z`+C}^v#m!Ltf{>uF{sm_LG9(qEXlOvv%d}VeJDk*IpOe=mBqy3t8uz!`EMt}k5+W$ zLN)wkt{gFZogn}hI$x7Bb2N~C>@EJd>%GP=8e%{1!)o^8)O+FS4(Bw)dkczWy}tG; zjf>`Pd0o?`uEhs2SuzgBM(R{ehO}5+83hJydrfA|_Q{toN3qRscl zkYnC^L8L5Kn1Y`cyF7aPmnv`FbIKIvt^zD72F_`Kaq16qzGT>tqB(O`Xp}A;Xx}qg z?lAv)<6J@ExK89n!rqk1pRK*+p34VLs0qIPu6ISEH2rnq%;y_|zI*8jd4B&j^b)GD zHIxNyo~cH}O3l0bCDNg?%+$uFKDH!YO<*?U>%Gak5a@q*Wnm!T@g3cL!~cV=zmBSE z{lk9YMK>%uq@_baLP6;+rBk{=QjiivI;8~Z?nb2>X+%J}OS+}|y{G&4oaa4boH6`o z@8RAo=9=@K-?*;N)sXY4y#FC@<4+g|S)Nd%B0S&{-TV7nSPR7|87#9>(Y?%Py?MrN zozosdKZq>I!y1FbbyZiI&=Ab#@onnPT0d((*&6af6c0oH_26Q`FJFF$P zKkG%dDx=j?D4vb9ZE7ME1&QXb2F{;4G=^cNp;0fh&{{xB)A zJSxXb$zxQ6aava1=MM`ybXhay=@UmKv1V1qiG24nV71$gV`UFWqacy zgIKNkPk$9PseOdf%^lk&_3?gpF6y65$#)+PwO%2hx#yP)1m=);@cflWee)uz?DQNg z5b4032}Zls0U6qdlv#T`D>>>W21`ETkCGc~;lk5r6>=EC9wiKqQTcYVS-T?#A02No zzai#Kpxs977M|&vTl%v1st26ju77I_whX>J0}Z)LZ27Tws)gQ!hKi|tGfq8ctU?ZN zZmw(*)`az2S}`jmpqGPX0*y&|dG!Wb>CV6FtEz9+9>UwF&@<^eW=xCAnc^glo!7?spZPK%)WRT zO`}b6FiKi-1C9L^XB{=aa;*jaxl?e9u2gwe2pdWmeTrPmBdU%~(eSv{Hx-F1%j+4c z6dES#P^ir&Yn>2l*3$;wqaR?yqf5j0p2c<{yZ^q7Rd}$E+nhyrS>%2}T+$m47`24e z?WmwDK@cQ7gVd~loU^8o_&uZvd-8j=oGHKpNu8d^L0R3SPy z0=hQF02#>N2AmFn3sCoV0~bh2#s!XSknEi^tD+wEv&TDr9#~?qWMNg&`HQJAkX6bu z`h2528{3T-Z)s;8ndT|;XDv-kYAubqU+n%VsY!n*`pF~!C=F^!XlQ79*PP>R*O`8- z$h?W{Y8iXpt3re&y~V4+!cOk^SC<-9sxj=B#j%(wY-!^Md7WngoE_I z72P5?5?|7VL>5|(U;Vn-djYeHDY(wEDYL2qs^^YjnQMjljw;0hLppYU%=tc6W;Al? zci4F?A%!HJOsYHCt~2U3fwWCv4GPQ|en7tjEPD`8PI^cH=-@~m8$^H_G7J2RL_t?J zAjK$ErT(-ECnF01XaO*F8f2UNj>Z;`?MAd>pIVzmKxj~o%feD#=)9a6`n3(?*C*$= zUq#AnD#)bnjh-UTgS-Tef5r`zDy?26w>+o+Zux}|>31SwmtFt1n!B>@N1#eMQlF*e zob0C_yy3pzvf6ERL8}UF#4%v*oh5b%VK74V-Dn6{**a^7GzSB?xwfGNKfR>*z4M>o zk_|V|)jW{9r&UK4=*cootjNT&NNjyDK{cSxSRH7?fOQcCJRiaS=dX26|`L)SG1WD zLjJg{#5hrQyJ7Ww&2?cZF-~JdTWV(3&5my+-Nq_)ATsgl$7#CvVhighH+#(n{vIi@ z-B1s|bV$a7zhV7{^9J7B=!KnwN49QGwUtEEmt8gkgf!302Z|nej>zG(!+uUBB7VSQ ze)Ajd4|6>1*PnaD!oA(ky78X#J0Q4h%;38!L6%gvs)@7bNZqa#Z)-m>L0%o6EUb>3dFT;h z+Ck>WU)g#m7J_*qF6Y4rrW3K#=Bw0qBK{}UTHx4$cF}x?ebfd&m5Jov#yGWo&>ibB zq!5$gSi2SDJOt%c_BG!;o6Al=Po=BG?u!phLbJZg=#fR;m z!aootleABTc>2*WHIX3)3~;U%8)73y(buK-_5Wy08KUQRdfLq)XC9sgpkQvApNXjqfu@pw+c(HyteH!9%KaZ#`@jYSM?NhvSS=w9O)W zU>QhsJNY4MV@{MFI21VeBDm*y5#I3Emw2vxtW|ya0B$`j&O{O#Uy+i!%9ZIVA!p7P zP`&-Sk1U8oaYEj6i1v|oUK8}2P8j{)_0v;47te?OWi`xOn+;nuHkR8BLKQ$4|Qp#_>TM1}6^AGo1AL^!HSLy6fm1js7T zxG&7p6pn0612mxIYReBp7aHAO*+SGE9BJ}2Zd23+&mGRwMWF3qz*NetELG(qhLJ51 zKBa)E({#C?fMvGKH?Yh`Iae?~9pQ+-3y^=7xUxV`qMRv_n4x1kSX}(e1lG{fz(iuY-9!% z$13?bz!=RuJ(J3;WfMt{cAW7#!iD{y8JZxHZqi$xqbobiNWf9NawG}U?FxSQl=$KDNsSayu&S=aooBKzP!U$*F`njI^H|_+fS%_`c2c@oDw@fmMg&i z*1gKs?#*okxfjE)K*Y`egxO>{FVQ<7lns#W0xcObFt_g4Z$OG4NG$}GVLyN`E)w9i zR)DpEcic;ij&pke|#7>>TCz5N(n=W2--fhNRPV%l2?h%5oY1#-Rt z=+HkAFl0{!BI?SkRIu?~0sjyZ5g`eLI!@bTtkB>UKs02k$J*0JzCXdxfsy+LM6zBe zn;a4kMp<@cxr&+xDh1%17B_h(Fb(U2i5o_WVlA$Xs)pI@` zTvpjI(3@Jk`90)qHF))F>a$;kj1W_@i8!XX$8BjOXGT?icxf~i*FVce0Nt)I-ZIeK zI$fPuH}3&dtqk~32r$c`biiF~Nnd&niW4wG3j~goEFiyRn*Z|m3C0HPSCUC#8ccOf zm@^vh-2q8>1vAqdgRKSR16&*93BEG@54Mv!*i|)4Z_nkNGI*JYKBUYMgBFwQ+eyeK zx5+7=OaMiHE3*^>=fanu%jc?D0n(lXG2+^>8N;!buNOzj-S)q1&!-Gs=du1_rJ*|= znFyGHyc8B{8^>@|G_+L!1slHZ2^WKfeELN4{Z2|oCI|QWyAV zJCLu8(F_)rMpHIqARS6){q|!SKtG+;Ov|U&t{-TXE-u@-eve@ zSYVD+=J)Y;FdD^{&P6`i8PqcX>dowp-b{Ie$0+lsX8B_}m};IfwB^>mf&hYSs-ruk z*o~0F?5ZI{#b<$#LQNAGDn!rqEFT}}l9kmpKly9zuLS#(Z<~HrjK5pHoa(;dzD({r z9e=IIMm)cn4PMb=F}YhzrC!*kZ3WLCnK&vwe1SiT9%xSNxkEUgrgXq>cN!sp3-rsP zj?Nw0-!=YoY4{@3(cx!B?Ywe(-Fbqba^bQerGbfoHQjjT)hzlzRs8&zLH}1*2yVOI zHJLibzH8T~s*uk?l2TwXwj`i-&5N??>+o(1OHDt(FFaAzlC_f$M-=FfPZ!0-w1Fl! z(m*Ci#ssd6Vm{)cHkKF5jeKoWTgJIFAVw_2C%{R%|I!)s&6es6&3<2 zViCafa4}nW9qF`?D&{+uAD6fDxC`0Rj_1Jc&=zmQws)N+Jv@) zDTP=T&s$|I>)r5cuW?rs{~Dn=~#ncCj2U9?8-IE)_- zz{ZHbqJp()q6FjjTP%bZ1fKbrMU+z9{5mYC9;GUljOzA7;uDJheU+yFKEUP=0Rhg* z?C)4c@^W++?Jua^P^VNoFAV|VO4 z%|e?CBIKY_KXFIAQ4XsxGyRVYpIeNf5!X@Sv`>wqk_oGcop}VfNG61C;rq4g&p~B9%ZCsRRBV2csf;b)QFa&Y0?^0Sc|-~Y}nQ!oT45$|Ad#|kK)T~@R6uUs3$ ziSr*giNJ0HO?&AhGWUVWe7P!56+XTZj&e{>Q_sWLk~{h)(N409d&#}R-t0i8Y1f&C0z_Hi5)K}fk*hlHQL$dQ=loKpULf-{W25AgnW19 zijiOfm27aVkmA@U8O_J~%Wry>j=<1{Kdso4`$GJU>4^gsC=|%U`agqfzok<(7}-&8 zbZ*|h=Wt>jHj<_x{*%Hl+TqaggIk}bj6@v8zsD3V4sOBkTttomG8}&`JnduTOrkB9 z(|LcAkp*tj(o}2oga7D$DGJ;VH704z=@l>I=)5+WSQ&8wv#fI7kG(X-e`MG9H`k?U zic?X!?$Imxr+tws-3SWj1tn3Wg0I3{?Z6k!05->=3YFZ5-ul(5cCd~uenosGaQ>y% zB?OPl1aui3qo!}~C~Z-F1h-?7AwuDd(8F5vq;pIq!KlA@{|*#mOfX2~Qzh^~T8Ux# zaXUX|JHi`7FTL*Ys%yPZf83U!Y&l2(?7#Hw7s7}isNnh2*yg@-n)|TzX&OPDx64#9 ztJZRH2u0ghQkrxm z)jk4uI=89XX^0psvGpObzbS>akb*+CBZZzn28_-ps(iA#s1;1UQJ4DDt`l!(J>q6! z{$HP%xqMAd*OHOQhk<*4vA8&V>?G-~O%>-bmC_G!Y#d z+C;kAab)tkt`MHiPfIY;E^I?r^@3IZaVxzg!-t%FD*~@a4YNHixb4Xgb#!M-@jpxT z(ONO`Fk==}y$^pOWge9pr1q6Ky9bD2Do$MUp6cvdIS7oD2G-ary7Qw$)lQ4Kqs(C|w#qGYDoQN0K5FJ@QzF?xqRs@y$}Eg-P7 zB5M^a33Mk^Ml4H@7AbwlWxlGL94`wSq*5fmSQ<&A94@P^E;Up2Yp_~)3~K93`n8Q` z@oSzYQRpvb^SED{{aHS(E;wOQ?MyEqdY9f93J#c1@qdph15ke|>xsIEh=Pi_{M!nO zva@da0veCQd}8(5i*+2WGKtiwhlt?YHogk_HdR5ltN1bWrk1IxE0(lqBBH5~mAY#} zPxtG){VKRa>Mw%YM;J%%-;ilCSZ>;72oweyiF;5>h$oUpFjuUJ^^pk%Tq3{{Wy@Z^ z9^kRUCn7jVUIC8?4X!(_rpe5^2JS*e>tIcWfJkKDOpKVtihnS5@};#NyX!YUngC4TmjdOrV|c9 z`ZV#tFymN8`M4b1XkFV6ll*#)ZIQ8ngd2%Gv>q$PKe5pfbP?Nqk#?+4t2oz~P;2Z% zF8Fa!0Htn1m^nX+~E);@*0IRmoXT~j>jXn8sli;1s zRg>Oqe4OenLe-GZ+*?ZJp&~2Ej?mQfH(+|wZ2Nv>J)Syh;y!KgR}UzyC=|2k{EY|7 ziCj=B%FW;PeRSbalJ98>t|vn znVz2KbzPq_<+Gok@Sqe9&JIcG^qFS&yO&N{Hu`3il^&{EMDeWn>jy!LLvw96!6v^` zH;ev#1!H#LK9@$yCmT?xqi3Dp?Af*aV9>Gg!QksNZS)=lO103(5}I=QSdrCIe$ntM z6iPJEc@`2gRx8wHWTr3-fj2rg%S@g5BwTf3kQ?>1L2bdA9xUmk3_{|(ctIV9ljxR+RS_|{Dt3?F?2-s51oc3ck#;Et|598cg? zkn~F=TMrB=!q^HHoPkyHc z3mW3m41p1~|D5VD@cpAU(8QZ~U;zCixaSFggA|yCOMkz9+qASia0ymc?)A@#U#}nb zn%jdRNO&1jcPCdy^g?v?%P&5h50+}d=zdmFk!Z7AfRNC3!jX7wq`FB?2_*}8xU{9f zY^NwIlP4$y_h=$4SBJ`vg{hPD$1I95a5}Z$Hfacg(*^8Mp>xh+yEL!V3|q=vzN}__ zL~&N!B1di~g*RWra16NPB7#Dzt|Ed;#MFUtt9hdrbR_q`sJ_cKe<0j4{Llp7sG&QcrZ_-Pk$51 z^r?2e=i4xaU{xD$)4&QaWL{X!qO|W=H_gs zYX$cKe28L}C*ZZF@*{>{NOnxly;e-10F#vdLQ}D^J9lYlRvRy<7lG@v(Crg;TL-sY45%i7p1K&|#=+4m-q_tD z-Ib{=EGyirsDXh{#Xk*floN`Z+2s#kL3Ig^Lyp@gxO{$Cez8ZP1uR}{BoeN&D50LK zMclo>GiXUqk|@LSh3T<9U&X-U4mgsQgeIv5BteG^dVlnl^*u12{LN7s;0-CxAet9s zS4bjENch0iH*ifOxP!FWp@;S{(N zkxc?k`q7$_Qgjhzr#xtHv$ev~e#qPqu@zLI$2}?JFzcSlWP_JvWPLq47z*>>(ykGq zk}uru%;b#tLm5oEs=mc{cX>{-|AIwovG7WFvb>mx&?NCHJ@C5m!A}`07QV3cW_R8L z)UOkG7}xT5J3~N?7cs1M}vZJU`v2eCI+Z{Re;{obhTYF{u+97cTi{X z1z4zRO{!a!>yN%>&Z}qoMd3(U`R29PiQUNXl2d*u^r0u1Fw-7t{sMZ4_j;nc1~gQKO2ZT&hGay)5w%d*po|su63^Sz1kPnwmLZV% zjbCMxvdVc|I`I!@IVk*?^6o478cfvXQ^?rB10`EkSd(mvT*BTJP=7GpNsSLfTHhOf z^j%~>oaji=bq|S`s24H{`Q`xh2L?V=W_2@AxNUoj zLkwJC-lK-hV_@^M60c>@?u&rrc(SPie6`zDhPt|8zkkc@v_;nEKqdGY4u-fmk%Yj- zMJt%uaXRC#>2G%iL~|FMEdnG`*STs}Pg zpZcVdo)u{zw%kVQXC!#ofkL&HokOirf8f~>OVf>z>%3dw|H|x`Ybz?zB6Yt}{hwv+ zz#Ct9cK~HDLC{_hhg0QsZhvyHXn1e|C`iyv!_UeN_FsI3tOjb;P_;m-D&;$dyxwp) z@^HtiUfXPs+p;X9jB8AQoV|c9#?+R*kS;e&WxgRrZ9SP|Kd;3y$meNuHX;{GLzZA( zCpd4B=L6#v`Bdmlhvm&Gyk0HndP3Wq3gJ903r30friYT__+(`0FbF^Z2xVil2Y{#z zY^?GvFTt#D8PKl)9S$9{0~o=U%4!!>@AUyV!&StOHe@@up*i2?A$a);DOSm1c(c5E z01pLQKyAiYt(Q;9Li1=!$Je9_LqGrOn{(DIP>!YF4cMk0A67f`w12tsG14}+jXqN>5HZXM)D3=6anNzQx32$U-r?*1}W3XKZvuwZXw6wHkfOS~=O$aT>T)mXW zH9;-onP@YQucuWw@W%jubAqFdDZ5N?4&6hMczC@Oq=#jhDMo~i-0o|sA>zpSy{Wv{<;8oWV4$*MYI+QkBLLWnXB3EaV% z4f(zR8ld&?{JbZT+jOi)2*9oWXAyJS`px(rxb)pY9u#!KL7?r5<}(Tawg4DG!^mnn z^p1ov%`g4iC&|TwpuIie>Y?xYz_I~Ukf*yi?NRe29}SE&aYWQ^L&hglfAuME=EB$`uN)@Xba>}qC2zqL0Tb}J}1!!}ykLGJqdGT9T9?e+@VUjVFA0)&16KN=K( z78%(E2wF(MpM1&<5D4JUKQbf~7XU`--N3&LG1dOzXZdVNbPzDI6I4_5*{qws;e3AA zp=jepX8*S18f)$4>PSSPww@rf#3>)&sg%+|QzI4 z#li0gF^R1_8kOEbj}%FW0w{ff<}IVO>Roa9XG*^KnFSdw#_BvyTQx(8DN>Eg{b@le zEhXRX=iV%P$i{?<)v{X+xHcWk^c6~X3qjkq#R>&N7eB&v_5wIUBxdmU_-+|9@(vmHHEwcPyGUd}Xkqd?zxdP_F) z$``CukKbX9J|ChEs1(?|vv)x&2a5-z?U_;3imc0<$m%!&0ebNBj9(h&TsPA1WZM<) z?XjKg4^DkX1PVFOUnQwqDrC1#O8@%|SQz3RY$2|qNI4qDzist4%nDnQsXl+kZQ^%X zc;CbE`HQOJ+)N{!A7zlQCMY}H#`(-s*yQ0h`I`dpQ=`ZIX(MRQ9tg(7po!plb7xOG zyoEJ9J(l?$|N1IT$2a=01WQvd%MG|ACnr<+bu9<^8}*g_z;3~2h(Il;buu?(ej>l- z6`MLSc*aYNN|BPOY4UKJ9jrIh2`%jNTK3<4;bOk$^ zDU+Vjjv(~;=q3=#{>j2AeXWt`2h&l;ZjVI9`O#BenQIMT=TzZNst>$W6+fU@^my>& zbCR5b1^1q{h0a@1o)f1`to!m#=`q4L1sz}e1x<|^(G`aGY_ZF1zdW(dLFO_)EuvUF z*Cx!OwP_I7-TWaWqf%-)o!r8WQgI$yNC>WVV?nrbS|Af+K(tdd(QR|S$s5Y2HHKEd zg`8xHJw?!r-k&?Zz^AhMjV!Gnm>rQUXBXOFVXGMV&fE$W=#|o~%%lfx9g>Ok9{St_ z(L36de_O4c%ttpeQIX>mN)TBvpfAM0v4Wk@$Dm#}m;jZA?m>-xn#*io`b?H!rtpmC zSVGO84-x=aaXL|r)OPK!OWRtAy|_Ozw8bi|e=&%0%J;(g(~s{Ly)tnvlw2)(&kVLn zaADeSc?lPH8|b%$tLr%-5wQp7tI7<+C*@S->m=D~i8Nq}9`iq8a&x}6q>WeG)CHsY z`?#5xFRHx}gR>(LpZ$NzQzWAd0WugwF_l-B0UQaS&SXU@=r-af)A5?8C1#P!!epmD zoA8Dk0}aE7_PmG>9o7^$44x%BRZI*;BtPM?-sZ?}E)^nrOa2mQpRI6wly!}Vb&F?T zy4t0oi)mxtKM;(IXRf=?u_IM%u~6FeDvhKov1T-toxAI0`$1NDA_^fOo^DZBH{WBP zyz9!e(t16_t{G}sNMBitegc_83!@%PHPF4Eqh!=qW1;6Wq8VU~h+I|e_HbjamplK{ zvjj}!d>vNGqm^D_?x2)7*_|eQ+;oTtQBoj;IWRN!0CUIEHrq`mKof=o#tJCc3u~v3 zOD$a?BVZWAI4qOBvoqFpk&{CTcw7grxV=ro7OF2#DVEfcB8hT28p_#t=jDeiHcBj2 z0--_keWRe@N%5~Zv;F2>M)asG1Wx|!bc5zWonzz2JCf+xOe)%%*44J-oh>~xi7VUo zxZ)%AwhzIosrc`2;Tt`SrMXDNGSixjM(f{vu2Qkh90gqbpRjzMJBvEcP!Yw){}}H> z0Dn9A{bI5iZ=p2+?4*J%H1&rYr}yXcZZKaui698@4(v=lfDs@$1SRpM0~l~In?;#a zZ*c)@CoKLNJtH&Kkg}}t&SWO&TlTp!;>ybt=|YTewKvTf`tPQee0A0HDVRD*mS$B; zw-%1qf**-YG`#+S3SSb??oo+?qGN`5FT}_|aW1d^oe@q5L+o`xL+=71B ze7cj_&+;kK1{Y5^eA2%5AA9ddfU}9)REh0#=|pW7D}KI`n409Y8e4&=gO-0gs%wu2 zZt)ez6z6=J9=1|WdxR1z-&gNqq(+he0EvM(eDtm z`v9!vAxI$|AlOAQpKy=0Ydi@emLu0raM9p=((QuXHDj9OnHJv~Oo(eG>GX|hT*zx6 zJggB`=eze1k3vTn=4O%kg{zxjFk ze)ol&TIDBk*Kc{|KclRkv%F&>(W8sG;pLUUhu-l1ZbRzr23d@A z4(xF!zjS5BgO1zzrR_hNYkR7Ckhk)V`larEE^7Wpz6r1=IUU1&+iaOH*^fR{b(U`U=X2>ZY%fOi=$z_vQ_~Y z22u`Jl}v!tWLY1?r$GK_PBq~xrfVSVCGMv9J#d!uAGs@mF|R}@bk|rQaM%qY!$OXw zz{IKk^mS99_E!-qFp_qC6dCd89Va@l#KBg5E{2Y*yDyvl=ZoBm zZ+>_J9cSl+pa%$Z#^s zTT3axi~_DDi~80?Q_jKvSQY*x4lPuD z5h9l!bRQkbl}dikDuU7xpJarAUAp1KqJ*C>jeW8wzfN3hP5$mhH=Y!Zea|og1*O@w zdYzZIv*a`&m_a~PC`YCf!$~XT{~{*Lll1pz5D!*4KUitRL$zDV(o%%5dzIcZGr?|6 zfgU=+Cposf0Slo2*cuTz zK+nYh{sSx&w^7YJ6ZXjoQQe`}ti?RvF~dUO3ILCk;3yX*fTm9O^A0P*8vd2urN1 zzVGn#3HC`6FewpEuds332<;HLvt*v(7A%hHx(j_(L)UyzRrpBAk=Q@`fqePndrB=z z#h$OX#V}D-3sSpk3$Z@m>DJqlT7A?#tJ37eZYLmA*pFtlKaH+(L=)*c7nnwYvznq?Y)?IsVRj-mdJFIBcL1c@`I6@a3Kn%t3*kv$NK|uzJ7P z_2J_;&lovSUG+~dC_fy#g%!ARof+GeeaA9+lsLMYGd5{1?QF#b(^GS<D;`84t zBK{tIIF1}~nj~&p99U^_J^kF|fPygT4>EZ0!R#DmvTky$%I{wIg$E}d@bo=Ne)Myg zLesY81E15NxrXti9~=g-I^p0ZqjU0??$Szb2&A>Ic3RM`yv!yFdYLsz1Q$UR;8^eA!O!xEE?<*etkGu{t#bzS9 z7VDna;g+O)n0xySUl=~+QvP_zZu#MQ@*F)P3~EMxQkiUG)Qm*#_}>_V#+S9SVnd z`IP*sXQJ92m&%gE^3hYq*b%YLw+m#r#y%(17`jB`!LBLT!3u17r(DFk^m&Z!@Y*%q zg!}z7Ts~*$5}x}F1I{Ag1b2gr192xI5)RO^{uW%1e7evENPRFEpjkngQo_K-578_@ z@R8L*lK^nh7w245Q%HOilsBg*I)M?PgCzEL5?mc9Rw<0s&?f(QGKgEoAS2`ixi`a{| zc_Zmdm(>$)qGmb%KSp70%+IORn*fsy>@a%<&rjtk-|ZR3zBC5r0H?`zeagN`%TJOL zh1j#zDjBRuWopB>T(!4mc+Jkctax-$pF`(pVt+GwQ0QFUaifBD?2aS_Io&ghpKg(G zh`I|v&ETQ*6th8JKD^Zk1Y%RLPj_Yu`Vapi>2UqOmBU}}%P5$sHSKr$=p-X@9yD^a zH|b-Gwl)xFWhZZzNW9)sUD!euRSmBZ#b*mPf#~3^aec>(*`r| z2Ic(m2H4*x@H~YjQhSe4Dte3TP>jjwMa>K+fEOO(?otOx9goq z+XY9GKzUF@2!_#o)5iu9HN96oEaY4#%QDfN!pfZ%iD0#PI*Ta!dK3ojn}O&n`Z^OC zyyxsjZUcY6NnHJF(=YI!$N{Z8Q84E3T-m+Nn(Ft{5{Ia7o5(6@LO<_RAhBd<&e z;)#1j>beU9!G7a`2t(1|cI&gPGovhofNPQY7Jat$?=(Zdo%WnAwuKsje#6j z(naEpP)SDk1ljuc#agf5@RbdVryl68+(fB|oz*Ymy44gGM5r141?>`rn*1jK5!%@G z=b(_Kl1tBHiSoGhItm*TMVQu;Ai$|J9US3^3lt~(@bq;x7jo^oP$0pqo*)v_SP~eU zNue>_t^Uxp7QNto0ErPtTyyI@w$`7l!d}b^%PL?eix*a4Jvo+F6fDSJPoNJ;j%bXV zD_k>h8;lWD7YfKB{d+i)628R7+6b{_2aH| zmRFk#$g`^U$-G;(a@W&p)Z%oVOy){XCf{>!JC_#QL2v1afN%Q%8eBXa6QiIAxg=w) z8H?_==))dVCjXHLTZfej+ZZg!D|BVT8$$QWxRLT_ldwW}!E6J<>0jaOGrBP`T)SEHl$RD*XHnQ~Kmp8kTzkyV ziic($lk+pO+?s{>W1cO>n~xDl3Hu+u%g#=5l-45<@S^2^o4(w3jbAUXxVExl|D3?? z#CuD9ccZ1J$d=@2Cdi6E*-5gp0Y=1SC{&A_b4)|3g+c)qsgWp+bj6>5EoK=C5CT+o zli$MG+c94Q+5vw?L70v2ZQ=|M*k(bVNUK~Kg;|Gd4<|et%gdukHo%OmNKEc?aeUO>4Om|=QaE#F))AhOVI?$3u968S(N!_zaW&u z+t{75>l&%+quyN>9N&C&9!BvJzS#pHK-~7KpOW%Q>Ik3jM9HdNZ2h(DvpJeA3|S9( ztJRfibyLE-{0;%+(C;3nu+zxd`H7#OA4fBeG4m#7NWlzhs4l9~naJEk4@Vg6fApCAYmWK{vq(!dPs2iA~} zO&Wx>%Ldy`#HN6+y#0P1giEyhp_& z>vGKk{ky>=S~Zm?dx7_0Z@&x*R-Q}22CKYiUyO;zFPW@s`eOxm=r^9ZzLaFe8bZk_ zK!7w?$GoVN`d?J%+t^`kPEX=Rzh<@+d?WJPfK-y{AtP>ipDBbi3xy2!rX{(m95incJDCrue#iLQ19MK7byY zcLY$W+W9;&INGhZ7ghXVp4D)>%cmSwq|JdoI;ue>>F!>4)#?Ea900)h*)!$c8xW^H7b`d!S6ZaG zKIaCPq{~8pTutZoeCnUN7(>6y=QL$F5s`;KvP#ZRW;&kR^CseK4f)siwfJG50ARpyg@c4~vN<#|*EQJUb2kxXn?Q zj$IrIqDLPkq?huyo1d50|pj2*7M<_cBcTSy&*+Psi*4v)^%+i%79pR6+#Prm=s)w!JAY%TkrR5W$) zmrS;3ed$p|j{kd@Y}AE~y_vQ+#pUHCWWG%I+%DRFgh>|z7Sw&&-Kny@PjIXMKAfW* z%6ONx@GLEl%Y7lCPv16PYM87+%u* zb&mZnTh#GdTVU%3E17R%7<*WsxObkdKGOM$3{o3KfdN#v<_!i|vzFb0ndL;CQe@Wu zQ}crao#Oo!bync8>^p}50E3`#lc2$p^eqS% z^voX)K7?%aL%kAcR8>~2pxEWqf-gJ)@Jp7dmnMn2meeg0L@DDwz|Yq7yfE<3PACLw z0MoX_uUDTn=7N8gRd55@2rvj}Qegv0%lEMGC;``XSZA$u$R6v=h?_YK_t$2Q#t`^6 zz(8r@o337?&@O`B*$4oiTrBzHRe~U1C}0Wfi*;?+s3<9iD~%;e7QP7H1jlMN}VqKJgK^63_Y(3-UJl~m+rXEDy!AMcX_T++; z$aVP$b$Z%tRw|{OcIE(d$%nNJlBEDO59B#4`LJ)j%tkc=cN(2mH8gH=tw3L-=;KR- zs`(u9|5fvhQf^K)(K|+pA+CY6cn2Mswn?G5XZ)Uz&@z>xNzd*Zrv3;XLoG#>wAJJk z+BctTt%EDD2<2&3MFe-KiSl=L>d%^1I#SoQHbz_;A@KDVrmR!+h-41`$~rknF;@cqZ=Jg%`^llhfoh9 zMeyfFr4Rx;D?slvvHo?}@3Qeb>_GYPm_@}4{x%*`Tqn>b1MG#JU-S41my8MrS-lG3 ze6_~SqVI`W%?k~IXIS+k6mJDqa`g7@U8}lW7o4w9Yf@Y290}u!=`iSOm)xGF#Zxv9 zB@ZQ9DsI4EkW-n(@xj)mhsHZeTv2`V(8}orJ0I*lxDG>omyIxVg^YqiP6>_PODcH- zSgp#}pw(5x1q;JI{N1?)Y#rAc#qcS!Bjs>;mHck0P%`Tj^Vs@gvbHbLAcmGWMLz2G z$m^9SfZLq$rZw~Q&Pmz(6-$yGla%cf)d^JFb<0wAR)(M8paH>s{kmW1cVYS}Fwp@G zrM^sRGmrB@pbYf4@Xq>Yy$PpVg*`1O#&9+(wsPNHrXU8EEz<5>nHC;Kc<8!}23Th~ zp9t%XyY0nrG%XY)DG9!#i|ImeZ_+@z@wiJEIkvluAcsr^@EXbfbMcB^n2W=9g{3QTN;GL$zP^r5C~Q;xEU6J<4NJZ$;AMu|Z$&9FIKC-WH;xzEIb#nrjv^3NKc=Dk!7YJA8w}hn-A*?Dr8<>r3n}jFekm{_kNvxDqub;GrQm_J;biEVt|1P# zxQ~henR;9`@an^!v4ov=9X6-#IKKP*15MP}Uih~X)`jj~U41>oVSfBFoUbyOwiHBq zxh;AJ14rIN9v(tKkk-Af0F_#q9zGx3lq!{=t>)X)7&uKHX{3rgx{rcn*1nNF)|kLG z@0>J_@qnN$J>!S8timeQ84ku-cixubLI;(kJqz(bf=Mi)jUw-q9EsKE7w=vr4{mdi zyeN$2e)BxVUu@(fufHJ*5h>{^pgsNoe9V}%v`8RMJZ%BaTYxYuq)?Daln4D2*eOAZ zeb0}~0SPq24iQ|W^K#Nz!t+zHq!I^)=H^gN4KAS9BO@bE{mfR618AD;CRGfXdhD0D zPau9%%(ZBVzJMe8v0HGQ|7~86X+#!~@qi2$F_3ElB2g_)c|T|p27o;aHxyR#bip0z z{`|vz@IlKpE|@NML3!d&7vGQS*3#LqK&_uJZNE|WF!Y>xNYfAz#oJaen*Gn3WG!%7 zY{F>_mInXQAd1*)^8RcNKG`u|6+Aw?+`%@Mqm2cJ^?G<|>qs`{_Vc>}!o&jO>F@6z z37dxQ0EAWUfE#u5tY-PQeA{Sk3ev%9f@;niZzU)h_L=t;ZxAk381SeXfq~}~2v>(9 z5kOLohT9Q34?d>3Vag;b!MJ~U{AH0;pQhIapqI9jLFLtJ{hjXI!0@)k_EgGg4@M)S zr8c_WNfd+qU*jq-N|v^_F+qM8#2E#lYK~4LW!2`|oO_aSOiGpZ^MX*40%eaF5Sy(& z<1lQY1d;Op+VjZSF)|wkGJD&sEoUoq;iiL?TkCDU2dZ(fx0HvAJt?clB9D`Z(grlM z+C18!UEE}#TkY=13)ufiUVX-SgJRtXixD*%uS|be`pNLQ3f7)<@NRH_fb5f_niVXbeQP zDFbaD$hKRV;nVN|zE?|n5XA@ht>3nVO5z&$7p(7UE<(wYjp*Kl@-5c?KhXQR?dJlIK7b( z*7UrR5xm0v0W`W=w{i%8F|xL9+sTx*H9xj+QkX1M@<)rzSyax`v`!6FsX<1+%aaOKN+_8YQGy1oan2FfD5Y<2 z5VdUcrKscLvHk)2a ze?amxu%7vysHKp}=O?KlaX_h(HpS4t2_;hjcl1MkeiG;i0Q-A8rw1LEa8tUGD~HkE124ygk*q@M(4)47)fI#U zGFlc?1S8R%AhP>WjOM)tli;N3hGhSk@(W;%%_C0GXDMC_jd;=2a`w5aqfoyPPufL! z@Y73uFV#wZaQ?|Qdl=f9eDvSe2by3@N1W)fkmBwMP2GngS=@j=-sR&3Ha(j^vcmud z7ie%LK?c!qi?6Y&9MnFO-$vfZq-TU10*Lge#-201n)~s2xmW%{4CjtuI_?PcK zE6eBDfM7IONYP07;%!H6ZOq8S;1eJ|4=^>_gz6?thNIk{Wa$t+;Y8$P;9ss~I+Gl3 zD#t7xSHQTxb>JM-IzP@y7e8H14)0F!euL^3xRbf*C~8*e8R>`mO}gKW4eE=AFBw^r zlxW$aVuo+&>q|iY?qj;PI=PCGJrv2Qn;%h#vn3tJZ$*PV@D8N}DM2d$JZ`TuH#{2g z8mJ*4U#|u;{YSP1pH@D&{Y0YQ!GhQrA~!5Xa!ACF=h62e+Iy`p^?h~qn^&X?AtM-c zJL1i}CO-)w*R4e>?rsiBc8~ycR#|tkg|fs4W8@fn$=FNrt~H_tetung*#DhZBw|N6B`fm$eDoSC7YpJrFYH2> zeiFZ<{h;-}{PU~ZixAQaHsrUSr;1;PS2&o0?;4`1M3Tm#nB9Q)6B{2N6Lki$+KA#E z(u$GzzH+OvCYS_ubaX&+*YQSfVUf#kEih$4=0Q%Y-4C6e%TDwl`>73bLK__@ub`t3 z)O&j)_TXCE7Xt$WZZNxafW(Ak(bq%}umkc_Od}(s@bGXS_{;BrT?nF4Z4afoy4gb3 zJYD6)^J+uofDDRA~3M6+Fj^RP>eYNATa{FFQ#W^XJr^`8S? zVKn9Shx$1>&a6gdbGkS3B z?J~U&nM{aK8$zso5odK!9!o-zMvat|Bk|^78;*VLS`!iy3z>9xz@vR(A!nxv3~WC` za(XZi66u4axq~THNNW&jZkN+i+x6~5K3wQy8{X{HzGsw;Me5T-;3AP2`2Qkj0l@fu zOL4#U^5si=mr;e65KrR^vEQ)%pitX0G(-$sB1A)ZhYG=j-Qs{{E_N>b#--T_&E+*TBmRopdm=|8zq+Y`0)W2 z*kEfZI{C*#Jn}SCIt+GMG1^;KM4(4v4)vc!m&YyUOOVhxsOi2wWb-@xPtZ{&o#Hc2 zDdHP%1ajTOE7YxLqzg4mF%dl-63Vu|Zh-{DLza?)A{$OXuP>~w zz9SGnMuAoTm9%^Q5L8Zsh$-acf@fb5Pzw6MrJaWt2F|4z_ftT{NG>}>$2EL$DKVYI z$<@S$@atD{iT82f$PVvNS%REf3@m6{irqyqiHSV=pxM^Kt|+wzEdsR#48;JQ zA~9BHJKmSg%NT@2zf0v*pWn7`*1`@>qrs&PSkd=+e5{1Fdf`%bYZ@BXI&Hjt*hEF z#?F~0;Y~E5+9<-C7%C5TvT!2qQ1Q{y@zD7bJx%}e;Lq8`csF;o2(L)BNRsuxI(@F4 zpIgyuuU%YL|B23lHW0yBel|6#N}P4Y#fq1s0{FRqAzAT}pL6VPtR(M44M;u&*EK&b zg>OTK5Y2&zTh-#|wt_RGOl5Urho?Hx(d?N7=Y% zx>pSnhyAYK<~M-t4>#CHX(Ve#P9%`TbWj^xGv?;!2SBzk>||lc(h$(lxGgkYMZDPH zIBZ2CCBbIvGq7=B?f*zu_fsQ}QE_&eeD8!3I~k-}uv)`kM=I`g^M3Ad{Qt^OqBR#R zw@FIAg-e*|%k53`r47qUZ#Y@ncI8(C4N3ek7e)2z^(Ujm=yKO0k3Qlzv`^vs$2Ve~ zJkhk4A9mnoAu2q06v{R0Rr#ffftV@nI|DhX%v#XkMXk&_bK`gQjW>~#UsZH;ty;$7 zeh4rfh7w*>#F|!p%VWJ~XSdIHx0%QF@f~M*-TisNZmN_IO@DIN`wRF6rM1?ierjJi zuMzck`ulXIzUSYkYI-VRXCFxVfezUG4|(lh?6>wVc?nY!AD@3~22sW?q#w+~+ks?F zN=d!DIH9I4$&i(Upi@O{?Vys9d+?_eXJGV=heD*N8=ISZ;CY^*kShKmFt8CKC4LWn zgM=XX#{jYvnkpc6*Z_VQk}2zT3tn<0YGNat!vC8m}J3EKRx7%Yb$8JI&@?Moi7IQYpmZxGy6zjkScr%_(mlJWTdp?&^+ zDatv)_9UE0QZl>>?b3X}l>mU8jjXi!(({`Lqc zDl7X*Kst;|)z@+hChS!A4Hi@bB zM&ZlH8SN;|(OFxz(K`p{b~iaJcbnJ+Jh9vM2dm?Hdxb5OWcQL1zNarMg#>Q0%ILGuAn|euf;xr}uZiNt|~qJ2`Y@#>bQ0Bq8Bb9|CA||8vznjrXuQ#>#pPvX7Av zc;pFuvt5M+fDa2LdbZnq45v5ZH;=@>z_$(Cs^YgE_c2fPyai~}V&(@QnQ^@6>wB|q zOV?2+jzkce$_f@+)L{J1e8mG?g>9Q%_BjBpqxgwvic$3K2N`%8t#!xRZ6)< ztm%CTea~1i^`CW8nq$^$Q_Y$2pI-gkSo#;N?lWuT{H2U&$6A>4=6VW0GrlsGmR?Z* zBzx%Vt1FQclC2r<(ZhuX&i*Zzyw-Z=WPUBGdUi4)o2*{2&zdDji2esFlR27CU@iUb z_IYidWs;cj#&VsvaY+i94_u~+^M8H$wFF70BCaZ1|AOnh&VM{KbZ3N+t^ieA^MF}b zj0I7P2-7k~Xfhul8c7b{k&%(Cf&!_hPq6{ZVYZRM$eW?h>HOps#7=g$ZOlNXH3Y#( z0?GoWMpKgB?gJAlh`#`jf#?$n}yRhiNJiyYOj)W$?etJe^pyy-Vs}>te?GTz%MwCr!aR zZDU-HgK1~fB((gh(B^Pm#EI?w*Om|92c8!QqNY7V|%WgekjyT&2aK2wI@ zUVg+|bt%-_@813R$guGr8*^?B&(zN9MeocF1qB87wHsij=iBgLDAH8)_hdP7OQ;aq z>aSnf@s$DJNB79ymj;%G{DCddBx~i{m}8KC`~KE?;;pZDr?F(2#vPj!a~S+6zD`pF zOgyT_etBHZ-ft6F{b{&7lWDO-(KnKhJSk{37(JZ0^;y7jNPX!SZ0}Ypjg5r8!?RS!3*&$91C+k0~9cEO(NI&dtX$nx@-U67g{7f_=p7!N2cja!#IWkN-B2 zHN$v5JU;$IQ4x1AjRbW-K<9yYz7Ue*ZchU_bsE81Y>8T3c>2xq);(@}DFw`|_3whz zH@U4=9!6RH=E^Aw8j%jE{#50qX`E?|AJ?`j*(;nmYH4~#WsmAtaT=sJYF{n*_JvDg z!7ukf;N}j!)9*+piA)ThZF%r;MD(SQN}T~n3DPP#A))ylc*V8Sj<${(BMx#$jf@xz z5%khXst}_0laY~eJDf1T0ZXv|c>Jl$iLGU)xk8@YymZx64OuRy<l58DAYKOmj8Hx0Y{rsAtNB8fN^hGKOY?{h z*Fc+n4BDPRz&XK`LPV%tn9Zg`b`>JiG!7H{+Q9>O&;Lz&0kPzNKYXywuD8ziLO1Co}Y>ZNXVe&cH=6i^gt9BsNsyt?DJ$8tl%DNSXZ zpOcZ&(`eavuTD*4%X#CF7XeqkQrT5`nEGPxUKvjh9B?=GkM zy3pY=Z>dQ(s%_~mHc}+!rbLqQjp}E*1pGUl2NVYnWh_yPAfb70GS6u*BDo+|5cNg6 z58+Sz3n!VGC+3FGq+hRa1qulMr-7~bA3ubLM@DeG)z#ItXUvdw^1T5$LQdTuH!siD zB#?#?V7K3rAhJRK6f(Vd`$YZVzs^^!r8Li7917IHT}jj_h0{sIWvc-?*~s{< z$@uMN*;%&pgx-Zq^>XQu=HW?UBOL) zmuy;^-rADgM1LMjOD`d5>5ypj0qz8qnEU<%U0o{3Bj>T36-8_ef$&1oU4>n@gQ3)@ z4Q<}W?FQ?>MjaVL+0c%kKN~g+>ut5^5vz=E4|yLR!_owjZ3a=S---3@*X z5^Q$1sejpoP9U0=K+Dd_DfQ@)pUm~}tSn~hsS5d0W0V$8`Bf{XQX|>;NGl83=g}dB zHbJ<#D&5JIm2UKYzEkXBpIdMLFcM`jsBJB+BAz7dL2q|BUjH0s51MbkjGvI=^|roV z0``SM0SnI~?*sIV_lf;Idh%c%<>xvMfb9k`G3cA9xu!)_<%k=r<$HV&&CwL=OOZOxRV#~LB7&X(jurW`O0K-t z6jQnBPf*%Fr>8$G@hK6TdkvS~CpDD@P`bYjfXQZ9-**7l1WT9T@87?_KxyeSsPa;SZs1C@6M4>1}-3Y*m}`JY zGdubOJtYMN#qOk4;Y7V5E5c_%pl?Y1<@pYh$F?iSH2gV%RtFXpw`-5|Ow7$cgEO*0 z@WSpwGlCfFPPau+4T!%qyGGH2Tv-63S3qw7Hl5s3Ary?(5^(ZaH`MdBqfSVa^Lg8D z3=-QKQ;#-kvAF|6$RKvd3sriII9MfVU0xBWJ3B zegLrVe=FedSnmx;)1E9o_*zetTnz~c880;_K$8FD3qK_!1STd@Acq*J zl7R3QD|$J^gl@G0)x#dhrJzvQ8L!>j-6c#>f0khncg<}jMt!&Kw%vX8q3#l!DSm`| zgk1+6S%KD<3-MJ?opH1B@>(FrD|F85^g3lb9S_fqF!7Tt-OW?6qiH9NdM`1=I(dHH z;OwaWvK1^yLa0PskOdQz4{(8ZBqV4ci&@DtSSTkq7YMDpOTHNb|k0)93p1NLwys>UUnW>Ihkj;}!QCDM{ijY5I;l?>HiC_zKe~ zm1DPgCQ=SsP|ytu$lj*(U3HU+i-}o)4zmHsPUO-sFfuN{R)KBopC@pIvI+~O;c<}{ zuXaCRMa4(ED+x>CxX<12|N8=lCCwv+ZToQ#U<>hGbgU4TR9 z9i06jFF>J?5dy->!k2K~nWYL7{qv#!JHq_I65KAZ0MKfj9R3c1mL^^dzkkygJ`B=Q zAU6nxS==uN86flz^r%LFDIu=8ZNAZu$EXE+p%P(SVPp%#DX5{64JT6>0&MJl(WFG7)xOj)SfKc9HC6yG zWCQdxdvJHju&dz@jiFz>MfGT$W;S0QXLfz3U=%-F%cHm7&iv&!AqLrCyq%BG;5Mx} zZYM1Mru4aM8`eBrCRiO7lw0*%_#Wuc0DRa6>1cl&>Ue&*YIi zLJ;@`0m}YxOA{GsLg^+GabX9E)SfrYevwuX2n+NF^(fcN^CM%}>2!mYoQ1Wu_lOVt zf79WzviquIFQ4BpC#+zQ4y9~_sYCz&tWJ_V)HF3;-Z_pA<-y92pL`d+^5hy2Ske_P zf=1WHoA}*=)*=R9U*-Vx-!uW$-xB&bu$OP?aM+^12%IHNzZX+Er*!>8U*-YK? znY{zaVd|6;UX-6iT%~~ZwXHvQLAqf0-83izxE2V%4Tawya1Q{3%SPlT0X0big%q`4 zrOK&S^C6T7tft9kI%nwQoK8?6F?eKQZ-{%W+y45aM)5b)6eSOC(9q3_F&-&rv0~+sH zpbUZvhbW=#p95cRkBfh6ZmS9AyVFj63vlJy08}AytMgpm|AK(7N~Y994G+(8*E@olwU(wUdoUJ|qaO@X5PKzL2M!65h2sr$2flDp4Q|}?N6%1W zW}lca5i=GrMh{7Fw7RLb&B8Oz1dn#n;R6=;Cs*ftwS|Sd{lDksU?$w*`AJ{UsIK8f z;-yEeX6j@8t2;s~=zHvT70bua5Ny0PG{bil;o z-kIH2{*Jspd+3(OpVE+$zMr1fLAtv3FdDnqo70c~eje?lHy1;*!H*Jg`jsJ#5 zt1W(#Zy#tNbEe#N)1nkE8^U`1{@bJQX^wQ{P^-eX+|~Kdv zn|$GClEm0g^9e8#Wl~59hTYDsnQBr3vHfr{&PQe3mI0E6|5Rmy(n8Ve5?ymM~a*NBFye#sK2Ef*1_?eSVgAb5*>bn!?G4fZ0Cboo$`?FUHOuyH$n z&A-(ojv01%MS>JNnJn!Tkq(|5P@=%ZEX)g$4g_ddBwza5^H28B4O|OyL~(nbIJ>#K zYk5q=zH1nq9!WZXkuDMN^#^!NkhvP-NCX?~0e#iZzusob#!={$!uhN5!#Vo}Cprqo zYwzDvyJG{pFA123$D*H>?sHb+=KZ_S{}2|&UugiQdJoR?|8S+~A8cpgo*HGUE6rI?Ih45Gwa@r?SYX-0Q~QE+tkW16ebqHwOZ>kq!>=@q!K+t7BF&>z>kt zy?*7UcZXwREkcQI`rm)9=pxAuqL8ieVt^lcYTxcs5(?##q>&1&<|%FBe=4rJPEH(2 zX=%jXyQQI~>X#bCxlmwBwbxv@CUI8v(^3dP5CgXF;{n;(gYi>dNXWZz?Miji1=2e;Mzajt(oi_N%f%d+Caz zYwdtZbun&HrGFq92Ya^v?_DFper=o%&>LWze}(TA^K(gpG;WeEnWnljcyx3$(Ymxk zkZEC@Y)oY8_2OFto*N2hd_0dtZpgZ9M6Jhv_T};L{(|?}{T&*LdYvXD<_#Y4N=@lM z!M6Q-9OdaIXl3sOul+rGn3h_0YDd4U>zdi}@+9%I+d>M4{L-Byk=_zG_~F@QlrY9S z9#ims>Q(Wr=*pXGY;qNS9rse1jQWW$G*=jY$mqxyx4;QUGs?pj4!2jiCt$bF)K>A4h(T(LxOa{ zZfBV-EaXeChE9?C^sZ>vDZU(8? zWZVWQt?#xrf9jTSZ-R>$p+9e0LclI`YftR$xz!5wY?PKG>wC>8u2bF7Jbl@;Mh|(E9NY$tfk0NRb zk#~qxxE|WR`1@*PQyd!hpTDEsk>-@~j4%0osRKPrUK zNPvJ;6qAn{fBGvLv&{qyOuloUxc~Bh{1|n=d|8v#oxPYr{Hqe-#X$;2+2F5zKG@YL zuKgyRMLSJu!`6^tbG3=9C3)7k|LgQKS-9j^VE{0{u;2?HI6(soXe>&!kdN4cd_xIQr+iIWco664Zs)lo}sWGzesa=jJ3G5B(Ek9fUj^Q6B|pa!<4IG zOnKqyX*$14@AR_9wo|rTxYq8%XcU-`%A}{HYouuq)tmjon4`#z(5V%r&a5~L!)-cl zeSP94IdJhTR#f(J5@SX?g=|K2=4gEK9GAheiwllqKw#&{N)+#T6B3|`>GXG4UV#t5}w$2Qhp74I&9Kp)|;d7lbD#; zum1eE9WcLs%jQp>Jn5NZZeoq@JgN+OkfC8T)(ChQxKa@7mQ9Jjr=TG3RU4tGN$pET zlRVdMe$<|x9@Q(kU;CPk^Rjc`Yhws?u2FjjW*_5 z6=0?fjy5G6wej?B523^8U-cE5D>XclOMR~>x&PvOS|qV z?f$h55a;p5w25d=#Hr&``wSy+QHM8_;^jOkz44fB;pN}RqU=J{oTpTYY%HII@kt)9 z|6)x#wZQR+O!?)v$S3kGQZ+UFD-enbqI(#~98@kvbfU#(m^$~nzh}6+`SoYmjUV9v z>0!CQnLmH+1$*)4z*qU(&c6n)0ywby^|cHeD~N4(qoSEO-huCsfxKpK zYCRhoeN>ZnT1+g6M}2{+o#Z9Pc35Qe&@!hR-Z{<`>*`R z#*xj6Dqh#C>h=E{^#^A-y>op6$8zr7V_BD**n74$KKBI3S#xt5Z4$I?D!gPG(S9ap z6}}WQ{Y4$sSDHdb8!fJAnL2os<9ylq+grO$t$J*H*r8#1A&}oQb^C)@>HtUxrD2N* z8ejj;q#*QgmPaoEPZZvz?JTWfQ|q{#5hUF*h~WXu2a~avIQI!)%7^ zI?ZhpMLjfEzj`c09q{5Nb(M)t!Jny$1EG8X*)YMeWyHo&j($c5EFjXN?Xx9WF0Cx< z=_zTlwzjj6C)c%vNpG+G|)m3(wYKD;2gcKR0a~ z5u(IBXs>>bqVhf%{IuSmj_xc>1vf}ninfZ_C^wDA5m&1q*}7v=!)Q;$c`Xn(a`qtu zQ4c*eeFJy47Sz&JFHZ~+Z!Xfq)Nzq3JF|1S0a}~!Ph)B*QXP3co_-6jnu_tBicNb- z)r8=_%j0&5{wgPP;wUo{lP_v7T7skL#wmzhYsV+f{ ze()*7Vw4!m&g(O?sqxo|cqKcK(}&ByV*KD6txmq(1D!V#ej_?oCl*`6Es32{Fd0>s zYZ#NIa@-&72{JtI9G4PZPW zNGrsVvd6UZ9UfZ7V52r}ANDU_(W!kAZ?7MCFguGuEY(U9OndR-ux~WZxsu5^j@p z-m@20S@FU_eT-V`)YZ)DJSV!i2QaQ(Jwf)GfozRGM~5VWT?)fY^yVK!qo_5EJAI35%hCYG7J4DxjYJg#k z#UCNY7zdqh)5o!&Z!~mmdZXD71bT#zHa$JQizSg@N*kv7pPiA`JaB5f|=wCW?jn+JK5iS`H|l&M$G5G-u6EZu(F{U z`GKz~oIO}l@ALXdpPTbE?}x46|$b#pumwAgYw`1-;xFWg5rUQoD}T66@OJ2eZiZPJQQseV9j zjlrCHh5CB^WAm`DgR=xb3@+v5qFr$qri0+{y%lHtf(S1s;D*nH=6inzN?iW6+j9H= z0?Q-U6^VCXK8N3xcsBexk43`JD)kjAST_0(mrj-VN8AS41BLv}a7I(EvJEaj{?_qU z4f^C2JvpT)X^!npDa^ca)emt}vl%%G{^xu9`(IpBq8cTpxODT?J%b0A@^4H^geCg| z2clD>WIiII(2n-{D(U=YCUKtjHkmQfMhNNCJPc*#>{s%r)o~h-+4d@OxpBn@psi14 z*kNOl?eZvB8`H!1)IwKuIq-zP;J~UCoxy5+rDF0a>Xa@>A}Uc-+lX)Rr3v9Z6AHVv zyQ4;9YE=82=#CHf9M5@g$+wag8X`oU7mJ}yYHCd_vD5(`Uq?nOu68yN`O*G5^H$-o z1Yg0UvwtDyhrdVkQ|L2eZkg8dzK1&?v&!SNhvCTem2^j@LBdPWutYcL)P15?Qmez- z5H@{6-@d&9t>qn<+W}=!a_SEMF0NNSNb7H-0kRLA0_#kkl=wIp0YopNmN~KuA&UL%U0G; zaY!*6M$vAK=HEtndeC0l2{FIxKcBC6Z1b5NKx4|ikITfAzAc5Wr+JxMBrp29;DqJ2 zMWtZ`+44*Oec8ZN4fG5u!L*XqA9{~Ja(ukT`LHeHSBRZA-%oybX-Vt~YISwjfkbgG z7&K?UEdDrJ1FVkXYoN=MPRjSzdkzzvLR6N7?=#c2;}Inn<6QI`DMA`lP#ne%_sd|C95 zh6CNc^2@a@n%{nKJ^SlI1h#83>6^|xcV{AancA`NlG)`F7X~`FzPvW@;C3O=xj(+z z=ny|FagFWh=51?uq}m9mi^*>8RNwiI%@q=va=b^7?R^n$r{pe~4=Z(LeIBo`>%~(a zf4&kDoNi}L=##`((ZYByxR@^mX>CXNuzC($XVQ7eV#$mgbf@d* zlY!p=r)$YtOlMAebD;;D;V)O~Zr)t{Ma%Q+t#P&GIF8tVA3u4L{^biszE-*9)2AO6 zMG95fdNO#h*=|&Sn9N-s$gnw?t6>Y2%nqzlawOK~_VTWD3^s%#$-ZqKagOaMn$}7I=iXf=G#~9cX&ZN|KxG?cO`NyV z+wXsGt^}@aZ(N%<^Q_5wKtoKgyi&k!I2ioycGh%Err_&XB0oEYb>D|LbU!DRt?g|I zLeUwf@t2wKY8an)80`=6o6@CW%AR(cPh%J?Zm@n&v@6IgO{B6J^&xS##U zIMRM)pYiie(2l4r)Nt^Y_I1VKODWvj%LRei_@60F;yCU6_QHq+ao*__v1eW!{;SNU zInhMiQ;E}TnM5{OEb6rH8o7IeU9+e4RnY8D@Uk3#-v&jb>gluYf*0gEeQo0!R;S&G z{;cTA94Y{H{~uD_Ji^&-P;;4@yf_TH-col*dC%O2gUM+^B}A8NE%a%ba2lMHiPBjA zNSw>r@-P-UHEP^GKMYZkHS(aM$~IrBjJEH%@(Xo8pB~R5RWL6TzExwVnD@_}w1r~_ zZs+D#Oq*%|)H2?B?ERvzRn+jher|*wK}qs~QRG^9m5liQlg(3wv1pUt@zQRp+0WoH zR81R~t+Zj#+Dm_LseV(dgbo0fgy2$dqF!8DmXf@w~o%Hw7LInYQ~`9OROO z1;LpU*yTA9IZSP1n%rLe+oBF=R;G*CWE$)=uv#<+2?H9U6A2 z(=j`Czx1D6bj7EI(K)vtF@x!~?FU}fk3;mg>+?p=G&mAOgIXh%bVyL#pQW=BBXQe2 zyOZ5Y{R1eK93o>6g^IHKtM<^JS@OBgH1c8+lq!lflbojC%I=7zcxb)p>QPyy^(X$U zG>(zO-!dxqsi|^|Q|%TxxzD$EEx3UU-RUEqHlnl7a_eGe>oFEAw?rKpjR-LFHv)u% z_@u6%l@18XB;V8urU~Q4CganHoKfrA<82$r*LGYoNha6D$#1jMDYQ3CnGfAj1iyY= zo&w#LyJ8Dhf%$2mP(9ZO=u4>CU%X0)S|*8JT8t6y=s5qMaEXzHY&cqnuvwu=eT%i_ zn@HvohTJTU+WzZRs=cS1L`HvnB8kwTjU3@5;5BB8HkteKVq)&9U0o>Gt?$iTnK3z& z^n7Tgd{rNlH#0%ZMPnyG;y2SgwGhWk^j6jHbkc8WS3`?EmZCM4Sw4}y)*Giu^##4& za({+iR_+IK9?M$EvK;zuwBvIRK2E)SVoA~D8?v=8%P1sxdJSd4Y@H-tI&Ykf(xx7!b<{#*Nv%J(!Z*eS9jyPYN|lH_@_^=t)V;r?Kp3R z!7tQ9ygxRBMy9UW!DP{Q8iHx68|&mf^=fKSuC6;-&oIXS8uDlB-zR!BWi*{3Izr4< zeqO8dhN`-RbSWtH+Vu_PPC7m`<)}I>9HFtU+=J_pT%0mI*qe36#;Y*P=BaHe7X2P> zgpMPLpeSULBp)TKy&13}=oxIM_pnOY)J^41L2c?r5jMvLHtz$sLnqX|yTaz3-d5ML zwS~O~eDf7`6xsewoE6Um{Lu>yj=j2OQ*bmDozytc-mUi{RwK)1+ahaZlWII2igZ*_+l=TKsSl`}fab+9+K9&*F z`gaf28{ZhCud&STVXkq{%Msc^y_sEHmz1JBaC$UI){SnTbj|0e*LT&oV1(cl(&%Ya zi-d5#6}74kFNb6|+3rB}O^ko9amRGO7Pmh6&AKtJw{U#ePu}X*92_XaT;(iZQb&i* z?b@Rl^}DAwGG`?xg{;j7-CM;#rO)0(?y2Mn#oulHHW}=)X9agi&_zIAKRe;9V;@&8 za3*=R6_d#Ser$_nc4Mr2`aknR>`Pmd2Pc!CId3Q*FNy^ougH~$-_XIaYTKDG{Iu5? z8x@%hMmmPHzPq@Lr(QDs1=Bo|P{y}8$<-Ojb>{t9! z;#I*yXr&kZ&T7zWwpioFT8Vu$v=RrLN30{?Ifp=C3utSX_tVc~U$ zR=}|TPN)*=!=5{VE%&q<`4STTVaPd2Imc}IMeiynX~xj%;8ZcZI64Sy=@e_t;drk# zic2yi*Nfqj3FCtp$&m9Z&!Mu#^?7B6@Yl^o4TpLz{U zjGy$O^2A=`usT&w?wuNR$@u*hih89g3!xrr^n9APg2*u+j4cnfL~Ii@1c7BAL6 znW-5VC;h7VXNuvt{W{*gBsErEfz_qO6=5K{iQCSAlBesy<2u7+^dFCg@0Ls=M7p<} z^`HYM^QP7q?#cpcUoi{9Oyl3+Yl(PKVlg~9hH>*RYRg5Q&*=U{ioO1sJJ+q+6|g*Q zw5Yy$6JQ>@{ZKhanu~?a6~jegOG?Mjtvh4Kn~qGIIck;uw4#p7*s<)IZ-HQ$GL7?h@w|dq5=Ylp zEvAE@w$LTgBE=?-X#J{cH`Q6vSu)+Ia#h<(K~$}AS&~P5*C@-;xr9g=ulP7C6@d{> z^|el(9CJZxg&W07jRD1E_Pd%H^WsBAGzTEUoVhS~i=s|fTDt|Do3Lr}*@-4@D zcD>G9@3{8zL5X~VDo#^Egf>Pp?D4=9q1e$baI08rtdS(jw!JlHRgwh*qsZor4BgC} zDpJgqKAG36Kl11u$I{WR4;h}qHQvfKU5-(m4tKoqoukd}QB^C46ZX%bk!yu0nvZR5 zQq!KGwX7zH2%%SAvS_%X1cgA#nQiy zA=lgCm|Pg!S23altX}v{KT2CI-qRM0XJ+cW7l!Wk$>JTIA0GF3m3e$ss=~8{M`T-A z)7CKYl^O-fLuXc&d5Lh|uTBf#mrRwMw3!l^jr;Bd5Z5JPt?UBx{IwW_rQV zreIsLleg#BwsRc{%x~RE*&XZVX> z+9xFZ-@&vArd6V^-z3j#nd53Pu8wOv%Q&8HrGE+-=gc;_PYHu=;sM?}4}MmXK)r_% zcEj7Ae_ z*;fs1Y&ejOAK1jjor2ed8+_QUXKOSS38}?B$d2Z`CC<*z9UwMsDg8b5+vjWhm_ugf zFC?*3s42n%v_}{x39E~LUpBk&Fu!xnFJ(-47aJ&a(vB%(OEa49*ErY4LxgvtbPcF& zJfhwBpn!pg?tCK*vVhw(YVsebqROM$5P*J9K;|y`1^~@ZcR4MH)R|LWls}#b*z#;; zlJu0cQ~oYr&P+A*bDxhXsnaY+s$G*>M3!({(&>lCUzuTw1S<`)L|!k7{xGWcM5D$2 zvUT%zd!N+?L1)v(7KV-z#nC%Qy{?QcK@;#?l}t$I2ZYU#n!j*WPu3#5MM?@gRL|`sJ*da+xA9PUEOL3 z=dKj{{oy+)%e-uZg$bo8_wRYqY3p+l?8C%nz1@a0@M9)}^i?CH9c;hHBE)Z`X@xrb z<<%@nrUWl!d%9jv(kgFenZ(NBbfqZOB<#uN7oFu;AC^UtaxRS=)H4gHFoI0#dcjn( zL%L+F-~d17d=ikWd)pXiOYOvo`cdTP^+I3w!z zTE4Yj&iZ<#(E-z_f5t)Z;W4sr4N8*KMRAZZKhe-YrdDXEy1I943^3hjGFPfO7}d5I zEBLf~1d8B+Ty-uF5Tb!1@$E7XIXSr-DEdZRnpYG{Gy;{^f-Y@pEGMCG#k@&&qY zZ=#g6_4K}h`G?OdtiJiyH($Cq$8S$)h&ON=^;2xiho+H|Ka4kgA^G9O1$KY^qcUI^ zf`5lT(C3O)8>!T}UJ6yN)nBjTp55a+ZTr^*_QVZcI<$Wa0t0D=}u4~R8k0lhwt7CCTIyf0oa>}+gU0u94bF%%P##Qk^G6@^*%S1H%a<1ASR z@6KhD=fuy&;h#Qtv04p(^-7kGO3Jc(So$aMF-XhcKBUgn5Ze=f#${e*?P96+x|LC6 zm{y(U>2<(y4lD~AuDih#Bek*JkrT-UW~1|4domaUI^)d;5l8gyug|%dCQ@~?m%EH# zI%vdxK1(To$MRhYhi86UO_~pYKNHX4(4er;`FW;))zuTYI!JSu^BNn=vkqOorrx@7 z0mBfs$s?npRDXl@nlGrFDdB+lEEPgjK_l#p4eHgL!Va=WP*LFZF+JKlJbVWV`VFTa z!j6kFy`oTd)9IwI7G)_KrAyKXED}HeEMaH!==Z!lhhtEi9D;}$4 z-7q_pls}7`?s`2M?lytJ*5-LnsvT{vyGCBIsIy!>M?AdaU%IOmdCW~FhIX94M~y*8 z&U_l&ARoJm?C@%;sOK_B#L`wK27biVJ|U{lS0;2J)f+UqC!8V8>~*$6$rwzBjXU7z zAl;5u81^evUEs{fpo+Uq^;z9+P{pFZ-qDAYC&Kqzzu0kczvk~0_pl!QHLz_6w5BYiq^>8BZ#`&V}oa z7jcmle94;mDZBa*&{+pliBx3%Sah~vNdelCJI9=CcJ?@_F-#kaR#xS!q|c0~t#b*1 z)ZO>Sqy4=fGbA}U65^Y6&f-9gCSM`%kotecXY$tswf&SlX{meyl$A`3Uk0BF=X@h5 z7@py-N^N2D>8Z8s4x93oU~M3?|D{ERkii>Ef1m3%jq4d|cxQDl^VX$t6JQy*5ezkT zQ~K;joGf31so<@-I1ak6I871Z?&{eGO7Vjd*CtM%-xiGm@}=jwq;AJst~d?3Ggs%L z!Vae&ebKXA&>EHnm)0T$AAQZObL}?V zp2$Zp+8+>iTMRm9>f0~pRlXX*JUgq@ce46`g=H>}ZV&eE9s`MD+&L%~*+BYv!w_tdw+2+w@pk(~ihD zF~Q|^YAJj{ZY%T<{r1Pj6YVp z2ZM$nWS8M#_DT=btSBXfCEQrOX=-vOoTia*ClPHyA($jL%S%{Da+djcX}d3{%mCMD zn)(Yshwa^*W|$KU{?ztA@>5w9%cMkYU&skuP+b|s!OJ{+HO8adWQswzkVw|?<)Bzie+}dp~3kB}d8yXF<67 z3r?D&1~h{GAj#2LBEOyxpT_YV&Hf_wHl4TjjLTkk&)!Jk?r(IgmAL9E>KUPn5ZX3SC9MdW%6JM#!#QP?LfuFs+ zE|EAcHgALP+Y1tXlDJyKNUv$?=maAMK)?aH zt*4i=aRyu(c1T6d${hfQ0{p@H#IarK_Y}4!H@A|g?8tKdh{b3x2zgN7X!C_` zg#m`eeAWu1jigd?>Wgb7DY4YAguB(=6!&0p>codGn(ojR8jpVY%$d7?Keiz^fnw?S zjrPagKyJ2RDl5EP{XgyO+}4m~GjMj33u1b-0rtxJK}&$zAFQ2S=J0p%zo1+)2QODZ zaB?6_JOmjK>hdJMwxukIwM|=VvTQprqDS z9Ud=Q{q|Rx&!1x=2^pZ2N@Ga9mOmwe6xK(uyFr*JJ#^Eh#uDwFox*ojUg3I>vdjN^ z)A8o|*P@`tp_<3&SO;>p!Kz%CPYy$}DSYF2I-xV#-!~lt{Gz2?f;-i|J7bj5xkvHl zy<^b1OsRZKfNAM?t5$pSW?K;C48TER>YG#8y_MGvqYTwOdh|Xzwp)Sb-s4qjh5_-Ls1_I6W{HvB$bM*s8IFMg{58vD5>+8bwwOrlYOlg*{2_<&n)n*$a- z)o*{m$A#&$&`=_4BuhJJG;op6%JUvTO5aU}WRpqnnJ42G6i1WXvldh473c6Uy01w& zhcAw=+sv>TtABSuNwlb8={&!oLHILt z$wbD?o}O71ceYJu3KQpxra>b~Na$zM4nQ9$#9z%a<^!namHf5%p`{@zw|o_ic)44B>e_!1FE)`ke`$?MC~V z?tLFd_AkQMe5D?8iQZdtVjC&NL0Sgk+yY?_FC>Q~ zAgtqbDKD}T!#YeOfb*x0B+S4mY}5mg(lj>qKd7wo_}ZFjbEAU&8eTZsQm>RvECf9YguG+GqJ|jXit)D=sNwm zn_qprw(iGIbeuR|id*sQPK>arFEGd|Ucd6l(ec`&@SV^3j$!eZ3ROY+ z0j9LZUVFI|mbqhhWF~2~*NHDb(qk%3;7Z=Fy&xWlTQc&-pMSMzow>tzCD&W_L`dND zYS@SkCd>Ddn`2n^3gja}*MX}hnZtEp=PFz_3|y6bcF00U3BiaEmP7y{fv9fjVWr&)M^W{{u@OWeH{Q@;#PgDaSi> z0&Jg>&8$uFkdOq`s#4KVG2^R?y)pbrQSscnp$18&S1yf;gaxf*+P8LcJMb(Fmbhh)mhktSy?K)i}2 z19?(d>#)77qfCd1L&JqGDL*`D_N>82sIptZ0QXBJDNI&*KmWbE9#4Qh*=)!qhBOfM zKMZh3Pt%l3`n?WdI*W7$#i8X3FG( zIS0wisOLc&U=%B0z?VTeMp+j1<2f{0)aU8gZ$Zhpg0GQqqAH0--arap1FhnC(m=`1 zMbi@MoP^#|mIYgwYC)ux1r?_lVEQub52sUeZciP$4zo;(-Yu}e=`AzgdLbXkU)3I5 zD`upgBM^b}(w%Z=Aa{{bQI-dA&>VM=1`nYiFq z6Q#uR_YLnd;xfLbJXspQz|C%I-|;OzpZ!(u%VJ8U*t584H~$Ben2^IMbK0sJVdNNL zcEA`Ao&F5}^0!^5VMBKavEc zUQ5p5`uI_{oOfo~m~mH#A+C1KO|HEqt}$_I>Ud>%iiAO~G66A~kz(UFT;ok#UzAYT z2IXApYK5^CKuSX*I7p(CXP8e4Bo->pqjC7$u>pz*D&!Unc%m~T&%8_O;Q)X5mD$1N zZS{2~Ye+SGdEP^zJ(O2~dVhGvmuzo&PEU&YCUd*YD80bwNgVumh25-Xc(Wh31$|;E zBl$tsUoJ$+wjX-mM%R~agr_NTs?l%CwH4XX9EA?WjR4`-zi<2<0RRMa@ai;Pv4FB5B$R^$R|fq~7aA~Sj$rHP!?-5(&Y*v{>Ypgl(`H43iu%j)}d^*eV$8lf1l>B7Jf^mYVy{*#>SUH zr%zi)=QVIRxxdmhAay7}Jk(hCp&P5p8V3`zhl0VJtu8W_@mcZjGpLrPMrbH-Ejv|L z*KfXmZaTe-8@3u-#p*)C$M_deMapHPf%g{|7DzlRsIM~*M>r-#HE^2!3{j#pyS^9|{+H+lXAvq133g&<0^@?|DV|-lv z7}Gy_vxr26&LGwq zH^sA_>r^>xa8hO1S02&5`-a6Frx#`o%_f8M%fFkkrk6mnhaan(+9%~st}dqO6LlhJ zHO0@&rCwMzXBPA=mBN8eZHGHmH6?JOH>Se|Xi`ghc$c6Rj^x&?c^cHnT2$gNifb>_5}_8i01NCf|aEsZRn*hikm6T4I2 zdMUkZyC2U5ef&gR<114OV7G2P$G!4lG(#BSr#Vj+sKC^`I$22&1TFkIz=~r(n2W9co+GtpIKH?xjfe@+5Pns#r6eTnn%ll-l|Oe zMP1Xm&LIz+V0T$Kt!9a$fiBNF_j=@16w=oopV8S%wp_^zL86i?pWH~2Oh)ZnTOhTq zw4#7&HAsLSI=QJEU8s$^q4(;4*X^+!nVcM{vJ!iHse8XtzMoyZ!{rFGj#8wnQf*lI z5+b8dlEOvD?ay=oxvu;E0kr(gdIscvNeJ^h#5_L9D%qLK)1qLvXh~aqzqq~b8#|{| zz5O{I(ENAiL{NIwY9{u^YZ4@L(FiBCuV}%Cn?rnidZ7y+5khkwe)qCB#;=pOn&W^+VJY!d{>jrdFwMZC2-6 zyv1wa8OKrphCV-=549#}R5+=zdC-GqUF|B(xwy^8U(H=QCW5uOddx7O$2mK0bXlGs zAP;@DRxl8W>-xl<1Vc7HXNj8N0(6VZ?Of+lO07cmQ&Xvb68;9j1AoYJuZ)e*EukXT zNu!*AP4{C8uO&Wkp7ap4nNF9q$-EffHr7F61~O8&8~EWho|gtXAy52%NsxFi)Q z`FVhk>N)=Y+nA5U>%p&?ki58}DhQJIYaiC*Dq?F^MJd=*Yjy~$ZG)TZw`tFe^~9j>jHl zJVqgGRq<*&2hG|JI^9QqH;B=t!kgAC+Q~}qrC(E}-j#o`Ucu2J{%Mp?yYea>a2kN1 z?^*YmGU1iAO@!Ugp3ydF2l_v_t?RrqP(7);aHSVWD22y!Br<++y9yv{Aq?)XR{Z@g~}y`oj$Awf;Iq?}WCiN`FeW^eG%>c@kwP2unfteQc^@z` z>tzxfDxvpze(S{5BWP)Qu07VPZj||oy>UoOJ$@R0@4GEqmDFN$NnOL1fP3XO)@_U(Ln0U%q zu_vm9_Ae;vJ$vAJr!=fshC(;(F0L{d;jNcNeQCHD{*^@xpH+y2+T}~6uF}RYiv)hg z9vKvRuKCW`I~mDzs&Lw_!NsD}9KO!a(jN7zcep0?vzqTkl08_G=L|e?8kspzL*6+C z8eFJ+N*a4FINYn#gB)~Y+r?*CsG|ME6jBZ4cq^6QfCLtW68FX9G@#}H(>pj|wbRkV z-~r`m<)Gw;9W=)zIZ+ei@WxxoLpOxGnRy}=1_aU@%O+&-rUHzQdiTbfQS=%Jz6)t0 zMJvj8c6tY%wwvE~h@d?m{p9lz7_#Mg<#H81NqdtMQ??%%n8*suM^0`d6_g9dWc5<@9mzThix^FVFl0gvagW zn)M?A0^uy3%#Nju5B`^uNuehGPbm?vwnzW@m7CL7jhXnnEuznUE;D$}U-!|J9AYMU zqEe&Rrve61egn}Vx=Ii2e^lvh{5MafsAC^wt{^}LOmKB=NIUhy3hSq_IEtyUVu~dq zjf^7SPncAWdMqSJG!tX%)iELW|7I&Hu^!Xvj`{6Xe^)TYbs1hNdngSIe!sNZ-M=vD zTL!pa1uY9auHZ*W^S?s|CRo1Yj-6iIOByDvzvXG8ErQBTvaL_~1n{z~Sbi8k6H9;L z1S}!IZh1A49w)#mKz9%bV5d(11(Oa?$^#GQ9q?#Iw27eA1EvQ8UVZ<6)$>fxJHbo?%m4DY9_0)_9Hr|Tuw z_V(?K2eaYyzK3Wa4W3_cho|Zr4@ELfIhjzYhdBPB^&_00E0;Tt@|@5w`Ph@*u(|#5 z@@Ti|EsrbR@d*_w!Qa=Fy<*l8~?GT!NdiciMs<5+xg;_(DZr-Vz#@xUG(Uv z&M4Y&Q0hPgen9l2(#rKK4%}2E9+u-Gx1MVp&k4a?n0e8m-ZdF9w`NcwKhW4+7DLgi zDamf9$XuzomfS%!gv)JF_W{^Esrs=Ii#^3Zs{Uy=Kx)FC6p%6@(boQkWPEn;sMGLS z$ti6j$@9sN?^BqsRWc{352(5O-3jiwirIx`@iZ76{DTkEbhfe$yt^XM41Fa+5SYpx zR?`567c1>?KXu^NFad9aM?g^5ZEzQ)M-V}*wjk`bT7Q2O9SF#wI30w92W!f((@|ZQwt1Ivejt(twP*7;gt(2v7@)N zU$xYz{=R)BaKWCZX@D2?0%T0Ijf#?s4?Mm_<3PUJp-M`oXTkNOs$KysSH&l}-eSn= zVd_^@EA$)(bfz)TkmuDA8YsKC@PiT$Atj|vxfE!~f~-TlRO$cK;B~iq`_{Znr`f|# z^4aBc1NJnxJ8DuQ7IITh5om&}ns|MxL+9z!a=+^!6hl@l|426laBag)k>qse-px9v zx}UBWj9ASI6fEwwiM%UG)}*`Hg$6wtq|6G;W_mPt<@~4cbGsw@&f>v|LLI-3i0?$4 zdZG@Y9*N3X*Fh)}XzCpgzJjch^%A9zml%JcsRj}Cbl6UoHcK=I%?6$9r z*OGiydSvO(YqUFugN{Gm95^}jb^Yo6 zIYzQbjK1LeaFbiurp~CO?(Xuv{yj}9p@)~2vk;c*7JqC9D z9yEX2QFu_YMRpCOZuGjy00Eod!}E>3(&Ye#K8yb22+a`f!(e>Eb_SV6wd=gqhi~!W zwr@VilLcKU(u3WDgSw-We*ljv`THL{@9_72|M2A34hW;+BEphPoS&{&1Q(gB4L^0A zq`J6HYp0zUU~-r)bip6ad;JVM&Ib`C99pLfb_9h5zjdGdes50w^wyt6XQf1E9uPfX z4w?UDw0_iA_1KCLDNs-ELm7HiNLp`q#@~ChM_Mh^DrtFw2NNyjG)fF57}9P*lzrU0 zxSmszEWykE3+EF{aE013Tk*Rx5&CQKB!T{CbytfkZ~F1}Qw}HIx5s#Wp(3~?^?>p< zKF4-=*BA5Mg5ids&NOR$>s*Ek-cL!D$!)j&`2;eUM9}FJUPW$F7Xju>*hjX^L$UMj*s9nmes~^NW!eBa+&LH#S zHBYeB_!P>_Z~IlL|972Tm+;{`4$7#{9^NJQ4cMo`w6qxQDpn-UPV#O%IN-nk(CRMs(Z>+f-WeeDX z96cif1_0S+G=du^d|;Zxnvj18ec^EQOZeYn73gewEXA*nvF=ig-kqwc^D%U4AdyNA zB2x-P|g&A;v8=vJe@Y7=}X{#GLYsSv<07L~tVjxb4Q!!k4c zbNt?f4+6aOKp97EKNWc!Y;%AO%d>xMJ<#FY4dXZP3Hh^HnnJ5WYg&hm;YUA_%G^zs zK-Wp*Z&TNGM~*U}oR9+-!Ma;O`>$%did>hzZQ|Aw&-G*P2;+nh_+R1yrJg%`-I2lX zyc0{5TCn8sU7K&!V?3&+Fbn&rkH!5EJV`va8xKGM3Rh-(ijsyV0!$W6KP7OW{QpzL zYvTuP%r20J8V0pAW@hGZAj*dbEb&RJBwj-`9Awrh^G>AmKDptN?&}h)3+)Sm zB`ypprVDr($0%gzEy;$TtZmx=Oe=74j0QTaes)~5_hoh!W1{=xl)ss&5c4(YpWQ>D z1eBEIWwkv5;xh9U)axB!zeMiCCZ7Y~0%mv0}qJ%lsD3Y#mckwV)0_KtIH`1E42a z|1vg2jQFYy^~+gf-6C>oHE}EtS&o@!ewhz}S3$NRiULmsP2+2{^i9@=&nEFkw)|%r zDuKZ%JGLHytpu;^s-)9Mdu_utPz+#jz1!6DAt)qcS|s-U`AUgY*uKMuZ;PX!Oe0_l z^ewQb5rsK#tdg>@7r-YV@Hsmu=r72^TH-bBqas1bg;X&x1ARYB{28;3A33tM!Ejy+ zc;A<)#p|YW+Mi?2lC3NAlH~^n={M1DKO`1{Np1O|6(i&|Np-_M?JnM$C_{;>*HXqv z7hfTf^g^QCtVH{}ep@!D6OZ@J`Er$*IZ4+A7~VzJwQ@d%ayh~<-HPGp54OFnHy=WZ zF}ZUQX$g>ik*6HT@@PvBZkg~3M1!h`{cJanx#w3wzs%-ZcjGmHrc-|~{4)N%mumN_ z6{v18-#UuVC%OY`G}utXd^yA1EN%BVEMxk4Hw(s6um7$EhJU9Ti#jhBc9+5@o$TVm z+b*N--pWCt4N(Tbm}agwHfq*T-_uW(RIu$(Ut<{;5$a zpCo}&qOIp~4GV*}l9~OcU7MuCfTk;|X~bbq{aFY@Lfwd=&H)A5adFc*WKW+^QN~no z(6^|m6gOxLbd1@6!m6D?N-^I=mvQFw!k;7{A}@HotfL6)yo*N&NRXca@D+#hrd3C7JDXr=w0W1`!+|C)YPS>`x$cmVq*M-W84~>OX+?ua-vn+ z10tW2tIp_a_u1fSUPtmj7sZZxvgy)chV5v-+f_2)my{g-}pwBHb{Qf30-MPOLJ2 z;uHs#^!*a;P-&soZCkcg)*k~3%x|n7_`k^+p%KT=|DfwsY0TwrA1M?=^>&HfFL3mc z#eKTb%S>L+%|ISPZ~DPkhX>_~co$?sYLgN@VoAz|aP=&P%PfD6(Toivn9ensFU(?{ zb7_aJcAu?^i0Za%=NV?MEY9g=rpQcUTcTTF=9p4ZBH3N>KSf~2mo&lj&8bJ!!kOV{ z|ESQ?jzsiUlJqG_mZ@S>6!p=@%k?FeX2$EcrbL?0)ec4KV`pI)KFrmPoeyj&xtX-X zR?~>T8Gf2<-$)?3xi)TFCcybL^7biC4in`w#nuy2d+Lqe|AHUK+{yuUt_R259e36E zgF0uvHoncRz+B)5!%pL!{^T~Khg;D8qMlU4b?*gMxwW6zv%$Kr<0^Sif9k>(3ct6; zd@)y-YPa9z>+X=hUi{`tlZc(|vrnOhXOdg?aI=^0+tWxHvoLR>pi%x;R8@c6M=bp4 z=%&?9dzLy62w+~ZQr?P`L|+W7DEjth&CVs=t6fN?|5DO2iGlICdnfIH-+6(to{3q4 zv7t(L#yWA)~n*Ayl9AxNW3bPgb%wF=OJMwpoSYYbpTd_xN_Y990ka|Cx%Alwz8i zx3;NKYP{i6fUi<<>zhh__6s|S3oVaAsr*5?_05vjW%cx;&Je?X!y>Wo@p=fV{S)oT zXM_8X4hpWRRYQ)E6MUQ7xrRbCCzzvtNum}R6+t9muDTUvn6Rp)WVN({UgwU}UK&t) zxZL+JeDEb``#pF`U_~kD>Y5Dze?=3ok*!T<(gQ=ozti39qNUtL$l-{#?WK7*vX90U zlLk(vx*4#@TQBOqNy7en4=dw_9y@q+N|CYNR{Zah zu4Nh-HEFRw7o#xcBXAZzP{{S#dD>b(N)MtnS8W(23CV_#Uw`zBq^e$Yrl|;ZxTf zH4N&5JQQbpaP_Rsp1TN%PN($r$EGsXQ(ro5b6Q#P_7C*EzuXC{@w!4}H=62K<*q#W z8N5$%99TSVj}0Cfd5vI9L^#)~QK21NmOPMKYaP0KkY#5p zGWWQES+NuD@J*mkuq&0t$*UNaXa@V6oGN999^AJcZY87gZnm`aSPq)hU&A$x#8UJk z^lyr~52JUOuMM#kxyaQ?@ju#ryWzu9*)<{H`yop`lHm5=gd)MJ-2XdHskavH`^;rB zoXI)|${QT%E`8Z6iY}X{+8y7g1$QrNWJ2?I<|V^w|MEM`rrw53+k zXc-mVd&KGB+kVRVkEV$yeUGUyvYFs4{nA-JVR59S7O!LF5>b#_w^Rcgv@MZwfyFPE zC1n=L`NxPL4vK^=@qexCG}d^IVKgKu2a-FUq(FMV!yv`tszg?_PJG9wUG%*xKOwzD z=(E5~xq7$5{H-9P(BMlu$t2;3O#YJ;v~n@#PMaa;lYi~(+9z6Kg2)kTs(wA+deQDiD?HE@$@z=}t13(B%Q zRRN~kjyx6-x{H^-e^q$($HVR#as#iKsYcq}+0|N>2TC%%LtbLZiGlcm;F}`*o}eVp ziffJXec0Ga$p$D8y%TcEBUYX(6MVsFXMWUIPt`E>AOzSo_3wUz2w`C*30&c*I%|jZ zkJ#bQG~6Wu4bj|-UCkEH(y%|!u++}zj&zpWx}29B7GTk$8{kqZJWFGdOz$!1Z&m;) zEbXpy+uz5dt!}<`V*q}zCdy`=0iF*ceV@k7p2SRSsurq$!CR7_ol#z}D2BT`^nI`z z3t?Y9*OZ`Gs6qA=zm@zwz|c8U@jnRlzq@X$%JUlIwbUb*bSUU~^BG+hU}>{O82ebAC+5C>>QMbX{Q8t1vlLG%@uD?RxEH zY`va%yir_eQFC}I?WXYI%ekY&GmE}iC1c}w;IAAWAHOXu!~stnyB{l}v2am#mR=Wk=C=dsr3|ocJ<$4oE{Ic_PQ}l9q5ZX4k;J$7JC|e!lD1E+B7Pl(onOg(D6fwkhnj>Xs4NlSHo_AF@t@_ z_mnRE?8o8@CG~0wHaWwkrYlY5l}vLQLF+?cTjtb!N(KxH-lxCUf(5NcNbv>-20DQW z7Mq$HwwmFE4`xunwKYuozj_wlm0zk!qDdA~-lmX`x8B&41%)r0-E1RxfRiz)DMh!6 zcBzvWJ`|k)U%D#jf_3ISQ5TA}@)y}}7wvi-MS13V(f9QCng@)YN7++0zd&`-Wv=)e z-43<9RbcJon(>irT(bmsT;=sGdTfU~N9usIKwhG=4bakL*EU? z2Tr1H8)YT$X4Cwgt*g5OIDWT1oe8VN8EdbbY;bPWvlo}E)m&g**)qNtp3F=W51PVl zgM$R1?2mZD^=-{fOuPV5UP`~ybrXKq6;+fB*jx~jk_LmN>jHpl>s-UrGP(b(a!;9X zP=gfk&nIN8C|CLRE5H6TWa>Drp}EoW!~(0tt#0(u$>A+!D<68w@fK~t41)+0*Rfab z+AzNAk0J{-JajFFtOGD#hu8B6dmrI$rj}042CwI|Tf#oiGhB9kNW=1jaK7pA&maA2 zKVM&IuyYTDQ4-EHP)lOt;sU@4_gy+e-|W2zg1U6=#^%(KJzLg9#03s8);zydzp=nA0CWeheOrC@3mIycTyn+}vtT zsqz_5T(!ecnY#JK^=3zC(6vpyf0+J~wQUuZOdM$LIfymc_m(Omlfr8MIYKc5Tz>CN zq7dB;E4RADkD#&Od;(H73hE7(YN|qz5T%oO;aum~pd25c@d0lU{uE&cDqpZ2?C{y& zo&&EHf}#OGFiAuC123-C9c&&(Mii~M2mUkj8U1ZQ%#thxq8$tjo3f*;$!U)TQ2&8Y z3kR1~k?AM^3FB(^swr;B-1u|0^NeIK^z!2=kNbZC_SWo}{rd0V+0org6@dwc5E7C^ za$vHsd5x@n4&dPxSp_5H-+UdjAsFW6)L$vHCOT)o#1hMhb-)b1uVBA+XQs;l^s!o7 zpArOylk;Aclr);~1xz+rYRmpidGc#z{?BSA`58<&Zfk2Nj5=8J6uV4*34@n__=P=W zi-HNG=fb`yU~ZBtMu`tSetchY{v{#7r-e(5_jEqCrcRIWxx)vycUo39J#KE_MOXWs z?Np7to*W#u8c$htZLjq{p;&Bn!P@&x(!|^8|FhT4v5`+BAja8XgJTE=-+1~ed%+AZ zlJcM>=Pu=^rA7SV!-sO1`vG1X4TXrQerrKH*>v)Ym+YLLo^F5h9Z!*krfRTyI^p)p zVMnvWa>ZZm;OczMcQhJvMB523`4VFcCtgVv3z`S`1V_BxCl2(#KLK&8m1TwoNIQHv zejws6b`BGpL%1pl>#`rdf z1w+=l6>Jc{EiVT{bD0n^ssPD(#K_Vd24Gltc9E9UdGlY4*B?%{(&80FKe#yU!{eiAQpTLHmfE z4r12i{JT)P$#SVXcIW5MHfpC2&-g7mQ7H8c$D1s{lc-yuTXdHo4*HO)bPDniNqRYZ!U z7H$LRNtNHZq4I{e{^45Zx~*eWr>+Ek3-q@%^<9nkDQFRucp|zXDjlJ5(8vwWm!Xd^ z;cAx24wM!ffm6b<9$5^?7&tx1WwFz&#UG7z`t4h%_b<5hD>1}hsUJ=Qc@Hqwa^N~x zSXf9%PfwtsF=%Pyq#_71@h!57WUm+f!4Z{dX#7jd!#-k9wC`bbw6>qFfx{TX(4co4 z0gKUO$C#&?NNFRzD1K^q8&D*XaRsP+7z>}vz+meNS{JHsKs?)%20f;pV@_U?)8``K zgQ;c~w=l8g5Ill2vE0p@L{wCT?=-wWJT}_{t^N3)SGHQ9vZIKnalASU?-EBY)@~}f zb!W~zgN``5dVmpg)ww40?Nr3Lt!+EUymF65ACeOEVJj(`xM~X?JOtEV6!zmkC+K6W zVR6MVSE~Tw5#IVEFgr7C>%zb9WiX=R@bI>HjU{t&HJWk!y^6F<~y0VG>aU?je7$( zOu0O3EFWu8oC&{AQ;B?8;~X*hv1;;nL22o8u>FFEJOoYjBuD(=2*r!jS1{)FkW6mI zjSE^ZMvvkgq7V{48C!jEA{_3}z(R{c2atesNz<^rrYmY_Nua08U5$R@Xu;qz`~b}S zbhKo=oM}Md2j$-*ePXrs$Rr8S?ufxH7$dmr>Y~8p*6k&K^=~mXGP!_qRF0_^0<&;) z9%nX5(o2WBkxzVb&vnri<*ef3fG>udGVxomENiA@eG%=*g=+N6rF(0R6na~fRRa!_ zpr2X;m^#^fd9`vW1m7eoVerCi(RIj6i)vAe<3nO1J#UTUhb{kIxxfkH&3_<=r?)W~ zY8!c*W==0jPg$mjDtDpLOUEEn$;UUSWMO@3zY(7Jhgg^6R=zMZdZkM*%(FP5c(TsT z(djA{H6`Ip=d?qYIyP|-#%p4O93})P@}}Npxt+iEDqF72fF-5)uLgkK%oyeT`nIRk z^VKIY3R(3pRv7=OV_aX=#O|Nu3gimHFhi?WR``q3nLiv#SCisl#L`F?eWr2al;qE! zKi%EkGFn=33ukbgcLICma%~5&lYn8oZ_he^^_|^{7_wqP=R9D=e$Dx*YzjEyA=w0C ztkQIT=Jf&WPc5UxKv9MB+O^n>3?6&eyeZ|ss4C<;{c*9{6zF|Oz;A<{o4W%HiryZ* z122^bI;p8B?!Whie7>`N`h7xhjxuzcf#H%1*bgBjTQJ;^pnLkA@%!Thi;%xp0Y7`t z%1s&r>e*m569!wHk&zM2b)~Nr^f+26;-zw7whp{0%yaPO{Cm%`qJsEVjNb5xyWm!) z;gSg{(p4_5zBN090*A>T2$L;^viprY{UUP+@F1@1!Gj0ievg~f9i{&7BM76Of5dKM zy!ku}qDt5?lsD6lFE3)i$VdsuP_1C~@bKdN|2y#I{FLkd@B883)y)6jA?i%=_=AYo zm6gPx5?*=i>E-otdb)wq@Yer+*35)Pop37f|G0s*{azp6MVxXfy6C`H4|0P!Uus|< zBi0FPu0MC5lYm?g#=Pgwpk>a4vmEVS6FgJ|6um0e$S?zzPDrvkGB$Q$sKFic(j^O+ z<^hoz2jz2n7@TI&QIe99J7BrDIC{_I7Np^tT3P|1bFv7$a}g~qEp3wnurx%;I0CwX z5Wf#JKpgM|ojnj!2aI_dz2kw!lz86E3~3)K7zGPVW&pDqMr0@v++hN$>xzdb3mxI2 z?i&;r(9vVzuOL_$KK=?)GwEWkm|%QC$`#3dk$zB5OUs;?{s*4su_2kQU$5L|9YF-Y zQIj_%2xV()b>F7>;giP_^>kbK(ul{J#P6>)<-cF8?vb?t$^~FPoLgV2tTf^sz)ub= zn#xDVM}IuFESsJI`RsuLr$>K3&`Cf4bn0f3tb=p=!K)@Pcz9xCl zai{%*@WM-Y#{s#|zZD<7e`7?zIgKI7xzC8s0Cg8kXc`X9xACi^T^&e=Y#ulN1~KdQDX2*q*o8rkN@7hAc&u)gYa)?};ZFF>xEJ zJUyMJs>`UsJrX?nlKvbWRkpXwgQfjPGH!zrypqu*K)47${6sPa{&}#jMUej{y?j~V z*@w&fp#^ku@O*pyj=p537IY+mb9W1(CLg%Es>0it{f9s56S(hL4@FN_SyjPym^>xt zG3xgA_EyapA9#MPkHe6PI7s~ykcTJ1zpWb%R((~~2wT|+VBA|;zj{(^a}H*zT?RF_ z9qwB*Jrouj;G4(Az~J8qD6oCUQdS3>(A~P+SFkj|$j<_f8hdcAjNtDCw&_cV$;aOU z2_8i2SD0T6fAPY)l$Em*__6z7!chSl5@bX~ua!0RzgT&hsU6eWoM5-5z_za{Yd%Xo zg^IE8BH|p_4W@CEaP^cH5k6pX20pR-aEMGd)TjPjNpq?M{&V@8H&;6;ED%!bqG*)E zWaX{>6!QC?&%U}2O7)M*r~Ltg&=llafZa`D5wX0y%nvW6*0P^UE!su?>{sSFA3Z&N zt>3vXdpSk;XDZY$^@8R+LSxM7{3^X^!v7{x&P<+fFy(&L;#TqVbFj`N>AtV>VtKo z2NE_CPxsit(v<>;q*bohMqlf~Gg)0}A(s9AVo`(890wN{^tj;Vkw z0a3MDDlK0OSdZqsO^0t*=TBOEgS(= zci!H%c^bha0MbHN);AGHR_k3uz@V(p)C)>Lggu6^r0?U?*qCPHk?sO_t|=3e=5luO z1hH90`YS*<-2q-`RZd!VDkxmM(a4m>oJNcR5kE@c6sr#>t zERGc1jT8qylOA|8bTVRb@;FF)sZZtRi?VWbMJO}V|R3-K!h-01}r zXm4R6c6{dM=FW3I2l_tuvz|=({rJohFS89Y4%dZ+-#}mm0AcmfOj7M!YVCyU$#Qw_ zt9=?Pl~_BKn>W!xyPpO995G))T#8^Zp!~tneG$wOW$f*_I-}|5xHfAq+8u2uiXIF@#LCB$|S>T~!yRLqIm*4KvdLRZ@kICh;^`Y1bmAXt7|UCo;yI1}VR z9GhXSqd{WAp4zRW4ew2JTSwKk#hFq3nHfC zrrWl*g{^aN^tU74qB=#olU$0aZ%^R>$S)}on$W#_7aav9T;|4KJ6&k)O z7zb`RirFuo`_v28krX&bzI`{?eD<3cI%AV-zKEJ!TeF)uEn>FH1;rP*S-6SHTC361 z{yDBe2zX%EI_Ys~PQzmB-6DQqGsKZF7L_Ch35n_Di?6Gi?P{K5ybk1hx@Qf!;`_<6 zX>b(m(ZWjlOtTpc40Ictg4Wv4pS8ffam;?r-c@hPw`A(g=wYv!n#88qK+@ImBtVeD z-|GH;0>s`Ia1h;GUzxmEg1p=>$jb$uZv^zlCLLF!qoOdoT;iI0zJIrFFur#g@$Sp; z+7i<_e*XM<8?*^le8D3uCWbKnm*@pwUtcVI{M!8JF`C7E@M%`rX9BFto46aW@E&(> z-?O8!DP6?U#CwhF3QK2cWd*TOKso!HP`cUsk3g;C*R}Fy zB@W2>_#Si<2Ks{YwHbIWW1fPaX8YicbFLGI6E7Yfp3dFHF53MA?{Q;~d5{(&J#&P; z3{r1SLtP6C=AacY{l+5w8FKNk4{0eZP1s zDu4-WTLQ?`ZExx+!A1A>^q7Hv8rSvf2~xZ5SGd^NLTII)YEM{ogpuN*it_VKBlz6` zh*k*=r3&zjE{9E81=sN^I4Gzb++W3S9m5CrLJ>WQ9PeQ9K5+i948K*r3B5f=~d0eGS_ zAm8M*H>{u!hI13JYIrt&!RgPxJK_h@WgAcsJVf5EA$UEnPuKAx*8^!G_wdCcmwmAu zCK)n0wq?lg!4zEq(CFZ}v_!ZHU^t5EBy$&1^6$n@v zbhfaQl9R2qUe805|Ka2U#i;2G>du*e-JHZD)~Jw0M%W4i>oj3?BaMBuTV>3f7ND=XV3 z4f%i^gwLSnI)~}!NPz{v-41O(fBh;;v$-Z8{OJS4neoQy-W6z4B2R(|ZUlKS^729D z8jl}W%c?e~!ls*;(1ZO)4UUcoR1$c)TM3Gh|`qI?D}|FNOUv-qHii>H)eWr zxO)hT16p&laEVlqf{S0Eu~4gh_`f0ttE~jM{Qs3Mgh6R?|N3W0h0>-5h>QP~HS@X9 z!AAZR`N#P#bp8KV*8Km}O#l0ffAx;@O~fV=O1|8jw7*~Do>N;(21es@P{yi=1T)Z( zL7QX#x#Y>tM{whm2{-lwqk2)Vefx0ZOys)=AOS`KXhK3lb@y-ZG%vRu<%IgM{#L05 zp)F8*2<58;Ar+?)f1LlnuRvC2isTakC^Zb2x58831nadC0l#tjhV;AlpsddNAjkYwoC3QrhGTc~0Ce-l+7bvyhOLBW3k zyiyh5X(Ab;{Zut}1pmq27YztN@`{RBf6HT$73g=!LqoxNZG?lFjm-koo)p#8I^bpS zgU2TP$y-ofnP~J95fBuFPBh;91pGf53NcE7T>fKM*CoUR88%L#U8a9My`fVii%AmLms9C$Xi6{K&bMEy<~_ZG-9F({rX)~X!+5Ah@m;e z{SD~Px7B|7q)bLa(q36v8RP&-i#aqh9{%NZj6)ol{99}EPfw@$zygXphWX(uG}E4* zo((wspaO%QdC$qo$plD_=$M4u7z8mjJrE*lZK9*2v;UH-R=Ii=HrPxEtb;1(Z@7b8 zi`g`s%>(dDdg|&?CtbMt%eFtW#K|Z)RIL-_0*#9XAOf-0ub&UJ1732+p zB^pWwdIyN#EQD^0pG!St##TprKM;<<;Sn4ULC1Wsq2VxxZvp)&WNi*)NQIX*9pOaq z1K7Ix1{|xy5Z=t@Onm=bgvZ=B3t-5n?1atG3O_B+JXqU4Wq71uNs?xK7RZ zOCdY5$KuMvvZCbB#%Ytq#>EvpY=D*oIGVJLoA^1DgO&Q$3rP1+P%SKgN=_TBg%HH) z8BSYhf62MI39YTIaS>ZqR8(O4b#-)rU+`rzldgC4$f0HyF(Oe`S~{@w%AQ^WjD7a+bI9;IUM?;t}h_4#n%~= znE3D~!JzCzLQeh>tn^SjNWc&j{POoZ4>5$3j6!Cg1PRIsJHW635i&;FY5My5 znA7WPYe+SRI?CG5%3_esM&r{r*1@HhA^0Bnz4>(C5RXPwGk(3=<_jj&(7H8$4=kVO z1oTl*ADTlK0dpD(VwdGlq^Kj0J22y8_zd<+RhE%D<5!x0adL7Z0=a=688zecH+jFm zQVLeX=mm(0Nj6zVxS$V8xM2t=C6kWhER#tF5`c!KE%wLc;!YyoV9 ziE5j8o$+btV&+110M5e21~oX~wATd|mbfTklRT%nrbB2XIK%ZoSN3kw9VBY`LwUIf z?NX#B;)5{qcx?n5@{IryWk|K1A!;tb1Mh@>MKls}?Z%2*A)_k}GcsYX=geT7slWFL;?Ck8w zK#uP1R45WgAmCZ=>1NHr~W@n1QixB4T8#U3xM4# zwcEh1CFuTfP-FuSFan(l1uREecl-p_Pl>>;11K}c#mRv#aRv_ONC68D;d2jx_jd!$ z=6tVjS@+{1drMne5-=G9kLG0pp0uZ^GBdDv?zY_9NxkDa3K&7GfV4(v(6GU7 a&8PoMy=nw}c6A(N00K`}KbLh*2~7ZIy0H2H literal 78879 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%0A_R8B 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 diff --git a/docs/tutorials/optical_fiber_nonlinearity.rst b/docs/tutorials/optical_fiber_nonlinearity.rst index 14a757c..9f5472a 100644 --- a/docs/tutorials/optical_fiber_nonlinearity.rst +++ b/docs/tutorials/optical_fiber_nonlinearity.rst @@ -71,10 +71,30 @@ of variance :math:`N_{ase} = (G-1)h\nu\,n_{sp}`, with Implementation """""""""""""" -We reproduce the setup of Häger and Pfister: 25 spans of 80 km, 16-QAM at -10.7 GBd, root-raised-cosine pulses, and 200 split steps per span, which is -enough that the propagation itself is not in question -- 500 steps give the -same effective SNR to three decimals. +We follow the setup of Häger and Pfister: 25 spans of 80 km, 16-QAM at +10.7 GBd, root-raised-cosine pulses, and 50 split steps per span. Their own +reproduction, with a Gaussian stimulus and the paper's 500 steps, is in +``validation/optical_dbp_hager.py``; this page carries a constellation so +it can also show an error rate. + +Fifty steps is not a guess. The step-size error is worst where the +nonlinearity is strongest, so it is measured there -- at the highest launch +power of the sweep on the next page -- by refining until the answer stops +moving: + +.. code:: + + StPS = 200 SNR = 11.758 dB +0.000 dB 38.0 s + StPS = 100 SNR = 11.759 dB +0.001 dB 19.3 s + StPS = 50 SNR = 11.763 dB +0.005 dB 9.4 s + StPS = 25 SNR = 11.776 dB +0.018 dB 5.0 s + StPS = 12 SNR = 11.845 dB +0.087 dB 2.5 s + +Fifty steps sit **0.005 dB** from the converged answer and cost a quarter of +what two hundred cost. Every number this page reports is quoted to a +hundredth of a decibel at best, so the discretization is two orders of +magnitude below what is claimed from it -- which is the only sense in which +a step count is ever "enough". The whole system is one chain, and the number of spans is an argument: @@ -114,12 +134,12 @@ be read against. .. code:: spans measured ASE only the fibre SER phase time - 1 36.09 dB 37.11 dB 1.02 dB 0.0000 -1.2 deg 0.9 s - 5 25.93 dB 30.65 dB 4.72 dB 0.0000 -7.0 deg 3.3 s - 10 20.99 dB 27.68 dB 6.69 dB 0.0007 -14.8 deg 6.8 s - 15 18.55 dB 25.94 dB 7.38 dB 0.0023 -22.9 deg 10.3 s - 20 16.73 dB 24.72 dB 7.99 dB 0.0091 -31.0 deg 17.6 s - 25 15.30 dB 23.70 dB 8.39 dB 0.0238 -39.2 deg 17.4 s + 1 36.09 dB 37.11 dB 1.02 dB 0.0000 -1.2 deg 0.2 s + 5 25.93 dB 30.65 dB 4.72 dB 0.0000 -7.0 deg 0.9 s + 10 20.99 dB 27.68 dB 6.69 dB 0.0007 -14.8 deg 1.7 s + 15 18.56 dB 25.94 dB 7.38 dB 0.0023 -22.9 deg 2.6 s + 20 16.73 dB 24.72 dB 7.99 dB 0.0091 -31.0 deg 3.4 s + 25 15.31 dB 23.70 dB 8.39 dB 0.0238 -39.2 deg 4.4 s The third column is the subject of this tutorial. It is the price of the Kerr effect, measured rather than argued: **1.02 dB after one span, 8.39 dB @@ -224,16 +244,16 @@ through, which says where it all went. data_tx 0.1 ms signal_tx 0.0 ms upsampler 0.3 ms - srrcfilter 2.9 ms + srrcfilter 2.5 ms signal_amplifier 0.2 ms - link 17200.7 ms - rx_field 1.7 ms - dbp 12.3 ms - srrcfilter_2 0.7 ms + link 4556.9 ms + rx_field 1.8 ms + dbp 12.9 ms + srrcfilter_2 0.6 ms downsampler 0.0 ms signal_amplifier_2 0.0 ms - phase 0.1 ms - data_rx 0.7 ms + phase 0.2 ms + data_rx 1.0 ms Thirteen blocks, and one of them is **99.9 %** of the run. The split-step propagation is 25 spans of 200 steps, each an FFT pair and a pointwise @@ -273,8 +293,8 @@ Results .. code:: - dispersion compensation SNR=15.30 dB receiver 12.3 ms - digital back-propagation SNR=23.48 dB SER=0.0000 receiver 2892.2 ms residual phase=-0.1 deg + dispersion compensation SNR=15.31 dB receiver 12.9 ms + digital back-propagation SNR=23.48 dB SER=0.0000 receiver 3025.6 ms residual phase=-0.1 deg .. image:: img/one_shot_nli_fig4.png :width: 100% @@ -308,8 +328,8 @@ What it costs The last column of the table is the reason DBP is not simply switched on everywhere. Dispersion compensation is one FFT pair for the whole link; DBP at :math:`\mathrm{StPS}` steps per span is :math:`N_{sp} \times \mathrm{StPS}` -FFT pairs plus as many pointwise phase rotations. Here that is 12.3 ms -against 2892 ms -- **235 times** -- for 8.2 dB. +FFT pairs plus as many pointwise phase rotations. Here that is 12.9 ms +against 3026 ms -- **235 times** -- for 8.2 dB. That ratio is what the literature on low-complexity back-propagation exists to improve, and it is also why the useful question is not "DBP or not" but *how diff --git a/examples/optical/NLI_simulation.py b/examples/optical/NLI_simulation.py index c6591d1..561eb58 100644 --- a/examples/optical/NLI_simulation.py +++ b/examples/optical/NLI_simulation.py @@ -32,7 +32,7 @@ oversampling_dsp = 2 NF_dB = 5 rolloff = 0.1 -StPS = 200 # forward propagation, the reference +StPS = 50 # forward: converged, see the tutorial R_s = 32e9 L_span = 100 N_span = 10 diff --git a/examples/optical/one_shot_NLI.py b/examples/optical/one_shot_NLI.py index 7126322..157d668 100644 --- a/examples/optical/one_shot_NLI.py +++ b/examples/optical/one_shot_NLI.py @@ -28,7 +28,7 @@ oversampling_dsp = 2 # samples per symbol in the receiver NF_dB = 5 # amplifier noise figure in dB rolloff = 0.1 -StPS = 200 # split steps per span, forward +StPS = 50 # split steps per span, forward StPS_DBP = 100 # split steps per span, backward R_s = 10.7e9 # baud rate L_span = 80 # span length in km From 40328eb59050b6f07a3c65f677a00bd5e3914f36 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 08:34:34 +0000 Subject: [PATCH 10/18] Repaste the launch-power sweep at fifty steps The sweep at StPS = 50 against the same sweep at 200: every effective SNR in the eight-by-six table is identical to the tenth of a decibel, the GN-model comparison still reads 18.77 dB predicted against 18.78 dB measured, and one entry of the summary moves by a hundredth -- four steps per span, 23.81 to 23.82 dB. Every claim the prose makes from those numbers survives unchanged: 4.5 dB from one step to four, 2.1 dB more from four to fifty at twelve times the cost, 0.41 dB left to the noise-only bound, 5.0 dB over dispersion compensation. That is the point of the measurement in the previous commit: a discretization two orders of magnitude below what is claimed from it does not move what is claimed. `SLOW` re-measured: the sweep drops from ~1400 s to 370 s, the one-shot example from 73 s to 22 s. --- docs/tutorials/img/nli_simulation_fig1.png | Bin 79664 -> 79190 bytes docs/tutorials/img/nli_simulation_fig2.png | Bin 68200 -> 68298 bytes docs/tutorials/optical_fiber_nonlinearity.rst | 4 ++-- tests/test_examples_run.py | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/img/nli_simulation_fig1.png b/docs/tutorials/img/nli_simulation_fig1.png index 2cf3699f0334b485b73e788b000d38c072065f17..a22c9cef05ec85e543550c7a712bb03276931132 100644 GIT binary patch literal 79190 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 literal 79664 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%0DHh zrnV!6Gz0A?=S(p>#2XQidoU;xdXEXRxCAf&wq8JH&SN4ZR7G&wzJ0`)HaW0mDy9E7 z)W8%$LmX+kBBj!cp%^~z$lM=>m-=lu*Oe%1i^umGv z$$mF6brLB@uylyEWRw_#)oZ7i40#*Jx_y=Uwh@F^kU`w`N&N6*44i<07}2Agm8?8` zMnJtu{cvO^EHwBmFe?=-G7pg}1$rw>Yp-l~tYkuTa84vsI)kt2lk%VL=jELIRi5@7 z(xK(zsis@eL!T*2%ogU3Pv%T@3j849cRVh1!Bb7;))9;0d~wBR%h{Z?$MSnLrtG%o zle`w&B8tN5fbEWJo5u#{>AtV8e>WQSc}?cZ=vhPU2Wa6adKkoRR%I9~^^9`nrkR<% zkx_=-mNV7?N2JK zLvWNIj}tIx!CBSWiQabJ=!Cd<*wD(1)XE5;Oyny2AolW z9-q30Ev?10gKFyOFDyxq0EljR^3nHOEPJEu!T?!`h|e5Yh%v8quMq5_=!Xx>RAXzH zX+Gw0<$YSb6cifz4s)nVTEWf4XoDHUgG>?>0Ll@5AIOshyn>V=@In*Q_pFT?W;0s> zF-HOB_`R3=Ts14$?+K-)qGzh{3*yBsMLqA|--9Hz2%UZjPw+3y_v(D@>x&ZDU`~>K zsht=c0`LaU!}(zj zjSXc|C*oUYSo67S4R;IwviYWPPE9RSEp^&tH>4~|APwC7^0i4j(e-N)Y zjQ*;FQ>vkhQqd^zt<{5{nM)$|mBg~dA#8nx7VGM!WURrq+({byebN;y%#(YKzMjoCg@0y!~U5DN86aQe) z2eGvyH}MVwRz3vTfOwI@Qc!RN#h$4l&>=rGC$y$qVV1*N-8w2!xEPRFKUp{qkodx7`V=hHJ$|I|m z%h&n0MeCh$`#SrD7vGb|2Y^7n`Mo!v>re>KQg=XLU{pea0)B6QG2t*LR5&mi z$_7tAxbFRj271D$qEbUN9bl3*#=yl>NrY*axC$`zbV8OVI3VDYuR;)P`Qwh-3FCL# zsnt&V>kEKb%YdbQNWB2b|2=!k#qwMo9mk1!izuY9H$jS~@B{w=QK!)%-K|KY7TK0o35D)v(eo~Ti} z>Cw?|22-aIg}f_fR`MWf%>#uSjOSQ@h)HTN(Fus`&^IRUm-OrE>LQA7pkUf>_#)9h z2@XF^`)jZx5$^!|KnZDn$XS?X+Jjdwr40fgvH3$*&q4oDA6N`xjtSBE(#wMy2#F7J zA0wVR1fnc@avusTEWsb93e+~fq`svk1eP-5$ngs$0X4?XfG~nB=M5GDH1{r*%;7-! z3n6+VQ&VhjeEhnloqzhSOs&964GHcCZ7MyL`IRlq$X*){6(m$%Du&Or|>jvmo0PO;Wt%9Yz2@|7x2_06PXUXX%8jkGu zJl{?~|Gv`&Mw=~Jj-h(D0u>Gncj;moC@n4ZILXN^CB=x>1^}fN)$PkgIb;gS-^k(`+xy4EXc%dI5K_e&q$t?zRksG9bl*ucBj?@ox5I z`jM$WOG~^WoUuf4B9>)A0H-T6$$0f;Veq5s9?F; ziARM%;N}n(roxmg;Uy|3N5`NC57;m>7;SsxLvaK?2G{!I$6V+)w$&E`1mfj9-_2e zKXY}p*3jSM>{9yR-4^Eu#|HmU*n`q}-epC3u4FxN;BsK^J)0|Ha6uP2lhJkxs8@Ku zz2uHF4VZdYa}4&NGmCS7?chyfH;}vsP$@R@uC8Y-NBQOD(tHFTOki43@Zk6K60Vv21cRaUCJ$fM{(NELX-+@*(KE()4j&WXJQVAnUCEj znUt58SaV?&ucl!rqlwz3!cXJOI24qdGNkbE;rL7-57QtUf-dOD_gGe>{on6{epp{f z(K&TG5N;`~t$#?JD%UHwUFl65eS0x0a&={6f9;+cm94T+=a$`#6I0^{DkDkBO2Q`1 z%Gso3)|nj_U)HtP-)Wj?o;0U1$`wU1l(R;hP0U$T-V$<4_jrg#B=M$9S!L52W`$>wVTO&lK6{BSw_ zaun;-$b7AU(-Sex8t7f?N5S)RIHt(Ek=fqOJt0wC-|TmF^-GmA+u0KKwaTmg@7s!) zz6pJ%TakD1_!ARUfr}L#o$LKRkMn(oWw#r|WH7!AuhBD{_nAC=$~167^NE4Jxyh|NIWjDA0YzL~Pi1X)JUms=iOa!R5|VdtMs_r} z2g{Minv(Cj>+y8eKde{R_hKNSD?iBy;KzjZ8g+F8!LGnAxCTSg?aFpkk8f~@KgzRh zw=Si{*HPz@oLcCBE4y%6ytxwtGUA(GJ4S^iHaZCO*#=vf+zP2QAd9Il;ud)Mrb$-* zMe$rIv28u3LuD&@n)r~u;DIL_&kz$FxiMT6|(#fyYn zh0q|dsuxLZ{U568ND(8{VK)|h@TWnCXanUV=p614-&iwu`wf#@fr+<0wZ4lz)|#SE zV(faJM`lB|dc#tC)BCOR`yq5Ybv_@yIW;Qlb?=$NANc;}3`wRYCubH5VmI_o9m@bo z1T8h!AM)_R%~^vxH~%%MZob>$lo@lQM&dS$fV5y!GEq(I-Y7}4zP-9De{ydh6>NPn zC!k?tNon!j;*wYY$rICREEEJ@^KTojBmCDG(bqc)vh9)@PEquy-F_LYmo!(+$<^FG z@}b5;+q=po5a-eLlI-U!zp2*f-hE4OXYw@VAdzpF;%XhZ`(%Gq>pos7>iz@2Gvp2) zRB5%ETNreBd=&fauc8w>4*a1R$2aVKK=SHLN`Qi$MtOE#9-*zE90>%H3WkPEq%1x3 z>WIu0Dj5+##AwvT(9!8SmH_0bCW+NH#uUUCC zNA7r8ejYwt8L7jCp>A_W@IJhTH{el_jQV!M^p4%^sbvpG;K8HCu6&3&;^Vx43}*+r-$IKT18YKtOa)K-`r8@If#64EY0f_51cIZo~-BzKsu*>ROIj3f|cB^0&xDMUa@fw;j)O((>7aN*zKDEw#RqO5EutVP73 z8s+S5&tDuEA26-?jgpC}6$l_%$a09~gfnrtfmQ2wzAc z`J4G$MqhTu4OiFP(EiE(%qVGm3PvxFg$=|QJUM~U1k`oWkvISLQp6kyyxGfq2M;nNKIa!MjBMgd8f6^4G{3^w zZGPeS#&?O}mb9QCg#Zl>@=;t)=Mir}`E}y*Q+FeTMgnuul;9k+`%+zg;lwBR%5d?? z?!NVVdqb$)vP>7l2O^bn;8+|ME7r^xohAq9t^AtgoIFAp1XCN2#X)BkxZ${=MjJIp zu@keLSIWY>EGF?e@pYQ&>O}I5QQVe|m6a5!G)T(C28;&{>2`8I!Z(IdoXxi=ffuAY zY1K;%FThfM$PaR95}uDGs9dDEhh*Sm6Exa`4wVG#FuWODa7;#HmPEpeCq=PgO$#`N zl|GwQUl{NZY8%%~7GVb`u;^Mmm!)4~gCO!s3ph5C3i)if5iU?v#M_90ptryGR%Xe) z;A^D8v`~y(BW7D!h$1EGijc^Ae5K#I)O>mO3-b;t+A)N63CEgzIP=5M559`6Jv}{@ zknoQTJ%hhyYT^X_KBB!i<9v!pn5{noG)ow@&KXAL*OR@Oy=To0l=cR0cx79iq+(>; zae^!#cal3saog{uC6U*!L4Cxz|2PYaA0EB!_IRnsOf{K#TKPBY|2{MOcggx)q=v#<>b%UQk$Asu`DNR}x3;VWJ z>_>28_IiJCnF!<#Pr%6F;N_#f8I7EYMjJ< z+?5P)8mBriV-?CVhAK3{eJ#ZBkp7|kZ;wrzxVrUv*kIAS!plie(yhuE)YLkv=X%Pl zwO>$egOhK2W|nH1_Qb>l)=CqI2~)FWRv#e&(z-I0@HKwK4JKTY6g&J01s&Uhkq|vv zX0_Aquc;xe;G0H1dSvAj0jsdro}EvLlDmf14wsvl6AO`E6Q7Ih(X{Pg$G@v5T&ryl zwk%k4)T>d~rUfQ)KI==GI}zNvD|j$_RngS3K-?+Ii1YeS{dqxmr)wuBr>W1}V5!=1 zIbVFowqRYGtGmvSlPeBx9u$_6%6|Dh)8?gujjHz~99wSgXK1g<$;$G?33C(Lh3M;} zr`?30c&^#dK1Rp*4*E24rVNqmAhj|3-5VF&Vg(Z&&QEisMYW3c*Ti;GsL&Q-PZdHB zkbseNREE%u8Jh@S%eTSuB6O{H)a7e09^+TL_@t$oiP_v#-nPSe6?lXBBK4l*y1c?d zyAo3^3N#2dx+x5So5Vla0Gi=7jlnX%8TL_c&gDt{^uN9duB+WjS$vIG`qy~)_<;Za zTHEev37>o?j*ORINni~^dFKCR=;COKK?3P%(5mdWfcQf7} zY^`vZAX=uH`K7WW#>$CU8_S3ERloW?*2M+3r+w(s5-v>c9q=fqGCOr+fX>e0fw-QYi5Xky@aS;~G15 ziGJTML$HRyaK45jNTv-f*LhvV8Kba;^IW}$S55w$sC~3d9=p<-ZTigld_f1d#^=cN%82LG z_RAqdlNv{)9G+Q26|I3{0B)N1C(;7>gQiSabm7fd}@hHn>Bw$pXXtO)-vHdSF9#hubn zt#@O+#u*9v7y-L>8+y)ci2~sNbZ1Vv&Z!_G4A6`@Ucp{$9=(+S46K6O4G!(N%>Zr| zx@_dQ@i};7iF*vW4Hkwa^+xX9q(sgb$9_%@j$PPhU`q_j%bPx8&~ngI|Awx0KQ?lF z5mwj#*(wQjMp^6gX=TO|PDW56#u>iUR zAtO>OW6;)?Ab*aCb=+m1*o@G7e0)s)Kw=`pt9M&(jt@=d(q+3e9a4?d>3!4pC1h8M zSAN&v{zQF`aKKlol$C$(+Rx_w?Wn}-O;{Q{MEYh2vaC8sPbgk<7;IB5 z?%;C?HP3t)OgS{k+9CQimt+g2yM&a~5_-yspMGH$(;}{mFmBo6Bl$_@LuA=Rt%{Bn zhLg+T-~f+Lq$K@L70QHi-K!oebC7Jk?#gFX+SF*Bz|_{twlXo?6du^zGi_kI?Jc=J zvQdc;KH=F%qdx*oO=65Y3S1>FIn?l+!opD~^o=ox1WT0U?eAK9Ry@!&hU5${dji_a zmuoz3OJh)%m)BOIt-W>TDB5HqK#OXI=WFID0VE4ApV|KbZ3DiM>h3*IbTigv0}X2E zy-U+5!Lbt?wVPL9$s6`sYNNsy<1jy6p_GL~Dwv=_c;Ck6=7`3g(&WqPv?ZTHK73$v zG*&RnB@wO;VeH-*EfY_rEU6@QusrNak?u(>AJil$#<{t;-XH>ShIB=w19Q{^+IbdLi7L&KK}T!E912C}q_e`|CR`dCwl}4DnColOKUpb0tO@M0U)N4xp|oFIl=DbC+v^_S5hdc( z_0>xK+aiTf=EonwYD&i(-?8s?^s+Cxb@3g`*$q-AN;b9HBvIRO*~PH5^u@5*-J0B3 z@nL_h8ZO<{84>;N>!p-uwmrMTzg^dU`ab-ijE{8ubvMe}D{~dziwoYf(UtBZ3)CFr z>z~q0pU1?x9Fb)f>}WYzk;LqDHl~@Bo|)OOuH~|dWyna%-;kiwRv3CSJHU4)JPI8T zVoku2yz9rGC%R=J$VQF0meEA6zq`?SQP?IqVorI zd!}AhbCehO%d}s~n|W_YjNI#=`3$4#ruv!Jh0avx*+N7W?7e?J5x z6q*j~uNP;HN*IY})yR+FinX8~@5;-&iL%D>uk#LNcB&lw-MwM>v{W`zi>5}KRf9WH zN0*f=bW2xP`pWc9Vw2k)qp|H)XZl+M-o2-9U8ju9OT-}87mx@DUK*Hzgzf?h7}tvX z++?7)Vbcd;xzD^Gm3qT+kJ?w(ncQw`Yhn{rw%+pMUF&BJz5Y^hf!g-!23z0mJEQ^n z;Vpf4=fGivAg%mRq`fgCh1SQ=e1gsoW%_B#RwVM$wXoXH8MKV z-IA%(qXo$iNEe^0TJMSNV=wYjvX-no91(92q;=IVcF33VZ#j<-ty#TV7|XK@6o+(l zn>D`ZruSGYws|ea+gealH}5AuK5b85X=G#(x~Me#!1NqRfy-=AYg>+Dmb^l#u5e%R zv6UtbriKINOdwv7%#=iK~04?Y+GD+F?diccj04YTw#U z`XyDRjAP<-H+`f7UwK{DGaUAvcM3i9A#*nHmHvw;_oelLnAY*r1@gxm2K9eeRt{eO zxJWi({7#-FlI2;ctd(7O)kW8z*L@CG7V=su#~XKA*!%owyD0P`NTFVXW2Ze_P+!^a z<5M=B;l8@{li^bv||hd8Izbw8Zg8xb9O(a1y0@!f1lnyhiK zCjUj#n+xyde}5MdX+Gmo+EnM7a7Vd(@^Os9(36{bHI$qtJm*rhw@@hl~~fcI!epw=Vy#yQ#1E_}#w*aM|!ZeJYyC>v-N!`NOe})$7dCIq8kN6lych zYe$4%xc+N|E`>#g;z>kP3~nR-bj0AX%<_t;mI?W^6q(_Ln`Y$Kw?QM)AzKewyHfe`=G5&uft=pBIQf zzMB-`7HsBce~;h1`}Q2zUu$b?#taF2WnUej>3Cb=MR?Mhx9AX)!jcD zxiPfzdH+l}_P@yLDy`BPR#wvs#AoG+9skeg^rZ6A{JR^X49y=t$hhCHuV)P>TR5e4 z`k?3j->3K`zkOrjdiFHtcsbwm--nO!=TYQqh1_jFr(fm&XbKhTlKXb3W@M^&#>w{ zRG6!(u~Ury#q%*C=iT3Uua3U56p_3bHo7oWZpR$9vkc0z4ZAfUozhBomq>S~bT>%1bcY}%A&s6=v+lkue(Jnvl>T#nB#ntC+p+bR=P|n1KShy&G~wrde-iN zVcgKhdC;psl^%@l^!*p3`H1f{ zyu7^1d9g^}k@C5~7$;8)b(&i1NBS|j0x9eptma$Az8&S*w7y-VMpbHBWJWU5*rCT* z`t(0K4S4Uj;ytU{@ihn^n>;(Eusvcbly+t-wae|=tft31GrrBLbCqxOz}1DY-t4QO z^72yO%McSiyBu(#_4Q1i#_7c!OGj-C?9i>O`{0Y}BdY{`AB%R!3Dms z@;~LlfEuDx048CRR3>W>95P8N{TwsUucUBX^0K68sAM_S5X);qdf6)ztVVIXWpnJGzUR6j$!jhxei~Rs1-`-UzQfh`;;nW z;PLEcsHQIkXRCU}{o-oq$Ut=S^R*sqz1^Mmo}VtAdjhROrquPxs)t*G-h6q)V7>KE z-!tg9Wec&-3r71`*s_4sIJ@pIzS{gAT|CTKrz&fo1kdXueI1M^aK{0Cf;U;}Jsi$4R0unq?3 zoVJlDs#}G_xQXD&j<x3m17~7Y0g?l#^7A*K*|V`4G|$5)`O)6Mlh@2flRYNBh+?E$Co!X1T-lSnA6$i zB^5V!3P>FEf4b5FdkWK&6d(x)JuweZS0^!OKzwt)S94k)HLx(_EW-y3o_^wB%lDAb zr)a)}Dp_aNYn6DvBUpfa`}SoClU55eXG*pIyNE{jP&R25ojL8>D}GHMvZHJ+^3NI7 zY|a>AaV}J-2EJkue}lw6*P6Ui`z19~NcRfnb>9xW5^+pbj6_OC)W24YT^jst=UGwF z;@}|gT}dV!)%tPw03O>+3ja;21Ru{XD9}m5`aDQ`!ctJ&D5c_dfs!1wy)pnA0HxLs z+4ljs+y@||B(-A7n*xTI4REiEBQJCnz)Tb3$^~(>sYh9gsq7&Tp%j2c>g($xA|d5~ z=_h1!1N!~Mt5^vzk9-~6Jv32=RIW=HBtHwCG2TE*C9|DW6RXwV8PDu~p)IC#vX@v# zTU3i&(~%X~z=f7n57n)q_>{<0&dxs0dx`b5jJ@^i%RO<~l(%tS>&Opz1x|Wj6X_u& z{;2Dvt9asVXSIgtk0Dk5f>a)7>fr){#c3Sf0Z%RL(Iz@&cqB$jy*t4-FD@9g)Tt}I zAPsZ1hBEote}}RJ zz`P$4VDU$_{#PT2egQpiHke`+^GPbmNRQ}lB16s!6ZCX0U(n-#|~fnWkp z7#GLUAEVM8rR+G-iK#pq6r)8GWLD{=X1ZQV?TgjFJ?DoDGz<|DeInq8 zAJmeLZ?H`n7WCbO{Y_4O3-u1PyF7Mp4kt4E69p)6#Zqxag1eO|R2y&oyd?EVgzR)* zsW%iOdVq}?C?_l=>%IdEG!_Yo|DY2X3)9ivvL2L4p?Y_o0>Pf+$9=9-}UMXOv z!MA4(Jlk|_bIQahLW>m5hIs%nLMI~i};B4(|up$`FCADtC6Ut3?f{S zBDSyzh3vX-WJ`ds9Ri>NSDFVf2{7J>>FnS~nU{OeAi{uYJj;|j82c3DyfzH17pB0L(PbU19%@0v7>hxR`k^*NJPc?q{q}z$Yk7uqSwo5K zn!NWS+PPWZ>+p+H@nVuX=rq0>M|_w<3^661)qqt$;ro)iqn$R2XT?H))=DDgFe#_M zjvb_>?8rp?{P1V2GfwWf5zQ0ss*r6CO(79$vbdzUi|4_gKn&^0%%}q z!ww|I?C;-?kM5FuVb_BK59`zN5>S?p@G*g{9uR^f0-@gSWVWLND>~h9D|MU=guN52 z0MU3rGPnO(g79w;4F=NTy^FCuguzX6KUt9lTFm}O7u;}9Vuq~rs?QU2Cg%I*=+Et` zrLweEc62Q%aExZj(M}c9K~e?`TZ9{d%5s@&rnZyLA3;Y{l}>W4+h7+F8DReJdV8Nv z(_uN#pcE}7FY#8|aX{DspJ*ZJjr8tLNU1g1NS8>WLK>NiyT2>#29ih{Mi%PVD)GF7 znKe9YF<4aiw@e^1l+EAB?GK-HUFH(ZFo zt)L2{8u6v4cyv3HPr=!Y2MoFPONi>;zSu59#Wpvm26L6C!BgBYt=kYPp=|n{nJN1c z6M0{D(C}xxU-8pmUH7dXM`kFuVP3Gwj!Z89`kN<|ql;9(x=hA6N?TDcT+?l^Y zD*%As%vEXMsg=&OdXBiVm&jl7+4N`;gXS_#j4M*FI&GEe4QCI5EwPO!f8 z{>q^{nk}(Xk<7vzDTkVGo(vdx(6IrgB^fZ{jfjqhxE8?bEVT&?Oh<{}AT;xTkX1RD zOhWJ>;2jMH?BS~R>!n`eFQDUYPDnH8%C)C${^^1}_kKdTi7qpe%uTG&PHtSY!g}^M zDZ)1dJzGmUCJCP>fH#SO`mBFr6CwR5)b^fIrgSyBEL0A5wyuBcW_S^eICSRw)VGa& z2?-K3c4_Gh!vNwzEhEV~7uo|*8{m_~Sj<>(q;ut!YhgU(h^u%U(n(=NCPuI`27;fR zv0>Gi4N?WM0UG^-p=nBX_BY)M08-`y>etr3Mu4taFNbObA3*>Z07)47z&RiX?Du!T zTTzXLZyy=1&Lf-V>;LdT_s)k)O~WNi_j?dCYzZOW{CLSfF-8K{3(>#Y-l>iJaRKKP zZ*3QHk=D#u8Z?=0x#jR#S?(^SHT`gE@Y${AM@h4XG|Zr4Oa~MHO+|zYkiep#*tNR# zHtKO-C}wgshlz^~MTV2HQUrmW&aolMm-aV;Oc$|o~teHP{Y+3+HGW)iW~AtyM*{Rh2|@b2ix-dwnD@YtU*e404wEZklH0 zBw$BGq1#fyB8SasQvxFI2E?B04|Vw%A_ zQoQ%X9=X4&A?1T@0N2@>G%*s!6BI^}Au@2pNkfW4j}xLKMy-yU7|;(WG4Ek>GU>M> ztk(SX+%qWRiTEmE2-je13**C4V1eRchBy5nr(N3W6g;+}U{-D*Z!#N@#KZLXRCBa| zziim<;NtfC>PUX%__tZPe#F0JN3~A}SgGCJKm8xyVL8c$5550tZ1UOu#$nO@RLand z>c8H_jnM1QpY4#agyYSi)gPa8eYCeL!Sg@__TngbOh3SS1iX_|U}bp`D-S8!so80Q z`)%FHP}W0yM157t0{e3L(6j8Vu2r#1Ih-UJl2%-p@(h(Ga+JYfj`}D&;D?L~4imEq z0-VW0C+SEi+Uc8iMvbzXqt*1wPR&go3)JEFmgF~QUH&337kv7dakK>Ht1X`X56qR= zG_f7toCl0rx$=q~!-6ZgkXH|Ww&TW_ViFge=HS%>fnLl1iRITVMqEPhiLes$qXN)6NRkrOtN{zC(#YHlilP3|{3)gcQ1^`V8 z7a#;W1at#Ale^MRr?d##3ipSA)mnry<84>aD7O(eX?7y9COGC$59 z9jQ#jW86(x|h>oy5!fTC&&7JO#PUg{jp%hX2m`=(D!2jCt&_N>7f}&2l(Bf zR^KQ5C(#z?Y#fk3cp;6HL`%3R< za^CNb%rl_lYD$>!r6RoUnhkgq9BS>Ac=ctzr+C{GJsM*?Y|d&BvmZ)^HmsYozJQ_ z11(8jDEWH5Xtk6Hw#?Infz@IOJHu6`0dLEtD@QtaLX8D8TnbC-@=gc1fk$EXRffin zlf$vEVRi2Kh`%!Hxn&-)=bXb*s8W0fcMgw)xsUV*#n(v{;z2&wDL3*_K6wFY3X7ZS z(LN+IoYt^}c$rk*gxO{n@cxA=JY1Vq>V<(bclABpC@5)0%Cl=6)=4yi!6J)JVni&p zGa6{#lw@SW?_7ZW1$BhGT-moe+k^wj))14Gi@UNP~Fw&=+j#olzc>E&8KJyj7Z}fY}wVCcKH(pU9=?cqP zyyvd!6@V4pi1v15b6;4Lw)w*jv`dh44)f-d~$IgmxD&MBGX9um= zIvt+$b(fz`e5kjOJPgiYQ$;h3cg!IIUHR|UG!O9y`#j<@j+wVx-g744Qp z3JBxW-{a9cU?G%e=uVe=yl&9*BCm^0Zt3KD7Z-JPG_2o5Vy~akY@kwBIJ~sb&OiN7 z{$!vD219kdmRpWTlQ}=dADyl-T)l}kof+3&Zv09YHM+xV@>Rb;2j|Fm^@Oi|3cIF| zteEwe>NVx`B1n_5uipv1K6D>Awn~ zpuh+Rmx21UJ*M(U*NVGyuBo#)P=5vdH)?6&QlsWi`Cqg@y47OKY7D>9kP8aG?< z(dW!!f_+1q3yVBW`T5S5_!@U+-Up1p?tCa&JG&1DH22r-%wNw`a=7<-J+_E)&U5Tq zTcRTm@S(#eqB<%ZC2aak<4QPSVX1;(BgjMP#2oy^kzV`}4ZJ{^~-eJEJj0Q%jMqF^W>ydWJlKY;>EqWM}r^K&|b}Ul>B6MjSS$<+E474xU>XM8HH2kl8^3Mjx=)g#-t`0y(oHehDc1Kr${+#3Po~<#Mk@0&*DuvE1)~5 z9V2Wi{cFv62G?f8vr<_6#@S`cZe0{ysBL0?2Zt0sev=zjN40xA;m!+z+2x_3NiwE) zQNKJBrtwpVwLZ2+uY``cCm|^z?M31l{c4pvU5*jA&#^eJtf4dey62v`TyaDhd0u^C zZ1+?H%L8|If3jeGFcp86_-V6t3v$9XW4c&x&VPYim#HR7hUQY3Z(`fBT_$~qn`>SO zoej3{@bKb!%-O-A?PA}@NO!b=(B*Xe{VT5O_Gd7Q1|$@1klYTWQ}k{RK!rBK7ZN_? z(m%yKmGRqB)!U|l=}y9+tN?-bIrRO*X0=mPp)B_c*7DZ-3+3pGI57YKWyN zZU*^(ystoLXlC}R1AecU%eRnT;NJ}%7(q$$%T_xq7=p0u`}BdWcu$uSB$Ni zWSuJdYJi*O!%>v#^PZrUi^U{_?~O;b`sn<)KxOy_Z4$rEi^J}&i!1vb)heS~kx#)1 zl^JdI-H1gHD}syQ5ns1TH>@<=mi1rR$q~T=m1cxBuC;G>;Svm3qBOn!L$Bil?va2v zP5fjt=ppJYSdl9ldh&!!O-bAwMDCTRezO;>midi|D*_saFV%BJyw^(X3VdE0YDyy! zo!!P9SOiIsN1uf&`4(4az^37{Yd~e>&j#Z$k7w-TcfUp40sLqxGL6}Mi?S1r)8%{# zaH4jLoW$i7UNZB$8#6J5x?&2` zf*<4mZSXwr*uCQ7c-rn6be5a)qN8_~MuVMzbnW>5CcxpOspzc=G}v*AjFlK(8}5yD zQweO|nA{$|E@H;r*y1z#xFf|dW( zX7*?{yHJoYQD&`NL5{|y7oL5-3e;;Y;A7j)=l=9yy4+5v%HQhDUs>M66hlQq&LNao z{e`X4rZSC7|NWE7usVm6t=Rh;3yvErMe1d_o2%d)PAl0FSqggY2+;tH7FL~lcxK&T zJd}ffDk+zSdsZin%m3<=++)D^;IsTIf}b45svA_#%?{3(q>4OaHTkAQ@_YjeCPp*h z*l1_C$*s{dosxV+1>M&F?kaaOo4`Ku>n(;bh0i1jfTfb3-Xg6CWnX9q^+}MB{C9cC zxnio)|KKG4WS#Rb`RE$zGQfJyC$?7Z1M6@|02gVCG!NZzzLplrXc| zG?<+(OAjo$nVqga7~SJBG6G?x=|UB0GIYb}j;ul10#+)4wc(%#-<4~Gua~Om*Ra0e zA8DfXmo~BnMJ+=G7#)Sb#B91RG}oO?b(DVXtotCOQlpE%cse8s)A30gq^w(*&mFiD z34Dr8uFy?m4(#XA=3BWUqBoao(KwW9l3SG-lQnahwFt@!YA$RZC@fa6`?~ZcED1rd z>@weSCo4Dd_HF+U)Eklsw3vY z&{3$0uB09I^S=<4bUuF_oa{WipU`ew&GZUz^`XN0{7YW8+^_?h_77C@eN--{*-(Ye zM&7Vgwex0L-&^|=O%8mP*iKhoAXoUIB+EHjWH*c0>i?wdaq>k%gR3bMoU#m*BN!319SDQ@_CAEc-qb9Q% zN5)6cxXa@2v>J4or)sTi_-2`AI6u`no2sv>v}x{fg8Ciu)m^S~pcSIc^1}T09sk`o zsmkbmjb{AJM?Mp3d~5|_MzG8_S*;{~Ydim=*pS$*$zj(%NFr#5a7-7+q-mn5FQ@UBLk>lP+NX04iKepmijF{~kLK;G@qWYoHzK-6Sl`=2Shk z_BR)=-Z2@DL@V&~P+AXY84%Ro=)-i6E^K;p;;@P*TT6Gx!;Id~p3Dbx;VsB!aA0N^ zbh;Q1!YO8lR$B+C9*uND$q*CQ_?6(hgVG+T!arQl?9pH+pBZ^4C$=SGEfX^lTOFmrMEP!bPLJC+h%#%Xs%J&@2GHvN zXx8%38rL`xkF`+J-T#vC`N>yurI^YNjv=q_M2%86GUg+LuOd6WFUfeZh0)*hmoCES z*d(ZkqA82M1ZEG3-TiOTmeIN6QkDIErcBlS3k&$NQy7{+G6#0nfct@i+`pA{_qI>f zLUuvU;6S&8F@iVZ(Qn5Q@zbo#Fv zJPaA=pXtyy*Nf6QW^kjZBG0k#*bub>5E?PyVL7-nB1B-58M0AZf zr2)cdkc9_Sq8MvyG}PuG5D21k1`2Hm*vMraY#V@Lz29n354@dQ4SZGSHeF>Bg;Hs` z;dxDQu?by|Lw94}GL*zqLfh1LsQ){{hs=Jqy^xH+qlLemiC<7qgrCgde>?5yZJGO* zlzbptu!7SCcC9K!io}6fM&S%e$k9?RMXM4LS@JNg4=$d)CQ$LFm32>jxD&@K(P{&5 zROsvp7qrDrrH>TEQkMgHUtf6*#$XB`(7N(_u;IM=4aESb$*gNUlk-Xnf&cqI%HbL> zjw6H9EOs#3skE+4oj>nSpFcOZu9LewufNW3mUc;N<);0`{F-0Bm7NsKBf~&q9U@2p zs<$$cQzgR276&qaU^Uv_*`=`hNPd7yxc9+)VnEz?dN{g~`J&rO#L#M6y%u_iR+yhS zDFij6G{?CETEB-*ru#>5xhEBj_J{~YpvjZAa#~0F#ZBt7?!a-Ffl*+vuoS-$Bvn{> z4X6EQz>7bC*FZwEMda9U(D!Z3@m+J1W zuz2l~evL;)VNOO@wqct)c4mkLJIYy^7f7E>_I^9q0Q$!BY5_&lk%WXv|u^O-a5VD8+#hPaAB0vG>j zn_BM6zo3G#c$Q~_{mu2AN|sHMB%fbp&aA$(Lb%MeGQ1!E{Ea>}3W&eFa%I=7pm3WY zy6EXWzdg}2Lr2GDUUQKLx8St>h6K15w}7P)-WbFsLtZuDf%tj?q`~P!%(FFi4^Fx6 zj$LqqyMxpbuN>xdUoTcrpRX(IewUD6H#hnimlT3Nlr)S~HVf6x5q%%=_GgoI*cKxt z6ps&E){M_q@p=tG1p*iQWKz}Wp2Rc~IxP_m=y3jVPo%_3vc%1F6@30(p*NF5qdMH4 zJyKU&TMe=v1G0EsXn@{hJ4wsX1Q?It3CElyaRPb;zhdG# zqQXgd5on1{)9BWQK(RD5EMA@kW98K)RObq`%7$)EC_DYQzOWhc9OlcnY7~h1eY!$= zN}pJ3yEwfX%&KKX@x<;qxBHPzygBlXBxO3~hz~f~tjM>%9>BT6@M*xuU-w*AiSC3? zuVt_7^oDcu7!x)i5ix#lC+%2Ua|LHGIGWOmW~?|MG>kyVR&J%kc}EU7b0xvqbue8p zDmZyp*R!hM*D3it;276A^{XIW#%9dsfhZlNva^iz+CB28xgFJ*19n8WM2alDSuN;H*`ldSRv zkmwkhyWb8#-2kQ}4jlWyas(V7Fh3TKngQb!Sj|5_evsjdq&VQHlWOQrA}q$|$jOUE zu>50A-{$M0iD=9H38kw_d)TD{Ek;B1I-CL?mumyh*n9P>C`Q`tOL+)4eR#f6$O^|l z`QdjAuOyzD9+XSq#C>i9$5|G!;I942JpP2ylg1`ifJF4Q6%XLw1u7a+Ahi6BD*{B0 zV7Uai*bpe8xqNB@rfGb`n@sfOm9p5^(A;~_>bya#TNooh=OiB;$2#qzmSn7a_XAiq zs}JgL?3JoU+CeF#4qBsEi`R!CxfTkWYyM$9Wm?T#u5T)_X^n+li+^Tazf-I9f?D@J zVg^4bNY6U~pAIdDZJb)OCn1O9wJ32zoPKnXh!9~;y{jKrUGo|G-htt( zHCA{I120Ql%4vzD25tds=q+QhOTEAS+}~QVoFIs-mZj+2p)BJ>Yeed6>W=TOYM7Ye znI(T;*VwUXJmYk8{F*R*(6Mb;^AQf4=ED!*h+;Bm!C|Y2o;mpNnH+y2vp^D!TZT^| z;2SIqZKsTVq#E0n@Xe|oH{9a^952>F8lr<+B$Kx!YuQ7>9+xU>vb~SBOg@eI&;;S5 z-g<|ikxQhr=an$ryDh$b6!O2d2O3`pJTbZmZXN1m>FaMywTbD4s;+X?h_!~IUJ-hL zus@w@V`y*}w&t{qIKKg%K6<_?JwW^SO;2B}4aQ-B;$Vr+( z0*Pq=R7|k}uSK6lsdlJR_4`!1B`l@tc1G|T^?wJYClLxVT>a2WGQ2JIWBi~QS8J+M zLEvw@5P$Z&$jp9KYINFISHpT2BQ zYov9mMv&L%;OZ`s=(fL{r(iXZ)DkozzE+~3`t+exw3#M%q zUAOKfT!DuVd@m6|Rl$kC3ZQebz`h4Sm)mQB`R`+0LpRRH&p13cFC7CG&E=ktU)>^# zIJF2jECe8D=|SlZ64;@&iljIQj$|MbB<0Ck>j)pN`Ry>My4 z&Xw1C{coC_w*T_0pq$T-cG}l92oy9y>Ywx0qQ7~oBNPz#{4p9I+1yj3!S?2f0*==- zT=5FcNC^s2-6gU66^?`p54Bpm3dKQ4qT}yc>Whyk#!j`zEA_}4P>ut0BS~6EZ6ia0 zaT#)g{h$^6A`uq*Jz*$F4MqEt4K$iQ!FOzhW$nckALTe&^pXbLEa7Jv?_Mb?zXxV8 zI8Xz)x2!q~6P+g(q&3NrXi&cra@zEP8h-+OzQh4h?G1?W1wh1~okbcD)#Bo%K3)}K z_v^-2={=qw8U>(BN@=27uM14n9BZ{+hOa8I*>EI>OwOMcG?FzOi5ob@}f;pV&57YXBX&(&%ov11-iqJV9gE8^+6!b zg(6Ar00hJU#~rW_8q!sPU3ZpDC6(p*L#@J)(#e2ay8bMKqyw?YzqO~514>Gl-=z8v z9~p6)RhWJKoZh@6T23((%T?cmk;(rUzhVH)2?(#|*f(l_I~qC1ShX*SS`lk_n|@@?;S^&@(`bJxPMKfK4b;-HZ2M4p%v13{vvGpf;b&;8+co$rI2pMK5Nhd4B$K?flJf_Eooj! zZYlGazD~pkF*cu8q}2{kW+QE5Y)yECiW=k8E3g;r39wEBvasiR-h86LC+9}XY~Tm> z_H7WvrO)qz<3SD=Kk-Y`Emhfr+M#H#yG;^GCeUcS1`R6#ZnA;v=lq@0pSpj{tC@7F zPIP}2SiikYn-2vRLU~sVhh+HUKAnrB3OwQ8XSmLOC7S8|%oX zmHm0HU!8LMXM@cE>E!3|@0j_j8H3T{U|n`j`r*gMF|XQHtfPhTzs+C`F05v5;Lf!G zPJO2>DM-5mOp51cXB#^yMizj-0VZ=7A28kNR*rj~7m(TY zdc^S_;Ks89H(1{QJTM|uld{7$r>A>mi20GXR{s6?x1fPYLBPhLY3^t^QSRVfy&wtx zp|e>XV<>!sOx;*suTUwe8 z?dLWaA}?c!zWoUw=z^vkj_IK!sLIQu4ihFf3wmuv1YhLyKWBP+p5`cb$(67HdZ{aI zzJ^Eh-&=aTzMzm>Q8XDJEF?-N+U?ck#xm?5FQkHJO?Ft}U2AwAd)^{Jds4-eo|8)R zcZ0s?#wJ=hZi47B^z8AFOBC>j0vINL)Qv~(X)%|7T&SWvS-lxT!Jxg4cH-%{W|-I- zq#PoNSUqgcUzx}+D`NyWfJ?wZ0EuH$An53P7t_lEbm+(Y*z!ZCWuKzZdVgDe^_Q&f znJ>d-b+rq2AR@F9b;Cgi7wS$QJ%JXd%&wy!MaQH6HLVY(?$p zv`L&vL?HP9SKpR$#qM|A70kK6FFL03Vynx>200L<4pkWt8r0bgi3jX1XZu^8j2V3J zn~LXd6ADyR>n_rfMA5g%(3oh$Izy(k`Nq~7-X!Hn&C8t{QiNA~HY)}?{r9cmb9gpT zpv$LVr;g8Q2(3LnW(R-EEhy5iYs`&pZQXhpRD~G%3FTkN?Eg?)^iZDNo+E6tG|eku zdA%7?fYxucdkZ)qjH%H^65I5HRvfiYo;W_q6$A7KJS+pb;fN6ggK~eZW{Qz(J5v(= zP3V7}VP+)c>NDy4WVh7Bz0kt+3%~l`lH$Cf{wNqb?w%W{vs_jzrL1XqZ#n#(=pGX0 zF)uOBGEypRf1miav*M#OAsn`z4Efu7Z_3ruk+aHjD9Nid@H=aeMEFVIi>AJK<|xD*_Pw)V#T zlr$Y72i2bhr6EE0F?GT1Fw$xp0_~|y!K=h{m_>l+xghuodMY4G>A(B82VrvocSlRb zB&gjMJN)>8#27Rl=XO~UM7inRUhYhK4IS|<_vYoHG8sq`wZz*0Ux zC=sNvTR7f_jB@s#&D+#0zYA&G=Ws@LJ&sEFwOYdPa~5h)&Ud*8St?4O|C!k(Q{Nhs z!{9Lvi#{_w!DL+($?P=k?s%Ex!$wl7avs0_%EVHvASz*dl9sMlt>=OBnd8F;?HJ~K zJlBgO3EED@{O!VOQ0qh14H-_U68wEw6qNDNZn%b8t!(h{U z`i%d?5$EN16rW4=>yPkMKK0`KWvr>~sWcJ>HoN|wQEaxkb>_zFOc@~)lI8J{Xd#UU zu(x*9*Qlf^7`N*C{#y2hBr{xLJa=u`aG!AL-OwDK0WBi~_k8?@?XZX_f>#mwHAf#F z8eK{rvy8OuuaD$@c$&@;iG&4Iqa6)c;fcBXj*N_mY0#oGyjM1)8$8do>bH6Lp4|P5 z7BEHs^h?y561NwW$R`*qrC_6sJ^%j6P~aaO7$wwkaYFOX%lf;}SogH#4zErq5@;G| z1?L;2eEYD~WJ4X19Uuz)qV%9>UyH!@9Qz(KJ5dSBLh++~Sj!%%$gJ^Fv)NRpr z;?EaoDAC;*ql(7a$%w*F<2T#*X+-Vp7#={>*bAhv`CNq@*eTPjH7D`b_C}f}cu=aM za)ebBw%OA1A5A}c1zbMpcREKrt)m92*}hhtcwa6Bt#ZH~dVqWuDIYjbDiTdX*4&Gs zG$N_}LVzA@0mx!Qe-q=GT4&|Rlqqzsn~q}6rM6AVCz!%U%gAY>DA(I0>Li=%QOZY8 z#A#y_HNCd!C0@hY@XyiYkp(B=YqGbTSWT?+Om-~#m3RCkpp~ap{ii0$xPkpeqNLAn zz%?`lC4<)-DZrqL_+VQ!G#SRb6?9^;Iv)Qs%QVUS82vmaIoL}j6PJ@9h(^azi zMJX(=^`ibtS7}l}4)>epwre5{BCv{P`#YYc>;a|S+MSE8%!`;|yUz0I9bAZVF`WE) zfZ;a!N*dFH5aZ|DIeU1wbkX^uPiK~jI#ctQ#8w%b3P=~_HPN5o=cv5o30es?1LN>tiukClr>f^i#aydFN{8)*!I7#N{SL|(RW-e=a$W2m`0Nn64XHWim+dv3ZCZZ+2e6PNJr3|oaN{_DG_qRP>`L1E0bv_f3z4*G}^K6@Xi{t)8Q$G1;ADPETl-h43z2+B|GU^^$^VvzZ%9?j@ro7e` zL1c-g+vXs8erwBA^XEy*;-WS%r2tMa1^}rs*4P7xCIpWM@>k*kE*b(41*;cuc=pZB zHO!tv;u|0dkjqP88#9SDhb@t1UyBl*!IS=FeCLxLvgz30pj?I%IRu-`m9HT*#8AN@ zaH-LR2~(xiy3*3f(IFWO0{v4xd3}eb;}1*n$4GRjA|9&Jy@8>gKbto)+(PTmDlTu| zC29((UPmjFBf`9u6aGk?hHbeX<=gyZe?gC;=5@XjHiR0|WZ#OL*%uUGGeI`lQ$jQm z6+X0D^UJ06>#uAdYw{SH`i@E9Z? zEG%}#;kuK7avh8+pny1PBjDx1D8e2-_%rBOw?H^3kcX34t?<(af;FJ0r{@_sAKwGz z>^}j8G>#l#)_{!d3u3g=;C_L~;n~?)X*|L5Ih)_jF0`P-ka)(yF$&O}vS}!P@Td5i3vt`e)I?QrWf~&u%9tM(LKL*e14#*TOKbAk&fiQUUu`t$Hw@;5pb>caBg15iuB3*C#U6R`wcX`I9h&tg0J;x? z_N!%`YgJD*qjT1kff(U>imRW<@a%^uYP+f-|ynA^nVT#9$hLI@M=*2TNg3vdp$rvbkzsDyUDt+5 zf3~Z3*Zp_Z%sb$n@%PzMTbS2FtM5K}qKh3$a{0dxeL}eS`H3r@dmzd`w+e{AwwvB} z{;}VRPH4bR;Yc}ITo{}{a3pjDXAaP|07VP?$2~+tG|!}(s{tX`*U6r&iL4hE7K5doG{(z{0rB?PU6x?9sfy4yuJKW5kIY?4f^4boe935YQ4e=PnnedMSnTH;nB7AsXAw z(Pt_6&Yh1VMVcN^>Nb`PQ`8g}<+=62?g>ABAAQ>9HjIB7tAe8+q6*Pwv9tbaR>d7o zYWXAv7ER|j0nQ{gK%yhdD@(OQ^KSpNwTO*z0Mt)&t6Kkh&q)y@&`p5a5v&$_>osSJ zceIZ%<(Zs?hcYtHb?RdijVuzl0)zl6A=cv%$58kwd}XE%)GnKl@5v4%yaKQq(R6fl zK$=zx$V+|;w#t02`y!ywgVOHs_`qT%-vp+rxQ-G!eZ?( zv(Nf6s@PG~T$)$i8p91j2k!5l)y6W5hn!r zQvi)0tXq;_+Aw54DpGJ?IIgssVxlLb|I|sf@j7j5OehH}a;AKNXBQnPZpnM2VTp6` z;JJ@|8Zsyjl)YHO2jZxysWSHV=eN)N<$6u>{z4e_x9hV$2Nm1PrmC2j_|QzM&4V18Dxb!oM5oPDaY1?1GNIx2_73)S zjPSU?hsw>G=$(zZX|sc}Rl@Qi?xJ%bw8>y6z~ zLvO$;-{!zK+Lue~k5b>d53Xu>q6xL8as}Tdro&YO0wt4CM+QjUPPF<47@r{Q2q?5S z(S0;gbK$Btf92EE?Pu1!acz=rku$?<kKcVRx18@O`1P@o1-yaYGlrw8E6(09cI3N zVfi$YP5$Vvf@?5?L6k-0F+cO)LG|s4!0O+|ttt->w!M^qa|smJ3Dp9T>|9FGRGp;~ zfH#LF&CS?yf^mplXG>;@iP|vJkOWQKxp(`*+qZ03srjxCUp-j`3{gWus1&jl2aF1B z%u091Kcxy~5}TMPJ#l(|WC{epy{?6Yn?`pdBO@?h(i$P5m}DFjn=t)_tD1MkM&M!Z zsrG<0arzQ$O1|giw3vx20!%F(LuJRh7x;}4gVmgP^zm4F8B|%bLOzIPZHQ3ix=m7o z+X3Y=ypp+ku*<=n)JiE~DwYzZ30Ugy!@-ec0_;9lvVuQp+CS{JvDq;zFv1SD@0+UL z9$s=&|H4g(`Wn7M>P*c+h!QPDCftmQ{s^1K^PD9N7fqA>Z}2)NUQmTGmgJ4-Ys3o- zh~BRQ^(kKPozLygHtVCy6KP>Xnv{9#2rl!c%eTHBm>YUEWllSpo^AT=P!bx8E)k}O z>k_Leh77RSVALq>17d==JfDmsuEDZL6<0iN59NPQxjo;uKUo+NK}EN6^)*ZfG^7)H zg#3GW*%<5Ku_MZJ)B~evg5OTtFbL1u5%xAb?u8uVh*${vmoc+^*k5bUV1x8yT8xaC z5N=Gvwgqfi9>@AKB43*mNc*c!B<*OuS!qI8pLGtoaumPN@jo?}4U=P6a|_lLRG1g) z)Fkubk~0EiDMV-a1ihbs*brY5;u?ijCpif+$#G3I1+C8U?nA52=9+}xd0$!q7Ak}8 zCc=R1L0>t(#raKAXR5y$pXKz#uK<^THM=vKURyM22LCX19^l3?)~TbZaqJZTlf>vb z`4Ww4OPC?maj~L_0ogJDVyOv;2n6(osX_(9gd~e~p^m#zGRZ0fb5H18j!*S1BBkM3FPA)q6_z%(Y@I3Hn*I zuc)F(dP(;B|8Vw~QCWRa-!MueAky6-NF&{dbSo&`E#2Knr<61(-6h@9UD93B-Tki1 z|9!t_JmWm)%lY7tp%;5!Ywxw@nscsSSlwV{YgX+3{jS04`Qam+&D2O9853YFpNZ!A z_LRR1px_8oL%MGZz9_D+Kpr%a-wLn!!l+Rnvs0{UBTIM10nTFt>94a2J(PunFL>`a zuFfYr=RxRl1<6n*OO88%-RdW=6PU66V_;z$17Y4_}&(vWw5F4nMQ z3=Z@ufSdZ?qmn-nT#JBen!cCz6 zLCogsV?m(qz?3wo-dO4)a_JOS ze4XlFbPNnS(;Ry<9_&3-e`O23mFrKcx>*h17P-abUIVb7V42?Nfgk_N_s``jz&#y{Gf263yLkEoy5;hRl{ ze^*IFg8#2nDvMSJ#yrf&&F8OxxH2dhf$kw@|Kw*AvsJzT)sr#Z8M z-0Msl9*t{tp9B3vV31=`D(q?~`r6nZOX(|3j}4X?nx$lJgs2nbUOyX=I_-|TLBUopo1+H}m2cG@7?bMbP^!0RjmYG3KTN(X3p1d#_!jUOppY z$>A4Q#p2-sW~i9fIW0`Q+@(@e0>iXvwB2pptr!9abo5Q2sgJT|@QO*eI!;1Wb;DksHcOmZVOm*=1N@?Wuyu1w~ zGixie&D-S9s*v90<|cZx?qcau@`|011xxAHefEk2KnIuu|0N_P1ESY5TWE$-?F$2I!{eL<_WmdRG294`JAMV2%{^i>;YFvaQmm| z^5WAn5aoWFx|{r+4IhW5@KC?l4EiGma+)!7W)TLPCKw5>5p9 zGv6wwC&jXI_Ky|H0#fSfbsP-0ly6d565RMLcnIY^JL54HyMa5X5-`l8fu(Wpuyn_j zgwO%7BWo|fb@H$L9{&uj>i5C#KXlnlw(&6?F#j#vVqB(^l?qbh&LI4%>QIk;tJv0C z+-wz1kn>@J`P}S$n9_jUH_YqwiT*QEcvfHaDA3WeJ8cqVa67w1F&ZqhZ4M)A_}298 z3p*6=G=gx77DJBwruF8PDX-Q{2q~;?OOk?u1S!&_VQ89r)cbT&yj$_I?q7N)G5!|p z8f+Jx$tO>4_*Jj=P~ieEH-xkx0vn;^?`lR~WIwHyqiXVAeIZ|BAR@OU9V+S-*1a}e zm^a2@+Jaqs<76aq4=-mX03G;A1TfKB0z9hMCJ@F6)jImLwNJJ0_+L>;K-n7hW0s+k z`Ek(|8o+zNfkTKL&=v>vlV2?IDv+5jI86&w5k7``x#J=6mu%6}>1OHX2Uv8DfYEww!#{uUlS;?A2y`wq=;_eLSc zyYy#nvrP^rU8gykp?owaAU?^~a;5eM)394#^Tay*3$TPD%)OVL(ymVeD4{i+ZnO&M zOZhCkKYrjaX*4KVi;(~SfI0#_-iLo{Fbj~FswND08sMLjD$%q5BHJ5UkE_5>^Ldze ziT@Z9?#-CKDk;vUQv4?E?Fl_kwn30=s3&QPSfZE=6Y9OYq1fo87>mX7u_=;PKB%U! zJ^+Ac3)SGD>1zUH4#zT=q>ncY)m?Z}T8lbQWJQ&|JEo5VM03LuFIrFPF1Mqzgw@=g z>8ce+Oner-b&$P7qhW-90$$UoRYDjov{Sxe>ooD#Bc;!jljdDSC4h9Oq)L~Ee)bhjSmds{v{W-PwvP+@?ZUcqE61Y znbUYz%lHjzS%wi+DUowXEGj-K8Nobnlbud@l_%$&Hd8W~Z4Y5Xm;2Jmyy1&jw6^!_vSp~G z5zG`Fe?I%*ANWI$bih1~eN$W)uy;uQ_s#Rj zy)W7O>(j}#L#@6qVhOddKZX%kwOW35H`68@(pNX{+v8^H3<0`T6|D&x0PLJePb$7R z!#hV%!3F}`0<9TAMIS{W0|)zL1K*7?H5)I`fwd##e$_&Qw%%AOcDDwJj2w+{w z>uuMhdrll+5i^pIfKJ3vu9g&6hHOTR{X}MVfi+@k(itH zcM7XZ^&_j-J5t)fDg0@8Z+&I|fOeFbte zhhrgfUoH5JC;_h5=vj@TPEQASv?vNpdLo-J&RPo{fMVu3eZbClnhBGkxao*NirVOSCHm^lNuV|P=)qk5J=BN%y0oEMIGg8B2(!7NR4MckSy>k#*CXu ziTV$3{9w?@8>Ix*omo9t<_s=s+gNTBX3G7kaq9oH8)toZpli#v#pSstu;@2%lj!IH zk(?4O+Cvb(K8;QjvGRJJz9(?gVUYoUZIR~0%2?^?ju9%~+=Z0tlCp%%xC&cH0v`Px zbHcgABe&W1Qk3E=&)rzT{uiNNn9ndW!F%(W97yMwB~>?cinIOwD{PP~I{c(_`@^HN6j~9?7`d^)c z>R-9aH1Mnf0%-*7CQx~Cm4M5B79+ih^jnX$>dW?9g;MnZ`h8**Y$m;g`t?)|U)=%e zt3TXq#Z4KGM1l=I7E%itLD7;3SXw1nXW?U(#KNA_VP*S#=QbVIzXCOiOgaW|EczS; zWzkqrYNr(5Uv6u7`m&cH^6WIB)xk)Dwk+;Mm?kv?(EGU9*xc+|?-sY#M|ig&{czg< ztadpn{ntr2L{ZM8V3BlQ0VXpKhkif3B1YrHxwFo#;~rj!_XcS^dA#{@R1*S*koJrF zpt+dgsk=FzeKZCwzpY^O+=OSSLkbkvV?5S*%E-LFZstLui7LE;@B)E^#+xD`f^WOV z$m53)H^P33v#;PRQ@v&veNx9Gv!GiyYk&_0{~OBDC)t`Gm)#r0*8Z`O zWfv_Cv>y`GR9LL0(Tj@_vK$vDA{e2Bfre$N#^dR4pOoT0rW+QfhM8LVGiw^yDJzX69*!cK2h%>-F*8^wO}JUSF@q=*oF~#qXO>TyHLcbjrH+< zQT0i!(RtWYqmscauc(w;n&VcvjVvf2He(pNGtn52DWKbK3jc>q|0zOh^Q$;wy zb>%N`=wd)i2Kq_7@EYE_6`>`an%^w2-p(E7s1Ym{Vz@-2R0%R#(r!57ASoc=qqFFD ze>D53*IqroKj!$7=jOW=2Ji<1{e}17PyynR{f3b-XJX9Gwt=XG4E0MMBc9eAEa@e~ zr=F(q+0wWB?qwUj8^Tq4zv)%9)w;n_@|-$jNU7&6G&{|3`~OnGmP!^x4AqF-I9bDC zTsw?kIKFOnJ0Gxk^G#C9#9B!B`G&SyGK$jY8FO=9>|Idga(H`jgWC47X%0n1B_gvO z1ziA(l1;^vO8 zT3;@B(^WfiIRp>xh-*Ee8vVl(Z=wn|>4mJW=ur5W+Ls2>>koJ&tjYQ#sMrBisfG_*^KQ&{I!5loNN<@j52lgyzH;SH z>`Xqu@7y8$*$GM))98?-0P9>yp@3K(M`${_(eQiS^N?}xYZ9CNP0Pnj%qV8xS*o#T z7u$l18zZlGDGl6)UZa-}whxF9a9x-K!z@`-W?^aGM0@T!7P@e;)Rg&w`!&sDc>+%q zf#}(g`u_;9{}g9P01a@!_vr^_EJMI!515~&HM9UjD2O2OP^NHOGssb(Fl~$~556bZ zKIu{i$;r{D!SI(-O&N}`XP=PsXHTB)9?2>u_}Q#i*_MAHzwK`Qv-kYg6-a7Rflefb z8{Dj0>Oj*{F7C;qHB$5CF89!bGhuqNG}Fx=DRuK(EUtg7{AfC~o~PRpLI4oD+_5ny<^HwA}) zkoWXA9)Hh(>^$Xul-H({YMpl{_FqL58?=W-9i7kVLQPy1SR5afOZD3ltt`PrsR zM1VfRp7j#FMh?G{HS#JDJ}OYo2jrp&?SH&gWu3{8#Q=uN!jg;@n7OF{smMIaZU3y_ zZ)bx3gd-+pkVQ|WX3X+P;TQGiD2T$U7T-_$90ZTqzEBInFa#5ZGS`ld_xq_u*#}^g zSS|D3RR76`S>K}#G-{&?nEuFFaVA8ylH3YhIQ(SKCTMheQ~t+0kbAF$e&|9M2n5dc99h^GOe%sVb~xh$4Aw7hz{97k;`=(0s!NR5Zl56v58C$qbz1 zAvQyh^D92D+E?*c=suW#Yy2EiL9q6im~LVs^03O$%(VszRk-OoUF~g%_B4lb;^9|v zKg=iKo-g++te3zZ-oUVB0__P}1E4;}2gY%nP{7pF7&uc5rSU2|J`2649O5tkx)IjWg(Ned?G9 zho}a&B(-SO>c}ZtcE|fX>z|7=>7O;cc&jhYtiOVsaH<30!okiUc#>Rk0_6i!oi2f= z$lLFQO!-PnKitK`Y0vQAaKodomewt=1I==3AaV<^Z9vR7mUi~}v4FSokgrm+l$WAG zVUjdq(0Irzc(mGQH&bmnq#aWb3iF`9EhQq;3vNG^sQ$o;dTb)>m-1Y*#o_zMvdnjf zLW&p4|2B_FsRcZpE{{{pWg=nxA15p!!qDfMow9B3BWbyzpxQeo{EipA6%kin$?*$B z0%9q<*&un(G|6BeAJsQmF^kn|Ilv{*b7wodYIXQDb?ysfvA_u=Z#By+6iq=%|G0kX z=r3MT?HXGHR={`msA0DlWSiIC4aS!=+9zuCcj zQu+I~^~@xnBod)iAA=`-jlnOUD$A9A+L(F15hlL(yC!O5nI`fcpmTvgag&To8T#qc zV=$IHy@6wrJg;c&7jpQ&=f(iq6O-N>s@6g%KF!Pc7KR+3xF9VKF-b7TMqBuR#u_`(ineBtDqLy3+=C;7PC2=dqgO zXz&+>eGaoFa94klH`O^2+6PTf>(TCIxgc?}SkSnck@JlubB?Ya_zUbA3>X)5XO0x~ zzFWS`ui=5Kl2T2Iq2`GGe`mgXE=7ZWfLS(G^?Hq;lDF*{Eh;c=yIbEy6)IAKiin$J z{h`N6ZBwT!O8!j5>cVt(JK(2~K@4$1q;_+R zP4ss+1H{WR%t>WJ_z})EM33D*v<$W&7Q6$jbkH(`YlJ@&-@!WwU+NvgV!z$K6NZGX zn*&!$Wl91Ki#LNK%o`sbD1cm2iCLvMX)LW0w1DmE2bM3iP*7Yk(qg~@1?&bJKvEy< zUYQ_fEltz%^QQu3?qs0JjhGk*gIeFa0h>7lxE!%eQ05j%IuS+g9H_=HQ-cYX7=Xe$B#Tsg?fh!=q_o0 z#9?jCpSgZL=75TXmYE*Uq>U$awLq_x_YC!0;kS#0KWLJCw35?)@wgp5aIW7(hn3#E#oFOB_D_L0l zBzlTAb3!R<)Y%$xt1urY7XLxo8HlpONr=48CW4Sbr=J#kNqwI=e51P%G}H~>cDQhB zajCQJVkM@79{{h%`u>wA^fq()k6T&i5>Jt=Y_4c{C3x#)ma(I$^7eh_ZZ*h^%`vE~ zsK_!I{>hYwGd>I-K7PbB1-p3 zx67D_%c;Dy`Qs5#+0+xJ(w?70s{sA5lO25nO!0s!^i}|x(3_f3K!#HQc78w_4*2E4 zj)inbO~T9h+I6Z>~?#q0Ys_;_P%hQsX%D^c$C>Wzjp zw`A{B0Iv&Y0V#p%FBqY20Xtp|;Ol)fXWAWx^OAtAtKsR6Yg)E=$ow>a`kDY5y3hU=}Ne=5pFz^QQXI@;%7A(UtxSfuN z{0{7Cqu{&&@R9TYSKIM${xa$w2OB%S0v&gTcG|qgtOm^+)+9I2*8X06gj6a^g~4Uf z5L;`3IKmjm1FBW4DuYUg|IH^F_Tw(Jw2(tF9KEGQ@y#A>QC933$wY%Uj(T^A#+$nr zT|R$1UH4&hK5>ZOc+>RAu=tXTSYTfHZDDtKdXfF*3y()z=PYpTviMN>l2icS_u)Ht zY=tFsGfmM)8=|nBesgtGSJLn+XbMkt zqr}lqzn;DYl4`jy-TW8@$?9)JS^w2mHd zB!K$bTJ+PeoP^f1H^x%4-2Zh`y6n6x z$O^zaNAq02D&>*7nLaL@wts^f5N195Cwwu9&oBNZ|J5~72mJFP{&^&afEJqcnK-La z>Lv?o)%vPkS#JK=V~YkH&rSixO4?xMDaYX%mzAWWC%L-VQKU+-F<`R-DF%!Nts!7) z7c!Hzj#1tb=Lh}+_y}}$b;Y22WfV>+P)J8Wy<2&(dTAx>Pn$zp4tBGyC=95F<=yKA zMo*$_E;dd}dW4s1gQaux77Qx5Dmdi30jDL4DE}{9HIomoLM9htq+Z|9kYMKGdXrON=3XwgxCsIBVt0mI9Pr$BO|UpQF?Ay5F2C}{1st(&QdWX|F~5~PXOAN zTx~tcG}39BE<&9En-KM4VB+njkFu1~6xG!vQX0x&*ECfk%~BWjNVGp<%QWRyv@0q- z=_%nS0e^B<=L5A#r!k!ND8>Fo?o1qEpV8TUeJKP+=!GyBB(et|k82WDrFejT?}a^(Kj^~Tk;b=#wL<$5h(>H5)Aby4Mt_Q=#cwUCEb`6?$!!muZJ_|XGD+A+ z$Z7%i;b5)|r!u}M#%I#`a$vo{g&-}Fd38+*ht-r9-D?L9_>NLcKD}AtUJ{>jDD<4D z=jl!Kk;|k*{Gq@y_`JaIxg$=S!2sof9|Y9|Tic#RJGLM9r20DpjzMw@G53sXR2DY3 zCZt8H2M;S73EFWO zR3OiJus<>Y0Tsv_KwRNN!5<`FAkbsK*@pq~5(nHOP~YSO;bgfCfrj>T&ON1XB(lzn zCy!2?urHQ=1&d@Hs_pXzI0e6o%}5^B?Uv&Z{t(MZY_`II6)dT#eI2n}-K+Fs?_+jW zn}0}%T5_%8C9S#UOW65OLBG_J?y)&MP&Hbu`XZmI?W?4uSxA6C6fC?Ts`I{C*`TrH^vS`}5O zmX?;&tE<*hC%})8?vH(q!ZUtJ=vdTK{!xK=o_OTP@S2ZDK51!m$8viWcC?0krL``` zg{J_{9@lp7_%r#_+Pk#L!z7OqYEQP;qg;o?X=Y=E8b7?zFfb}fU(3YzJ<4uJhdLBW zJksjqIdwY?@torywV1SvmZES*XEu>}A9>g5oZ6VUBn=mjmshcS(~8c#+6pis8_SKo zTsfJ?Ro900M0dT5U+*5xt1{i9@Ls@{EbWCY(AmN~wj_-V7ky1{J^D8+o615ct+#H9 z|AY0CJoEr7Mwms96Nu_J9-Xc*U(dL6ex3geFXYKqOP5yu+#cSx;oN8a?VxSZ* zeNniK=o@|I*%jO*Ox>GiXv=oXkJIk)r@}#;(5Y1Fp=|w^z;cSgZiC{DRN;Pr_JFvC zRZ{5WNU2fHaEq>9~$9V^G&dqZt@;c?ud{AqModhjz9O`K8*~gZF$g5r-@ct9<;?(5QP0KpMo+Im%kRm0e!Q)7xb%(65$;ob% zoQVxT?1~W5ey^xP?fAHLpAp-5n~Dz&N2+f?zu)J|V*F-n*6-{rL?rSbpqp9J4$@s+ zX3^=nf>V%&p^`pXusXfhA)hLTGuB1cU#AlFUA$)C3U&!X?dX5HBeDn!33(_7{=yg- zZ@*_K3igMyJZ;CE0jIB}SXyAKkTh~-aLb|Cl8@V~uc6k~%U*fPbbhF~a z;^WSRCxdxyU;0#&?HE>hqxMbl%DZO5%hlfZ<`mKg8yw>6he6F!4MEdV#;4uA0# z!<9!AS9=5#MDD~=o#@+Q6I;iC@l)%fFYlDW#E$$Pju*^K{Bv|bh`7mhXh)4p9{xng zVyuwR`Bg(*NT{a^cD@P=#o5wFu;9uxTR^h<__2u=t6V_x`c~Cde;Mh;@vCvH(z_U2 z`QsEZ#|ZKb30;AdKE1O`| z?3wF=nwcf+UbUyA!!IwI6LzS=4%2gig!wf-$zc$TAna}JM%|y2G7%*SOqQn$%2Y)w zF1|#0C1^&d8EcHmolprac_z_pTEblw&~CBUMFo1#AS1yftR;1qLzHx>dY*rwoZ2xS zDbd?RVWVneQkN;O{G6xN;2yZPA6$JgnhU-oFTF2(fljb}{Gn^IJIMe62@nqt%L0aM zJl8Bv8LzWf6a|FvgmfG*9d58H)^t@oq-KZ5BP&$&9ZUZtSUPYWTYG&cxHr|~N{x&% zVTV|BiG}(0ISE%^?!4}?3BHk?tI&rL6F~YtN=U+_8+8>GVZ)VyXWjzUZrbMA)1{5o zUpq0O@kj0W+z3*g*9Lz5Y6}hyNZofR2I5yS$ zr?yvevj^MxD^Q{)oXc4XVVHWDW^dqpq4x!;ow#qmk-^T`k7w=G=QnSkkNW45vVTb* zB6Qen2`SEw+`W3bEF4E9QzcuTKf|?%0+x<~p`#jJLHTj{tfjof3+9f^o}A2+NxUR~SNHb@zvWO}Xit65?w5>= z`b_;lzstt57pue@YbY|>IN9b7;`^}N?ucMzlnTSHv_}g;jsbcyS=etDY3>=;~ z_n_9|yQ<>@p=?7O@G>EzkMB47Jvhj4Enc`M_SrSHXma?0_&fZ*uy2E+XwjwMckV1T zs5O$#!b9cM_#teBCytmMtZ|86dZmA_&(e3!(q!?gkKMzfu?Y<)0wUgxh4#_s-@SDN zB*%QOwPntnn##X?tc53-BZydJjTH~ZBOod6`vBx{F)E?KR{ObF1p=fNic~}TvEPx8 zti=br;^;S=skTI+&n?LUQ%N!a)5_U91e#9P5l3v*wT^PNARyxm$4cH~tJJNqo zZ?>SYnhO7B$|S{0H}+-P+9+p(DpKaGzT+KtJ*vQ_SE|mpZWp1_4gFI+E$SC(B>zS-gSiii{%&&YIr0bSrQn}+_FrGAz zs(9dn1@%<9OD2{XL35G+;kQQc$HfL$zvHF?i0~~&!5Sn>dOKzB>HMq)>h#^4c3h>#M-Ge`TO7i!XvsP+aPJb;Qq$c`#D@5xP$by6Z)iSm~}M#B-Zlvk?!PaXTs9K8X9)mxEb!| zk!I2Jh$!RBf76s&myW=s@q$QtkRtO$w85pl7*k6CX~oe$t|=nQbZve0cW<=M5c}th zj)-I=e%g~;mdyR2aqb_G2TFNc#of_~Gq`qmD8Hm4NX|hB6F~k*`BfO&r;MHNXJAXZ z;4xfFXGLQt)Q$V|Omp3#V3mE`*Svfx z`?AzThnyk{cGIY1zOpB<$uGZ1pxcy5xU+jXaM&)D;AZk&?1arm&@`7A{09&xtq&gb zd0NmEj;Xf)ur#Ajq@ogWpFQPS7EHt6jJi3$J&%-gOJ8l*Gx?P%Vz<41Al#N2^O+*8 z(Q#l$O+}R39~XqT{RX#fp*2Ih0^@Ha6~DZ=Z20+3KCUX-_Fb%8y2wG(x|rQMA1RBM zydzoR`|9%2^dzN&Se92}<+IoA!|7;blrhe~hq3AY8peU_I59EF)DA~)EvdQqNd4?J z>IjpsJlS6z@`*KFJyQ}y0tTG&uDbMA z9j(v9XePYot4Z70mqBDD(Q_{kQeMgG23hVm+||Zw(zWiMprSq!#=3JRocyu<86{3Y zGWbD76RNtpT3SKjFHnW8t62t6C}g^15KOcj_C6iCIVt!>8@RjE%<^t#pz*Y^808YB z9kmIh2_(&%&|3}GyiT?3u_WrOLu}*ZOVlqZgUS%{N&%IEQmdz%Od?}{B9o?d-HFFqR>ENL(%BiX0$K`wVZmbb#aU^`5 z^l%^}`EEbIV}=Vt_Y>zGd+VGlvD~W%*9*y@G9npsm7?)+r zX)(>g7X>c&&=jgXp7eohWlOhSUVib{vvz0QKQh?TB& zbWevXA?(JNmn8vA5dp!$h@km9yRZ-kk6z_}p|1FWahGRkuYGD8_x+a*8k;AVmxSNV zhc2ck2`csB+H`NyL4Alh%@$!#y7h9!`F0!UZ6;%gMoz&jf$e-;hC-S z1P64E`_qwtjlaIVjkuZNF;=3^PNR?}6^i-#Y-t(j*@2VYMW?~G`y>9v#YN$vdRneuMc1brE96_++M7yl%}Cq(%#nL;~qHZnG@G#MtGueA!#&NlQr5Ve-y&=ZLCJLN!_?!fKU2b5RGqs3%{?!~!V z38o?wlJ--onzk@OzoSjFm4KO4ndtsg>)$s3QG$(oR6%8Tx zcdE#>GXuhjfF<4zXt_nhgq;tqNlzNVo&L*^9BzC#M(Z}xFEg8L#ql9XHCxyCKKU?W zktg=qypK zeJ0L>7Ikn~-R5?js-C{^EdR`os~gD5&W-n3cC`xGRfkpGECw})_*hXG1ohl!!189+ z_!WYTLqGQGi*gtq3ved&D){i@x4h{!Ab#08IWaZIK<=Q5i5a(Zb6fuF#i*XBB@H7H z%tAgs2?Ls>ha@P7-aV&0Lf>3$D}o%<{#&E|uPG9kBOuoRUTACfsO55VgYN{G7k!VL z-~|Hhnu@x*e3Se#TU%VQNIwSYu`?#tAQKGs5TahceleoW+xyi7 z3j_}~zGcDc#($fY`1kyLS_tj_V6OV+?!NOcl-e`2Wy;H4ydRy^71bHA@f4h*Cr;;E zrA#&$PK;qW7t~KnXDhBeZlI3HP#aZ*93xozXJ=CZBg=+rFD8k~>1*)}UC+P^D`ov% zy}nj+$1VXrm4iN2tJdF3Y>;DM8XgjADIL(_R2^Nfz?rJNB$2YNi)C zJ6*&~vK<3M;+f|?>o6okzmqzmGWX%RgI#7`ZdN(wG{2uV87NmSamM}dZ}%?=3lB#D z=QT;q^zFV=M)%W3SAXL+hYp}3&o+He!20`PJ@qb3b z5TL6;th!dsLqgBrhb)X>99jlW{#!>Anlo)R`;mu37(6iz{EhyQ!G8o()c zxY+sV?%haWE&x53+`t{a43?=`(y&S117F~LYYm7z@d)0iYSUf>IN_=}g+9u~>HmA* z?c-y#S0g7EmP$oJvUSJI4y*ej6&nnq4%(@YL`tSFXyTBdKtVu${qWA>e}3s3VsN_P z^Q>7fT5$Q%Ey0i_G5rozGYywy5;`J#ka+~5Mcd6MOQ9cu;4jk|-@ z6$>c*F_~ZUB)M*QU?{2 z9XT)G)Gu4s?}&?mHvH=!ILrymotmFBRz5Tgv?#P5`7p!I{Qsp`ez;D*zugR)c=N;# zCp|K}Nu0xS_d*;Yg|Ahl^`NEX6St*!{B7maGuS;yKS1_x@$|tS0cE=$(6LQSSb9_I zjo)QG(4v2F9^O7&+2=q;E5HEebg?)?hh-#0hcL$wg z?0a_1RQ~(^VNt&BmSs=SB-=Vax+Oh$uiY%_(JdV5i?ja=QZk`oPH%QMWW`qu;)ev_ ztNGsjjx3+35&xI!E9D5B^-&$nHl+4BdDxv4!++n?Y;{r7mn((Jbe)>IlX zU*2F0aIMGfz^Sw?y;44)$<9`X*M?^VuR;8~g|tcn;qQIn((VrCfTVTB4OJhWvHl&S zpnr?&8)d0e@QA?7KEXgPNmkU=CO-2#jEdjjSx z9h=|h{~K~`r%`Ve18TAhd8&=iu)%0EQic1=%}xCDk`KG+6_C6jp8j)jmF+mClFy?b zd24XGu80J(<0J8bRW{)l1jvmn6@Wh14!bk%MG^vy2WFkuU}2#k1;f&gS>SIj^D=M^ zDet`tO3sCEBZ?R6jst8zmH3n%YslIglE(Xy<4qv#mae?l-(OMA^=A&M$9UOug9ZHs zFCyx5*1xIKl?M+8S7E$8TJrd$X`XQHS1))XZ(5IS24pn6rTzBz<;%py?o(bm&;RPtpmH8`ITK_ge9`64>#YGmuU^W?eo(kBiK+u z>woLs+uojSe0&^if62hl7T2B+#5=koPqH$}duzc$rGdb|xhx$AQMP-gApcPXJ?`x6 z>@U+L1WQdW`KF^84?s1>ZJ9fD_$8T88X>3oNe3d?3CM;%lxgvT!*|0E29WE?92_3r z-le{%J>vBp?TlQN!TjnHkWCaB<-DS%4J{`lV*tD}EEkiW(dI0jg76Zudkw6L0TG`oPi;{q@)C<-^r>8zQ(ITkPs21 zw-NboD_()0mWJ_N-EY|pop~IDy~Do~QU8t=G0N8=&(}8->2A*TcqCy<9yU4m8nD*| zmf>OT?eBhOXCu9O)w<>mIfw!J_<(mFP^g^0Y}*1#88++1`u#*7pq35}?3SYYz|fVx zCOcHQZ8}mXjEX~7%rp_v!eqk46^>OyHimo|<^Vb!6qFfk$EUQm6Tf__hZeLX&jG-Nf3RT^~9R#}jJ+t4-n zx{|mUh?63^f88OJY2f_C%J?eqSJ%A?)NukRh5)y$+T+@qS*y?M#W_$n0}ny~X!c|Q zpbV&D#()(FCKi_4ercUrr9t3UH82p(dLM|4@EQ*?VLpNxz3k}&Bj-bWKwR(ch}D+v z4kTb7phmhQqFiLb$}luE42>9SX}&AW&oBUM40Mt*O*7nrz_I{3Ez-aVqd=vUQ1(0X z@cCTqYuO@5iYE1g%_V6ltD`gdejkByR6ybyExTiQa7T^X*a@DMhvz0w_0iqcwZd%t z=Wi5hFbC|h)N{=pI_lo4^AfRU3d5{82DQqzcaH9uaT_`P>k(kM#Q=<5m2EfSPrT6| zlAZ5(JkV95x%j5#)t6pE`gMH)klr=!lIZID^To57UBhgurTBjdQ{UtIXAJjIZoY1& z|AJvie+G@)3u8{yvRtp;4*fL00yM&BVjn5JzTqsc=qnj~blyu7?= zLSBSuXlQaY%6g>_+5zBot{opor!S>vj+<7q z`#L*2gF3$U!`0UA?(MthSR9=HBS_!`zO7G9ZnJR2051ZxPX9k+gzuZ1O9lWHGE-C2 z?Ce>N$N*3lg4L*o`0u9%%d3BTK89v40VF;Czdbc*@FZrNTv$L{=Hv^L9~>Ak7))d$ z=CN(xdBa7=%bN^J9s8#TH*oo{Ky|;;bd(ejlPn#vQ*nT$2oQBBdRqYl3e+bnzETao%a*hxeYe*u>`yFYH5%$3EX z2ZACfEY0r%k#PXnOwv#2`$8h576gXmABt6&?k;u%0JL_+^BnXPEeAmNr%>h z$Y&}BhQS>(E?Ro}Fc2IjOEtN{0Mj5o=&mPv%v$yBAe+4fJ|Q8Yq56LcK1xV3#4fvT zphl4j4uoRS@;L6G>+9>kB<6`(@p%TDIM)XF-d}@*HBBJaF1I7iX&kI5@CrX=!2O<}$$dhiD3c6>IC_!p#>o zygOY=l+N!`+sv%p$N|JNr~xP9E$ip;c+fTx6N3Y0u-$`$D85gR_gLuY?Pk5yaA)pdgxE$*Q zDD~&ceg}Rs!WaCyeYG|#3TkRe3Vt_eh}p0LecrcQcwmZI-?V}xz_|AKVs{b>qKV*k z{&x*1=$lYoDNwJHS^N0>~_z8*k770>K1G2h zicC1Fx|$t`bpTOSh;0%W_op|>;VGbdhlPvlJm~~!8-Yp3>v_Yv(GzJ1av0z&gX#-% zB|D(DUu!w{J3CsaNc6W01t;faVqha^2g)U}t~G9f$skG%1iJUCT`4Wrg zC22*)(dq}V3G-cck=rz%B7l~F9(bcOI1Y3?Hm$cbV8-Sf^~XZS4ekMLyV?#7d}Blb zVi8qA?dIZ5{d=${iGqYd4R}-l#jjtCHcO41#sl$yB=Ni5u~r{6_dxC?Fj@uNtm42n z1JGDEe^YH7rSj03fMhICb~^3G(>ypu^q;VoV~E#&2bkJ)F$g?&RqM%PD6e~LbbUjdVVaY-`pVf++m zMryFB{a#tgtgq)8WCO+M?qvRX8Zje0ZChN~{l%`Rr>6kKN#ad{l?D({ZgIa{2c1XN zTZVVQK?!m-FnUd7Jp%(u%{uF?;__BDo^&h72AsrZj11a^^gakTEB-G3wfk-_CKZ9Z zcce&RL@tb))WN~Q4HyLhfWLzp7ovyO*Cz#J3%dbJDSBlG*`>0&?{R_sgO! zmt{~%f=wJhO~En&tol9BG}6)08A{;{2a81sAOS%vDp0HZ31Wl_Fr7NRyyWBylD`E* z{W4oY0oGZ+!%-G!fP&^18>{;G9}p#f{`{H5WkpEDZJh(g1lEMcHWcnpAb&RwT3m^Y z>c2sPz&J<-kOh!Uc#FFq|Ty?9)NOv<288paEv&82{ekWK{$V3#vf3O$bf+!M1fDlC*-Xe==J#`h7p7 z1q%d(i#`>;2X7VGxQ#Maco-_IPjIf@E_+I7gcSti86A(|9sI!mr?e~oYVu5@VNo2l z6c|wiaRCM_8U>-q5<*pEuu||0Qv+2hNJEjOVTTw6tD~WaEJLM0;A4u6=*WNt1I7S~ z$RYt_hgNo|Y?&HNOj4wg#ol-3ADDB7A9D`h`M!6#&waN0M5!j)G4LlFYh?mBXq&_M zw|$Y3H>Q)1AK#RppI_(&BQ**A#CbXkzrdiffznuAc}pzITaiQjrK}?U=F^!V;vR2$ z5VPYdM6xvXW4rjIBpW*Y3N9~cE-u`CB1a$?_GCwm+;zl*vBOJLgSFK>AB19rrBbQT zbD%?Gu~=lYadOqwiMVbk=ZYM?Cu9%882qZ0mDBk)wU#YV7_|gU0EaI@Ov1#-C~lM) zKrx8g-g^KWaKi^^8T(}IS7^-p@K;H z3HCE&Pe3%_3ekwV?T|29v+e<$1>#j5*2&JwItknN=Nm_Kz*uN0ijl{tJEzMmN_rzm z2Vq1{(LQ`L0I(Bm6Slz^GLJO4CB{bjT=vC zd!W3+ohkl&;C7fEGO{Rx{0Zg-xt3RRbM1H-kxf9H8G7fmfB$%E1Bf6hawlhJ{gRTL zVdyHre-NkwFM)rcj|Y@`Wl&g}S4;EbeK4C05%8FgXdG4pAUNHyIut_zL+&LJEOm|< z$isTUWW`IQS9gV&ZN-Xl(hMsy z%?^X8DsJH(O}QaGX0Va7WxD(7Bwouo z`dKzcUkiZ1daq!>>%-bsVu48OBGB7r>(+B1AOEU2xW*-B;Dh>zUPQNLIIS}%XotNnlf@M;=vWzB-tugv|&1lLC3KH*fbFToM6;5v^%q;L-c729uRt}_hLx3ZcK zfdfihd;mmsh`11B8?(ofJBIQ!<`b5D z>D?_~a6O}b*#3m_lwd_@81`2gP|o~%2g{HK7Vnd7)`}yknYD9wH$V4|g$r4iK43mW zf*7?HZl6P&L6BiM zkH^!Xs(D7NK(%uhmOU7foPY_;7hJ_+^)uuk%Jx#x85}yi#gjiR*U&vs4{iCmY5v1+ z!P`Z(1aQGrcFNw0#A33+&@@)29ec|&EUvFlqz0Q&NbwZhh&SXzmMh%tv$aR6gB(#y z;08#@(fv(+LJnZzg(|~qWlp6+31#F11^5M zI`L&wM>K*cnvg<@O79FlSQ!WRt?TR@B0qiq_;?42@&rFaM7AfQep-n1INT^MGj%Wf zTko$-Y;0}E&JI}k`uji848^zJPoOpsIi*8tms_}`lrJJ2K>YXg zU!U{EL$#SfyDfFs1JIaE3a~N5ZBCXyW61UO^^Ghn4yU9vum^<)uBBF>TnCLZUecYx zQBn4%PMu24U%XGUSFAmH5GDC5vImkC8$rdwNrB0SvlvYSW_O6%kq0=7zwTH35I}V^ zMC<|}LHp$%biYcp8F|O@P}D5}kgBILFJBf{DdRuFg$rtk38qY1(o_?}Z)QnHj?(n0 zl{&N!{`Ck8c2$P6-qGH^!oa`)($#A=ZBj2+T?Z{{T7Dz{MKLM>(AOu+j~=c4^lazC zX@rG>n@_(_q?+N5R900vamE-&YmRdR=Kqg{b{GG-8VhYB&RN%O=5 zv;OkHl2qvMt2?`pf<$>?mGgcD_Z*NO@u#*uybaJ{1`kyCyl$Q!<3V9H=h8bCCg$c@ z0)d4`s$vS>QK80ANm_}>w__^CHQe>;;QE|)uPe~!i(b~o3Swb$OtJxtOB-5{)S%!W29x2?FYt1lw z>@K?uKIKzUqKvVi)@UZtJSl8?tx|2{P`tz$?esUu^6_0_ha6B{&EWqG zLLH>HHbp^9?8tuu*N-|P{}aIeKLarTTl7Yo@#*R-)r;cCpV9Dl N=%BxM&Hm8yzX3Dk1t$Oi diff --git a/docs/tutorials/img/nli_simulation_fig2.png b/docs/tutorials/img/nli_simulation_fig2.png index 6c1f2838d96c142dcddafc17fd2630e979e66362..a9ea90ffa33a392480206466e73244ed907646dc 100644 GIT binary patch literal 68298 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 z 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