<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://the-democratika.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AFlagg</id>
	<title>Module:Flagg - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://the-democratika.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AFlagg"/>
	<link rel="alternate" type="text/html" href="https://the-democratika.com/wiki/index.php?title=Module:Flagg&amp;action=history"/>
	<updated>2026-04-04T22:31:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://the-democratika.com/wiki/index.php?title=Module:Flagg&amp;diff=6256&amp;oldid=prev</id>
		<title>&gt;Ahecht: p[&#039;&#039;] = p.main</title>
		<link rel="alternate" type="text/html" href="https://the-democratika.com/wiki/index.php?title=Module:Flagg&amp;diff=6256&amp;oldid=prev"/>
		<updated>2024-06-17T11:05:34Z</updated>

		<summary type="html">&lt;p&gt;p[&amp;#039;&amp;#039;] = p.main&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local titleSelf = mw.title.new(... or mw.getCurrentFrame():getTitle())&lt;br /&gt;
local titleCountryData = mw.title.new[[Module:CountryData]]&lt;br /&gt;
if titleSelf.isSubpage then&lt;br /&gt;
	local sandbox = titleSelf.subpageText:match[[^sandbox]]&lt;br /&gt;
	if sandbox then&lt;br /&gt;
		titleCountryData = titleCountryData:subPageTitle(sandbox)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
local CountryData = require(tostring(titleCountryData))&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
&lt;br /&gt;
	--Get input arguments&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame,{valueFunc =&lt;br /&gt;
		function(key,value)&lt;br /&gt;
			if value then&lt;br /&gt;
				value = mw.text.trim(value)&lt;br /&gt;
				--Change empty string to nil for all args except &amp;#039;image&amp;#039; and &amp;#039;border&amp;#039;&lt;br /&gt;
				if key==&amp;quot;image&amp;quot; or key==&amp;quot;border&amp;quot; or value~=&amp;quot;&amp;quot; then&lt;br /&gt;
					return value&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	--Call main function&lt;br /&gt;
	return p.luaMain(frame,args)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.luaMain(frame,args)&lt;br /&gt;
&lt;br /&gt;
	local function emp2nil(x)&lt;br /&gt;
		if x==&amp;quot;&amp;quot; then return nil else return x end&lt;br /&gt;
	end&lt;br /&gt;
	local function space2emp(x)&lt;br /&gt;
		if string.find(x,&amp;quot;^%s*$&amp;quot;) then return &amp;quot;&amp;quot; else return x end&lt;br /&gt;
	end&lt;br /&gt;
	local function nopx(x)&lt;br /&gt;
		if x~=nil and (string.find(x,&amp;quot;^%d+$&amp;quot;) or string.find(x,&amp;quot;^%d+px$&amp;quot;)) then return string.gsub(x,&amp;quot;^(.*)px&amp;quot;,&amp;quot;%1&amp;quot;) else return nil end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Country &amp;amp; mode parameters&lt;br /&gt;
	local mode = string.lower(args[1] or &amp;quot;usc&amp;quot;)&lt;br /&gt;
	local mi = string.sub(mode,1,1)&lt;br /&gt;
	local ms = string.sub(mode,2,2)&lt;br /&gt;
	local mn = string.sub(mode,3,3)&lt;br /&gt;
	local me = string.sub(mode,4,-1)&lt;br /&gt;
&lt;br /&gt;
	local country = args[2] or &amp;quot;&amp;quot;&lt;br /&gt;
	local countryDataCountry = country&lt;br /&gt;
	if string.find(me, &amp;quot;i&amp;quot;) then&lt;br /&gt;
	    local titleIocCountryData = mw.title.new[[Module:Country alias/data]]&lt;br /&gt;
	    local IocCountryData = require(tostring(titleIocCountryData))&lt;br /&gt;
	    local iocCountryAlias = IocCountryData.countryAliases[country] or country&lt;br /&gt;
	    countryDataCountry = IocCountryData.countries[iocCountryAlias][&amp;quot;countrydata_name&amp;quot;] or IocCountryData.countries[iocCountryAlias][&amp;quot;name&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
	local avar = args[&amp;quot;avar&amp;quot;] or args[&amp;quot;altvar&amp;quot;]&lt;br /&gt;
	local clink = args[&amp;quot;clink&amp;quot;] or args[&amp;quot;link&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	--Get country data &amp;amp; altvar data&lt;br /&gt;
	local data, alink, amap, asuf&lt;br /&gt;
	if avar then&lt;br /&gt;
		local age = args[&amp;quot;age&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
		local aalias&lt;br /&gt;
		amap, aalias = require(&amp;quot;Module:Flagg/Altvar data&amp;quot;).alttable(age)&lt;br /&gt;
		avar = string.gsub(string.lower(avar or &amp;quot;&amp;quot;),&amp;quot;[ -]&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
		avar = aalias[avar] or avar&lt;br /&gt;
		if not amap[avar] then error(&amp;quot;Unknown avar&amp;quot;) end&lt;br /&gt;
		local apar = {altvar=amap[avar].altvar;mw=amap[avar].mw;age=amap[avar].age;variant=args[&amp;quot;variant&amp;quot;] or args[3]}&lt;br /&gt;
		data = CountryData.getcachedtable(frame, countryDataCountry, apar)&lt;br /&gt;
		asuf = amap[avar].altlink&lt;br /&gt;
		alink = data[&amp;quot;link alias-&amp;quot;..amap[avar].altvar] or (clink or data[&amp;quot;shortname alias&amp;quot;] or data.alias or country)..&amp;quot; &amp;quot;..asuf&lt;br /&gt;
	else&lt;br /&gt;
		data = (args[&amp;quot;nodata&amp;quot;] and {}) or CountryData.getcachedtable(frame, countryDataCountry, {variant=args[&amp;quot;variant&amp;quot;] or args[3]})&lt;br /&gt;
		avar = &amp;quot;&amp;quot;&lt;br /&gt;
		amap = {[&amp;quot;&amp;quot;]={altvar=&amp;quot;&amp;quot;}}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Name and link parameters&lt;br /&gt;
	clink = clink or data.alias or country&lt;br /&gt;
&lt;br /&gt;
	local pref = args[&amp;quot;pref&amp;quot;]&lt;br /&gt;
	local suff = args[&amp;quot;suff&amp;quot;] or asuf&lt;br /&gt;
	local pref2 = args[&amp;quot;pref2&amp;quot;]&lt;br /&gt;
	local suff2 = args[&amp;quot;suff2&amp;quot;]&lt;br /&gt;
	if not pref and not suff then --Default prefix&lt;br /&gt;
		pref = &amp;quot;Flag of&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local yn_map = {[&amp;quot;&amp;quot;]=0; [&amp;quot;0&amp;quot;]=0; [&amp;quot;no&amp;quot;]=0; [&amp;quot;n&amp;quot;]=0; [&amp;quot;1&amp;quot;]=1; [&amp;quot;yes&amp;quot;]=1; [&amp;quot;y&amp;quot;]=1}&lt;br /&gt;
	local fthe = (args[&amp;quot;pthe&amp;quot;] and yn_map[args[&amp;quot;pthe&amp;quot;]]~=0) or (args[&amp;quot;the&amp;quot;] and yn_map[args[&amp;quot;the&amp;quot;]]~=0)&lt;br /&gt;
	local nthe = (args[&amp;quot;nthe&amp;quot;] and yn_map[args[&amp;quot;nthe&amp;quot;]]~=0) or (args[&amp;quot;the&amp;quot;] and yn_map[args[&amp;quot;the&amp;quot;]]~=0)&lt;br /&gt;
	fthe = fthe and (pref and &amp;quot;t&amp;quot; or &amp;quot;T&amp;quot;)..&amp;quot;he &amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
	nthe = nthe and (pref and &amp;quot;t&amp;quot; or &amp;quot;T&amp;quot;)..&amp;quot;he &amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
	local flink = args[&amp;quot;plink&amp;quot;] or args[&amp;quot;flink&amp;quot;] or alink&lt;br /&gt;
	              or clink==&amp;quot;&amp;quot; and &amp;quot;&amp;quot; or space2emp((pref or &amp;quot;&amp;quot;)..&amp;quot; &amp;quot;)..fthe..clink..space2emp(&amp;quot; &amp;quot;..(suff or &amp;quot;&amp;quot;))&lt;br /&gt;
	local flink2&lt;br /&gt;
	if args[&amp;quot;plink2&amp;quot;] or args[&amp;quot;flink2&amp;quot;] or pref2 or suff2 then&lt;br /&gt;
		flink2 = args[&amp;quot;plink2&amp;quot;] or args[&amp;quot;flink2&amp;quot;] or clink==&amp;quot;&amp;quot; and &amp;quot;&amp;quot; or space2emp((pref2 or &amp;quot;&amp;quot;)..&amp;quot; &amp;quot;)..fthe..clink..space2emp(&amp;quot; &amp;quot;..(suff2 or &amp;quot;&amp;quot;))&lt;br /&gt;
	else&lt;br /&gt;
		flink2 = flink&lt;br /&gt;
	end&lt;br /&gt;
	local fsec = args[&amp;quot;psection&amp;quot;] or args[&amp;quot;section&amp;quot;]&lt;br /&gt;
	local fsec2 = args[&amp;quot;psection2&amp;quot;] or args[&amp;quot;section&amp;quot;]&lt;br /&gt;
	local csec = args[&amp;quot;csection&amp;quot;] or args[&amp;quot;section&amp;quot;]&lt;br /&gt;
	fsec = fsec and &amp;quot;#&amp;quot;..fsec or &amp;quot;&amp;quot;&lt;br /&gt;
	fsec2 = fsec2 and &amp;quot;#&amp;quot;..fsec2 or &amp;quot;&amp;quot;&lt;br /&gt;
	csec = csec and &amp;quot;#&amp;quot;..csec or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	if string.find(me,&amp;quot;f&amp;quot;) then&lt;br /&gt;
		if mw.title.new( flink ).exists == false then&lt;br /&gt;
			if flink2 ~= flink and mw.title.new ( flink2 ).exists == true then&lt;br /&gt;
				flink = flink2&lt;br /&gt;
				fsec = fsec2&lt;br /&gt;
			else&lt;br /&gt;
				flink = clink&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local name = args[&amp;quot;name&amp;quot;]&lt;br /&gt;
	if not name then&lt;br /&gt;
		local cname = string.find(me,&amp;quot;e&amp;quot;) and (data[&amp;quot;name alias-&amp;quot;..amap[avar].altvar] or data[&amp;quot;shortname alias&amp;quot;] or data.alias) or country&lt;br /&gt;
		if mn == &amp;quot;f&amp;quot; then&lt;br /&gt;
			name = cname==&amp;quot;&amp;quot; and &amp;quot;&amp;quot; or space2emp((pref or &amp;quot;&amp;quot;)..&amp;quot; &amp;quot;)..nthe..cname..space2emp(&amp;quot; &amp;quot;..(suff or &amp;quot;&amp;quot;))&lt;br /&gt;
		else&lt;br /&gt;
			name = cname&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Image parameters&lt;br /&gt;
	local pimage = args[&amp;quot;image&amp;quot;]&lt;br /&gt;
	local placeholder = &amp;quot;Flag placeholder.svg&amp;quot;&lt;br /&gt;
	local variant = args[&amp;quot;variant&amp;quot;] or args[3] or &amp;quot;&amp;quot;&lt;br /&gt;
	local image_map = {[&amp;quot;&amp;quot;]=placeholder; [&amp;quot;none&amp;quot;]=placeholder; [&amp;quot;blank&amp;quot;]=placeholder}&lt;br /&gt;
	if pimage then --Remove namespace&lt;br /&gt;
		pimage = string.gsub(pimage,&amp;quot;^[Ff][Ii][Ll][Ee]:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
		pimage = string.gsub(pimage,&amp;quot;^[Ii][Mm][Aa][Gg][Ee]:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local iname = image_map[pimage] or pimage&lt;br /&gt;
&lt;br /&gt;
	local size = args[&amp;quot;size&amp;quot;] or args[&amp;quot;sz&amp;quot;]&lt;br /&gt;
	local size_map = {xs=&amp;quot;12x8px&amp;quot;; s=&amp;quot;17x11px&amp;quot;; m=&amp;quot;23x15px&amp;quot;; l=&amp;quot;32x21px&amp;quot;; xl=&amp;quot;46x30px&amp;quot;}&lt;br /&gt;
	if size==nil or string.find(size,&amp;quot;^%d*x?%d+px$&amp;quot;) then&lt;br /&gt;
		--valid EIS size (..px, x..px or ..x..px) or unset&lt;br /&gt;
	elseif string.find(size,&amp;quot;^%d*x?%d+$&amp;quot;) then --EIS size without &amp;quot;px&amp;quot; suffix&lt;br /&gt;
		size=size..&amp;quot;px&amp;quot;&lt;br /&gt;
	else --size from map, or invalid value&lt;br /&gt;
		size = size_map[size] or nil&lt;br /&gt;
	end&lt;br /&gt;
	local border = args[&amp;quot;border&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	if iname then&lt;br /&gt;
		size = size or &amp;quot;23x15px&amp;quot;&lt;br /&gt;
		if yn_map[border]==0 then border = &amp;quot;&amp;quot; else border = &amp;quot;|border&amp;quot; end&lt;br /&gt;
	else&lt;br /&gt;
		iname = data[&amp;quot;flag alias-&amp;quot;..amap[avar].altvar..&amp;quot;-&amp;quot;..variant] or data[&amp;quot;flag alias-&amp;quot;..variant] or data[&amp;quot;flag alias-&amp;quot;..amap[avar].altvar] or data[&amp;quot;flag alias&amp;quot;] or placeholder&lt;br /&gt;
		size = size or emp2nil(data.size) or &amp;quot;23x15px&amp;quot;&lt;br /&gt;
		if border then&lt;br /&gt;
			if yn_map[border]==0 then border = &amp;quot;&amp;quot; else border = &amp;quot;|border&amp;quot; end&lt;br /&gt;
		else&lt;br /&gt;
			local autoborder = data[&amp;quot;border-&amp;quot;..variant] or data[&amp;quot;border-&amp;quot;..amap[avar].altvar] or data.border&lt;br /&gt;
			if autoborder and autoborder~=&amp;quot;border&amp;quot; then border = &amp;quot;&amp;quot; else border = &amp;quot;|border&amp;quot; end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local am = &amp;quot;&amp;quot;&lt;br /&gt;
	if args[&amp;quot;alt&amp;quot;] or string.find(me,&amp;quot;a&amp;quot;) then&lt;br /&gt;
		am = args[&amp;quot;alt&amp;quot;] or args[&amp;quot;name&amp;quot;] or country&lt;br /&gt;
		am = am..&amp;quot;|&amp;quot;..am&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Build display name&lt;br /&gt;
	local text = args[&amp;quot;text&amp;quot;]&lt;br /&gt;
	if not text then&lt;br /&gt;
		if mn==&amp;quot;x&amp;quot; then --no text&lt;br /&gt;
			text = &amp;quot;&amp;quot;&lt;br /&gt;
		elseif mn==&amp;quot;p&amp;quot; or mn==&amp;quot;f&amp;quot; or mn == &amp;quot;*&amp;quot; then --prefix/suffix link&lt;br /&gt;
			text = flink==&amp;quot;&amp;quot; and name or &amp;quot;[[&amp;quot;..flink..fsec..&amp;quot;|&amp;quot;..name..&amp;quot;]]&amp;quot;&lt;br /&gt;
			-- By the principle of least surprise, there should be some&lt;br /&gt;
			-- indication that the link [[X of Country|Country]] does not&lt;br /&gt;
			-- go to [[Country]].&lt;br /&gt;
			if mn == &amp;quot;*&amp;quot; and clink ~= flink then&lt;br /&gt;
				text = text:sub(1, -3) .. &amp;quot;\226\128\175*]]&amp;quot; end&lt;br /&gt;
		elseif mn==&amp;quot;l&amp;quot; then --display link target&lt;br /&gt;
			text = flink==&amp;quot;&amp;quot; and name or &amp;quot;[[&amp;quot;..flink..fsec..&amp;quot;|&amp;quot;..(args[&amp;quot;name&amp;quot;] or flink)..&amp;quot;]]&amp;quot;&lt;br /&gt;
		elseif mn==&amp;quot;b&amp;quot; then --both prefix/suffix and normal country link&lt;br /&gt;
			local preflink = pref and (flink==&amp;quot;&amp;quot; and pref..&amp;quot; &amp;quot; or &amp;quot;[[&amp;quot;..flink..fsec..&amp;quot;|&amp;quot;..pref..&amp;quot;]] &amp;quot;) or &amp;quot;&amp;quot;&lt;br /&gt;
			local sufflink = suff and (flink==&amp;quot;&amp;quot; and &amp;quot; &amp;quot;..suff or &amp;quot; [[&amp;quot;..flink..fsec..&amp;quot;|&amp;quot;..suff..&amp;quot;]]&amp;quot;) or &amp;quot;&amp;quot;&lt;br /&gt;
			local namelink = (name==&amp;quot;&amp;quot; and &amp;quot;&amp;quot; or nthe)..(clink==&amp;quot;&amp;quot; and name or &amp;quot;[[&amp;quot;..clink..csec..&amp;quot;|&amp;quot;..name..&amp;quot;]]&amp;quot;)&lt;br /&gt;
			text = preflink..namelink..sufflink&lt;br /&gt;
		elseif mn==&amp;quot;d&amp;quot; then --data template&lt;br /&gt;
			local title = mw.title.new(&amp;quot;Template:Country data &amp;quot;..country)&lt;br /&gt;
			--check if redirect&lt;br /&gt;
			if title.isRedirect then&lt;br /&gt;
				text = &amp;quot;&amp;lt;span class=\&amp;quot;plainlinks\&amp;quot;&amp;gt;[&amp;quot;..title:fullUrl(&amp;quot;redirect=no&amp;quot;)..&amp;quot; &amp;quot;..name..&amp;quot;]&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				text = &amp;quot;[[&amp;quot;..title.fullText..&amp;quot;|&amp;quot;..name..&amp;quot;]]&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		elseif mn==&amp;quot;u&amp;quot; then --unlinked&lt;br /&gt;
			text = name&lt;br /&gt;
		elseif mn==&amp;quot;a&amp;quot; then --abbr&lt;br /&gt;
			text = name==country and (clink==country and country or &amp;quot;&amp;lt;abbr title=&amp;#039;&amp;quot;..clink..&amp;quot;&amp;#039;&amp;gt;&amp;quot;..country..&amp;quot;&amp;lt;/abbr&amp;gt;&amp;quot;) or (&amp;quot;&amp;lt;abbr title=&amp;#039;&amp;quot;..name..&amp;quot;&amp;#039;&amp;gt;&amp;quot;..country..&amp;quot;&amp;lt;/abbr&amp;gt;&amp;quot;)&lt;br /&gt;
		else --country link (default)&lt;br /&gt;
			text = clink==&amp;quot;&amp;quot; and name or &amp;quot;[[&amp;quot;..clink..csec..&amp;quot;|&amp;quot;..name..&amp;quot;]]&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		if string.find(me,&amp;quot;p&amp;quot;) then&lt;br /&gt;
			text = &amp;quot;(&amp;quot;..text..&amp;quot;)&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if type(text) == &amp;#039;function&amp;#039; then&lt;br /&gt;
		text = text(data)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Define separator&lt;br /&gt;
	local separator = &amp;quot;&amp;amp;nbsp;&amp;quot; --non-breaking space (n)&lt;br /&gt;
	if ms==&amp;quot;x&amp;quot; then --no separator&lt;br /&gt;
		separator = &amp;quot;&amp;quot;&lt;br /&gt;
	elseif ms==&amp;quot;l&amp;quot; then --line break&lt;br /&gt;
		separator = &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Add preftext, if used&lt;br /&gt;
	local preftext = args[&amp;quot;preftext&amp;quot;]&lt;br /&gt;
	if (preftext or &amp;quot;&amp;quot;) ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		text = preftext..separator..text&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Build image&lt;br /&gt;
	local ilink = args[&amp;quot;ilink&amp;quot;]&lt;br /&gt;
	if not ilink then&lt;br /&gt;
		if mi==&amp;quot;x&amp;quot; or (iname==placeholder and pimage~=placeholder) then --no image/invisible image&lt;br /&gt;
			iname = placeholder&lt;br /&gt;
			border = &amp;quot;&amp;quot;&lt;br /&gt;
			ilink = &amp;quot;|link=&amp;quot;&lt;br /&gt;
			am = &amp;quot;&amp;quot;&lt;br /&gt;
		elseif mi==&amp;quot;i&amp;quot; then --image page link&lt;br /&gt;
			ilink = &amp;quot;&amp;quot;&lt;br /&gt;
		elseif mi==&amp;quot;c&amp;quot; then --country link&lt;br /&gt;
			ilink = &amp;quot;|link=&amp;quot;..clink..(clink==&amp;quot;&amp;quot; and &amp;quot;&amp;quot; or csec)&lt;br /&gt;
		elseif mi==&amp;quot;p&amp;quot; or mi==&amp;quot;f&amp;quot; then --prefix/suffix link&lt;br /&gt;
			ilink = &amp;quot;|link=&amp;quot;..flink..(flink==&amp;quot;&amp;quot; and &amp;quot;&amp;quot; or fsec)&lt;br /&gt;
		elseif mi==&amp;quot;d&amp;quot; then --data template&lt;br /&gt;
			local title = mw.title.new(&amp;quot;Template:Country data &amp;quot;..country)&lt;br /&gt;
			--check if redirect&lt;br /&gt;
			if title.isRedirect then&lt;br /&gt;
				ilink = &amp;quot;|link=&amp;quot;..title:fullUrl(&amp;quot;redirect=no&amp;quot;)&lt;br /&gt;
			else&lt;br /&gt;
				ilink = &amp;quot;|link=&amp;quot;..title.fullText&lt;br /&gt;
			end&lt;br /&gt;
		else --unlinked (default)&lt;br /&gt;
			ilink = &amp;quot;|link=&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if am == &amp;quot;&amp;quot; and string.find(me,&amp;quot;l&amp;quot;) then&lt;br /&gt;
		am = mw.ustring.sub(ilink,7,-1)&lt;br /&gt;
	end&lt;br /&gt;
	local image = &amp;quot;[[File:&amp;quot;..iname..&amp;quot;|&amp;quot;..size..border..ilink..&amp;quot;|alt=&amp;quot;..am..&amp;quot;]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	if iname==placeholder then&lt;br /&gt;
		if require(&amp;#039;Module:yesno&amp;#039;)(args[&amp;quot;noredlink&amp;quot;]) == false or args[&amp;quot;noredlink&amp;quot;] == &amp;quot;notext&amp;quot; then&lt;br /&gt;
			if country ~= &amp;#039;&amp;#039; and data.alias == nil then&lt;br /&gt;
				iname = &amp;#039;&amp;#039;&lt;br /&gt;
				image = &amp;quot;[[:Template:Country data &amp;quot;..country..&amp;quot;]]&amp;quot;&lt;br /&gt;
				if args[&amp;quot;noredlink&amp;quot;] == &amp;quot;notext&amp;quot; then&lt;br /&gt;
					text = &amp;#039;&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if (args[&amp;quot;missingcategory&amp;quot;] or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			image = image..args[&amp;quot;missingcategory&amp;quot;]&lt;br /&gt;
		end&lt;br /&gt;
		if string.find(me,&amp;quot;b&amp;quot;) then&lt;br /&gt;
			text = &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Combine image and name with separator&lt;br /&gt;
	local align_map = {left=&amp;quot;left&amp;quot;, l=&amp;quot;left&amp;quot;, center=&amp;quot;center&amp;quot;, centre=&amp;quot;center&amp;quot;, c=&amp;quot;center&amp;quot;, middle=&amp;quot;center&amp;quot;, m=&amp;quot;center&amp;quot;, right=&amp;quot;right&amp;quot;, r=&amp;quot;right&amp;quot;}&lt;br /&gt;
	local align = align_map[args[&amp;quot;align&amp;quot;] or args[&amp;quot;al&amp;quot;]]&lt;br /&gt;
	local nalign =  align_map[args[&amp;quot;nalign&amp;quot;] or args[&amp;quot;nal&amp;quot;]]&lt;br /&gt;
	local out&lt;br /&gt;
	if string.find(me,&amp;quot;r&amp;quot;) then&lt;br /&gt;
		--image right of name&lt;br /&gt;
		if (ms==&amp;quot;x&amp;quot; and mi==&amp;quot;x&amp;quot;) or (string.find(me,&amp;quot;o&amp;quot;) and iname==placeholder and pimage~=placeholder) then --name only&lt;br /&gt;
			out = text&lt;br /&gt;
		elseif ms==&amp;quot;x&amp;quot; or ms==&amp;quot;n&amp;quot; or ms==&amp;quot;l&amp;quot; then --no separator, non-breaking space, or line break&lt;br /&gt;
			out = text..&amp;quot;&amp;lt;span class=\&amp;quot;flagicon\&amp;quot;&amp;gt;&amp;quot;..separator..image..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		elseif ms==&amp;quot;t&amp;quot; then --table cell&lt;br /&gt;
			out = &amp;quot;style=\&amp;quot;text-align:&amp;quot;..(nalign or &amp;quot;left&amp;quot;)..&amp;quot;\&amp;quot;|&amp;quot;..text..&amp;quot;||style=\&amp;quot;text-align:&amp;quot;..(align or &amp;quot;center&amp;quot;)..&amp;quot;\&amp;quot;|&amp;lt;span class=\&amp;quot;flagicon\&amp;quot;&amp;gt;&amp;quot;..image..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		else --fixed-width span box (default)&lt;br /&gt;
			local width = args[&amp;quot;width&amp;quot;] or args[&amp;quot;w&amp;quot;] or require(&amp;quot;Module:Flaglist&amp;quot;).luawidth(size)&lt;br /&gt;
			out = text..&amp;quot;&amp;amp;nbsp;&amp;lt;span class=\&amp;quot;flagicon\&amp;quot; style=\&amp;quot;display:inline-block;width:&amp;quot;..width..&amp;quot;px;text-align:&amp;quot;..(align or &amp;quot;right&amp;quot;)..&amp;quot;\&amp;quot;&amp;gt;&amp;quot;..image..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	else --image left of name&lt;br /&gt;
		if (ms==&amp;quot;x&amp;quot; and mi==&amp;quot;x&amp;quot;) or (string.find(me,&amp;quot;o&amp;quot;) and iname==placeholder and pimage~=placeholder) then --name only&lt;br /&gt;
			out = text&lt;br /&gt;
		elseif ms==&amp;quot;x&amp;quot; or ms==&amp;quot;n&amp;quot; or ms==&amp;quot;l&amp;quot; then --no separator, non-breaking space, or line break&lt;br /&gt;
			out = &amp;quot;&amp;lt;span class=\&amp;quot;flagicon\&amp;quot;&amp;gt;&amp;quot;..image..separator..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;..text&lt;br /&gt;
		elseif ms==&amp;quot;t&amp;quot; then --table cell&lt;br /&gt;
			out = &amp;quot;style=\&amp;quot;text-align:&amp;quot;..(align or &amp;quot;center&amp;quot;)..&amp;quot;;\&amp;quot;|&amp;lt;span class=\&amp;quot;flagicon\&amp;quot;&amp;gt;&amp;quot;..image..&amp;quot;&amp;lt;/span&amp;gt;||style=\&amp;quot;text-align:&amp;quot;..(nalign or &amp;quot;left&amp;quot;)..&amp;quot;\&amp;quot;|&amp;quot;..text&lt;br /&gt;
		else --fixed-width span box (default)&lt;br /&gt;
			local width = nopx(args[&amp;quot;width&amp;quot;] or args[&amp;quot;w&amp;quot;]) or require(&amp;quot;Module:Flaglist&amp;quot;).luawidth(size)&lt;br /&gt;
			out = &amp;quot;&amp;lt;span class=\&amp;quot;flagicon\&amp;quot; style=\&amp;quot;display:inline-block;width:&amp;quot;..width..&amp;quot;px;text-align:&amp;quot;..(align or &amp;quot;left&amp;quot;)..&amp;quot;\&amp;quot;&amp;gt;&amp;quot;..image..&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;quot;..text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if string.find(me,&amp;quot;w&amp;quot;) then --avoid wrapping&lt;br /&gt;
		out = &amp;quot;&amp;lt;span class=\&amp;quot;nowrap\&amp;quot;&amp;gt;&amp;quot;..out..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- align in table&lt;br /&gt;
	if me:find(&amp;quot;t&amp;quot;) then&lt;br /&gt;
		out = &amp;#039;style=&amp;quot;text-align:&amp;#039;..(align or &amp;#039;left&amp;#039;)..&amp;#039;&amp;quot;|&amp;#039;..out&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Tracking categories&lt;br /&gt;
	local cat = &amp;quot;&amp;quot;&lt;br /&gt;
	if pimage and not image_map[pimage] and country~=&amp;quot;&amp;quot; and data[&amp;quot;flag alias&amp;quot;] and not args.demo then&lt;br /&gt;
		cat = &amp;quot;[[Category:Pages using Flagg with specified image instead of data template image]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return out..cat&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p[&amp;#039;&amp;#039;] = p.main&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>&gt;Ahecht</name></author>
	</entry>
</feed>