Skip to content

Module Dependencies

This page is generated by scripts/generate_dependency_graph.py from the live import graph of src/rwa_calc, built with the curfew dependency tool. It is a snapshot of how the code actually imports itself — not a hand-drawn design diagram.

Regenerate after structural refactors:

uv run python scripts/generate_dependency_graph.py

Inspect a single module's dependencies and dependents directly:

uv run curfew report rwa_calc.engine.stages.classify

Last generated: 2026-08-11.

Package overview

Each node is a top-level subpackage of rwa_calc; an arrow A --> B means some module in A imports some module in B. Module-level imports are collapsed to their package here for readability.

flowchart LR
    p0["rwa_calc"]
    p1["rwa_calc.analysis"]
    p2["rwa_calc.api"]
    p3["rwa_calc.config"]
    p4["rwa_calc.contracts"]
    p5["rwa_calc.data"]
    p6["rwa_calc.domain"]
    p7["rwa_calc.engine"]
    p8["rwa_calc.observability"]
    p9["rwa_calc.reporting"]
    p10["rwa_calc.rulebook"]
    p11["rwa_calc.ui"]
    p1 --> p4
    p1 --> p6
    p1 --> p7
    p1 --> p10
    p2 --> p1
    p2 --> p3
    p2 --> p4
    p2 --> p6
    p2 --> p7
    p2 --> p8
    p2 --> p9
    p2 --> p10
    p4 --> p2
    p4 --> p5
    p4 --> p6
    p4 --> p7
    p4 --> p10
    p7 --> p3
    p7 --> p4
    p7 --> p5
    p7 --> p6
    p7 --> p8
    p7 --> p10
    p8 --> p4
    p9 --> p0
    p9 --> p4
    p9 --> p6
    p9 --> p10
    p10 --> p4
    p10 --> p6
    p11 --> p1
    p11 --> p2
    p11 --> p4
    p11 --> p6
    p11 --> p7
    p11 --> p8
    p11 --> p9
    classDef first_party fill:#e8f0fe,stroke:#1a73e8,color:#202124
    class p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11 first_party

Full module graph

The complete graph, one node per module, exactly as curfew show --mermaid emits it.

Full module-level graph (241 modules)
flowchart LR
    n0["rwa_calc"]
    n1["rwa_calc.analysis"]
    n2["rwa_calc.analysis.attribution"]
    n3["rwa_calc.analysis.comparison"]
    n4["rwa_calc.analysis.recon_registry"]
    n5["rwa_calc.analysis.reconciliation"]
    n6["rwa_calc.analysis.transition"]
    n7["rwa_calc.api"]
    n8["rwa_calc.api.errors"]
    n9["rwa_calc.api.export"]
    n10["rwa_calc.api.formatters"]
    n11["rwa_calc.api.models"]
    n12["rwa_calc.api.reconciliation"]
    n13["rwa_calc.api.rest"]
    n14["rwa_calc.api.results_cache"]
    n15["rwa_calc.api.run_index"]
    n16["rwa_calc.api.service"]
    n17["rwa_calc.api.validation"]
    n18["rwa_calc.config"]
    n19["rwa_calc.config.data_sources"]
    n20["rwa_calc.contracts"]
    n21["rwa_calc.contracts.bundles"]
    n22["rwa_calc.contracts.config"]
    n23["rwa_calc.contracts.context"]
    n24["rwa_calc.contracts.edges"]
    n25["rwa_calc.contracts.errors"]
    n26["rwa_calc.contracts.protocols"]
    n27["rwa_calc.contracts.results"]
    n28["rwa_calc.contracts.validation"]
    n29["rwa_calc.data"]
    n30["rwa_calc.data.column_spec"]
    n31["rwa_calc.data.schemas"]
    n32["rwa_calc.domain"]
    n33["rwa_calc.domain.enums"]
    n34["rwa_calc.engine"]
    n35["rwa_calc.engine.aggregator"]
    n36["rwa_calc.engine.aggregator._collapse"]
    n37["rwa_calc.engine.aggregator._el_summary"]
    n38["rwa_calc.engine.aggregator._equity_prep"]
    n39["rwa_calc.engine.aggregator._floor"]
    n40["rwa_calc.engine.aggregator._lgd_floor_check"]
    n41["rwa_calc.engine.aggregator._schemas"]
    n42["rwa_calc.engine.aggregator._securitisation"]
    n43["rwa_calc.engine.aggregator._summaries"]
    n44["rwa_calc.engine.aggregator._supporting_factors"]
    n45["rwa_calc.engine.aggregator._utils"]
    n46["rwa_calc.engine.aggregator.aggregator"]
    n47["rwa_calc.engine.ccf"]
    n48["rwa_calc.engine.ccr"]
    n49["rwa_calc.engine.ccr.adjusted_notional"]
    n50["rwa_calc.engine.ccr.ccp"]
    n51["rwa_calc.engine.ccr.default_fund"]
    n52["rwa_calc.engine.ccr.failed_trades"]
    n53["rwa_calc.engine.ccr.hedging_sets"]
    n54["rwa_calc.engine.ccr.maturity_factor"]
    n55["rwa_calc.engine.ccr.pfe"]
    n56["rwa_calc.engine.ccr.pipeline_adapter"]
    n57["rwa_calc.engine.ccr.rc"]
    n58["rwa_calc.engine.ccr.sa_ccr"]
    n59["rwa_calc.engine.ccr.supervisory_delta"]
    n60["rwa_calc.engine.ccr.wwr"]
    n61["rwa_calc.engine.crm"]
    n62["rwa_calc.engine.crm.collateral"]
    n63["rwa_calc.engine.crm.collateral_type_check"]
    n64["rwa_calc.engine.crm.expressions"]
    n65["rwa_calc.engine.crm.guarantees"]
    n66["rwa_calc.engine.crm.haircut_tables"]
    n67["rwa_calc.engine.crm.haircuts"]
    n68["rwa_calc.engine.crm.life_insurance"]
    n69["rwa_calc.engine.crm.link_allocation"]
    n70["rwa_calc.engine.crm.look_through"]
    n71["rwa_calc.engine.crm.ofcp_routing"]
    n72["rwa_calc.engine.crm.processor"]
    n73["rwa_calc.engine.crm.provisions"]
    n74["rwa_calc.engine.crm.simple_method"]
    n75["rwa_calc.engine.crm.third_party_deposit"]
    n76["rwa_calc.engine.cva"]
    n77["rwa_calc.engine.cva.ba_cva"]
    n78["rwa_calc.engine.entity_class_maps"]
    n79["rwa_calc.engine.equity"]
    n80["rwa_calc.engine.equity.calculator"]
    n81["rwa_calc.engine.eu_sovereign"]
    n82["rwa_calc.engine.fx_rate_sync"]
    n83["rwa_calc.engine.irb"]
    n84["rwa_calc.engine.irb.adjustments"]
    n85["rwa_calc.engine.irb.calculator"]
    n86["rwa_calc.engine.irb.formulas"]
    n87["rwa_calc.engine.irb.guarantee"]
    n88["rwa_calc.engine.irb.stats_backend"]
    n89["rwa_calc.engine.irb.transforms"]
    n90["rwa_calc.engine.kernels"]
    n91["rwa_calc.engine.kernels.allocation"]
    n92["rwa_calc.engine.loader"]
    n93["rwa_calc.engine.materialise"]
    n94["rwa_calc.engine.orchestrator"]
    n95["rwa_calc.engine.pipeline"]
    n96["rwa_calc.engine.registry"]
    n97["rwa_calc.engine.sa"]
    n98["rwa_calc.engine.sa.b31_risk_weight_tables"]
    n99["rwa_calc.engine.sa.calculator"]
    n100["rwa_calc.engine.sa.central_bank"]
    n101["rwa_calc.engine.sa.covered_bond"]
    n102["rwa_calc.engine.sa.cqs_lift"]
    n103["rwa_calc.engine.sa.crr_risk_weight_tables"]
    n104["rwa_calc.engine.sa.factors_output"]
    n105["rwa_calc.engine.sa.guarantor_rw"]
    n106["rwa_calc.engine.sa.jurisdiction"]
    n107["rwa_calc.engine.sa.rgla"]
    n108["rwa_calc.engine.sa.risk_weights"]
    n109["rwa_calc.engine.sa.rw_adjustments"]
    n110["rwa_calc.engine.sa.sovereign_derived"]
    n111["rwa_calc.engine.securitisation"]
    n112["rwa_calc.engine.securitisation.allocator"]
    n113["rwa_calc.engine.sft"]
    n114["rwa_calc.engine.sft.fccm"]
    n115["rwa_calc.engine.slotting"]
    n116["rwa_calc.engine.slotting.calculator"]
    n117["rwa_calc.engine.slotting.transforms"]
    n118["rwa_calc.engine.stages"]
    n119["rwa_calc.engine.stages._ccr_shared"]
    n120["rwa_calc.engine.stages.aggregate"]
    n121["rwa_calc.engine.stages.calc"]
    n122["rwa_calc.engine.stages.ccr"]
    n123["rwa_calc.engine.stages.classify"]
    n124["rwa_calc.engine.stages.classify.approach"]
    n125["rwa_calc.engine.stages.classify.attributes"]
    n126["rwa_calc.engine.stages.classify.audit"]
    n127["rwa_calc.engine.stages.classify.classifier"]
    n128["rwa_calc.engine.stages.classify.permissions"]
    n129["rwa_calc.engine.stages.classify.stage"]
    n130["rwa_calc.engine.stages.classify.subtypes"]
    n131["rwa_calc.engine.stages.crm"]
    n132["rwa_calc.engine.stages.equity"]
    n133["rwa_calc.engine.stages.fx"]
    n134["rwa_calc.engine.stages.fx.conversion"]
    n135["rwa_calc.engine.stages.fx.converter"]
    n136["rwa_calc.engine.stages.hierarchy"]
    n137["rwa_calc.engine.stages.hierarchy.enrich"]
    n138["rwa_calc.engine.stages.hierarchy.facility_undrawn"]
    n139["rwa_calc.engine.stages.hierarchy.graph"]
    n140["rwa_calc.engine.stages.hierarchy.ratings"]
    n141["rwa_calc.engine.stages.hierarchy.resolver"]
    n142["rwa_calc.engine.stages.hierarchy.stage"]
    n143["rwa_calc.engine.stages.hierarchy.unify"]
    n144["rwa_calc.engine.stages.re_split"]
    n145["rwa_calc.engine.stages.re_split.carriers"]
    n146["rwa_calc.engine.stages.re_split.flagging"]
    n147["rwa_calc.engine.stages.re_split.params"]
    n148["rwa_calc.engine.stages.re_split.splitter"]
    n149["rwa_calc.engine.stages.re_split.stage"]
    n150["rwa_calc.engine.stages.scope"]
    n151["rwa_calc.engine.stages.scope.resolver"]
    n152["rwa_calc.engine.stages.scope.stage"]
    n153["rwa_calc.engine.stages.securitisation"]
    n154["rwa_calc.engine.stages.sft"]
    n155["rwa_calc.engine.supporting_factors"]
    n156["rwa_calc.engine.thresholds"]
    n157["rwa_calc.engine.utils"]
    n158["rwa_calc.observability"]
    n159["rwa_calc.observability.audit_cache"]
    n160["rwa_calc.observability.context"]
    n161["rwa_calc.observability.formatters"]
    n162["rwa_calc.observability.logging_setup"]
    n163["rwa_calc.reporting"]
    n164["rwa_calc.reporting.catalog"]
    n165["rwa_calc.reporting.cellspec"]
    n166["rwa_calc.reporting.corep"]
    n167["rwa_calc.reporting.corep.c02"]
    n168["rwa_calc.reporting.corep.c07"]
    n169["rwa_calc.reporting.corep.c08"]
    n170["rwa_calc.reporting.corep.c08_07"]
    n171["rwa_calc.reporting.corep.c09"]
    n172["rwa_calc.reporting.corep.c34"]
    n173["rwa_calc.reporting.corep.crm_substitution"]
    n174["rwa_calc.reporting.corep.generator"]
    n175["rwa_calc.reporting.corep.of02"]
    n176["rwa_calc.reporting.corep.pd_scale"]
    n177["rwa_calc.reporting.corep.postpass"]
    n178["rwa_calc.reporting.corep.templates"]
    n179["rwa_calc.reporting.facts"]
    n180["rwa_calc.reporting.kernel"]
    n181["rwa_calc.reporting.kernel.bases"]
    n182["rwa_calc.reporting.kernel.columns"]
    n183["rwa_calc.reporting.kernel.excel"]
    n184["rwa_calc.reporting.kernel.filters"]
    n185["rwa_calc.reporting.kernel.rows"]
    n186["rwa_calc.reporting.kernel.sums"]
    n187["rwa_calc.reporting.lineage"]
    n188["rwa_calc.reporting.metadata"]
    n189["rwa_calc.reporting.pillar3"]
    n190["rwa_calc.reporting.pillar3.ccr"]
    n191["rwa_calc.reporting.pillar3.cms1"]
    n192["rwa_calc.reporting.pillar3.cms2"]
    n193["rwa_calc.reporting.pillar3.cr10"]
    n194["rwa_calc.reporting.pillar3.cr4"]
    n195["rwa_calc.reporting.pillar3.cr5"]
    n196["rwa_calc.reporting.pillar3.cr6"]
    n197["rwa_calc.reporting.pillar3.cr6a"]
    n198["rwa_calc.reporting.pillar3.cr7"]
    n199["rwa_calc.reporting.pillar3.cr7a"]
    n200["rwa_calc.reporting.pillar3.cr8"]
    n201["rwa_calc.reporting.pillar3.cr9"]
    n202["rwa_calc.reporting.pillar3.generator"]
    n203["rwa_calc.reporting.pillar3.irb_scope"]
    n204["rwa_calc.reporting.pillar3.ov1"]
    n205["rwa_calc.reporting.pillar3.sa_scope"]
    n206["rwa_calc.reporting.pillar3.templates"]
    n207["rwa_calc.reporting.plans"]
    n208["rwa_calc.reporting.tieouts"]
    n209["rwa_calc.reporting.validations"]
    n210["rwa_calc.reporting.validations.checker"]
    n211["rwa_calc.reporting.validations.evaluate"]
    n212["rwa_calc.reporting.validations.rules"]
    n213["rwa_calc.reporting.validations.scope"]
    n214["rwa_calc.rulebook"]
    n215["rwa_calc.rulebook.audit"]
    n216["rwa_calc.rulebook.compile"]
    n217["rwa_calc.rulebook.model"]
    n218["rwa_calc.rulebook.packs"]
    n219["rwa_calc.rulebook.packs.b31"]
    n220["rwa_calc.rulebook.packs.common"]
    n221["rwa_calc.rulebook.packs.crr"]
    n222["rwa_calc.rulebook.registry"]
    n223["rwa_calc.rulebook.resolve"]
    n224["rwa_calc.rulebook.v0"]
    n225["rwa_calc.ui"]
    n226["rwa_calc.ui.app"]
    n227["rwa_calc.ui.app.calculator_state"]
    n228["rwa_calc.ui.app.main"]
    n229["rwa_calc.ui.app.output_writer"]
    n230["rwa_calc.ui.app.progress"]
    n231["rwa_calc.ui.app.recon_signoff"]
    n232["rwa_calc.ui.app.recon_state"]
    n233["rwa_calc.ui.views"]
    n234["rwa_calc.ui.views.charts"]
    n235["rwa_calc.ui.views.comparison"]
    n236["rwa_calc.ui.views.hierarchy"]
    n237["rwa_calc.ui.views.lineage"]
    n238["rwa_calc.ui.views.method_split"]
    n239["rwa_calc.ui.views.reconciliation"]
    n240["rwa_calc.ui.views.report_templates"]
    n2 --> n21
    n3 --> n2
    n3 --> n21
    n3 --> n22
    n3 --> n95
    n3 --> n214
    n3 --> n223
    n5 --> n4
    n5 --> n21
    n5 --> n25
    n5 --> n36
    n5 --> n43
    n6 --> n21
    n6 --> n22
    n6 --> n33
    n6 --> n95
    n7 --> n4
    n7 --> n9
    n7 --> n11
    n7 --> n12
    n7 --> n13
    n7 --> n14
    n7 --> n16
    n7 --> n17
    n8 --> n11
    n8 --> n25
    n9 --> n11
    n9 --> n21
    n9 --> n22
    n9 --> n25
    n9 --> n27
    n9 --> n174
    n9 --> n179
    n9 --> n202
    n9 --> n209
    n10 --> n8
    n10 --> n11
    n10 --> n14
    n10 --> n21
    n11 --> n5
    n11 --> n8
    n11 --> n9
    n11 --> n21
    n12 --> n4
    n13 --> n9
    n13 --> n11
    n13 --> n12
    n13 --> n15
    n13 --> n16
    n13 --> n17
    n13 --> n33
    n13 --> n164
    n13 --> n174
    n13 --> n179
    n13 --> n187
    n13 --> n202
    n13 --> n209
    n15 --> n11
    n15 --> n21
    n16 --> n5
    n16 --> n8
    n16 --> n10
    n16 --> n11
    n16 --> n12
    n16 --> n14
    n16 --> n17
    n16 --> n21
    n16 --> n22
    n16 --> n26
    n16 --> n33
    n16 --> n92
    n16 --> n95
    n16 --> n158
    n16 --> n214
    n17 --> n8
    n17 --> n11
    n17 --> n19
    n20 --> n21
    n20 --> n22
    n20 --> n24
    n20 --> n25
    n20 --> n26
    n20 --> n28
    n20 --> n33
    n21 --> n24
    n21 --> n25
    n21 --> n33
    n22 --> n33
    n24 --> n30
    n24 --> n31
    n25 --> n33
    n26 --> n11
    n26 --> n21
    n26 --> n22
    n26 --> n25
    n26 --> n27
    n26 --> n69
    n26 --> n223
    n28 --> n21
    n28 --> n24
    n28 --> n25
    n28 --> n30
    n28 --> n31
    n31 --> n30
    n32 --> n33
    n34 --> n92
    n34 --> n95
    n34 --> n136
    n35 --> n46
    n36 --> n31
    n37 --> n21
    n37 --> n41
    n37 --> n45
    n38 --> n33
    n39 --> n21
    n39 --> n41
    n39 --> n45
    n39 --> n216
    n39 --> n223
    n40 --> n25
    n40 --> n33
    n40 --> n223
    n44 --> n41
    n44 --> n45
    n46 --> n21
    n46 --> n22
    n46 --> n24
    n46 --> n25
    n46 --> n33
    n46 --> n37
    n46 --> n38
    n46 --> n39
    n46 --> n40
    n46 --> n41
    n46 --> n42
    n46 --> n43
    n46 --> n44
    n46 --> n108
    n46 --> n214
    n46 --> n223
    n47 --> n22
    n47 --> n31
    n47 --> n33
    n47 --> n214
    n47 --> n216
    n47 --> n223
    n48 --> n49
    n48 --> n53
    n48 --> n54
    n48 --> n55
    n48 --> n56
    n48 --> n57
    n48 --> n58
    n48 --> n59
    n48 --> n60
    n49 --> n216
    n49 --> n223
    n50 --> n216
    n50 --> n223
    n51 --> n22
    n51 --> n216
    n51 --> n223
    n52 --> n22
    n52 --> n216
    n52 --> n223
    n53 --> n31
    n54 --> n216
    n54 --> n223
    n55 --> n22
    n55 --> n30
    n55 --> n31
    n55 --> n57
    n55 --> n216
    n55 --> n223
    n56 --> n21
    n56 --> n22
    n56 --> n25
    n56 --> n30
    n56 --> n31
    n56 --> n33
    n56 --> n49
    n56 --> n53
    n56 --> n54
    n56 --> n55
    n56 --> n57
    n56 --> n59
    n56 --> n216
    n56 --> n223
    n58 --> n21
    n58 --> n22
    n58 --> n25
    n58 --> n33
    n59 --> n88
    n59 --> n216
    n59 --> n223
    n60 --> n21
    n60 --> n25
    n60 --> n30
    n60 --> n31
    n60 --> n33
    n60 --> n216
    n60 --> n223
    n61 --> n67
    n61 --> n68
    n61 --> n72
    n62 --> n22
    n62 --> n25
    n62 --> n30
    n62 --> n31
    n62 --> n33
    n62 --> n64
    n62 --> n67
    n62 --> n159
    n62 --> n214
    n62 --> n216
    n62 --> n223
    n63 --> n25
    n63 --> n64
    n64 --> n31
    n64 --> n91
    n64 --> n216
    n64 --> n223
    n65 --> n22
    n65 --> n25
    n65 --> n30
    n65 --> n31
    n65 --> n33
    n65 --> n47
    n65 --> n64
    n65 --> n78
    n65 --> n81
    n65 --> n91
    n65 --> n157
    n65 --> n214
    n65 --> n216
    n65 --> n223
    n66 --> n223
    n67 --> n22
    n67 --> n30
    n67 --> n31
    n67 --> n66
    n67 --> n214
    n67 --> n216
    n67 --> n223
    n68 --> n22
    n68 --> n25
    n68 --> n31
    n68 --> n81
    n68 --> n157
    n68 --> n216
    n68 --> n223
    n69 --> n22
    n69 --> n25
    n69 --> n64
    n69 --> n91
    n70 --> n25
    n70 --> n30
    n71 --> n22
    n71 --> n30
    n71 --> n33
    n71 --> n62
    n71 --> n214
    n71 --> n223
    n72 --> n21
    n72 --> n22
    n72 --> n24
    n72 --> n25
    n72 --> n33
    n72 --> n47
    n72 --> n62
    n72 --> n63
    n72 --> n64
    n72 --> n65
    n72 --> n67
    n72 --> n68
    n72 --> n69
    n72 --> n70
    n72 --> n71
    n72 --> n73
    n72 --> n74
    n72 --> n75
    n72 --> n91
    n72 --> n93
    n72 --> n108
    n72 --> n157
    n72 --> n159
    n72 --> n214
    n72 --> n223
    n73 --> n22
    n73 --> n33
    n73 --> n47
    n73 --> n91
    n73 --> n214
    n73 --> n223
    n74 --> n22
    n74 --> n33
    n74 --> n98
    n74 --> n103
    n74 --> n214
    n74 --> n216
    n74 --> n223
    n75 --> n25
    n75 --> n31
    n75 --> n33
    n75 --> n105
    n76 --> n77
    n77 --> n216
    n77 --> n223
    n78 --> n223
    n79 --> n80
    n80 --> n21
    n80 --> n22
    n80 --> n25
    n80 --> n30
    n80 --> n33
    n80 --> n86
    n80 --> n98
    n80 --> n103
    n80 --> n214
    n80 --> n216
    n80 --> n223
    n81 --> n223
    n83 --> n85
    n83 --> n86
    n84 --> n22
    n84 --> n25
    n84 --> n33
    n84 --> n214
    n84 --> n223
    n85 --> n22
    n85 --> n25
    n85 --> n89
    n85 --> n155
    n85 --> n214
    n85 --> n223
    n86 --> n22
    n86 --> n33
    n86 --> n64
    n86 --> n84
    n86 --> n88
    n86 --> n156
    n86 --> n214
    n86 --> n216
    n86 --> n223
    n87 --> n22
    n87 --> n65
    n87 --> n78
    n87 --> n81
    n87 --> n86
    n87 --> n105
    n87 --> n156
    n87 --> n214
    n87 --> n216
    n87 --> n223
    n89 --> n22
    n89 --> n25
    n89 --> n30
    n89 --> n33
    n89 --> n84
    n89 --> n86
    n89 --> n87
    n89 --> n156
    n89 --> n157
    n89 --> n214
    n89 --> n216
    n89 --> n223
    n90 --> n91
    n91 --> n31
    n91 --> n157
    n92 --> n19
    n92 --> n21
    n92 --> n24
    n92 --> n25
    n92 --> n26
    n92 --> n28
    n92 --> n30
    n92 --> n31
    n92 --> n157
    n93 --> n22
    n93 --> n24
    n94 --> n21
    n94 --> n22
    n94 --> n23
    n94 --> n24
    n94 --> n25
    n94 --> n26
    n94 --> n35
    n94 --> n72
    n94 --> n80
    n94 --> n85
    n94 --> n99
    n94 --> n112
    n94 --> n116
    n94 --> n123
    n94 --> n136
    n94 --> n144
    n94 --> n158
    n94 --> n214
    n95 --> n21
    n95 --> n22
    n95 --> n23
    n95 --> n26
    n95 --> n28
    n95 --> n33
    n95 --> n82
    n95 --> n92
    n95 --> n93
    n95 --> n94
    n95 --> n96
    n95 --> n158
    n95 --> n159
    n95 --> n214
    n95 --> n215
    n96 --> n94
    n96 --> n120
    n96 --> n121
    n96 --> n122
    n96 --> n123
    n96 --> n131
    n96 --> n132
    n96 --> n136
    n96 --> n144
    n96 --> n150
    n96 --> n153
    n96 --> n154
    n97 --> n99
    n98 --> n33
    n98 --> n103
    n98 --> n223
    n99 --> n22
    n99 --> n25
    n99 --> n33
    n99 --> n104
    n99 --> n108
    n99 --> n109
    n99 --> n214
    n99 --> n223
    n100 --> n103
    n100 --> n223
    n101 --> n33
    n101 --> n98
    n101 --> n103
    n103 --> n33
    n103 --> n223
    n104 --> n22
    n104 --> n25
    n104 --> n30
    n104 --> n155
    n104 --> n223
    n105 --> n33
    n105 --> n78
    n105 --> n216
    n105 --> n223
    n107 --> n33
    n107 --> n103
    n108 --> n22
    n108 --> n30
    n108 --> n31
    n108 --> n33
    n108 --> n81
    n108 --> n98
    n108 --> n100
    n108 --> n101
    n108 --> n102
    n108 --> n103
    n108 --> n105
    n108 --> n106
    n108 --> n107
    n108 --> n110
    n108 --> n214
    n108 --> n216
    n108 --> n223
    n109 --> n22
    n109 --> n25
    n109 --> n33
    n109 --> n65
    n109 --> n78
    n109 --> n81
    n109 --> n105
    n109 --> n108
    n109 --> n214
    n109 --> n216
    n109 --> n223
    n110 --> n33
    n111 --> n112
    n112 --> n21
    n112 --> n22
    n112 --> n25
    n112 --> n33
    n113 --> n114
    n114 --> n21
    n114 --> n66
    n114 --> n223
    n115 --> n116
    n116 --> n22
    n116 --> n25
    n116 --> n117
    n116 --> n155
    n116 --> n214
    n116 --> n223
    n117 --> n22
    n117 --> n25
    n117 --> n109
    n117 --> n157
    n117 --> n214
    n117 --> n216
    n117 --> n217
    n117 --> n223
    n119 --> n21
    n120 --> n22
    n120 --> n23
    n120 --> n24
    n120 --> n76
    n120 --> n94
    n120 --> n214
    n121 --> n22
    n121 --> n23
    n121 --> n24
    n121 --> n25
    n121 --> n30
    n121 --> n33
    n121 --> n41
    n121 --> n93
    n121 --> n94
    n121 --> n155
    n121 --> n214
    n122 --> n22
    n122 --> n23
    n122 --> n24
    n122 --> n48
    n122 --> n51
    n122 --> n52
    n122 --> n93
    n122 --> n94
    n122 --> n119
    n122 --> n214
    n123 --> n127
    n123 --> n129
    n124 --> n22
    n124 --> n30
    n124 --> n31
    n124 --> n33
    n124 --> n81
    n124 --> n125
    n124 --> n128
    n124 --> n156
    n124 --> n214
    n124 --> n223
    n125 --> n22
    n125 --> n31
    n125 --> n33
    n125 --> n78
    n125 --> n156
    n125 --> n157
    n125 --> n214
    n125 --> n223
    n126 --> n21
    n126 --> n22
    n126 --> n25
    n126 --> n33
    n126 --> n125
    n126 --> n130
    n126 --> n156
    n126 --> n214
    n126 --> n223
    n127 --> n21
    n127 --> n22
    n127 --> n24
    n127 --> n25
    n127 --> n93
    n127 --> n124
    n127 --> n125
    n127 --> n126
    n127 --> n128
    n127 --> n130
    n127 --> n146
    n127 --> n214
    n127 --> n223
    n128 --> n22
    n128 --> n25
    n128 --> n33
    n129 --> n22
    n129 --> n23
    n129 --> n94
    n129 --> n159
    n129 --> n214
    n130 --> n22
    n130 --> n31
    n130 --> n33
    n130 --> n86
    n130 --> n125
    n130 --> n156
    n130 --> n157
    n130 --> n214
    n130 --> n223
    n131 --> n22
    n131 --> n23
    n131 --> n94
    n131 --> n214
    n132 --> n22
    n132 --> n23
    n132 --> n94
    n132 --> n159
    n132 --> n214
    n133 --> n134
    n133 --> n135
    n134 --> n22
    n134 --> n135
    n135 --> n22
    n136 --> n141
    n136 --> n142
    n137 --> n21
    n137 --> n25
    n137 --> n78
    n137 --> n91
    n137 --> n157
    n138 --> n21
    n138 --> n22
    n138 --> n47
    n138 --> n105
    n138 --> n139
    n138 --> n157
    n139 --> n21
    n139 --> n24
    n139 --> n25
    n139 --> n33
    n139 --> n140
    n139 --> n157
    n141 --> n21
    n141 --> n22
    n141 --> n24
    n141 --> n25
    n141 --> n133
    n141 --> n137
    n141 --> n138
    n141 --> n139
    n141 --> n140
    n141 --> n143
    n142 --> n22
    n142 --> n23
    n142 --> n24
    n142 --> n93
    n142 --> n94
    n142 --> n112
    n142 --> n159
    n142 --> n214
    n143 --> n21
    n143 --> n22
    n143 --> n25
    n143 --> n137
    n143 --> n138
    n143 --> n139
    n144 --> n146
    n144 --> n148
    n144 --> n149
    n146 --> n22
    n146 --> n33
    n146 --> n214
    n146 --> n223
    n147 --> n216
    n147 --> n223
    n148 --> n21
    n148 --> n22
    n148 --> n24
    n148 --> n25
    n148 --> n33
    n148 --> n145
    n148 --> n147
    n148 --> n214
    n148 --> n223
    n149 --> n22
    n149 --> n23
    n149 --> n24
    n149 --> n93
    n149 --> n94
    n149 --> n159
    n149 --> n214
    n150 --> n151
    n150 --> n152
    n151 --> n21
    n151 --> n22
    n151 --> n24
    n151 --> n25
    n151 --> n33
    n152 --> n22
    n152 --> n23
    n152 --> n94
    n152 --> n151
    n152 --> n214
    n153 --> n22
    n153 --> n23
    n153 --> n94
    n153 --> n214
    n154 --> n22
    n154 --> n23
    n154 --> n24
    n154 --> n93
    n154 --> n94
    n154 --> n114
    n154 --> n119
    n154 --> n214
    n155 --> n22
    n155 --> n25
    n155 --> n33
    n155 --> n156
    n155 --> n214
    n155 --> n216
    n155 --> n223
    n156 --> n223
    n158 --> n159
    n158 --> n160
    n158 --> n161
    n158 --> n162
    n159 --> n22
    n159 --> n160
    n162 --> n160
    n162 --> n161
    n163 --> n174
    n163 --> n202
    n163 --> n208
    n164 --> n174
    n164 --> n178
    n164 --> n202
    n164 --> n206
    n165 --> n180
    n165 --> n188
    n166 --> n174
    n166 --> n178
    n167 --> n21
    n167 --> n22
    n167 --> n178
    n167 --> n180
    n168 --> n33
    n168 --> n165
    n168 --> n173
    n168 --> n177
    n168 --> n178
    n168 --> n180
    n168 --> n181
    n168 --> n188
    n168 --> n207
    n169 --> n165
    n169 --> n173
    n169 --> n176
    n169 --> n177
    n169 --> n178
    n169 --> n180
    n169 --> n188
    n169 --> n207
    n170 --> n165
    n170 --> n178
    n170 --> n180
    n170 --> n188
    n170 --> n207
    n171 --> n165
    n171 --> n168
    n171 --> n177
    n171 --> n178
    n171 --> n180
    n171 --> n188
    n171 --> n207
    n172 --> n165
    n172 --> n178
    n172 --> n180
    n172 --> n188
    n172 --> n207
    n174 --> n21
    n174 --> n22
    n174 --> n27
    n174 --> n167
    n174 --> n168
    n174 --> n169
    n174 --> n170
    n174 --> n171
    n174 --> n172
    n174 --> n175
    n174 --> n178
    n174 --> n179
    n174 --> n180
    n174 --> n188
    n175 --> n22
    n175 --> n165
    n175 --> n178
    n175 --> n188
    n175 --> n207
    n176 --> n178
    n177 --> n165
    n177 --> n173
    n177 --> n180
    n179 --> n0
    n179 --> n164
    n179 --> n174
    n179 --> n202
    n180 --> n181
    n180 --> n182
    n180 --> n183
    n180 --> n184
    n180 --> n185
    n180 --> n186
    n184 --> n182
    n187 --> n165
    n187 --> n168
    n187 --> n169
    n187 --> n170
    n187 --> n171
    n187 --> n172
    n187 --> n175
    n187 --> n180
    n187 --> n188
    n187 --> n190
    n187 --> n191
    n187 --> n192
    n187 --> n193
    n187 --> n194
    n187 --> n195
    n187 --> n196
    n187 --> n197
    n187 --> n198
    n187 --> n199
    n187 --> n200
    n187 --> n201
    n187 --> n204
    n187 --> n207
    n188 --> n21
    n188 --> n217
    n189 --> n202
    n190 --> n165
    n190 --> n180
    n190 --> n188
    n190 --> n206
    n190 --> n207
    n191 --> n165
    n191 --> n188
    n191 --> n206
    n191 --> n207
    n192 --> n165
    n192 --> n188
    n192 --> n191
    n192 --> n206
    n192 --> n207
    n193 --> n33
    n193 --> n165
    n193 --> n188
    n193 --> n203
    n193 --> n206
    n193 --> n207
    n194 --> n165
    n194 --> n188
    n194 --> n205
    n194 --> n206
    n194 --> n207
    n195 --> n165
    n195 --> n188
    n195 --> n205
    n195 --> n206
    n195 --> n207
    n196 --> n165
    n196 --> n188
    n196 --> n203
    n196 --> n206
    n196 --> n207
    n197 --> n165
    n197 --> n188
    n197 --> n206
    n197 --> n207
    n198 --> n165
    n198 --> n188
    n198 --> n206
    n198 --> n207
    n199 --> n165
    n199 --> n188
    n199 --> n206
    n199 --> n207
    n200 --> n165
    n200 --> n180
    n200 --> n188
    n200 --> n206
    n200 --> n207
    n201 --> n165
    n201 --> n188
    n201 --> n206
    n201 --> n207
    n202 --> n21
    n202 --> n27
    n202 --> n179
    n202 --> n180
    n202 --> n188
    n202 --> n190
    n202 --> n191
    n202 --> n192
    n202 --> n193
    n202 --> n194
    n202 --> n195
    n202 --> n196
    n202 --> n197
    n202 --> n198
    n202 --> n199
    n202 --> n200
    n202 --> n201
    n202 --> n204
    n202 --> n206
    n204 --> n21
    n204 --> n165
    n204 --> n188
    n204 --> n206
    n204 --> n207
    n207 --> n165
    n207 --> n188
    n208 --> n25
    n208 --> n33
    n208 --> n174
    n208 --> n202
    n209 --> n210
    n209 --> n211
    n209 --> n212
    n209 --> n213
    n210 --> n25
    n210 --> n33
    n210 --> n174
    n210 --> n202
    n210 --> n211
    n210 --> n212
    n210 --> n213
    n211 --> n212
    n211 --> n213
    n213 --> n174
    n213 --> n202
    n213 --> n212
    n214 --> n224
    n215 --> n223
    n216 --> n217
    n219 --> n33
    n219 --> n217
    n220 --> n33
    n220 --> n217
    n221 --> n33
    n221 --> n217
    n222 --> n33
    n223 --> n217
    n223 --> n222
    n224 --> n22
    n224 --> n33
    n224 --> n222
    n224 --> n223
    n228 --> n3
    n228 --> n10
    n228 --> n11
    n228 --> n12
    n228 --> n13
    n228 --> n14
    n228 --> n15
    n228 --> n16
    n228 --> n17
    n228 --> n21
    n228 --> n22
    n228 --> n33
    n228 --> n92
    n228 --> n158
    n228 --> n164
    n228 --> n187
    n228 --> n227
    n228 --> n229
    n228 --> n230
    n228 --> n231
    n228 --> n232
    n228 --> n234
    n228 --> n235
    n228 --> n236
    n228 --> n237
    n228 --> n238
    n228 --> n239
    n228 --> n240
    n229 --> n11
    n229 --> n27
    n230 --> n96
    n235 --> n21
    n237 --> n187
    n237 --> n240
    n238 --> n234
    n239 --> n4
    n239 --> n5
    n239 --> n11
    n239 --> n231
    n239 --> n238
    n240 --> n164
    n240 --> n174
    n240 --> n187
    n240 --> n202
    classDef first_party fill:#e8f0fe,stroke:#1a73e8,color:#202124
    class n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28,n29,n30,n31,n32,n33,n34,n35,n36,n37,n38,n39,n40,n41,n42,n43,n44,n45,n46,n47,n48,n49,n50,n51,n52,n53,n54,n55,n56,n57,n58,n59,n60,n61,n62,n63,n64,n65,n66,n67,n68,n69,n70,n71,n72,n73,n74,n75,n76,n77,n78,n79,n80,n81,n82,n83,n84,n85,n86,n87,n88,n89,n90,n91,n92,n93,n94,n95,n96,n97,n98,n99,n100,n101,n102,n103,n104,n105,n106,n107,n108,n109,n110,n111,n112,n113,n114,n115,n116,n117,n118,n119,n120,n121,n122,n123,n124,n125,n126,n127,n128,n129,n130,n131,n132,n133,n134,n135,n136,n137,n138,n139,n140,n141,n142,n143,n144,n145,n146,n147,n148,n149,n150,n151,n152,n153,n154,n155,n156,n157,n158,n159,n160,n161,n162,n163,n164,n165,n166,n167,n168,n169,n170,n171,n172,n173,n174,n175,n176,n177,n178,n179,n180,n181,n182,n183,n184,n185,n186,n187,n188,n189,n190,n191,n192,n193,n194,n195,n196,n197,n198,n199,n200,n201,n202,n203,n204,n205,n206,n207,n208,n209,n210,n211,n212,n213,n214,n215,n216,n217,n218,n219,n220,n221,n222,n223,n224,n225,n226,n227,n228,n229,n230,n231,n232,n233,n234,n235,n236,n237,n238,n239,n240 first_party