feat: 6 Grundsatzprogramme + Landesgrundsatzprogramme indiziert
Neu in embeddings.PROGRAMME (typ=parteiprogramm mit gueltig_ab): - csu-grundsatz: CSU "Für ein neues Miteinander" (2023-05-06, 125 chunks) ersetzt das bisher indizierte CSU 2016-Programm logisch - cdu-grundsatz-nrw: CDU NRW "Aufstieg, Sicherheit, Perspektive" (2015-06-13, Landesgrundsatzprogramm, 127 chunks) - cdu-grundsatz-sn: CDU Sachsen "Zukunftsplan für Sachsen" (2023-11-20, Landesgrundsatzprogramm, 52 chunks) - cdu-grundsatz-lsa: CDU Sachsen-Anhalt "Unsere Verantwortung. Unsere Zukunft." (2023-09-30, Landesgrundsatzprogramm, 74 chunks) - ssw-grundsatz: SSW Rahmenprogramm (2016-04-16, Landesgrundsatzprogramm für Schleswig-Holstein, 65 chunks) - fw-grundsatz: FREIE WAEHLER Bundesgrundsatzprogramm (Stand 09/2025; FW nicht im Bundestag, gilt fuer FW Bayern + FW RLP, 43 chunks) programme.py: - _migrate_from_legacy() unterscheidet jetzt grundsatzprogramm-bund (bundesland=None) und grundsatzprogramm-land (bundesland gesetzt). - _ADDITIONAL_PROGRAMME-Slot vereinfacht — alle Daten leben in embeddings.PROGRAMME. Auf gwoe-antragspruefer-dev indiziert (text-embedding-v4): 486 neue Chunks, 0 failed. wahlprogramm-shas.lock.json + -links.yaml gepinnt mit allen 6 SHA-256-Hashes. Test-Suite: 88 grün (test_legislaturen + test_wahlprogramme + test_embeddings). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4e7f7dac25
commit
a80ac17218
@ -277,6 +277,66 @@ PROGRAMME = {
|
|||||||
"gueltig_ab": "2011-10-23", # Bundesparteitag Erfurt
|
"gueltig_ab": "2011-10-23", # Bundesparteitag Erfurt
|
||||||
"gueltig_bis": None,
|
"gueltig_bis": None,
|
||||||
},
|
},
|
||||||
|
# CSU Grundsatzprogramm 2023 — beschlossen 2023-05-06 in Nürnberg.
|
||||||
|
# CSU als reine Landespartei: bundesland=BY, das Programm ersetzt zugleich
|
||||||
|
# ein Bundes-Grundsatz für die Partei (CSU sitzt im Bundestag).
|
||||||
|
"csu-grundsatz": {
|
||||||
|
"name": "CSU Grundsatzprogramm 2023",
|
||||||
|
"typ": "parteiprogramm",
|
||||||
|
"partei": "CSU",
|
||||||
|
"bundesland": "BY",
|
||||||
|
"pdf": "csu-grundsatz-2023.pdf",
|
||||||
|
"gueltig_ab": "2023-05-06",
|
||||||
|
"gueltig_bis": None,
|
||||||
|
},
|
||||||
|
# Landesgrundsatzprogramme — typ=parteiprogramm mit bundesland-Feld.
|
||||||
|
"cdu-grundsatz-nrw": {
|
||||||
|
"name": "CDU NRW Grundsatzprogramm 2015",
|
||||||
|
"typ": "parteiprogramm",
|
||||||
|
"partei": "CDU",
|
||||||
|
"bundesland": "NRW",
|
||||||
|
"pdf": "cdu-grundsatz-nrw-2015.pdf",
|
||||||
|
"gueltig_ab": "2015-06-13", # 37. Landesparteitag Essen
|
||||||
|
"gueltig_bis": None,
|
||||||
|
},
|
||||||
|
"cdu-grundsatz-sn": {
|
||||||
|
"name": "CDU Sachsen Grundsatzprogramm 2023",
|
||||||
|
"typ": "parteiprogramm",
|
||||||
|
"partei": "CDU",
|
||||||
|
"bundesland": "SN",
|
||||||
|
"pdf": "cdu-grundsatz-sn-2023.pdf",
|
||||||
|
"gueltig_ab": "2023-11-20", # 38. Landesparteitag Chemnitz
|
||||||
|
"gueltig_bis": None,
|
||||||
|
},
|
||||||
|
"cdu-grundsatz-lsa": {
|
||||||
|
"name": "CDU Sachsen-Anhalt Grundsatzprogramm 2023",
|
||||||
|
"typ": "parteiprogramm",
|
||||||
|
"partei": "CDU",
|
||||||
|
"bundesland": "LSA",
|
||||||
|
"pdf": "cdu-grundsatz-lsa-2023.pdf",
|
||||||
|
"gueltig_ab": "2023-09-30", # 32. Landesparteitag Magdeburg
|
||||||
|
"gueltig_bis": None,
|
||||||
|
},
|
||||||
|
"ssw-grundsatz": {
|
||||||
|
"name": "SSW Rahmenprogramm 2016",
|
||||||
|
"typ": "parteiprogramm",
|
||||||
|
"partei": "SSW",
|
||||||
|
"bundesland": "SH",
|
||||||
|
"pdf": "ssw-grundsatz-sh-2016.pdf",
|
||||||
|
"gueltig_ab": "2016-04-16", # außerordentlicher Parteitag Harrislee
|
||||||
|
"gueltig_bis": None,
|
||||||
|
},
|
||||||
|
# FREIE WÄHLER Bundesgrundsatzprogramm — die Partei ist nicht im
|
||||||
|
# Bundestag, das Programm gilt aber bundesweit für FW-Landesverbände
|
||||||
|
# (BY in Regierung, RP in Opposition).
|
||||||
|
"fw-grundsatz": {
|
||||||
|
"name": "FREIE WÄHLER Bundesgrundsatzprogramm",
|
||||||
|
"typ": "parteiprogramm",
|
||||||
|
"partei": "FREIE WÄHLER",
|
||||||
|
"pdf": "fw-grundsatz.pdf",
|
||||||
|
"gueltig_ab": "2012-02-25", # Bundesvereinigungs-Gründung als Partei; mehrfach fortgeschrieben (Stand 09/2025)
|
||||||
|
"gueltig_bis": None,
|
||||||
|
},
|
||||||
# Bayern — LTW 08.10.2023, WP 19
|
# Bayern — LTW 08.10.2023, WP 19
|
||||||
"csu-by-2023": {"name": "CSU Bayernplan 2023", "typ": "wahlprogramm", "partei": "CSU", "bundesland": "BY", "pdf": "csu-by-2023.pdf"},
|
"csu-by-2023": {"name": "CSU Bayernplan 2023", "typ": "wahlprogramm", "partei": "CSU", "bundesland": "BY", "pdf": "csu-by-2023.pdf"},
|
||||||
"gruene-by-2023": {"name": "Grüne Bayern Regierungsprogramm 2023", "typ": "wahlprogramm", "partei": "GRÜNE", "bundesland": "BY", "pdf": "gruene-by-2023.pdf"},
|
"gruene-by-2023": {"name": "Grüne Bayern Regierungsprogramm 2023", "typ": "wahlprogramm", "partei": "GRÜNE", "bundesland": "BY", "pdf": "gruene-by-2023.pdf"},
|
||||||
|
|||||||
@ -204,18 +204,22 @@ def _register(prog: Programm) -> None:
|
|||||||
|
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────────────────────
|
||||||
# Zusätzliche Programme — historische Vorgänger und Landesgrundsatzprogramme,
|
# Zusätzliche Programme — Reserve für Programme, die NICHT aus
|
||||||
# die nicht aus WAHLPROGRAMME/embeddings.PROGRAMME migriert werden können.
|
# embeddings.PROGRAMME oder WAHLPROGRAMME migriert werden können (z.B.
|
||||||
#
|
# zukünftig: historische Vorgänger-Wahlprogramme aus früheren Legislaturen,
|
||||||
# PDFs werden separat beschafft und hier eingetragen sobald verfügbar.
|
# falls deren PDFs eingebunden werden ohne dass embeddings.PROGRAMME sie
|
||||||
# Einträge ohne existierende PDF-Datei können aktiv sein (z.B. für reine
|
# kennt).
|
||||||
# Metadaten-Anzeige), aber sie werden in der Embeddings-Indizierung
|
|
||||||
# übersprungen und ``test_every_registered_pdf_exists`` filtert sie via
|
|
||||||
# ``hinweis="pdf-pending"`` Marker aus.
|
|
||||||
# ─────────────────────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
|
||||||
_ADDITIONAL_PROGRAMME: list[Programm] = [
|
_ADDITIONAL_PROGRAMME: list[Programm] = []
|
||||||
|
|
||||||
|
|
||||||
|
# Historische Skelett-Einträge (PDFs jetzt in embeddings.PROGRAMME) —
|
||||||
|
# wurden in einer früheren Iteration manuell als pdf-pending markiert,
|
||||||
|
# bevor die Beschaffung lief. Aktuelle Daten leben in embeddings.PROGRAMME
|
||||||
|
# und werden über _migrate_from_legacy() automatisch übernommen.
|
||||||
|
_ARCHIVED_SKELETONS: list[Programm] = [
|
||||||
# ─── CSU Bayern: aktualisiertes Grundsatzprogramm 2023 ───────────────
|
# ─── CSU Bayern: aktualisiertes Grundsatzprogramm 2023 ───────────────
|
||||||
# "Die Ordnung 2016" (in embeddings.PROGRAMME als Bundes-Grundsatz)
|
# "Die Ordnung 2016" (in embeddings.PROGRAMME als Bundes-Grundsatz)
|
||||||
# wird durch das 2023er ersetzt — wir tragen 2023 als aktuelles ein und
|
# wird durch das 2023er ersetzt — wir tragen 2023 als aktuelles ein und
|
||||||
@ -381,19 +385,23 @@ def _migrate_from_legacy() -> None:
|
|||||||
if pid not in PROGRAMME:
|
if pid not in PROGRAMME:
|
||||||
PROGRAMME[pid] = prog
|
PROGRAMME[pid] = prog
|
||||||
|
|
||||||
# Schritt 2: Grundsatzprogramme aus embeddings.PROGRAMME
|
# Schritt 2: Grundsatzprogramme aus embeddings.PROGRAMME.
|
||||||
|
# typ=parteiprogramm: ohne ``bundesland`` → Bundes-Grundsatz, mit
|
||||||
|
# ``bundesland`` → Landes-Grundsatzprogramm. Beide funktional gleich,
|
||||||
|
# nur unterscheidet sich der Geltungsbereich.
|
||||||
for pid, info in _EMB_PROGRAMME.items():
|
for pid, info in _EMB_PROGRAMME.items():
|
||||||
if info.get("typ") != "parteiprogramm":
|
if info.get("typ") != "parteiprogramm":
|
||||||
continue # Wahlprogramme schon in Schritt 1 (oder werden dort gepflegt)
|
continue # Wahlprogramme schon in Schritt 1
|
||||||
if pid in PROGRAMME:
|
if pid in PROGRAMME:
|
||||||
continue
|
continue
|
||||||
|
bl = info.get("bundesland")
|
||||||
prog2: Programm = {
|
prog2: Programm = {
|
||||||
"id": pid,
|
"id": pid,
|
||||||
"titel": info.get("name", ""),
|
"titel": info.get("name", ""),
|
||||||
"name": info.get("name", ""),
|
"name": info.get("name", ""),
|
||||||
"typ": "grundsatzprogramm-bund",
|
"typ": "grundsatzprogramm-land" if bl else "grundsatzprogramm-bund",
|
||||||
"partei": info.get("partei", ""),
|
"partei": info.get("partei", ""),
|
||||||
"bundesland": None,
|
"bundesland": bl,
|
||||||
"beschluss": info.get("gueltig_ab"),
|
"beschluss": info.get("gueltig_ab"),
|
||||||
"wahl": None,
|
"wahl": None,
|
||||||
"wp": None,
|
"wp": None,
|
||||||
|
|||||||
BIN
app/static/referenzen/cdu-grundsatz-lsa-2023.pdf
Normal file
BIN
app/static/referenzen/cdu-grundsatz-lsa-2023.pdf
Normal file
Binary file not shown.
BIN
app/static/referenzen/cdu-grundsatz-nrw-2015.pdf
Normal file
BIN
app/static/referenzen/cdu-grundsatz-nrw-2015.pdf
Normal file
Binary file not shown.
BIN
app/static/referenzen/cdu-grundsatz-sn-2023.pdf
Normal file
BIN
app/static/referenzen/cdu-grundsatz-sn-2023.pdf
Normal file
Binary file not shown.
BIN
app/static/referenzen/csu-grundsatz-2023.pdf
Normal file
BIN
app/static/referenzen/csu-grundsatz-2023.pdf
Normal file
Binary file not shown.
BIN
app/static/referenzen/fw-grundsatz.pdf
Normal file
BIN
app/static/referenzen/fw-grundsatz.pdf
Normal file
Binary file not shown.
BIN
app/static/referenzen/ssw-grundsatz-sh-2016.pdf
Normal file
BIN
app/static/referenzen/ssw-grundsatz-sh-2016.pdf
Normal file
Binary file not shown.
@ -82,3 +82,37 @@ BUND:
|
|||||||
titel: "Unser Land verdient mehr — Wahlprogramm Bündnis Sahra Wagenknecht zur Bundestagswahl 2025"
|
titel: "Unser Land verdient mehr — Wahlprogramm Bündnis Sahra Wagenknecht zur Bundestagswahl 2025"
|
||||||
jahr: 2025
|
jahr: 2025
|
||||||
sha256: "bd4640aab7c6ff214becc7e44bc6dc67539ebd80992bb39fb8853839d3a7ccda"
|
sha256: "bd4640aab7c6ff214becc7e44bc6dc67539ebd80992bb39fb8853839d3a7ccda"
|
||||||
|
|
||||||
|
# Grundsatzprogramme (Bundes- und Landesebene). Recherche 2026-05-07.
|
||||||
|
# Liegen unter `app/static/referenzen/<datei>.pdf`; URLs hier zur Provenance-Doku.
|
||||||
|
GRUNDSATZ:
|
||||||
|
CSU:
|
||||||
|
- url: https://www.csu.de/common/download/CSU_Grundsatzprogramm_2023.pdf
|
||||||
|
titel: "Für ein neues Miteinander — Grundsatzprogramm der CSU"
|
||||||
|
jahr: 2023
|
||||||
|
sha256: "a2a024e40d7d0d7dd75bf133ca95486b7115b24307a445d215fc7be397626071"
|
||||||
|
CDU_NRW:
|
||||||
|
- url: https://www.cdu-kreis-soest.de/image/inhalte/file/grundsatzprogramm_cdu_nrw.pdf
|
||||||
|
titel: "Aufstieg, Sicherheit, Perspektive — Das Nordrhein-Westfalen-Programm der CDU NRW"
|
||||||
|
jahr: 2015
|
||||||
|
sha256: "379e7f33854f3fabcb1337b53e763ab58bb8962ae16ef39cf102243ddfe9db1f"
|
||||||
|
CDU_SN:
|
||||||
|
- url: https://www.cdu-sachsen.de/Dateien/zukunftsplan-fuer-sachsen/17504452
|
||||||
|
titel: "Zukunftsplan für Sachsen — Grundsatzprogramm der CDU Sachsen (38. Landesparteitag Chemnitz)"
|
||||||
|
jahr: 2023
|
||||||
|
sha256: "fe203bcad9bef4d037820eab3f8d19f3f30db4cd801576aff4ab170699409721"
|
||||||
|
CDU_LSA:
|
||||||
|
- url: https://www.cdulsa.de/sites/www.cdulsa.de/files/publikationen/grundsatzprogrammcdulsa.pdf
|
||||||
|
titel: "Sachsen-Anhalt. Unsere Verantwortung. Unsere Zukunft. — Grundsatzprogramm der CDU Sachsen-Anhalt"
|
||||||
|
jahr: 2023
|
||||||
|
sha256: "d2fc731319ececdb7dc97d34266311dcbf7f3f42c2184424bb722c7f6046e107"
|
||||||
|
SSW:
|
||||||
|
- url: https://www.ssw.de/fileadmin/user_upload/daten/allgemein/Informationsmaterial/SSWRammeprogram.pdf
|
||||||
|
titel: "Rahmenprogramm des Südschleswigschen Wählerverbandes (SSW)"
|
||||||
|
jahr: 2016
|
||||||
|
sha256: "f4530674c7898365eed391b0aef89b89760e0afa6a6e1a5f85dab0eeb797e8e5"
|
||||||
|
FW:
|
||||||
|
- url: https://wp.freiewaehler.eu/wp-content/uploads/2025/09/Grundsatzprogramm.pdf
|
||||||
|
titel: "Bundesgrundsatzprogramm der FREIEN WÄHLER"
|
||||||
|
jahr: 2025
|
||||||
|
sha256: "7b671900eea315ab2c0a396f2b1583f84d48e3b7a5ae60286ae31e4f60a1e1cd"
|
||||||
|
|||||||
@ -17,6 +17,9 @@
|
|||||||
"cdu-be-2023.pdf": "813d0d08ac8ce7381e9a7b9472e0616aaf684b1632c9d4a7f4e940a33455f29a",
|
"cdu-be-2023.pdf": "813d0d08ac8ce7381e9a7b9472e0616aaf684b1632c9d4a7f4e940a33455f29a",
|
||||||
"cdu-bund-2025.pdf": "08f751316e731b77aa2f18090b8695d88268f2942481399f37a3a47317361795",
|
"cdu-bund-2025.pdf": "08f751316e731b77aa2f18090b8695d88268f2942481399f37a3a47317361795",
|
||||||
"cdu-bw-2021.pdf": "a92c104c456ce06d8bad6649071551e0ec0d525a1bc0bc31e9fa6a0566da4db0",
|
"cdu-bw-2021.pdf": "a92c104c456ce06d8bad6649071551e0ec0d525a1bc0bc31e9fa6a0566da4db0",
|
||||||
|
"cdu-grundsatz-lsa-2023.pdf": "d2fc731319ececdb7dc97d34266311dcbf7f3f42c2184424bb722c7f6046e107",
|
||||||
|
"cdu-grundsatz-nrw-2015.pdf": "379e7f33854f3fabcb1337b53e763ab58bb8962ae16ef39cf102243ddfe9db1f",
|
||||||
|
"cdu-grundsatz-sn-2023.pdf": "fe203bcad9bef4d037820eab3f8d19f3f30db4cd801576aff4ab170699409721",
|
||||||
"cdu-grundsatzprogramm.pdf": "4b4bebd40ff8d905eb3ad00975cbbf0990810c21977e2d560e3d73f2571b181d",
|
"cdu-grundsatzprogramm.pdf": "4b4bebd40ff8d905eb3ad00975cbbf0990810c21977e2d560e3d73f2571b181d",
|
||||||
"cdu-hh-2025.pdf": "8d29e514b8bce5c2f3f497dc5b97f6f8ab95a7bdbf619abf258e9582d57f2dbd",
|
"cdu-hh-2025.pdf": "8d29e514b8bce5c2f3f497dc5b97f6f8ab95a7bdbf619abf258e9582d57f2dbd",
|
||||||
"cdu-lsa-2021.pdf": "63b6cf42ce97834d5d105fb7b8cc7fb7a2aa96928d4153bd3a5858c196ee0797",
|
"cdu-lsa-2021.pdf": "63b6cf42ce97834d5d105fb7b8cc7fb7a2aa96928d4153bd3a5858c196ee0797",
|
||||||
@ -26,6 +29,7 @@
|
|||||||
"cdu-sh-2022.pdf": "39b79a22e904b300cf1bbc25752b618195683c90c31e6b10c3bc0e8408aa6a1a",
|
"cdu-sh-2022.pdf": "39b79a22e904b300cf1bbc25752b618195683c90c31e6b10c3bc0e8408aa6a1a",
|
||||||
"cdu-th-2024.pdf": "cde8d2222bd8ce04aee24883a38dab8a30f5d60cda115b8bb2f43ceffa08b730",
|
"cdu-th-2024.pdf": "cde8d2222bd8ce04aee24883a38dab8a30f5d60cda115b8bb2f43ceffa08b730",
|
||||||
"csu-bund-2025.pdf": "c07fe4b65404be9b4c1b99ec9c970567a96a27b86a1154754a41e9ef31d0c04f",
|
"csu-bund-2025.pdf": "c07fe4b65404be9b4c1b99ec9c970567a96a27b86a1154754a41e9ef31d0c04f",
|
||||||
|
"csu-grundsatz-2023.pdf": "a2a024e40d7d0d7dd75bf133ca95486b7115b24307a445d215fc7be397626071",
|
||||||
"fdp-bund-2025.pdf": "a549dcb318f60fdd8a257fb2e68745d1df50151f4914910e2afde20c3b0fa039",
|
"fdp-bund-2025.pdf": "a549dcb318f60fdd8a257fb2e68745d1df50151f4914910e2afde20c3b0fa039",
|
||||||
"fdp-bw-2021.pdf": "bdcbb1b2e5748922c8347bd69ea6f81c954fd02cd220d448400f9a5a86ce914b",
|
"fdp-bw-2021.pdf": "bdcbb1b2e5748922c8347bd69ea6f81c954fd02cd220d448400f9a5a86ce914b",
|
||||||
"fdp-grundsatzprogramm.pdf": "9abb6570c3505271b1f43db2a8340c05b970a7934d0c1b2542403025affe2b13",
|
"fdp-grundsatzprogramm.pdf": "9abb6570c3505271b1f43db2a8340c05b970a7934d0c1b2542403025affe2b13",
|
||||||
@ -34,6 +38,7 @@
|
|||||||
"fdp-nrw-2022.pdf": "576b42a26c29ca5d8b7469d417ae709c8d0699aed5195d4ca16dd696dcff8bea",
|
"fdp-nrw-2022.pdf": "576b42a26c29ca5d8b7469d417ae709c8d0699aed5195d4ca16dd696dcff8bea",
|
||||||
"fdp-rp-2021.pdf": "fba792d8d43842f33ae8f0aa94b0d4e50838908c217402b4c5cb4707f958e1ae",
|
"fdp-rp-2021.pdf": "fba792d8d43842f33ae8f0aa94b0d4e50838908c217402b4c5cb4707f958e1ae",
|
||||||
"fdp-sh-2022.pdf": "4c49da411bb3c8e008f4b57dd20dc005104515b56056ff746cf5403529728d09",
|
"fdp-sh-2022.pdf": "4c49da411bb3c8e008f4b57dd20dc005104515b56056ff746cf5403529728d09",
|
||||||
|
"fw-grundsatz.pdf": "7b671900eea315ab2c0a396f2b1583f84d48e3b7a5ae60286ae31e4f60a1e1cd",
|
||||||
"fw-rp-2021.pdf": "c7f26d553f24c9d9fcf1c2edb1dbe558edc1ca65af68b289a1541e77f7bbeea8",
|
"fw-rp-2021.pdf": "c7f26d553f24c9d9fcf1c2edb1dbe558edc1ca65af68b289a1541e77f7bbeea8",
|
||||||
"gruene-be-2023.pdf": "2b14a319cdcd2ca022399254ea285714f872eddd166f3f537861eeb2dc5ade80",
|
"gruene-be-2023.pdf": "2b14a319cdcd2ca022399254ea285714f872eddd166f3f537861eeb2dc5ade80",
|
||||||
"gruene-bund-2025.pdf": "0d1f7530ddecadc8d98db15b2189f3ee4ddcccd9619df825703911f1aac18dda",
|
"gruene-bund-2025.pdf": "0d1f7530ddecadc8d98db15b2189f3ee4ddcccd9619df825703911f1aac18dda",
|
||||||
@ -64,6 +69,7 @@
|
|||||||
"spd-rp-2021.pdf": "13966815b8870b30e3480673437634fb90882bf5410c652694a6579492e32707",
|
"spd-rp-2021.pdf": "13966815b8870b30e3480673437634fb90882bf5410c652694a6579492e32707",
|
||||||
"spd-sh-2022.pdf": "3acd3ed6c42a0e0a8f49abd76610b536c7d5fdf13fcc4499e391bc9b1a3d0f0f",
|
"spd-sh-2022.pdf": "3acd3ed6c42a0e0a8f49abd76610b536c7d5fdf13fcc4499e391bc9b1a3d0f0f",
|
||||||
"spd-th-2024.pdf": "dbd96a51134c8c13dabe18807fe233e9a43f45c2fefeead2ea500ecc3d63de6b",
|
"spd-th-2024.pdf": "dbd96a51134c8c13dabe18807fe233e9a43f45c2fefeead2ea500ecc3d63de6b",
|
||||||
|
"ssw-grundsatz-sh-2016.pdf": "f4530674c7898365eed391b0aef89b89760e0afa6a6e1a5f85dab0eeb797e8e5",
|
||||||
"ssw-sh-2022.pdf": "3020762a1c33a09bc51f7fa49ede1c2d5dd7574ea74ef262076e59d5e3a9a41b",
|
"ssw-sh-2022.pdf": "3020762a1c33a09bc51f7fa49ede1c2d5dd7574ea74ef262076e59d5e3a9a41b",
|
||||||
"test.pdf": "71630b3ce93b3fd91aefa095908c8070d07e0eca8ad3071c60ae7375da2e7e17"
|
"test.pdf": "71630b3ce93b3fd91aefa095908c8070d07e0eca8ad3071c60ae7375da2e7e17"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user