<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.agency/index.php?action=history&amp;feed=atom&amp;title=Module%3AJct</id>
		<title>Module:Jct - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.agency/index.php?action=history&amp;feed=atom&amp;title=Module%3AJct"/>
		<link rel="alternate" type="text/html" href="https://wiki.agency/index.php?title=Module:Jct&amp;action=history"/>
		<updated>2026-05-04T11:59:16Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.1</generator>

	<entry>
		<id>https://wiki.agency/index.php?title=Module:Jct&amp;diff=3153&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.agency/index.php?title=Module:Jct&amp;diff=3153&amp;oldid=prev"/>
				<updated>2018-11-02T14:48:51Z</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 style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 14:48, 2 November 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&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>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.agency/index.php?title=Module:Jct&amp;diff=3152&amp;oldid=prev</id>
		<title>Happy5214: Sync with sandbox (sandbox switch, TUR shield size, and global nolink parameter)</title>
		<link rel="alternate" type="text/html" href="https://wiki.agency/index.php?title=Module:Jct&amp;diff=3152&amp;oldid=prev"/>
				<updated>2018-10-05T15:44:05Z</updated>
		
		<summary type="html">&lt;p&gt;Sync with sandbox (sandbox switch, TUR shield size, and global nolink parameter)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local SANDBOX = false&lt;br /&gt;
local SANDBOX_SUFFIX = SANDBOX and &amp;#039;/sandbox&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local concat = table.concat&lt;br /&gt;
local insert = table.insert&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs -- Import module function to work with passed arguments&lt;br /&gt;
local parserModule = require(&amp;quot;Module:Road data/parser&amp;quot; .. SANDBOX_SUFFIX)&lt;br /&gt;
local parser = parserModule.parser&lt;br /&gt;
&lt;br /&gt;
-- Shields&lt;br /&gt;
local rdt&lt;br /&gt;
&lt;br /&gt;
local function size(args)&lt;br /&gt;
	local country = args.country&lt;br /&gt;
	local state = args.state or args.province or &amp;#039;&amp;#039;&lt;br /&gt;
	local type = args.type&lt;br /&gt;
	if rdt then&lt;br /&gt;
		return &amp;#039;x17&amp;#039;&lt;br /&gt;
	elseif state == &amp;#039;FL&amp;#039; then&lt;br /&gt;
		if type == &amp;#039;Toll&amp;#039; or type == &amp;#039;FLTP&amp;#039; or type == &amp;#039;HEFT&amp;#039; then&lt;br /&gt;
			return &amp;#039;20&amp;#039;&lt;br /&gt;
		elseif type == &amp;#039;Both&amp;#039; then&lt;br /&gt;
			return &amp;#039;20&amp;#039;, &amp;#039;x20&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif state == &amp;#039;NY&amp;#039; then&lt;br /&gt;
		if type == &amp;#039;NY 1927&amp;#039; or type == &amp;#039;NY 1948&amp;#039; or (type == &amp;#039;Parkway&amp;#039; and args.route == &amp;quot;Robert Moses&amp;quot;) or (type == &amp;#039;CR&amp;#039; and args.county == &amp;#039;Erie&amp;#039;) then&lt;br /&gt;
			return &amp;#039;20&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif state == &amp;#039;AB&amp;#039; then&lt;br /&gt;
		if type == &amp;#039;AB&amp;#039; or type == &amp;#039;Hwy&amp;#039; or type == &amp;#039;2ndHwy&amp;#039; or type == &amp;#039;TCH&amp;#039; then&lt;br /&gt;
			return &amp;#039;18&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif state == &amp;#039;NS&amp;#039; and type == &amp;#039;Hwy&amp;#039; or type == &amp;#039;TCH&amp;#039; then&lt;br /&gt;
		return &amp;#039;18&amp;#039;&lt;br /&gt;
	elseif state == &amp;#039;ON&amp;#039; then&lt;br /&gt;
		if type == &amp;#039;ON&amp;#039; or type == &amp;#039;Hwy&amp;#039; or type == &amp;#039;Highway&amp;#039; or type == &amp;#039;QEW&amp;#039; then&lt;br /&gt;
			return &amp;#039;24x22&amp;#039;&lt;br /&gt;
		elseif type == &amp;#039;KLR&amp;#039; then&lt;br /&gt;
			return &amp;#039;21&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			local countyTypes = {CH = true, RH = true, District = true, Regional = true, County = true, Municipal = true}&lt;br /&gt;
			if countyTypes[type] then&lt;br /&gt;
				return &amp;#039;19&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif state == &amp;#039;QC&amp;#039; then&lt;br /&gt;
		if type == &amp;#039;QC&amp;#039; or type == &amp;#039;Route&amp;#039; or type == &amp;#039;A&amp;#039; or type == &amp;#039;Autoroute&amp;#039; or type == &amp;#039;TCH&amp;#039; or type == &amp;#039;ON&amp;#039; then&lt;br /&gt;
			return &amp;#039;18&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif state == &amp;#039;SK&amp;#039; then&lt;br /&gt;
		if type == &amp;#039;Hwy&amp;#039; or type == &amp;#039;SK&amp;#039; then&lt;br /&gt;
			return &amp;#039;x25&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif country == &amp;#039;MEX&amp;#039; then&lt;br /&gt;
		return &amp;#039;x25&amp;#039;&lt;br /&gt;
	elseif country == &amp;#039;FRA&amp;#039; then&lt;br /&gt;
		return &amp;#039;x18&amp;#039;&lt;br /&gt;
	elseif country == &amp;#039;TUR&amp;#039; then&lt;br /&gt;
		return &amp;#039;x15&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return &amp;#039;x20&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
local function shield(args, frame)&lt;br /&gt;
	if args.noshield then return &amp;#039;&amp;#039; end&lt;br /&gt;
	local firstSize, secondSize = size(args)&lt;br /&gt;
	local shield, second = parser(args, &amp;#039;shield&amp;#039;)&lt;br /&gt;
	if not shield or shield == &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	elseif type(shield) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		shield, second = shield[1], shield[2]&lt;br /&gt;
	end&lt;br /&gt;
	local function render(shield, size)&lt;br /&gt;
		if frame:callParserFunction(&amp;#039;#ifexist&amp;#039;, &amp;#039;Media:&amp;#039; .. shield, &amp;#039;1&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			return string.format(&amp;quot;[[File:%s|%spx|link=|alt=]]&amp;quot;, shield, size)&lt;br /&gt;
		else&lt;br /&gt;
			args.shielderr = true&lt;br /&gt;
			local page = mw.title.getCurrentTitle().prefixedText -- Get transcluding page&amp;#039;s title&lt;br /&gt;
			return mw.ustring.format(&amp;quot;[[Category:Jct template errors|1 %s]]&amp;quot;, page)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local rendered = render(shield, firstSize)&lt;br /&gt;
	if second and type(second) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		local size = secondSize or firstSize&lt;br /&gt;
		rendered = rendered .. render(second, size)&lt;br /&gt;
	end&lt;br /&gt;
	return rendered&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Links/abbreviations&lt;br /&gt;
local function link(args)&lt;br /&gt;
	local nolink = args.nolink&lt;br /&gt;
	local abbr = parser(args, &amp;#039;abbr&amp;#039;)&lt;br /&gt;
	if nolink then&lt;br /&gt;
		return abbr&lt;br /&gt;
	else&lt;br /&gt;
		local link = parser(args, &amp;#039;link&amp;#039;)&lt;br /&gt;
		if not link or link == &amp;#039;&amp;#039; then&lt;br /&gt;
			return abbr&lt;br /&gt;
		else&lt;br /&gt;
			return mw.ustring.format(&amp;quot;&amp;lt;span class=\&amp;quot;nowrap\&amp;quot;&amp;gt;[[%s|%s]]&amp;lt;/span&amp;gt;&amp;quot;, link, abbr)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function completeLink(args, num)&lt;br /&gt;
	local actualLink = link(args)&lt;br /&gt;
	if not actualLink then&lt;br /&gt;
		local page = mw.title.getCurrentTitle().prefixedText -- Get transcluding page&amp;#039;s title&lt;br /&gt;
		actualLink = string.format(&amp;quot;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Invalid type: %s&amp;lt;/span&amp;gt;[[Category:Jct template errors|2 %s]]&amp;quot;, args.type, page)&lt;br /&gt;
	end&lt;br /&gt;
	local isTo = args.to&lt;br /&gt;
	local prefix&lt;br /&gt;
	if num == 1 then&lt;br /&gt;
		if isTo then&lt;br /&gt;
			prefix = &amp;quot;To &amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			prefix = &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if isTo then&lt;br /&gt;
			prefix = &amp;quot; to &amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			prefix = &amp;quot; / &amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local suffix = {}&lt;br /&gt;
	local dir = args.dir&lt;br /&gt;
	if dir then&lt;br /&gt;
		insert(suffix, &amp;#039; &amp;#039; .. string.lower(dir))&lt;br /&gt;
	end&lt;br /&gt;
	local name = args.name&lt;br /&gt;
	if name then&lt;br /&gt;
		insert(suffix, mw.ustring.format(&amp;#039; (%s)&amp;#039;, name))&lt;br /&gt;
	end&lt;br /&gt;
	return prefix .. actualLink .. concat(suffix)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function namedLink(args, num)&lt;br /&gt;
	local actualLink = link(args)&lt;br /&gt;
	local name = args.name or &amp;#039;&amp;#039;&lt;br /&gt;
	local isTo = args.to&lt;br /&gt;
	local prefix&lt;br /&gt;
	if num == 1 then&lt;br /&gt;
		if isTo then&lt;br /&gt;
			prefix = &amp;quot;To &amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			prefix = &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if isTo then&lt;br /&gt;
			prefix = &amp;quot; to &amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			prefix = &amp;quot; / &amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local suffix = {}&lt;br /&gt;
	local dir = args.dir&lt;br /&gt;
	if name ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		if dir then&lt;br /&gt;
			insert(suffix, mw.ustring.format(&amp;#039; (%s %s)&amp;#039;, actualLink, dir))&lt;br /&gt;
		else&lt;br /&gt;
			insert(suffix, mw.ustring.format(&amp;#039; (%s)&amp;#039;, actualLink))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		insert(suffix, actualLink)&lt;br /&gt;
		if dir then insert(suffix, &amp;#039; &amp;#039; .. string.lower(dir)) end&lt;br /&gt;
	end&lt;br /&gt;
	return prefix .. name .. concat(suffix)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function banners(routes)&lt;br /&gt;
	local format = string.format&lt;br /&gt;
	local firstRun = {}&lt;br /&gt;
	local hasBanner = false&lt;br /&gt;
	for k,v in ipairs(routes) do&lt;br /&gt;
		local banner&lt;br /&gt;
		if v.shield == &amp;#039;&amp;#039; or v.shielderr then&lt;br /&gt;
			banner = false&lt;br /&gt;
		else&lt;br /&gt;
			banner = parser(v, &amp;#039;banner&amp;#039;) or &amp;#039;&amp;#039;&lt;br /&gt;
			if banner and banner ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				hasBanner = true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		insert(firstRun, banner)&lt;br /&gt;
	end&lt;br /&gt;
	if not hasBanner then return &amp;#039;&amp;#039; end&lt;br /&gt;
	local secondRun = {}&lt;br /&gt;
	for k,v in ipairs(routes) do&lt;br /&gt;
		local bannerFile = firstRun[k]&lt;br /&gt;
		if not bannerFile then&lt;br /&gt;
			&lt;br /&gt;
		elseif bannerFile == &amp;#039;&amp;#039; then&lt;br /&gt;
			local widthCode = parser(v, &amp;#039;width&amp;#039;) or &amp;#039;square&amp;#039;&lt;br /&gt;
			if type(widthCode) == &amp;#039;number&amp;#039; then&lt;br /&gt;
				insert(secondRun, &amp;quot;[[File:No image wide.svg|&amp;quot; .. tostring(widthCode) .. &amp;quot;px|link=|alt=]]&amp;quot;)&lt;br /&gt;
			elseif widthCode == &amp;#039;square&amp;#039; then&lt;br /&gt;
				insert(secondRun, &amp;quot;[[File:No image wide.svg|20px|link=|alt=]]&amp;quot;)&lt;br /&gt;
			elseif widthCode == &amp;#039;expand&amp;#039; then&lt;br /&gt;
				local route = v.route&lt;br /&gt;
				local width = (#route &amp;gt;= 3) and &amp;#039;25&amp;#039; or &amp;#039;20&amp;#039;&lt;br /&gt;
				insert(secondRun, format(&amp;quot;[[File:No image wide.svg|%spx|link=|alt=]]&amp;quot;, width))&lt;br /&gt;
			elseif widthCode == &amp;#039;wide&amp;#039; then&lt;br /&gt;
				insert(secondRun, &amp;quot;[[File:No image wide.svg|25px|link=|alt=]]&amp;quot;)&lt;br /&gt;
			elseif widthCode == &amp;#039;US1926&amp;#039; then&lt;br /&gt;
				insert(secondRun, &amp;quot;[[File:No image wide.svg|21px|link=|alt=]]&amp;quot;)&lt;br /&gt;
			elseif widthCode == &amp;#039;SD&amp;#039; then&lt;br /&gt;
				local route = v.route&lt;br /&gt;
				local width = (#route &amp;gt;= 3) and &amp;#039;23&amp;#039; or &amp;#039;20&amp;#039;&lt;br /&gt;
				insert(secondRun, format(&amp;quot;[[File:No image wide.svg|%spx|link=|alt=]]&amp;quot;, width))&lt;br /&gt;
			elseif (v.state == &amp;#039;CA&amp;#039;) or (v.type == &amp;#039;CA&amp;#039;) then&lt;br /&gt;
				local route = v.route&lt;br /&gt;
				local widths = {default = {&amp;#039;20&amp;#039;, &amp;#039;25&amp;#039;}, I = {&amp;#039;20&amp;#039;, &amp;#039;24&amp;#039;}, US = {&amp;#039;20&amp;#039;, &amp;#039;23&amp;#039;}, SR = {&amp;#039;19&amp;#039;, &amp;#039;22&amp;#039;}}&lt;br /&gt;
				local width = widths[widthCode] or widths.default&lt;br /&gt;
				local pixels = (#route &amp;gt;= 3) and width[2] or width[1]&lt;br /&gt;
				insert(secondRun, format(&amp;quot;[[File:No image wide.svg|%spx|link=|alt=]]&amp;quot;, pixels))&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			local widthCode = parser(v, &amp;#039;width&amp;#039;) or &amp;#039;square&amp;#039;&lt;br /&gt;
			if widthCode == &amp;#039;square&amp;#039; then&lt;br /&gt;
				insert(secondRun, format(&amp;quot;[[File:%s|20px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
			elseif widthCode == &amp;#039;expand&amp;#039; then&lt;br /&gt;
				local route = v.route&lt;br /&gt;
				if #route &amp;gt;= 3 then&lt;br /&gt;
					insert(secondRun, format(&amp;quot;[[File:No image.svg|2px|link=|alt=]][[File:%s|20px|link=|alt=]][[File:No image.svg|3px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
				else&lt;br /&gt;
					insert(secondRun, format(&amp;quot;[[File:%s|20px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
				end&lt;br /&gt;
			elseif widthCode == &amp;#039;wide&amp;#039; then&lt;br /&gt;
				insert(secondRun, format(&amp;quot;[[File:No image.svg|2px|link=|alt=]][[File:%s|20px|link=|alt=]][[File:No image.svg|3px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
			elseif widthCode == &amp;#039;SD&amp;#039; then&lt;br /&gt;
				local route = v.route&lt;br /&gt;
				if #route &amp;gt;= 3 then&lt;br /&gt;
					insert(secondRun, format(&amp;quot;[[File:No image.svg|1px|link=|alt=]][[File:%s|20px|link=|alt=]][[File:No image.svg|2px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
				else&lt;br /&gt;
					insert(secondRun, format(&amp;quot;[[File:%s|20px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
				end&lt;br /&gt;
			elseif widthCode == &amp;#039;MOSupp&amp;#039; then&lt;br /&gt;
				local route = v.route&lt;br /&gt;
				if #route &amp;gt;= 2 then&lt;br /&gt;
					insert(secondRun, format(&amp;quot;[[File:No image.svg|2px|link=|alt=]][[File:%s|20px|link=|alt=]][[File:No image.svg|3px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
				else&lt;br /&gt;
					insert(secondRun, format(&amp;quot;[[File:%s|20px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
				end&lt;br /&gt;
			elseif widthCode == &amp;#039;US1926&amp;#039; then&lt;br /&gt;
				insert(secondRun, format(&amp;quot;[[File:%s|20px|link=|alt=]][[File:No image.svg|1px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
			elseif v.state == &amp;#039;CA&amp;#039; then&lt;br /&gt;
				local route = v.route&lt;br /&gt;
				local type = v.type&lt;br /&gt;
				if type == &amp;#039;US-Bus&amp;#039; then&lt;br /&gt;
					if #route &amp;gt;= 3 then&lt;br /&gt;
						insert(secondRun, format(&amp;quot;[[File:No image.svg|1px|link=|alt=]][[File:%s|20px|link=|alt=]][[File:No image.svg|2px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
					else&lt;br /&gt;
						insert(secondRun, format(&amp;quot;[[File:%s|20px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
					end&lt;br /&gt;
				elseif type == &amp;#039;CA-Bus&amp;#039; or type == &amp;#039;SR-Bus&amp;#039; then&lt;br /&gt;
					if #route &amp;gt;= 3 then&lt;br /&gt;
						insert(secondRun, format(&amp;quot;[[File:No image.svg|1px|link=|alt=]][[File:%s|19px|link=|alt=]][[File:No image.svg|2px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
					else&lt;br /&gt;
						insert(secondRun, format(&amp;quot;[[File:%s|19px|link=|alt=]]&amp;quot;, bannerFile))&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return concat(secondRun) .. &amp;#039;&amp;lt;br&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extra(args)&lt;br /&gt;
	local extraTypes = {rail = {default = &amp;quot;[[File:Rail Sign.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                            CAN = {default = &amp;quot;[[File:Ontario M509.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
                                           QC = &amp;quot;[[File:Québec I-310.svg|20px|alt=|link=]]&amp;quot;},&lt;br /&gt;
	                            CHL = &amp;quot;[[File:Chile IS-13b.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                            IDN = &amp;quot;[[File:Indonesia New Road Sign Info 5A2.png|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                            JPN = &amp;quot;[[File:Japanese Road sign 125-C.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                            MEX = &amp;quot;[[File:Mexico road sign estacion de ferrocarril.svg|20px|alt=|link=]]&amp;quot;},&lt;br /&gt;
	                    [&amp;quot;light-rail&amp;quot;] = &amp;quot;[[File:Light Rail Sign.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                    bus = {default = &amp;quot;[[File:Bus Sign.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                           CAN = {default = &amp;quot;[[File:Ontario M506.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
                                          QC = &amp;quot;[[File:Québec I-315.svg|20px|alt=|link=]]&amp;quot;},&lt;br /&gt;
	                           FRA = &amp;quot;[[File:France road sign C6.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                           HRV = &amp;quot;[[File:Croatia road sign C44.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                           HUN = &amp;quot;[[File:Hungary road sign E-039.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                           ITA = &amp;quot;[[File:Italian traffic sign - fermata autobus.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                           JPN = &amp;quot;[[File:Japanese Road sign 124-C.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                           MEX = &amp;quot;[[File:Mexico road sign parada de autobus.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                           NOR = &amp;quot;[[File:Norwegian-road-sign-508.1.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                           URY = &amp;quot;[[File:Uruguay Road Sign I24.svg|20px|alt=|link=]]&amp;quot;},&lt;br /&gt;
	                    ferry = {default = &amp;quot;[[File:Ferry Sign.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                             CAN = &amp;quot;[[File:Ontario M508.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                             CHL = &amp;quot;[[File:Chile IS-14b.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                             FRA = &amp;quot;[[File:France road sign CE10.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                             HRV = &amp;quot;[[File:Croatia road sign C49.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                             ITA = &amp;quot;[[File:Italian traffic signs - auto su nave.svg|20px|alt=|link=]]&amp;quot;},&lt;br /&gt;
	                    hospital = {default = &amp;quot;[[File:Hospital sign.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                AUS = &amp;quot;[[File:Western Australia MR-SM-1.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                AUT = &amp;quot;[[File:Hinweiszeichen 2.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                CAN = {default = &amp;quot;[[File:Québec I-280-1.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                       ON = &amp;quot;[[File:Ontario M401.svg|20px|alt=|link=]]&amp;quot;},&lt;br /&gt;
	                                CHE = &amp;quot;[[File:CH-Hinweissignal-Spital.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                CHL = &amp;quot;[[File:Chile IS-1b.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                CZE = &amp;quot;[[File:IJ02cr.jpg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                ESP = &amp;quot;[[File:Spain traffic signal s23.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                FRA = &amp;quot;[[File:France road sign ID3.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                GBR = &amp;quot;[[File:UK traffic sign 827.2.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                GRC = &amp;quot;[[File:Traffic Sign GR - KOK 2009 - P-22.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                HUN = &amp;quot;[[File:Hungary road sign E-045.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                IDN = &amp;quot;[[File:Indonesian Road Sign d9a.png|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                ISL = &amp;quot;[[File:Iceland road sign E01.12.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                ITA = &amp;quot;[[File:Italian traffic signs - ospedale.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                MEX = &amp;quot;[[File:Mexico road sign medico.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                POL = &amp;quot;[[File:Znak D-21.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                RUS = &amp;quot;[[File:7.2 Russian road sign.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                SVK = &amp;quot;[[File:Dopravná značka II5.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                TUR = &amp;quot;[[File:Turkish road sign 84.jpg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                UKR = &amp;quot;[[File:Ukraine road sign 6.2.gif|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                                URY = &amp;quot;[[File:Uruguay Road Sign I16.svg|20px|alt=|link=]]&amp;quot;},&lt;br /&gt;
	                    airport = {default = &amp;quot;[[File:Airport Sign.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               AUS = &amp;quot;[[File:Western Australia MR-SM-11.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               CAN = {default = &amp;quot;[[File:Ontario M502.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
                                             QC = &amp;quot;[[File:Québec I-300-1.svg |20px|alt=|link=]]&amp;quot;},&lt;br /&gt;
	                               CHL = &amp;quot;[[File:Chile IS-11b.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               GBR = &amp;quot;[[File:Aircraft Airport ecomo.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               HRV = &amp;quot;[[File:Croatia road sign C47.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               IDN = &amp;quot;[[File:Indonesia New Road Sign Info 5a4.png|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               MEX = &amp;quot;[[File:Mexico road sign aeropuerto.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               NOR = &amp;quot;[[File:Norwegian-road-sign-771.0.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               TWN = &amp;quot;[[File:Legenda lotnisko.svg|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               UKR = &amp;quot;[[File:Ukraine road sign 5.65.png|20px|alt=|link=]]&amp;quot;,&lt;br /&gt;
	                               URY = &amp;quot;[[File:Uruguay Road Sign I21.svg|20px|alt=|link=]]&amp;quot;}}&lt;br /&gt;
	&lt;br /&gt;
	local extraIcon = extraTypes[string.lower(args.extra or &amp;#039;&amp;#039;)]&lt;br /&gt;
	if not extraIcon then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	elseif type(extraIcon) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		local extraIconT = extraIcon[args.country] or extraIcon.default&lt;br /&gt;
		if type(extraIconT) == &amp;#039;table&amp;#039; then&lt;br /&gt;
			return extraIconT[args.state] or extraIconT[args.province] or extraIconT.default&lt;br /&gt;
		else&lt;br /&gt;
			return extraIconT&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return extraIcon&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parseArgs(args)&lt;br /&gt;
	local state = args.state or args.province&lt;br /&gt;
	local country&lt;br /&gt;
	if args.country then&lt;br /&gt;
		country = string.upper(args.country)&lt;br /&gt;
		args.country = country&lt;br /&gt;
	else&lt;br /&gt;
		local countryModule = mw.loadData(&amp;quot;Module:Road data/countrymask&amp;quot;)&lt;br /&gt;
		country = countryModule[state] or &amp;#039;UNK&amp;#039;&lt;br /&gt;
		args.country = country&lt;br /&gt;
	end&lt;br /&gt;
	local params = {&amp;#039;denom&amp;#039;, &amp;#039;county&amp;#039;, &amp;#039;township&amp;#039;, &amp;#039;dab&amp;#039;, &amp;#039;nolink&amp;#039;, &amp;#039;noshield&amp;#039;, &amp;#039;to&amp;#039;, &amp;#039;dir&amp;#039;, &amp;#039;name&amp;#039;}&lt;br /&gt;
	local routeArgs = {}&lt;br /&gt;
	local routeCount = 1&lt;br /&gt;
	while true do&lt;br /&gt;
		local routeType = args[routeCount * 2 - 1]&lt;br /&gt;
		if not routeType then break end&lt;br /&gt;
		local route = {type = routeType, route = args[routeCount * 2]}&lt;br /&gt;
		for _,v in pairs(params) do&lt;br /&gt;
			route[v] = args[v .. routeCount]&lt;br /&gt;
		end&lt;br /&gt;
		if args.nolink then&lt;br /&gt;
			route.nolink = args.nolink&lt;br /&gt;
		end&lt;br /&gt;
		route.country = country&lt;br /&gt;
		route.state = state&lt;br /&gt;
		insert(routeArgs, route)&lt;br /&gt;
		routeCount = routeCount + 1&lt;br /&gt;
	end&lt;br /&gt;
	return routeArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._jct(args, frame)&lt;br /&gt;
	rdt = args.rdt&lt;br /&gt;
	local routes = parseArgs(args)&lt;br /&gt;
	local extra = extra(args)&lt;br /&gt;
	local shields = {}&lt;br /&gt;
	local links = {}&lt;br /&gt;
	frame = frame or mw.getCurrentFrame()&lt;br /&gt;
	for num,route in ipairs(routes) do&lt;br /&gt;
		local routeShield = shield(route, frame)&lt;br /&gt;
		insert(shields, routeShield)&lt;br /&gt;
		route.shield = routeShield&lt;br /&gt;
		if args.jctname then&lt;br /&gt;
			insert(links, namedLink(route, num))&lt;br /&gt;
		else&lt;br /&gt;
			insert(links, completeLink(route, num))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local bannerText = banners(routes)&lt;br /&gt;
	local shieldText = concat(shields)&lt;br /&gt;
	local linkText = concat(links)&lt;br /&gt;
	local graphics = (not(args.noshield) and (bannerText .. shieldText) or &amp;#039;&amp;#039;) .. extra .. &amp;#039; &amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	local cities = &amp;#039;&amp;#039;&lt;br /&gt;
	if args.city1 or args.location1 then&lt;br /&gt;
		local cityModule = require(&amp;quot;Module:Jct/city&amp;quot; .. SANDBOX_SUFFIX)&lt;br /&gt;
		cities = cityModule.city(args)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local roadStr = &amp;#039;&amp;#039;&lt;br /&gt;
	local road = args.road&lt;br /&gt;
	if road then&lt;br /&gt;
		if args.toroad then&lt;br /&gt;
			roadStr = &amp;#039; to &amp;#039; .. road&lt;br /&gt;
		else&lt;br /&gt;
			roadStr = &amp;#039; / &amp;#039; .. road&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local output = graphics .. linkText .. roadStr .. cities&lt;br /&gt;
	return mw.text.trim(output)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.jct(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._jct(args, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Happy5214</name></author>	</entry>

	</feed>