<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://www.vigyanwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3AGHS_phrases</id>
	<title>Module:GHS phrases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.vigyanwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3AGHS_phrases"/>
	<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;action=history"/>
	<updated>2026-05-11T13:58:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=43540&amp;oldid=prev</id>
		<title>Indicwiki: 1 revision imported from :alpha:Module:GHS_phrases</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=43540&amp;oldid=prev"/>
		<updated>2022-12-15T03:37:18Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported from &lt;a href=&quot;https://alpha.indicwiki.in/index.php?title=Module:GHS_phrases&quot; class=&quot;extiw&quot; title=&quot;alpha:Module:GHS phrases&quot;&gt;alpha:Module:GHS_phrases&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&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 09:07, 15 December 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&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>Indicwiki</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=29925&amp;oldid=prev</id>
		<title>Admin: Protected &quot;Module:GHS phrases&quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) [cascading]</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=29925&amp;oldid=prev"/>
		<updated>2022-12-03T11:20:45Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/wiki/Module:GHS_phrases&quot; title=&quot;Module:GHS phrases&quot;&gt;Module:GHS phrases&lt;/a&gt;&amp;quot; ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) [cascading]&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&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 16:50, 3 December 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=29924&amp;oldid=prev</id>
		<title>Admin at 11:20, 3 December 2022</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=29924&amp;oldid=prev"/>
		<updated>2022-12-03T11:20:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&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-GB&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 16:50, 3 December 2022&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-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&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;-- Implements: [[Template:GHS phrases]]&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;-- Implements: [[Template:GHS phrases]]&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;-- Helppage: [[Template:GHS phrases]]&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;-- Helppage: [[Template:GHS phrases]]&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;-- Error category: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GHS errors]]&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GHS warnings]] &lt;/del&gt;(mainspace pages only)&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;-- Error category: , &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;(mainspace pages only)&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;--&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;--&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;-- Also:  &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;-- Also:  &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-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&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;-- listtype, omit&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;-- listtype, omit&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;--------------------------------------------------------------------------------&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;--------------------------------------------------------------------------------&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;require('strict')&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- &lt;/ins&gt;require('strict')&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;local r = {}	-- &amp;quot;r&amp;quot; for return, so no confusion with setID P&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;local r = {}	-- &amp;quot;r&amp;quot; for return, so no confusion with setID P&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;local GHSdata	= mw.loadData('Module:GHS phrases/data')&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;local GHSdata	= mw.loadData('Module:GHS phrases/data')&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-l53&quot;&gt;Line 53:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 53:&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;-- addErrorCategory&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;-- addErrorCategory&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;--&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;--&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;-- Formats as &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GHS errors|catsort]]&lt;/del&gt;&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;-- Formats as  &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;-- or '' when in other namespace.&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;-- or '' when in other namespace.&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;-- sCatsort option using: H, P, _&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;-- sCatsort option using: H, P, _&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-l65&quot;&gt;Line 65:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 65:&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;		&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;		&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;		if sCatsort == '' then&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 sCatsort == '' then&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;			wlErrCat = '&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GHS errors]]&lt;/del&gt;'&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;			wlErrCat = ''&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;		else&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;		else&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;			wlErrCat = '&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GHS errors|' .. sCatsort .. ']]&lt;/del&gt;'&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;			wlErrCat = ''&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;		end&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;		end&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;	else&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;	else&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-l80&quot;&gt;Line 80:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 80:&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;-- addWarningCategory&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;-- addWarningCategory&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;--&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;--&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;-- Formats as &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GHS warnings|catsort]]&lt;/del&gt;&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;-- Formats as  &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;-- mainspace only, or '' when in other namespace.&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;-- mainspace only, or '' when in other namespace.&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;-- sCatsort option using: H, P, U, ?, D, O&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;-- sCatsort option using: H, P, U, ?, D, O&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-l91&quot;&gt;Line 91:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 91:&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 pagetype() == 'article' then -- mainspace only&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 pagetype() == 'article' then -- mainspace only&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;		if sCatsort == '' then&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 sCatsort == '' then&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;			wlWarnCat = '&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GHS warnings]]&lt;/del&gt;'&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;			wlWarnCat = ''&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;		else&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;		else&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;			wlWarnCat = '&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:GHS warnings|' .. sCatsort .. ']]&lt;/del&gt;'&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;			wlWarnCat = ''&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;		end&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;		end&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;	else&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;	else&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=29903&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=29903&amp;oldid=prev"/>
		<updated>2022-12-03T11:19:31Z</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=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&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 16:49, 3 December 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=29902&amp;oldid=prev</id>
		<title>wikipedia&gt;WOSlinker: use require('strict') instead of require('Module:No globals')</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=29902&amp;oldid=prev"/>
		<updated>2022-10-21T21:17:47Z</updated>

		<summary type="html">&lt;p&gt;use require(&amp;#039;strict&amp;#039;) instead of require(&amp;#039;Module:No globals&amp;#039;)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&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-GB&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:47, 22 October 2022&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-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&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;-- listtype, omit&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;-- listtype, omit&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;--------------------------------------------------------------------------------&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;--------------------------------------------------------------------------------&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;require('&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Module:No globals&lt;/del&gt;')&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;require('&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;strict&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;local r = {}	-- &amp;quot;r&amp;quot; for return, so no confusion with setID P&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;local r = {}	-- &amp;quot;r&amp;quot; for return, so no confusion with setID P&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;local GHSdata	= mw.loadData('Module:GHS phrases/data')&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;local GHSdata	= mw.loadData('Module:GHS phrases/data')&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>wikipedia&gt;WOSlinker</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=18062&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=18062&amp;oldid=prev"/>
		<updated>2022-10-11T17:00:11Z</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=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&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 22:30, 11 October 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=43539&amp;oldid=prev</id>
		<title>alpha&gt;Sarika: Created page with &quot;-------------------------------------------------------------------------------- -- Module:GHS phrases --  -- main: reads GHS parameters (arguments like &quot;H301&quot;, &quot;P401&quot;) --		an...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=43539&amp;oldid=prev"/>
		<updated>2022-05-20T11:07:04Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-------------------------------------------------------------------------------- -- Module:GHS phrases --  -- main: reads GHS parameters (arguments like &amp;quot;H301&amp;quot;, &amp;quot;P401&amp;quot;) --		an...&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&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 16:37, 20 May 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&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>alpha&gt;Sarika</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=18061&amp;oldid=prev</id>
		<title>wikipedia&gt;DePiep at 13:52, 27 November 2021</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:GHS_phrases&amp;diff=18061&amp;oldid=prev"/>
		<updated>2021-11-27T13:52:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
-- Module:GHS phrases&lt;br /&gt;
-- &lt;br /&gt;
-- main: reads GHS parameters (arguments like &amp;quot;H301&amp;quot;, &amp;quot;P401&amp;quot;)&lt;br /&gt;
--		and returns for each (listtype='abbr'):&lt;br /&gt;
--		phraseID visible; formal phrase text as &amp;lt;abbr title=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
-- setID	= &amp;quot;H&amp;quot; or &amp;quot;P&amp;quot;&lt;br /&gt;
-- phraseID = e.g. &amp;quot;H201&amp;quot;, &amp;quot;P231+P234&amp;quot;&lt;br /&gt;
-- phrase text read from array tables in [[Module:GHS phrases/data]]&lt;br /&gt;
--&lt;br /&gt;
-- Implements: [[Template:GHS phrases]]&lt;br /&gt;
-- Helppage: [[Template:GHS phrases]]&lt;br /&gt;
-- Error category: [[Category:GHS errors]], [[Category:GHS warnings]] (mainspace pages only)&lt;br /&gt;
--&lt;br /&gt;
-- Also: &lt;br /&gt;
-- listAll(), numberOfPhrases(), listOmitRules(),&lt;br /&gt;
-- listtype, omit&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
require('Module:No globals')&lt;br /&gt;
local r = {}	-- &amp;quot;r&amp;quot; for return, so no confusion with setID P&lt;br /&gt;
local GHSdata	= mw.loadData('Module:GHS phrases/data')&lt;br /&gt;
local getArgs	= require('Module:Arguments').getArgs&lt;br /&gt;
local tTools	= require('Module:TableTools')&lt;br /&gt;
local yesno		= require('Module:Yesno')&lt;br /&gt;
local tArgName	= {} -- named parameters (setid, omit, listtype)&lt;br /&gt;
local tMessagesToShow = {} -- the tail: Preview, Categories&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- wlHelpPage&lt;br /&gt;
--&lt;br /&gt;
-- Formats page as [[Helppage#Section|Label]]&lt;br /&gt;
-- by default, sLabel == sSection&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function wlHelpPage(sSection, sLabel)&lt;br /&gt;
local sHelpPage = 'Template:GHS phrases'&lt;br /&gt;
	&lt;br /&gt;
	if sLabel == nil then sLabel = sSection end&lt;br /&gt;
	&lt;br /&gt;
	if (sLabel or '') == '' then&lt;br /&gt;
		sLabel = ''&lt;br /&gt;
	else&lt;br /&gt;
		sLabel = '|' .. sLabel &lt;br /&gt;
	end&lt;br /&gt;
	if (sSection or '') == '' then&lt;br /&gt;
		sSection = ''&lt;br /&gt;
	else&lt;br /&gt;
		sSection = '#' .. sSection&lt;br /&gt;
	end&lt;br /&gt;
	return '[[' .. sHelpPage .. sSection .. sLabel .. ']]'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- addErrorCategory&lt;br /&gt;
--&lt;br /&gt;
-- Formats as [[Category:GHS errors|catsort]]&lt;br /&gt;
-- or '' when in other namespace.&lt;br /&gt;
-- sCatsort option using: H, P, _&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function addErrorCategory(sCatsort)&lt;br /&gt;
local pagetype = require('Module:Pagetype').main&lt;br /&gt;
	&lt;br /&gt;
	local wlErrCat = ''&lt;br /&gt;
	if pagetype() == 'article' then -- mainspace only&lt;br /&gt;
		if sCatsort == nil then sCatsort = tArgName['setID'] end&lt;br /&gt;
		&lt;br /&gt;
		if sCatsort == '' then&lt;br /&gt;
			wlErrCat = '[[Category:GHS errors]]'&lt;br /&gt;
		else&lt;br /&gt;
			wlErrCat = '[[Category:GHS errors|' .. sCatsort .. ']]'&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	table.insert(tMessagesToShow, wlErrCat)&lt;br /&gt;
	return&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- addWarningCategory&lt;br /&gt;
--&lt;br /&gt;
-- Formats as [[Category:GHS warnings|catsort]]&lt;br /&gt;
-- mainspace only, or '' when in other namespace.&lt;br /&gt;
-- sCatsort option using: H, P, U, ?, D, O&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function addWarningCategory(sCatsort)&lt;br /&gt;
local pagetype = require('Module:Pagetype').main&lt;br /&gt;
if sCatsort == nil then sCatsort = tArgName['setID'] end&lt;br /&gt;
		&lt;br /&gt;
	local wlWarnCat = ''&lt;br /&gt;
	if pagetype() == 'article' then -- mainspace only&lt;br /&gt;
		if sCatsort == '' then&lt;br /&gt;
			wlWarnCat = '[[Category:GHS warnings]]'&lt;br /&gt;
		else&lt;br /&gt;
			wlWarnCat = '[[Category:GHS warnings|' .. sCatsort .. ']]'&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return &lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	table.insert(tMessagesToShow, wlWarnCat)&lt;br /&gt;
	return&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- addPreviewMsg&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function addPreviewMsg(sMsg)&lt;br /&gt;
local previewWarn = require('Module:If preview')._warning&lt;br /&gt;
	table.insert(tMessagesToShow, previewWarn({sMsg}))&lt;br /&gt;
	return&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- showPreviewMsg&lt;br /&gt;
--&lt;br /&gt;
-- show table tMessagesToShow&lt;br /&gt;
-- preview-messages and errorcat&lt;br /&gt;
-- all namespaces&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function showPreviewMsg()&lt;br /&gt;
	if tTools.size(tMessagesToShow) &amp;gt; 0 then&lt;br /&gt;
		return table.concat(tMessagesToShow, '')&lt;br /&gt;
	else&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- applyRemoveDuplicates&lt;br /&gt;
--&lt;br /&gt;
-- returns edited table, with double Codes removed&lt;br /&gt;
-- adds warning with codes.&lt;br /&gt;
-- base table tArgs is walked through by a iwalker that reads a singel code,&lt;br /&gt;
-- then a ikiller checks the upward part of the same table to delete all copies&lt;br /&gt;
-- ikiller starts at end of table, walks towards iwalker; then tArgs is compressed&lt;br /&gt;
-- iwalker steps 1 up in the freshly compressed table&lt;br /&gt;
-- Used: iArgs is sorted, and order stays same. compress does not change that.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function applyRemoveDuplicates(tArgs)&lt;br /&gt;
local iR, iK -- iR = reader, iK = killer&lt;br /&gt;
local hit = false&lt;br /&gt;
&lt;br /&gt;
	iR = 1&lt;br /&gt;
	while iR &amp;lt; #tArgs do&lt;br /&gt;
		iK = #tArgs -- will be counting downwards&lt;br /&gt;
		while iK &amp;gt; iR do&lt;br /&gt;
			if tArgs[iK] == tArgs[iR] then&lt;br /&gt;
				hit = true&lt;br /&gt;
				addPreviewMsg('Duplicate removed: ' .. tArgs[iR])&lt;br /&gt;
				table.remove(tArgs, iK)&lt;br /&gt;
				tTools.compressSparseArray(tArgs)&lt;br /&gt;
			end&lt;br /&gt;
			iK = iK - 1&lt;br /&gt;
		end&lt;br /&gt;
		tTools.compressSparseArray(tArgs)&lt;br /&gt;
		iR = iR + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if hit then&lt;br /&gt;
		addWarningCategory('D')&lt;br /&gt;
	end&lt;br /&gt;
	return tArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- applyOmitRules&lt;br /&gt;
--&lt;br /&gt;
-- returns edited table, with Omit phraseID's removed&lt;br /&gt;
-- Omit rule is per GHS_Rev9E_0.pdf (2021)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function applyOmitRules(tArgs)&lt;br /&gt;
local tRules = GHSdata['tOmitRules']&lt;br /&gt;
	local hit = false&lt;br /&gt;
	&lt;br /&gt;
	for keep, omit in pairs(tRules) do&lt;br /&gt;
		if tTools.inArray(tArgs, omit) then&lt;br /&gt;
			if tTools.inArray(tArgs, keep) then&lt;br /&gt;
				hit = true&lt;br /&gt;
				for i, k in pairs(tArgs) do&lt;br /&gt;
					if k == omit then&lt;br /&gt;
						table.remove(tArgs, i)		&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				addPreviewMsg(wlHelpPage('Omit Rules') .. ': keep ' .. keep .. ', omit ' .. omit)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if hit then&lt;br /&gt;
		tTools.compressSparseArray(tArgs)&lt;br /&gt;
		addWarningCategory('O')&lt;br /&gt;
	end&lt;br /&gt;
	return tArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- label H-phrases or P-phrases&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function PHlabel()&lt;br /&gt;
	if tArgName['setID'] == 'GHS' then&lt;br /&gt;
		return 'GHS phrases'&lt;br /&gt;
	else&lt;br /&gt;
		return tArgName['setID'] .. '-phrases'&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- inMono&lt;br /&gt;
--&lt;br /&gt;
-- Use mono font-family (from: Template:Mono)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function inMono(s)&lt;br /&gt;
	if s == nil then s = '' end&lt;br /&gt;
	return '&amp;lt;span class=&amp;quot;monospaced&amp;quot; style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;' .. s .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- wlInlineTag&lt;br /&gt;
--&lt;br /&gt;
-- Returns &amp;lt;sup&amp;gt;[?]&amp;lt;/sup&amp;gt; with wikilink to [[helppage#section|errormessage]]&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function wlInlineTag(phraseID)&lt;br /&gt;
	local sMsg&lt;br /&gt;
	sMsg = '&amp;lt;sup&amp;gt;&amp;lt;span class=&amp;quot;noprint Inline-Template&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;'&lt;br /&gt;
				.. wlHelpPage(PHlabel(), '&amp;lt;span title=&amp;quot;' &lt;br /&gt;
									.. PHlabel() .. ': '&lt;br /&gt;
									.. phraseID&lt;br /&gt;
									.. ' not found'&lt;br /&gt;
									.. '&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;')&lt;br /&gt;
				.. '&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/span&amp;gt;&amp;lt;/sup&amp;gt;'&lt;br /&gt;
	return sMsg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- errorPhraseIDnotFound&lt;br /&gt;
--&lt;br /&gt;
-- Returns single value when error (not found in list):&lt;br /&gt;
-- plain value + inline warning [?] (linked) + error cat (mainsp) + preview warning&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function errorPhraseIDnotFound(phraseID)&lt;br /&gt;
	if phraseID == nil then phraseID = '' end&lt;br /&gt;
	&lt;br /&gt;
	local inlineTag = wlInlineTag(phraseID)&lt;br /&gt;
	local previewMsg = wlHelpPage(PHlabel()) .. ': \&amp;quot;' .. phraseID .. '\&amp;quot; not found'&lt;br /&gt;
	addPreviewMsg(previewMsg)&lt;br /&gt;
	addErrorCategory()&lt;br /&gt;
	&lt;br /&gt;
	return phraseID .. inlineTag&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- errorHPsetIDnotFound&lt;br /&gt;
--&lt;br /&gt;
-- setID H or P could not be found&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function errorHPsetIDnotFound()&lt;br /&gt;
	local sMsg&lt;br /&gt;
	sMsg = wlHelpPage('', PHlabel())&lt;br /&gt;
			.. ': &amp;quot;H&amp;quot; or &amp;quot;P&amp;quot; set id not found' &lt;br /&gt;
			.. ' (please use form like &amp;quot;|H200&amp;quot; or &amp;quot;|P300+P301&amp;quot;)'&lt;br /&gt;
	addPreviewMsg(sMsg)&lt;br /&gt;
	addErrorCategory('?')&lt;br /&gt;
	return showPreviewMsg()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- errorHPsetIDmissing&lt;br /&gt;
--&lt;br /&gt;
-- parameter |setid= to be used&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function errorHPsetIDmissing()&lt;br /&gt;
	local sMsg&lt;br /&gt;
	sMsg = wlHelpPage( '', PHlabel())&lt;br /&gt;
			.. ': &amp;quot;H&amp;quot; or &amp;quot;P&amp;quot; set id not found,' &lt;br /&gt;
			.. ' please use |setid=... (H or P)'&lt;br /&gt;
	addPreviewMsg(sMsg)&lt;br /&gt;
	return&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- formatPhraseAbbr&lt;br /&gt;
--&lt;br /&gt;
-- format phraseID and text, for abbr-form (infobox list form)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function formatPhraseAbbr(phraseID, sPhrase)&lt;br /&gt;
	return '&amp;lt;abbr class=&amp;quot;abbr&amp;quot; title=&amp;quot; ' .. phraseID .. ': ' .. sPhrase .. '&amp;quot;&amp;gt;'&lt;br /&gt;
				.. phraseID &lt;br /&gt;
				.. '&amp;lt;/abbr&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- formatPhraseInline&lt;br /&gt;
--&lt;br /&gt;
-- format phraseID and text, for inline form (in sentence)&lt;br /&gt;
-- adds &amp;quot;quotes&amp;quot;&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function formatPhraseInline(phraseID, sPhrase)&lt;br /&gt;
	return inMono(phraseID) .. ': \&amp;quot;' .. sPhrase .. '\&amp;quot;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- formatPhraseList&lt;br /&gt;
--&lt;br /&gt;
-- as inline, but no &amp;quot;quotes&amp;quot; added.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function formatPhraseList(phraseID, sPhrase)&lt;br /&gt;
	return inMono(phraseID) .. ': ' .. sPhrase&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- getSetID&lt;br /&gt;
--&lt;br /&gt;
-- Determines setID (expected either 'H' or 'P')&lt;br /&gt;
-- First route is: read |setid=&lt;br /&gt;
-- When |setid= is not set, &lt;br /&gt;
--		it looks for a first parameter that has an H of P prefix (in |P201|P202|...)&lt;br /&gt;
--		when not found, 'GHS' is retured&lt;br /&gt;
-- In one call, P and H numbers can *not* be mixed&lt;br /&gt;
--		so &amp;quot;|H201|P202|&amp;quot; will cause error &amp;quot;P202 not found&amp;quot; (... in H-list)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function getSetID(tArgs)&lt;br /&gt;
	local setIDfound = 'GHS'&lt;br /&gt;
	local paramsetID = tArgs['setid'] or nil&lt;br /&gt;
	&lt;br /&gt;
	if (paramsetID ~= nil) and (paramsetID == 'P' or paramsetID == 'H') then&lt;br /&gt;
		setIDfound = paramsetID&lt;br /&gt;
	else&lt;br /&gt;
		local initial = nil&lt;br /&gt;
		for i, v in ipairs(tArgs) do&lt;br /&gt;
			initial = mw.ustring.match(v, '^[PH]')&lt;br /&gt;
			if initial ~=nil then&lt;br /&gt;
				setIDfound = initial&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return setIDfound&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- getListType&lt;br /&gt;
--&lt;br /&gt;
-- Checks list format, including those from Module:List&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function getListType(tArgs)&lt;br /&gt;
	local listTypes = {&lt;br /&gt;
	['abbr'] = true,&lt;br /&gt;
	['bulleted'] = true,&lt;br /&gt;
	['unbulleted'] = true,&lt;br /&gt;
	['horizontal'] = true,&lt;br /&gt;
	['ordered'] = true,&lt;br /&gt;
	['horizontal_ordered'] = true,&lt;br /&gt;
	['horizontal ordered'] = true,&lt;br /&gt;
	['inline'] = true&lt;br /&gt;
	}&lt;br /&gt;
	local sListType = tArgs['listtype'] or 'abbr'&lt;br /&gt;
&lt;br /&gt;
	if sListType == '' or sListType == 'abbr' then&lt;br /&gt;
		return 'abbr'&lt;br /&gt;
	elseif listTypes[sListType] == true then&lt;br /&gt;
		if sListType == 'horizontal ordered' then&lt;br /&gt;
			sListType = 'horizontal_ordered'&lt;br /&gt;
		end&lt;br /&gt;
		return sListType&lt;br /&gt;
	else &lt;br /&gt;
		sListType = 'abbr'&lt;br /&gt;
	end&lt;br /&gt;
	return sListType&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- getDoOmitRules&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function getDoOmitRules(tArgs)&lt;br /&gt;
	local b = yesno(tArgs['omit'], true)&lt;br /&gt;
	&lt;br /&gt;
	if b == nil then b = true end&lt;br /&gt;
&lt;br /&gt;
	return yesno(b, true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- prepareArgs&lt;br /&gt;
--&lt;br /&gt;
-- First: determine setID (from |setID= OR from prefixes in parameters)&lt;br /&gt;
-- Then: clean up &amp;amp; format phrase IDs (=unnamed parameters)&lt;br /&gt;
--		remove bad characters, create H/P pattern &amp;quot;H201&amp;quot;, &amp;quot;P310+P302&amp;quot;&lt;br /&gt;
-- straight array, no nil's, sorted&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local function prepareArgs(tArgs)&lt;br /&gt;
&lt;br /&gt;
	tArgName['setID'] = getSetID(tArgs)&lt;br /&gt;
	tArgName['listtype'] = getListType(tArgs)&lt;br /&gt;
	tArgName['omit'] = getDoOmitRules(tArgs)&lt;br /&gt;
&lt;br /&gt;
	tArgs = tTools.compressSparseArray(tArgs) -- removes all named args&lt;br /&gt;
	if string.len(tArgName['setID']) == 1 and #tArgs &amp;gt; 0 then&lt;br /&gt;
		for i, v in ipairs(tArgs) do&lt;br /&gt;
			v = mw.text.decode(v)&lt;br /&gt;
			v = mw.ustring.gsub(v, '[^%d%+A-Za-z]', '')&lt;br /&gt;
			v = mw.ustring.gsub(v, '^(%d)', tArgName['setID'] .. '%1')&lt;br /&gt;
			v = mw.ustring.gsub(v, '%+(%d)', '+' .. tArgName['setID'] .. '%1')&lt;br /&gt;
			tArgs[i] = v&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(tArgs)&lt;br /&gt;
	end&lt;br /&gt;
	return tArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- listAll&lt;br /&gt;
--&lt;br /&gt;
-- Returns wikitable rows for each phrase id.&lt;br /&gt;
-- requires |setID=P/H&lt;br /&gt;
-- returns full list, all phrases, for a setID&lt;br /&gt;
-- 2-columns wikitable, sorted, sortable, anchor like &amp;quot;H201&amp;quot; for each&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function r.listAll(frame)&lt;br /&gt;
local newArgs = getArgs(frame)&lt;br /&gt;
local tL = {}&lt;br /&gt;
&lt;br /&gt;
	prepareArgs(newArgs)&lt;br /&gt;
	&lt;br /&gt;
	local tRead&lt;br /&gt;
	if tArgName['setID'] == 'H' then&lt;br /&gt;
		tRead = GHSdata['Hphrases']&lt;br /&gt;
	elseif tArgName['setID'] == 'P' then&lt;br /&gt;
		tRead = GHSdata['Pphrases']&lt;br /&gt;
	else &lt;br /&gt;
		errorHPsetIDmissing()&lt;br /&gt;
		return  showPreviewMsg()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Intermediate table t2 to maintain order; read from original table (/data)&lt;br /&gt;
	local t2 = {}&lt;br /&gt;
	local iPh&lt;br /&gt;
	for s, v in pairs(tRead) do&lt;br /&gt;
		iPh = tonumber(mw.ustring.match(s, '[PH](%d%d%d)'))&lt;br /&gt;
		if string.len(s) &amp;gt; 4 then&lt;br /&gt;
			iPh = tTools.size(t2) + 1&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(t2, iPh, s)&lt;br /&gt;
	end&lt;br /&gt;
	t2 = tTools.compressSparseArray(t2)&lt;br /&gt;
	table.sort(t2)&lt;br /&gt;
&lt;br /&gt;
	local sTR, v, sAnchor&lt;br /&gt;
	-- i = array index, s = phraseID, v = phrase text&lt;br /&gt;
	for i, s in ipairs(t2) do&lt;br /&gt;
		v = tRead[s]&lt;br /&gt;
		sAnchor = '&amp;lt;span class=&amp;quot;anchor&amp;quot; id=&amp;quot;' .. s .. '&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;'&lt;br /&gt;
		sTR = '|- ' .. sAnchor .. '\n| datasortvalue=&amp;quot;' .. i .. '&amp;quot; | &amp;lt;span style=&amp;quot;font-family: monospace;&amp;quot;&amp;gt;' .. s .. '&amp;lt;/span&amp;gt; || ' .. v&lt;br /&gt;
		table.insert(tL, sTR)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(tL, '\n')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- numberOfPhrases&lt;br /&gt;
--&lt;br /&gt;
-- Documentation&lt;br /&gt;
-- requires |setID=H/P&lt;br /&gt;
-- Returns number of phrases, in format&lt;br /&gt;
--	&amp;quot;GHS H-phrases (123)&amp;quot;&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function r.numberOfPhrases(frame)&lt;br /&gt;
	local newArgs = getArgs(frame)&lt;br /&gt;
&lt;br /&gt;
	prepareArgs(newArgs)&lt;br /&gt;
&lt;br /&gt;
	local iT&lt;br /&gt;
	if tArgName['setID'] == 'H' then&lt;br /&gt;
		iT = tTools.size(GHSdata['Hphrases'])&lt;br /&gt;
	elseif tArgName['setID'] == 'P' then&lt;br /&gt;
		iT = tTools.size(GHSdata['Pphrases'])&lt;br /&gt;
	else&lt;br /&gt;
		errorHPsetIDmissing()&lt;br /&gt;
		return showPreviewMsg()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return 'GHS ' .. PHlabel() .. ' &amp;lt;span style=&amp;quot;font-weight: normal;&amp;quot;&amp;gt;(' .. tostring(iT) .. ')&amp;lt;/span&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- listOmitRules&lt;br /&gt;
--&lt;br /&gt;
-- self-documentation&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function r.listOmitRules()&lt;br /&gt;
local tRules = GHSdata['tOmitRules']&lt;br /&gt;
local tL = {}&lt;br /&gt;
local s&lt;br /&gt;
&lt;br /&gt;
	s = wlHelpPage('Omit Rules')&lt;br /&gt;
		.. ': when the &amp;lt;i&amp;gt;keep&amp;lt;/i&amp;gt; ID is present, do not show the &amp;lt;i&amp;gt;omit&amp;lt;/i&amp;gt; ID phrase'&lt;br /&gt;
	table.insert(tL, s)&lt;br /&gt;
	for keep, omit in pairs (tRules) do&lt;br /&gt;
		s = '&amp;amp;bull; keep ' .. inMono(keep) .. ', omit ' .. inMono(omit)&lt;br /&gt;
		table.insert(tL, s)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(tL, '&amp;lt;br/&amp;gt;')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- _main&lt;br /&gt;
--&lt;br /&gt;
-- processes setID (H, P) and phrase codes&lt;br /&gt;
--		error:	setID not P, H&lt;br /&gt;
--				code not found&lt;br /&gt;
-- cannot mix H and P phrases&lt;br /&gt;
-- reads phrases from /data H or P phrases tables&lt;br /&gt;
-- formats phrase (abbreviation, abbr-title, phraseID)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function r._main(tArgs)&lt;br /&gt;
&lt;br /&gt;
	tArgs = prepareArgs(tArgs)&lt;br /&gt;
	&lt;br /&gt;
	if #tArgs == 0 then&lt;br /&gt;
		return showPreviewMsg() -- no content&lt;br /&gt;
	elseif tArgName['setID'] == 'GHS' then&lt;br /&gt;
		return errorHPsetIDnotFound()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tArgs = applyRemoveDuplicates(tArgs)&lt;br /&gt;
	if tArgName['omit'] then&lt;br /&gt;
		tArgs = applyOmitRules(tArgs)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local formatterF&lt;br /&gt;
	if tArgName['listtype'] == 'abbr' then&lt;br /&gt;
		formatterF = formatPhraseAbbr&lt;br /&gt;
	elseif tArgName['listtype'] == 'inline' then&lt;br /&gt;
		formatterF = formatPhraseInline&lt;br /&gt;
	else --- Module:List options&lt;br /&gt;
		formatterF = formatPhraseList&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local tReadD = {}&lt;br /&gt;
	if tArgName['setID'] == 'H' then&lt;br /&gt;
		tReadD = GHSdata['Hphrases']&lt;br /&gt;
	elseif tArgName['setID'] == 'P' then&lt;br /&gt;
		tReadD = GHSdata['Pphrases']&lt;br /&gt;
	else&lt;br /&gt;
		return showPreviewMsg()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local sPhrase&lt;br /&gt;
	local tR = {}&lt;br /&gt;
	for i, v in ipairs(tArgs) do&lt;br /&gt;
		sPhrase = tReadD[v]&lt;br /&gt;
		if sPhrase == nil then&lt;br /&gt;
			table.insert(tR, errorPhraseIDnotFound(tostring(v)))&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(tR, formatterF(v, sPhrase))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if tArgName['listtype'] == 'abbr' then&lt;br /&gt;
		return table.concat(tR, ', ') .. showPreviewMsg()&lt;br /&gt;
	elseif tArgName['listtype'] == 'inline' then&lt;br /&gt;
		return table.concat(tR, ', ') .. showPreviewMsg()&lt;br /&gt;
	else&lt;br /&gt;
		local mList = require('Module:List')&lt;br /&gt;
		return mList[tArgName['listtype']](tR) .. showPreviewMsg()&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- main&lt;br /&gt;
--&lt;br /&gt;
-- handles template input frame, then calls generic _main() function&lt;br /&gt;
-- To be invoked from {{template}}&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
function r.main(frame)&lt;br /&gt;
local newArgs = getArgs(frame)&lt;br /&gt;
	return r._main(newArgs) &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return r&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;DePiep</name></author>
	</entry>
</feed>