Stenogram Sejmu · 2026-09-02

Michał Gramatyka

Kadencja 10 · posiedzenie 64 · wypowiedź 30

Profil posła

Brak głosu imiennego z tego dnia, który potwierdzałby klub mówcy.

Pełna wypowiedź

10. kadencja, 64. posiedzenie, 1. dzień (02-09-2026) 1. punkt porządku dziennego: Sprawozdanie Komisji Sprawiedliwości i Praw Człowieka o senackim projekcie ustawy o organach właściwych i postępowaniach w sprawach reklamy politycznej oraz odpowiedzialności za naruszenie obowiązków w tych sprawach (druki nr 2769 i 2833). Poseł Michał Gramatyka: Szanowny Panie Marszałku! Panie Posłanki! Panowie Posłowie! W imieniu Klubu Parlamentarnego Polska 2050 mam zaszczyt przedstawić nasze stanowisko. Oczywiście zagłosujemy za senackim projektem ustawy, zgadzając się z głównymi obszarami, które on reguluje. Przejrzystość. Musimy mieć wiedzę, od kogo pochodzi każda reklama polityczna i przez kogo jest finansowana. Ograniczenie targetowania on-line. Musimy mieć wiedzę, w jaki sposób wykorzystywane są dane do tego, żeby reklamy polityczne były w Internecie rozpowszechniane, w jaki sposób pozyskiwane są zgody osób, których takie reklamy dotyczą i do których takie reklamy mogą trafiać, w jaki sposób platformy społecznościowe albo, inaczej je nazywając, algorytmiczne kanały reklamowe targetują reklamy, wykorzystując nasze zgody, oraz jak te zgody są pozyskiwane. Repozytorium europejskie. To bardzo istotny element tego przedłożenia. Jedna duża baza danych, gdzie będzie można zarówno w momencie trwania kampanii wyborczych, jak i po ich zakończeniu uzyskać dostęp do wszystkich zgromadzonych tam materiałów, którymi jesteśmy bombardowani w Internecie. I wreszcie kwestia wpływów firm działających poza wspólnym rynkiem, poza Europejskim Obszarem Gospodarczym, poza Unią Europejską. Chodzi o to, na ile takie firmy podczas kampanii wyborczej mogą mieć wpływ na obraz reklamy politycznej, którą widzimy. Jest takie przysłowie ludowe, które mówi, że w mętnej wodzie diabeł ryby łowi. Rozumiem część tych krytycznych wypowiedzi ludzi, którzy są oddani takim właśnie nie do końca określonym zasadom. Zasadom, które umożliwiają pojawienie się reklam politycznych pochodzących nie wiadomo skąd, finansowanych przez nie wiadomo kogo. Przedłożenie odpowiada na odwieczne pytanie: Na ile potrafimy własnym osądem i własnym rozumem sprzeciwić się algorytmowi? (Poseł Paweł Szrot: W takim razie demokracja nie ma sensu.) Badania prowadzone choćby przez Nature albo przez Science nie pozostawiają tutaj żadnych wątpliwości: w przypadku 5 tys. probantów, wobec których zastosowano spersonalizowany algorytm, odnotowano znaczną zmianę poglądów, znaczną zmianę podejmowanych przez nich decyzji. Algorytm, który w założeniu ma filtrować to, co do nas dociera, modyfikuje nasze poglądy. Nie chcę sięgać do tak ewidentnych przykładów, jak choćby ten z okresu rozpoczęcia pełnoskalowej rosyjskiej agresji względem Ukrainy, gdzie w ciągu kilku dni w całej przestrzeni mediów społecznościowych wszystkie grupy, które dotąd siały przekaz antyszczepionkowy, zaczęły siać przekaz antyukraiński. Takie właśnie są cele tego przedłożenia i tej regulacji, żeby ona po prostu opierała się na jasnych zasadach. Z radością witam decyzje, które już zapadły na platformach społecznościowych, które to platformy po prostu powiedziały, przynajmniej te największe, że wstrzymują propagowanie reklam politycznych właśnie ze względu na przepisy, które zaczynają obowiązywać w Unii Europejskiej. Przynajmniej pewne rzeczy będą jasne i przynajmniej one będą oparte na prawie. Tym bardziej mam satysfakcję, że to będzie polskie prawo, uchwalone w Sejmie Rzeczypospolitej Polskiej na wniosek polskiego Senatu. Bardzo dziękuję. (Oklaski) Przebieg posiedzenia

Otwórz zachowany oryginał · Źródło urzędowe

Dowód treści wypowiedzi

Dowód kolejności na liście dnia

Kontekst w stenogramie

  1. Wcześniej · wypowiedź 28 Arkadiusz Sikora 10. kadencja, 64. posiedzenie, 1. dzień (02-09-2026) 1. punkt porządku dziennego: Sprawozdanie Komisji Sprawiedliwości i Praw Człowieka o senackim projekcie ustawy o organach właściwych i postępowaniach w sprawach reklamy politycznej oraz o
  2. Wcześniej · wypowiedź 29 Sławomir Ćwik 10. kadencja, 64. posiedzenie, 1. dzień (02-09-2026) 1. punkt porządku dziennego: Sprawozdanie Komisji Sprawiedliwości i Praw Człowieka o senackim projekcie ustawy o organach właściwych i postępowaniach w sprawach reklamy politycznej oraz o
  3. Później · wypowiedź 31 Jarosław Sachajko 10. kadencja, 64. posiedzenie, 1. dzień (02-09-2026) 1. punkt porządku dziennego: Sprawozdanie Komisji Sprawiedliwości i Praw Człowieka o senackim projekcie ustawy o organach właściwych i postępowaniach w sprawach reklamy politycznej oraz o
  4. Później · wypowiedź 32 Sławomir Zawiślak 10. kadencja, 64. posiedzenie, 1. dzień (02-09-2026) 1. punkt porządku dziennego: Sprawozdanie Komisji Sprawiedliwości i Praw Człowieka o senackim projekcie ustawy o organach właściwych i postępowaniach w sprawach reklamy politycznej oraz o
1. (3.28ms; exec 3.24 + fetch 0.04; rows 1) SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, d…
2. (1ms; exec 0.99 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
3. (0.66ms; exec 0.65 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4490 ORDER BY ordinal
4. (0.85ms; exec 0.83 + fetch 0.03; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcrip…
5. (0.9ms; exec 0.89 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
6. (0.72ms; exec 0.71 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
7. (0.57ms; exec 0.57 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4488 ORDER BY ordinal
8. (0.72ms; exec 0.71 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
9. (0.82ms; exec 0.81 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
10. (0.56ms; exec 0.55 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4489 ORDER BY ordinal
11. (1.06ms; exec 1.05 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
12. (0.68ms; exec 0.67 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
13. (0.53ms; exec 0.51 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4491 ORDER BY ordinal
14. (0.86ms; exec 0.86 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
15. (0.7ms; exec 0.69 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
16. (0.56ms; exec 0.54 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4492 ORDER BY ordinal
17. (3.71ms; exec 3.69 + fetch 0.02; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_vote…
toggle
1. (3.28ms; exec 3.24 + fetch 0.04; rows 1) SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, day.object_id AS day_id, day.term, day.proceeding_number, day.source_date, day.current_revision_id AS day_revision_id, dayStatement.ordinal, dayEvidence.id AS list_evidence_id, dayEvidence.selector_type AS list_selector_type, dayEvidence.selector AS list_selector, dayFetch.id AS list_fetch_id, dayFetch.requested_url AS list_source_url, dayArtifact.sha256 AS list_sha256, binding.artifact_id, binding.evidence_id AS transcript_evidence_id, transcriptEvidence.selector_type AS transcript_selector_type, transcriptEvidence.selector AS transcript_selector, transcriptFetch.id AS transcript_fetch_id, transcriptFetch.requested_url AS transcript_source_url, artifact.sha256 AS transcript_sha256, artifact.detected_mime, artifact.byte_size FROM sejm_statements s JOIN sejm_transcript_days day ON day.object_id = s.transcript_day_id LEFT JOIN sejm_mp_identities mp ON mp.term = day.term AND mp.mp_number = s.source_member_id LEFT JOIN sejm_transcript_day_statements dayStatement ON dayStatement.day_id = day.object_id AND dayStatement.day_revision_id = day.current_revision_id AND dayStatement.statement_id = s.object_id LEFT JOIN evidence dayEvidence ON dayEvidence.id = dayStatement.evidence_id LEFT JOIN fetches dayFetch ON dayFetch.id = dayEvidence.fetch_id LEFT JOIN artifacts dayArtifact ON dayArtifact.id = dayEvidence.artifact_id LEFT JOIN documents document ON document.owner_object_id = day.object_id AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', s.statement_number) LEFT JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) LEFT JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL LEFT JOIN evidence transcriptEvidence ON transcriptEvidence.id = binding.evidence_id LEFT JOIN fetches transcriptFetch ON transcriptFetch.id = transcriptEvidence.fetch_id LEFT JOIN artifacts artifact ON artifact.id = binding.artifact_id WHERE s.object_id = 17064 LIMIT 1
2. (1ms; exec 0.99 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17196 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
3. (0.66ms; exec 0.65 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4490 ORDER BY ordinal
4. (0.85ms; exec 0.83 + fetch 0.03; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcript_day_statements dayStatement JOIN sejm_statements statement ON statement.object_id = dayStatement.statement_id WHERE dayStatement.day_id = 17033 AND dayStatement.day_revision_id = 16659 AND dayStatement.ordinal BETWEEN 28 AND 32 AND statement.object_id <> 17064 ORDER BY dayStatement.ordinal
5. (0.9ms; exec 0.89 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 17033 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 28) LIMIT 1
6. (0.72ms; exec 0.71 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17189 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
7. (0.57ms; exec 0.57 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4488 ORDER BY ordinal
8. (0.72ms; exec 0.71 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 17033 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 29) LIMIT 1
9. (0.82ms; exec 0.81 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17195 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
10. (0.56ms; exec 0.55 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4489 ORDER BY ordinal
11. (1.06ms; exec 1.05 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 17033 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 31) LIMIT 1
12. (0.68ms; exec 0.67 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17197 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
13. (0.53ms; exec 0.51 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4491 ORDER BY ordinal
14. (0.86ms; exec 0.86 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 17033 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 32) LIMIT 1
15. (0.7ms; exec 0.69 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 17198 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
16. (0.56ms; exec 0.54 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 4492 ORDER BY ordinal
17. (3.71ms; exec 3.69 + fetch 0.02; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_votes vote ON vote.object_id = individual.vote_id AND vote.current_revision_id = individual.vote_revision_id JOIN object_revisions revision ON revision.id = vote.current_revision_id JOIN evidence e ON e.id = individual.evidence_id JOIN fetches f ON f.id = e.fetch_id WHERE vote.term = 10 AND vote.sitting_number = 64 AND individual.mp_number = 117 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-09-02' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
Top slow:
3.71ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes indiv…
3.28ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.objec…
1.06ms SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.documen…
toggle
3.71ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_votes vote ON vote.object_id = individual.vote_id AND vote.current_revision_id = individual.vote_revision_id JOIN object_revisions revision ON revision.id = vote.current_revision_id JOIN evidence e ON e.id = individual.evidence_id JOIN fetches f ON f.id = e.fetch_id WHERE vote.term = 10 AND vote.sitting_number = 64 AND individual.mp_number = 117 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-09-02' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
3.28ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, day.object_id AS day_id, day.term, day.proceeding_number, day.source_date, day.current_revision_id AS day_revision_id, dayStatement.ordinal, dayEvidence.id AS list_evidence_id, dayEvidence.selector_type AS list_selector_type, dayEvidence.selector AS list_selector, dayFetch.id AS list_fetch_id, dayFetch.requested_url AS list_source_url, dayArtifact.sha256 AS list_sha256, binding.artifact_id, binding.evidence_id AS transcript_evidence_id, transcriptEvidence.selector_type AS transcript_selector_type, transcriptEvidence.selector AS transcript_selector, transcriptFetch.id AS transcript_fetch_id, transcriptFetch.requested_url AS transcript_source_url, artifact.sha256 AS transcript_sha256, artifact.detected_mime, artifact.byte_size FROM sejm_statements s JOIN sejm_transcript_days day ON day.object_id = s.transcript_day_id LEFT JOIN sejm_mp_identities mp ON mp.term = day.term AND mp.mp_number = s.source_member_id LEFT JOIN sejm_transcript_day_statements dayStatement ON dayStatement.day_id = day.object_id AND dayStatement.day_revision_id = day.current_revision_id AND dayStatement.statement_id = s.object_id LEFT JOIN evidence dayEvidence ON dayEvidence.id = dayStatement.evidence_id LEFT JOIN fetches dayFetch ON dayFetch.id = dayEvidence.fetch_id LEFT JOIN artifacts dayArtifact ON dayArtifact.id = dayEvidence.artifact_id LEFT JOIN documents document ON document.owner_object_id = day.object_id AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', s.statement_number) LEFT JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) LEFT JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL LEFT JOIN evidence transcriptEvidence ON transcriptEvidence.id = binding.evidence_id LEFT JOIN fetches transcriptFetch ON transcriptFetch.id = transcriptEvidence.fetch_id LEFT JOIN artifacts artifact ON artifact.id = binding.artifact_id WHERE s.object_id = 17064 LIMIT 1
1.06ms SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 17033 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 31) LIMIT 1
N+1 candidates:
5× (3.92ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing…
5× (2.88ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (3.54ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON versi…
toggle
5× (3.92ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = ? AND run.state = ? ORDER BY CASE extraction.quality_state WHEN ? THEN ? WHEN ? THEN ? ELSE ? END, run.finished_at DESC, extraction.id DESC LIMIT ?
5× (2.88ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (3.54ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = ? AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = ? AND document.document_kind = ? AND document.source_document_key = CONCAT(?, ?) LIMIT ?
PHP: 24.9ms | App: 24.2ms | DB: 18.2ms (17, rows: 19) [exec: 18ms, fetch: 0.2ms] | View: 0.3ms (1) | Mem: 2MB (peak: 2MB) | Files: 20
toggle files
(0.27ms) /app/templates/speeches/show.php
/app/public/index.php
/app/vendor/autoload.php
/app/vendor/composer/autoload_real.php
/app/vendor/composer/platform_check.php
/app/vendor/composer/ClassLoader.php
/app/vendor/composer/autoload_static.php
/app/vendor/symfony/deprecation-contracts/function.php
/app/vendor/symfony/polyfill-php83/bootstrap.php
/app/lib/PFrame.php
/app/config/credentials/local.php
/app/src/Http/PublicResponseCache.php
/app/src/Http/AuthRoutes.php
/app/src/Http/ReviewDecisionRoutes.php
/app/src/Http/TopicDecisionRoutes.php
/app/src/Http/WatchRoutes.php
/app/src/Http/SpeechController.php
/app/src/Overview/SpeechReadModel.php
/app/src/Text/TextSearch.php
/app/templates/layout.php