<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://invarians.org/index.php?action=history&amp;feed=atom&amp;title=The_Principia_Machina%2FTPC-PY%2Fdiff_falcon.py</id>
	<title>The Principia Machina/TPC-PY/diff falcon.py - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://invarians.org/index.php?action=history&amp;feed=atom&amp;title=The_Principia_Machina%2FTPC-PY%2Fdiff_falcon.py"/>
	<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;action=history"/>
	<updated>2026-10-21T13:45:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;diff=4809&amp;oldid=prev</id>
		<title>BFP Rauch: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;diff=4809&amp;oldid=prev"/>
		<updated>2026-09-30T02:11:02Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:11, 30 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
	<entry>
		<id>https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;diff=4808&amp;oldid=prev</id>
		<title>BFP Rauch: TPC-PY source diff_falcon.py (0.2.0), SHA-256 8084d58bfe2fa17b; conformed TPS 0.4.0; PROPOSED, not declared (TPC-PY 0.2.0)</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;diff=4808&amp;oldid=prev"/>
		<updated>2026-09-30T02:10:58Z</updated>

		<summary type="html">&lt;p&gt;TPC-PY source diff_falcon.py (0.2.0), SHA-256 8084d58bfe2fa17b; conformed TPS 0.4.0; PROPOSED, not declared (TPC-PY 0.2.0)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:10, 30 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&quot;&quot;&quot;diff_falcon 0.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/del&gt;: random differential run of tpc_falcon, Python against&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&quot;&quot;&quot;diff_falcon 0.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0&lt;/ins&gt;: random differential run of tpc_falcon, Python against&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;PHP (0.1.1: SERVED entries in the source lists, SM10). Usage: python3 diff_falcon.py &amp;lt;seed&amp;gt; [count]. Writes its cases to a&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;PHP (0.1.1: SERVED entries in the source lists, SM10&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; 0.2.0: the&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;output-schema digest, schema_canon and schema_digest, C7, drawn after&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the others so the earlier functions&#039; streams are unchanged&lt;/ins&gt;). Usage:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;python3 diff_falcon.py &amp;lt;seed&amp;gt; [count]. Writes its cases to a&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;temporary file outside the tree (kept where TPC_DIFF_CASES names it)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;temporary file outside the tree (kept where TPC_DIFF_CASES names it)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(count cases per function: canon, draw, reconcile, stage, qmatch,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(count cases per function: canon, draw, reconcile, stage, qmatch,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;qcheck, source, hop, stop), runs diff_falcon.php over it and compares&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;qcheck, source, hop, stop&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, schema_canon, schema_digest&lt;/ins&gt;), runs&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;every render byte for byte.&quot;&quot;&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;diff_falcon.php over it and compares every render byte for byte.&quot;&quot;&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import json&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import json&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import os&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import os&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l642&quot;&gt;Line 642:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 645:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             counts.append([&amp;quot;RESUMED&amp;quot;])&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             counts.append([&amp;quot;RESUMED&amp;quot;])&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return {&amp;quot;counts&amp;quot;: counts, &amp;quot;limits&amp;quot;: lim}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return {&amp;quot;counts&amp;quot;: counts, &amp;quot;limits&amp;quot;: lim}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Strings for the schema digest: line ends, NFD and NFC, the escapes, the&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# controls, DEL, U+2028, a character beyond the BMP (never a lone&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# surrogate: TPC-PHP cannot decode one).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STXT = TEXT + [&quot;\r\n&quot;, &#039;&quot;&#039;, &quot;\\&quot;, &quot;\u0000&quot;, &quot;\u001f&quot;, &quot;\u007f&quot;, &quot;\u2028&quot;,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;               &quot;\U0001f600&quot;, &quot;\u00e9&quot;, &quot;e\u0301&quot;]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;def r_stext():&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    return &quot;&quot;.join(pick(STXT) for _ in range(rnd.randint(0, 4)))&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;def shuffled(d):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &quot;&quot;&quot;The same object with its members in a random order.&quot;&quot;&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    ks = list(d)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    rnd.shuffle(ks)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    return {k: d[k] for k in ks}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;def r_sspec(name, allow_rows):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if allow_rows and rnd.random() &amp;lt; 0.25:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        cols = [{&quot;name&quot;: &quot;k&quot;, &quot;type&quot;: pick([&quot;text&quot;, &quot;decimal&quot;, &quot;date&quot;]),&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                 &quot;class&quot;: &quot;MECHANICAL&quot;}]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        for j in range(rnd.randint(1, 3)):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            cols.append(r_sspec(&quot;c%d&quot; % j, False))&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        key = [&quot;k&quot;] + ([&quot;c0&quot;] if rnd.random() &amp;lt; 0.2 and cols[1][&quot;class&quot;] == &quot;MECHANICAL&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                       and cols[1][&quot;type&quot;] != &quot;rows&quot; else [])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        return shuffled({&quot;name&quot;: name, &quot;type&quot;: &quot;rows&quot;, &quot;key&quot;: key,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                         &quot;class&quot;: &quot;MECHANICAL&quot;, &quot;columns&quot;: cols})&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    s = r_spec(name)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if s[&quot;type&quot;] == &quot;enum&quot; and rnd.random() &amp;lt; 0.6:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        vals = []&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        for _ in range(rnd.randint(1, 4)):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            v = r_stext()&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            if v not in vals:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;                vals.append(v)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        s[&quot;values&quot;] = vals&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    x = rnd.random()&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if x &amp;lt; 0.3:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        s[&quot;quote&quot;] = True&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    elif x &amp;lt; 0.55:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        s[&quot;quote&quot;] = False&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    r_decl(s)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if rnd.random() &amp;lt; 0.3:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        s[&quot;class&quot;] = &quot;INSPECTION&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    return shuffled(s)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;def gen_schema():&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    fields = [r_sspec(&quot;f%d&quot; % i, True) for i in range(rnd.randint(1, 3))]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    schema = {&quot;class&quot;: pick([&quot;FINDINGS&quot;, &quot;PATCH&quot;, &quot;SURVEY&quot;]),&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;              &quot;narrow&quot;: rnd.random() &amp;lt; 0.4, &quot;fields&quot;: fields}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    x = rnd.random()&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if x &amp;lt; 0.3:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        schema[&quot;confidential&quot;] = True&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    elif x &amp;lt; 0.6:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        schema[&quot;confidential&quot;] = False&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if rnd.random() &amp;lt; 0.06:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        bad = rnd.randrange(10)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        if bad == 0:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            return {&quot;schema&quot;: pick([None, [&quot;class&quot;], &quot;FINDINGS&quot;, 5, True, {}])}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        if bad == 1:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            del schema[&quot;narrow&quot;]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        elif bad == 2:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            schema[&quot;narrow&quot;] = pick([&quot;false&quot;, 0, None])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        elif bad == 3:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            schema[&quot;fields&quot;] = pick([{}, [], [[]], [None]])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        elif bad == 4:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            fields[0][&quot;name&quot;] = pick([&quot;IV&quot;, &quot;a-b&quot;, &quot;&quot;, 5, &quot;1a&quot;])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        elif bad == 5:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            schema[pick([&quot;version&quot;, &quot;Narrow&quot;, &quot;quote&quot;])] = pick([True, &quot;1&quot;])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        elif bad == 6:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            schema[&quot;class&quot;] = pick([&quot;REPORT&quot;, &quot;findings&quot;, None])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        elif bad == 7:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            fields.append(dict(fields[0]))&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        elif bad == 8:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            fields[0][&quot;quote&quot;] = pick([&quot;false&quot;, 0, None])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        else:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            schema[&quot;confidential&quot;] = pick([&quot;no&quot;, 1, None])&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    return {&quot;schema&quot;: shuffled(schema)}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l647&quot;&gt;Line 647:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 731:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        (&amp;quot;reconcile&amp;quot;, gen_reconcile), (&amp;quot;stage&amp;quot;, gen_stage),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        (&amp;quot;reconcile&amp;quot;, gen_reconcile), (&amp;quot;stage&amp;quot;, gen_stage),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        (&amp;quot;qmatch&amp;quot;, gen_qmatch), (&amp;quot;qcheck&amp;quot;, gen_qcheck),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        (&amp;quot;qmatch&amp;quot;, gen_qmatch), (&amp;quot;qcheck&amp;quot;, gen_qcheck),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        (&quot;source&quot;, gen_source), (&quot;hop&quot;, gen_hop), (&quot;stop&quot;, gen_stop)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        (&quot;source&quot;, gen_source), (&quot;hop&quot;, gen_hop), (&quot;stop&quot;, gen_stop&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;),&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;       (&quot;schema_canon&quot;, gen_schema), (&quot;schema_digest&quot;, gen_schema&lt;/ins&gt;)]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;cases = []&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;cases = []&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for fn, g in GEN:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for fn, g in GEN:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l675&quot;&gt;Line 675:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 760:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         if out.startswith(&amp;quot;ERROR&amp;quot;):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         if out.startswith(&amp;quot;ERROR&amp;quot;):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             keys = [&amp;quot;ERROR&amp;quot;]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             keys = [&amp;quot;ERROR&amp;quot;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        elif fn in (&quot;schema_canon&quot;, &quot;schema_digest&quot;):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            keys = [&quot;OK&quot;]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         elif fn == &amp;quot;canon&amp;quot;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         elif fn == &amp;quot;canon&amp;quot;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             keys = [&amp;quot;OK:&amp;quot; + cases[i][&amp;quot;args&amp;quot;][&amp;quot;spec&amp;quot;][&amp;quot;type&amp;quot;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             keys = [&amp;quot;OK:&amp;quot; + cases[i][&amp;quot;args&amp;quot;][&amp;quot;spec&amp;quot;][&amp;quot;type&amp;quot;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
	<entry>
		<id>https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;diff=4045&amp;oldid=prev</id>
		<title>BFP Rauch: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;diff=4045&amp;oldid=prev"/>
		<updated>2026-09-28T04:32:52Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:32, 28 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
	<entry>
		<id>https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;diff=4044&amp;oldid=prev</id>
		<title>BFP Rauch: TPC-PY source diff_falcon.py (0.1.1), SHA-256 6361729435e0a269; conformed TPS 0.3.0; PROPOSED, not declared (CO-8)</title>
		<link rel="alternate" type="text/html" href="https://invarians.org/index.php?title=The_Principia_Machina/TPC-PY/diff_falcon.py&amp;diff=4044&amp;oldid=prev"/>
		<updated>2026-09-27T15:43:18Z</updated>

		<summary type="html">&lt;p&gt;TPC-PY source diff_falcon.py (0.1.1), SHA-256 6361729435e0a269; conformed TPS 0.3.0; PROPOSED, not declared (CO-8)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;quot;&amp;quot;&amp;quot;diff_falcon 0.1.1: random differential run of tpc_falcon, Python against&lt;br /&gt;
PHP (0.1.1: SERVED entries in the source lists, SM10). Usage: python3 diff_falcon.py &amp;lt;seed&amp;gt; [count]. Writes its cases to a&lt;br /&gt;
temporary file outside the tree (kept where TPC_DIFF_CASES names it)&lt;br /&gt;
(count cases per function: canon, draw, reconcile, stage, qmatch,&lt;br /&gt;
qcheck, source, hop, stop), runs diff_falcon.php over it and compares&lt;br /&gt;
every render byte for byte.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
import json&lt;br /&gt;
import os&lt;br /&gt;
import random&lt;br /&gt;
import subprocess&lt;br /&gt;
import sys&lt;br /&gt;
import tempfile&lt;br /&gt;
from tpc_falcon import (run_case, SETS, TYPES, falcon_canon, _netstring,&lt;br /&gt;
                        falcon_stop)&lt;br /&gt;
&lt;br /&gt;
seed = int(sys.argv[1]) if len(sys.argv) &amp;gt; 1 else 1&lt;br /&gt;
count = int(sys.argv[2]) if len(sys.argv) &amp;gt; 2 else 20000&lt;br /&gt;
rnd = random.Random(seed)&lt;br /&gt;
T0 = 1789948800&lt;br /&gt;
DAY = 86400&lt;br /&gt;
&lt;br /&gt;
TEXT = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;  &amp;quot;, &amp;quot;\t&amp;quot;, &amp;quot;\n&amp;quot;, &amp;quot;\r&amp;quot;, &amp;quot;e\u0301&amp;quot;, &amp;quot;\u00e9&amp;quot;,&lt;br /&gt;
        &amp;quot;\u212b&amp;quot;, &amp;quot;\u00c5&amp;quot;, &amp;quot;\u1100\u1161&amp;quot;, &amp;quot;\uac00&amp;quot;, &amp;quot;\u00a0&amp;quot;, &amp;quot;|&amp;quot;, &amp;quot;\\&amp;quot;,&lt;br /&gt;
        &amp;quot;\u000b&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;\ufb01&amp;quot;, &amp;quot;\u0301&amp;quot;, &amp;quot;Opus&amp;quot;, &amp;quot;\u00e7&amp;quot;, &amp;quot;c\u0327&amp;quot;]&lt;br /&gt;
SYMS = [&amp;quot;m&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;K&amp;quot;, &amp;quot;mol&amp;quot;, &amp;quot;cd&amp;quot;, &amp;quot;rad&amp;quot;, &amp;quot;sr&amp;quot;, &amp;quot;Hz&amp;quot;, &amp;quot;N&amp;quot;, &amp;quot;Pa&amp;quot;,&lt;br /&gt;
        &amp;quot;J&amp;quot;, &amp;quot;W&amp;quot;, &amp;quot;C&amp;quot;, &amp;quot;V&amp;quot;, &amp;quot;F&amp;quot;, &amp;quot;Ohm&amp;quot;, &amp;quot;S&amp;quot;, &amp;quot;Wb&amp;quot;, &amp;quot;T&amp;quot;, &amp;quot;H&amp;quot;, &amp;quot;lm&amp;quot;, &amp;quot;lx&amp;quot;, &amp;quot;Bq&amp;quot;,&lt;br /&gt;
        &amp;quot;Gy&amp;quot;, &amp;quot;Sv&amp;quot;, &amp;quot;kat&amp;quot;, &amp;quot;min&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;au&amp;quot;, &amp;quot;deg&amp;quot;, &amp;quot;arcmin&amp;quot;, &amp;quot;arcsec&amp;quot;,&lt;br /&gt;
        &amp;quot;ha&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;eV&amp;quot;, &amp;quot;degC&amp;quot;, &amp;quot;Da&amp;quot;, &amp;quot;Np&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;dB&amp;quot;, &amp;quot;ft&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;da&amp;quot;]&lt;br /&gt;
PREF = [&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;m&amp;quot;, &amp;quot;u&amp;quot;, &amp;quot;da&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;M&amp;quot;, &amp;quot;G&amp;quot;, &amp;quot;T&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;q&amp;quot;,&lt;br /&gt;
        &amp;quot;Q&amp;quot;, &amp;quot;kd&amp;quot;]&lt;br /&gt;
SEGS = [&amp;quot;a&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;.&amp;quot;, &amp;quot;..&amp;quot;, &amp;quot;%2E&amp;quot;, &amp;quot;%2e%2E&amp;quot;, &amp;quot;%7e&amp;quot;, &amp;quot;%2f&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;c%41&amp;quot;,&lt;br /&gt;
        &amp;quot;x y&amp;quot;, &amp;quot;\u00e9&amp;quot;, &amp;quot;%zz&amp;quot;, &amp;quot;@&amp;quot;, &amp;quot;:&amp;quot;, &amp;quot;[1]&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def pick(xs):&lt;br /&gt;
    return xs[rnd.randrange(len(xs))]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_text():&lt;br /&gt;
    if rnd.random() &amp;lt; 0.04:&lt;br /&gt;
        return pick([5, None, True, 1.5, [&amp;quot;a&amp;quot;]])&lt;br /&gt;
    return &amp;quot;&amp;quot;.join(pick(TEXT) for _ in range(rnd.randint(0, 6)))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_digits(lo=0, hi=3):&lt;br /&gt;
    return &amp;quot;&amp;quot;.join(pick(&amp;quot;0012345679&amp;quot;) for _ in range(rnd.randint(lo, hi)))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_decimal():&lt;br /&gt;
    if rnd.random() &amp;lt; 0.04:&lt;br /&gt;
        return pick([1.5, 2, None, &amp;quot;1,5&amp;quot;, &amp;quot; 1&amp;quot;, &amp;quot;\u0663&amp;quot;, &amp;quot;1e&amp;quot;, &amp;quot;e5&amp;quot;])&lt;br /&gt;
    s = pick([&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;-&amp;quot;, &amp;quot;+&amp;quot;]) + r_digits(0, 4)&lt;br /&gt;
    if rnd.random() &amp;lt; 0.4:&lt;br /&gt;
        s += &amp;quot;.&amp;quot; + r_digits(0, 3)&lt;br /&gt;
    if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
        s += pick(&amp;quot;eE&amp;quot;) + pick([&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;-&amp;quot;, &amp;quot;+&amp;quot;]) + r_digits(0, 5)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_unit():&lt;br /&gt;
    if rnd.random() &amp;lt; 0.05:&lt;br /&gt;
        return pick([&amp;quot;1&amp;quot;, &amp;quot;&amp;quot;, &amp;quot; m&amp;quot;, &amp;quot;m &amp;quot;, &amp;quot;m/s&amp;quot;, &amp;quot;kg.m&amp;quot;])&lt;br /&gt;
    toks = []&lt;br /&gt;
    for _ in range(rnd.randint(1, 3)):&lt;br /&gt;
        t = pick(PREF) + pick(SYMS)&lt;br /&gt;
        r = rnd.random()&lt;br /&gt;
        if r &amp;lt; 0.3:&lt;br /&gt;
            t += str(rnd.randint(-3, 3))&lt;br /&gt;
        elif r &amp;lt; 0.35:&lt;br /&gt;
            t += str(rnd.randint(-9999, 9999))&lt;br /&gt;
        elif r &amp;lt; 0.37:&lt;br /&gt;
            t += &amp;quot;0&amp;quot; + str(rnd.randint(0, 99))&lt;br /&gt;
        toks.append(t)&lt;br /&gt;
    return pick([&amp;quot; &amp;quot;, &amp;quot; &amp;quot;, &amp;quot; &amp;quot;, &amp;quot;  &amp;quot;]).join(toks)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_unitvalue():&lt;br /&gt;
    if rnd.random() &amp;lt; 0.04:&lt;br /&gt;
        return pick([5, None, &amp;quot;5&amp;quot;, &amp;quot;5  m&amp;quot;])&lt;br /&gt;
    return r_decimal() if rnd.random() &amp;lt; 0.03 else (&lt;br /&gt;
        str(r_decimal()) + &amp;quot; &amp;quot; + r_unit())&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_date():&lt;br /&gt;
    if rnd.random() &amp;lt; 0.04:&lt;br /&gt;
        return pick([20260925, None, &amp;quot;2026-9-25&amp;quot;, &amp;quot;2026-09-25T00:00Z&amp;quot;])&lt;br /&gt;
    y, m, d = rnd.randint(0, 9999), rnd.randint(0, 13), rnd.randint(0, 32)&lt;br /&gt;
    if rnd.random() &amp;lt; 0.5:&lt;br /&gt;
        m, d = rnd.randint(1, 12), rnd.randint(1, 28)&lt;br /&gt;
    if rnd.random() &amp;lt; 0.1:&lt;br /&gt;
        m, d = 2, 29&lt;br /&gt;
    return (&amp;quot;%04d-%02d-%02d&amp;quot; if rnd.random() &amp;lt; 0.6 else &amp;quot;%04d%02d%02d&amp;quot;) % (&lt;br /&gt;
        y, m, d)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_url():&lt;br /&gt;
    if rnd.random() &amp;lt; 0.03:&lt;br /&gt;
        return pick([None, 5, &amp;quot;&amp;quot;, &amp;quot;//a/b&amp;quot;, &amp;quot;http://a b/&amp;quot;])&lt;br /&gt;
    s = pick([&amp;quot;http&amp;quot;, &amp;quot;HTTP&amp;quot;, &amp;quot;https&amp;quot;, &amp;quot;HtTpS&amp;quot;, &amp;quot;urn&amp;quot;, &amp;quot;mailto&amp;quot;, &amp;quot;1x&amp;quot;, &amp;quot;a+b&amp;quot;])&lt;br /&gt;
    s += &amp;quot;:&amp;quot;&lt;br /&gt;
    if rnd.random() &amp;lt; 0.7:&lt;br /&gt;
        s += &amp;quot;//&amp;quot;&lt;br /&gt;
        if rnd.random() &amp;lt; 0.2:&lt;br /&gt;
            s += pick([&amp;quot;user&amp;quot;, &amp;quot;User:pw&amp;quot;, &amp;quot;u%41&amp;quot;, &amp;quot;a@b&amp;quot;]) + &amp;quot;@&amp;quot;&lt;br /&gt;
        if rnd.random() &amp;lt; 0.15:&lt;br /&gt;
            s += pick([&amp;quot;[FE80::1]&amp;quot;, &amp;quot;[::a]&amp;quot;, &amp;quot;[bad&amp;quot;])&lt;br /&gt;
        else:&lt;br /&gt;
            s += &amp;quot;&amp;quot;.join(pick([&amp;quot;a&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;%41&amp;quot;, &amp;quot;%c3%a9&amp;quot;, &amp;quot;-&amp;quot;, &amp;quot;.&amp;quot;, &amp;quot;x&amp;quot;,&lt;br /&gt;
                               &amp;quot;%zz&amp;quot;, &amp;quot;\u00e9&amp;quot;])&lt;br /&gt;
                         for _ in range(rnd.randint(0, 4)))&lt;br /&gt;
        if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
            s += pick([&amp;quot;:80&amp;quot;, &amp;quot;:&amp;quot;, &amp;quot;:8x&amp;quot;, &amp;quot;:0443&amp;quot;])&lt;br /&gt;
    if rnd.random() &amp;lt; 0.8:&lt;br /&gt;
        s += pick([&amp;quot;/&amp;quot;, &amp;quot;&amp;quot;]) + &amp;quot;/&amp;quot;.join(pick(SEGS)&lt;br /&gt;
                                         for _ in range(rnd.randint(0, 4)))&lt;br /&gt;
    if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
        s += &amp;quot;?&amp;quot; + pick([&amp;quot;b=1&amp;amp;a=2&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;Q&amp;quot;, &amp;quot;%7E&amp;quot;])&lt;br /&gt;
    if rnd.random() &amp;lt; 0.2:&lt;br /&gt;
        s += &amp;quot;#&amp;quot; + pick([&amp;quot;F&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;%2f&amp;quot;])&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_value(spec):&lt;br /&gt;
    t = spec[&amp;quot;type&amp;quot;]&lt;br /&gt;
    if t == &amp;quot;text&amp;quot;:&lt;br /&gt;
        return r_text()&lt;br /&gt;
    if t == &amp;quot;decimal&amp;quot;:&lt;br /&gt;
        return r_decimal()&lt;br /&gt;
    if t == &amp;quot;unitvalue&amp;quot;:&lt;br /&gt;
        return r_unitvalue()&lt;br /&gt;
    if t == &amp;quot;date&amp;quot;:&lt;br /&gt;
        return r_date()&lt;br /&gt;
    if t == &amp;quot;url&amp;quot;:&lt;br /&gt;
        return r_url()&lt;br /&gt;
    if t == &amp;quot;enum&amp;quot;:&lt;br /&gt;
        return pick(spec[&amp;quot;values&amp;quot;] + [&amp;quot;Open&amp;quot;, 1, None])&lt;br /&gt;
    return pick([True, False, True, False, &amp;quot;true&amp;quot;, 1, None])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_spec(name=&amp;quot;x&amp;quot;):&lt;br /&gt;
    t = pick(TYPES)&lt;br /&gt;
    s = {&amp;quot;name&amp;quot;: name, &amp;quot;type&amp;quot;: t, &amp;quot;class&amp;quot;: &amp;quot;MECHANICAL&amp;quot;}&lt;br /&gt;
    if t == &amp;quot;enum&amp;quot;:&lt;br /&gt;
        s[&amp;quot;values&amp;quot;] = pick([[&amp;quot;open&amp;quot;, &amp;quot;closed&amp;quot;], [&amp;quot;OK&amp;quot;, &amp;quot;STALE&amp;quot;, &amp;quot;WRONG&amp;quot;]])&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_canon():&lt;br /&gt;
    spec = r_spec()&lt;br /&gt;
    if rnd.random() &amp;lt; 0.02:&lt;br /&gt;
        spec = pick([{&amp;quot;name&amp;quot;: &amp;quot;x&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;, &amp;quot;class&amp;quot;: &amp;quot;MECHANICAL&amp;quot;},&lt;br /&gt;
                     {&amp;quot;name&amp;quot;: &amp;quot;IV&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;class&amp;quot;: &amp;quot;MECHANICAL&amp;quot;},&lt;br /&gt;
                     {&amp;quot;name&amp;quot;: &amp;quot;x&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;class&amp;quot;: &amp;quot;OTHER&amp;quot;}])&lt;br /&gt;
    return {&amp;quot;value&amp;quot;: r_value(spec), &amp;quot;spec&amp;quot;: spec}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Small value pools so that outputs often agree after canonical form.&lt;br /&gt;
POOL = {&amp;quot;text&amp;quot;: [&amp;quot;x&amp;quot;, &amp;quot; x&amp;quot;, &amp;quot;x  &amp;quot;, &amp;quot;e\u0301&amp;quot;, &amp;quot;\u00e9&amp;quot;, &amp;quot;y&amp;quot;, &amp;quot;a\u00a0b&amp;quot;,&lt;br /&gt;
                 &amp;quot;a b&amp;quot;],&lt;br /&gt;
        &amp;quot;decimal&amp;quot;: [&amp;quot;1.5&amp;quot;, &amp;quot;1.50&amp;quot;, &amp;quot;15e-1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;2.0&amp;quot;, &amp;quot;0.2&amp;quot;],&lt;br /&gt;
        &amp;quot;unitvalue&amp;quot;: [&amp;quot;9.81 m s-2&amp;quot;, &amp;quot;9.810 s-2 m&amp;quot;, &amp;quot;5 cm&amp;quot;, &amp;quot;0.05 m&amp;quot;],&lt;br /&gt;
        &amp;quot;date&amp;quot;: [&amp;quot;2026-09-25&amp;quot;, &amp;quot;20260925&amp;quot;, &amp;quot;2026-09-26&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://a/b&amp;quot;, &amp;quot;HTTP://A/b&amp;quot;, &amp;quot;http://a/./b&amp;quot;, &amp;quot;http://a/B&amp;quot;,&lt;br /&gt;
                &amp;quot;http://a/%7e&amp;quot;, &amp;quot;http://a/~&amp;quot;],&lt;br /&gt;
        &amp;quot;boolean&amp;quot;: [True, False]}&lt;br /&gt;
BAD = {&amp;quot;text&amp;quot;: [5], &amp;quot;decimal&amp;quot;: [&amp;quot;x&amp;quot;, 1.5], &amp;quot;unitvalue&amp;quot;: [&amp;quot;1 kdB&amp;quot;],&lt;br /&gt;
       &amp;quot;date&amp;quot;: [&amp;quot;2026-02-30&amp;quot;], &amp;quot;url&amp;quot;: [&amp;quot;http://a b&amp;quot;], &amp;quot;boolean&amp;quot;: [&amp;quot;true&amp;quot;],&lt;br /&gt;
       &amp;quot;enum&amp;quot;: [&amp;quot;bad&amp;quot;]}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KEYS = {&amp;quot;text&amp;quot;: [[&amp;quot;g&amp;quot;, &amp;quot; g&amp;quot;], [&amp;quot;h&amp;quot;, &amp;quot;h &amp;quot;], [&amp;quot;m&amp;quot;]],&lt;br /&gt;
        &amp;quot;decimal&amp;quot;: [[&amp;quot;1&amp;quot;, &amp;quot;1.0&amp;quot;], [&amp;quot;2&amp;quot;, &amp;quot;2.00&amp;quot;]],&lt;br /&gt;
        &amp;quot;date&amp;quot;: [[&amp;quot;20260925&amp;quot;, &amp;quot;2026-09-25&amp;quot;], [&amp;quot;2026-09-24&amp;quot;]]}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def pool_value(spec):&lt;br /&gt;
    if rnd.random() &amp;lt; 0.02:&lt;br /&gt;
        return pick(BAD[spec[&amp;quot;type&amp;quot;]])&lt;br /&gt;
    if spec[&amp;quot;type&amp;quot;] == &amp;quot;enum&amp;quot;:&lt;br /&gt;
        return pick(spec[&amp;quot;values&amp;quot;])&lt;br /&gt;
    return pick(POOL[spec[&amp;quot;type&amp;quot;]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_decl(s):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;QUOTE AFFIX and QUOTE SCALE on a spec, mostly where allowed.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if s.get(&amp;quot;quote&amp;quot;) and s[&amp;quot;type&amp;quot;] in (&amp;quot;decimal&amp;quot;, &amp;quot;unitvalue&amp;quot;):&lt;br /&gt;
        if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
            s[&amp;quot;affix&amp;quot;] = pick([&amp;quot;%&amp;quot;, &amp;quot;$&amp;quot;, &amp;quot;per cent&amp;quot;, &amp;quot;pct&amp;quot;, chr(0xb0) + &amp;quot;C&amp;quot;])&lt;br /&gt;
        if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
            s[&amp;quot;scale&amp;quot;] = pick([&amp;quot;million&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;bn&amp;quot;, &amp;quot;M&amp;quot;])&lt;br /&gt;
    if rnd.random() &amp;lt; 0.01:&lt;br /&gt;
        s[pick([&amp;quot;affix&amp;quot;, &amp;quot;scale&amp;quot;])] = pick([&amp;quot;%&amp;quot;, &amp;quot;million&amp;quot;, &amp;quot;ab&amp;quot;, None, 5,&lt;br /&gt;
                                            &amp;quot;lots&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_reconcile():&lt;br /&gt;
    nf = rnd.randint(1, 3)&lt;br /&gt;
    fields = []&lt;br /&gt;
    for i in range(nf):&lt;br /&gt;
        if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
            cols = [{&amp;quot;name&amp;quot;: &amp;quot;k&amp;quot;, &amp;quot;type&amp;quot;: pick([&amp;quot;text&amp;quot;, &amp;quot;decimal&amp;quot;, &amp;quot;date&amp;quot;]),&lt;br /&gt;
                     &amp;quot;class&amp;quot;: &amp;quot;MECHANICAL&amp;quot;}]&lt;br /&gt;
            for j in range(rnd.randint(1, 2)):&lt;br /&gt;
                s = r_spec(&amp;quot;c%d&amp;quot; % j)&lt;br /&gt;
                if rnd.random() &amp;lt; 0.4:&lt;br /&gt;
                    s[&amp;quot;quote&amp;quot;] = True&lt;br /&gt;
                r_decl(s)&lt;br /&gt;
                if rnd.random() &amp;lt; 0.2:&lt;br /&gt;
                    s[&amp;quot;class&amp;quot;] = &amp;quot;INSPECTION&amp;quot;&lt;br /&gt;
                cols.append(s)&lt;br /&gt;
            fields.append({&amp;quot;name&amp;quot;: &amp;quot;r%d&amp;quot; % i, &amp;quot;type&amp;quot;: &amp;quot;rows&amp;quot;, &amp;quot;key&amp;quot;: [&amp;quot;k&amp;quot;],&lt;br /&gt;
                           &amp;quot;class&amp;quot;: &amp;quot;MECHANICAL&amp;quot;, &amp;quot;columns&amp;quot;: cols})&lt;br /&gt;
        else:&lt;br /&gt;
            s = r_spec(&amp;quot;f%d&amp;quot; % i)&lt;br /&gt;
            if rnd.random() &amp;lt; 0.4:&lt;br /&gt;
                s[&amp;quot;quote&amp;quot;] = True&lt;br /&gt;
            r_decl(s)&lt;br /&gt;
            if rnd.random() &amp;lt; 0.15:&lt;br /&gt;
                s[&amp;quot;class&amp;quot;] = &amp;quot;INSPECTION&amp;quot;&lt;br /&gt;
            fields.append(s)&lt;br /&gt;
    schema = {&amp;quot;class&amp;quot;: pick([&amp;quot;FINDINGS&amp;quot;, &amp;quot;PATCH&amp;quot;, &amp;quot;SURVEY&amp;quot;]),&lt;br /&gt;
              &amp;quot;narrow&amp;quot;: rnd.random() &amp;lt; 0.3, &amp;quot;fields&amp;quot;: fields}&lt;br /&gt;
    if rnd.random() &amp;lt; 0.25:&lt;br /&gt;
        schema[&amp;quot;confidential&amp;quot;] = rnd.random() &amp;lt; 0.8&lt;br /&gt;
    if rnd.random() &amp;lt; 0.005:&lt;br /&gt;
        schema[&amp;quot;confidential&amp;quot;] = pick([&amp;quot;yes&amp;quot;, 1, None])&lt;br /&gt;
    if rnd.random() &amp;lt; 0.02:&lt;br /&gt;
        schema[&amp;quot;class&amp;quot;] = &amp;quot;OTHER&amp;quot;&lt;br /&gt;
    nout = pick([2] * 6 + [3] * 5 + [4]) if rnd.random() &amp;gt; 0.01 else 1&lt;br /&gt;
    outputs = []&lt;br /&gt;
    for i in range(nout):&lt;br /&gt;
        acct = &amp;quot;a%d&amp;quot; % i if rnd.random() &amp;gt; 0.003 else &amp;quot;a0&amp;quot;&lt;br /&gt;
        status = &amp;quot;OVERDUE&amp;quot; if rnd.random() &amp;lt; 0.02 else &amp;quot;RETURNED&amp;quot;&lt;br /&gt;
        if status == &amp;quot;OVERDUE&amp;quot; or rnd.random() &amp;lt; 0.02:&lt;br /&gt;
            outputs.append({&amp;quot;account&amp;quot;: acct, &amp;quot;status&amp;quot;: status,&lt;br /&gt;
                            &amp;quot;result&amp;quot;: None})&lt;br /&gt;
            continue&lt;br /&gt;
        res = {}&lt;br /&gt;
        for f in fields:&lt;br /&gt;
            if f[&amp;quot;type&amp;quot;] == &amp;quot;rows&amp;quot;:&lt;br /&gt;
                groups = KEYS[f[&amp;quot;columns&amp;quot;][0][&amp;quot;type&amp;quot;]]&lt;br /&gt;
                keys = [pick(g) for g in rnd.sample(&lt;br /&gt;
                    groups, rnd.randint(0, len(groups)))]&lt;br /&gt;
                if keys and rnd.random() &amp;lt; 0.03:&lt;br /&gt;
                    keys.append(keys[0])&lt;br /&gt;
                rows = []&lt;br /&gt;
                for kv in keys:&lt;br /&gt;
                    row = {&amp;quot;k&amp;quot;: kv}&lt;br /&gt;
                    for cspec in f[&amp;quot;columns&amp;quot;][1:]:&lt;br /&gt;
                        row[cspec[&amp;quot;name&amp;quot;]] = pool_value(cspec)&lt;br /&gt;
                    rows.append(row)&lt;br /&gt;
                res[f[&amp;quot;name&amp;quot;]] = rows&lt;br /&gt;
            else:&lt;br /&gt;
                res[f[&amp;quot;name&amp;quot;]] = pool_value(f)&lt;br /&gt;
        r = rnd.random()&lt;br /&gt;
        if r &amp;lt; 0.01:&lt;br /&gt;
            res[&amp;quot;extra&amp;quot;] = 1&lt;br /&gt;
        elif r &amp;lt; 0.02 and res:&lt;br /&gt;
            del res[pick(sorted(res))]&lt;br /&gt;
        elif r &amp;lt; 0.15:&lt;br /&gt;
            res[&amp;quot;IV&amp;quot;] = pick([[&amp;quot;x&amp;quot;], [], [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;], [&amp;quot;x&amp;quot;], [&amp;quot;\u202e&amp;quot;]])&lt;br /&gt;
        elif r &amp;lt; 0.16:&lt;br /&gt;
            res[&amp;quot;IV&amp;quot;] = pick([&amp;quot;x&amp;quot;, [1]])&lt;br /&gt;
        elif r &amp;lt; 0.17:&lt;br /&gt;
            res = pick([[], &amp;quot;x&amp;quot;, 5])&lt;br /&gt;
        outputs.append({&amp;quot;account&amp;quot;: acct, &amp;quot;status&amp;quot;: status, &amp;quot;result&amp;quot;: res})&lt;br /&gt;
    ids = []&lt;br /&gt;
    for f in fields:&lt;br /&gt;
        if f[&amp;quot;type&amp;quot;] != &amp;quot;rows&amp;quot;:&lt;br /&gt;
            ids.append(f[&amp;quot;name&amp;quot;])&lt;br /&gt;
            continue&lt;br /&gt;
        kspec = f[&amp;quot;columns&amp;quot;][0]&lt;br /&gt;
        for kv in [&amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;m&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;2026-09-25&amp;quot;, &amp;quot;2026-09-24&amp;quot;]:&lt;br /&gt;
            try:&lt;br /&gt;
                k = _netstring([falcon_canon(kv, kspec)]).decode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
            except ValueError:&lt;br /&gt;
                continue&lt;br /&gt;
            for cspec in f[&amp;quot;columns&amp;quot;][1:]:&lt;br /&gt;
                ids.append(&amp;quot;%s[%s].%s&amp;quot; % (f[&amp;quot;name&amp;quot;], k, cspec[&amp;quot;name&amp;quot;]))&lt;br /&gt;
    quotes = []&lt;br /&gt;
    for i in range(nout):&lt;br /&gt;
        q = {}&lt;br /&gt;
        for iid in ids:&lt;br /&gt;
            if rnd.random() &amp;lt; 0.5:&lt;br /&gt;
                q[iid] = pick([&amp;quot;PASS&amp;quot;, &amp;quot;FAIL&amp;quot;, &amp;quot;UNKNOWN&amp;quot;, &amp;quot;PASS&amp;quot;])&lt;br /&gt;
        if rnd.random() &amp;lt; 0.01:&lt;br /&gt;
            q[&amp;quot;x&amp;quot;] = &amp;quot;MAYBE&amp;quot;&lt;br /&gt;
        quotes.append(q)&lt;br /&gt;
    if rnd.random() &amp;lt; 0.01:&lt;br /&gt;
        quotes = quotes[:-1]&lt;br /&gt;
    return {&amp;quot;outputs&amp;quot;: outputs, &amp;quot;quotes&amp;quot;: quotes, &amp;quot;schema&amp;quot;: schema}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_draw():&lt;br /&gt;
    m = rnd.randint(2, 9) if rnd.random() &amp;lt; 0.9 else rnd.randint(0, 1)&lt;br /&gt;
    cands = []&lt;br /&gt;
    for i in range(m):&lt;br /&gt;
        assigned = rnd.randint(0, 4)&lt;br /&gt;
        cands.append({&amp;quot;account&amp;quot;: &amp;quot;a%d&amp;quot; % i,&lt;br /&gt;
                      &amp;quot;sponsor&amp;quot;: &amp;quot;S%d&amp;quot; % rnd.randint(1, 4),&lt;br /&gt;
                      &amp;quot;family&amp;quot;: &amp;quot;V%d&amp;quot; % rnd.randint(1, 3),&lt;br /&gt;
                      &amp;quot;snapshot&amp;quot;: &amp;quot;x%d&amp;quot; % rnd.randint(1, 4),&lt;br /&gt;
                      &amp;quot;tier&amp;quot;: rnd.random() &amp;lt; 0.4,&lt;br /&gt;
                      &amp;quot;good_standing&amp;quot;: rnd.random() &amp;lt; 0.95,&lt;br /&gt;
                      &amp;quot;sandbox&amp;quot;: rnd.random() &amp;lt; 0.05,&lt;br /&gt;
                      &amp;quot;over_cap&amp;quot;: rnd.random() &amp;lt; 0.05,&lt;br /&gt;
                      &amp;quot;window&amp;quot;: rnd.randint(0, 3),&lt;br /&gt;
                      &amp;quot;ontime&amp;quot;: rnd.randint(0, assigned),&lt;br /&gt;
                      &amp;quot;assigned&amp;quot;: assigned})&lt;br /&gt;
    accts = [c[&amp;quot;account&amp;quot;] for c in cands]&lt;br /&gt;
    nk = rnd.randint(0, min(2, m))&lt;br /&gt;
    kept = rnd.sample(accts, nk)&lt;br /&gt;
    prior = kept + [a for a in accts&lt;br /&gt;
                    if a not in kept and rnd.random() &amp;lt; 0.05]&lt;br /&gt;
    n = rnd.randint(1, 3) if nk else pick([2, 2, 3])&lt;br /&gt;
    wait = rnd.randint(0, 100)&lt;br /&gt;
    drafted = rnd.randint(0, 1000)&lt;br /&gt;
    now = drafted + pick([0, max(wait - 1, 0), wait, wait + 5])&lt;br /&gt;
    r = &amp;quot;%032x&amp;quot; % rnd.getrandbits(128)&lt;br /&gt;
    args = {&amp;quot;candidates&amp;quot;: cands, &amp;quot;n&amp;quot;: n,&lt;br /&gt;
            &amp;quot;state&amp;quot;: {&amp;quot;kept&amp;quot;: kept, &amp;quot;prior&amp;quot;: prior, &amp;quot;drafted&amp;quot;: drafted,&lt;br /&gt;
                      &amp;quot;now&amp;quot;: now, &amp;quot;falcon_wait&amp;quot;: wait}, &amp;quot;r&amp;quot;: r}&lt;br /&gt;
    x = rnd.random()&lt;br /&gt;
    if x &amp;lt; 0.01:&lt;br /&gt;
        args[&amp;quot;n&amp;quot;] = pick([0, 4, 1.0, True])&lt;br /&gt;
    elif x &amp;lt; 0.02:&lt;br /&gt;
        args[&amp;quot;r&amp;quot;] = r.upper()&lt;br /&gt;
    elif x &amp;lt; 0.03 and cands:&lt;br /&gt;
        cands[0][&amp;quot;tier&amp;quot;] = 1&lt;br /&gt;
    elif x &amp;lt; 0.04:&lt;br /&gt;
        args[&amp;quot;state&amp;quot;][&amp;quot;now&amp;quot;] = drafted - 1&lt;br /&gt;
    return args&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
KINDS = [&amp;quot;LANDED&amp;quot;] * 6 + [&amp;quot;EVALUATED&amp;quot;, &amp;quot;BLOCKED&amp;quot;, &amp;quot;UNBLOCKED&amp;quot;, &amp;quot;SUSPENDED&amp;quot;,&lt;br /&gt;
                          &amp;quot;RESTORED&amp;quot;, &amp;quot;VIOLATION&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_stage():&lt;br /&gt;
    events = []&lt;br /&gt;
    for _ in range(rnd.randint(0, 15)):&lt;br /&gt;
        k = pick(KINDS)&lt;br /&gt;
        t = T0 + rnd.randint(0, 40) * DAY + pick([0, 0, 60, 3600,&lt;br /&gt;
                                                  rnd.randint(0, DAY - 1)])&lt;br /&gt;
        e = [k, t]&lt;br /&gt;
        if k in (&amp;quot;LANDED&amp;quot;, &amp;quot;SUSPENDED&amp;quot;, &amp;quot;RESTORED&amp;quot;, &amp;quot;VIOLATION&amp;quot;):&lt;br /&gt;
            e.append(&amp;quot;a%d&amp;quot; % rnd.randint(1, 3))&lt;br /&gt;
        events.append(e)&lt;br /&gt;
    as_of = T0 + rnd.randint(0, 200) * DAY + pick([0, 1, -1, 7200])&lt;br /&gt;
    if rnd.random() &amp;lt; 0.5:&lt;br /&gt;
        th = SETS[pick(&amp;quot;ABC&amp;quot;)]&lt;br /&gt;
    else:&lt;br /&gt;
        th = {&amp;quot;blocks&amp;quot;: rnd.randint(1, 6), &amp;quot;dates&amp;quot;: rnd.randint(1, 4),&lt;br /&gt;
              &amp;quot;span_days&amp;quot;: rnd.randint(0, 10),&lt;br /&gt;
              &amp;quot;dormant_days&amp;quot;: rnd.randint(1, 100)}&lt;br /&gt;
    x = rnd.random()&lt;br /&gt;
    if x &amp;lt; 0.01 and events:&lt;br /&gt;
        events[0] = [&amp;quot;LANDED&amp;quot;, events[0][1]]&lt;br /&gt;
    elif x &amp;lt; 0.02:&lt;br /&gt;
        events.append([&amp;quot;REGISTERED&amp;quot;, T0])&lt;br /&gt;
    elif x &amp;lt; 0.03:&lt;br /&gt;
        th = {&amp;quot;blocks&amp;quot;: 0, &amp;quot;dates&amp;quot;: 1, &amp;quot;span_days&amp;quot;: 0, &amp;quot;dormant_days&amp;quot;: 1}&lt;br /&gt;
    return {&amp;quot;events&amp;quot;: events, &amp;quot;as_of&amp;quot;: as_of, &amp;quot;thresholds&amp;quot;: th}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Quote match pieces for the TOKEN RULE: digits, signs (T1), separators&lt;br /&gt;
# and group spaces (T2), joins (T3), exponent forms (T4), affixes and&lt;br /&gt;
# per-cent words (T5), brackets and quotation marks (T7), scales (T8), Zs&lt;br /&gt;
# spaces, Cf characters, letters, whitespace and non-ASCII. NFC needs every&lt;br /&gt;
# character assigned by Unicode 13.0 except the two digits and letters of&lt;br /&gt;
# 15.0 and 15.1, which NFC leaves alone and the pinned table classifies.&lt;br /&gt;
QP = [&amp;quot;12&amp;quot;, &amp;quot;123&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;10&amp;quot;, &amp;quot;234&amp;quot;, &amp;quot;000&amp;quot;, &amp;quot;72.4&amp;quot;, &amp;quot;1,000&amp;quot;,&lt;br /&gt;
      &amp;quot;.&amp;quot;, &amp;quot;,&amp;quot;, &amp;quot;-&amp;quot;, &amp;quot;+&amp;quot;, &amp;quot;&amp;lt;&amp;quot;, &amp;quot;=&amp;quot;, &amp;quot;~&amp;quot;, &amp;quot;^&amp;quot;, &amp;quot;/&amp;quot;, &amp;quot;:&amp;quot;, &amp;quot;&amp;#039;&amp;quot;, &amp;quot;_&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;  &amp;quot;,&lt;br /&gt;
      &amp;quot;\t&amp;quot;, &amp;quot;(&amp;quot;, &amp;quot;)&amp;quot;, &amp;quot;[&amp;quot;, &amp;#039;&amp;quot;&amp;#039;, &amp;quot;%&amp;quot;, &amp;quot;$&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;E&amp;quot;, &amp;quot; x &amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;cm&amp;quot;, &amp;quot;a&amp;quot;,&lt;br /&gt;
      &amp;quot;x&amp;quot;, &amp;quot;Opus&amp;quot;, &amp;quot;opus&amp;quot;, chr(0x2212), chr(0x2013), chr(0xb1), chr(0x2248),&lt;br /&gt;
      chr(0x2264), chr(0x2265), chr(0x2019), chr(0xa0), chr(0x2009),&lt;br /&gt;
      chr(0x202f), chr(0xd7), chr(0xb7), chr(0x207b), chr(0x2075), chr(0xb2),&lt;br /&gt;
      chr(0x2030), chr(0x20ac), chr(0xb0), chr(0x2032), chr(0xe9),&lt;br /&gt;
      &amp;quot;e&amp;quot; + chr(0x301), chr(0x301), chr(0x6771) + chr(0x4eac), chr(0x3001),&lt;br /&gt;
      chr(0x663), chr(0x2007), chr(0x2002), chr(0x3000), chr(0x1680),&lt;br /&gt;
      chr(0x200b), chr(0xad), chr(0x2060), chr(0xfeff), chr(0x200e),&lt;br /&gt;
      chr(0x2044), chr(0x2215), chr(0x2236), chr(0x1e4f1), chr(0x2ebf0),&lt;br /&gt;
      &amp;quot; million&amp;quot;, &amp;quot;million&amp;quot;, &amp;quot;Millions&amp;quot;, &amp;quot; M&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot; k&amp;quot;, &amp;quot; K&amp;quot;, &amp;quot; bn&amp;quot;, &amp;quot;Bn&amp;quot;,&lt;br /&gt;
      &amp;quot; B&amp;quot;, &amp;quot; m&amp;quot;, &amp;quot;m&amp;quot;, &amp;quot; thousand&amp;quot;, &amp;quot; lakh&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot; E&amp;quot;, &amp;quot; e &amp;quot;, &amp;quot;**&amp;quot;, &amp;quot; ** &amp;quot;,&lt;br /&gt;
      &amp;quot; times 10^&amp;quot;, &amp;quot;times&amp;quot;, &amp;quot; per cent&amp;quot;, &amp;quot;per&amp;quot;, &amp;quot; cent&amp;quot;, &amp;quot;percent&amp;quot;, &amp;quot; pct&amp;quot;,&lt;br /&gt;
      &amp;quot;PCT&amp;quot;, &amp;quot; / &amp;quot;, &amp;quot; - &amp;quot;, &amp;quot; = &amp;quot;, &amp;quot; models&amp;quot;, &amp;quot;km&amp;quot;, chr(0x2014), chr(0x2010),&lt;br /&gt;
      chr(0x2e3a), chr(0x301c), chr(0xff0d), chr(0xff5e), chr(0xf7),&lt;br /&gt;
      chr(0x29f8), chr(0x2053), &amp;quot;~&amp;quot;, chr(0xbd), chr(0x2153), chr(0x2189),&lt;br /&gt;
      &amp;quot; 1/2&amp;quot;, chr(0xff05), chr(0xfe6a), chr(0x66a), chr(0x609), chr(0x60a),&lt;br /&gt;
      &amp;quot; bps&amp;quot;, &amp;quot;bp&amp;quot;, &amp;quot; basis points&amp;quot;, &amp;quot; basis&amp;quot;, &amp;quot; point&amp;quot;, &amp;quot; per mille&amp;quot;,&lt;br /&gt;
      &amp;quot;mille&amp;quot;, &amp;quot;permille&amp;quot;, &amp;quot; pp&amp;quot;, &amp;quot; ppm&amp;quot;, &amp;quot;PPB&amp;quot;, &amp;quot; ppt&amp;quot;, &amp;quot; percentage&amp;quot;,&lt;br /&gt;
      &amp;quot; mln&amp;quot;, &amp;quot; BLN&amp;quot;, &amp;quot; tn&amp;quot;, &amp;quot;trn&amp;quot;, &amp;quot; Mio&amp;quot;, &amp;quot;mrd&amp;quot;, &amp;quot; MM&amp;quot;, &amp;quot; mm&amp;quot;, &amp;quot; dozen&amp;quot;,&lt;br /&gt;
      &amp;quot; thousandths&amp;quot;, &amp;quot;tenth&amp;quot;, &amp;quot; quadrillion&amp;quot;, &amp;quot; to &amp;quot;]&lt;br /&gt;
AFFIX = [None, None, &amp;quot;%&amp;quot;, &amp;quot;$&amp;quot;, chr(0xb0) + &amp;quot;C&amp;quot;, chr(0x2030), chr(0x20ac),&lt;br /&gt;
         &amp;quot;percent&amp;quot;, &amp;quot;per cent&amp;quot;, &amp;quot;pct&amp;quot;, chr(0xff05), chr(0x66a), &amp;quot;bps&amp;quot;,&lt;br /&gt;
         &amp;quot;basis point&amp;quot;, &amp;quot;basis points&amp;quot;, &amp;quot;per mille&amp;quot;, &amp;quot;pp&amp;quot;, &amp;quot;ppm&amp;quot;,&lt;br /&gt;
         &amp;quot;percentage points&amp;quot;]&lt;br /&gt;
SCALE = [None, None, None, &amp;quot;million&amp;quot;, &amp;quot;k&amp;quot;, &amp;quot;K&amp;quot;, &amp;quot;M&amp;quot;, &amp;quot;bn&amp;quot;, &amp;quot;m&amp;quot;, &amp;quot;B&amp;quot;,&lt;br /&gt;
         &amp;quot;thousand&amp;quot;, &amp;quot;lakh&amp;quot;, &amp;quot;MM&amp;quot;, &amp;quot;mln&amp;quot;, &amp;quot;mio&amp;quot;, &amp;quot;dozen&amp;quot;, &amp;quot;thousandth&amp;quot;,&lt;br /&gt;
         &amp;quot;tenth&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_hay():&lt;br /&gt;
    return &amp;quot;&amp;quot;.join(pick(QP) for _ in range(rnd.randint(0, 8)))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_needle(h):&lt;br /&gt;
    if h and rnd.random() &amp;lt; 0.5:&lt;br /&gt;
        i = rnd.randint(0, len(h) - 1)&lt;br /&gt;
        return h[i:rnd.randint(i + 1, len(h))]&lt;br /&gt;
    return &amp;quot;&amp;quot;.join(pick(QP) for _ in range(rnd.randint(1, 3)))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_flags():&lt;br /&gt;
    aff = pick(AFFIX)&lt;br /&gt;
    sc = pick(SCALE)&lt;br /&gt;
    acc = rnd.random() &amp;lt; 0.2&lt;br /&gt;
    if rnd.random() &amp;lt; 0.01:&lt;br /&gt;
        aff = pick([&amp;quot;ab&amp;quot;, &amp;quot;&amp;quot;, 5, &amp;quot;%%&amp;quot;, &amp;quot;Percent&amp;quot;, &amp;quot;points&amp;quot;, &amp;quot;Basis Point&amp;quot;])&lt;br /&gt;
    if rnd.random() &amp;lt; 0.01:&lt;br /&gt;
        sc = pick([&amp;quot;lots&amp;quot;, &amp;quot;&amp;quot;, 5, &amp;quot;Million&amp;quot;, &amp;quot;millions&amp;quot;, &amp;quot;Mio&amp;quot;, &amp;quot;mm&amp;quot;,&lt;br /&gt;
                   &amp;quot;thousandths&amp;quot;])&lt;br /&gt;
    if rnd.random() &amp;lt; 0.005:&lt;br /&gt;
        acc = pick([&amp;quot;yes&amp;quot;, 1, None])&lt;br /&gt;
    return aff, sc, acc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_qmatch():&lt;br /&gt;
    parts = [pick(QP) for _ in range(rnd.randint(0, 8))]&lt;br /&gt;
    h = &amp;quot;&amp;quot;.join(parts)&lt;br /&gt;
    if parts and rnd.random() &amp;lt; 0.5:&lt;br /&gt;
        i = rnd.randint(0, len(parts) - 1)&lt;br /&gt;
        v = &amp;quot;&amp;quot;.join(parts[i:rnd.randint(i + 1, len(parts))])&lt;br /&gt;
    else:&lt;br /&gt;
        v = r_needle(h)&lt;br /&gt;
    if rnd.random() &amp;lt; 0.01:&lt;br /&gt;
        v = pick([12, None, [&amp;quot;12&amp;quot;]])&lt;br /&gt;
    aff, sc, acc = r_flags()&lt;br /&gt;
    return {&amp;quot;value&amp;quot;: v, &amp;quot;quote&amp;quot;: h, &amp;quot;affix&amp;quot;: aff, &amp;quot;scale&amp;quot;: sc,&lt;br /&gt;
            &amp;quot;accounting&amp;quot;: acc}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_qcheck():&lt;br /&gt;
    parts = [pick(QP) for _ in range(rnd.randint(0, 8))]&lt;br /&gt;
    page = &amp;quot;&amp;quot;.join(parts)&lt;br /&gt;
    if parts and rnd.random() &amp;lt; 0.6:&lt;br /&gt;
        i = rnd.randint(0, len(parts) - 1)&lt;br /&gt;
        qparts = parts[i:rnd.randint(i + 1, len(parts))]&lt;br /&gt;
        quote = &amp;quot;&amp;quot;.join(qparts)&lt;br /&gt;
        j = rnd.randint(0, len(qparts) - 1)&lt;br /&gt;
        value = (&amp;quot;&amp;quot;.join(qparts[j:rnd.randint(j + 1, len(qparts))])&lt;br /&gt;
                 if rnd.random() &amp;lt; 0.7 else r_needle(quote))&lt;br /&gt;
    else:&lt;br /&gt;
        quote = r_needle(page)&lt;br /&gt;
        value = r_needle(quote)&lt;br /&gt;
    if rnd.random() &amp;lt; 0.05:&lt;br /&gt;
        page = None&lt;br /&gt;
    if rnd.random() &amp;lt; 0.01:&lt;br /&gt;
        value = 5&lt;br /&gt;
    aff, sc, acc = r_flags()&lt;br /&gt;
    return {&amp;quot;page&amp;quot;: page, &amp;quot;quote&amp;quot;: quote, &amp;quot;value&amp;quot;: value, &amp;quot;affix&amp;quot;: aff,&lt;br /&gt;
            &amp;quot;scale&amp;quot;: sc, &amp;quot;accounting&amp;quot;: acc}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HOSTS = [&amp;quot;example.org&amp;quot;, &amp;quot;Example.ORG&amp;quot;, &amp;quot;docs.example.com&amp;quot;, &amp;quot;api.example.net&amp;quot;,&lt;br /&gt;
         &amp;quot;evil.example.org&amp;quot;, &amp;quot;example.org.&amp;quot;, &amp;quot;127.0.0.1&amp;quot;, &amp;quot;[::1]&amp;quot;,&lt;br /&gt;
         &amp;quot;exa mple.org&amp;quot;, &amp;quot;%65xample.org&amp;quot;, &amp;quot;example.org.evil.com&amp;quot;,&lt;br /&gt;
         &amp;quot;github.com&amp;quot;, &amp;quot;GitHub.com&amp;quot;]&lt;br /&gt;
PATHS = [&amp;quot;&amp;quot;, &amp;quot;/&amp;quot;, &amp;quot;/org&amp;quot;, &amp;quot;/org/&amp;quot;, &amp;quot;/org2&amp;quot;, &amp;quot;/models&amp;quot;, &amp;quot;/modelsx&amp;quot;, &amp;quot;/a&amp;quot;, &amp;quot;/..&amp;quot;,&lt;br /&gt;
         &amp;quot;/.&amp;quot;, &amp;quot;/%2E%2E&amp;quot;, &amp;quot;/%2F&amp;quot;, &amp;quot;/%7Euser&amp;quot;, &amp;quot;/v1/list&amp;quot;, &amp;quot;/bench.csv&amp;quot;,&lt;br /&gt;
         &amp;quot;/bench%2ecsv&amp;quot;, &amp;quot;/p&amp;quot;, &amp;quot;/..;&amp;quot;, &amp;quot;/%252E%252E&amp;quot;, &amp;quot;/;x&amp;quot;, &amp;quot;/a;b&amp;quot;, &amp;quot;/%5C&amp;quot;,&lt;br /&gt;
         &amp;quot;/%3B&amp;quot;, &amp;quot;/%252F&amp;quot;, &amp;quot;/%25252E&amp;quot;, &amp;quot;/...&amp;quot;, &amp;quot;/v1.2&amp;quot;, &amp;quot;/repo&amp;quot;, &amp;quot;/tree&amp;quot;,&lt;br /&gt;
         &amp;quot;/main&amp;quot;, &amp;quot;/blob&amp;quot;, &amp;quot;/issues&amp;quot;, &amp;quot;/%C3%A9&amp;quot;, &amp;quot;/%&amp;quot; + &amp;quot;25&amp;quot; * 6 + &amp;quot;41&amp;quot;,&lt;br /&gt;
         &amp;quot;/%&amp;quot; + &amp;quot;25&amp;quot; * 7 + &amp;quot;41&amp;quot;, &amp;quot;/refs&amp;quot;, &amp;quot;/REFS&amp;quot;, &amp;quot;/%C0%AE&amp;quot;, &amp;quot;/%ED%A0%80&amp;quot;,&lt;br /&gt;
         &amp;quot;/%E2%82&amp;quot;, &amp;quot;/%F0%9F%98%80&amp;quot;, &amp;quot;/%80&amp;quot;, &amp;quot;/%25C0%25AE&amp;quot;, &amp;quot;/%F4%90%80%80&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_cite():&lt;br /&gt;
    if rnd.random() &amp;lt; 0.02:&lt;br /&gt;
        return pick([5, None, &amp;quot;&amp;quot;, &amp;quot;https:/org/x&amp;quot;])&lt;br /&gt;
    s = pick([&amp;quot;https&amp;quot;, &amp;quot;https&amp;quot;, &amp;quot;https&amp;quot;, &amp;quot;HTTPS&amp;quot;, &amp;quot;http&amp;quot;, &amp;quot;ftp&amp;quot;]) + &amp;quot;://&amp;quot;&lt;br /&gt;
    if rnd.random() &amp;lt; 0.05:&lt;br /&gt;
        s += pick([&amp;quot;user&amp;quot;, &amp;quot;u:p&amp;quot;]) + &amp;quot;@&amp;quot;&lt;br /&gt;
    s += pick(HOSTS) + pick([&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;:443&amp;quot;, &amp;quot;:8443&amp;quot;, &amp;quot;:&amp;quot;, &amp;quot;:444&amp;quot;])&lt;br /&gt;
    s += &amp;quot;&amp;quot;.join(pick(PATHS) for _ in range(rnd.randint(0, 3)))&lt;br /&gt;
    if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
        s += &amp;quot;?&amp;quot; + pick([&amp;quot;format=csv&amp;quot;, &amp;quot;format=json&amp;quot;, &amp;quot;utm=x&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;p=../x&amp;quot;])&lt;br /&gt;
    if rnd.random() &amp;lt; 0.2:&lt;br /&gt;
        s += &amp;quot;#&amp;quot; + pick([&amp;quot;top&amp;quot;, &amp;quot;&amp;quot;])&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GH = [&amp;quot;CODE HOST&amp;quot;, &amp;quot;github.com&amp;quot;, &amp;quot;/*/*/tree/*/&amp;quot;, &amp;quot;/*/*/blob/*/&amp;quot;,&lt;br /&gt;
      &amp;quot;/*/*/commit/*/&amp;quot;]&lt;br /&gt;
LISTS = [&lt;br /&gt;
    [[&amp;quot;EXACT&amp;quot;, &amp;quot;https://data.example.org/bench.csv&amp;quot;],&lt;br /&gt;
     [&amp;quot;PREFIX&amp;quot;, &amp;quot;https://example.org/org/&amp;quot;],&lt;br /&gt;
     [&amp;quot;PREFIX&amp;quot;, &amp;quot;https://docs.example.com/models&amp;quot;],&lt;br /&gt;
     [&amp;quot;EXACT&amp;quot;, &amp;quot;https://api.example.net:8443/v1/list?format=csv&amp;quot;]],&lt;br /&gt;
    [[&amp;quot;PREFIX&amp;quot;, &amp;quot;https://example.org/a/&amp;quot;], [&amp;quot;PREFIX&amp;quot;, &amp;quot;https://example.org/a/org/&amp;quot;]],&lt;br /&gt;
    [[&amp;quot;PREFIX&amp;quot;, &amp;quot;https://example.org/org/&amp;quot;],&lt;br /&gt;
     [&amp;quot;EXACT&amp;quot;, &amp;quot;https://example.org/org/p&amp;quot;]],&lt;br /&gt;
    [[&amp;quot;EXACT&amp;quot;, &amp;quot;https://example.org&amp;quot;]],&lt;br /&gt;
    [GH, [&amp;quot;PREFIX&amp;quot;, &amp;quot;https://github.com/org/repo/tree/main/&amp;quot;],&lt;br /&gt;
     [&amp;quot;EXACT&amp;quot;, &amp;quot;https://data.example.org/bench.csv&amp;quot;],&lt;br /&gt;
     [&amp;quot;PREFIX&amp;quot;, &amp;quot;https://example.org/org/&amp;quot;]],&lt;br /&gt;
    [GH, [&amp;quot;PREFIX&amp;quot;, &amp;quot;https://github.com/org/repo/blob/0123abcd/&amp;quot;],&lt;br /&gt;
     [&amp;quot;EXACT&amp;quot;, &amp;quot;https://github.com/org/repo/issues/1&amp;quot;]],&lt;br /&gt;
    [[&amp;quot;CODE HOST&amp;quot;, &amp;quot;github.com&amp;quot;, &amp;quot;/*/*/tree/*/&amp;quot;],&lt;br /&gt;
     [&amp;quot;PREFIX&amp;quot;, &amp;quot;https://github.com/org/repo/tree/main/docs/&amp;quot;],&lt;br /&gt;
     [&amp;quot;PREFIX&amp;quot;, &amp;quot;https://github.com/org/repo/tree/dev/&amp;quot;]], []]&lt;br /&gt;
DECL = [&amp;quot;https://example.org/org&amp;quot;, &amp;quot;https://example.org/org/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://Example.ORG/a/%7eb&amp;quot;, &amp;quot;https://api.example.net:8443/v1/list&amp;quot;,&lt;br /&gt;
        &amp;quot;https://api.example.net:8443/v1/list?format=csv&amp;quot;,&lt;br /&gt;
        &amp;quot;https://docs.example.com/models/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://github.com/org/repo/tree/main/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://github.com/org/repo/commit/0123abcd/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://docs.example.com/&amp;quot;, &amp;quot;http://example.org/&amp;quot;, &amp;quot;https://u@a.org/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://10.0.0.1/&amp;quot;, &amp;quot;https://example.org/p#f&amp;quot;, &amp;quot;https://a.org:/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://github.com/org/&amp;quot;, &amp;quot;https://github.com/org/repo&amp;quot;,&lt;br /&gt;
        &amp;quot;https://example.org/a/..;/&amp;quot;, &amp;quot;https://example.org/a/%2E%2E/b/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://example.org/a;b&amp;quot;, &amp;quot;https://Example.ORG/a/./b&amp;quot;,&lt;br /&gt;
        &amp;quot;https://github.com/org/repo/tree/refs/&amp;quot;, &amp;quot;https://example.org/%C0%AE/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://github.com/org/repo/blob/Refs/pull/&amp;quot;]&lt;br /&gt;
GOOD = DECL[:8]&lt;br /&gt;
SERVED = [&amp;quot;https://api.crossref.org/v1/works/10.1016/s0140-6736(97)11096-0&amp;quot;,&lt;br /&gt;
          &amp;quot;https://api.crossref.org/v1/works/10.1002/(SICI)1097-0266(199708)18:7%3C509::AID-SMJ882%3E3.0.CO%3B2-Z&amp;quot;,&lt;br /&gt;
          &amp;quot;https://export.arxiv.org/api/query?id_list=2601.12345v2&amp;quot;,&lt;br /&gt;
          &amp;quot;https://doi.org/ra/10.1000/x&amp;quot;, &amp;quot;https://api.datacite.org/dois/10.5281/zenodo.1234567&amp;quot;,&lt;br /&gt;
          &amp;quot;https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&amp;amp;retmode=json&amp;amp;id=9500320&amp;quot;,&lt;br /&gt;
          &amp;quot;https://example.org/org/x&amp;quot;, &amp;quot;https://data.example.org/bench.csv&amp;quot;, &amp;quot;https://doi.org/&amp;quot;,&lt;br /&gt;
          &amp;quot;https://github.com/org/repo/raw/main/x&amp;quot;, &amp;quot;http://doi.org/ra/x&amp;quot;, &amp;quot;https://doi.org/ra/x#f&amp;quot;,&lt;br /&gt;
          &amp;quot;https://u@doi.org/ra/x&amp;quot;, &amp;quot;https://api.crossref.org/v1/works/10.1000/a%2Fb&amp;quot;]&lt;br /&gt;
MARKS = [GH, [&amp;quot;CODE HOST&amp;quot;, &amp;quot;github.com&amp;quot;], [&amp;quot;CODE HOST&amp;quot;, &amp;quot;github.com&amp;quot;, &amp;quot;/*/&amp;quot;],&lt;br /&gt;
         [&amp;quot;CODE HOST&amp;quot;, &amp;quot;GitHub.com&amp;quot;, &amp;quot;/*/*/tree/*/&amp;quot;],&lt;br /&gt;
         [&amp;quot;CODE HOST&amp;quot;, &amp;quot;github.com&amp;quot;, &amp;quot;/*/*/tree/*&amp;quot;],&lt;br /&gt;
         [&amp;quot;CODE HOST&amp;quot;, &amp;quot;docs.example.com&amp;quot;, &amp;quot;/*/&amp;quot;],&lt;br /&gt;
         [&amp;quot;CODE HOST&amp;quot;, &amp;quot;github.com&amp;quot;, &amp;quot;/*/*/*/&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_sources():&lt;br /&gt;
    if rnd.random() &amp;lt; 0.5:&lt;br /&gt;
        sources = [list(x) for x in pick(LISTS)]&lt;br /&gt;
    else:&lt;br /&gt;
        sources = [[pick([&amp;quot;EXACT&amp;quot;, &amp;quot;PREFIX&amp;quot;, &amp;quot;PREFIX&amp;quot;]), pick(GOOD)]&lt;br /&gt;
                   for _ in range(rnd.randint(0, 4))]&lt;br /&gt;
        if rnd.random() &amp;lt; 0.3:&lt;br /&gt;
            sources.insert(rnd.randint(0, len(sources)), pick(MARKS[:3]))&lt;br /&gt;
    if rnd.random() &amp;lt; 0.5:&lt;br /&gt;
        for _ in range(rnd.randint(1, 3)):&lt;br /&gt;
            sources.insert(rnd.randint(0, len(sources)),&lt;br /&gt;
                           [&amp;quot;SERVED&amp;quot;, pick(SERVED[:10] if rnd.random() &amp;lt; 0.9 else SERVED)])&lt;br /&gt;
        if rnd.random() &amp;lt; 0.05:&lt;br /&gt;
            sources.append([&amp;quot;SERVED&amp;quot;, pick(SERVED[:10]), &amp;quot;x&amp;quot;])&lt;br /&gt;
        if rnd.random() &amp;lt; 0.05:&lt;br /&gt;
            sources.append(pick([[&amp;quot;LIKE&amp;quot;, &amp;quot;https://a.org/&amp;quot;], &amp;quot;https://a.org/&amp;quot;,&lt;br /&gt;
                                 [&amp;quot;EXACT&amp;quot;, pick(DECL[9:])],&lt;br /&gt;
                                 [&amp;quot;PREFIX&amp;quot;, pick(DECL[8:])], pick(MARKS)]))&lt;br /&gt;
    return sources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def r_near(sources):&lt;br /&gt;
    es = [x for x in sources if type(x) is list and len(x) == 2&lt;br /&gt;
          and type(x[1]) is str]&lt;br /&gt;
    if es and rnd.random() &amp;lt; 0.6:&lt;br /&gt;
        cited = pick(es)[1] + pick([&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;/&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;/x&amp;quot;, &amp;quot;/x/y&amp;quot;, &amp;quot;/../x&amp;quot;,&lt;br /&gt;
                                    &amp;quot;?q=1&amp;quot;, &amp;quot;#f&amp;quot;, &amp;quot;/%2E%2E/x&amp;quot;, &amp;quot;/%2Fx&amp;quot;,&lt;br /&gt;
                                    &amp;quot;/..;/x&amp;quot;, &amp;quot;/%252E%252E/x&amp;quot;, &amp;quot;/a;b&amp;quot;,&lt;br /&gt;
                                    &amp;quot;/%5Cx&amp;quot;, &amp;quot;data.csv&amp;quot;, &amp;quot;../issues/1&amp;quot;,&lt;br /&gt;
                                    &amp;quot;/%C0%AE%C0%AE/x&amp;quot;, &amp;quot;/%ED%A0%80&amp;quot;,&lt;br /&gt;
                                    &amp;quot;/refs/pull/1/&amp;quot;, &amp;quot;v3&amp;quot;])&lt;br /&gt;
        if rnd.random() &amp;lt; 0.2:&lt;br /&gt;
            cited = cited.replace(&amp;quot;https&amp;quot;, pick([&amp;quot;HTTPS&amp;quot;, &amp;quot;http&amp;quot;]), 1)&lt;br /&gt;
        if rnd.random() &amp;lt; 0.1:&lt;br /&gt;
            cited = cited.replace(&amp;quot;%3B&amp;quot;, &amp;quot;%3b&amp;quot;).replace(&amp;quot;(&amp;quot;, &amp;quot;%28&amp;quot;).replace(&amp;quot;-&amp;quot;, &amp;quot;%2D&amp;quot;)&lt;br /&gt;
        return cited&lt;br /&gt;
    return r_cite()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_source():&lt;br /&gt;
    sources = r_sources()&lt;br /&gt;
    return {&amp;quot;cited&amp;quot;: r_near(sources), &amp;quot;sources&amp;quot;: sources}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_hop():&lt;br /&gt;
    sources = r_sources()&lt;br /&gt;
    x = rnd.random()&lt;br /&gt;
    valid = [i for i, e in enumerate(sources) if type(e) is list&lt;br /&gt;
             and len(e) == 2 and e[0] in (&amp;quot;EXACT&amp;quot;, &amp;quot;PREFIX&amp;quot;)]&lt;br /&gt;
    served = [i for i, e in enumerate(sources) if type(e) is list&lt;br /&gt;
              and len(e) == 2 and e[0] == &amp;quot;SERVED&amp;quot;]&lt;br /&gt;
    if x &amp;lt; 0.8 and valid:&lt;br /&gt;
        matched = pick(valid)&lt;br /&gt;
    elif x &amp;lt; 0.85 and served:&lt;br /&gt;
        matched = pick(served)&lt;br /&gt;
    elif x &amp;lt; 0.9 and sources:&lt;br /&gt;
        matched = rnd.randrange(len(sources))&lt;br /&gt;
    elif x &amp;lt; 0.97:&lt;br /&gt;
        matched = rnd.randint(-1, len(sources) + 1)&lt;br /&gt;
    else:&lt;br /&gt;
        matched = pick([&amp;quot;0&amp;quot;, None, 1.0, True])&lt;br /&gt;
    return {&amp;quot;hop&amp;quot;: r_near(sources), &amp;quot;matched&amp;quot;: matched, &amp;quot;sources&amp;quot;: sources}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def gen_stop():&lt;br /&gt;
    lim = {&amp;quot;breaker&amp;quot;: pick([&amp;quot;0&amp;quot;, &amp;quot;0.1&amp;quot;, &amp;quot;0.25&amp;quot;, &amp;quot;0.3&amp;quot;, &amp;quot;0.5&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;0.3333&amp;quot;]),&lt;br /&gt;
           &amp;quot;window&amp;quot;: pick([1, 2, 3, 5, 20])}&lt;br /&gt;
    if rnd.random() &amp;lt; 0.01:&lt;br /&gt;
        lim = pick([{&amp;quot;breaker&amp;quot;: &amp;quot;0.30001&amp;quot;, &amp;quot;window&amp;quot;: 20},&lt;br /&gt;
                    {&amp;quot;breaker&amp;quot;: 0.3, &amp;quot;window&amp;quot;: 20},&lt;br /&gt;
                    {&amp;quot;breaker&amp;quot;: &amp;quot;0.3&amp;quot;, &amp;quot;window&amp;quot;: 0}, {&amp;quot;breaker&amp;quot;: &amp;quot;0.3&amp;quot;}])&lt;br /&gt;
    counts = []&lt;br /&gt;
    flying = []&lt;br /&gt;
    n = 0&lt;br /&gt;
    spoil = rnd.random() &amp;lt; 0.05&lt;br /&gt;
    for _ in range(rnd.randint(0, 40)):&lt;br /&gt;
        st = falcon_stop(counts, {&amp;quot;breaker&amp;quot;: &amp;quot;0.3&amp;quot;, &amp;quot;window&amp;quot;: 20}&lt;br /&gt;
                         if type(lim.get(&amp;quot;breaker&amp;quot;)) is not str&lt;br /&gt;
                         or &amp;quot;window&amp;quot; not in lim or lim[&amp;quot;window&amp;quot;] == 0&lt;br /&gt;
                         or len(lim[&amp;quot;breaker&amp;quot;]) &amp;gt; 6 else lim)[&amp;quot;status&amp;quot;]&lt;br /&gt;
        x = rnd.random()&lt;br /&gt;
        if spoil and x &amp;lt; 0.1:&lt;br /&gt;
            counts.append(pick([[&amp;quot;ISSUED&amp;quot;, &amp;quot;f1&amp;quot;], [&amp;quot;FINISHED&amp;quot;, &amp;quot;zz&amp;quot;, 1, 0, 0],&lt;br /&gt;
                                [&amp;quot;STOPPED&amp;quot;], [&amp;quot;RESUMED&amp;quot;, 1]]))&lt;br /&gt;
            break&lt;br /&gt;
        if st == &amp;quot;STOPPED&amp;quot; and (not flying or x &amp;lt; 0.3):&lt;br /&gt;
            counts.append([&amp;quot;RESUMED&amp;quot;])&lt;br /&gt;
        elif st == &amp;quot;ISSUING&amp;quot; and (not flying or x &amp;lt; 0.5):&lt;br /&gt;
            n += 1&lt;br /&gt;
            counts.append([&amp;quot;ISSUED&amp;quot;, &amp;quot;f%d&amp;quot; % n])&lt;br /&gt;
            flying.append(&amp;quot;f%d&amp;quot; % n)&lt;br /&gt;
        elif flying:&lt;br /&gt;
            fid = flying.pop(rnd.randrange(len(flying)))&lt;br /&gt;
            items = rnd.randint(0, 10)&lt;br /&gt;
            dec = rnd.randint(0, items)&lt;br /&gt;
            unr = rnd.randint(0, items - dec)&lt;br /&gt;
            if spoil and rnd.random() &amp;lt; 0.1:&lt;br /&gt;
                counts.append([&amp;quot;FINISHED&amp;quot;, fid, items, dec, items + 1])&lt;br /&gt;
                break&lt;br /&gt;
            counts.append([&amp;quot;FINISHED&amp;quot;, fid, items, dec, unr])&lt;br /&gt;
        else:&lt;br /&gt;
            counts.append([&amp;quot;RESUMED&amp;quot;])&lt;br /&gt;
    return {&amp;quot;counts&amp;quot;: counts, &amp;quot;limits&amp;quot;: lim}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GEN = [(&amp;quot;canon&amp;quot;, gen_canon), (&amp;quot;draw&amp;quot;, gen_draw),&lt;br /&gt;
       (&amp;quot;reconcile&amp;quot;, gen_reconcile), (&amp;quot;stage&amp;quot;, gen_stage),&lt;br /&gt;
       (&amp;quot;qmatch&amp;quot;, gen_qmatch), (&amp;quot;qcheck&amp;quot;, gen_qcheck),&lt;br /&gt;
       (&amp;quot;source&amp;quot;, gen_source), (&amp;quot;hop&amp;quot;, gen_hop), (&amp;quot;stop&amp;quot;, gen_stop)]&lt;br /&gt;
cases = []&lt;br /&gt;
for fn, g in GEN:&lt;br /&gt;
    for _ in range(count):&lt;br /&gt;
        cases.append({&amp;quot;fn&amp;quot;: fn, &amp;quot;args&amp;quot;: g()})&lt;br /&gt;
CASES_PATH = os.environ.get(&amp;quot;TPC_DIFF_CASES&amp;quot;)  # named: kept, for crosspy.py&lt;br /&gt;
if not CASES_PATH:&lt;br /&gt;
    fd, CASES_PATH = tempfile.mkstemp(prefix=&amp;quot;tpc_diff_&amp;quot;, suffix=&amp;quot;.json&amp;quot;)  # outside the tree&lt;br /&gt;
    os.close(fd)&lt;br /&gt;
with open(CASES_PATH, &amp;quot;w&amp;quot;, encoding=&amp;quot;utf-8&amp;quot;) as f:&lt;br /&gt;
    json.dump(cases, f)&lt;br /&gt;
py = [run_case(c[&amp;quot;fn&amp;quot;], c[&amp;quot;args&amp;quot;]) for c in cases]&lt;br /&gt;
here = os.path.dirname(os.path.abspath(__file__))&lt;br /&gt;
php = json.loads(subprocess.run([&amp;quot;php&amp;quot;, os.path.join(here, &amp;quot;diff_falcon.php&amp;quot;), CASES_PATH],&lt;br /&gt;
                                capture_output=True, text=True,&lt;br /&gt;
                                check=True).stdout)&lt;br /&gt;
if not os.environ.get(&amp;quot;TPC_DIFF_CASES&amp;quot;):&lt;br /&gt;
    os.remove(CASES_PATH)&lt;br /&gt;
assert len(php) == len(py)&lt;br /&gt;
first = None&lt;br /&gt;
for fn, _ in GEN:&lt;br /&gt;
    idx = [i for i, c in enumerate(cases) if c[&amp;quot;fn&amp;quot;] == fn]&lt;br /&gt;
    diffs = [i for i in idx if py[i] != php[i]]&lt;br /&gt;
    cover = {}&lt;br /&gt;
    for i in idx:&lt;br /&gt;
        out = py[i]&lt;br /&gt;
        if out.startswith(&amp;quot;ERROR&amp;quot;):&lt;br /&gt;
            keys = [&amp;quot;ERROR&amp;quot;]&lt;br /&gt;
        elif fn == &amp;quot;canon&amp;quot;:&lt;br /&gt;
            keys = [&amp;quot;OK:&amp;quot; + cases[i][&amp;quot;args&amp;quot;][&amp;quot;spec&amp;quot;][&amp;quot;type&amp;quot;]]&lt;br /&gt;
        elif fn == &amp;quot;draw&amp;quot;:&lt;br /&gt;
            keys = [out.split(&amp;quot;\n&amp;quot;)[0][5:]]&lt;br /&gt;
        elif fn == &amp;quot;stage&amp;quot;:&lt;br /&gt;
            keys = [out.split(&amp;quot;\n&amp;quot;)[0][6:] +&lt;br /&gt;
                    (&amp;quot;+DORMANT&amp;quot; if &amp;quot;dormant|true&amp;quot; in out else &amp;quot;&amp;quot;)]&lt;br /&gt;
        elif fn in (&amp;quot;qmatch&amp;quot;, &amp;quot;qcheck&amp;quot;):&lt;br /&gt;
            keys = [out[6:]]&lt;br /&gt;
        elif fn in (&amp;quot;source&amp;quot;, &amp;quot;hop&amp;quot;):&lt;br /&gt;
            keys = [&amp;quot;:&amp;quot;.join(out.split(&amp;quot;\n&amp;quot;)[0].split(&amp;quot;|&amp;quot;)[1:4:2]&lt;br /&gt;
                             if out.startswith(&amp;quot;source|ENTRY&amp;quot;)&lt;br /&gt;
                             else out.split(&amp;quot;\n&amp;quot;)[0].split(&amp;quot;|&amp;quot;)[1:3])]&lt;br /&gt;
            if fn == &amp;quot;hop&amp;quot;:&lt;br /&gt;
                keys = [keys[0] + &amp;quot;:&amp;quot; + out.split(&amp;quot;\n&amp;quot;)[-1][4:]]&lt;br /&gt;
        elif fn == &amp;quot;stop&amp;quot;:&lt;br /&gt;
            ls = out.split(&amp;quot;\n&amp;quot;)&lt;br /&gt;
            keys = [ls[0][5:] + (&amp;quot;+ALONE&amp;quot; if ls[2] != &amp;quot;alone|-&amp;quot; else &amp;quot;&amp;quot;)]&lt;br /&gt;
        else:&lt;br /&gt;
            keys = [out.split(&amp;quot;\n&amp;quot;)[-1].split(&amp;quot;|&amp;quot;)[1]]&lt;br /&gt;
            keys += sorted({ln.split(&amp;quot;|&amp;quot;)[2] for ln in out.split(&amp;quot;\n&amp;quot;)&lt;br /&gt;
                            if ln.startswith(&amp;quot;item|&amp;quot;)})&lt;br /&gt;
            keys += sorted({&amp;quot;MALFORMED:&amp;quot; + ln.split(&amp;quot;|&amp;quot;)[4]&lt;br /&gt;
                            for ln in out.split(&amp;quot;\n&amp;quot;)&lt;br /&gt;
                            if &amp;quot;|MALFORMED|&amp;quot; in ln})&lt;br /&gt;
        for k in keys:&lt;br /&gt;
            cover[k] = cover.get(k, 0) + 1&lt;br /&gt;
    print(&amp;quot;seed %d %-9s cases %d differences %d&amp;quot; % (seed, fn, len(idx),&lt;br /&gt;
                                                     len(diffs)))&lt;br /&gt;
    print(&amp;quot;    &amp;quot; + &amp;quot;, &amp;quot;.join(&amp;quot;%s %d&amp;quot; % (k, cover[k]) for k in sorted(cover)))&lt;br /&gt;
    if diffs and first is None:&lt;br /&gt;
        first = diffs[0]&lt;br /&gt;
if first is not None:&lt;br /&gt;
    print(json.dumps(cases[first], ensure_ascii=True))&lt;br /&gt;
    print(py[first])&lt;br /&gt;
    print(&amp;quot;---&amp;quot;)&lt;br /&gt;
    print(php[first])&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>BFP Rauch</name></author>
	</entry>
</feed>