<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.digitalcellulose.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AIteration</id>
	<title>Module:Iteration - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://www.digitalcellulose.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AIteration"/>
	<link rel="alternate" type="text/html" href="http://www.digitalcellulose.com/wiki/index.php?title=Module:Iteration&amp;action=history"/>
	<updated>2026-05-17T07:17:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://www.digitalcellulose.com/wiki/index.php?title=Module:Iteration&amp;diff=152279&amp;oldid=prev</id>
		<title>Adminsuzy: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://www.digitalcellulose.com/wiki/index.php?title=Module:Iteration&amp;diff=152279&amp;oldid=prev"/>
		<updated>2020-09-13T20:46:18Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 20:46, 13 September 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Adminsuzy</name></author>
		
	</entry>
	<entry>
		<id>http://www.digitalcellulose.com/wiki/index.php?title=Module:Iteration&amp;diff=152278&amp;oldid=prev</id>
		<title>Imported&gt;Sarang: expansion</title>
		<link rel="alternate" type="text/html" href="http://www.digitalcellulose.com/wiki/index.php?title=Module:Iteration&amp;diff=152278&amp;oldid=prev"/>
		<updated>2020-08-04T12:25:55Z</updated>

		<summary type="html">&lt;p&gt;expansion&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--  This module contains the functions for different templates, solving their iteration problems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- for Template:Ifim &lt;br /&gt;
function p.ifim1 (frame) &lt;br /&gt;
	local args = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local p1 = args.p1 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p2 = args.p2 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p3 = args.p3 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p4 = args.p4 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p5 = args.p5 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local fn = args.fn or &amp;quot;&amp;quot;;&lt;br /&gt;
	for _, v in ipairs(args) do&lt;br /&gt;
		table.insert(otab, frame:expandTemplate{ title = &amp;quot;Ifim1&amp;quot;, args = { v, p1, p2, p3, p4, p5, n= fn } });&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (otab)&lt;br /&gt;
end -- function ifim&lt;br /&gt;
&lt;br /&gt;
-- for Template:Ifimc &lt;br /&gt;
function p.ifim2 (frame) &lt;br /&gt;
	local args = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local p1 = args.p1 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p2 = args.p2 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p3 = args.p3 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p4 = args.p4 or &amp;quot;&amp;quot;;&lt;br /&gt;
	for _, v in ipairs(args) do&lt;br /&gt;
		table.insert(otab, frame:expandTemplate{ title = &amp;quot;Ifim2&amp;quot;, args = { v, p1, p2, p3, p4, v } });&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (otab)&lt;br /&gt;
end -- function ifim2&lt;br /&gt;
&lt;br /&gt;
-- for Template:Ifimt (param pairs)&lt;br /&gt;
function p.ifimt (frame) &lt;br /&gt;
	local args = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local v1 = &amp;quot;&amp;quot;;&lt;br /&gt;
	local p1 = args.p1 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p2 = args.p2 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p3 = args.p3 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local p4 = args.p4 or &amp;quot;&amp;quot;;&lt;br /&gt;
	for _, v in ipairs(args) do&lt;br /&gt;
		if v1 == &amp;quot;&amp;quot; then   &lt;br /&gt;
			v1 = mw.text.trim( v );&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(otab, frame:expandTemplate{ title = &amp;quot;Ifim2&amp;quot;, args = { v1, p1, p2, p3, p4, v } });&lt;br /&gt;
			v1 = &amp;quot;&amp;quot;;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if v1 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		table.insert(otab, frame:expandTemplate{ title = &amp;quot;Ifim2&amp;quot;, args = { v1, p1, p2, p3, p4, &amp;quot;&amp;quot; } });	-- last elem		&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (otab)&lt;br /&gt;
end -- function ifimt&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------&lt;br /&gt;
-- helper function for:  ownbased, and filelist&lt;br /&gt;
local function samefile ( fnam, numb, frst ) &lt;br /&gt;
	local name  = mw.text.trim( fnam ) or &amp;quot;&amp;quot;&lt;br /&gt;
	if mw.ustring.sub(name, 1, 1) == &amp;quot;.&amp;quot;&lt;br /&gt;
		then&lt;br /&gt;
			local nsnr = tonumber( mw.title.getCurrentTitle().namespace );&lt;br /&gt;
			local page = mw.title.getCurrentTitle().text;&lt;br /&gt;
			local part = &amp;quot;Example&amp;quot;   --  default name&lt;br /&gt;
			if nsnr == 6 or nsnr == 7&lt;br /&gt;
			then local parts = mw.text.split(page , '.', true)&lt;br /&gt;
				 local upTo = #parts - 1    -- copied from Module:File&lt;br /&gt;
				 part = table.concat(parts, '.', 1, math.max(upTo, 1))&lt;br /&gt;
			end&lt;br /&gt;
			if     name == &amp;quot;.&amp;quot;  then name = part .. &amp;quot;.png&amp;quot;;&lt;br /&gt;
			elseif name == &amp;quot;.p&amp;quot; then name = part .. &amp;quot;.png&amp;quot;;&lt;br /&gt;
			elseif name == &amp;quot;.j&amp;quot; then name = part .. &amp;quot;.jpg&amp;quot;;&lt;br /&gt;
			elseif name == &amp;quot;.g&amp;quot; then name = part .. &amp;quot;.gif&amp;quot;;&lt;br /&gt;
			elseif name == &amp;quot;.s&amp;quot; then name = part .. &amp;quot;.svg&amp;quot;;&lt;br /&gt;
			else					 name = part ..  name;&lt;br /&gt;
			end&lt;br /&gt;
	elseif  name ==  &amp;quot;&amp;quot;&lt;br /&gt;
		then&lt;br /&gt;
			local nsnr = tonumber( mw.title.getCurrentTitle().namespace );&lt;br /&gt;
			local page = mw.title.getCurrentTitle().text;&lt;br /&gt;
			if tonumber( numb ) == 1&lt;br /&gt;
					then name = &amp;quot;Example.svg&amp;quot;;&lt;br /&gt;
					if nsnr == 6 or nsnr == 7&lt;br /&gt;
						then name = page;&lt;br /&gt;
					end&lt;br /&gt;
			else name = mw.text.trim( frst );&lt;br /&gt;
				if name == &amp;quot;&amp;quot;&lt;br /&gt;
				or mw.ustring.sub(name, 1, 1) == &amp;quot;.&amp;quot;&lt;br /&gt;
					then name = &amp;quot;Example.svg&amp;quot;;&lt;br /&gt;
					if nsnr == 6 or nsnr == 7&lt;br /&gt;
						then name = page;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
	end&lt;br /&gt;
	return name&lt;br /&gt;
end -- function samefile&lt;br /&gt;
-------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- for Template:Own based  (horizontal - but vertical when &amp;quot;b1=&amp;quot;)&lt;br /&gt;
function p.ownbased (frame)&lt;br /&gt;
--	local lpar = parm       --  local parms&lt;br /&gt;
--	local gpar = frame.args -- global parms&lt;br /&gt;
	local ppar = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local btab = {};&lt;br /&gt;
	local dtab = {};&lt;br /&gt;
	local htab = {};&lt;br /&gt;
	local itab = {};&lt;br /&gt;
	local ltab = {};&lt;br /&gt;
	local ntab = {};&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local qtab = {};&lt;br /&gt;
	local rtab = {};&lt;br /&gt;
	local Ctab = {};&lt;br /&gt;
&lt;br /&gt;
	local by0  = ppar.b or ppar.by or ppar.u or ppar.user or &amp;quot;&amp;quot;;&lt;br /&gt;
	local dis  = ppar.d or ppar.dis or ppar.display or &amp;quot;&amp;quot;; &lt;br /&gt;
	local hil  = ppar.h or ppar.hilite or &amp;quot;&amp;quot;;&lt;br /&gt;
	local lng  = ppar.i or ppar.lang or &amp;quot;&amp;quot;;&lt;br /&gt;
	local wik  = ppar.l or ppar.wiki or &amp;quot;&amp;quot;;&lt;br /&gt;
	local nam  = ppar.n or ppar.name or &amp;quot;&amp;quot;;&lt;br /&gt;
	local opt  = ppar.o or ppar.opt or ppar.option  or &amp;quot;&amp;quot;;&lt;br /&gt;
	local pr4  = ppar.par4 or ppar.qpar or &amp;quot;&amp;quot;;&lt;br /&gt;
	local pr5  = ppar.par5 or ppar.rpar or &amp;quot;&amp;quot;;&lt;br /&gt;
	local max  = 0;&lt;br /&gt;
	local cor  = 0;&lt;br /&gt;
	local x    = 0;  -- running index, can be ~= i&lt;br /&gt;
	local fst  = 0;  -- first occurrence&lt;br /&gt;
	local plus = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	for i, v in ipairs(ppar) do&lt;br /&gt;
		if v == &amp;quot;+&amp;quot; then&lt;br /&gt;
			plus = &amp;quot;+&amp;quot;;&lt;br /&gt;
		elseif  v == &amp;quot;-&amp;quot; then&lt;br /&gt;
			if plus == &amp;quot;&amp;quot; then plus = &amp;quot;-&amp;quot; end&lt;br /&gt;
		else&lt;br /&gt;
			x = x + 1;&lt;br /&gt;
			if fst == 0 then fst = x end;&lt;br /&gt;
			btab [x] = ppar [&amp;quot;b&amp;quot; .. tostring( x )] or ppar [&amp;quot;by&amp;quot; .. tostring( x )] or ppar [&amp;quot;u&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			dtab [x] = ppar [&amp;quot;d&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			htab [x] = ppar [&amp;quot;h&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			itab [x] = ppar [&amp;quot;i&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			ltab [x] = ppar [&amp;quot;l&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			ntab [x] = ppar [&amp;quot;n&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			otab [x] = ppar [&amp;quot;o&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			qtab [x] = ppar [&amp;quot;q&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			rtab [x] = ppar [&amp;quot;r&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		end&lt;br /&gt;
		max   =  x;&lt;br /&gt;
		if v == &amp;quot;x&amp;quot; &lt;br /&gt;
		or v == &amp;quot;X&amp;quot; &lt;br /&gt;
		or v == &amp;quot;×&amp;quot; then&lt;br /&gt;
			cor = cor + 1;&lt;br /&gt;
		end&lt;br /&gt;
	end -- for&lt;br /&gt;
&lt;br /&gt;
	x   = 0;&lt;br /&gt;
	if fst &amp;gt; 0 then&lt;br /&gt;
		local mnm = mw.text.trim ( ppar [fst] );&lt;br /&gt;
	end&lt;br /&gt;
	for _, v in ipairs(ppar) do&lt;br /&gt;
		if v ~= &amp;quot;+&amp;quot; and v ~= &amp;quot;-&amp;quot; then&lt;br /&gt;
			x  =  x + 1;&lt;br /&gt;
			local by = by0;  if btab[x] ~= &amp;quot;-&amp;quot; then  by = btab[x] end&lt;br /&gt;
			local ds = dis;  if dtab[x] ~= &amp;quot;-&amp;quot; then  ds = dtab[x] end&lt;br /&gt;
			local hl = hil;  if htab[x] ~= &amp;quot;-&amp;quot; then  hl = htab[x] end&lt;br /&gt;
			local il = wik;  if ltab[x] ~= &amp;quot;-&amp;quot; then  il = ltab[x] end&lt;br /&gt;
			local lg = lng;  if itab[x] ~= &amp;quot;-&amp;quot; then  lg = itab[x] end&lt;br /&gt;
			local nm = &amp;quot;&amp;quot;;   if ntab[x] ~= &amp;quot;-&amp;quot; then  nm = ntab[x] end&lt;br /&gt;
			local op = opt;  if otab[x] ~= &amp;quot;-&amp;quot; then  op = otab[x] end&lt;br /&gt;
			local p4 = pr4;  if qtab[x] ~= &amp;quot;-&amp;quot; then  p4 = qtab[x] end&lt;br /&gt;
			local p5 = pr5;  if rtab[x] ~= &amp;quot;-&amp;quot; then  p5 = rtab[x] end&lt;br /&gt;
			local px = &amp;quot;&amp;quot;;&lt;br /&gt;
			local vv = mw.text.trim ( v );&lt;br /&gt;
&lt;br /&gt;
			vv = samefile ( vv, x, mnm );&lt;br /&gt;
			if x == 1 then mnm = vv; end&lt;br /&gt;
&lt;br /&gt;
			if vv ~= &amp;quot;&amp;quot; and vv ~= &amp;quot;×&amp;quot; then&lt;br /&gt;
				if ppar.b1 == nil then  -- parameter missing&lt;br /&gt;
					px = &amp;quot;&amp;quot;;&lt;br /&gt;
					if x == 1 then&lt;br /&gt;
						px = &amp;quot;&amp;amp;#32;&amp;quot;&lt;br /&gt;
					elseif x == max then&lt;br /&gt;
						table.insert(Ctab, frame:expandTemplate{ title = &amp;quot;Conj-and&amp;quot; });&lt;br /&gt;
					else&lt;br /&gt;
						table.insert(Ctab, frame:expandTemplate{ title = &amp;quot;Comma&amp;quot; });&lt;br /&gt;
					end&lt;br /&gt;
				else					--	ppar.b1 is defined (with value, or empty)&lt;br /&gt;
					px = &amp;quot;&amp;lt;br&amp;gt;&amp;lt;span style=color:#69F&amp;gt;✦ &amp;lt;/span&amp;gt;&amp;quot;;     -- «list» item&lt;br /&gt;
				end&lt;br /&gt;
--				ds = mw.text.trim(ds);&lt;br /&gt;
				if  mw.ustring.sub(ds, -2) == &amp;quot;px&amp;quot; then&lt;br /&gt;
					ds = mw.ustring.sub(ds, 1, mw.ustring.len(ds) -2);&lt;br /&gt;
				end&lt;br /&gt;
				if nm == &amp;quot;&amp;quot; and x == 1 then nm = nam end&lt;br /&gt;
				if hl ~= &amp;quot;&amp;quot; then&lt;br /&gt;
					if nm == &amp;quot;&amp;quot; then nm = vv end&lt;br /&gt;
					nm = &amp;quot;&amp;lt;&amp;quot; .. hl .. &amp;quot;&amp;gt;&amp;quot; .. nm .. &amp;quot;&amp;lt;/&amp;quot; .. hl .. &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
--				if il ~= &amp;quot;&amp;quot;  then ds = &amp;quot;&amp;quot; end  -- ? (discrepancy)&lt;br /&gt;
				if vv == &amp;quot;x&amp;quot; then ds = &amp;quot;&amp;quot; end  -- this should be the last &amp;quot;file&amp;quot;&lt;br /&gt;
				table.insert(Ctab, frame:expandTemplate{ title = &amp;quot;F&amp;quot;, args = {vv, nm, ds, op, p4, p5, plus, l= il, lang= lg, p= px, by= by} });&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end -- for&lt;br /&gt;
	if max - cor &amp;gt; 3  then&lt;br /&gt;
		table.insert(Ctab, frame:expandTemplate{ title = &amp;quot;Igen/cat&amp;quot;, args = {&amp;quot;Own-based with more than 3 files|&amp;quot; .. max} });&lt;br /&gt;
	end&lt;br /&gt;
 	return  table.concat (Ctab);&lt;br /&gt;
end  --  function ownbased&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- horizontal file list for:  Template:SVG lang,  Template:Lang gallery  and others&lt;br /&gt;
function p.svglang (frame) &lt;br /&gt;
	local dirp = frame.args-- global parms&lt;br /&gt;
	local titl = dirp [1] or &amp;quot;Source thumb&amp;quot;  -- SVG lang; &amp;quot;Lang gallery thumb&amp;quot;;&lt;br /&gt;
	local args = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local file = args.file or &amp;quot;&amp;quot;;&lt;br /&gt;
	for _, v in ipairs(args) do&lt;br /&gt;
		table.insert(otab, frame:expandTemplate{ title = titl, args = { file, mw.text.trim(v) } });&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (otab)&lt;br /&gt;
end -- function svglang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- horizontal file list for:  Template:Filelist;  Template:File &lt;br /&gt;
--   vertical file list for:  Template:Other versions;  Template:Derived from,  Template:Derivative versions &lt;br /&gt;
function p.filelist (frame) &lt;br /&gt;
--  local locp = frame     -- 1 local parm&lt;br /&gt;
	local dirp = frame.args-- global parms&lt;br /&gt;
	local args = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local ctab = {};&lt;br /&gt;
	local ntab = {};&lt;br /&gt;
	local dtab = {};&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local qtab = {};&lt;br /&gt;
	local rtab = {};&lt;br /&gt;
	local vtab = {};&lt;br /&gt;
	local ktab = {};&lt;br /&gt;
	local itab = {};&lt;br /&gt;
	local xtab = {};&lt;br /&gt;
	local btab = {};&lt;br /&gt;
	local mnum = 0; &lt;br /&gt;
	local dir  = dirp[1] or &amp;quot;none&amp;quot;&lt;br /&gt;
	local nam  = args.n             or args.name    or &amp;quot;&amp;quot;; &lt;br /&gt;
	local dis  = args.d or args.dis or args.display or &amp;quot;&amp;quot;; &lt;br /&gt;
	local opt  = args.o or args.opt or args.option  or &amp;quot;&amp;quot;;&lt;br /&gt;
	local pr4  = args.par4 or args.qpar or &amp;quot;&amp;quot;;&lt;br /&gt;
	local pr5  = args.par5 or args.rpar or &amp;quot;&amp;quot;;&lt;br /&gt;
	local pr6  = args.par6 or args.vpar or &amp;quot;&amp;quot;;&lt;br /&gt;
	local by0  = args.user or args.by or &amp;quot;&amp;quot;;&lt;br /&gt;
	local wik  = args.w or args.k or args.wiki or args.sisterproject or &amp;quot;&amp;quot;;&lt;br /&gt;
	local int  = args.i or args.int or args.ind or args.inter or &amp;quot;&amp;quot;;&lt;br /&gt;
	local pfx  = args.p or args.x or args.pfx or args.prefix  or &amp;quot;&amp;quot;; -- 'list' item {{Comma}}&lt;br /&gt;
	if  mw.ustring.sub(dis, -2) == 'px' then &lt;br /&gt;
		dis = mw.ustring.sub(dis, 1, mw.ustring.len(dis) -2)&lt;br /&gt;
	end&lt;br /&gt;
	if dir == &amp;quot;vert&amp;quot; and pfx == &amp;quot;&amp;quot; then&lt;br /&gt;
		pfx  = &amp;quot;&amp;lt;br&amp;gt;&amp;lt;span style=color:#69F&amp;gt;✦ &amp;lt;/span&amp;gt;&amp;quot;;     -- 'list' item&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for i, v in ipairs(args) do&lt;br /&gt;
		ntab [i] = args [&amp;quot;n&amp;quot; .. tostring( i )] or args [&amp;quot;l&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		dtab [i] = args [&amp;quot;d&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		otab [i] = args [&amp;quot;o&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		qtab [i] = args [&amp;quot;q&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		rtab [i] = args [&amp;quot;r&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		vtab [i] = args [&amp;quot;v&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		ktab [i] = args [&amp;quot;k&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		itab [i] = args [&amp;quot;i&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		xtab [i] = args [&amp;quot;x&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		btab [i] = args [&amp;quot;b&amp;quot; .. tostring( i )] or args [&amp;quot;by&amp;quot; .. tostring( i )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
		mnum  = i;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for i, v in ipairs(args) do&lt;br /&gt;
		local nm = nam;  if ntab[i] ~= &amp;quot;-&amp;quot; then  nm = ntab[i] end&lt;br /&gt;
		local ds = dis;  if dtab[i] ~= &amp;quot;-&amp;quot; then  ds = dtab[i] end&lt;br /&gt;
		local op = opt;  if otab[i] ~= &amp;quot;-&amp;quot; then  op = otab[i] end&lt;br /&gt;
		local p4 = pr4;  if qtab[i] ~= &amp;quot;-&amp;quot; then  p4 = qtab[i] end&lt;br /&gt;
		local p5 = pr5;  if rtab[i] ~= &amp;quot;-&amp;quot; then  p5 = rtab[i] end&lt;br /&gt;
		local p6 = pr6;  if vtab[i] ~= &amp;quot;-&amp;quot; then  p6 = vtab[i] end&lt;br /&gt;
		local pk = wik;  if ktab[i] ~= &amp;quot;-&amp;quot; then  pk = ktab[i] end&lt;br /&gt;
		local pi = int;  if itab[i] ~= &amp;quot;-&amp;quot; then  pi = itab[i] end&lt;br /&gt;
		local px = pfx;  if xtab[i] ~= &amp;quot;-&amp;quot; then  px = xtab[i] end&lt;br /&gt;
		local by = by0;  if btab[i] ~= &amp;quot;-&amp;quot; then  by = btab[i] end&lt;br /&gt;
		local vv = v;&lt;br /&gt;
&lt;br /&gt;
		vv = samefile ( vv, i,  args [1] )&lt;br /&gt;
			&lt;br /&gt;
		if vv ~= &amp;quot;&amp;quot;  then &lt;br /&gt;
			if dir == &amp;quot;hori&amp;quot; then&lt;br /&gt;
				px = &amp;quot;&amp;quot;;&lt;br /&gt;
				if i == 1 then &lt;br /&gt;
					px = &amp;quot;&amp;amp;#32;&amp;quot;&lt;br /&gt;
				elseif i == mnum then&lt;br /&gt;
					table.insert(ctab, frame:expandTemplate{ title = &amp;quot;Conj-and&amp;quot; });&lt;br /&gt;
				else&lt;br /&gt;
					table.insert(ctab, frame:expandTemplate{ title = &amp;quot;Comma&amp;quot; });&lt;br /&gt;
				end&lt;br /&gt;
			else				--	elseif dir == &amp;quot;vert&amp;quot; then&lt;br /&gt;
				if i == 1 then &lt;br /&gt;
					px = &amp;quot;&amp;amp;#32;&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(ctab, frame:expandTemplate{ title = &amp;quot;F&amp;quot;, args = {vv, nm, ds, op, p4, p5, p6, l= pk, lang= pi, p= px, by= by} });&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
 	return  table.concat (ctab)&lt;br /&gt;
end -- function filelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- for Template:Attribs  (param pairs; but also for single oarams)&lt;br /&gt;
function p.attribs (frame) &lt;br /&gt;
	local args = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local ftab = {};&lt;br /&gt;
	local ptab = {};&lt;br /&gt;
	local rtab = {}&lt;br /&gt;
	local fnum = 0;&lt;br /&gt;
	local rnum = 0;&lt;br /&gt;
	local hnum = 0;&lt;br /&gt;
	local tp   = args.type or &amp;quot;SVG&amp;quot;;  -- needs check&lt;br /&gt;
	local un   = args.by or args.U or args.u or &amp;quot;&amp;quot;;&lt;br /&gt;
	local tt   = args.t or args.to or &amp;quot;&amp;quot;;&lt;br /&gt;
	local f    = args.f or args.from or tt;&lt;br /&gt;
	local p    = args.p or args.part or &amp;quot;&amp;quot;;&lt;br /&gt;
	local vx   = &amp;quot;&amp;quot;;&lt;br /&gt;
	local ux   = &amp;quot;&amp;quot;;&lt;br /&gt;
	local ft   = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	for i, v in ipairs(args) do&lt;br /&gt;
		fnum = fnum + 1;   -- input parm number&lt;br /&gt;
		if fnum % 2 ==  0 then  -- even: should be a username&lt;br /&gt;
			local enam = mw.text.trim ( v );&lt;br /&gt;
			local snam = mw.ustring.lower ( mw.ustring.sub ( enam, -4 ) );&lt;br /&gt;
			if snam == &amp;quot;.svg&amp;quot;&lt;br /&gt;
			or snam == &amp;quot;.png&amp;quot;&lt;br /&gt;
			or snam == &amp;quot;.jpg&amp;quot;			-- a rough check: is_extension ?&lt;br /&gt;
			or snam == &amp;quot;.gif&amp;quot;&lt;br /&gt;
			or snam == &amp;quot;.pdf&amp;quot;&lt;br /&gt;
			or snam == &amp;quot;.tif&amp;quot; then		-- no - it's the next filename&lt;br /&gt;
				table.insert(rtab, &amp;quot;&amp;quot; ); -- empty username inbetween&lt;br /&gt;
				rnum = rnum + 1;&lt;br /&gt;
				fnum = fnum + 1;		-- make it odd&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if fnum % 2 ==  1 then  --  odd (now): is a filename&lt;br /&gt;
			hnum = fnum + 1 &lt;br /&gt;
			hnum = hnum / 2 &lt;br /&gt;
			ftab [hnum] = args [&amp;quot;f&amp;quot; .. tostring( hnum )] or &amp;quot;.&amp;quot;;&lt;br /&gt;
			ptab [hnum] = args [&amp;quot;p&amp;quot; .. tostring( hnum )] or &amp;quot;.&amp;quot;;&lt;br /&gt;
		end&lt;br /&gt;
--                                   table.maxnum (args) does not work&lt;br /&gt;
--                                   therefore the &amp;quot;rtab&amp;quot; workaround&lt;br /&gt;
		table.insert(rtab, args[i]); -- = enam&lt;br /&gt;
		rnum = rnum + 1&lt;br /&gt;
	end&lt;br /&gt;
--	                                 plus one item when odd number&lt;br /&gt;
	if  rnum % 2 ==  1 then&lt;br /&gt;
 		table.insert( rtab, &amp;quot;&amp;quot; ); -- empty user name, to get a pair&lt;br /&gt;
	end&lt;br /&gt;
--	&lt;br /&gt;
	for i, v in ipairs(rtab) do&lt;br /&gt;
		if vx == &amp;quot;&amp;quot; then     -- the 2nd 'v' can be empty&lt;br /&gt;
			vx = mw.text.trim( v );&lt;br /&gt;
		else&lt;br /&gt;
			ux = mw.text.trim( v );&lt;br /&gt;
			if ux == &amp;quot;&amp;quot; then ux = un end; -- does not work otherwise (?)&lt;br /&gt;
			hnum = i + 0 &lt;br /&gt;
			hnum = hnum / 2 &lt;br /&gt;
			if ftab[hnum] == &amp;quot;.&amp;quot; then &lt;br /&gt;
				ft = f;&lt;br /&gt;
			else&lt;br /&gt;
				ft = ftab[hnum]  &lt;br /&gt;
			end&lt;br /&gt;
			if ptab[hnum] == &amp;quot;.&amp;quot; then &lt;br /&gt;
				pt = p;&lt;br /&gt;
			else&lt;br /&gt;
				pt = ptab[hnum]  &lt;br /&gt;
			end&lt;br /&gt;
			table.insert(otab, frame:expandTemplate{ title = &amp;quot;Attrib&amp;quot;, args = {vx, ux, &amp;quot;-&amp;quot;, tp, &amp;quot;&amp;quot;, ux, tt, ft, pt } });&lt;br /&gt;
			vx = &amp;quot;&amp;quot;;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (otab)&lt;br /&gt;
end -- function attribs&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
-- for Template:userlist  (horizontal - but vertical when dir=I/O/U/V)&lt;br /&gt;
function p.userlist (frame)&lt;br /&gt;
--	local lpar = parm       --  local parms&lt;br /&gt;
	local gpar = frame.args -- global parms (par/P,dir/V)&lt;br /&gt;
	local ppar = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local ctab = {};&lt;br /&gt;
	local htab = {};&lt;br /&gt;
	local ltab = {};&lt;br /&gt;
	local ntab = {};&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local ptab = {};&lt;br /&gt;
	local ttab = {};&lt;br /&gt;
--@	local rtab = {};&lt;br /&gt;
--@	local qtab = {};&lt;br /&gt;
	local wtab = {};&lt;br /&gt;
	local Xtab = {};&lt;br /&gt;
&lt;br /&gt;
	local cas  = ppar.c or ppar.case or &amp;quot;&amp;quot;;&lt;br /&gt;
	local hil  = ppar.h or ppar.hilite or &amp;quot;&amp;quot;;&lt;br /&gt;
	local lnk  = ppar.l or ppar.link or &amp;quot;&amp;quot;;&lt;br /&gt;
	local nam  = ppar.n or ppar.name or &amp;quot;&amp;quot;;&lt;br /&gt;
	local opt  = ppar.o or ppar.opt  or ppar.option or &amp;quot;&amp;quot;;&lt;br /&gt;
	local pag  = ppar.p or ppar.page or &amp;quot;&amp;quot;;&lt;br /&gt;
--@	local pr4  = ppar.q or ppar.qpar or ppar.par4 or &amp;quot;&amp;quot;;&lt;br /&gt;
--@	local pr5  = ppar.r or ppar.rpar or ppar.par5 or &amp;quot;&amp;quot;;&lt;br /&gt;
	local trl  = ppar.t or ppar.i18n or ppar.translate or &amp;quot;&amp;quot;;&lt;br /&gt;
	local wik  = ppar.w or ppar.wiki or ppar.lang or &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	local max  = 0;&lt;br /&gt;
	local cor  = 0;&lt;br /&gt;
	local x    = 0;  -- running index, can be ~= i&lt;br /&gt;
	local y    = 0;  -- running index, can be ~= i&lt;br /&gt;
	local odd  = 0;&lt;br /&gt;
	local out  = 0;&lt;br /&gt;
	local plus = &amp;quot;&amp;quot;; -- opt&lt;br /&gt;
&lt;br /&gt;
	local prim = &amp;quot;&amp;quot;&lt;br /&gt;
	local prfx = &amp;quot;:&amp;quot;&lt;br /&gt;
	local pend = &amp;quot;&amp;quot;&lt;br /&gt;
	if gpar.dir == &amp;quot;O&amp;quot; then		-- ordered list&lt;br /&gt;
		prim = &amp;quot;&amp;lt;ol&amp;gt;&amp;quot;;&lt;br /&gt;
		prfx = &amp;quot;&amp;lt;li&amp;gt;&amp;quot;;&lt;br /&gt;
		pend = &amp;quot;&amp;lt;/ol&amp;gt;&amp;quot;;&lt;br /&gt;
	end	&lt;br /&gt;
	if gpar.dir == &amp;quot;U&amp;quot; then		-- unordered list&lt;br /&gt;
		prim = &amp;quot;&amp;lt;ul&amp;gt;&amp;quot;;&lt;br /&gt;
		prfx = &amp;quot;&amp;lt;li&amp;gt;&amp;quot;;&lt;br /&gt;
		pend = &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&lt;br /&gt;
	end&lt;br /&gt;
	if gpar.dir == &amp;quot;V&amp;quot; then		-- vertical list&lt;br /&gt;
		prim = &amp;quot; &amp;quot;;&lt;br /&gt;
		prfx = &amp;quot;&amp;lt;br&amp;gt;&amp;lt;span style=color:#69F&amp;gt;✦ &amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
	end	&lt;br /&gt;
&lt;br /&gt;
	for _, v in ipairs(ppar) do&lt;br /&gt;
		v = mw.text.trim ( v );&lt;br /&gt;
		if v == &amp;quot;+&amp;quot; then&lt;br /&gt;
			plus = &amp;quot;+&amp;quot;;&lt;br /&gt;
		elseif  v == &amp;quot;-&amp;quot; then&lt;br /&gt;
			if plus == &amp;quot;&amp;quot; then plus = &amp;quot;-&amp;quot; end&lt;br /&gt;
		else&lt;br /&gt;
			y = y + 1;&lt;br /&gt;
			if gpar.par == &amp;quot;P&amp;quot;	-- pairs of (user, name)&lt;br /&gt;
			and y % 2 == 0 then	-- 1=user, 0=name&lt;br /&gt;
				x = x;		&lt;br /&gt;
			else&lt;br /&gt;
				x = x + 1;&lt;br /&gt;
				ctab [x] = ppar [&amp;quot;c&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
				htab [x] = ppar [&amp;quot;h&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
				ltab [x] = ppar [&amp;quot;l&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
				ntab [x] = ppar [&amp;quot;n&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
				otab [x] = ppar [&amp;quot;o&amp;quot; .. tostring( x )] or &amp;quot;/&amp;quot;;&lt;br /&gt;
				ptab [x] = ppar [&amp;quot;p&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
--@				rtab [x] = ppar [&amp;quot;r&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
--@				qtab [x] = ppar [&amp;quot;q&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
				ttab [x] = ppar [&amp;quot;t&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
				wtab [x] = ppar [&amp;quot;w&amp;quot; .. tostring( x )] or &amp;quot;-&amp;quot;;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		max  = x;&lt;br /&gt;
	end -- for&lt;br /&gt;
	odd  = y % 2; -- 1 when last one not paired&lt;br /&gt;
&lt;br /&gt;
	if plus &amp;gt; &amp;quot;&amp;quot; and opt == &amp;quot;&amp;quot; then&lt;br /&gt;
		opt = plus;		-- discrepancy ? opt has priority&lt;br /&gt;
	end&lt;br /&gt;
	x   = 0;&lt;br /&gt;
	y   = 0;&lt;br /&gt;
	local vv = &amp;quot;&amp;quot;;&lt;br /&gt;
	for _, v in ipairs(ppar) do&lt;br /&gt;
		v = mw.text.trim ( v );&lt;br /&gt;
		if v ~= &amp;quot;+&amp;quot; and v ~= &amp;quot;-&amp;quot; then&lt;br /&gt;
			y = y + 1;&lt;br /&gt;
			if gpar.par == &amp;quot;P&amp;quot;	-- pairs of (user, name)&lt;br /&gt;
			and y % 2 == 1 		-- 1=user, 0=name &lt;br /&gt;
			and odd == 0 then	-- last one paired&lt;br /&gt;
				vv = v;	 		-- userid&lt;br /&gt;
			else&lt;br /&gt;
				x  =  x + 1;&lt;br /&gt;
				local cs = cas;  if ctab[x] ~= &amp;quot;-&amp;quot; then  cs = ctab[x] end&lt;br /&gt;
				local hl = hil;  if htab[x] ~= &amp;quot;-&amp;quot; then  hl = htab[x] end&lt;br /&gt;
				local lk = lnk;  if ltab[x] ~= &amp;quot;-&amp;quot; then  lk = ltab[x] end&lt;br /&gt;
				local nm = nam;  if ntab[x] ~= &amp;quot;-&amp;quot; then  nm = ntab[x] end&lt;br /&gt;
				local op = opt;  if otab[x] ~= &amp;quot;/&amp;quot; then  op = otab[x] end&lt;br /&gt;
				local pg = pag;  if ptab[x] ~= &amp;quot;-&amp;quot; then  pg = ptab[x] end&lt;br /&gt;
--@				local p4 = pr4;  if rtab[x] ~= &amp;quot;-&amp;quot; then  p4 = rtab[x] end&lt;br /&gt;
--@				local p5 = pr5;  if qtab[x] ~= &amp;quot;-&amp;quot; then  p5 = qtab[x] end&lt;br /&gt;
				local tr = trl;  if ttab[x] ~= &amp;quot;-&amp;quot; then  tr = ttab[x] end&lt;br /&gt;
				local wk = wik;  if wtab[x] ~= &amp;quot;-&amp;quot; then  wk = wtab[x] end&lt;br /&gt;
&lt;br /&gt;
				if gpar.par == &amp;quot;P&amp;quot;	then	--	y%2 = 0 (name)&lt;br /&gt;
					if odd == 1	then	--	no: last user:&lt;br /&gt;
						vv = v;			--	user&lt;br /&gt;
					else&lt;br /&gt;
						nm = v;			--	name&lt;br /&gt;
					end&lt;br /&gt;
				else &lt;br /&gt;
					vv = v;&lt;br /&gt;
				end&lt;br /&gt;
				if hl ~= &amp;quot;&amp;quot; then&lt;br /&gt;
					if nm == &amp;quot;&amp;quot; then nm = vv; end&lt;br /&gt;
					nm = &amp;quot;&amp;lt;&amp;quot; .. hl .. &amp;quot;&amp;gt;&amp;quot; .. nm .. &amp;quot;&amp;lt;/&amp;quot; .. hl .. &amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
				end&lt;br /&gt;
				local p1 = &amp;quot;&amp;quot;;  -- prefix&lt;br /&gt;
				local p2 = &amp;quot;&amp;quot;;  -- postfix&lt;br /&gt;
				if pg == &amp;quot;t&amp;quot; or pg == &amp;quot;wt&amp;quot; or pg == &amp;quot;tw&amp;quot; then	p1 = &amp;quot;&amp;amp;#32;talk&amp;quot;;	 end&lt;br /&gt;
				if pg == &amp;quot;w&amp;quot; or pg == &amp;quot;wt&amp;quot; or pg == &amp;quot;tw&amp;quot; then	p2 = &amp;quot;~commonswiki&amp;quot;; end&lt;br /&gt;
--					{{Uc}} --&amp;gt; [[Special:Contributions/userid]]&lt;br /&gt;
&lt;br /&gt;
				if vv ~= &amp;quot;&amp;quot; and vv ~= &amp;quot;×&amp;quot; then&lt;br /&gt;
					if gpar.dir == &amp;quot;I&amp;quot; &lt;br /&gt;
					or gpar.dir == &amp;quot;O&amp;quot; &lt;br /&gt;
					or gpar.dir == &amp;quot;U&amp;quot; &lt;br /&gt;
					or gpar.dir == &amp;quot;V&amp;quot; then  -- vertical list&lt;br /&gt;
						if out == 0 then&lt;br /&gt;
							table.insert(Xtab, frame:expandTemplate{ title = &amp;quot;=&amp;quot;, args = { prim } });&lt;br /&gt;
						end&lt;br /&gt;
						table.insert(Xtab, frame:expandTemplate{ title = &amp;quot;=&amp;quot;, args = { prfx } });&lt;br /&gt;
						out = out + 1;&lt;br /&gt;
					else						--	&lt;br /&gt;
						if x == 1 then&lt;br /&gt;
							x = 1		--	??? horizontal list initializing (text)&lt;br /&gt;
						elseif x == max then&lt;br /&gt;
							table.insert(Xtab, frame:expandTemplate{ title = &amp;quot;Conj-and&amp;quot; });&lt;br /&gt;
						else&lt;br /&gt;
							table.insert(Xtab, frame:expandTemplate{ title = &amp;quot;Comma&amp;quot; });&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					table.insert(Xtab, frame:expandTemplate{ title = &amp;quot;U/main&amp;quot;, args = { vv, nm, wk, op, link=lk, par1=p1, par2=p2, case=cs, i18n=tr} });&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end -- for&lt;br /&gt;
&lt;br /&gt;
	if	out &amp;gt; 0 and pend &amp;gt; &amp;quot; &amp;quot; then&lt;br /&gt;
		table.insert(Xtab, frame:expandTemplate{ title = &amp;quot;=&amp;quot;, args = { pend } });&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (Xtab);&lt;br /&gt;
end  --  function userlist&lt;br /&gt;
--&lt;br /&gt;
-- for Template:Legend-table  (param pairs)&lt;br /&gt;
function p.legendt (frame) &lt;br /&gt;
	local args = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local lg = args.lang or &amp;quot;&amp;quot;;&lt;br /&gt;
	local v1 = &amp;quot;&amp;quot;&lt;br /&gt;
--                                    same problem when not a last pair&lt;br /&gt;
	for _, v in ipairs(args) do&lt;br /&gt;
		if v1 == &amp;quot;&amp;quot; then   &lt;br /&gt;
			v1 =  v;&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(otab, frame:expandTemplate{ title = &amp;quot;Legend&amp;quot;, args = { lang = lg, v1, v } });&lt;br /&gt;
			v1 = &amp;quot;&amp;quot;;&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
	if v1 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		table.insert(otab, frame:expandTemplate{ title = &amp;quot;Legend&amp;quot;, args = { lang = lg, v1, &amp;quot;&amp;quot; } });	-- last elem&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (otab)&lt;br /&gt;
end --  function legendt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- for Template:ColorString (Igen/cbox   -   param pairs)&lt;br /&gt;
function p.colorbox (frame) &lt;br /&gt;
	local args = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local otab = {};&lt;br /&gt;
	local lg = args.lang or &amp;quot;{{PAGELANGUAGE}}&amp;quot;; --&lt;br /&gt;
	local v1 = &amp;quot;&amp;quot;&lt;br /&gt;
	local p2 = &amp;quot;&amp;quot;&lt;br /&gt;
	for i, v in ipairs(args) do&lt;br /&gt;
		if i &amp;lt;= 2 then &lt;br /&gt;
			p2 = v; &lt;br /&gt;
		else	&lt;br /&gt;
			if v1 == &amp;quot;&amp;quot; then   &lt;br /&gt;
				v1 = mw.text.trim( v );&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(otab, frame:expandTemplate{ title = &amp;quot;Igen/cbox&amp;quot;, args = { v1, v, p2, lang = lg } });&lt;br /&gt;
				v1 = &amp;quot;&amp;quot;;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if v1 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		table.insert(otab, frame:expandTemplate{ title = &amp;quot;Igen/cbox&amp;quot;, args = { v1, &amp;quot;&amp;quot;, p2, lang = lg } });	-- last elem		&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (otab)&lt;br /&gt;
end --  function colorbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Template:Tle  &lt;br /&gt;
function p.tleparm (frame) &lt;br /&gt;
--  local lprm = frame     -- local parms&lt;br /&gt;
--	local gprm = frame.args-- global parms&lt;br /&gt;
	local pprm = mw.getCurrentFrame(): getParent().args;&lt;br /&gt;
	local par1 = &amp;quot;&amp;quot;;&lt;br /&gt;
	local par3 = pprm.f      or &amp;quot;&amp;quot;; -- form feed&lt;br /&gt;
	local par4 = pprm.style  or &amp;quot;&amp;quot;; -- style for value&lt;br /&gt;
	local par5 = pprm.style2 or &amp;quot;&amp;quot;; -- style for param&lt;br /&gt;
	local numb = pprm.number or &amp;quot;&amp;quot;;&lt;br /&gt;
	local ctab = {}&lt;br /&gt;
&lt;br /&gt;
	numb = mw.text.trim( numb );&lt;br /&gt;
	for i, v in ipairs(pprm) do&lt;br /&gt;
		par1 = pprm [&amp;quot;p&amp;quot; .. tostring( i )] or &amp;quot;&amp;quot;;&lt;br /&gt;
		if par1 == &amp;quot;&amp;quot; and numb ~= &amp;quot;&amp;quot; then &lt;br /&gt;
			par1 = tostring( i )&lt;br /&gt;
		end&lt;br /&gt;
		if mw.text.trim(v) == &amp;quot;&amp;quot; then v = &amp;quot;&amp;amp;thinsp;&amp;quot; end&lt;br /&gt;
		table.insert( ctab, frame:expandTemplate{ title = &amp;quot;Tle/parm&amp;quot;,  args = {  par1, v, par3, par4, par5} } );&lt;br /&gt;
	end&lt;br /&gt;
 	return  table.concat (ctab)&lt;br /&gt;
end --  function tleparm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Imported&gt;Sarang</name></author>
		
	</entry>
</feed>