Method
Not verified — may not be claimed
No country stands here any longer. Italy was settled in the fourth round and Croatia in the fifth, both on 2026-08-07. No published text any longer claims that a figure lacks cover — the ten landing pages cover sv de fr es fi nl da no it pl, and /it/ was rewritten when Italy was settled. There is no /hr/.
Dimensions — width, height and length. See the separate section below. All forty countries are taken from the statute. No country remains unretrieved.
What blocks, and how it is unlocked
Two obstacles were named after the third round. Both are now removed, and that is worth knowing before the next round is started.
| Source | Obstacle | Status |
|---|---|---|
| ANSR, Transpordiamet, DR, ЗДвП | the material exists only as PDF | solved. Our PDF reader now reads PDF properly: object model, per-page and per-font ToUnicode, compressed object streams, encryption (RC4 and AES-128) |
| Riigi Teataja (EE), Diário da República (PT), Normattiva (IT), Legilux (LU), code-de-la-route.be | the statute is rendered with JavaScript | solved. Read with a real browser in the background, allowed to finish rendering the page before the text is pulled out — but see the sixth round: Legilux and ejustice.just.fgov.be both have a machine-readable interface behind the SPA shell, and that is a better route than rendering |
net.jogtar.hu stood in the row above and never belonged there. The site serves the whole consolidated text as ordinary HTML to ordinary curl — 2.5 MB for 6/1990 KöHÉM, without a line of JavaScript. Being misclassified cost Hungary a place on the list of unretrieved countries for ten rounds. What actually blocks in Hungary is njt.hu, a different site, and it was never needed.
About the reader: it was rewritten from scratch in this round after the Bulgarian law came out as 915 KB of nonsense. The cause was that the character maps were merged globally — two Identity-H fonts in the same document use the same codes for different characters, so one font's text was decoded through the other's. The map must be per font and per page. The same file now yields 130 pages of clean Cyrillic.
Two traps that cost time and are worth remembering:
grepgoes silent on files with a NUL byte. A search for reboque in a 300 kB and entirely correct text file gave zero hits, which looked like a failed extraction.grep -agave 45 hits. The extraction had been right all along; it was the diagnosis that lied.- A PDF address that answers with HTML. Three
pt_*.pdfgive zero characters, and that is the right answer — they are HTML pages saved with.pdfin the name. Check withfilebefore you suspect the tool.
The machine still has neither pdftotext, pypdf, PyPDF2, pdfminer nor fitz in the system interpreter, and pip is not on the PATH. Ghostscript is there, however, and can pull out the text layer in batches, which serves as a second option when the reader fails on a document. A purely scanned PDF gives nothing from either, and then it is OCR that applies — see the method note about the law that is published but cannot be read. Never open a PDF directly in a reading tool that expects text: memory runs out before the file has said anything.
Not gone through at all: none, and since the tenth round on 2026-08-09 that means something more than it did before. The sentence stood here earlier, but it was then true in a way that helped nobody: it counted the countries in HUSVAGN, and a country missing a row in the generator was therefore not counted as unchecked but not counted at all. Seven countries — AL, BA, ME, MK, RS, UA and XK — fell through on DEFAULT 80 without appearing in that count, four of them with detailed, well-cited country pages in the wiki. Now all 38 stand as rows of their own with an article of law, and Albania, which was the last, turned out to have the wrong figure: 70, not 80. The gap that stood here after the fifth round — Belgium, Luxembourg and Estonia verified but without a citable address — has been closed since.
The lesson is worth writing out, because it applies to every future check here: never count coverage against the list you already have. A hole does not show up in an enumeration of what exists.
The experience in total, after the tenth round. 33 countries have been through a check round. Thirteen had the figure set too high (AL, AT, BE, BY, DK, FR, GB, HU, IT, LU, MD, PL, PT), four too low (CZ, LV, SI, SK) and sixteen were cleared (BA, BG, CH, EE, GR, HR, IE, LT, ME, MK, NL, RO, RS, TR, UA, XK). Five countries (SE, NO, FI, DE, ES) have never needed a round: they were right from the start. Belgium and Luxembourg count as lowered even though both were cleared first — Luxembourg was cleared in the second round and corrected in the sixth, which is the single strongest argument in the whole material that a clearing check is not a closed case.
Roughly half of all the figures were therefore wrong, and the conclusion is not that an unchecked figure leans high — it is unreliable in both directions. The check is worth doing even when it clears: Bulgaria was cleared only after the first source had led astray, and Türkiye was cleared only after a deduction of ten km/h in a fifth paragraph had been counted into a table that otherwise applied to vehicles without a trailer.
A note on what "cleared" means in the last seven cases. BA, ME, MK, RS, TR, UA and XK were cleared in the sense that the statute turned out to give the same figure as the generator's DEFAULT 80. A figure that happens to be right is not a checked figure until someone has read the article, and that is why they have rows now and not merely a correct value.
A third obstacle is worth writing up beside the two in the table above, since it has nothing to do with technology: a commercial publisher is not an authority. Croatia's figure had, for a short time, support in zakon.hr, which publishes consolidated statute and does it well — but for which nobody can be held responsible. That the error was possible to catch was luck, not routine. The rule that follows: note which address gave the quotation in the same moment you quote it. Otherwise it later becomes impossible to tell an authority from a publisher.
A fourth: an amending act's own Članak N. is not a reference to article N of the base law. In Croatian legislative technique the amending act numbers itself from 1 upwards entirely on its own; a reference to the base law is written "U članku 54.". Searching for Članak 54. in an amending act therefore almost always gives a false hit. The same holds for Slovak and Czech amending acts.
Method note: the certificate chain that was missing a link
Türkiye's statute database could not be reached. www.mevzuat.gov.tr and www.resmigazete.gov.tr gave curl: (60) unable to get local issuer certificate — the same error that looks like a broken or forged certificate and that tempts you into -k. That was not done. The fault was something else.
The server sends a single certificate in the handshake. It is in itself valid and correct: issued by DigiCert to C=TR, O=Cumhurbaşkanlığı, CN=*.tccb.gov.tr, with mevzuat.gov.tr and resmigazete.gov.tr among its SAN names. But it is issued by the intermediate certificate GeoTrust TLS RSA CA G1, and the server does not send that along. Without that link no client can reach up to the root. It is a server configuration missing a link, not a security problem.
The certificate itself points out where the link is, in its AIA record: CA Issuers - URI:http://cacerts.geotrust.com/GeoTrustTLSRSACAG1.crt. The intermediate was fetched from there and verified against the system's own root store — it turned out to be issued by DigiCert Global Root G2, which is already there, and openssl verify gave OK. With the intermediate inserted as a bridge, the server's own certificate verified fully as well. The regulation was then fetched with --cacert against a store that is the system's plus the one missing link.
The difference from -k is the whole point: -k would have switched the check off and accepted anything. This put back the link the server forgot and let the check pass for real. The chain ends in a root that was in the machine before the session began.
Method note: the version number that does not mean latest
Liechtenstein's statute collection Lilex, gesetze.li, takes a parameter ?version=N in the PDF address. The number looks like an edition designation but is a position number in the version list. The first retrieval of the VRV (LR 741.11) used version=41 and got a text stamped Fassung: 01.01.2016 — nine years old, without anything in the address or in the page header suggesting it was superseded. The figures happened to be unchanged, but we did not know that until afterwards, and "happened to be right" is not a method.
The right answer stands in the landing page's own markup: https://www.gesetze.li/konso/1978.019 carries <option selected value="58">01.09.2025. The rule is therefore: never fetch a Lilex PDF on a guessed version number. Read selected from the landing page first, and write out which Fassung was read in the country page's source line. The same caution applies to every collection that numbers its consolidations sequentially instead of dating them.
Method note: a regulation that never came
Andorra's Codi de la circulació (Llei 12/2021) pushes the whole dimensions question onwards in art. 64: length, width and height are "la que es determini reglamentàriament o, si escau, la que assenyali la via". A delegation is not a figure, and the temptation is to look up the regulation, find something that looks like it fits, and write it in. Four sources were tried. None carries the figures, and three of them could have been misused:
- Decret 212/2022 is the technical regulation under the law, a hundred pages. Zero hits on 2.55, 2.60, 12.00 and 18.75. The fourteen occurrences of dimensions concern tyres, mirrors, school signs and bodywork alterations.
- Reglament 24.4.2002 on goods transport and special transport does have figures — but its art. 1.1 defines its own scope by referring to "els articles 76, 77 i 78 del Codi de la circulació", that is, to the 1999 law, which the Disposició derogatòria in Llei 12/2021 repealed in its entirety except art. 209 on pleasure craft. The consolidated text still carries the reference, word for word, to articles that do not exist. The regulation's own category VE-A (2.55 / 12 / 4) moreover describes vehicles especials, working machines, and is under art. 5.1 excepted from the whole regulation. Borrowing those figures would be to quote an exemption rule for working vehicles as a prohibition rule for caravans.
- Llei 12/2021 art. 39 contains a 2.55, but in a paragraph beginning "En els vehicles destinats exclusivament al transport de mercaderies" and dealing with the overhang of the load.
- Art. 65–66 both refer back to "els límits que estableix l'article anterior" and close the circle without a single figure.
Disposició final primera obliged the government to adopt the regulations within three months of publication in BOPA, 2 June 2021. The dimensions regulation has not come.
The conclusion is the marker per road, the same as Norway, and it is a result and not a failure: it removes five warnings the app previously gave on France's figures, and adds none. The repealed 1999 figures — among them 18.75 m — are reproduced on the country page expressly marked as history, precisely because they are easy to find and easy to cite wrongly. A warning must be carried by an article of law that is in force.
About the portal. portaljuridicandorra.ad/<ID> gives an empty SPA shell that only says "Carregant…", while portaljuridicandorra.ad/<ID>_0 serves the consolidated text as static HTML. The suffix _0 is the whole difference. bopa.ad and the portal's search function are unusable in the same way. Andorran PDFs moreover use a character encoding that loses both accents and spaces on extraction (itudigualoinferiora5m); search in a string with every blank removed.
Method note: measuring a map instead of trusting it
The Andorra find — the capital inside France's polygon — was a find by accident. The question it left behind could not be answered by looking: how much more of the map is wrong in the same way? An area lying in the neighbour's polygon looks exactly like an area lying correctly. The app has no reason to hesitate, and the traveller gets a figure that looks as credible as every other.
The judge has to be a different map. Natural Earth gives the same borders in three resolutions. The finest, ne_10m_admin_0_countries, is 13 MB and can never be delivered to a browser — but it does not need to be delivered in order to judge. 40,000 random points between 11° W and 41° E, 34° N and 71° N, all of which fell inside some 10m contour, were looked up in the map under test. Each point landed in one of three piles: right country, no country or wrong country. The judge existed only in the measurement and never followed into what the app delivers.
The three piles are not equivalent, and that is the whole basis for the decision. No country means no zone, so neither speed cap nor dimension warning — silence, the accepted direction of error. Wrong country means the neighbour's speed and the neighbour's five dimension figures, presented without reservation. That is the false positive the dimension guard exists to avoid.
| Map | Right | Silent | Wrong country | File |
|---|---|---|---|---|
| 110m | 95.9 % | 2.5 % | 1.67 % | 27 KiB |
| 50m | 98.9 % | 0.9 % | 0.22 % | 227 KiB |
| both layers | 99.4 % | 0.4 % | 0.23 % | 249 KiB |
The delivered map therefore placed one sixtieth of Europe's land area in the wrong country, without anything in the app being able to notice.
The unexpected part: finer is not automatically better coverage. The switch to 50m was first tried straight off, and then Stockholm, Copenhagen, Lisbon, Venice, Split and Esbjerg went silent. A coarse contour cuts corners and overshoots out into the water; a fine contour follows the coast and removes that surplus — and port cities lie by definition at the edge. Two of them were capitals. Had the switch been made on the assumption that higher resolution is better, the regression would never have been seen.
The solution required no new lookup code: both layers lie in the same file, the fine one first, and zonAt already takes the first matching polygon. The coarse layer answers only where the fine layer has no area. See Where the guard sees nothing for what is still silent.
The rule that remained. A map being replaced must be measured against an independent finer source before and after, and the figure that decides is the share of wrong country, not the share of right. That coverage increases says nothing about errors decreasing.
Method note: a word none of the statutes defines
Germany's width row has two figures. StVZO § 32 Abs. 1 Nr. 1 sets 2.55 m allgemein, and Nr. 5 sets 2.50 m bei Personenkraftwagen. Which of them hits a motorhome turns on whether a motorhome is a Personenkraftwagen, and that paragraph does not define the word.
There is a definition in German law that looks like an answer: PBefG § 4 Abs. 4 Nr. 1. It is written "im Sinne dieses Gesetzes" — for the purposes of this act — and the passenger transport act is not the vehicle regulation. Borrowing the definition to where it itself says it does not apply is precisely the sort of step this project does not take. The question may well have an unambiguous answer in German practice; we have not read that answer, and not having read something is not knowing it.
This is how it was handled, and it is the pattern to reuse. When a reading is open and the two readings give different figures, the figure chosen is the one that binds under both. Here that was 2.55: if the motorhome is a Pkw then 2.50 applies and we stay silent in the span between; if it is not, 2.55 applies and we are right. The error we can make is therefore silence, never a false alarm. The exception sits as a named deviation with the reason written out on the spot, not as a silent adjustment in the table — the table cell must say what the law says, and the deviation belongs in the translation from table to comparison figure, where it can be found and torn out once the answer exists.
It is the same device as ALTERNATIV for Albania's two axle figures and SLAPHOJD for Hungary's split height cell. Three different kinds of ambiguity, the same answer: a named list, a reason in plain words, and the choice of the figure whose direction of error is silence.
Method note: a law that is published but cannot be read — and that was read anyway
Here previously stood a note that Vatican City's Legge sulla cittadinanza, la residenza e l'accesso could not be read. It was written to be torn down, and on 2026-08-10 it was. What follows is partly what the law actually said, and partly — more important for next time — why the conclusion "there is no OCR engine" was wrong.
The obstacle was real as far as it was described. The Governorate publishes the law as scanned paper: eight pages of /CCITTFaxDecode, one full-page image per page, /FontFile 0 and /ToUnicode 0, so not a single character encoding anywhere in the file. The metadata is unmistakable — title: Network Scan Data, author: Panasonic Communications Co., Ltd., created 2011-03-01, the same day the law entered into force. Someone put the original into an office scanner.
The error was stopping at which tesseract. The system PATH does indeed lack tesseract, pdftoppm and pdftotext, and ollama on 11434 has only bge-m3, an embedding model without sight. But the tools on this machine have virtual environments of their own, and the wiki server's environment (karpathy-wiki-mcp/.venv) carries PyMuPDF 1.27.2.3. That was enough: render each page to PNG at 300 dpi, split the page into two halves so the lines survive the downscaling, and read the images. The reader is the OCR engine. The same principle as North Macedonia's Прилог I, where the CCITT streams were repacked into TIFF by hand — but this route is five lines of code instead of a hand-built file header, and it works regardless of how the image is encoded inside the PDF.
One more thing is worth writing out, since it contradicts what the tools themselves promise: the ingestion chain that says it can OCR cannot do it here. It calls an OCR program that is not installed on the machine, and its fallback requires an image-reading model that is not there either. The only thing in the whole chain that actually opens a scanned PDF is an underlying library it happens to pull in. A declared capability is not an available capability, and an installed extension is not the program it calls.
What the law says. N. CXXXI, given by Benedict XVI on 22 February 2011, in force 1 March 2011, replaces in its entirety the 1929 legge sulla cittadinanza e il soggiorno n. III. Capo III concerns access: art. 9 requires a permesso from the Governorate of anyone who is neither citizen nor resident, except in the part of the territory where free access applies; art. 11 excepts cardinals, patriarchs and bishops with their retinue, the diplomatic corps and the Pope's relatives. Vehicles have an article of their own:
ART. 13 — (Accesso con veicoli)
1. I veicoli condotti da chi non è cittadino o residente possono entrare nella Città del Vaticano previa autorizzazione.
2. La circolazione dei veicoli all'interno dello Stato è disciplinata da apposita normativa.
The conclusion about forbud does not change, but the reason does. Before, the field was left empty because the law was unread. Now it has been read, and the field is left empty because art. 13 is not a dimension or vehicle prohibition. The requirement hangs on who is driving — non-citizen, non-resident — not on what is driven or how big it is. The dimension guard compares the outfit's measurements against a limit; there is no limit here to compare against. Making a forbud out of a permit requirement would be to let the app warn about the caravan when the rule in fact hits every car, including the empty taxi — that is, exactly the false alarm the whole tool exists in order not to give.
Art. 13 § 2 moreover does the row above a service: it says that traffic inside the state is governed by apposita normativa, a regulation of its own. No such regulation has ever been promulgated — that was the conclusion of the review of the Governorate's 330 document ids, and here it is confirmed from the other direction, by the law that points at it. That is why the reception of Italian law in Legge N. LXXI art. 12 § 1 a) 8, frozen to 1 January 2009, remains the chain the six figures rest on.
