<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://safernicotine.wiki/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AChem2</id>
	<title>Module:Chem2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://safernicotine.wiki/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AChem2"/>
	<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;action=history"/>
	<updated>2026-04-28T11:52:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=33605&amp;oldid=prev</id>
		<title>imported&gt;Pppery: Per edit request</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=33605&amp;oldid=prev"/>
		<updated>2023-03-04T22:10:11Z</updated>

		<summary type="html">&lt;p&gt;Per edit request&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 23:10, 4 March 2023&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-l237&quot;&gt;Line 237:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 237:&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 not x then x = f:match(&amp;#039;^[\\].&amp;#039;, i); t = T_SPECIAL; end -- \x&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 not x then x = f:match(&amp;#039;^[\\].&amp;#039;, i); t = T_SPECIAL; end -- \x&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 not x then x = f:match(&amp;#039;^_{[^}]*}&amp;#039;, i); t = T_UNDERSCORE; 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;             if not x then x = f:match(&amp;#039;^_{[^}]*}&amp;#039;, i); t = T_UNDERSCORE; end -- _{...}&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;             if not x then x = f:match(&#039;^&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\&lt;/del&gt;^{[^}]*}&#039;, i); t = T_CARET; end   -- ^{...}&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;             if not x then x = f:match(&#039;^^{[^}]*}&#039;, i); t = T_CARET; 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;             if not x then x = f:match(&amp;#039;^.&amp;#039;, i); t = T_NOCHANGE; end  --the rest - one by one&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 not x then x = f:match(&amp;#039;^.&amp;#039;, i); t = T_NOCHANGE; end  --the rest - one by one&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 x then i = i + x:len(); else i = i + 999; error(&amp;quot;Invalid character in formula! : &amp;quot;..f) 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;             if x then i = i + x:len(); else i = i + 999; error(&amp;quot;Invalid character in formula! : &amp;quot;..f) end&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-l246&quot;&gt;Line 246:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 246:&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;div&gt;function p._chem(args)&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;function p._chem(args)&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 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 f = args[1] or &amp;#039;&amp;#039;&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 f = args[1] or &amp;#039;&amp;#039;&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 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;	f = mw.text.decode( f, true ) -- handle entity input (like &amp;amp;minus;): decode right away&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;     f = string.gsub(f, &amp;quot;–&amp;quot;, &amp;quot;-&amp;quot;)  -- replace – with - (hyphen not ndash)&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;     f = string.gsub(f, &amp;quot;–&amp;quot;, &amp;quot;-&amp;quot;)  -- replace – with - (hyphen not ndash)&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;     f = string.gsub(f, &amp;quot;−&amp;quot;, &amp;quot;-&amp;quot;)  -- replace – with - (hyphen not minus sign)&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;     f = string.gsub(f, &amp;quot;−&amp;quot;, &amp;quot;-&amp;quot;)  -- replace – with - (hyphen not minus sign)&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-l269&quot;&gt;Line 269:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 271:&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;         elseif t == T_COEFFICIENT then formula = formula .. x&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;         elseif t == T_COEFFICIENT then formula = formula .. x&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;         elseif t == T_NUM &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;then formula = formula .. su(&quot;&quot;, x);&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;         elseif t == T_NUM &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;       &lt;/ins&gt;then formula = formula .. su(&quot;&quot;, x);&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;         elseif t == T_LINKOPEN &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;then formula = formula .. x;      -- [[Link|&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;         elseif t == T_LINKOPEN &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/ins&gt;then formula = formula .. x;      -- [[Link|&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;         elseif t == T_OPEN &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;then formula = formula .. x;          -- ([{&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;         elseif t == T_OPEN &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      &lt;/ins&gt;then formula = formula .. x;          -- ([{&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;         elseif t == T_CLOSE then formula = formula .. x;          -- )]}&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;         elseif t == T_CLOSE &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/ins&gt;then formula = formula .. x;          -- )]}&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;         elseif t == T_PM_CHARGE &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/del&gt;then formula = formula .. su(x:gsub(&quot;-&quot;, &quot;−&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;         elseif t == T_PM_CHARGE &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/ins&gt;then formula = formula .. su(x:gsub(&quot;-&quot;, &quot;−&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;         elseif t == T_SUF_CHARGE 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;         elseif t == T_SUF_CHARGE then  &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;             formula = formula .. su(x:match(&amp;quot;[+-]&amp;quot;):gsub(&amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;), x:match(&amp;quot;%d+&amp;quot;), &amp;quot;&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;             formula = formula .. su(x:match(&amp;quot;[+-]&amp;quot;):gsub(&amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;), x:match(&amp;quot;%d+&amp;quot;), &amp;quot;&amp;quot;);&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-l310&quot;&gt;Line 310:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 312:&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;&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;                 formula = formula .. DotIt() .. &amp;quot;H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O&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;                 formula = formula .. DotIt() .. &amp;quot;H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O&amp;quot;;&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;             end &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &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;             end&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;         elseif t == T_UNDERSCORE  then formula = formula .. su(&quot;&quot;, x:sub(3,-2)) -- x contains _{string}&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;         elseif t == T_UNDERSCORE  then formula = formula .. su(&quot;&quot;, x&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:gsub(&quot;-&quot;, &quot;−&quot;)&lt;/ins&gt;:sub(3, -2)) -- x contains _{string}&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;         elseif t == T_CARET then formula = formula .. su(x:sub(3,-2), &quot;&quot;) -- x contains ^{string}&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;         elseif t == T_CARET &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      &lt;/ins&gt;then formula = formula .. su(x&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:gsub(&quot;-&quot;, &quot;−&quot;)&lt;/ins&gt;:sub(3, -2), &quot;&quot;) -- x contains ^{string}&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;         elseif t == T_ARROW_R then formula = formula .. &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;         elseif t == T_ARROW_R &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/ins&gt;then formula = formula .. &quot; → &quot;&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;         elseif t == T_ARROW_EQ then formula = formula .. &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;         elseif t == T_ARROW_EQ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;then formula = formula .. &quot; ⇌ &quot;&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;         elseif t == T_NOCHANGE &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;then formula = formula .. x;  -- The rest - everything which isn&#039;t captured by the regular expresions.&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;         elseif t == T_NOCHANGE &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;   &lt;/ins&gt;then formula = formula .. x;  -- The rest - everything which isn&#039;t captured by the regular expresions.&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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 error(&amp;#039;unreachable - ???&amp;#039;) end -- in fact, unreachable&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 error(&amp;#039;unreachable - ???&amp;#039;) end -- in fact, unreachable&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;!-- diff cache key uk_vapewiki:diff:1.41:old-26058:rev-33605:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Pppery</name></author>
	</entry>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=26058&amp;oldid=prev</id>
		<title>Richardpruen: 1 revision imported: Templates and CSS files</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=26058&amp;oldid=prev"/>
		<updated>2022-12-04T17:58:39Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported: Templates and CSS files&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 18:58, 4 December 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&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;!-- diff cache key uk_vapewiki:diff:1.41:old-26057:rev-26058 --&gt;
&lt;/table&gt;</summary>
		<author><name>Richardpruen</name></author>
	</entry>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=26057&amp;oldid=prev</id>
		<title>wikipedia&gt;GKFX: From the sandbox; remove special recognition of OH and O2 as groups due to ambiguity</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=26057&amp;oldid=prev"/>
		<updated>2022-01-08T20:36:56Z</updated>

		<summary type="html">&lt;p&gt;From the sandbox; remove special recognition of OH and O2 as groups due to ambiguity&lt;/p&gt;
&lt;a href=&quot;https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;amp;diff=26057&amp;amp;oldid=21213&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>wikipedia&gt;GKFX</name></author>
	</entry>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=21213&amp;oldid=prev</id>
		<title>Richardpruen: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=21213&amp;oldid=prev"/>
		<updated>2022-01-02T13:46:51Z</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;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 14:46, 2 January 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&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;!-- diff cache key uk_vapewiki:diff:1.41:old-21212:rev-21213 --&gt;
&lt;/table&gt;</summary>
		<author><name>Richardpruen</name></author>
	</entry>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=21212&amp;oldid=prev</id>
		<title>Wikipedia&gt;Gonnym: indent</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=21212&amp;oldid=prev"/>
		<updated>2021-12-12T12:04:40Z</updated>

		<summary type="html">&lt;p&gt;indent&lt;/p&gt;
&lt;a href=&quot;https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;amp;diff=21212&amp;amp;oldid=7855&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Wikipedia&gt;Gonnym</name></author>
	</entry>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=7855&amp;oldid=prev</id>
		<title>Richardpruen: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=7855&amp;oldid=prev"/>
		<updated>2021-09-01T14:49:47Z</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;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 15:49, 1 September 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&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;!-- diff cache key uk_vapewiki:diff:1.41:old-7854:rev-7855 --&gt;
&lt;/table&gt;</summary>
		<author><name>Richardpruen</name></author>
	</entry>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=7854&amp;oldid=prev</id>
		<title>Wikipedia&gt;El C: Changed protection settings for &quot;Module:Chem2&quot;: High-risk Lua module ([Edit=Require template editor access] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:Chem2&amp;diff=7854&amp;oldid=prev"/>
		<updated>2021-08-24T01:22:26Z</updated>

		<summary type="html">&lt;p&gt;Changed protection settings for &amp;quot;&lt;a href=&quot;/mediawiki/index.php/Module:Chem2&quot; title=&quot;Module:Chem2&quot;&gt;Module:Chem2&lt;/a&gt;&amp;quot;: &lt;a href=&quot;/mediawiki/index.php?title=WP:High-risk_templates&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:High-risk templates (page does not exist)&quot;&gt;High-risk Lua module&lt;/a&gt; ([Edit=Require template editor access] (indefinite))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {} -- module&amp;#039;s table&lt;br /&gt;
&lt;br /&gt;
local am = {}  -- Elements with wiki links&lt;br /&gt;
am.H=&amp;quot;[[Hydrogen|H]]&amp;quot;;am.He=&amp;quot;[[Helium|He]]&amp;quot;;&lt;br /&gt;
am.Li=&amp;quot;[[Lithium|Li]]&amp;quot;;am.Be=&amp;quot;[[Beryllium|Be]]&amp;quot;;am.B=&amp;quot;[[Boron|B]]&amp;quot;;am.C=&amp;quot;[[Carbon|C]]&amp;quot;;am.N=&amp;quot;[[Nitrogen|N]]&amp;quot;;am.O=&amp;quot;[[Oxygen|O]]&amp;quot;;am.F=&amp;quot;[[Fluorine|F]]&amp;quot;;am.Ne=&amp;quot;[[Neon|Ne]]&amp;quot;;&lt;br /&gt;
am.Na=&amp;quot;[[Sodium|Na]]&amp;quot;;am.Mg=&amp;quot;[[Magnesium|Mg]]&amp;quot;;am.Al=&amp;quot;[[Aluminium |Al]]&amp;quot;;am.Si=&amp;quot;[[Silicon|Si]]&amp;quot;;am.P=&amp;quot;[[Phosphorus|P]]&amp;quot;;am.S=&amp;quot;[[Sulfur|S]]&amp;quot;;am.Cl=&amp;quot;[[Chlorine|Cl]]&amp;quot;;am.Ar=&amp;quot;[[Argon|Ar]]&amp;quot;;&lt;br /&gt;
am.K=&amp;quot;[[Potassium|K]]&amp;quot;;am.Ca=&amp;quot;[[Calcium|Ca]]&amp;quot;;am.Sc=&amp;quot;[[Scandium|Sc]]&amp;quot;;am.Ti=&amp;quot;[[Titanium|Ti]]&amp;quot;;am.V=&amp;quot;[[Vanadium|V]]&amp;quot;;am.Cr=&amp;quot;[[Chromium|Cr]]&amp;quot;;am.Mn=&amp;quot;[[Manganese|Mn]]&amp;quot;;am.Fe=&amp;quot;[[Iron|Fe]]&amp;quot;;am.Co=&amp;quot;[[Cobalt|Co]]&amp;quot;;am.Ni=&amp;quot;[[Nickel|Ni]]&amp;quot;;am.Cu=&amp;quot;[[Copper|Cu]]&amp;quot;;am.Zn=&amp;quot;[[Zinc|Zn]]&amp;quot;;am.Ga=&amp;quot;[[Gallium|Ga]]&amp;quot;;am.Ge=&amp;quot;[[Germanium|Ge]]&amp;quot;;am.As=&amp;quot;[[Arsenic|As]]&amp;quot;;am.Se=&amp;quot;[[Selenium|Se]]&amp;quot;;am.Br=&amp;quot;[[Bromine|Br]]&amp;quot;;am.Kr=&amp;quot;[[Krypton|Kr]]&amp;quot;;am.Rb=&amp;quot;[[Rubidium|Rb]]&amp;quot;;&lt;br /&gt;
am.Sr=&amp;quot;[[Strontium|Sr]]&amp;quot;;am.Y=&amp;quot;[[Yttrium|Y]]&amp;quot;;am.Zr=&amp;quot;[[Zirconium|Zr]]&amp;quot;;am.Nb=&amp;quot;[[Niobium|Nb]]&amp;quot;;am.Mo=&amp;quot;[[Molybdenum|Mo]]&amp;quot;;am.Tc=&amp;quot;[[Technetium|Tc]]&amp;quot;;am.Ru=&amp;quot;[[Ruthenium|Ru]]&amp;quot;;am.Rh=&amp;quot;[[Rhodium|Rh]]&amp;quot;;am.Pd=&amp;quot;[[Palladium|Pd]]&amp;quot;;am.Ag=&amp;quot;[[Silver|Ag]]&amp;quot;;am.Cd=&amp;quot;[[Cadmium|Cd]]&amp;quot;;am.In=&amp;quot;[[Indium|In]]&amp;quot;;am.Sn=&amp;quot;[[Tin|Sn]]&amp;quot;;am.Sb=&amp;quot;[[Antimony|Sb]]&amp;quot;;am.Te=&amp;quot;[[Tellurium|Te]]&amp;quot;;am.I=&amp;quot;[[Iodine|I]]&amp;quot;;am.Xe=&amp;quot;[[Xenon|Xe]]&amp;quot;;&lt;br /&gt;
am.Cs=&amp;quot;[[Caesium|Cs]]&amp;quot;;am.Ba=&amp;quot;[[Barium|Ba]]&amp;quot;;am.La=&amp;quot;[[Lanthanum|La]]&amp;quot;;am.Ce=&amp;quot;[[Cerium|Ce]]&amp;quot;;am.Pr=&amp;quot;[[Praseodymium|Pr]]&amp;quot;;am.Nd=&amp;quot;[[Neodymium|Nd]]&amp;quot;;am.Pm=&amp;quot;[[Promethium|Pm]]&amp;quot;;am.Sm=&amp;quot;[[Samarium|Sm]]&amp;quot;;am.Eu=&amp;quot;[[Europium|Eu]]&amp;quot;;am.Gd=&amp;quot;[[Gadolinium|Gd]]&amp;quot;;am.Tb=&amp;quot;[[Terbium|Tb]]&amp;quot;;am.Dy=&amp;quot;[[Dysprosium|Dy]]&amp;quot;;am.Ho=&amp;quot;[[Holmium|Ho]]&amp;quot;;am.Er=&amp;quot;[[Erbium|Er]]&amp;quot;;am.Tm=&amp;quot;[[Thulium|Tm]]&amp;quot;;am.Yb=&amp;quot;[[Ytterbium|Yb]]&amp;quot;;am.Lu=&amp;quot;[[Lutetium|Lu]]&amp;quot;;am.Hf=&amp;quot;[[Hafnium|Hf]]&amp;quot;;am.Ta=&amp;quot;[[Tantalum|Ta]]&amp;quot;;am.W=&amp;quot;[[Tungsten|W]]&amp;quot;;am.Re=&amp;quot;[[Rhenium|Re]]&amp;quot;;am.Os=&amp;quot;[[Osmium|Os]]&amp;quot;;am.Ir=&amp;quot;[[Iridium|Ir]]&amp;quot;;am.Pt=&amp;quot;[[Platinum|Pt]]&amp;quot;;am.Au=&amp;quot;[[Gold|Au]]&amp;quot;;am.Hg=&amp;quot;[[Mercury (element)|Hg]]&amp;quot;;am.Tl=&amp;quot;[[Thallium|Tl]]&amp;quot;;am.Pb=&amp;quot;[[Lead|Pb]]&amp;quot;;am.Bi=&amp;quot;[[Bismuth|Bi]]&amp;quot;;am.Po=&amp;quot;[[Polonium|Po]]&amp;quot;;am.At=&amp;quot;[[Astatine|At]]&amp;quot;;am.Rn=&amp;quot;[[Radon|Rn]]&amp;quot;;&lt;br /&gt;
am.Fr=&amp;quot;[[Francium|Fr]]&amp;quot;;am.Ra=&amp;quot;[[Radium|Ra]]&amp;quot;;am.Ac=&amp;quot;[[Actinium|Ac]]&amp;quot;;am.Th=&amp;quot;[[Thorium|Th]]&amp;quot;;am.Pa=&amp;quot;[[Protactinium|Pa]]&amp;quot;;am.U=&amp;quot;[[Uranium|U]]&amp;quot;;am.Np=&amp;quot;[[Neptunium|Np]]&amp;quot;;am.Pu=&amp;quot;[[Plutonium|Pu]]&amp;quot;;am.Am=&amp;quot;[[Americium|Am]]&amp;quot;;am.Cm=&amp;quot;[[Curium|Cm]]&amp;quot;;am.Bk=&amp;quot;[[Berkelium|Bk]]&amp;quot;;am.Cf=&amp;quot;[[Californium|Cf]]&amp;quot;;am.Es=&amp;quot;[[Einsteinium|Es]]&amp;quot;;am.Fm=&amp;quot;[[Fermium|Fm]]&amp;quot;;am.Md=&amp;quot;[[Mendelevium|Md]]&amp;quot;;am.No=&amp;quot;[[Nobelium|No]]&amp;quot;;am.Lr=&amp;quot;[[Lawrencium|Lr]]&amp;quot;;am.Rf=&amp;quot;[[Rutherfordium|Rf]]&amp;quot;;am.Db=&amp;quot;[[Dubnium|Db]]&amp;quot;;am.Sg=&amp;quot;[[Seaborgium|Sg]]&amp;quot;;am.Bh=&amp;quot;[[Bohrium|Bh]]&amp;quot;;am.Hs=&amp;quot;[[Hassium|Hs]]&amp;quot;;am.Mt=&amp;quot;[[Meitnerium|Mt]]&amp;quot;;am.Ds=&amp;quot;[[Darmstadtium|Ds]]&amp;quot;;am.Rg=&amp;quot;[[Roentgenium|Rg]]&amp;quot;;am.Cp=&amp;quot;[[Copernicium|Cp]]&amp;quot;;am.Nh=&amp;quot;[[Nihonium|Nh]]&amp;quot;;am.Fl=&amp;quot;[[Flerovium|Fl]]&amp;quot;;am.Mc=&amp;quot;[[Moscovium|Mc]]&amp;quot;;am.Lv=&amp;quot;[[Livermorium|Lv]]&amp;quot;;am.Ts=&amp;quot;[[Tennessine|Ts]]&amp;quot;;am.Og=&amp;quot;[[Oganesson|Og]]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
local T_ELEM = 0         -- token types&lt;br /&gt;
local T_NUM = 1          -- number&lt;br /&gt;
local T_OPEN = 2         -- open &amp;#039;(&amp;#039;&lt;br /&gt;
local T_CLOSE = 3        -- close &amp;#039;)&amp;#039;&lt;br /&gt;
local T_PM_CHARGE = 4    -- + or −&lt;br /&gt;
local T_WATER = 6        -- .xH2O x number&lt;br /&gt;
local T_CRYSTAL = 9      -- .x&lt;br /&gt;
local T_CHARGE = 8       -- charge (x+), (x-)&lt;br /&gt;
local T_SUF_CHARGE = 10  -- suffix and charge e.g. 2+ from H2+&lt;br /&gt;
local T_SUF_CHARGE2 = 12 -- suffix and (charge) e.g. 2(2+) from He2(2+)&lt;br /&gt;
local T_SPECIAL = 14     -- starting with \ e.g. \d for double bond (=)&lt;br /&gt;
local T_SPECIAL2 = 16    -- starting with \y{x} e.g. \i{12} for isotope with mass number 12&lt;br /&gt;
local T_ARROW_R = 17     -- match: -&amp;gt;&lt;br /&gt;
local T_ARROW_EQ = 18    -- match: &amp;lt;-&amp;gt;&lt;br /&gt;
local T_UNDERSCORE = 19  -- _{ ... }&lt;br /&gt;
local T_CARET = 20       -- ^{ ... }&lt;br /&gt;
local T_NOCHANGE = 30        -- Anything else like ☃&lt;br /&gt;
&lt;br /&gt;
function su(up, down) -- like template:su&lt;br /&gt;
  if (down == &amp;quot;&amp;quot;) then &lt;br /&gt;
    return &amp;quot;&amp;lt;span style=\&amp;quot;display:inline-block; margin-bottom:-0.3em; vertical-align:0.8em; line-height:1.2em; font-size:70%; text-align:left;\&amp;quot;&amp;gt;&amp;quot; .. up .. &amp;quot;&amp;lt;br /&amp;gt;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
    return &amp;quot;&amp;lt;span style=\&amp;quot;display:inline-block; margin-bottom:-0.3em; vertical-align:-0.4em; line-height:1.2em; font-size:70%; text-align:left;\&amp;quot;&amp;gt;&amp;quot; .. up .. &amp;quot;&amp;lt;br /&amp;gt;&amp;quot; .. down .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DotIt()&lt;br /&gt;
  return &amp;#039;&amp;amp;middot;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function item(f) -- (iterator) returns one token (type, value) at a time from the formula &amp;#039;f&amp;#039;&lt;br /&gt;
   local i = 1&lt;br /&gt;
   local first = &amp;quot;true&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   return function ()&lt;br /&gt;
	local t, x = nil, nil&lt;br /&gt;
&lt;br /&gt;
        if (first == &amp;quot;true&amp;quot; and f:match(&amp;#039;^[0-9]&amp;#039;, i)) then &lt;br /&gt;
                 x = f:match(&amp;#039;^[%d.]+&amp;#039;, i); t = T_NOCHANGE; i = i + x:len();   -- matching coefficient (need a space first)&lt;br /&gt;
&lt;br /&gt;
        elseif i &amp;lt;= f:len() then&lt;br /&gt;
                              x = f:match(&amp;#039;^%s+[%d.]+&amp;#039;, i); t = T_NOCHANGE;  -- matching coefficient (need a space first)&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%s[+]&amp;#039;, i); t = T_NOCHANGE; end       -- matching + (H2O + H2O)&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%&amp;amp;%#[%w%d]+%;&amp;#039;, i); t = T_NOCHANGE; end       -- &amp;amp;#...;&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%&amp;lt;%-%&amp;gt;&amp;#039;, i); t = T_ARROW_EQ; end       -- matching &amp;lt;-&amp;gt;&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%-%&amp;gt;&amp;#039;, i); t = T_ARROW_R; end       -- matching -&amp;gt;&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%u%l*&amp;#039;, i); t = T_ELEM; end        -- matching symbols like Aaaaa&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%d+[+-]&amp;#039;, i); t = T_SUF_CHARGE; end        -- matching x+, x-&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%d+%(%d*[+-]%)&amp;#039;, i); t = T_SUF_CHARGE2; end        -- matching x(y+/-), x(+/-)&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%(%d*[+-]%)&amp;#039;, i); t = T_CHARGE; end        -- matching (x+) (xx+), (x-) (xx-)&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[%d.]+&amp;#039;, i); t = T_NUM; end        -- matching number&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[(|{|%[]&amp;#039;, i); t = T_OPEN; end     -- matching ({[&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[)|}|%]]&amp;#039;, i); t = T_CLOSE; end           -- matching )}]&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[+-]&amp;#039;, i); t = T_PM_CHARGE; end        -- matching + or -&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%*[%d.]*H2O&amp;#039;, i); t = T_WATER; end -- Crystal water&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^%*[%d.]*&amp;#039;, i); t = T_CRYSTAL; end -- Crystal&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[\\].{%d+}&amp;#039;, i); t = T_SPECIAL2; end -- \y{x}&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^[\\].&amp;#039;, i); t = T_SPECIAL; end -- \x&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^_{[^}]*}&amp;#039;, i); t = T_UNDERSCORE; end -- _{...}&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^\^{[^}]*}&amp;#039;, i); t = T_CARET; end -- ^{...}&lt;br /&gt;
		if not x then x = f:match(&amp;#039;^.&amp;#039;, i); t = T_NOCHANGE; end  --the rest - one by one&lt;br /&gt;
		if x then i = i + x:len(); else i = i + 999; error(&amp;quot;Invalid character in formula!!!!!!! : &amp;quot;..f) end&lt;br /&gt;
	end&lt;br /&gt;
        first = &amp;quot;false&amp;quot;&lt;br /&gt;
	return t, x&lt;br /&gt;
	end&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
function p._chem(args)&lt;br /&gt;
   &lt;br /&gt;
local f = args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
   f = string.gsub(f, &amp;quot;–&amp;quot;, &amp;quot;-&amp;quot;)  -- replace – with - (hyphen not ndash)&lt;br /&gt;
   f = string.gsub(f, &amp;quot;−&amp;quot;, &amp;quot;-&amp;quot;)  -- replace – with - (hyphen not minus sign)&lt;br /&gt;
&lt;br /&gt;
   local sumO = 0&lt;br /&gt;
   local formula = &amp;#039;&amp;#039;&lt;br /&gt;
   local t, x&lt;br /&gt;
&lt;br /&gt;
   local link = args[&amp;#039;link&amp;#039;] or &amp;quot;&amp;quot;&lt;br /&gt;
   local auto = args[&amp;#039;auto&amp;#039;] or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   if not (link == &amp;#039;&amp;#039;) then formula = formula .. &amp;quot;[[&amp;quot; .. link .. &amp;quot;|&amp;quot;; end   -- wikilink start [[link|&lt;br /&gt;
 &lt;br /&gt;
   for t, x in item(f) do &lt;br /&gt;
      if     t == T_ELEM then if (auto == &amp;#039;&amp;#039;) then formula = formula .. x elseif am[x] then formula = formula .. am[x]; am[x] = x else formula = formula .. x end &lt;br /&gt;
      elseif t == T_COEFFICIENT then formula = formula .. x&lt;br /&gt;
      elseif t == T_NUM   then formula = formula .. su(&amp;quot;&amp;quot;, x);&lt;br /&gt;
      elseif t == T_OPEN  then formula = formula .. x; sumO = sumO + 1;        -- ( {&lt;br /&gt;
      elseif t == T_CLOSE then formula = formula .. x; sumO = sumO -1;         -- ) }&lt;br /&gt;
      elseif t == T_PM_CHARGE    then formula = formula .. su(string.gsub(x, &amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;), &amp;quot;&amp;quot;);&lt;br /&gt;
      elseif t == T_SUF_CHARGE then &lt;br /&gt;
           formula = formula .. su(string.gsub(string.match(x, &amp;quot;[+-]&amp;quot;), &amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;), string.match(x, &amp;quot;%d+&amp;quot;), &amp;quot;&amp;quot;);&lt;br /&gt;
      elseif t == T_SUF_CHARGE2 then &lt;br /&gt;
          formula = formula .. su(string.sub(string.gsub(string.match(x, &amp;quot;%(%d*[+-]&amp;quot;), &amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;), 2, -1), string.match(x, &amp;quot;%d+&amp;quot;))&lt;br /&gt;
      elseif t == T_CHARGE then formula = formula .. &amp;quot;&amp;lt;sup&amp;gt;&amp;quot;; if string.match(x, &amp;quot;%d+&amp;quot;) then formula = formula .. string.match(x, &amp;quot;%d+&amp;quot;); end formula = formula .. string.gsub(string.match(x, &amp;quot;[%+-]&amp;quot;), &amp;quot;-&amp;quot;, &amp;quot;−&amp;quot;) .. &amp;quot;&amp;lt;/sup&amp;gt;&amp;quot;;  -- can not concatenat a nil value from string.match(x, &amp;quot;%d+&amp;quot;);&lt;br /&gt;
      elseif t == T_CRYSTAL then formula = formula .. DotIt() .. string.gsub( x, &amp;quot;*&amp;quot;, &amp;#039;&amp;#039;, 1 );&lt;br /&gt;
      elseif t == T_SPECIAL then&lt;br /&gt;
          parameter = string.sub(x, 2, 2) -- x fra \x  &lt;br /&gt;
          if       parameter == &amp;quot;s&amp;quot; then formula = formula .. &amp;quot;−&amp;quot;   -- single bond&lt;br /&gt;
            elseif parameter == &amp;quot;d&amp;quot; then formula = formula .. &amp;quot;=&amp;quot;   -- double bond&lt;br /&gt;
            elseif parameter == &amp;quot;t&amp;quot; then formula = formula .. &amp;quot;≡&amp;quot;   -- tripple bond&lt;br /&gt;
            elseif parameter == &amp;quot;q&amp;quot; then formula = formula .. &amp;quot;≣&amp;quot;   -- Quadruple bond&lt;br /&gt;
            elseif parameter == &amp;quot;h&amp;quot; then formula = formula .. &amp;quot;η&amp;quot;   -- η, hapticity&lt;br /&gt;
            elseif parameter == &amp;quot;*&amp;quot; then formula = formula .. &amp;quot;*&amp;quot;   -- *, normal *&lt;br /&gt;
            elseif parameter == &amp;quot;-&amp;quot; then formula = formula .. &amp;quot;-&amp;quot;   -- -&lt;br /&gt;
            elseif parameter == &amp;quot;\\&amp;quot; then formula = formula .. &amp;quot;\\&amp;quot;   -- \&lt;br /&gt;
            elseif parameter == &amp;quot;\&amp;#039;&amp;quot; then formula = formula .. &amp;quot;&amp;amp;#39;&amp;quot;   -- html-code for &amp;#039;&lt;br /&gt;
          end&lt;br /&gt;
      elseif t == T_SPECIAL2 then  -- \y{x}&lt;br /&gt;
         parameter = string.sub(x, 2, 2) -- y fra \y{x} &lt;br /&gt;
          if parameter  == &amp;quot;h&amp;quot; then --[[Hapticity]]&lt;br /&gt;
             if (auto == &amp;#039;&amp;#039;) then formula = formula .. &amp;quot;η&amp;lt;sup&amp;gt;&amp;quot; .. string.match(x, &amp;#039;%d+&amp;#039;) .. &amp;quot;&amp;lt;/sup&amp;gt;-&amp;quot;&lt;br /&gt;
               else&lt;br /&gt;
             formula = formula .. &amp;quot;[[Hapticity|η&amp;lt;sup&amp;gt;&amp;quot; .. string.match(x, &amp;#039;%d+&amp;#039;) .. &amp;quot;&amp;lt;/sup&amp;gt;]]-&amp;quot;&lt;br /&gt;
             end&lt;br /&gt;
          elseif parameter == &amp;quot;m&amp;quot; then formula = formula .. &amp;quot;μ&amp;lt;sub&amp;gt;&amp;quot; .. string.match(x, &amp;#039;%d+&amp;#039;) .. &amp;quot;&amp;lt;/sub&amp;gt;-&amp;quot; -- mu ([[bridging ligand]])&lt;br /&gt;
          end&lt;br /&gt;
      elseif t == T_WATER then &lt;br /&gt;
        if string.match(x, &amp;quot;^%*[%d.]&amp;quot;) then &lt;br /&gt;
            formula = formula .. DotIt() .. string.match(x, &amp;quot;%f[%.%d]%d*%.?%d*%f[^%.%d%]]&amp;quot;) .. &amp;quot;H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O&amp;quot;;&lt;br /&gt;
        else&lt;br /&gt;
          formula = formula .. DotIt() .. &amp;quot;H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O&amp;quot;;&lt;br /&gt;
        end  &lt;br /&gt;
      elseif t == T_UNDERSCORE  then formula = formula .. su(&amp;quot;&amp;quot;, string.sub(x,3,-2)) -- x contains _{string}&lt;br /&gt;
      elseif t == T_CARET then formula = formula .. su(string.sub(x,3,-2), &amp;quot;&amp;quot;) -- x contains ^{string}&lt;br /&gt;
      elseif t == T_ARROW_R then formula = formula .. &amp;quot; → &amp;quot;&lt;br /&gt;
      elseif t == T_ARROW_EQ then formula = formula .. &amp;quot; ⇌ &amp;quot;&lt;br /&gt;
      elseif t == T_NOCHANGE  then formula = formula .. x;  -- The rest - everything which isn&amp;#039;t captured by the regular expresions. E.g. wikilinks and pipes&lt;br /&gt;
     &lt;br /&gt;
      else error(&amp;#039;unreachable - ???&amp;#039;) end -- in fact, unreachable&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
   if not (link == nil or link == &amp;#039;&amp;#039;) then formula = formula .. &amp;quot;]]&amp;quot;; end   -- wikilink closing ]]&lt;br /&gt;
&lt;br /&gt;
   return &amp;#039;&amp;lt;span class=&amp;quot;chemf nowrap&amp;quot;&amp;gt;&amp;#039; .. formula .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039; &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.chem(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._chem(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Wikipedia&gt;El C</name></author>
	</entry>
</feed>