<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tail477f2f.ts.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Akhil+T</id>
	<title>WIKI FOSSCELL NITC - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tail477f2f.ts.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Akhil+T"/>
	<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/Special:Contributions/Akhil_T"/>
	<updated>2026-05-16T21:36:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=User_talk:Smera_ren&amp;diff=2348</id>
		<title>User talk:Smera ren</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=User_talk:Smera_ren&amp;diff=2348"/>
		<updated>2024-08-11T16:21:37Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to &#039;&#039;WIKI FOSSCELL NITC&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Akhil T|Akhil T]] ([[User talk:Akhil T|talk]]) 21:51, 11 August 2024 (IST)&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=User:Smera_ren&amp;diff=2347</id>
		<title>User:Smera ren</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=User:Smera_ren&amp;diff=2347"/>
		<updated>2024-08-11T16:21:37Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m Smera.&lt;br /&gt;
I love to read and write every now and then.&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=FOSSMEET_2006&amp;diff=2345</id>
		<title>FOSSMEET 2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=FOSSMEET_2006&amp;diff=2345"/>
		<updated>2024-08-11T05:41:44Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:NITC_FOSS_MEET_2006.jpg|thumb]]&lt;br /&gt;
Second edition of FOSS Meet. [http://www.foss.nitc.ac.in/preweb/index.html Event website]&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
9 Talks + 2 Workshops March 18,19 2006&lt;br /&gt;
&lt;br /&gt;
* Arun M 	Foss - General Talk [FOSS in Society] Intellectual Property, Copyright, Licence issues&lt;br /&gt;
* [[Gopal V|Gopal Vijayraghavan]] 	DotGNU / Mozilla Hack&lt;br /&gt;
* [[Kalyan Varma]] 	Network Security&lt;br /&gt;
* [[Philip Tellis]] 	Education/Creative Commons&lt;br /&gt;
* [[Praveen A|Praveen]] and [[Dilip V|Dilip]] 	Debian Workshop&lt;br /&gt;
* [[Premshree Pillai]] 	Ruby&lt;br /&gt;
* [[Sharath Lakshman]] 	Live CD Workshop&lt;br /&gt;
* [[Shreekumar]] 	Quake 3 - Fun and more&lt;br /&gt;
* [[Shreyas Srinivasan]] 	GNOME Hack&lt;br /&gt;
* Shyam Mani 	Gentoo Developer&lt;br /&gt;
* [[Aanjhan R]] 	Embedded Linux&lt;br /&gt;
* [[Kushal Das]]     Fedora BOF&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
&lt;br /&gt;
* [...] Right. All around good experience, the event, the place, the&lt;br /&gt;
&lt;br /&gt;
hosts and not to mention the food. College set near a nice jungle/hill kinda place. Appams rocked! Beach was fun as well, just in time for the sunset. Lots of good talks from Philip, Gopal, Shyam, Shreyas and so many many more people. [...] - [http://mm.ilug-bom.org.in/pipermail/linuxers/Week-of-Mon-20070212/058037.html Pradeepto Bhattacharya in a post to glug-bom mailing list on Feb 14, 2007]&lt;br /&gt;
&lt;br /&gt;
* [...] I was at the meet up last year along with Pradeepto and many other&lt;br /&gt;
&lt;br /&gt;
people.  It&#039;s quite a nice experience.  You should go if you can. [...] - [http://mm.ilug-bom.org.in/pipermail/linuxers/Week-of-Mon-20070212/058031.html Philip Tellis in a post to glug-bom mailing list on Feb 14, 2007]&lt;br /&gt;
&lt;br /&gt;
* [...] FOSS.NITC..yet another get togetherness of young free software enthusiasts ( i would like to see in that way ). As a participant ( &amp;quot; delegate &amp;quot; for the organizers! ), i would like to share the two days of experience. [...] - [http://groups.yahoo.com/group/glugc/message/282 Tinku Sampath in a post to glugc mailinglist on Mar 20, 2006]&lt;br /&gt;
&lt;br /&gt;
== Blogs ==&lt;br /&gt;
&lt;br /&gt;
* [http://bluesmoon.livejournal.com Philip Tellis]&lt;br /&gt;
&lt;br /&gt;
[...] The announcement said Philip Tellis will speak on Creative Commons, while in the background, Pradeepto downloaded the flickr movie, and transferred it to premshree&#039;s Mac. I engaged the crowd for a few minutes on the kind of music they like, and what they do with that music. Spoke about Anu Malik, what they thought about his music. What they thought were the legalities of some of his tracks as well as the creativity. Most of them said they liked the music, but didn&#039;t think that it was legal.[...]&lt;br /&gt;
&lt;br /&gt;
** [http://bluesmoon.livejournal.com/221547.html FOSS@NITC]&lt;br /&gt;
** [http://bluesmoon.livejournal.com/221907.html FOSS@NITC day 2]&lt;br /&gt;
&lt;br /&gt;
* [http://t3.dotgnu.info/blog/ Gopal V]&lt;br /&gt;
&lt;br /&gt;
[...]The organization of FOSS @ NITC surprised me, compared to what I&#039;d seen at other similar conferences. Compared to what went on at GNUnify, these guys are a lot more decentralized in organization and had quite a feel of a student run tech fest. I hardly saw any faculty running around, except for Amarjeet. The faculty was more of facilitiating the event rather than running the event and their pulls on the event was not quite obvious, if any. Quite heartening indeed from my point of view.[...]&lt;br /&gt;
&lt;br /&gt;
** [http://t3.dotgnu.info/blog/conferences/foss-nitc-06.html FOSS @ NITC 2006]&lt;br /&gt;
** [http://t3.dotgnu.info/blog/travels/fun-in-calicut.html Fun in Calicut]&lt;br /&gt;
&lt;br /&gt;
* [http://sarathlakshman.info Sarath Lakshman]&lt;br /&gt;
&lt;br /&gt;
[...]I really enjoyed the FOSS event. I missed some of the talks due to schedule of my talk. My workshop was conducted at NITC computer Lab. Actually NITC guyz expected for a hands on workshop..but due to it feel boring to audience I made it into a demo based talk with a practical session. No hands on. So many students at NITC asked me some doubts and I became cheerful in answering and clearing their doubts. In the evening I found out my old friend, Varun Narayan who was my schoolmate before two years. I got a a good company with him there…[...]&lt;br /&gt;
&lt;br /&gt;
** [http://sarathlakshman.info/?p=53 FOSS@ NITC rocks !]&lt;br /&gt;
&lt;br /&gt;
== Photos ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/t3rmin4t0r/sets/72057594087098881/ Gopal&#039;s FOSS Meet 2006 photos on flickr]&lt;br /&gt;
{{Foss-meet-at-nitc}}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=IRC&amp;diff=2344</id>
		<title>IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=IRC&amp;diff=2344"/>
		<updated>2024-08-11T05:38:06Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of FOSS communities in India who has a presence on IRC&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
!width=&amp;quot;150&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Name &lt;br /&gt;
!width=&amp;quot;150&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Channel &lt;br /&gt;
!width=&amp;quot;180&amp;quot; style=&amp;quot;background:#ffdead;&amp;quot; | Server(s)&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; &lt;br /&gt;
| FOSS Community India || #fsci || [irc://irc.oftc.net irc.oftc.net]&lt;br /&gt;
|-&lt;br /&gt;
| GNU India || #gnu-india || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; &lt;br /&gt;
| Linux India || ##linux-india || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| Hackers India || #hackers-india || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| Indlinux || #indlinux || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; &lt;br /&gt;
| Debian India || #debian-in,#debianindia || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| KDE India || #kde-in || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| GNU aka GNU/Hurd India|| #hurd.in || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| Linuxchix|| #indichix || [irc://irc.linuxchix.org irc.linuxchix.org]&lt;br /&gt;
|-&lt;br /&gt;
| SMC Project || #smc-project || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| ILUG Cochin || #ilugkochi || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| Hackerdom Thrissur || #hackerdom || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| GNU/Linux Lovers || #gnulinuxlovers || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|-&lt;br /&gt;
| FOSSCell, NITC || #FOSSCell || [irc://irc.freenode.net irc.freenode.net]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to use matrix as an IRC client to join #fsci ==&lt;br /&gt;
* See [https://gist.github.com/fstab/ce805d3001600ac147b79d413668770d this guide] for freenode specific instructions&lt;br /&gt;
&lt;br /&gt;
# On Matrix, open a new chat (with Riot app this is the &amp;quot;+&amp;quot; sign on the bottom right)&lt;br /&gt;
# Invite @oftc-irc:matrix.org to the new chat&lt;br /&gt;
# Say !nick &amp;lt;yournick&amp;gt; &lt;br /&gt;
# A request for new chat with NickServ will pop up (if not invite @_oftc_NickServ:matrix.org). Accept it.&lt;br /&gt;
# Send &amp;quot;REGISTER &amp;lt;password&amp;gt; &amp;lt;email&amp;gt;&amp;quot; to register your nickname.&lt;br /&gt;
# &amp;quot;identify &amp;lt;password&amp;gt;&amp;quot; can be used to authenticate (in case the bridge reconnects)&lt;br /&gt;
&lt;br /&gt;
== Fighting IRC spam ==&lt;br /&gt;
&lt;br /&gt;
The following commands should be sent to &#039;&#039;&#039;@oftc-irc:matrix.org&#039;&#039;&#039; for OFTC channels or &#039;&#039;&#039;@appservice-irc:matrix.org&#039;&#039;&#039; for Freenode channels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Unlist the room from directory&#039;&#039;&#039;&lt;br /&gt;
This effectively stops all mass spamming attacks.&lt;br /&gt;
* From Matrix:&lt;br /&gt;
    !cmd MODE #&amp;lt;channel name&amp;gt; +s&lt;br /&gt;
&lt;br /&gt;
* From IRC:&lt;br /&gt;
    &amp;quot;/mode #&amp;lt;channel name&amp;gt; +s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Quiet all unregistered users:&#039;&#039;&#039;&lt;br /&gt;
* From Matrix:&lt;br /&gt;
    &amp;quot;!cmd MODE #&amp;lt;channel name&amp;gt; +q $~a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* From IRC:&lt;br /&gt;
    &amp;quot;/mode #&amp;lt;channel name&amp;gt; +q $~a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Add Matrix users to the exemption list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* From Matrix:&lt;br /&gt;
&lt;br /&gt;
** For Freenode:&lt;br /&gt;
    &amp;quot;!cmd MODE #&amp;lt;channel name&amp;gt; +e *!*@gateway/shell/matrix.org/*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
** For OFTC:&lt;br /&gt;
    &amp;quot;!cmd MODE #&amp;lt;channel name&amp;gt; +e *!*@2001:470:1af1:101:*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* From IRC:&lt;br /&gt;
&lt;br /&gt;
** For Freenode:&lt;br /&gt;
    &amp;quot;/mode #&amp;lt;channel name&amp;gt; +e *!*@gateway/shell/matrix.org/*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
** For OFTC:&lt;br /&gt;
    &amp;quot;/mode #&amp;lt;channel name&amp;gt; +e *!*@2001:470:1af1:101:*&amp;quot;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Calicut/NIT/FOSS_Meet/07&amp;diff=2342</id>
		<title>Calicut/NIT/FOSS Meet/07</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Calicut/NIT/FOSS_Meet/07&amp;diff=2342"/>
		<updated>2024-08-11T05:38:06Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[/Invitation|Invitation letter]]&lt;br /&gt;
&lt;br /&gt;
* Event Website: &#039;&#039;&#039;http://www.fossmeet.in/nitc/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://groups.yahoo.com/group/glugc Share your experiences...]&lt;br /&gt;
[[Image:NITC_FOSS_MEET_2007.jpg |thumb]]&lt;br /&gt;
&lt;br /&gt;
==Highlights==&lt;br /&gt;
&#039;&#039;&#039;The Honorable Chief Minister of Kerala &#039;&#039;Shri V S Achuthanandan&#039;&#039; will be the chief guest&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;but unfortunately he couldnt due to ongoing budget session&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
The schedule is avialable [http://www.foss.nitc.ac.in/fossschedule/FOSSscheduleVersion3.4.pdf here]&lt;br /&gt;
&lt;br /&gt;
===Day 1===&lt;br /&gt;
&lt;br /&gt;
* FOSS in Professional Life By Atul Chitnis&lt;br /&gt;
* Unconference by [http://www.kiruba.com Kiruba Shankar]&lt;br /&gt;
* Hack the badge contest - [http://pramode-ce.livejournal.com/45508.html] [http://www.theinquirer.net/default.aspx?article=33494] Pramode CE&lt;br /&gt;
* Zope Component Architecture - Baiju M&lt;br /&gt;
* MySQL Storage Engine Architecture - Ramkumar Lakshminarayanan&lt;br /&gt;
&lt;br /&gt;
===Day 2===&lt;br /&gt;
* Internationalisation and Localisation (workshop/hands-on) - Praveen A&lt;br /&gt;
* [http://shakthimaan.com/downloads/glv/embedded-howto/ Alliance VLSI CAD tools HOWTO] - Shakthi Kannan&lt;br /&gt;
* Embedded Systems by Aanjan &lt;br /&gt;
* How to choose open source cms - Vivek Khurana [[:Image:How_to_choose_open_source_cms.pdf| Slides (pdf)]]&lt;br /&gt;
* [http://shakthimaan.com/downloads/glv/presentations/ Careers with GNU/Linux] - Shakthi Kannan&lt;br /&gt;
* OpenPCD demo/hacking - Kushal Das&lt;br /&gt;
* RTAI (RealTime Application Interface for Linux) workshop - Sreejith N&lt;br /&gt;
* Phoenix workshop - Pramod CE&lt;br /&gt;
* From Seeds to Software: Culture of Copying - Anivar Aravind, GAIA&lt;br /&gt;
* Session on Dhvani Malayalam Text-to-speech engine - Santhosh Thottingal&lt;br /&gt;
* Lets Play with the wiki (tutorial/hands-on ) - Hiran Venugopalan &lt;br /&gt;
* FOSS Business models By Atul Chitnis [http://atulchitnis.net/talks/nitc-biz.pdf Slides (pdf)]&lt;br /&gt;
&lt;br /&gt;
===Day 3===&lt;br /&gt;
* Panel Discussion - Involving students in FOSS development (Pramod CE, Hiran V, Shakthi Kannan, Aanjhan R)&lt;br /&gt;
* Font development workshop - Hussain KH, Suresh P&lt;br /&gt;
* caching for web applications - Vivek Khurana [[:Image:Cahing_for_web_applications.pdf| Slides (pdf)]]&lt;br /&gt;
* [http://technofreakatchennai.wordpress.com/2007/03/08/decorators-in-python/ Decorators in Python] - Parthan S R, NRCFOSS&lt;br /&gt;
* And a lot more...(&#039;&#039;a free lunch from the great &amp;quot;A MESS&amp;quot;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===&#039;&#039;&#039;FOSS Projects Demo&#039;&#039;&#039;===&lt;br /&gt;
&#039;&#039;Got an exciting FOSS project to show off? Tell us what you require and be there! You can reach us [http://groups.yahoo.com/group/foss_meet_nitc here]&#039;&#039;.&lt;br /&gt;
* Akshara Malayalam OCR - Antony FM, MES Kuttippuram&lt;br /&gt;
* Village Office Automation Software - Jinesh K.J, Mohd. Suhail Rehman, MES Kuttippuram&lt;br /&gt;
&lt;br /&gt;
==Community Meetups==&lt;br /&gt;
&lt;br /&gt;
* [[ സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിംഗ്/ഒത്തുചേരലുകള്‍/മാര്‍ച്ച് 2-4 2006| Swathanthra Malayalam Computing]]&lt;br /&gt;
* [http://hurd.in/bin/view/Hurd/FOSS_Meet_At_NITC_07 hurd.in]&lt;br /&gt;
&lt;br /&gt;
==Blogs/Comments==&lt;br /&gt;
* [http://t3.dotgnu.info Gopal V]&lt;br /&gt;
[...] I&#039;ve got fond memories of last year - preparing the slides at the last minute, walking about in that big campus, spending time at Calicut beach. We had a lot of fun and I mean, A LOT. And the conference is really good, the kids do use Fedora on the desktop in their labs. The XGL demos were a particular attraction last year.&lt;br /&gt;
** [http://t3.dotgnu.info/blog/conferences/no-foss-nitc.html No Calicut for me]&lt;br /&gt;
* [http://atulchitnis.net/ Atul Chitnis]&lt;br /&gt;
[...] NITC&#039;s FOSS event has grown in stature, and is quickly becoming one of the recognized FOSS events in India, along with Gnunify, Freedel and of course FOSS.IN.[...]&lt;br /&gt;
** [http://atulchitnis.net/diary/showentry/420  In Calicut this weekend]&lt;br /&gt;
* [http://pradeepto.livejournal.com/ Pradeepto]&lt;br /&gt;
[...]Today, I was supposed to leave for Calicut to attend FOSS.NITC which starts tomorrow. I should be in Netravati at the moment but I am not thanks to certain issues that cropped up in the morning and I realised that I can&#039;t go today :/, I immediately booked tomorrow&#039;s flight tickets to Calicut as I didn&#039;t want to miss the conference.[...]&lt;br /&gt;
** [http://pradeepto.livejournal.com/3192.html Good service is appreciated.]&lt;br /&gt;
* [http://technofreakatchennai.wordpress.com Parthan]&lt;br /&gt;
[...] The organizers, students belonging to various branches in NITC, did a very nice job. This is their 3rd year of conducting the FOSS meet and they did show signs of maturity.[...]&lt;br /&gt;
** [http://technofreakatchennai.wordpress.com/2007/03/03/first-day-of-talks-at-fossnitc/ First day of talks at FOSS.NITC] &lt;br /&gt;
** [http://technofreakatchennai.wordpress.com/2007/03/05/fossnitc-field-report/ FOSS.NITC Field Report]&lt;br /&gt;
* [http://www.tuxmaniac.com/blog/?p=33 Aanjhan]&lt;br /&gt;
[...] It still amazes me “How in such a short span of time these NITC Folks have managed to make FOSS.NITC a nationwide Community event”. Keep it up guys.[...]&lt;br /&gt;
** [http://www.tuxmaniac.com/blog/?p=33 FOSS.NITC - Filled with Fun and Learning]&lt;br /&gt;
* Vivek Khurana&lt;br /&gt;
[...] I attended recently concluded foss.nitc in Calicut. Conducted in fluctuating weather of Kerla, foss.nitc was hosted inside beautiful NIT Calicut campus, few kilometers away from civilization. [...]&lt;br /&gt;
** [http://article.gmane.org/gmane.user-groups.linux.delhi/14748 foss.nitc]&lt;br /&gt;
&lt;br /&gt;
==Photos==&lt;br /&gt;
* [http://flickr.com/photos//tags/foss.nitc on flickr (tag - foss.nitc)]&lt;br /&gt;
* [http://flickr.com/photos/tuxmaniac/sets/72157594571226878/ Aanjhan]&lt;br /&gt;
* [http://www.flickr.com/photos/techno_freak/ Parthan]&lt;br /&gt;
&lt;br /&gt;
{{foss-meet-at-nitc}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Events|2007/03/02]]&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Calicut/NIT/FOSS_Meet/06&amp;diff=2340</id>
		<title>Calicut/NIT/FOSS Meet/06</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Calicut/NIT/FOSS_Meet/06&amp;diff=2340"/>
		<updated>2024-08-11T05:38:04Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:NITC_FOSS_MEET_2006.jpg |thumb]]&lt;br /&gt;
Second edition of FOSS Meet. [http://www.foss.nitc.ac.in/preweb/index.html Event website]&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
9 Talks + 2 Workshops March 18,19 2006&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Arun M 	Foss - General Talk [FOSS in Society] Intellectual Property, Copyright, Licence issues &lt;br /&gt;
*[[Gopal V|Gopal Vijayraghavan]] 	DotGNU / Mozilla Hack 	&lt;br /&gt;
*[[Kalyan Varma]] 	Network Security 	&lt;br /&gt;
*[[Philip Tellis]] 	Education/Creative Commons 	&lt;br /&gt;
*[[Praveen A|Praveen]] and [[Dilip V|Dilip]] 	Debian Workshop 	&lt;br /&gt;
*[[Premshree Pillai]] 	Ruby 	&lt;br /&gt;
*[[Sharath Lakshman]] 	Live CD Workshop 	&lt;br /&gt;
*[[Shreekumar]] 	Quake 3 - Fun and more&lt;br /&gt;
*[[Shreyas Srinivasan]] 	GNOME Hack&lt;br /&gt;
*Shyam Mani 	Gentoo Developer&lt;br /&gt;
*[[Aanjhan R]] 	Embedded Linux&lt;br /&gt;
*[[Kushal Das]]     Fedora BOF&lt;br /&gt;
&lt;br /&gt;
==Comments==&lt;br /&gt;
* [...] Right. All around good experience, the event, the place, the&lt;br /&gt;
hosts and not to mention the food. College set near a nice jungle/hill&lt;br /&gt;
kinda place. Appams rocked! Beach was fun as well, just in time for&lt;br /&gt;
the sunset. Lots of good talks from Philip, Gopal, Shyam, Shreyas and&lt;br /&gt;
so many many more people. [...]&lt;br /&gt;
- [http://mm.ilug-bom.org.in/pipermail/linuxers/Week-of-Mon-20070212/058037.html Pradeepto Bhattacharya in a post to glug-bom mailing list on Feb 14, 2007]&lt;br /&gt;
&lt;br /&gt;
* [...] I was at the meet up last year along with Pradeepto and many other &lt;br /&gt;
people.  It&#039;s quite a nice experience.  You should go if you can. [...]&lt;br /&gt;
- [http://mm.ilug-bom.org.in/pipermail/linuxers/Week-of-Mon-20070212/058031.html Philip Tellis in a post to glug-bom mailing list on Feb 14, 2007]&lt;br /&gt;
&lt;br /&gt;
* [...] FOSS.NITC..yet another get togetherness of young free software enthusiasts ( i would like to see in that way ). As a participant ( &amp;quot; delegate &amp;quot; for the organizers! ), i would like to share the two days of experience. [...] - [http://groups.yahoo.com/group/glugc/message/282 Tinku Sampath in a post to glugc mailinglist on Mar 20, 2006]&lt;br /&gt;
&lt;br /&gt;
==Blogs==&lt;br /&gt;
* [http://bluesmoon.livejournal.com Philip Tellis]&lt;br /&gt;
[...] The announcement said Philip Tellis will speak on Creative Commons, while in the background, Pradeepto downloaded the flickr movie, and transferred it to premshree&#039;s Mac. I engaged the crowd for a few minutes on the kind of music they like, and what they do with that music. Spoke about Anu Malik, what they thought about his music. What they thought were the legalities of some of his tracks as well as the creativity. Most of them said they liked the music, but didn&#039;t think that it was legal.[...]&lt;br /&gt;
** [http://bluesmoon.livejournal.com/221547.html FOSS@NITC]&lt;br /&gt;
** [http://bluesmoon.livejournal.com/221907.html FOSS@NITC day 2]&lt;br /&gt;
&lt;br /&gt;
* [http://t3.dotgnu.info/blog/ Gopal V]&lt;br /&gt;
[...]The organization of FOSS @ NITC surprised me, compared to what I&#039;d seen at other similar conferences. Compared to what went on at GNUnify, these guys are a lot more decentralized in organization and had quite a feel of a student run tech fest. I hardly saw any faculty running around, except for Amarjeet. The faculty was more of facilitiating the event rather than running the event and their pulls on the event was not quite obvious, if any. Quite heartening indeed from my point of view.[...]&lt;br /&gt;
** [http://t3.dotgnu.info/blog/conferences/foss-nitc-06.html FOSS @ NITC 2006]&lt;br /&gt;
** [http://t3.dotgnu.info/blog/travels/fun-in-calicut.html Fun in Calicut]&lt;br /&gt;
&lt;br /&gt;
* [http://sarathlakshman.info Sarath Lakshman]&lt;br /&gt;
[...]I really enjoyed the FOSS event. I missed some of the talks due to schedule of my talk. My workshop was conducted at NITC computer Lab. Actually NITC guyz expected for a hands on workshop..but due to it feel boring to audience I made it into a demo based talk with a practical session. No hands on. So many students at NITC asked me some doubts and I became cheerful in answering and clearing their doubts. In the evening I found out my old friend, Varun Narayan who was my schoolmate before two years. I got a a good company with him there…[...]&lt;br /&gt;
** [http://sarathlakshman.info/?p=53 FOSS@ NITC rocks !]&lt;br /&gt;
&lt;br /&gt;
==Photos==&lt;br /&gt;
&lt;br /&gt;
* [http://www.flickr.com/photos/t3rmin4t0r/sets/72057594087098881/ Gopal&#039;s FOSS Meet 2006 photos on flickr]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Foss-meet-at-nitc}}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Calicut/NIT/FOSS_Meet/05&amp;diff=2338</id>
		<title>Calicut/NIT/FOSS Meet/05</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Calicut/NIT/FOSS_Meet/05&amp;diff=2338"/>
		<updated>2024-08-11T05:38:04Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==GLUGC FLOSS Meet 05 ==&lt;br /&gt;
&lt;br /&gt;
It had 4 speakers and 3 talks. More than 180 delegates showed up and it was a great success. [http://www.foss.nitc.ac.in/preweb/web/2005/index.html Event website]&lt;br /&gt;
[[Image:floss_meet_05.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
==Blogs==&lt;br /&gt;
*[http://www.pravi.co.nr/2005/01/31/wonderful-wheather-floss-meet-a-grand-success/ Praveen A]&lt;br /&gt;
&lt;br /&gt;
*[http://dilpu.blogspot.com/2005/01/floss-meet-thusharagiri-and-more.html Dilip V]&lt;br /&gt;
&lt;br /&gt;
*[http://atulchitnis.net/diary/showentry/274 Atul Chitnis]&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
I started with an introduction of FOSS, and ended with an overview of FOSS in India. Hopefully, I will have made things clear enough to people to get them excited and (more importantly) involved. Lots of questions after the talk, so I am hopeful that the talk was useful to the 100+ people in the audience.&lt;br /&gt;
[...]&lt;br /&gt;
**[http://atulchitnis.net/talks/nit/ Slides]&lt;br /&gt;
&lt;br /&gt;
*[http://www.swaroopch.info/archives/2005/01/30/blogging-from-calicut/ Swaroop CH]&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
Soon, Pradeep and myself took over the stage and we started asking the students about what their previous programming experience and what they are interested in. Almost all students knew C++ and didn’t know Perl. So, yaay! They hadn’t been spoilt by Perl and we knew it would be exciting to introduce them to a clean language like Python to C++ students.&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
**Other Blog entries from Swaroop&lt;br /&gt;
&lt;br /&gt;
[http://www.swaroopch.info/archives/2005/01/09/python-workshop-at-nit-calicut/ Python workshop at NIT Calicut]&lt;br /&gt;
&lt;br /&gt;
[http://www.swaroopch.info/archives/2005/01/28/talk-at-floss-meet-tomorrow/ Talk at FLOSS Meet tomorrow ]&lt;br /&gt;
&lt;br /&gt;
[http://www.swaroopch.info/archives/2005/02/01/trek-at-thusharagiri/ Trek at Thusharagiri]&lt;br /&gt;
&lt;br /&gt;
*[http://72.14.207.104/search?q=cache:vIWMpeG54LkJ:btbytes.com/codecrumbs/27/python-in-calicut+&amp;amp;hl=hi&amp;amp;gl=us&amp;amp;ct=clnk&amp;amp;cd=1&amp;amp;client=firefox Pradeep Kishore Gowda]&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
I’m back from Calicut after giving a talk on Python @ NIT Calicut’s Free/Libre Open Source software meet. Me and Swaroop talked about Python for nearly 3 hours. Going by the number of questions that were asked and the students approaching us to talk in the lunch break, I’m sure there are a new bunch of Pythonistas in Calicut :) This was my largest audience so far with nearly 150 people comprising of students and staff.&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
*[http://shankerbalan.livejournal.com/34726.html Shankar Balan]&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
Back from the Floss meet at NIT, Calicut where I gave a presentation on BSD titled - The Devil&#039;s Side of OpenSource. At the start of the talk there were &amp;lt; 5 in the audience who were aware of BSD, the number should now be &amp;gt; 125 at least. :)&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
==photos==&lt;br /&gt;
* [http://flickr.com/photos/btbytes/sets/72157594342842599/ Pradeep&#039;s flickr galley]&lt;br /&gt;
*[http://www.flickr.com/photos/swaroop/sets/72157601713520180/ Swaroop&#039;s flickr album] &lt;br /&gt;
&lt;br /&gt;
{{Foss-meet-at-nitc}}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Calicut/NIT/FOSS_Meet&amp;diff=2336</id>
		<title>Calicut/NIT/FOSS Meet</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Calicut/NIT/FOSS_Meet&amp;diff=2336"/>
		<updated>2024-08-11T05:38:04Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FOSSMeet is an annual event on Free and Open source software, conducted at National Institute of Technology, Calicut. Started with a vision to create a culture of innovation, evolution and open standards, the meet intends to support the FOSS community and the dissemination of FOSS ideology through hands-on sessions, discussions and lectures.&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2017&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The Eleventh edition of FOSS Meet is scheduled from March 10 to March 12 2017.&amp;lt;br/&amp;gt;&lt;br /&gt;
FOSS Meet@NITC 2017 [http://fossmeet.in/2017 Homepage] [[Calicut/NIT/FOSS_Meet/17| Wiki]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://groups.google.com/forum/#!forum/fossmeetnitc Stay Tuned...] or [https://groups.google.com/forum/#!forum/fossmeetnitc Join us...].&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2016&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The Tenth edition of FOSS Meet is scheduled from Feb 26 to Feb 28 2016.&amp;lt;br/&amp;gt;&lt;br /&gt;
FOSS Meet@NITC 2016 [http://fossmeet.in/2016 Homepage] [[Calicut/NIT/FOSS_Meet/16| Wiki]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://groups.google.com/forum/#!forum/fossmeetnitc Stay Tuned...] or [https://groups.google.com/forum/#!forum/fossmeetnitc Join us...].&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2014&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The Ninth edition of FOSS Meet is scheduled from Feb 14 to Feb 16 2014.&amp;lt;br/&amp;gt;&lt;br /&gt;
FOSS Meet@NITC 2014 [http://fossmeet.in/2014 Homepage] [[Calicut/NIT/FOSS_Meet/14| Wiki]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://groups.google.com/forum/#!forum/fossmeetnitc Stay Tuned...] or [https://groups.google.com/forum/#!forum/fossmeetnitc Join us...].&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2013&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The Eighth edition of FOSS Meet is scheduled from Feb 22 to Feb 24 2013.&amp;lt;br/&amp;gt;&lt;br /&gt;
FOSS Meet@NITC 2013 [http://fossmeet.in/2013 Homepage] [[Calicut/NIT/FOSS_Meet/13| Wiki]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://groups.google.com/forum/#!forum/fossmeetnitc Stay Tuned...] or [https://groups.google.com/forum/#!forum/fossmeetnitc Join us...].&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2011&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The Seventh edition of FOSS Meet is scheduled from Feb 4 to Feb 6 2011.&amp;lt;br/&amp;gt;&lt;br /&gt;
FOSS Meet@NITC 2011 [http://fossmeet.in/2011 Homepage] [[Calicut/NIT/FOSS_Meet/11| Wiki]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://groups.google.com/forum/#!forum/fossmeetnitc Stay Tuned...] or [https://groups.google.com/forum/#!forum/fossmeetnitc Join us...].&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2010&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The Sixth edition of FOSS Meet is scheduled from Feb 5 to Feb 7 2010.&amp;lt;br/&amp;gt;&lt;br /&gt;
FOSS Meet@NITC 2010 [http://fossmeet.in/2010 Homepage] [[Calicut/NIT/FOSS_Meet/10| Wiki]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://groups.google.com/forum/#!forum/fossmeetnitc Stay Tuned...] or [https://groups.google.com/forum/#!forum/fossmeetnitc Join us...].&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2009&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The Fifth edition of FOSS Meet is scheduled from Feb 27 to March 1 2009.&amp;lt;br/&amp;gt;&lt;br /&gt;
FOSS Meet@NITC 2009 [http://fossmeet.in/2009 Homepage] [[Calicut/NIT/FOSS_Meet/09| Wiki]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://groups.yahoo.com/group/glugc Stay Tuned...] or [http://groups.yahoo.com/group/foss_meet_nitc Join us...].&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2008&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The Fourth edition of FOSS Meet happened during March 2008.&amp;lt;br/&amp;gt;&lt;br /&gt;
FOSS Meet@NITC 2009 [http://fossmeet.in/nitc Homepage] [[Calicut/NIT/FOSS_Meet/08| Wiki]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://groups.yahoo.com/group/glugc Stay Tuned...] or [http://groups.yahoo.com/group/foss_meet_nitc Join us...].&amp;lt;br/&amp;gt;&lt;br /&gt;
[[ FOSS Meet NITC 2008 Ideas]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://www.flickr.com/photos/girishrv/tags/fossmeet/ Check out the posters]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2007&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|The third edition of FOSS Meet happened on 2-4 March 2007. &lt;br /&gt;
[http://groups.yahoo.com/group/glugc Stay Tuned...]&lt;br /&gt;
[[Image:NITC_FOSS_MEET_2007.jpg |thumb]]&lt;br /&gt;
[[Calicut/NIT/FOSS_Meet/07| FOSS Meet@NITC 2007]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2006&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|The second edition of FOSS Meet was on 18-19 March 2006. &lt;br /&gt;
[[Image:NITC_FOSS_MEET_2006.jpg |thumb]]&lt;br /&gt;
[[Calicut/NIT/FOSS_Meet/06| FOSS Meet@NITC 2006]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa&amp;quot;&lt;br /&gt;
! &amp;lt;h2 style=&amp;quot;margin:0;background-color:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot;&amp;gt;2005&amp;lt;/h2&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|The first edition of the meet was on 30th  Jan 2005.&lt;br /&gt;
[[Image:floss_meet_05.jpg|thumb]]&lt;br /&gt;
[[Calicut/NIT/FOSS_Meet/05| FLOSS Meet@NITC 2005]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Foss-meet-at-nitc}}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=West_Campus&amp;diff=2327</id>
		<title>West Campus</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=West_Campus&amp;diff=2327"/>
		<updated>2024-07-03T11:03:31Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The West Campus of NITC is one of the section of the NITC divided by the public roads. &lt;br /&gt;
&lt;br /&gt;
=== Entrance ===&lt;br /&gt;
&lt;br /&gt;
The West campus used to have 2 primary entrances i.e. Library gate and main West Campus gate (aka LH Main gate). Since the closing and brick walling of library gate, only 1 official entrance to the West Campus exists.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&lt;br /&gt;
The West campus comprises of : &lt;br /&gt;
&lt;br /&gt;
1. [[Ladies Hostel|LH]]  &lt;br /&gt;
&lt;br /&gt;
2. [[MLH]]  &lt;br /&gt;
&lt;br /&gt;
3. Staff Quarters  &lt;br /&gt;
&lt;br /&gt;
4. [[Directors banglow|Director Banglow]]  &lt;br /&gt;
&lt;br /&gt;
5. [[SOMS]]&lt;br /&gt;
&lt;br /&gt;
6. [[Nalanda(Central Library)|Central Library]]&lt;br /&gt;
&lt;br /&gt;
7. etc&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Dr._Malladi_V._Pavan_Kumar&amp;diff=2323</id>
		<title>Dr. Malladi V. Pavan Kumar</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Dr._Malladi_V._Pavan_Kumar&amp;diff=2323"/>
		<updated>2024-07-01T11:01:47Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Associate Professor ==&lt;br /&gt;
[[File:Dr. Malladi V. Pavan Kumar.png|thumb|&#039;&#039;&#039;Dr. Malladi V. Pavan Kumar&#039;&#039;&#039;]]&lt;br /&gt;
&amp;lt;u&amp;gt;Office Address&amp;lt;/u&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Room 202F, [[The Department of Chemical Engineering|Department of Chemical Engineering]], National Institute of Technology Calicut. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Contact no&amp;lt;/u&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
+91(0)4952285410, +91(0)4952287353&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Email ID&amp;lt;/u&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[mailto:malladi@nitc.ac.in malladi@nitc.ac.in]&lt;br /&gt;
&lt;br /&gt;
== Educational Qualifications ==&lt;br /&gt;
&lt;br /&gt;
* PhD, Indian Institute of Technology Kanpur, 2008 (Thesis Supervisor: Dr. N. Kaistha)&lt;br /&gt;
* M.Tech, Indian Institute of Technology Kanpur, 2003 (Thesis Supervisor: Dr. D. Kunzru)&lt;br /&gt;
* B.Tech, College of Technology, Osmania University, Hyderabad, 2001 &lt;br /&gt;
&lt;br /&gt;
== Research Interest ==&lt;br /&gt;
&lt;br /&gt;
* Design, Modeling, Simulation and Control&lt;br /&gt;
* Control of Reactive Distillation Systems&lt;br /&gt;
* Process Heat Integration&lt;br /&gt;
* Non-linear Dynamics and Bifurcation analysis of A Chemical Processes&lt;br /&gt;
* Adsorption (Reactive &amp;amp; Non-Reactive) &lt;br /&gt;
&lt;br /&gt;
== Professional Experience ==&lt;br /&gt;
&lt;br /&gt;
* Post-doc Fellow (Sep 2008 - Aug 2010), Max Planck Institute for Dynamics of Complex Technical Systems, Magdeburg, Germany&lt;br /&gt;
* Project Associate (Jan 2008 - Aug 2008), Department of Chemical Engineering, Indian Institute of Technology Kanpur, Kanpur, India&lt;br /&gt;
* Student Project Fellow (Apr 2007 - Dec 2007), Department of Chemical Engineering, Indian Institute of Technology Kanpur, Kanpur, India &lt;br /&gt;
&lt;br /&gt;
== Membership in Professional Bodies ==&lt;br /&gt;
Life Member (LM-43788), Indian Institute of Chemical Engineers (IIChE). &lt;br /&gt;
&lt;br /&gt;
== Responsibilities and Activities ==&lt;br /&gt;
&lt;br /&gt;
=== Department Level ===&lt;br /&gt;
&lt;br /&gt;
* Class committee chairperson, Semester V, B.Tech Chemical Engineering (Monsoon Semester 2012-2013)&lt;br /&gt;
* Department Time table in-charge (April 2012 onwards)&lt;br /&gt;
* A faculty advisor to students of the B. Tech program&lt;br /&gt;
* Committee member, recruitment of staff and faculty on ad-hoc basis (July 2011)&lt;br /&gt;
* Final year project review committee member, B.Tech Chemical Engineering (2010-2011)&lt;br /&gt;
* Prepared syllabi and curriculum for 2 courses (CH4052 Computers Applications in Chemical Engineering &amp;amp; CH4039 catalysis) in the revision of syllabi and curriculum of B.Tech Chemical Engineering (2010)&lt;br /&gt;
&lt;br /&gt;
=== Institute Level ===&lt;br /&gt;
&lt;br /&gt;
* Member, Anti-ragging squad &lt;br /&gt;
* Member, stock verification team in the Department of Mechanical Engineering, NIT Calicut (2011)&lt;br /&gt;
* Warden, Hostel E, NIT Calicut (July 2012 onwards)&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=User_talk:Athulkrishna51&amp;diff=2318</id>
		<title>User talk:Athulkrishna51</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=User_talk:Athulkrishna51&amp;diff=2318"/>
		<updated>2024-06-25T12:32:07Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to &#039;&#039;WIKI FOSSCELL NITC&#039;&#039;!&#039;&#039;&#039;&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Akhil T|Akhil T]] ([[User talk:Akhil T|talk]]) 18:02, 25 June 2024 (IST)&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=User:Athulkrishna51&amp;diff=2317</id>
		<title>User:Athulkrishna51</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=User:Athulkrishna51&amp;diff=2317"/>
		<updated>2024-06-25T12:32:07Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;myself im athul krishna studying ece at nit calicutt&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=East_Campus&amp;diff=2314</id>
		<title>East Campus</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=East_Campus&amp;diff=2314"/>
		<updated>2024-06-22T15:12:49Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Located east of the Main Campus near [[Company Mukku]]. East Campus is home to the [[ECLC]] and department buildings of Chemical Engineering,Biotechnology, Physics, Chemistry and Mathematics.&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=ECLHC&amp;diff=2313</id>
		<title>ECLHC</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=ECLHC&amp;diff=2313"/>
		<updated>2024-06-22T15:02:36Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: Reverted edit by Akhil T (talk) to last revision by Vk-tori&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ECLHC aka [[ECLC]]. People who can read the sign outside ECLHC can see that it is ECLHC and not [[ECLC]].&lt;br /&gt;
&lt;br /&gt;
It is also not [[ELHC]] , which is in main campus.&lt;br /&gt;
&lt;br /&gt;
The jury is still out on this one.&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=ECLHC&amp;diff=2312</id>
		<title>ECLHC</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=ECLHC&amp;diff=2312"/>
		<updated>2024-06-22T15:02:07Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ECLHC aka [[ECLC]]. People who can read the sign outside ECLHC can see that it is ECLHC and not [[ECLC]].&lt;br /&gt;
&lt;br /&gt;
It is also not [[ELHC]], which is in main campus.&lt;br /&gt;
&lt;br /&gt;
The jury is still out on this one.&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Category:Places_in_NITC&amp;diff=2199</id>
		<title>Category:Places in NITC</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Category:Places_in_NITC&amp;diff=2199"/>
		<updated>2024-06-08T18:53:25Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Auditorium]]&lt;br /&gt;
&lt;br /&gt;
[[ATM Circle]]&lt;br /&gt;
&lt;br /&gt;
[[A HOSTEL]]&lt;br /&gt;
&lt;br /&gt;
[[A hostel common room]]&lt;br /&gt;
&lt;br /&gt;
[[B Hostel]]&lt;br /&gt;
&lt;br /&gt;
[[Bake House]]&lt;br /&gt;
&lt;br /&gt;
[[Basketball court]]&lt;br /&gt;
&lt;br /&gt;
[[Basketball court (LH)]]&lt;br /&gt;
&lt;br /&gt;
[[Beauty parlour]]&lt;br /&gt;
&lt;br /&gt;
[[Bhaskara Hall]]&lt;br /&gt;
&lt;br /&gt;
[[Big Data Lab]]&lt;br /&gt;
&lt;br /&gt;
[[BioChemistry Laboratory]]&lt;br /&gt;
&lt;br /&gt;
[[BioInformatics Laboratory]]&lt;br /&gt;
&lt;br /&gt;
[[Burger Lounge]]&lt;br /&gt;
&lt;br /&gt;
[[Bus Shed]]&lt;br /&gt;
&lt;br /&gt;
[[But First Chai]]&lt;br /&gt;
&lt;br /&gt;
[[C Hostel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
More to be added...&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Pagetype/rfd&amp;diff=1627</id>
		<title>Module:Pagetype/rfd</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Pagetype/rfd&amp;diff=1627"/>
		<updated>2024-05-30T02:34:56Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This page contains a table of all RfD templates and their&lt;br /&gt;
-- redirects. Templates names are capitalized, and the Template: prefix is&lt;br /&gt;
-- removed. Templates are grouped with the main template first, followed by&lt;br /&gt;
-- its redirects.&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	-- Template forms (these should be substituted so we should rarely see these)&lt;br /&gt;
	[&amp;quot;Redirect for discussion&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;RFD&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;RfD&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Rfd1&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Rfd-t&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Rfd&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Rfd-NPF&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Rfd-NPF/core&amp;quot;] = true,&lt;br /&gt;
	-- Module forms&lt;br /&gt;
	[&amp;quot;#invoke:RfD&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:RfD&amp;quot;] = true, -- The form made by substituting RfD&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Pagetype/setindex&amp;diff=1625</id>
		<title>Module:Pagetype/setindex</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Pagetype/setindex&amp;diff=1625"/>
		<updated>2024-05-30T02:34:56Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This page contains a table of all set index templates and their&lt;br /&gt;
-- redirects. Templates names are capitalized, and the Template: prefix is&lt;br /&gt;
-- removed. Templates are grouped with the main template first, followed by&lt;br /&gt;
-- its redirects.&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	[&amp;quot;Set index article&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Sia&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Set index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;SIA&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Set-index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Setindex&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Set-index article&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Animal common name&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Chemistry index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Chemdisambig&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Chemistry disambiguation&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Chemistry set index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Chemindex&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Enzyme index&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Fungus common name&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Given name&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;First name&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Forename&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Greek myth index&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Lake index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Lakeindex&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Locomotive index&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Media set index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Media index&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Molecular formula index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;MolFormDisambig&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Molecular formula disambiguation&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;MolFormIndex&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Mountain index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Mountainindex&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Nickname&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Painting index&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Plant common name&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;River index&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Road index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Roadindex&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Ship index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Shipindex&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Sport index&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Sportindex&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Storm index&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Surname&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Surnames&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;DisambigName&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;DisambigNm&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;DisambigN&amp;quot;] = true,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Pagetype/softredirect&amp;diff=1623</id>
		<title>Module:Pagetype/softredirect</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Pagetype/softredirect&amp;diff=1623"/>
		<updated>2024-05-30T02:34:55Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This page contains a table of all soft redirect templates and their&lt;br /&gt;
-- redirects. Templates names are capitalized, and the Template: prefix is&lt;br /&gt;
-- removed. Templates are grouped with the main template first, followed by&lt;br /&gt;
-- its redirects.&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	[&amp;quot;Soft redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Interwiki redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;SoftRedirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Soft Redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Softredirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Softredir&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Soft link&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Soft redir&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Soft&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Plain soft redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Softr&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wiktionary redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Moved to Wiktionary&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;RedirecttoWiktionary&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wi&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wiktionary Redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wtr&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wtsr&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wiktionaryredirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;WiktionaryRedirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wiktionary-redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wiktredir&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wiktr&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikt redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikt red&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wiktred&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wikibooks redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;WBOOK&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wbook&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikibooks Redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;WikibooksRedirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikibooksredirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikibook redirect&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wikiquote redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wq&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wikisource redirect&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wikispecies redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;WSPEC&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wspec&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikispecies Redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;WikispeciesRedirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikispeciesredirect&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wikivoyage redirect&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wikimedia Commons redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;COMM&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Commons redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Comm&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Commonsredirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Commons Redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;CommonsRedirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikimedia commons redirect&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Soft redirect with Wikidata item&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikidata-redirect&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wdr&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;Wikidata redirect&amp;quot;] = true&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Pagetype/disambiguation&amp;diff=1621</id>
		<title>Module:Pagetype/disambiguation</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Pagetype/disambiguation&amp;diff=1621"/>
		<updated>2024-05-30T02:34:55Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return require [[Module:Disambiguation/templates]]&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Disambiguation/templates&amp;diff=1619</id>
		<title>Module:Disambiguation/templates</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Disambiguation/templates&amp;diff=1619"/>
		<updated>2024-05-30T02:34:55Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This page contains a table of all disambiguation templates and their&lt;br /&gt;
-- redirects. Templates names are capitalized, and the Template: prefix is&lt;br /&gt;
-- removed. Templates are grouped with the main template first, followed by&lt;br /&gt;
-- its redirects.&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	[&amp;quot;Disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Begriffsklärung&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;DAB&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Dab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Dab page&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Dabpage&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Dbig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Dis&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disam&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disamb&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambig misspelling&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambig-plants&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambiguation page&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Meta disambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Project disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Shortcut disambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wikipedia disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;WP disambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;WP-disambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Airport disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Airport disambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Biology disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Call sign disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Callsigndis&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Caselaw disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Case law disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Chinese title disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Chinese title disambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;CJKVdab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambig-Chinese-char-title&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Disambiguation cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Cleanup disambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Cleanup disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;CleanupDisambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Dab cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Dab-cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Dabclean&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disamb-cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambcleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambig cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambig-cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambig-CU&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambig-cu&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambigcleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambiguate-cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambiguation-cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Geodis-cleanup&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Genus disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Genus disambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Hangul title disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Hospital disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Hospitaldis&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Human name disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Bio-dab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Hndab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;HNDIS&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;HnDis&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Hndis&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Hndisambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Human name dab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Personal name&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Personal name disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Human name disambiguation cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Hndis-cleanup&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Personal name disambiguation cleanup&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Hurricane season disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Letter–number combination disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Letter-Number Combination Disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Letter-Number combination disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Letter-number combination disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Letter-NumberCombDisambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Letter-NumberCombdisambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Letter-NumberCombinationDisambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;LNCD&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Mathematical disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Math dab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Math disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Mathdab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Mathematics disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Maths disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Military unit disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Mil-unit-dis&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Mil-unit-disambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Music disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Music disambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Number disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Numberdis&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Numdab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Numdisambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Opus number disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Phonetics disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Place name disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;DisambigG&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;DisambigGeo&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Disambiggeo&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Geo-dis&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Geodab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Geodis&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Geodisambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Geographic disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Portal disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Portal disambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Road disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Roaddis&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;School disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;School disambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Schooldab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Schooldis&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Species Latin name abbreviation disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Species Latin name disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;LatinNameDisambig&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;SpeciesLatinNameDisambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Station disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Station dab&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Synagogue disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Taxonomy disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Species disambiguation&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;Template disambiguation&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Template ambiguous&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Template dab&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Template disambig&amp;quot;] = true,&lt;br /&gt;
&lt;br /&gt;
	[&amp;quot;WoO number disambiguation&amp;quot;] = true,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Wikitext_Parsing&amp;diff=1617</id>
		<title>Module:Wikitext Parsing</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Wikitext_Parsing&amp;diff=1617"/>
		<updated>2024-05-30T02:34:55Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&amp;quot;strict&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
--Helper functions&lt;br /&gt;
local function startswith(text, subtext)&lt;br /&gt;
	return string.sub(text, 1, #subtext) == subtext&lt;br /&gt;
end&lt;br /&gt;
local function endswith(text, subtext)&lt;br /&gt;
	return string.sub(text, -#subtext, -1) == subtext&lt;br /&gt;
end&lt;br /&gt;
local function allcases(s)&lt;br /&gt;
	return s:gsub(&amp;quot;%a&amp;quot;, function(c) &lt;br /&gt;
		return &amp;quot;[&amp;quot;..c:upper()..c:lower()..&amp;quot;]&amp;quot;&lt;br /&gt;
	end)&lt;br /&gt;
end&lt;br /&gt;
local trimcache = {}&lt;br /&gt;
local whitespace = {[&amp;quot; &amp;quot;]=1, [&amp;quot;\n&amp;quot;]=1, [&amp;quot;\t&amp;quot;]=1, [&amp;quot;\r&amp;quot;]=1}&lt;br /&gt;
local function cheaptrim(str) --mw.text.trim is surprisingly expensive, so here&#039;s an alternative approach&lt;br /&gt;
	local quick = trimcache[str]&lt;br /&gt;
	if quick then&lt;br /&gt;
		return quick&lt;br /&gt;
	else&lt;br /&gt;
		-- local out = string.gsub(str, &amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
		local lowEnd&lt;br /&gt;
		for i = 1,#str do&lt;br /&gt;
			if not whitespace[string.sub(str, i, i)] then&lt;br /&gt;
				lowEnd = i&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if not lowEnd then&lt;br /&gt;
			trimcache[str] = &amp;quot;&amp;quot;&lt;br /&gt;
			return &amp;quot;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		for i = #str,1,-1 do&lt;br /&gt;
			if not whitespace[string.sub(str, i, i)] then&lt;br /&gt;
				local out = string.sub(str, lowEnd, i)&lt;br /&gt;
				trimcache[str] = out&lt;br /&gt;
				return out&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[ Implementation notes&lt;br /&gt;
---- NORMAL HTML TAGS ----&lt;br /&gt;
Tags are very strict on how they want to start, but loose on how they end.&lt;br /&gt;
The start must strictly follow &amp;lt;[tAgNaMe](%s|&amp;gt;) with no room for whitespace in&lt;br /&gt;
the tag&#039;s name, but may then flow as they want afterwards, making&lt;br /&gt;
&amp;lt;div\nclass\n=\n&amp;quot;\nerror\n&amp;quot;\n&amp;gt; valid&lt;br /&gt;
&lt;br /&gt;
There&#039;s no sense of escaping &amp;lt; or &amp;gt;&lt;br /&gt;
E.g.&lt;br /&gt;
 &amp;lt;div class=&amp;quot;error\&amp;gt;&amp;quot;&amp;gt; will end at \&amp;gt; despite it being inside a quote&lt;br /&gt;
 &amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;error&amp;lt;/span&amp;gt;&amp;quot;&amp;gt; will not process the larger div&lt;br /&gt;
&lt;br /&gt;
If a tag has no end, it will consume all text instead of not processing&lt;br /&gt;
&lt;br /&gt;
---- NOPROCESSING TAGS (nowiki, pre, syntaxhighlight, source, etc.) ----&lt;br /&gt;
(In most comments, &amp;lt;source&amp;gt; will not be mentioned. This is because it is the&lt;br /&gt;
deprecated version of &amp;lt;syntaxhighlight&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
No-Processing tags have some interesting differences to the above rules.&lt;br /&gt;
For example, their syntax is a lot stricter. While an opening tag appears to&lt;br /&gt;
follow the same set of rules, A closing tag can&#039;t have any sort of extra&lt;br /&gt;
formatting period. While &amp;lt;/div a/a&amp;gt; is valid, &amp;lt;/nowiki a/a&amp;gt; isn&#039;t - only&lt;br /&gt;
newlines and spaces/tabs are allowed in closing tags.&lt;br /&gt;
Note that, even though &amp;lt;pre&amp;gt; tags cause a visual change when the ending tag has&lt;br /&gt;
extra formatting, it won&#039;t cause the no-processing effects. For some reason, the&lt;br /&gt;
format must be strict for that to apply.&lt;br /&gt;
&lt;br /&gt;
Both the content inside the tag pair and the content inside each side of the&lt;br /&gt;
pair is not processed. E.g. &amp;lt;nowiki |}}&amp;gt;|}}&amp;lt;/nowiki&amp;gt; would have both of the |}}&lt;br /&gt;
escaped in practice.&lt;br /&gt;
&lt;br /&gt;
When something in the code is referenced to as a &amp;quot;Nowiki Tag&amp;quot;, it means a tag&lt;br /&gt;
which causes wiki text to not be processed, which includes &amp;lt;nowiki&amp;gt;, &amp;lt;pre&amp;gt;,&lt;br /&gt;
and &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we only care about these tags, we can ignore the idea of an intercepting&lt;br /&gt;
tag preventing processing, and just go straight for the first ending we can find&lt;br /&gt;
If there is no ending to find, the tag will NOT consume the rest of the text in&lt;br /&gt;
terms of processing behaviour (though &amp;lt;pre&amp;gt; will appear to have an effect).&lt;br /&gt;
Even if there is no end of the tag, the content inside the opening half will&lt;br /&gt;
still be unprocessed, meaning {{X20|&amp;lt;nowiki }}&amp;gt;}} wouldn&#039;t end at the first }}&lt;br /&gt;
despite there being no ending to the tag.&lt;br /&gt;
&lt;br /&gt;
Note that there are some tags, like &amp;lt;math&amp;gt;, which also function like &amp;lt;nowiki&amp;gt;&lt;br /&gt;
which are included in this aswell. Some other tags, like &amp;lt;ref&amp;gt;, have far too&lt;br /&gt;
unpredictable behaviour to be handled currently (they&#039;d have to be split and&lt;br /&gt;
processed as something seperate - its complicated, but maybe not impossible.)&lt;br /&gt;
I suspect that every tag listed in [[Special:Version]] may behave somewhat like&lt;br /&gt;
this, but that&#039;s far too many cases worth checking for rarely used tags that may&lt;br /&gt;
not even have a good reason to contain {{ or }} anyways, so we leave them alone.&lt;br /&gt;
&lt;br /&gt;
---- HTML COMMENTS AND INCLUDEONLY ----&lt;br /&gt;
HTML Comments are about as basic as it could get for this&lt;br /&gt;
Start at &amp;lt;!--, end at --&amp;gt;, no extra conditions. Simple enough&lt;br /&gt;
If a comment has no end, it will eat all text instead of not being processed&lt;br /&gt;
&lt;br /&gt;
includeonly tags function mostly like a regular nowiki tag, with the exception&lt;br /&gt;
that the tag will actually consume all future text if not given an ending as&lt;br /&gt;
opposed to simply giving up and not changing anything. Due to complications and&lt;br /&gt;
the fact that this is far less likely to be present on a page, aswell as being&lt;br /&gt;
something that may not want to be escaped, includeonly tags are ignored during&lt;br /&gt;
our processing&lt;br /&gt;
--]=]&lt;br /&gt;
local validtags = {nowiki=1, pre=1, syntaxhighlight=1, source=1, math=1}&lt;br /&gt;
--This function expects the string to start with the tag&lt;br /&gt;
local function TestForNowikiTag(text, scanPosition)&lt;br /&gt;
	local tagName = (string.match(text, &amp;quot;^&amp;lt;([^\n /&amp;gt;]+)&amp;quot;, scanPosition) or &amp;quot;&amp;quot;):lower()&lt;br /&gt;
	if not validtags[tagName] then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local nextOpener = string.find(text, &amp;quot;&amp;lt;&amp;quot;, scanPosition+1) or -1&lt;br /&gt;
	local nextCloser = string.find(text, &amp;quot;&amp;gt;&amp;quot;, scanPosition+1) or -1&lt;br /&gt;
	if nextCloser &amp;gt; -1 and (nextOpener == -1 or nextCloser &amp;lt; nextOpener) then&lt;br /&gt;
		local startingTag = string.sub(text, scanPosition, nextCloser)&lt;br /&gt;
		--We have our starting tag (E.g. &#039;&amp;lt;pre style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;)&lt;br /&gt;
		--Now find our ending...&lt;br /&gt;
		if endswith(startingTag, &amp;quot;/&amp;gt;&amp;quot;) then --self-closing tag (we are our own ending)&lt;br /&gt;
			return {&lt;br /&gt;
				Tag = tagName,&lt;br /&gt;
				Start = startingTag,&lt;br /&gt;
				Content = &amp;quot;&amp;quot;, End = &amp;quot;&amp;quot;,&lt;br /&gt;
				Length = #startingTag&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
		else&lt;br /&gt;
			local endingTagStart, endingTagEnd = string.find(text, &amp;quot;&amp;lt;/&amp;quot;..allcases(tagName)..&amp;quot;[ \t\n]*&amp;gt;&amp;quot;, scanPosition)&lt;br /&gt;
			if endingTagStart then --Regular tag formation&lt;br /&gt;
				local endingTag = string.sub(text, endingTagStart, endingTagEnd)&lt;br /&gt;
				local tagContent = string.sub(text, nextCloser+1, endingTagStart-1)&lt;br /&gt;
				return {&lt;br /&gt;
					Tag = tagName,&lt;br /&gt;
					Start = startingTag,&lt;br /&gt;
					Content = tagContent,&lt;br /&gt;
					End = endingTag,&lt;br /&gt;
					Length = #startingTag + #tagContent + #endingTag&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
			else --Content inside still needs escaping (also linter error!)&lt;br /&gt;
				return {&lt;br /&gt;
					Tag = tagName,&lt;br /&gt;
					Start = startingTag,&lt;br /&gt;
					Content = &amp;quot;&amp;quot;, End = &amp;quot;&amp;quot;,&lt;br /&gt;
					Length = #startingTag&lt;br /&gt;
				}&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
local function TestForComment(text, scanPosition) --Like TestForNowikiTag but for &amp;lt;!-- --&amp;gt;&lt;br /&gt;
	if string.match(text, &amp;quot;^&amp;lt;!%-%-&amp;quot;, scanPosition) then&lt;br /&gt;
		local commentEnd = string.find(text, &amp;quot;--&amp;gt;&amp;quot;, scanPosition+4, true)&lt;br /&gt;
		if commentEnd then&lt;br /&gt;
			return {&lt;br /&gt;
				Start = &amp;quot;&amp;lt;!--&amp;quot;, End = &amp;quot;--&amp;gt;&amp;quot;,&lt;br /&gt;
				Content = string.sub(text, scanPosition+4, commentEnd-1),&lt;br /&gt;
				Length = commentEnd-scanPosition+3&lt;br /&gt;
			}&lt;br /&gt;
		else --Consumes all text if not given an ending&lt;br /&gt;
			return {&lt;br /&gt;
				Start = &amp;quot;&amp;lt;!--&amp;quot;, End = &amp;quot;&amp;quot;,&lt;br /&gt;
				Content = string.sub(text, scanPosition+4),&lt;br /&gt;
				Length = #text-scanPosition+1&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ Implementation notes&lt;br /&gt;
The goal of this function is to escape all text that wouldn&#039;t be parsed if it&lt;br /&gt;
was preprocessed (see above implementation notes).&lt;br /&gt;
&lt;br /&gt;
Using keepComments will keep all HTML comments instead of removing them. They&lt;br /&gt;
will still be escaped regardless to avoid processing errors&lt;br /&gt;
--]]&lt;br /&gt;
local function PrepareText(text, keepComments)&lt;br /&gt;
	local newtext = {}&lt;br /&gt;
	local scanPosition = 1&lt;br /&gt;
	while true do&lt;br /&gt;
		local NextCheck = string.find(text, &amp;quot;&amp;lt;[NnSsPpMm!]&amp;quot;, scanPosition) --Advance to the next potential tag we care about&lt;br /&gt;
		if not NextCheck then --Done&lt;br /&gt;
			newtext[#newtext+1] =  string.sub(text,scanPosition)&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		newtext[#newtext+1] = string.sub(text,scanPosition,NextCheck-1)&lt;br /&gt;
		scanPosition = NextCheck&lt;br /&gt;
		local Comment = TestForComment(text, scanPosition)&lt;br /&gt;
		if Comment then&lt;br /&gt;
			if keepComments then&lt;br /&gt;
				newtext[#newtext+1] = Comment.Start .. mw.text.nowiki(Comment.Content) .. Comment.End&lt;br /&gt;
			end&lt;br /&gt;
			scanPosition = scanPosition + Comment.Length&lt;br /&gt;
		else&lt;br /&gt;
			local Tag = TestForNowikiTag(text, scanPosition)&lt;br /&gt;
			if Tag then&lt;br /&gt;
				local newTagStart = &amp;quot;&amp;lt;&amp;quot; .. mw.text.nowiki(string.sub(Tag.Start,2,-2)) .. &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
				local newTagEnd = &lt;br /&gt;
					Tag.End == &amp;quot;&amp;quot; and &amp;quot;&amp;quot; or --Respect no tag ending&lt;br /&gt;
					&amp;quot;&amp;lt;/&amp;quot; .. mw.text.nowiki(string.sub(Tag.End,3,-2)) .. &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
				local newContent = mw.text.nowiki(Tag.Content)&lt;br /&gt;
				newtext[#newtext+1] = newTagStart .. newContent .. newTagEnd&lt;br /&gt;
				scanPosition = scanPosition + Tag.Length&lt;br /&gt;
			else --Nothing special, move on...&lt;br /&gt;
				newtext[#newtext+1] = string.sub(text, scanPosition, scanPosition)&lt;br /&gt;
				scanPosition = scanPosition + 1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(newtext, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[ Implementation notes&lt;br /&gt;
This function is an alternative to Transcluder&#039;s getParameters which considers&lt;br /&gt;
the potential for a singular { or } or other odd syntax that %b doesn&#039;t like to&lt;br /&gt;
be in a parameter&#039;s value.&lt;br /&gt;
&lt;br /&gt;
When handling the difference between {{ and {{{, mediawiki will attempt to match&lt;br /&gt;
as many sequences of {{{ as possible before matching a {{&lt;br /&gt;
E.g.&lt;br /&gt;
 {{{{A}}}} -&amp;gt; { {{{A}}} }&lt;br /&gt;
 {{{{{{{{Text|A}}}}}}}} -&amp;gt; {{ {{{ {{{Text|A}}} }}} }}&lt;br /&gt;
If there aren&#039;t enough triple braces on both sides, the parser will compromise&lt;br /&gt;
for a template interpretation.&lt;br /&gt;
E.g.&lt;br /&gt;
 {{{{A}} }} -&amp;gt; {{ {{ A }} }}&lt;br /&gt;
&lt;br /&gt;
While there are technically concerns about things such as wikilinks breaking&lt;br /&gt;
template processing (E.g. {{[[}}]]}} doesn&#039;t stop at the first }}), it shouldn&#039;t&lt;br /&gt;
be our job to process inputs perfectly when the input has garbage ({ / } isn&#039;t&lt;br /&gt;
legal in titles anyways, so if something&#039;s unmatched in a wikilink, it&#039;s&lt;br /&gt;
guaranteed GIGO)&lt;br /&gt;
&lt;br /&gt;
Setting dontEscape will prevent running the input text through EET. Avoid&lt;br /&gt;
setting this to true if you don&#039;t have to set it.&lt;br /&gt;
&lt;br /&gt;
Returned values:&lt;br /&gt;
A table of all templates. Template data goes as follows:&lt;br /&gt;
 Text: The raw text of the template&lt;br /&gt;
 Name: The name of the template&lt;br /&gt;
 Args: A list of arguments&lt;br /&gt;
 Children: A list of immediate template children&lt;br /&gt;
--]=]&lt;br /&gt;
--Helper functions&lt;br /&gt;
local function boundlen(pair)&lt;br /&gt;
	return pair.End-pair.Start+1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Main function&lt;br /&gt;
local function ParseTemplates(InputText, dontEscape)&lt;br /&gt;
	--Setup&lt;br /&gt;
	if not dontEscape then&lt;br /&gt;
		InputText = PrepareText(InputText)&lt;br /&gt;
	end&lt;br /&gt;
	local function finalise(text)&lt;br /&gt;
		if not dontEscape then&lt;br /&gt;
			return mw.text.decode(text)&lt;br /&gt;
		else&lt;br /&gt;
			return text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local function CreateContainerObj(Container)&lt;br /&gt;
		Container.Text = {}&lt;br /&gt;
		Container.Args = {}&lt;br /&gt;
		Container.ArgOrder = {}&lt;br /&gt;
		Container.Children = {}&lt;br /&gt;
		-- Container.Name = nil&lt;br /&gt;
		-- Container.Value = nil&lt;br /&gt;
		-- Container.Key = nil&lt;br /&gt;
		Container.BeyondStart = false&lt;br /&gt;
		Container.LastIndex = 1&lt;br /&gt;
		Container.finalise = finalise&lt;br /&gt;
		function Container:HandleArgInput(character, internalcall)&lt;br /&gt;
			if not internalcall then&lt;br /&gt;
				self.Text[#self.Text+1] = character&lt;br /&gt;
			end&lt;br /&gt;
			if character == &amp;quot;=&amp;quot; then&lt;br /&gt;
				if self.Key then&lt;br /&gt;
					self.Value[#self.Value+1] = character&lt;br /&gt;
				else&lt;br /&gt;
					self.Key = cheaptrim(self.Value and table.concat(self.Value, &amp;quot;&amp;quot;) or &amp;quot;&amp;quot;)&lt;br /&gt;
					self.Value = {}&lt;br /&gt;
				end&lt;br /&gt;
			else --&amp;quot;|&amp;quot; or &amp;quot;}&amp;quot;&lt;br /&gt;
				if not self.Name then&lt;br /&gt;
					self.Name = cheaptrim(self.Value and table.concat(self.Value, &amp;quot;&amp;quot;) or &amp;quot;&amp;quot;)&lt;br /&gt;
					self.Value = nil&lt;br /&gt;
				else&lt;br /&gt;
					self.Value = self.finalise(self.Value and table.concat(self.Value, &amp;quot;&amp;quot;) or &amp;quot;&amp;quot;)&lt;br /&gt;
					if self.Key then&lt;br /&gt;
						self.Key = self.finalise(self.Key)&lt;br /&gt;
						self.Args[self.Key] = cheaptrim(self.Value)&lt;br /&gt;
						self.ArgOrder[#self.ArgOrder+1] = self.Key&lt;br /&gt;
					else&lt;br /&gt;
						local Key = tostring(self.LastIndex)&lt;br /&gt;
						self.Args[Key] = self.Value&lt;br /&gt;
						self.ArgOrder[#self.ArgOrder+1] = Key&lt;br /&gt;
						self.LastIndex = self.LastIndex + 1&lt;br /&gt;
					end&lt;br /&gt;
					self.Key = nil&lt;br /&gt;
					self.Value = nil&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		function Container:AppendText(text, ftext)&lt;br /&gt;
			self.Text[#self.Text+1] = (ftext or text)&lt;br /&gt;
			if not self.Value then&lt;br /&gt;
				self.Value = {}&lt;br /&gt;
			end&lt;br /&gt;
			self.BeyondStart = self.BeyondStart or (#table.concat(self.Text, &amp;quot;&amp;quot;) &amp;gt; 2)&lt;br /&gt;
			if self.BeyondStart then&lt;br /&gt;
				self.Value[#self.Value+1] = text&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		function Container:Clean(IsTemplate)&lt;br /&gt;
			self.Text = table.concat(self.Text, &amp;quot;&amp;quot;)&lt;br /&gt;
			if self.Value and IsTemplate then&lt;br /&gt;
				self.Value = {string.sub(table.concat(self.Value, &amp;quot;&amp;quot;), 1, -3)} --Trim ending }}&lt;br /&gt;
				self:HandleArgInput(&amp;quot;|&amp;quot;, true) --Simulate ending&lt;br /&gt;
			end&lt;br /&gt;
			self.Value = nil&lt;br /&gt;
			self.Key = nil&lt;br /&gt;
			self.BeyondStart = nil&lt;br /&gt;
			self.LastIndex = nil&lt;br /&gt;
			self.finalise = nil&lt;br /&gt;
			self.HandleArgInput = nil&lt;br /&gt;
			self.AppendText = nil&lt;br /&gt;
			self.Clean = nil&lt;br /&gt;
		end&lt;br /&gt;
		return Container&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Step 1: Find and escape the content of all wikilinks on the page, which are stronger than templates (see implementation notes)&lt;br /&gt;
	local scannerPosition = 1&lt;br /&gt;
	local wikilinks = {}&lt;br /&gt;
	local openWikilinks = {}&lt;br /&gt;
	while true do&lt;br /&gt;
		local Position, _, Character = string.find(InputText, &amp;quot;([%[%]])%1&amp;quot;, scannerPosition)&lt;br /&gt;
		if not Position then --Done&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		scannerPosition = Position+2 --+2 to pass the [[ / ]]&lt;br /&gt;
		if Character == &amp;quot;[&amp;quot; then --Add a [[ to the pending wikilink queue&lt;br /&gt;
			openWikilinks[#openWikilinks+1] = Position&lt;br /&gt;
		else --Pair up the ]] to any available [[&lt;br /&gt;
			if #openWikilinks &amp;gt;= 1 then&lt;br /&gt;
				local start = table.remove(openWikilinks) --Pop the latest [[&lt;br /&gt;
				wikilinks[start] = {Start=start, End=Position+1, Type=&amp;quot;Wikilink&amp;quot;} --Note the pair&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Step 2: Find the bounds of every valid template and variable ({{ and {{{)&lt;br /&gt;
	local scannerPosition = 1&lt;br /&gt;
	local templates = {}&lt;br /&gt;
	local variables = {}&lt;br /&gt;
	local openBrackets = {}&lt;br /&gt;
	while true do&lt;br /&gt;
		local Start, _, Character = string.find(InputText, &amp;quot;([{}])%1&amp;quot;, scannerPosition)&lt;br /&gt;
		if not Start then --Done (both 9e9)&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		local _, End = string.find(InputText, &amp;quot;^&amp;quot;..Character..&amp;quot;+&amp;quot;, Start)&lt;br /&gt;
&lt;br /&gt;
		scannerPosition = Start --Get to the {{ / }} set&lt;br /&gt;
		if Character == &amp;quot;{&amp;quot; then --Add the {{+ set to the queue&lt;br /&gt;
			openBrackets[#openBrackets+1] = {Start=Start, End=End}&lt;br /&gt;
&lt;br /&gt;
		else --Pair up the }} to any available {{, accounting for {{{ / }}}&lt;br /&gt;
			local BracketCount = End-Start+1&lt;br /&gt;
			while BracketCount &amp;gt;= 2 and #openBrackets &amp;gt;= 1 do&lt;br /&gt;
				local OpenSet = table.remove(openBrackets)&lt;br /&gt;
				if boundlen(OpenSet) &amp;gt;= 3 and BracketCount &amp;gt;= 3 then --We have a {{{variable}}} (both sides have 3 spare)&lt;br /&gt;
					variables[OpenSet.End-2] = {Start=OpenSet.End-2, End=scannerPosition+2, Type=&amp;quot;Variable&amp;quot;} --Done like this to ensure chronological order&lt;br /&gt;
					BracketCount = BracketCount - 3&lt;br /&gt;
					OpenSet.End = OpenSet.End - 3&lt;br /&gt;
					scannerPosition = scannerPosition + 3&lt;br /&gt;
&lt;br /&gt;
				else --We have a {{template}} (both sides have 2 spare, but at least one side doesn&#039;t have 3 spare)&lt;br /&gt;
					templates[OpenSet.End-1] = {Start=OpenSet.End-1, End=scannerPosition+1, Type=&amp;quot;Template&amp;quot;} --Done like this to ensure chronological order&lt;br /&gt;
					BracketCount = BracketCount - 2&lt;br /&gt;
					OpenSet.End = OpenSet.End - 2&lt;br /&gt;
					scannerPosition = scannerPosition + 2&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				if boundlen(OpenSet) &amp;gt;= 2 then --Still has enough data left, leave it in&lt;br /&gt;
					openBrackets[#openBrackets+1] = OpenSet&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		scannerPosition = End --Now move past the bracket set&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Step 3: Re-trace every object using their known bounds, collecting our parameters with (slight) ease&lt;br /&gt;
	local scannerPosition = 1&lt;br /&gt;
	local activeObjects = {}&lt;br /&gt;
	local finalObjects = {}&lt;br /&gt;
	while true do&lt;br /&gt;
		local LatestObject = activeObjects[#activeObjects] --Commonly needed object&lt;br /&gt;
		local NNC, _, Character --NNC = NextNotableCharacter&lt;br /&gt;
		if LatestObject then&lt;br /&gt;
			NNC, _, Character = string.find(InputText, &amp;quot;([{}%[%]|=])&amp;quot;, scannerPosition)&lt;br /&gt;
		else&lt;br /&gt;
			NNC, _, Character = string.find(InputText, &amp;quot;([{}])&amp;quot;, scannerPosition) --We are only after templates right now&lt;br /&gt;
		end&lt;br /&gt;
		if not NNC then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		if NNC &amp;gt; scannerPosition and LatestObject then&lt;br /&gt;
			local scannedContent = string.sub(InputText, scannerPosition, NNC-1)&lt;br /&gt;
			LatestObject:AppendText(scannedContent, finalise(scannedContent))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		scannerPosition = NNC+1&lt;br /&gt;
		if Character == &amp;quot;{&amp;quot; or Character == &amp;quot;[&amp;quot; then&lt;br /&gt;
			local Container = templates[NNC] or variables[NNC] or wikilinks[NNC]&lt;br /&gt;
			if Container then&lt;br /&gt;
				CreateContainerObj(Container)&lt;br /&gt;
				if Container.Type == &amp;quot;Template&amp;quot; then&lt;br /&gt;
					Container:AppendText(&amp;quot;{{&amp;quot;)&lt;br /&gt;
					scannerPosition = NNC+2&lt;br /&gt;
				elseif Container.Type == &amp;quot;Variable&amp;quot; then&lt;br /&gt;
					Container:AppendText(&amp;quot;{{{&amp;quot;)&lt;br /&gt;
					scannerPosition = NNC+3&lt;br /&gt;
				else --Wikilink&lt;br /&gt;
					Container:AppendText(&amp;quot;[[&amp;quot;)&lt;br /&gt;
					scannerPosition = NNC+2&lt;br /&gt;
				end&lt;br /&gt;
				if LatestObject and Container.Type == &amp;quot;Template&amp;quot; then --Only templates count as children&lt;br /&gt;
					LatestObject.Children[#LatestObject.Children+1] = Container&lt;br /&gt;
				end&lt;br /&gt;
				activeObjects[#activeObjects+1] = Container&lt;br /&gt;
			elseif LatestObject then&lt;br /&gt;
				LatestObject:AppendText(Character)&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		elseif Character == &amp;quot;}&amp;quot; or Character == &amp;quot;]&amp;quot; then&lt;br /&gt;
			if LatestObject then&lt;br /&gt;
				LatestObject:AppendText(Character)&lt;br /&gt;
				if LatestObject.End == NNC then&lt;br /&gt;
					if LatestObject.Type == &amp;quot;Template&amp;quot; then&lt;br /&gt;
						LatestObject:Clean(true)&lt;br /&gt;
						finalObjects[#finalObjects+1] = LatestObject&lt;br /&gt;
					else&lt;br /&gt;
						LatestObject:Clean(false)&lt;br /&gt;
					end&lt;br /&gt;
					activeObjects[#activeObjects] = nil&lt;br /&gt;
					local NewLatest = activeObjects[#activeObjects]&lt;br /&gt;
					if NewLatest then&lt;br /&gt;
						NewLatest:AppendText(LatestObject.Text) --Append to new latest&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		else --| or =&lt;br /&gt;
			if LatestObject then&lt;br /&gt;
				LatestObject:HandleArgInput(Character)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Step 4: Fix the order&lt;br /&gt;
	local FixedOrder = {}&lt;br /&gt;
	local SortableReference = {}&lt;br /&gt;
	for _,Object in next,finalObjects do&lt;br /&gt;
		SortableReference[#SortableReference+1] = Object.Start&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(SortableReference)&lt;br /&gt;
	for i = 1,#SortableReference do&lt;br /&gt;
		local start = SortableReference[i]&lt;br /&gt;
		for n,Object in next,finalObjects do&lt;br /&gt;
			if Object.Start == start then&lt;br /&gt;
				finalObjects[n] = nil&lt;br /&gt;
				Object.Start = nil --Final cleanup&lt;br /&gt;
				Object.End = nil&lt;br /&gt;
				Object.Type = nil&lt;br /&gt;
				FixedOrder[#FixedOrder+1] = Object&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Finished, return&lt;br /&gt;
	return FixedOrder&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
--Main entry points&lt;br /&gt;
p.PrepareText = PrepareText&lt;br /&gt;
p.ParseTemplates = ParseTemplates&lt;br /&gt;
--Extra entry points, not really required&lt;br /&gt;
p.TestForNowikiTag = TestForNowikiTag&lt;br /&gt;
p.TestForComment = TestForComment&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&lt;br /&gt;
--[==[ console tests&lt;br /&gt;
&lt;br /&gt;
local s = [=[Hey!{{Text|&amp;lt;nowiki | ||&amp;gt;&lt;br /&gt;
Hey! }}&lt;br /&gt;
A&amp;lt;/nowiki&amp;gt;|&amp;lt;!--AAAAA|AAA--&amp;gt;Should see|Shouldn&#039;t see}}]=]&lt;br /&gt;
local out = p.PrepareText(s)&lt;br /&gt;
mw.logObject(out)&lt;br /&gt;
&lt;br /&gt;
local s = [=[B&amp;lt;!--&lt;br /&gt;
Hey!&lt;br /&gt;
--&amp;gt;A]=]&lt;br /&gt;
local out = p.TestForComment(s, 2)&lt;br /&gt;
mw.logObject(out); mw.log(string.sub(s, 2, out.Length))&lt;br /&gt;
&lt;br /&gt;
local a = p.ParseTemplates([=[&lt;br /&gt;
{{User:Aidan9382/templates/dummy&lt;br /&gt;
|A|B|C {{{A|B}}} { } } {&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;D&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;E&lt;br /&gt;
|F&amp;lt;/pre&amp;gt;&lt;br /&gt;
|G|=|a=|A  =  [[{{PAGENAME}}|A=B]]{{Text|1==&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;}}|A B=Success}}&lt;br /&gt;
]=])&lt;br /&gt;
mw.logObject(a)&lt;br /&gt;
&lt;br /&gt;
]==]&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:Dated_maintenance_category_(articles)&amp;diff=1615</id>
		<title>Template:Dated maintenance category (articles)</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:Dated_maintenance_category_(articles)&amp;diff=1615"/>
		<updated>2024-05-30T02:34:55Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Dated maintenance category&lt;br /&gt;
 |onlyarticles=yes&lt;br /&gt;
 |1={{{1|}}}&lt;br /&gt;
 |2={{{2|}}}&lt;br /&gt;
 |3={{{3|}}}&lt;br /&gt;
 |4={{{4|}}}&lt;br /&gt;
 |5={{{5|}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|Template:Dated maintenance category/doc}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:Hlist/styles.css&amp;diff=1613</id>
		<title>Template:Hlist/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:Hlist/styles.css&amp;diff=1613"/>
		<updated>2024-05-30T02:34:55Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-protected|reason=match parent|small=yes}} */&lt;br /&gt;
/* &lt;br /&gt;
 * hlist styles are defined in core and Minerva and differ in Minerva. The&lt;br /&gt;
 * current definitions here (2023-01-01) are sufficient to override Minerva&lt;br /&gt;
 * without use of the hlist-separated class. The most problematic styles were&lt;br /&gt;
 * related to margin, padding, and the bullet. Check files listed at&lt;br /&gt;
 * [[MediaWiki talk:Common.css/to do#hlist-separated]]&lt;br /&gt;
 */&lt;br /&gt;
/*&lt;br /&gt;
 * TODO: When the majority of readership supports it (or some beautiful world&lt;br /&gt;
 * in which grade C support is above the minimum threshold), use :is()&lt;br /&gt;
 */&lt;br /&gt;
.hlist dl,&lt;br /&gt;
.hlist ol,&lt;br /&gt;
.hlist ul {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display list items inline */&lt;br /&gt;
.hlist dd,&lt;br /&gt;
.hlist dt,&lt;br /&gt;
.hlist li {&lt;br /&gt;
	/*&lt;br /&gt;
	 * don&#039;t trust the note that says margin doesn&#039;t work with inline&lt;br /&gt;
	 * removing margin: 0 makes dds have margins again&lt;br /&gt;
	 * We also want to reset margin-right in Minerva&lt;br /&gt;
	 */&lt;br /&gt;
	margin: 0; &lt;br /&gt;
	display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display requested top-level lists inline */&lt;br /&gt;
.hlist.inline,&lt;br /&gt;
.hlist.inline dl,&lt;br /&gt;
.hlist.inline ol,&lt;br /&gt;
.hlist.inline ul,&lt;br /&gt;
/* Display nested lists inline */&lt;br /&gt;
.hlist dl dl,&lt;br /&gt;
.hlist dl ol,&lt;br /&gt;
.hlist dl ul,&lt;br /&gt;
.hlist ol dl,&lt;br /&gt;
.hlist ol ol,&lt;br /&gt;
.hlist ol ul,&lt;br /&gt;
.hlist ul dl,&lt;br /&gt;
.hlist ul ol,&lt;br /&gt;
.hlist ul ul {&lt;br /&gt;
	display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide empty list items */&lt;br /&gt;
.hlist .mw-empty-li {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* TODO: :not() can maybe be used here to remove the later rule. naive test&lt;br /&gt;
 * seems to work. more testing needed. like so:&lt;br /&gt;
 *.hlist dt:not(:last-child)::after {&lt;br /&gt;
 *	content: &amp;quot;: &amp;quot;;&lt;br /&gt;
 *}&lt;br /&gt;
 *.hlist dd:not(:last-child)::after,&lt;br /&gt;
 *.hlist li:not(:last-child)::after {&lt;br /&gt;
 *	content: &amp;quot; · &amp;quot;;&lt;br /&gt;
 *	font-weight: bold;&lt;br /&gt;
 *}&lt;br /&gt;
 */&lt;br /&gt;
/* Generate interpuncts */&lt;br /&gt;
.hlist dt::after {&lt;br /&gt;
	content: &amp;quot;: &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd::after,&lt;br /&gt;
.hlist li::after {&lt;br /&gt;
	content: &amp;quot; · &amp;quot;;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd:last-child::after,&lt;br /&gt;
.hlist dt:last-child::after,&lt;br /&gt;
.hlist li:last-child::after {&lt;br /&gt;
	content: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Add parentheses around nested lists */&lt;br /&gt;
.hlist dd dd:first-child::before,&lt;br /&gt;
.hlist dd dt:first-child::before,&lt;br /&gt;
.hlist dd li:first-child::before,&lt;br /&gt;
.hlist dt dd:first-child::before,&lt;br /&gt;
.hlist dt dt:first-child::before,&lt;br /&gt;
.hlist dt li:first-child::before,&lt;br /&gt;
.hlist li dd:first-child::before,&lt;br /&gt;
.hlist li dt:first-child::before,&lt;br /&gt;
.hlist li li:first-child::before {&lt;br /&gt;
	content: &amp;quot; (&amp;quot;;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd dd:last-child::after,&lt;br /&gt;
.hlist dd dt:last-child::after,&lt;br /&gt;
.hlist dd li:last-child::after,&lt;br /&gt;
.hlist dt dd:last-child::after,&lt;br /&gt;
.hlist dt dt:last-child::after,&lt;br /&gt;
.hlist dt li:last-child::after,&lt;br /&gt;
.hlist li dd:last-child::after,&lt;br /&gt;
.hlist li dt:last-child::after,&lt;br /&gt;
.hlist li li:last-child::after {&lt;br /&gt;
	content: &amp;quot;)&amp;quot;;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Put ordinals in front of ordered list items */&lt;br /&gt;
.hlist ol {&lt;br /&gt;
	counter-reset: listitem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist ol &amp;gt; li {&lt;br /&gt;
	counter-increment: listitem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist ol &amp;gt; li::before {&lt;br /&gt;
	content: &amp;quot; &amp;quot; counter(listitem) &amp;quot;\a0&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd ol &amp;gt; li:first-child::before,&lt;br /&gt;
.hlist dt ol &amp;gt; li:first-child::before,&lt;br /&gt;
.hlist li ol &amp;gt; li:first-child::before {&lt;br /&gt;
	content: &amp;quot; (&amp;quot; counter(listitem) &amp;quot;\a0&amp;quot;;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Message_box/ambox.css&amp;diff=1611</id>
		<title>Module:Message box/ambox.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Message_box/ambox.css&amp;diff=1611"/>
		<updated>2024-05-30T02:34:54Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=y}} */&lt;br /&gt;
.ambox {&lt;br /&gt;
	border: 1px solid #a2a9b1;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #36c;  /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
	background-color: #fbfbfb;&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Single border between stacked boxes. Take into account base templatestyles,&lt;br /&gt;
 * user styles, and Template:Dated maintenance category.&lt;br /&gt;
 * remove link selector when T200206 is fixed&lt;br /&gt;
 */&lt;br /&gt;
.ambox + link + .ambox,&lt;br /&gt;
.ambox + link + style + .ambox,&lt;br /&gt;
.ambox + link + link + .ambox,&lt;br /&gt;
/* TODO: raise these as &amp;quot;is this really that necessary???&amp;quot;. the change was Dec 2021 */&lt;br /&gt;
.ambox + .mw-empty-elt + link + .ambox,&lt;br /&gt;
.ambox + .mw-empty-elt + link + style + .ambox,&lt;br /&gt;
.ambox + .mw-empty-elt + link + link + .ambox {&lt;br /&gt;
	margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For the &amp;quot;small=left&amp;quot; option. */&lt;br /&gt;
/* must override .ambox + .ambox styles above */&lt;br /&gt;
html body.mediawiki .ambox.mbox-small-left {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin: 4px 1em 4px 0;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
	width: 238px;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-speedy {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #b32424;    /* Red */&lt;br /&gt;
	background-color: #fee7e6;          /* Pink */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-delete {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #b32424;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-content {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-style {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #fc3;       /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-move {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox-protection {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	border-left: 10px solid #a2a9b1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-text {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 0.25em 0.5em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-image {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0 2px 0.5em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-imageright {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0.5em 2px 0;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* An empty narrow cell */&lt;br /&gt;
.ambox .mbox-empty-cell {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ambox .mbox-image-div {&lt;br /&gt;
	width: 52px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hack around MobileFrontend being opinionated */&lt;br /&gt;
html.client-js body.skin-minerva .mbox-text-span {&lt;br /&gt;
	margin-left: 23px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.ambox {&lt;br /&gt;
		margin: 0 10%;                  /* 10% = Will not overlap with other elements */&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:National_Institutes_of_Technology&amp;diff=1609</id>
		<title>Template:National Institutes of Technology</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:National_Institutes_of_Technology&amp;diff=1609"/>
		<updated>2024-05-30T02:34:54Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox&lt;br /&gt;
| name  = National Institutes of Technology&lt;br /&gt;
| title = [[National Institutes of Technology|National Institutes of Technology (NITs)]]&lt;br /&gt;
| state = {{{state|autocollapse}}}&lt;br /&gt;
| bodyclass = hlist&lt;br /&gt;
&lt;br /&gt;
 | above =&lt;br /&gt;
* [[History of Regional Engineering Colleges|History of NITs]]&lt;br /&gt;
    | group1 = Institutes&lt;br /&gt;
   | list1  =&lt;br /&gt;
* [[National Institute of Technology Agartala|Agartala]]&lt;br /&gt;
* [[National Institute of Technology, Andhra Pradesh|Andhra Pradesh]]&lt;br /&gt;
* [[National Institute of Technology, Arunachal Pradesh|Arunachal Pradesh]]&lt;br /&gt;
* [[Maulana Azad National Institute of Technology|Bhopal]]&lt;br /&gt;
* [[National Institute of Technology Calicut|Calicut]]&lt;br /&gt;
* [[National Institute of Technology Delhi|Delhi]]&lt;br /&gt;
* [[National Institute of Technology, Durgapur|Durgapur]]&lt;br /&gt;
* [[National Institute of Technology Goa|Goa]]&lt;br /&gt;
* [[National Institute of Technology, Hamirpur|Hamirpur]]&lt;br /&gt;
* [[Malaviya National Institute of Technology, Jaipur|Jaipur]]&lt;br /&gt;
* [[Dr. B. R. Ambedkar National Institute of Technology Jalandhar|Jalandhar]]&lt;br /&gt;
* [[National Institute of Technology, Jamshedpur|Jamshedpur]]&lt;br /&gt;
* [[National Institute of Technology, Kurukshetra|Kurukshetra]]&lt;br /&gt;
* [[National Institute of Technology, Manipur|Manipur]]&lt;br /&gt;
* [[National Institute of Technology, Meghalaya|Meghalaya]]&lt;br /&gt;
* [[National Institute of Technology, Mizoram|Mizoram]]&lt;br /&gt;
* [[National Institute of Technology, Nagaland|Nagaland]]&lt;br /&gt;
* [[Visvesvaraya National Institute of Technology|Nagpur]]&lt;br /&gt;
* [[National Institute of Technology, Patna|Patna]]&lt;br /&gt;
* [[Motilal Nehru National Institute of Technology, Prayagraj|Prayagraj]]&lt;br /&gt;
* [[National Institute of Technology, Puducherry|Puducherry]]&lt;br /&gt;
* [[National Institute of Technology, Raipur|Raipur]]&lt;br /&gt;
* [[National Institute of Technology, Rourkela|Rourkela]]&lt;br /&gt;
* [[National Institute of Technology, Silchar|Silchar]]&lt;br /&gt;
* [[National Institute of Technology, Sikkim|Sikkim]] &lt;br /&gt;
* [[National Institute of Technology, Srinagar|Srinagar]]&lt;br /&gt;
* [[Sardar Vallabhbhai National Institute of Technology, Surat|Surat]]&lt;br /&gt;
* [[National Institute of Technology Karnataka|Karnataka]]&lt;br /&gt;
* [[National Institute of Technology, Tiruchirappalli|Tiruchirappalli]]&lt;br /&gt;
* [[National Institute of Technology, Uttarakhand|Uttarakhand]] &lt;br /&gt;
* [[National Institute of Technology, Warangal|Warangal]] &lt;br /&gt;
&lt;br /&gt;
| group3 = Admissions&lt;br /&gt;
| list3  =&lt;br /&gt;
* [[Joint Entrance Examination – Main]]&lt;br /&gt;
* [[Common Admission Test]]&lt;br /&gt;
* [[Graduate Aptitude Test in Engineering]]&lt;br /&gt;
* [[NIT MCA Common Entrance Test]]&lt;br /&gt;
* [[Joint Seat Allocation Authority]]&lt;br /&gt;
&lt;br /&gt;
| group4 = [[List of cultural and technical festivals in IITs and NITs|Fests]]&lt;br /&gt;
| list4  = {{Navbox|child&lt;br /&gt;
&lt;br /&gt;
| group1 = Technical fests&lt;br /&gt;
   | list1 =&lt;br /&gt;
* [[Ojass]]&lt;br /&gt;
* [[Technozion]]&lt;br /&gt;
* [[Techspardha]] &lt;br /&gt;
* [[Pragyan (festival)|Pragyan]]&lt;br /&gt;
&lt;br /&gt;
    | group2 = Cultural fests&lt;br /&gt;
    | list2  =&lt;br /&gt;
* [[Aarohi]]&lt;br /&gt;
* [[SpringSpree]]&lt;br /&gt;
* [[Festember]]&lt;br /&gt;
* [[Ragam (festival)|Ragam]]&lt;br /&gt;
* [[Sparsh (festival)|Sparsh]]&lt;br /&gt;
* [[Incident (festival)|Incident]] &lt;br /&gt;
* [[Nitrutsav]]&lt;br /&gt;
&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
| group5 = Notable alumni&lt;br /&gt;
| list5 = &lt;br /&gt;
* [[National Institute of Technology, Tiruchirappalli Alumni|NIT Tiruchirappalli]]&lt;br /&gt;
* [[List of National Institutes of Technology alumni|Alumni of other NITs]]&lt;br /&gt;
| group6 = Legal status&lt;br /&gt;
| list6  =&lt;br /&gt;
* [[National Institutes of Technology, Science Education and Research Act, 2007]]&lt;br /&gt;
* [[Institutes of National Importance]]&lt;br /&gt;
* [[Council of NITSER]]&lt;br /&gt;
&lt;br /&gt;
| group7 = Related subjects&lt;br /&gt;
| list7 =&lt;br /&gt;
* [[All India Institutes of Medical Sciences|AIIMSs]]&lt;br /&gt;
* [[Indian Institutes of Information Technology|IIITs]]&lt;br /&gt;
* [[IIEST, Shibpur|IIEST]]&lt;br /&gt;
* [[Indian Institutes of Management|IIMs]]&lt;br /&gt;
* [[Indian Institute of Science|IISc]]&lt;br /&gt;
* [[Indian Institutes of Technology|IITs]]&lt;br /&gt;
* [[Indian Institutes of Science Education and Research|IISERs]]&lt;br /&gt;
* [[National Institutes of Pharmaceutical Education and Research|NIPERs]]&lt;br /&gt;
* [[Schools of Planning and Architecture|SPAs]]&lt;br /&gt;
* [[National Institute of Design|NIDs]]&lt;br /&gt;
&lt;br /&gt;
 | below =&lt;br /&gt;
*&#039;&#039;&#039;{{Icon|Category}} [[:Category:National Institutes of Technology|Category]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;{{Icon|Commons}} [[Commons:Category:National Institutes of Technology|Commons]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
Use &amp;lt;nowiki&amp;gt;{{National Institutes of Technology}}&amp;lt;/nowiki&amp;gt; to place template.&lt;br /&gt;
To be placed on articles related to the National Institutes of Technology. &lt;br /&gt;
&lt;br /&gt;
{{collapsible option}}&lt;br /&gt;
&lt;br /&gt;
[[Category:India universities and colleges navigational boxes]]&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:Infobox_recurring_event&amp;diff=1607</id>
		<title>Template:Infobox recurring event</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:Infobox_recurring_event&amp;diff=1607"/>
		<updated>2024-05-30T02:34:54Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
| above  = {{br separated entries&amp;lt;!--&lt;br /&gt;
  --&amp;gt;|{{#if:{{{name|}}}|{{{name}}}|&amp;lt;includeonly&amp;gt;{{PAGENAMEBASE}}&amp;lt;/includeonly&amp;gt;}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;|{{#if:{{{native_name|}}}|&amp;lt;div style=&amp;quot;display:inline;&amp;quot; class=&amp;quot;nickname&amp;quot; {{#if:{{{native_name_lang|}}}|lang=&amp;quot;{{{native_name_lang}}}&amp;quot;}}&amp;gt;{{{native_name}}}&amp;lt;/div&amp;gt;}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
| image       = {{#invoke:InfoboxImage|InfoboxImage|image={{{logo|}}}|size={{{logo_size|{{{logosize|}}}}}}|sizedefault=frameless|alt={{{logo_alt|}}}}}&lt;br /&gt;
| caption     = {{{logo_caption|}}}&lt;br /&gt;
&lt;br /&gt;
| image2      = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|{{{imagesize|}}}}}}|upright={{{image_upright|1.14}}}|sizedefault=250px|maxsize=325px|alt={{{alt|}}}}}&lt;br /&gt;
| caption2    = {{{caption|}}}&lt;br /&gt;
&lt;br /&gt;
| label1      = Nickname&lt;br /&gt;
| data1       = {{{nickname|}}}&lt;br /&gt;
&lt;br /&gt;
| label2      = Status&lt;br /&gt;
| data2       = {{{status|}}}&lt;br /&gt;
&lt;br /&gt;
| label3      = Genre&lt;br /&gt;
| data3       = {{{genre|}}}&lt;br /&gt;
&lt;br /&gt;
| label4      = {{#if:{{{dates|}}}|Dates|Date(s)}}&lt;br /&gt;
| data4       = {{#if:{{{dates|}}}|{{{dates}}}|{{{date|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label5      = Begins&lt;br /&gt;
| data5       = {{{begins|}}}&lt;br /&gt;
&lt;br /&gt;
| label6      = Ends&lt;br /&gt;
| data6       = {{{ends|}}}&lt;br /&gt;
&lt;br /&gt;
| label7      = Frequency&lt;br /&gt;
| data7       = {{{frequency|}}}&lt;br /&gt;
&lt;br /&gt;
| label8      = Venue&lt;br /&gt;
| data8       = {{{venue|}}}&lt;br /&gt;
&lt;br /&gt;
| label9      = Location(s)&lt;br /&gt;
| data9       = {{{location|}}}&lt;br /&gt;
&lt;br /&gt;
| label10      = Coordinates&lt;br /&gt;
| data10       = {{{coordinates|}}}&lt;br /&gt;
&lt;br /&gt;
| label11     = Country&lt;br /&gt;
| data11      = {{{country|}}}&lt;br /&gt;
&lt;br /&gt;
| label12     = Years active&lt;br /&gt;
| data12      = {{{years_active|}}}&lt;br /&gt;
&lt;br /&gt;
| label13     = {{#if:{{{established|}}}|Established|{{#if:{{{founded|}}}|Founded|Inaugurated}}}}&lt;br /&gt;
| data13      = {{#if:{{{established|}}}|{{{established|}}}|{{#if:{{{founded|}}}|{{{founded|}}}|{{{first|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label14     = {{#if:{{{founders|}}}|Founders|{{#if:{{{founder_title|}}}|{{{founder_title|}}}|Founder}}}}&lt;br /&gt;
| data14      = {{#if:{{{founders|}}}|{{{founders|}}}|{{{founder_name|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label15     = Most recent&lt;br /&gt;
| data15      = {{{last|}}}&lt;br /&gt;
&lt;br /&gt;
| label16     = Previous event&lt;br /&gt;
| data16      = {{{prev|}}}&lt;br /&gt;
&lt;br /&gt;
| label17     = Next event&lt;br /&gt;
| data17      = {{{next|}}}&lt;br /&gt;
&lt;br /&gt;
| label18     = {{#if:{{{participants_title|}}}|{{{participants_title|}}}|Participants}}&lt;br /&gt;
| data18      = {{{participants|}}}&lt;br /&gt;
&lt;br /&gt;
| label19     = Attendance&lt;br /&gt;
| data19      = {{{attendance|}}}&lt;br /&gt;
&lt;br /&gt;
| label20     = Capacity&lt;br /&gt;
| data20      = {{{capacity|}}}&lt;br /&gt;
&lt;br /&gt;
| label21     = Area&lt;br /&gt;
| data21      = {{{area|}}}&lt;br /&gt;
&lt;br /&gt;
| label22     = Budget&lt;br /&gt;
| data22      = {{{budget|}}}&lt;br /&gt;
&lt;br /&gt;
| label23     = {{#if:{{{events|}}}|Major events|Activity}}&lt;br /&gt;
| data23      = {{#if:{{{events|}}}|{{{events|}}}|{{{activity|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label24     = {{#if:{{{leader_title|}}}|{{{leader_title}}}|Leader}}&lt;br /&gt;
| data24      = {{{leader_name|}}}&lt;br /&gt;
&lt;br /&gt;
| label25     = {{#if:{{{patrons|}}}|Patrons|Patron(s)}}&lt;br /&gt;
| data25      = {{#if:{{{patrons|}}}|{{{patrons}}}|{{{patron|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label26     = {{#if:{{{organizer|{{{organized|}}}}}}|Organized|Organised}} by&lt;br /&gt;
| data26      = {{#if:{{{organizer|{{{organized|}}}}}}|{{{organizer|{{{organized}}}}}}|{{{organiser|{{{organised|}}}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label27     = Filing&amp;amp;nbsp;status&lt;br /&gt;
| data27      = {{{filing|}}}&lt;br /&gt;
&lt;br /&gt;
| label28     = People&lt;br /&gt;
| data28      = {{{people|}}}&lt;br /&gt;
&lt;br /&gt;
| label29     = {{#if:{{{members|}}}|Members|Member}}&lt;br /&gt;
| data29      = {{#if:{{{members|}}}|{{{members|}}}|{{{member|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label30     = {{#if:{{{sponsors|}}}|Sponsors|Sponsor}}&lt;br /&gt;
| data30      = {{#if:{{{sponsors|}}}|{{{sponsors|}}}|{{{sponsor|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label31     = Prize money&lt;br /&gt;
| data31      = {{{prize_money|}}}&lt;br /&gt;
&lt;br /&gt;
| label32     = {{{free_label}}}&lt;br /&gt;
| data32      = {{#if:{{{free_label|}}}|{{{free_text|}}}}}&lt;br /&gt;
&lt;br /&gt;
| label33     = Website&lt;br /&gt;
| data33      = {{#if:{{{homepage|{{{URL|}}}}}}|{{{homepage|{{{URL}}}}}}|{{{website|}}}}}&lt;br /&gt;
&lt;br /&gt;
| data34  = {{#if:{{{current|}}}{{{current_season|}}}|[[File:Current event clock.svg|15px|alt=|link=]] &#039;&#039;{{#if:{{{current|}}}|{{{current}}}|[[{{{current_season}}}]]}}&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
| below       = {{{footnotes|}}}&lt;br /&gt;
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox recurring event with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Infobox recurring event]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y| activity | alt | area | attendance | begins | budget | capacity | caption | coordinates | country | current | current_season | date | dates | ends | established | events | filing | first | footnotes | founded | founder_name | founder_title | founders | free_label | free_text | frequency | genre | homepage | image | image_size | imagesize | last | leader_name | leader_title | location | logo | logo_alt | logo_caption | logo_size | logosize | member | members | name | native_name | native_name_lang | next | nickname | organised | organiser | organized | organizer | participants | participants_title | patron | patrons | people | prev | prize_money | sponsor | sponsors | status | URL | venue | website | years_active }}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:Use_Indian_English&amp;diff=1605</id>
		<title>Template:Use Indian English</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:Use_Indian_English&amp;diff=1605"/>
		<updated>2024-05-30T02:34:50Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{DMCA|Use Indian English|from|{{{date|}}}|All Wikipedia articles written in Indian English}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:Url&amp;diff=1603</id>
		<title>Template:Url</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:Url&amp;diff=1603"/>
		<updated>2024-05-30T02:34:50Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:URL]]&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:More_citations_needed&amp;diff=1601</id>
		<title>Template:More citations needed</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:More_citations_needed&amp;diff=1601"/>
		<updated>2024-05-30T02:34:50Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
{{Ambox&lt;br /&gt;
| name  = {{{name|More citations needed}}}&lt;br /&gt;
| small = {{#if:{{{small|}}}|left}}&lt;br /&gt;
| type  = content&lt;br /&gt;
| class = ambox-Refimprove&lt;br /&gt;
| image = [[File:Question book-new.svg|50x40px|alt=]]&lt;br /&gt;
| issue = This {{#if:{{{1|}}}|{{{1}}}|article}} &#039;&#039;&#039;needs additional citations for [[Wikipedia:Verifiability|verification]]&#039;&#039;&#039;.&lt;br /&gt;
| fix   = Please help [[Special:Edit/{{FULLPAGENAME}}|improve this article]] by [[Help:Referencing for beginners|adding citations to reliable sources]]{{#if:{{{1|}}}|{{sp}}in this {{{1}}}}}. Unsourced material may be challenged and removed.{{#if:{{{find2|{{{unquoted|}}}}}}| &amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;{{find sources mainspace|{{#if:{{{find|}}}|{{{find}}}|.}}|{{{find2|{{{unquoted|}}}}}}}}&amp;lt;/small&amp;gt; |{{#if:{{{find|}}}|{{#ifeq: {{{find|}}} |none ||&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;{{find sources mainspace|{{{find}}} }}&amp;lt;/small&amp;gt;}}|&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;{{find sources mainspace}}&amp;lt;/small&amp;gt;}} }}&lt;br /&gt;
| removalnotice = yes&lt;br /&gt;
| talk  = {{{talk|}}}&lt;br /&gt;
| date  = {{{date|}}}&lt;br /&gt;
| cat   = Articles needing additional references&lt;br /&gt;
| all   = All articles needing additional references&lt;br /&gt;
}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- Please add categories to the /doc subpage, thanks --&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:URL&amp;diff=1599</id>
		<title>Module:URL</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:URL&amp;diff=1599"/>
		<updated>2024-05-30T02:34:48Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- This module implements {{URL}}&lt;br /&gt;
--&lt;br /&gt;
-- See unit tests at [[Module:URL/testcases]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
local function safeUri(s)&lt;br /&gt;
	local success, uri = pcall(function()&lt;br /&gt;
		return mw.uri.new(s)&lt;br /&gt;
	end)&lt;br /&gt;
	if success then&lt;br /&gt;
		return uri&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractUrl(args)&lt;br /&gt;
	for name, val in pairs(args) do&lt;br /&gt;
		if name ~= 2 and name ~= &amp;quot;msg&amp;quot; then&lt;br /&gt;
			local url = name .. &amp;quot;=&amp;quot; .. val;&lt;br /&gt;
			url = mw.ustring.gsub(url, &#039;^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])&#039;, &#039;http%1://%3&#039;)&lt;br /&gt;
			local uri = safeUri(url);&lt;br /&gt;
			if uri and uri.host then&lt;br /&gt;
				return url&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._url(url, text, msg)&lt;br /&gt;
	url = mw.text.trim(url or &#039;&#039;)&lt;br /&gt;
	text = mw.text.trim(text or &#039;&#039;)&lt;br /&gt;
	local nomsg = (msg or &#039;&#039;):sub(1,1):lower() == &amp;quot;n&amp;quot; or msg == &#039;false&#039; -- boolean: true if msg is &amp;quot;false&amp;quot; or starts with n or N&lt;br /&gt;
&lt;br /&gt;
	if url == &#039;&#039; then&lt;br /&gt;
		if text == &#039;&#039; then&lt;br /&gt;
			if nomsg then&lt;br /&gt;
				return nil&lt;br /&gt;
			else&lt;br /&gt;
				return mw.getCurrentFrame():expandTemplate{ title = &#039;tlx&#039;, args = { &#039;URL&#039;, &amp;quot;&#039;&#039;example.com&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;optional display text&#039;&#039;&amp;quot; } }&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- If the URL contains any unencoded spaces, encode them, because MediaWiki will otherwise interpret a space as the end of the URL.&lt;br /&gt;
	url = mw.ustring.gsub(url, &#039;%s&#039;, function(s) return mw.uri.encode(s, &#039;PATH&#039;) end)&lt;br /&gt;
&lt;br /&gt;
	-- If there is an empty query string or fragment id, remove it as it will cause mw.uri.new to throw an error&lt;br /&gt;
	url = mw.ustring.gsub(url, &#039;#$&#039;, &#039;&#039;)&lt;br /&gt;
	url = mw.ustring.gsub(url, &#039;%?$&#039;, &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
	-- If it&#039;s an HTTP[S] URL without the double slash, fix it.&lt;br /&gt;
	url = mw.ustring.gsub(url, &#039;^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])&#039;, &#039;http%1://%3&#039;)&lt;br /&gt;
&lt;br /&gt;
	local uri = safeUri(url)&lt;br /&gt;
&lt;br /&gt;
	-- Handle URL&#039;s without a protocol and URL&#039;s that are protocol-relative, &lt;br /&gt;
	-- e.g. www.example.com/foo or www.example.com:8080/foo, and //www.example.com/foo&lt;br /&gt;
	if uri and (not uri.protocol or (uri.protocol and not uri.host)) and url:sub(1, 2) ~= &#039;//&#039; then&lt;br /&gt;
		url = &#039;http://&#039; .. url&lt;br /&gt;
		uri = safeUri(url)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if text == &#039;&#039; then&lt;br /&gt;
		if uri then&lt;br /&gt;
			if uri.path == &#039;/&#039; then uri.path = &#039;&#039; end&lt;br /&gt;
&lt;br /&gt;
			local port = &#039;&#039;&lt;br /&gt;
			if uri.port then port = &#039;:&#039; .. uri.port end&lt;br /&gt;
&lt;br /&gt;
			text = mw.ustring.lower(uri.host or &#039;&#039;) .. port .. (uri.relativePath or &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
			-- Add &amp;lt;wbr&amp;gt; before _/.-# sequences&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(/+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)      -- This entry MUST be the first. &amp;quot;&amp;lt;wbr/&amp;gt;&amp;quot; has a &amp;quot;/&amp;quot; in it, you know.&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(%.+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
			-- text = mw.ustring.gsub(text,&amp;quot;(%-+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;) 	-- DISABLED for now&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(%#+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(_+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
		else -- URL is badly-formed, so just display whatever was passed in&lt;br /&gt;
			text = url&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.format(&#039;&amp;lt;span class=&amp;quot;url&amp;quot;&amp;gt;[%s %s]&amp;lt;/span&amp;gt;&#039;, url, text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The main entry point for calling from Template:URL.&lt;br /&gt;
--]]&lt;br /&gt;
function p.url(frame)&lt;br /&gt;
	local templateArgs = frame.args&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local url = templateArgs[1] or parentArgs[1]&lt;br /&gt;
	local text = templateArgs[2] or parentArgs[2] or &#039;&#039;&lt;br /&gt;
	local msg = templateArgs.msg or parentArgs.msg or &#039;&#039;&lt;br /&gt;
	url = url or extractUrl(templateArgs) or extractUrl(parentArgs) or &#039;&#039;&lt;br /&gt;
	return p._url(url, text, msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The entry point for calling from the forked Template:URL2.&lt;br /&gt;
This function returns no message by default.&lt;br /&gt;
It strips out wiki-link markup, html tags, and everything after a space.&lt;br /&gt;
--]]&lt;br /&gt;
function p.url2(frame)&lt;br /&gt;
	local templateArgs = frame.args&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local url = templateArgs[1] or parentArgs[1]&lt;br /&gt;
	local text = templateArgs[2] or parentArgs[2] or &#039;&#039;&lt;br /&gt;
	-- default to no message&lt;br /&gt;
	local msg = templateArgs.msg or parentArgs.msg or &#039;no&#039;&lt;br /&gt;
	url = url or extractUrl(templateArgs) or extractUrl(parentArgs) or &#039;&#039;&lt;br /&gt;
	-- if the url came from a Wikidata call, it might have a pen icon appended&lt;br /&gt;
	-- we want to keep that and add it back at the end.&lt;br /&gt;
	local u1, penicon = mw.ustring.match( url, &amp;quot;(.*)(&amp;amp;nbsp;&amp;lt;span class=&#039;penicon.*)&amp;quot; )&lt;br /&gt;
	if penicon then url = u1 end&lt;br /&gt;
	-- strip out html tags and [ ] from url&lt;br /&gt;
	url = (url or &#039;&#039;):gsub(&amp;quot;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;[%[%]]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	-- truncate anything after a space&lt;br /&gt;
	url = url:gsub(&amp;quot;%%20&amp;quot;, &amp;quot; &amp;quot;):gsub(&amp;quot; .*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	return (p._url(url, text, msg) or &amp;quot;&amp;quot;) .. (penicon or &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Official_website&amp;diff=1597</id>
		<title>Module:Official website</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Official_website&amp;diff=1597"/>
		<updated>2024-05-30T02:34:47Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local makeUrl = require(&#039;Module:URL&#039;)._url&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Wrapper for pcall which returns nil on failure.&lt;br /&gt;
local function quickPcall(func)&lt;br /&gt;
	local success, result = pcall(func)&lt;br /&gt;
	if success then&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Gets the rank for a Wikidata property table. Returns 1, 0 or -1, in&lt;br /&gt;
-- order of rank.&lt;br /&gt;
local function getRank(prop)&lt;br /&gt;
	local rank = prop.rank&lt;br /&gt;
	if rank == &#039;preferred&#039; then&lt;br /&gt;
		return 1&lt;br /&gt;
	elseif rank == &#039;normal&#039; then&lt;br /&gt;
		return 0&lt;br /&gt;
	elseif rank == &#039;deprecated&#039; then&lt;br /&gt;
		return -1&lt;br /&gt;
	else&lt;br /&gt;
		-- No rank or undefined rank is treated as &amp;quot;normal&amp;quot;.&lt;br /&gt;
		return 0&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Finds whether a Wikidata property is qualified as being in English.&lt;br /&gt;
local function isEnglish(prop)&lt;br /&gt;
	local ret = quickPcall(function ()&lt;br /&gt;
		for i, lang in ipairs(prop.qualifiers.P407) do&lt;br /&gt;
			if lang.datavalue.value[&#039;numeric-id&#039;] == 1860 then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return false&lt;br /&gt;
	end)&lt;br /&gt;
	return ret == true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Fetches the official website URL from Wikidata.&lt;br /&gt;
local fetchWikidataUrl&lt;br /&gt;
fetchWikidataUrl = function()&lt;br /&gt;
	-- Get objects for all official sites on Wikidata.&lt;br /&gt;
	local websites = quickPcall(function ()&lt;br /&gt;
		return mw.wikibase.getAllStatements(mw.wikibase.getEntityIdForCurrentPage(), &#039;P856&#039;)&lt;br /&gt;
	end)&lt;br /&gt;
&lt;br /&gt;
	-- Clone the objects in case other code needs them in their original order.&lt;br /&gt;
	websites = websites and mw.clone(websites) or {}&lt;br /&gt;
&lt;br /&gt;
	-- Add the table index to the objects in case it is needed in the sort.&lt;br /&gt;
	for i, website in ipairs(websites) do&lt;br /&gt;
		website._index = i&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Sort the websites, first by highest rank, and then by websites in the&lt;br /&gt;
	-- English language, then by the website&#039;s original position in the&lt;br /&gt;
	-- property list. When we are done, get the URL from the highest-sorted&lt;br /&gt;
	-- object.&lt;br /&gt;
	table.sort(websites, function(ws1, ws2)&lt;br /&gt;
		local r1 = getRank(ws1)&lt;br /&gt;
		local r2 = getRank(ws2)&lt;br /&gt;
		if r1 ~= r2 then&lt;br /&gt;
			return r1 &amp;gt; r2&lt;br /&gt;
		end&lt;br /&gt;
		local e1 = isEnglish(ws1)&lt;br /&gt;
		local e2 = isEnglish(ws2)&lt;br /&gt;
		if e1 ~= e2 then&lt;br /&gt;
			return e1&lt;br /&gt;
		end&lt;br /&gt;
		return ws1._index &amp;lt; ws2._index&lt;br /&gt;
	end)&lt;br /&gt;
	local url = quickPcall(function ()&lt;br /&gt;
		return websites[1].mainsnak.datavalue.value&lt;br /&gt;
	end)&lt;br /&gt;
&lt;br /&gt;
	-- Cache the result so that we only do the heavy lifting once per #invoke.&lt;br /&gt;
	fetchWikidataUrl = function ()&lt;br /&gt;
		return url&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Render the URL link, plus other visible output.&lt;br /&gt;
local function renderUrl(options)&lt;br /&gt;
	if not options.url and not options.wikidataurl then&lt;br /&gt;
		local qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
		local result = &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;&#039; ..&lt;br /&gt;
			&#039;No URL found. Please specify a URL here or add one to Wikidata.&#039; ..&lt;br /&gt;
			&#039;&amp;lt;/strong&amp;gt;&#039;&lt;br /&gt;
		if qid then&lt;br /&gt;
			result = result.. &#039; [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata |link=https://www.wikidata.org/wiki/&#039; .. qid .. &#039;#P856|Edit this at Wikidata]]&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	ret[#ret + 1] = string.format(&lt;br /&gt;
		&#039;&amp;lt;span class=&amp;quot;official-website&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&#039;,&lt;br /&gt;
		makeUrl(options.url or options.wikidataurl, options.display)&lt;br /&gt;
	)&lt;br /&gt;
	if options.wikidataurl and not options.url then&lt;br /&gt;
		local qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
		if qid then&lt;br /&gt;
			ret[#ret + 1] = &#039;[[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata |link=https://www.wikidata.org/wiki/&#039; .. qid .. &#039;#P856|Edit this at Wikidata]]&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret, &#039; &#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Render the tracking category.&lt;br /&gt;
local function renderTrackingCategory(url, wikidataurl)&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace ~= 0 then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local category&lt;br /&gt;
	if not url and not wikidataurl then&lt;br /&gt;
		category = &#039;Official website missing URL&#039;&lt;br /&gt;
	elseif not url and wikidataurl then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	elseif url and wikidataurl then&lt;br /&gt;
		if url:gsub(&#039;/%s*$&#039;, &#039;&#039;) ~= wikidataurl:gsub(&#039;/%s*$&#039;, &#039;&#039;) then&lt;br /&gt;
			category = &#039;Official website different in Wikidata and Wikipedia&#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		category = &#039;Official website not in Wikidata&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return category and string.format(&#039;[[Category:%s]]&#039;, category) or &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local url = args[1] or args.URL or args.url&lt;br /&gt;
	local wikidataurl = fetchWikidataUrl()&lt;br /&gt;
	local formattedUrl = renderUrl{&lt;br /&gt;
		url = url,&lt;br /&gt;
		wikidataurl = wikidataurl,&lt;br /&gt;
		display = args[2] or args.name or &#039;Official website&#039;&lt;br /&gt;
	}&lt;br /&gt;
	return formattedUrl .. renderTrackingCategory(url, wikidataurl)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {&lt;br /&gt;
		wrappers = &#039;Template:Official website&#039;&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:URL&amp;diff=1595</id>
		<title>Template:URL</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:URL&amp;diff=1595"/>
		<updated>2024-05-30T02:34:47Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:URL|url}}&amp;lt;/includeonly&amp;gt;{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using URL template with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:URL]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y | 1 | 2 }}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:Official_website&amp;diff=1593</id>
		<title>Template:Official website</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:Official_website&amp;diff=1593"/>
		<updated>2024-05-30T02:34:47Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Official website|main}}{{#invoke:Check for unknown parameters|check|showblankpositional=1|unknown={{main other|1=[[Category:Pages using Official website with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Official website]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|1|2|URL|url|name}}&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:Dead_link&amp;diff=1591</id>
		<title>Template:Dead link</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:Dead_link&amp;diff=1591"/>
		<updated>2024-05-30T02:34:47Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
&amp;lt;!--{{Dead link}} begin--&amp;gt;{{Fix&lt;br /&gt;
| special  = &amp;lt;sup class=&amp;quot;noprint Inline-Template&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;{{#if: {{{url|}}}|[https://web.archive.org/web/*/{{{url|}}} &amp;lt;span title=&amp;quot;{{{title|}}}{{#if:{{{date|}}}|&amp;amp;nbsp;tagged {{{date}}}}}&amp;quot;&amp;gt;dead link&amp;lt;/span&amp;gt;]|[[Wikipedia:Link rot|&amp;lt;span title=&amp;quot;{{{title|}}}{{#if:{{{date|}}}|&amp;amp;nbsp;Dead link tagged {{{date}}}}}&amp;quot;&amp;gt;{{#if:{{{fix-attempted|}}}|permanent dead link|dead link}}&amp;lt;/span&amp;gt;]]}}&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/span&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| date     = {{{date|}}}&lt;br /&gt;
| cat      = {{main other|[[Category:All articles with dead external links]]}}&lt;br /&gt;
| cat-date = Category:Articles with dead external links&lt;br /&gt;
| cat2     = {{main other|{{#if:{{{fix-attempted|}}}|[[Category:Articles with permanently dead external links]]}}}}&lt;br /&gt;
}}&amp;lt;!--{{Dead link}} end--&amp;gt;&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE; INTERWIKIS GO TO WIKIDATA, THANK YOU! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:About&amp;diff=1589</id>
		<title>Module:About</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:About&amp;diff=1589"/>
		<updated>2024-05-30T02:34:46Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local mArguments --initialize lazily&lt;br /&gt;
local mHatnote = require(&#039;Module:Hatnote&#039;)&lt;br /&gt;
local mHatList = require(&#039;Module:Hatnote list&#039;)&lt;br /&gt;
local libraryUtil = require(&#039;libraryUtil&#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.about (frame)&lt;br /&gt;
	-- A passthrough that gets args from the frame and all&lt;br /&gt;
	mArguments = require(&#039;Module:Arguments&#039;)&lt;br /&gt;
	args = mArguments.getArgs(frame)&lt;br /&gt;
	return p._about(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p._about (args, options)&lt;br /&gt;
	-- Produces &amp;quot;about&amp;quot; hatnote.&lt;br /&gt;
&lt;br /&gt;
	-- Type checks and defaults&lt;br /&gt;
	checkType(&#039;_about&#039;, 1, args, &#039;table&#039;, true)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	checkType(&#039;_about&#039;, 2, options, &#039;table&#039;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	local defaultOptions = {&lt;br /&gt;
		aboutForm = &#039;This %s is about %s. &#039;,&lt;br /&gt;
		PageType = require(&#039;Module:Pagetype&#039;).main(),&lt;br /&gt;
		otherText = nil, --included for complete list&lt;br /&gt;
		sectionString = &#039;section&#039;&lt;br /&gt;
	}&lt;br /&gt;
	for k, v in pairs(defaultOptions) do&lt;br /&gt;
		if options[k] == nil then options[k] = v end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set initial &amp;quot;about&amp;quot; string&lt;br /&gt;
	local pageType = (args.section and options.sectionString) or options.PageType&lt;br /&gt;
	local about = &#039;&#039;&lt;br /&gt;
	if args[1] then&lt;br /&gt;
		about = string.format(options.aboutForm, pageType, args[1])&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Allow passing through certain options&lt;br /&gt;
	local fsOptions = {&lt;br /&gt;
		otherText = options.otherText,&lt;br /&gt;
		extratext = args.text&lt;br /&gt;
	}&lt;br /&gt;
	local hnOptions = {&lt;br /&gt;
		selfref = args.selfref&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- Set for-see list&lt;br /&gt;
	local forSee = mHatList._forSee(args, 2, fsOptions)&lt;br /&gt;
&lt;br /&gt;
	-- Concatenate and return&lt;br /&gt;
	return mHatnote._hatnote(about .. forSee, hnOptions)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:About&amp;diff=1587</id>
		<title>Template:About</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:About&amp;diff=1587"/>
		<updated>2024-05-30T02:34:46Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:about|about}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbox/styles.css&amp;diff=1585</id>
		<title>Module:Navbox/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbox/styles.css&amp;diff=1585"/>
		<updated>2024-05-30T02:34:46Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=y}} */&lt;br /&gt;
.navbox {&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
	border: 1px solid #a2a9b1;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
	margin: 1em auto 0; /* Prevent preceding content from clinging to navboxes */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox .navbox {&lt;br /&gt;
	margin-top: 0; /* No top margin for nested navboxes */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox + .navbox, /* TODO: remove first line after transclusions have updated */&lt;br /&gt;
.navbox + .navbox-styles + .navbox {&lt;br /&gt;
	margin-top: -1px; /* Single pixel border between adjacent navboxes */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-inner,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-group,&lt;br /&gt;
.navbox-title,&lt;br /&gt;
.navbox-abovebelow {&lt;br /&gt;
	padding: 0.25em 1em;&lt;br /&gt;
	line-height: 1.5em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-group {&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
	background-color: #fdfdfd;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-list {&lt;br /&gt;
	line-height: 1.5em;&lt;br /&gt;
	border-color: #fdfdfd; /* Must match background color */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-list-with-group {&lt;br /&gt;
	text-align: left;&lt;br /&gt;
	border-left-width: 2px;&lt;br /&gt;
	border-left-style: solid;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* cell spacing for navbox cells */&lt;br /&gt;
/* Borders above 2nd, 3rd, etc. rows */&lt;br /&gt;
/* TODO: figure out how to replace tr as structure;&lt;br /&gt;
 * with div structure it should be just a matter of first-child */&lt;br /&gt;
tr + tr &amp;gt; .navbox-abovebelow,&lt;br /&gt;
tr + tr &amp;gt; .navbox-group,&lt;br /&gt;
tr + tr &amp;gt; .navbox-image,&lt;br /&gt;
tr + tr &amp;gt; .navbox-list {&lt;br /&gt;
	border-top: 2px solid #fdfdfd; /* Must match background color */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-title {&lt;br /&gt;
	background-color: #ccf; /* Level 1 color */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-abovebelow,&lt;br /&gt;
.navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-title {&lt;br /&gt;
	background-color: #ddf; /* Level 2 color */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-subgroup .navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-abovebelow {&lt;br /&gt;
	background-color: #e6e6ff; /* Level 3 color */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-even {&lt;br /&gt;
	background-color: #f7f7f7;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-odd {&lt;br /&gt;
	background-color: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* TODO: figure out how to remove reliance on td as structure */&lt;br /&gt;
.navbox .hlist td dl,&lt;br /&gt;
.navbox .hlist td ol,&lt;br /&gt;
.navbox .hlist td ul,&lt;br /&gt;
.navbox td.hlist dl,&lt;br /&gt;
.navbox td.hlist ol,&lt;br /&gt;
.navbox td.hlist ul {&lt;br /&gt;
	padding: 0.125em 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox .navbar {&lt;br /&gt;
	display: block;&lt;br /&gt;
	font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-title .navbar {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	float: left;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	text-align: left;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin-right: 0.5em;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbox/configuration&amp;diff=1583</id>
		<title>Module:Navbox/configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbox/configuration&amp;diff=1583"/>
		<updated>2024-05-30T02:34:46Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
	aria_label = &#039;Navbox&#039;,&lt;br /&gt;
	nowrap_item = &#039;%s&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&#039;,&lt;br /&gt;
	templatestyles = mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = &#039;templatestyles&#039;, args = { src = &#039;Module:Navbox/styles.css&#039; }&lt;br /&gt;
	},&lt;br /&gt;
	hlist_templatestyles = &#039;Hlist/styles.css&#039;,&lt;br /&gt;
	plainlist_templatestyles = &#039;Plainlist/styles.css&#039;,&lt;br /&gt;
	-- do not localize marker table&lt;br /&gt;
	marker = {&lt;br /&gt;
		oddeven = &#039;\127_ODDEVEN_\127&#039;,&lt;br /&gt;
		restart = &#039;\127_ODDEVEN0_\127&#039;,&lt;br /&gt;
		regex = &#039;\127_ODDEVEN(%d?)_\127&#039;&lt;br /&gt;
	},&lt;br /&gt;
	category = {&lt;br /&gt;
		orphan = &#039;[[Category:Navbox orphans]]&#039;,&lt;br /&gt;
		horizontal_lists = &#039;Navigational boxes without horizontal lists&#039;,&lt;br /&gt;
		background_colors = &#039;Navboxes using background colours&#039;,&lt;br /&gt;
		illegible = &#039;Potentially illegible navboxes&#039;,&lt;br /&gt;
		borders = &#039;Navboxes using borders&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	keyword = {&lt;br /&gt;
		border_subgroup = &#039;subgroup&#039;,&lt;br /&gt;
		border_child = &#039;child&#039;,&lt;br /&gt;
		border_none = &#039;none&#039;,&lt;br /&gt;
		evenodd_swap = &#039;swap&#039;,&lt;br /&gt;
		navbar_off = &#039;off&#039;,&lt;br /&gt;
		navbar_plain = &#039;plain&#039;,&lt;br /&gt;
		nocat_false = &#039;false&#039;,&lt;br /&gt;
		nowrapitems_yes = &#039;yes&#039;,&lt;br /&gt;
		orphan_yes = &#039;yes&#039;,&lt;br /&gt;
		state_collapsed = &#039;collapsed&#039;,&lt;br /&gt;
		state_off = &#039;off&#039;,&lt;br /&gt;
		state_plain = &#039;plain&#039;,&lt;br /&gt;
		subpage_doc = &#039;doc&#039;,&lt;br /&gt;
		subpage_sandbox = &#039;sandbox&#039;,&lt;br /&gt;
		subpage_testcases = &#039;testcases&#039;,&lt;br /&gt;
		tracking_no = &#039;no&#039;&lt;br /&gt;
	},&lt;br /&gt;
	class = {&lt;br /&gt;
		autocollapse = &#039;autocollapse&#039;,&lt;br /&gt;
		collapsible = &#039;mw-collapsible&#039;,&lt;br /&gt;
		collapsed = &#039;mw-collapsed&#039;,&lt;br /&gt;
		-- Warning&lt;br /&gt;
		navbox = &#039;navbox&#039;, -- WMF currently hides &#039;navbox&#039; from mobile,&lt;br /&gt;
		-- so you probably shouldn&#039;t change the navbox class.&lt;br /&gt;
		navbox_abovebelow = &#039;navbox-abovebelow&#039;,&lt;br /&gt;
		navbox_group = &#039;navbox-group&#039;,&lt;br /&gt;
		navbox_image = &#039;navbox-image&#039;,&lt;br /&gt;
		navbox_inner = &#039;navbox-inner&#039;,&lt;br /&gt;
		navbox_list = &#039;navbox-list&#039;,&lt;br /&gt;
		navbox_list_with_group = &#039;navbox-list-with-group&#039;,&lt;br /&gt;
		navbox_part = &#039;navbox-&#039;, -- do not l10n&lt;br /&gt;
		navbox_styles = &#039;navbox-styles&#039;,&lt;br /&gt;
		navbox_subgroup = &#039;navbox-subgroup&#039;,&lt;br /&gt;
		navbox_title = &#039;navbox-title&#039;, -- l10n only if you change pattern.navbox_title below&lt;br /&gt;
		navbox_odd_part = &#039;odd&#039;, -- do not l10n&lt;br /&gt;
		navbox_even_part = &#039;even&#039;, -- do not l10n&lt;br /&gt;
		nomobile = &#039;nomobile&#039;,&lt;br /&gt;
		nowraplinks = &#039;nowraplinks&#039;,&lt;br /&gt;
		noviewer = &#039;noviewer&#039; -- used to remove images from MediaViewer&lt;br /&gt;
	},&lt;br /&gt;
	pattern = {&lt;br /&gt;
		listnum = &#039;^list(%d+)$&#039;,&lt;br /&gt;
		class = &#039;class&#039;,&lt;br /&gt;
		sandbox = &#039;/sandbox$&#039;,&lt;br /&gt;
		navbox = &#039;Template:Navbox&#039;,&lt;br /&gt;
		nowrap = &#039;^&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&#039;,&lt;br /&gt;
		style = &#039;style$&#039;,&lt;br /&gt;
		navbox_title = &#039;&amp;lt;th[^&amp;gt;]*&amp;quot;navbox%-title&amp;quot;&#039;,&lt;br /&gt;
		hlist = &#039;hlist&#039;,&lt;br /&gt;
		plainlist = &#039;plainlist&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	arg = {&lt;br /&gt;
		above = &#039;above&#039;,&lt;br /&gt;
		aboveclass = &#039;aboveclass&#039;,&lt;br /&gt;
		abovestyle = &#039;abovestyle&#039;,&lt;br /&gt;
		basestyle = &#039;basestyle&#039;,&lt;br /&gt;
		bodyclass = &#039;bodyclass&#039;,&lt;br /&gt;
		bodystyle = &#039;bodystyle&#039;,&lt;br /&gt;
		border = &#039;border&#039;,&lt;br /&gt;
		below = &#039;below&#039;,&lt;br /&gt;
		belowclass = &#039;belowclass&#039;,&lt;br /&gt;
		belowstyle = &#039;belowstyle&#039;,&lt;br /&gt;
		evenodd = &#039;evenodd&#039;,&lt;br /&gt;
		evenstyle = &#039;evenstyle&#039;,&lt;br /&gt;
		group1 = &#039;group1&#039;,&lt;br /&gt;
		group2 = &#039;group2&#039;,&lt;br /&gt;
		group_and_num = &#039;group%d&#039;,&lt;br /&gt;
		groupstyle_and_num = &#039;group%dstyle&#039;,&lt;br /&gt;
		groupclass = &#039;groupclass&#039;,&lt;br /&gt;
		groupstyle = &#039;groupstyle&#039;,&lt;br /&gt;
		groupwidth = &#039;groupwidth&#039;,&lt;br /&gt;
		innerstyle = &#039;innerstyle&#039;,&lt;br /&gt;
		image = &#039;image&#039;,&lt;br /&gt;
		imageclass = &#039;imageclass&#039;,&lt;br /&gt;
		imageleft = &#039;imageleft&#039;,&lt;br /&gt;
		imageleftstyle = &#039;imageleftstyle&#039;,&lt;br /&gt;
		imagesetyle = &#039;imagestyle&#039;,&lt;br /&gt;
		list_and_num = &#039;list%d&#039;,&lt;br /&gt;
		listclass_and_num = &#039;list%dclass&#039;,&lt;br /&gt;
		liststyle_and_num = &#039;list%dstyle&#039;,&lt;br /&gt;
		list1padding = &#039;list1padding&#039;,&lt;br /&gt;
		listclass = &#039;listclass&#039;,&lt;br /&gt;
		listpadding = &#039;listpadding&#039;,&lt;br /&gt;
		liststyle = &#039;liststyle&#039;,&lt;br /&gt;
		name = &#039;name&#039;,&lt;br /&gt;
		navbar = &#039;navbar&#039;,&lt;br /&gt;
		navboxclass = &#039;navboxclass&#039;,&lt;br /&gt;
		nocat = &#039;nocat&#039;,&lt;br /&gt;
		nowrapitems = &#039;nowrapitems&#039;,&lt;br /&gt;
		oddstyle = &#039;oddstyle&#039;,&lt;br /&gt;
		orphan = &#039;orphan&#039;,&lt;br /&gt;
		state = &#039;state&#039;,&lt;br /&gt;
		style = &#039;style&#039;,&lt;br /&gt;
		templatestyles = &#039;templatestyles&#039;,&lt;br /&gt;
		child_templatestyles = &#039;child templatestyles&#039;,&lt;br /&gt;
		title = &#039;title&#039;,&lt;br /&gt;
		titleclass = &#039;titleclass&#039;,&lt;br /&gt;
		titlestyle = &#039;titlestyle&#039;,&lt;br /&gt;
		tracking = &#039;tracking&#039;&lt;br /&gt;
	},&lt;br /&gt;
	-- names of navbar arguments&lt;br /&gt;
	navbar = {&lt;br /&gt;
		name = 1,&lt;br /&gt;
		fontstyle = &#039;fontstyle&#039;,&lt;br /&gt;
		mini = &#039;mini&#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbox&amp;diff=1581</id>
		<title>Module:Navbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbox&amp;diff=1581"/>
		<updated>2024-05-30T02:34:46Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&#039;strict&#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
local navbar = require(&#039;Module:Navbar&#039;)._navbar&lt;br /&gt;
local cfg = mw.loadData(&#039;Module:Navbox/configuration&#039;)&lt;br /&gt;
local getArgs -- lazily initialized&lt;br /&gt;
local args&lt;br /&gt;
local format = string.format&lt;br /&gt;
&lt;br /&gt;
local function striped(wikitext, border)&lt;br /&gt;
	-- Return wikitext with markers replaced for odd/even striping.&lt;br /&gt;
	-- Child (subgroup) navboxes are flagged with a category that is removed&lt;br /&gt;
	-- by parent navboxes. The result is that the category shows all pages&lt;br /&gt;
	-- where a child navbox is not contained in a parent navbox.&lt;br /&gt;
	local orphanCat = cfg.category.orphan&lt;br /&gt;
	if border == cfg.keyword.border_subgroup and args[cfg.arg.orphan] ~= cfg.keyword.orphan_yes then&lt;br /&gt;
		-- No change; striping occurs in outermost navbox.&lt;br /&gt;
		return wikitext .. orphanCat&lt;br /&gt;
	end&lt;br /&gt;
	local first, second = cfg.class.navbox_odd_part, cfg.class.navbox_even_part&lt;br /&gt;
	if args[cfg.arg.evenodd] then&lt;br /&gt;
		if args[cfg.arg.evenodd] == cfg.keyword.evenodd_swap then&lt;br /&gt;
			first, second = second, first&lt;br /&gt;
		else&lt;br /&gt;
			first = args[cfg.arg.evenodd]&lt;br /&gt;
			second = first&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local changer&lt;br /&gt;
	if first == second then&lt;br /&gt;
		changer = first&lt;br /&gt;
	else&lt;br /&gt;
		local index = 0&lt;br /&gt;
		changer = function (code)&lt;br /&gt;
			if code == &#039;0&#039; then&lt;br /&gt;
				-- Current occurrence is for a group before a nested table.&lt;br /&gt;
				-- Set it to first as a valid although pointless class.&lt;br /&gt;
				-- The next occurrence will be the first row after a title&lt;br /&gt;
				-- in a subgroup and will also be first.&lt;br /&gt;
				index = 0&lt;br /&gt;
				return first&lt;br /&gt;
			end&lt;br /&gt;
			index = index + 1&lt;br /&gt;
			return index % 2 == 1 and first or second&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local regex = orphanCat:gsub(&#039;([%[%]])&#039;, &#039;%%%1&#039;)&lt;br /&gt;
	return (wikitext:gsub(regex, &#039;&#039;):gsub(cfg.marker.regex, changer)) -- () omits gsub count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function processItem(item, nowrapitems)&lt;br /&gt;
	if item:sub(1, 2) == &#039;{|&#039; then&lt;br /&gt;
		-- Applying nowrap to lines in a table does not make sense.&lt;br /&gt;
		-- Add newlines to compensate for trim of x in |parm=x in a template.&lt;br /&gt;
		return &#039;\n&#039; .. item ..&#039;\n&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if nowrapitems == cfg.keyword.nowrapitems_yes then&lt;br /&gt;
		local lines = {}&lt;br /&gt;
		for line in (item .. &#039;\n&#039;):gmatch(&#039;([^\n]*)\n&#039;) do&lt;br /&gt;
			local prefix, content = line:match(&#039;^([*:;#]+)%s*(.*)&#039;)&lt;br /&gt;
			if prefix and not content:match(cfg.pattern.nowrap) then&lt;br /&gt;
				line = format(cfg.nowrap_item, prefix, content)&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(lines, line)&lt;br /&gt;
		end&lt;br /&gt;
		item = table.concat(lines, &#039;\n&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if item:match(&#039;^[*:;#]&#039;) then&lt;br /&gt;
		return &#039;\n&#039; .. item ..&#039;\n&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return item&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function has_navbar()&lt;br /&gt;
	return args[cfg.arg.navbar] ~= cfg.keyword.navbar_off&lt;br /&gt;
		and args[cfg.arg.navbar] ~= cfg.keyword.navbar_plain&lt;br /&gt;
		and (&lt;br /&gt;
			args[cfg.arg.name]&lt;br /&gt;
			or mw.getCurrentFrame():getParent():getTitle():gsub(cfg.pattern.sandbox, &#039;&#039;)&lt;br /&gt;
				~= cfg.pattern.navbox&lt;br /&gt;
		)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- extract text color from css, which is the only permitted inline CSS for the navbar&lt;br /&gt;
local function extract_color(css_str)&lt;br /&gt;
	-- return nil because navbar takes its argument into mw.html which handles&lt;br /&gt;
	-- nil gracefully, removing the associated style attribute&lt;br /&gt;
	return mw.ustring.match(&#039;;&#039; .. css_str .. &#039;;&#039;, &#039;.*;%s*([Cc][Oo][Ll][Oo][Rr]%s*:%s*.-)%s*;&#039;) or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderNavBar(titleCell)&lt;br /&gt;
	if has_navbar() then&lt;br /&gt;
		titleCell:wikitext(navbar{&lt;br /&gt;
			[cfg.navbar.name] = args[cfg.arg.name],&lt;br /&gt;
			[cfg.navbar.mini] = 1,&lt;br /&gt;
			[cfg.navbar.fontstyle] = extract_color(&lt;br /&gt;
				(args[cfg.arg.basestyle] or &#039;&#039;) .. &#039;;&#039; .. (args[cfg.arg.titlestyle] or &#039;&#039;)&lt;br /&gt;
			)&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTitleRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.title] then return end&lt;br /&gt;
&lt;br /&gt;
	local titleRow = tbl:tag(&#039;tr&#039;)&lt;br /&gt;
&lt;br /&gt;
	local titleCell = titleRow:tag(&#039;th&#039;):attr(&#039;scope&#039;, &#039;col&#039;)&lt;br /&gt;
&lt;br /&gt;
	local titleColspan = 2&lt;br /&gt;
	if args[cfg.arg.imageleft] then titleColspan = titleColspan + 1 end&lt;br /&gt;
	if args[cfg.arg.image] then titleColspan = titleColspan + 1 end&lt;br /&gt;
&lt;br /&gt;
	titleCell&lt;br /&gt;
		:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
		:cssText(args[cfg.arg.titlestyle])&lt;br /&gt;
		:addClass(cfg.class.navbox_title)&lt;br /&gt;
		:attr(&#039;colspan&#039;, titleColspan)&lt;br /&gt;
&lt;br /&gt;
	renderNavBar(titleCell)&lt;br /&gt;
&lt;br /&gt;
	titleCell&lt;br /&gt;
		:tag(&#039;div&#039;)&lt;br /&gt;
			-- id for aria-labelledby attribute&lt;br /&gt;
			:attr(&#039;id&#039;, mw.uri.anchorEncode(args[cfg.arg.title]))&lt;br /&gt;
			:addClass(args[cfg.arg.titleclass])&lt;br /&gt;
			:css(&#039;font-size&#039;, &#039;114%&#039;)&lt;br /&gt;
			:css(&#039;margin&#039;, &#039;0 4em&#039;)&lt;br /&gt;
			:wikitext(processItem(args[cfg.arg.title]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getAboveBelowColspan()&lt;br /&gt;
	local ret = 2&lt;br /&gt;
	if args[cfg.arg.imageleft] then ret = ret + 1 end&lt;br /&gt;
	if args[cfg.arg.image] then ret = ret + 1 end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderAboveRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.above] then return end&lt;br /&gt;
&lt;br /&gt;
	tbl:tag(&#039;tr&#039;)&lt;br /&gt;
		:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_abovebelow)&lt;br /&gt;
			:addClass(args[cfg.arg.aboveclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			:cssText(args[cfg.arg.abovestyle])&lt;br /&gt;
			:attr(&#039;colspan&#039;, getAboveBelowColspan())&lt;br /&gt;
			:tag(&#039;div&#039;)&lt;br /&gt;
				-- id for aria-labelledby attribute, if no title&lt;br /&gt;
				:attr(&#039;id&#039;, (not args[cfg.arg.title]) and mw.uri.anchorEncode(args[cfg.arg.above]) or nil)&lt;br /&gt;
				:wikitext(processItem(args[cfg.arg.above], args[cfg.arg.nowrapitems]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderBelowRow(tbl)&lt;br /&gt;
	if not args[cfg.arg.below] then return end&lt;br /&gt;
&lt;br /&gt;
	tbl:tag(&#039;tr&#039;)&lt;br /&gt;
		:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_abovebelow)&lt;br /&gt;
			:addClass(args[cfg.arg.belowclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			:cssText(args[cfg.arg.belowstyle])&lt;br /&gt;
			:attr(&#039;colspan&#039;, getAboveBelowColspan())&lt;br /&gt;
			:tag(&#039;div&#039;)&lt;br /&gt;
				:wikitext(processItem(args[cfg.arg.below], args[cfg.arg.nowrapitems]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderListRow(tbl, index, listnum, listnums_size)&lt;br /&gt;
	local row = tbl:tag(&#039;tr&#039;)&lt;br /&gt;
&lt;br /&gt;
	if index == 1 and args[cfg.arg.imageleft] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:addClass(cfg.class.noviewer)&lt;br /&gt;
				:addClass(cfg.class.navbox_image)&lt;br /&gt;
				:addClass(args[cfg.arg.imageclass])&lt;br /&gt;
				:css(&#039;width&#039;, &#039;1px&#039;)               -- Minimize width&lt;br /&gt;
				:css(&#039;padding&#039;, &#039;0 2px 0 0&#039;)&lt;br /&gt;
				:cssText(args[cfg.arg.imageleftstyle])&lt;br /&gt;
				:attr(&#039;rowspan&#039;, listnums_size)&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:wikitext(processItem(args[cfg.arg.imageleft]))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local group_and_num = format(cfg.arg.group_and_num, listnum)&lt;br /&gt;
	local groupstyle_and_num = format(cfg.arg.groupstyle_and_num, listnum)&lt;br /&gt;
	if args[group_and_num] then&lt;br /&gt;
		local groupCell = row:tag(&#039;th&#039;)&lt;br /&gt;
&lt;br /&gt;
		-- id for aria-labelledby attribute, if lone group with no title or above&lt;br /&gt;
		if listnum == 1 and not (args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group2]) then&lt;br /&gt;
			groupCell&lt;br /&gt;
				:attr(&#039;id&#039;, mw.uri.anchorEncode(args[cfg.arg.group1]))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		groupCell&lt;br /&gt;
			:attr(&#039;scope&#039;, &#039;row&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox_group)&lt;br /&gt;
			:addClass(args[cfg.arg.groupclass])&lt;br /&gt;
			:cssText(args[cfg.arg.basestyle])&lt;br /&gt;
			-- If groupwidth not specified, minimize width&lt;br /&gt;
			:css(&#039;width&#039;, args[cfg.arg.groupwidth] or &#039;1%&#039;)&lt;br /&gt;
&lt;br /&gt;
		groupCell&lt;br /&gt;
			:cssText(args[cfg.arg.groupstyle])&lt;br /&gt;
			:cssText(args[groupstyle_and_num])&lt;br /&gt;
			:wikitext(args[group_and_num])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local listCell = row:tag(&#039;td&#039;)&lt;br /&gt;
&lt;br /&gt;
	if args[group_and_num] then&lt;br /&gt;
		listCell&lt;br /&gt;
			:addClass(cfg.class.navbox_list_with_group)&lt;br /&gt;
	else&lt;br /&gt;
		listCell:attr(&#039;colspan&#039;, 2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not args[cfg.arg.groupwidth] then&lt;br /&gt;
		listCell:css(&#039;width&#039;, &#039;100%&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rowstyle  -- usually nil so cssText(rowstyle) usually adds nothing&lt;br /&gt;
	if index % 2 == 1 then&lt;br /&gt;
		rowstyle = args[cfg.arg.oddstyle]&lt;br /&gt;
	else&lt;br /&gt;
		rowstyle = args[cfg.arg.evenstyle]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local list_and_num = format(cfg.arg.list_and_num, listnum)&lt;br /&gt;
	local listText = args[list_and_num]&lt;br /&gt;
	local oddEven = cfg.marker.oddeven&lt;br /&gt;
	if listText:sub(1, 12) == &#039;&amp;lt;/div&amp;gt;&amp;lt;table&#039; then&lt;br /&gt;
		-- Assume list text is for a subgroup navbox so no automatic striping for this row.&lt;br /&gt;
		oddEven = listText:find(cfg.pattern.navbox_title) and cfg.marker.restart or cfg.class.navbox_odd_part&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local liststyle_and_num = format(cfg.arg.liststyle_and_num, listnum)&lt;br /&gt;
	local listclass_and_num = format(cfg.arg.listclass_and_num, listnum)&lt;br /&gt;
	listCell&lt;br /&gt;
		:css(&#039;padding&#039;, &#039;0&#039;)&lt;br /&gt;
		:cssText(args[cfg.arg.liststyle])&lt;br /&gt;
		:cssText(rowstyle)&lt;br /&gt;
		:cssText(args[liststyle_and_num])&lt;br /&gt;
		:addClass(cfg.class.navbox_list)&lt;br /&gt;
		:addClass(cfg.class.navbox_part .. oddEven)&lt;br /&gt;
		:addClass(args[cfg.arg.listclass])&lt;br /&gt;
		:addClass(args[listclass_and_num])&lt;br /&gt;
		:tag(&#039;div&#039;)&lt;br /&gt;
			:css(&#039;padding&#039;,&lt;br /&gt;
				(index == 1 and args[cfg.arg.list1padding]) or args[cfg.arg.listpadding] or &#039;0 0.25em&#039;&lt;br /&gt;
			)&lt;br /&gt;
			:wikitext(processItem(listText, args[cfg.arg.nowrapitems]))&lt;br /&gt;
&lt;br /&gt;
	if index == 1 and args[cfg.arg.image] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:addClass(cfg.class.noviewer)&lt;br /&gt;
				:addClass(cfg.class.navbox_image)&lt;br /&gt;
				:addClass(args[cfg.arg.imageclass])&lt;br /&gt;
				:css(&#039;width&#039;, &#039;1px&#039;)               -- Minimize width&lt;br /&gt;
				:css(&#039;padding&#039;, &#039;0 0 0 2px&#039;)&lt;br /&gt;
				:cssText(args[cfg.arg.imagestyle])&lt;br /&gt;
				:attr(&#039;rowspan&#039;, listnums_size)&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:wikitext(processItem(args[cfg.arg.image]))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function has_list_class(htmlclass)&lt;br /&gt;
	local patterns = {&lt;br /&gt;
		&#039;^&#039; .. htmlclass .. &#039;$&#039;,&lt;br /&gt;
		&#039;%s&#039; .. htmlclass .. &#039;$&#039;,&lt;br /&gt;
		&#039;^&#039; .. htmlclass .. &#039;%s&#039;,&lt;br /&gt;
		&#039;%s&#039; .. htmlclass .. &#039;%s&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	for arg, _ in pairs(args) do&lt;br /&gt;
		if type(arg) == &#039;string&#039; and mw.ustring.find(arg, cfg.pattern.class) then&lt;br /&gt;
			for _, pattern in ipairs(patterns) do&lt;br /&gt;
				if mw.ustring.find(args[arg] or &#039;&#039;, pattern) then&lt;br /&gt;
					return true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- there are a lot of list classes in the wild, so we add their TemplateStyles&lt;br /&gt;
local function add_list_styles()&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	local function add_list_templatestyles(htmlclass, templatestyles)&lt;br /&gt;
		if has_list_class(htmlclass) then&lt;br /&gt;
			return frame:extensionTag{&lt;br /&gt;
				name = &#039;templatestyles&#039;, args = { src = templatestyles }&lt;br /&gt;
			}&lt;br /&gt;
		else&lt;br /&gt;
			return &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local hlist_styles = add_list_templatestyles(&#039;hlist&#039;, cfg.hlist_templatestyles)&lt;br /&gt;
	local plainlist_styles = add_list_templatestyles(&#039;plainlist&#039;, cfg.plainlist_templatestyles)&lt;br /&gt;
	&lt;br /&gt;
	-- a second workaround for [[phab:T303378]]&lt;br /&gt;
	-- when that issue is fixed, we can actually use has_navbar not to emit the&lt;br /&gt;
	-- tag here if we want&lt;br /&gt;
	if has_navbar() and hlist_styles == &#039;&#039; then&lt;br /&gt;
		hlist_styles = frame:extensionTag{&lt;br /&gt;
			name = &#039;templatestyles&#039;, args = { src = cfg.hlist_templatestyles }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- hlist -&amp;gt; plainlist is best-effort to preserve old Common.css ordering.&lt;br /&gt;
	-- this ordering is not a guarantee because most navboxes will emit only&lt;br /&gt;
	-- one of these classes [hlist_note]&lt;br /&gt;
	return hlist_styles .. plainlist_styles&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function needsHorizontalLists(border)&lt;br /&gt;
	if border == cfg.keyword.border_subgroup or args[cfg.arg.tracking] == cfg.keyword.tracking_no then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return not has_list_class(cfg.pattern.hlist) and not has_list_class(cfg.pattern.plainlist)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasBackgroundColors()&lt;br /&gt;
	for _, key in ipairs({cfg.arg.titlestyle, cfg.arg.groupstyle,&lt;br /&gt;
		cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do&lt;br /&gt;
		if tostring(args[key]):find(&#039;background&#039;, 1, true) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasBorders()&lt;br /&gt;
	for _, key in ipairs({cfg.arg.groupstyle, cfg.arg.basestyle,&lt;br /&gt;
		cfg.arg.abovestyle, cfg.arg.belowstyle}) do&lt;br /&gt;
		if tostring(args[key]):find(&#039;border&#039;, 1, true) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isIllegible()&lt;br /&gt;
	local styleratio = require(&#039;Module:Color contrast&#039;)._styleratio&lt;br /&gt;
	for key, style in pairs(args) do&lt;br /&gt;
		if tostring(key):match(cfg.pattern.style) then&lt;br /&gt;
			if styleratio{mw.text.unstripNoWiki(style)} &amp;lt; 4.5 then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getTrackingCategories(border)&lt;br /&gt;
	local cats = {}&lt;br /&gt;
	if needsHorizontalLists(border) then table.insert(cats, cfg.category.horizontal_lists) end&lt;br /&gt;
	if hasBackgroundColors() then table.insert(cats, cfg.category.background_colors) end&lt;br /&gt;
	if isIllegible() then table.insert(cats, cfg.category.illegible) end&lt;br /&gt;
	if hasBorders() then table.insert(cats, cfg.category.borders) end&lt;br /&gt;
	return cats&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTrackingCategories(builder, border)&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	if title.namespace ~= 10 then return end -- not in template space&lt;br /&gt;
	local subpage = title.subpageText&lt;br /&gt;
	if subpage == cfg.keyword.subpage_doc or subpage == cfg.keyword.subpage_sandbox&lt;br /&gt;
		or subpage == cfg.keyword.subpage_testcases then return end&lt;br /&gt;
&lt;br /&gt;
	for _, cat in ipairs(getTrackingCategories(border)) do&lt;br /&gt;
		builder:wikitext(&#039;[[Category:&#039; .. cat .. &#039;]]&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderMainTable(border, listnums)&lt;br /&gt;
	local tbl = mw.html.create(&#039;table&#039;)&lt;br /&gt;
		:addClass(cfg.class.nowraplinks)&lt;br /&gt;
		:addClass(args[cfg.arg.bodyclass])&lt;br /&gt;
&lt;br /&gt;
	local state = args[cfg.arg.state]&lt;br /&gt;
	if args[cfg.arg.title] and state ~= cfg.keyword.state_plain and state ~= cfg.keyword.state_off then&lt;br /&gt;
		if state == cfg.keyword.state_collapsed then&lt;br /&gt;
			state = cfg.class.collapsed&lt;br /&gt;
		end&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.collapsible)&lt;br /&gt;
			:addClass(state or cfg.class.autocollapse)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tbl:css(&#039;border-spacing&#039;, 0)&lt;br /&gt;
	if border == cfg.keyword.border_subgroup or border == cfg.keyword.border_none then&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.navbox_subgroup)&lt;br /&gt;
			:cssText(args[cfg.arg.bodystyle])&lt;br /&gt;
			:cssText(args[cfg.arg.style])&lt;br /&gt;
	else  -- regular navbox - bodystyle and style will be applied to the wrapper table&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass(cfg.class.navbox_inner)&lt;br /&gt;
			:css(&#039;background&#039;, &#039;transparent&#039;)&lt;br /&gt;
			:css(&#039;color&#039;, &#039;inherit&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	tbl:cssText(args[cfg.arg.innerstyle])&lt;br /&gt;
&lt;br /&gt;
	renderTitleRow(tbl)&lt;br /&gt;
	renderAboveRow(tbl)&lt;br /&gt;
	local listnums_size = #listnums&lt;br /&gt;
	for i, listnum in ipairs(listnums) do&lt;br /&gt;
		renderListRow(tbl, i, listnum, listnums_size)&lt;br /&gt;
	end&lt;br /&gt;
	renderBelowRow(tbl)&lt;br /&gt;
&lt;br /&gt;
	return tbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function add_navbox_styles(hiding_templatestyles)&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	-- This is a lambda so that it doesn&#039;t need the frame as a parameter&lt;br /&gt;
	local function add_user_styles(templatestyles)&lt;br /&gt;
		if templatestyles and templatestyles ~= &#039;&#039; then&lt;br /&gt;
			return frame:extensionTag{&lt;br /&gt;
				name = &#039;templatestyles&#039;, args = { src = templatestyles }&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- get templatestyles. load base from config so that Lua only needs to do&lt;br /&gt;
	-- the work once of parser tag expansion&lt;br /&gt;
	local base_templatestyles = cfg.templatestyles&lt;br /&gt;
	local templatestyles = add_user_styles(args[cfg.arg.templatestyles])&lt;br /&gt;
	local child_templatestyles = add_user_styles(args[cfg.arg.child_templatestyles])&lt;br /&gt;
&lt;br /&gt;
	-- The &#039;navbox-styles&#039; div exists to wrap the styles to work around T200206&lt;br /&gt;
	-- more elegantly. Instead of combinatorial rules, this ends up being linear&lt;br /&gt;
	-- number of CSS rules.&lt;br /&gt;
	return mw.html.create(&#039;div&#039;)&lt;br /&gt;
		:addClass(cfg.class.navbox_styles)&lt;br /&gt;
		:wikitext(&lt;br /&gt;
			add_list_styles() .. -- see [hlist_note] applied to &#039;before base_templatestyles&#039;&lt;br /&gt;
			base_templatestyles ..&lt;br /&gt;
			templatestyles ..&lt;br /&gt;
			child_templatestyles ..&lt;br /&gt;
			table.concat(hiding_templatestyles)&lt;br /&gt;
		)&lt;br /&gt;
		:done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- work around [[phab:T303378]]&lt;br /&gt;
-- for each arg: find all the templatestyles strip markers, insert them into a&lt;br /&gt;
-- table. then remove all templatestyles markers from the arg&lt;br /&gt;
local function move_hiding_templatestyles(args)&lt;br /&gt;
	local gfind = string.gfind&lt;br /&gt;
	local gsub = string.gsub&lt;br /&gt;
	local templatestyles_markers = {}&lt;br /&gt;
	local strip_marker_pattern = &#039;(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)&#039;&lt;br /&gt;
	for k, arg in pairs(args) do&lt;br /&gt;
		for marker in gfind(arg, strip_marker_pattern) do&lt;br /&gt;
			table.insert(templatestyles_markers, marker)&lt;br /&gt;
		end&lt;br /&gt;
		args[k] = gsub(arg, strip_marker_pattern, &#039;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return templatestyles_markers&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._navbox(navboxArgs)&lt;br /&gt;
	args = navboxArgs&lt;br /&gt;
	local hiding_templatestyles = move_hiding_templatestyles(args)&lt;br /&gt;
	local listnums = {}&lt;br /&gt;
&lt;br /&gt;
	for k, _ in pairs(args) do&lt;br /&gt;
		if type(k) == &#039;string&#039; then&lt;br /&gt;
			local listnum = k:match(cfg.pattern.listnum)&lt;br /&gt;
			if listnum then table.insert(listnums, tonumber(listnum)) end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(listnums)&lt;br /&gt;
&lt;br /&gt;
	local border = mw.text.trim(args[cfg.arg.border] or args[1] or &#039;&#039;)&lt;br /&gt;
	if border == cfg.keyword.border_child then&lt;br /&gt;
		border = cfg.keyword.border_subgroup&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- render the main body of the navbox&lt;br /&gt;
	local tbl = renderMainTable(border, listnums)&lt;br /&gt;
&lt;br /&gt;
	local res = mw.html.create()&lt;br /&gt;
	-- render the appropriate wrapper for the navbox, based on the border param&lt;br /&gt;
&lt;br /&gt;
	if border == cfg.keyword.border_none then&lt;br /&gt;
		res:node(add_navbox_styles(hiding_templatestyles))&lt;br /&gt;
		local nav = res:tag(&#039;div&#039;)&lt;br /&gt;
			:attr(&#039;role&#039;, &#039;navigation&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
		-- aria-labelledby title, otherwise above, otherwise lone group&lt;br /&gt;
		if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1]&lt;br /&gt;
			and not args[cfg.arg.group2]) then&lt;br /&gt;
			nav:attr(&lt;br /&gt;
				&#039;aria-labelledby&#039;,&lt;br /&gt;
				mw.uri.anchorEncode(&lt;br /&gt;
					args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1]&lt;br /&gt;
				)&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			nav:attr(&#039;aria-label&#039;, cfg.aria_label)&lt;br /&gt;
		end&lt;br /&gt;
	elseif border == cfg.keyword.border_subgroup then&lt;br /&gt;
		-- We assume that this navbox is being rendered in a list cell of a&lt;br /&gt;
		-- parent navbox, and is therefore inside a div with padding:0em 0.25em.&lt;br /&gt;
		-- We start with a &amp;lt;/div&amp;gt; to avoid the padding being applied, and at the&lt;br /&gt;
		-- end add a &amp;lt;div&amp;gt; to balance out the parent&#039;s &amp;lt;/div&amp;gt;&lt;br /&gt;
		res&lt;br /&gt;
			:wikitext(&#039;&amp;lt;/div&amp;gt;&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
			:wikitext(&#039;&amp;lt;div&amp;gt;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		res:node(add_navbox_styles(hiding_templatestyles))&lt;br /&gt;
		local nav = res:tag(&#039;div&#039;)&lt;br /&gt;
			:attr(&#039;role&#039;, &#039;navigation&#039;)&lt;br /&gt;
			:addClass(cfg.class.navbox)&lt;br /&gt;
			:addClass(args[cfg.arg.navboxclass])&lt;br /&gt;
			:cssText(args[cfg.arg.bodystyle])&lt;br /&gt;
			:cssText(args[cfg.arg.style])&lt;br /&gt;
			:css(&#039;padding&#039;, &#039;3px&#039;)&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
		-- aria-labelledby title, otherwise above, otherwise lone group&lt;br /&gt;
		if args[cfg.arg.title] or args[cfg.arg.above]&lt;br /&gt;
			or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then&lt;br /&gt;
			nav:attr(&lt;br /&gt;
				&#039;aria-labelledby&#039;,&lt;br /&gt;
				mw.uri.anchorEncode(args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1])&lt;br /&gt;
			)&lt;br /&gt;
		else&lt;br /&gt;
			nav:attr(&#039;aria-label&#039;, cfg.aria_label)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if (args[cfg.arg.nocat] or cfg.keyword.nocat_false):lower() == cfg.keyword.nocat_false then&lt;br /&gt;
		renderTrackingCategories(res, border)&lt;br /&gt;
	end&lt;br /&gt;
	return striped(tostring(res), border)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.navbox(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	args = getArgs(frame, {wrappers = {cfg.pattern.navbox}})&lt;br /&gt;
&lt;br /&gt;
	-- Read the arguments in the order they&#039;ll be output in, to make references&lt;br /&gt;
	-- number in the right order.&lt;br /&gt;
	local _&lt;br /&gt;
	_ = args[cfg.arg.title]&lt;br /&gt;
	_ = args[cfg.arg.above]&lt;br /&gt;
	-- Limit this to 20 as covering &#039;most&#039; cases (that&#039;s a SWAG) and because&lt;br /&gt;
	-- iterator approach won&#039;t work here&lt;br /&gt;
	for i = 1, 20 do&lt;br /&gt;
		_ = args[format(cfg.arg.group_and_num, i)]&lt;br /&gt;
		_ = args[format(cfg.arg.list_and_num, i)]&lt;br /&gt;
	end&lt;br /&gt;
	_ = args[cfg.arg.below]&lt;br /&gt;
&lt;br /&gt;
	return p._navbox(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbar/styles.css&amp;diff=1579</id>
		<title>Module:Navbar/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbar/styles.css&amp;diff=1579"/>
		<updated>2024-05-30T02:34:45Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=yes}} */&lt;br /&gt;
.navbar {&lt;br /&gt;
	display: inline;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-collapse {&lt;br /&gt;
	float: left;&lt;br /&gt;
	text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-boxtext {&lt;br /&gt;
	word-spacing: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar ul {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
	line-height: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-brackets::before {&lt;br /&gt;
	margin-right: -0.125em;&lt;br /&gt;
	content: &#039;[ &#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-brackets::after {&lt;br /&gt;
	margin-left: -0.125em;&lt;br /&gt;
	content: &#039; ]&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar li {&lt;br /&gt;
	word-spacing: -0.125em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar a &amp;gt; span,&lt;br /&gt;
.navbar a &amp;gt; abbr {&lt;br /&gt;
	text-decoration: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-mini abbr {&lt;br /&gt;
	font-variant: small-caps;&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
	cursor: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-ct-full {&lt;br /&gt;
	font-size: 114%;&lt;br /&gt;
	margin: 0 7em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar-ct-mini {&lt;br /&gt;
	font-size: 114%;&lt;br /&gt;
	margin: 0 4em;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbar/configuration&amp;diff=1577</id>
		<title>Module:Navbar/configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbar/configuration&amp;diff=1577"/>
		<updated>2024-05-30T02:34:45Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
	[&#039;templatestyles&#039;] = &#039;Module:Navbar/styles.css&#039;,&lt;br /&gt;
	[&#039;hlist_templatestyles&#039;] = &#039;Hlist/styles.css&#039;,&lt;br /&gt;
	[&#039;box_text&#039;] = &#039;This box: &#039;,			-- default text box when not plain or mini&lt;br /&gt;
	[&#039;title_namespace&#039;] = &#039;Template&#039;,		-- namespace to default to for title&lt;br /&gt;
	[&#039;invalid_title&#039;] = &#039;Invalid title &#039;,&lt;br /&gt;
	[&#039;classes&#039;] = { -- set a line to nil if you don&#039;t want it&lt;br /&gt;
		[&#039;navbar&#039;] = &#039;navbar&#039;,&lt;br /&gt;
		[&#039;plainlinks&#039;] = &#039;plainlinks&#039;, -- plainlinks&lt;br /&gt;
		[&#039;horizontal_list&#039;] = &#039;hlist&#039;, -- horizontal list class&lt;br /&gt;
		[&#039;mini&#039;] = &#039;navbar-mini&#039;, -- class indicating small links in the navbar&lt;br /&gt;
		[&#039;this_box&#039;] = &#039;navbar-boxtext&#039;,&lt;br /&gt;
		[&#039;brackets&#039;] = &#039;navbar-brackets&#039;,&lt;br /&gt;
		-- &#039;collapsible&#039; is the key for a class to indicate the navbar is&lt;br /&gt;
		-- setting up the collapsible element in addition to the normal&lt;br /&gt;
		-- navbar.&lt;br /&gt;
		[&#039;collapsible&#039;] = &#039;navbar-collapse&#039;,&lt;br /&gt;
		[&#039;collapsible_title_mini&#039;] = &#039;navbar-ct-mini&#039;,&lt;br /&gt;
		[&#039;collapsible_title_full&#039;] = &#039;navbar-ct-full&#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbar&amp;diff=1575</id>
		<title>Module:Navbar</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Navbar&amp;diff=1575"/>
		<updated>2024-05-30T02:34:45Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local cfg = mw.loadData(&#039;Module:Navbar/configuration&#039;)&lt;br /&gt;
&lt;br /&gt;
local function get_title_arg(is_collapsible, template)&lt;br /&gt;
	local title_arg = 1&lt;br /&gt;
	if is_collapsible then title_arg = 2 end&lt;br /&gt;
	if template then title_arg = &#039;template&#039; end&lt;br /&gt;
	return title_arg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function choose_links(template, args)&lt;br /&gt;
	-- The show table indicates the default displayed items.&lt;br /&gt;
	-- view, talk, edit, hist, move, watch&lt;br /&gt;
	-- TODO: Move to configuration.&lt;br /&gt;
	local show = {true, true, true, false, false, false}&lt;br /&gt;
	if template then&lt;br /&gt;
		show[2] = false&lt;br /&gt;
		show[3] = false&lt;br /&gt;
		local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6,&lt;br /&gt;
			talk = 2, edit = 3, hist = 4, move = 5, watch = 6}&lt;br /&gt;
		-- TODO: Consider removing TableTools dependency.&lt;br /&gt;
		for _, v in ipairs(require (&#039;Module:TableTools&#039;).compressSparseArray(args)) do&lt;br /&gt;
			local num = index[v]&lt;br /&gt;
			if num then show[num] = true end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local remove_edit_link = args.noedit&lt;br /&gt;
	if remove_edit_link then show[3] = false end&lt;br /&gt;
	&lt;br /&gt;
	return show&lt;br /&gt;
	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function add_link(link_description, ul, is_mini, font_style)&lt;br /&gt;
	local l&lt;br /&gt;
	if link_description.url then&lt;br /&gt;
		l = {&#039;[&#039;, &#039;&#039;, &#039;]&#039;}&lt;br /&gt;
	else&lt;br /&gt;
		l = {&#039;[[&#039;, &#039;|&#039;, &#039;]]&#039;}&lt;br /&gt;
	end&lt;br /&gt;
	ul:tag(&#039;li&#039;)&lt;br /&gt;
		:addClass(&#039;nv-&#039; .. link_description.full)&lt;br /&gt;
		:wikitext(l[1] .. link_description.link .. l[2])&lt;br /&gt;
		:tag(is_mini and &#039;abbr&#039; or &#039;span&#039;)&lt;br /&gt;
			:attr(&#039;title&#039;, link_description.html_title)&lt;br /&gt;
			:cssText(font_style)&lt;br /&gt;
			:wikitext(is_mini and link_description.mini or link_description.full)&lt;br /&gt;
			:done()&lt;br /&gt;
		:wikitext(l[3])&lt;br /&gt;
		:done()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style)&lt;br /&gt;
	&lt;br /&gt;
	local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace)&lt;br /&gt;
	if not title then&lt;br /&gt;
		error(cfg.invalid_title .. title_text)&lt;br /&gt;
	end&lt;br /&gt;
	local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or &#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
	-- TODO: Get link_descriptions and show into the configuration module.&lt;br /&gt;
	-- link_descriptions should be easier...&lt;br /&gt;
	local link_descriptions = {&lt;br /&gt;
		{ [&#039;mini&#039;] = &#039;v&#039;, [&#039;full&#039;] = &#039;view&#039;, [&#039;html_title&#039;] = &#039;View this template&#039;,&lt;br /&gt;
			[&#039;link&#039;] = title.fullText, [&#039;url&#039;] = false },&lt;br /&gt;
		{ [&#039;mini&#039;] = &#039;t&#039;, [&#039;full&#039;] = &#039;talk&#039;, [&#039;html_title&#039;] = &#039;Discuss this template&#039;,&lt;br /&gt;
			[&#039;link&#039;] = talkpage, [&#039;url&#039;] = false },&lt;br /&gt;
		{ [&#039;mini&#039;] = &#039;e&#039;, [&#039;full&#039;] = &#039;edit&#039;, [&#039;html_title&#039;] = &#039;Edit this template&#039;,&lt;br /&gt;
			[&#039;link&#039;] = &#039;Special:EditPage/&#039; .. title.fullText, [&#039;url&#039;] = false },&lt;br /&gt;
		{ [&#039;mini&#039;] = &#039;h&#039;, [&#039;full&#039;] = &#039;hist&#039;, [&#039;html_title&#039;] = &#039;History of this template&#039;,&lt;br /&gt;
			[&#039;link&#039;] = &#039;Special:PageHistory/&#039; .. title.fullText, [&#039;url&#039;] = false },&lt;br /&gt;
		{ [&#039;mini&#039;] = &#039;m&#039;, [&#039;full&#039;] = &#039;move&#039;, [&#039;html_title&#039;] = &#039;Move this template&#039;,&lt;br /&gt;
			[&#039;link&#039;] = mw.title.new(&#039;Special:Movepage&#039;):fullUrl(&#039;target=&#039;..title.fullText), [&#039;url&#039;] = true },&lt;br /&gt;
		{ [&#039;mini&#039;] = &#039;w&#039;, [&#039;full&#039;] = &#039;watch&#039;, [&#039;html_title&#039;] = &#039;Watch this template&#039;, &lt;br /&gt;
			[&#039;link&#039;] = title:fullUrl(&#039;action=watch&#039;), [&#039;url&#039;] = true }&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	local ul = mw.html.create(&#039;ul&#039;)&lt;br /&gt;
	if has_brackets then&lt;br /&gt;
		ul:addClass(cfg.classes.brackets)&lt;br /&gt;
			:cssText(font_style)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for i, _ in ipairs(displayed_links) do&lt;br /&gt;
		if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end&lt;br /&gt;
	end&lt;br /&gt;
	return ul:done()&lt;br /&gt;
	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._navbar(args)&lt;br /&gt;
	&lt;br /&gt;
	-- TODO: We probably don&#039;t need both fontstyle and fontcolor...&lt;br /&gt;
	local font_style = args.fontstyle&lt;br /&gt;
	local font_color = args.fontcolor&lt;br /&gt;
	local is_collapsible = args.collapsible&lt;br /&gt;
	local is_mini = args.mini&lt;br /&gt;
	local is_plain = args.plain&lt;br /&gt;
	&lt;br /&gt;
	local collapsible_class = nil&lt;br /&gt;
	if is_collapsible then&lt;br /&gt;
		collapsible_class = cfg.classes.collapsible&lt;br /&gt;
		if not is_plain then is_mini = 1 end&lt;br /&gt;
		if font_color then&lt;br /&gt;
			font_style = (font_style or &#039;&#039;) .. &#039;; color: &#039; .. font_color .. &#039;;&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local navbar_style = args.style&lt;br /&gt;
	local div = mw.html.create():tag(&#039;div&#039;)&lt;br /&gt;
	div&lt;br /&gt;
		:addClass(cfg.classes.navbar)&lt;br /&gt;
		:addClass(cfg.classes.plainlinks)&lt;br /&gt;
		:addClass(cfg.classes.horizontal_list)&lt;br /&gt;
		:addClass(collapsible_class) -- we made the determination earlier&lt;br /&gt;
		:cssText(navbar_style)&lt;br /&gt;
&lt;br /&gt;
	if is_mini then div:addClass(cfg.classes.mini) end&lt;br /&gt;
&lt;br /&gt;
	local box_text = (args.text or cfg.box_text) .. &#039; &#039;&lt;br /&gt;
	 -- the concatenated space guarantees the box text is separated&lt;br /&gt;
	if not (is_mini or is_plain) then&lt;br /&gt;
		div&lt;br /&gt;
			:tag(&#039;span&#039;)&lt;br /&gt;
				:addClass(cfg.classes.box_text)&lt;br /&gt;
				:cssText(font_style)&lt;br /&gt;
				:wikitext(box_text)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local template = args.template&lt;br /&gt;
	local displayed_links = choose_links(template, args)&lt;br /&gt;
	local has_brackets = args.brackets&lt;br /&gt;
	local title_arg = get_title_arg(is_collapsible, template)&lt;br /&gt;
	local title_text = args[title_arg] or (&#039;:&#039; .. mw.getCurrentFrame():getParent():getTitle())&lt;br /&gt;
	local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style)&lt;br /&gt;
	div:node(list)&lt;br /&gt;
&lt;br /&gt;
	if is_collapsible then&lt;br /&gt;
		local title_text_class&lt;br /&gt;
		if is_mini then&lt;br /&gt;
			title_text_class = cfg.classes.collapsible_title_mini&lt;br /&gt;
		else&lt;br /&gt;
			title_text_class = cfg.classes.collapsible_title_full&lt;br /&gt;
		end&lt;br /&gt;
		div:done()&lt;br /&gt;
			:tag(&#039;div&#039;)&lt;br /&gt;
			:addClass(title_text_class)&lt;br /&gt;
			:cssText(font_style)&lt;br /&gt;
			:wikitext(args[1])&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	-- hlist -&amp;gt; navbar is best-effort to preserve old Common.css ordering.&lt;br /&gt;
	return frame:extensionTag{&lt;br /&gt;
		name = &#039;templatestyles&#039;, args = { src = cfg.hlist_templatestyles }&lt;br /&gt;
	} .. frame:extensionTag{&lt;br /&gt;
		name = &#039;templatestyles&#039;, args = { src = cfg.templatestyles }&lt;br /&gt;
	} .. tostring(div:done())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.navbar(frame)&lt;br /&gt;
	return p._navbar(require(&#039;Module:Arguments&#039;).getArgs(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Icon/data&amp;diff=1573</id>
		<title>Module:Icon/data</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Icon/data&amp;diff=1573"/>
		<updated>2024-05-30T02:34:45Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module stores icon data for [[Module:Icon]].&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Icon data&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local data = {&lt;br /&gt;
	fa = {&lt;br /&gt;
		image = &amp;quot;Featured article star.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	far = {&lt;br /&gt;
		image = &amp;quot;Cscr-star piece.png&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured article review&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	farc = {&lt;br /&gt;
		image = &amp;quot;Cscr-star piece.png&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured article removal candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ffa = {&lt;br /&gt;
		aliases = {&amp;quot;dfa&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Featured article star - cross.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Former featured article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fac = {&lt;br /&gt;
		aliases = {&amp;quot;fan&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Cscr-candidate.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured article candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ffac = {&lt;br /&gt;
		aliases = {&amp;quot;nofa&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Featured article star - cross.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Failed featured article candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fl = {&lt;br /&gt;
		image = &amp;quot;Featured article star.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured list&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	flrc = {&lt;br /&gt;
		aliases = {&amp;quot;flr&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Cscr-star piece.png&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured list removal candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ffl = {&lt;br /&gt;
		aliases = {&amp;quot;dfl&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Cscr-featured-strike.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Former featured list&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	flc = {&lt;br /&gt;
		aliases = {&amp;quot;fln&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Cscr-candidate.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured list candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fflc = {&lt;br /&gt;
		aliases = {&amp;quot;nofl&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Cscr-former.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Failed featured list candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	a = {&lt;br /&gt;
		image = &amp;quot;Symbol a class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;A-Class article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	admin = {&lt;br /&gt;
		aliases = {&amp;quot;mop&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Wikipedia Administrator.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Administrator&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	dac = {&lt;br /&gt;
		aliases = {&amp;quot;daa&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol unsupport A vote.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Demoted A-Class article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	acc = {&lt;br /&gt;
		aliases = {&amp;quot;acn&amp;quot;, &amp;quot;aac&amp;quot;},&lt;br /&gt;
		image = &amp;quot;A candidate.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;A-Class article candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	noac = {&lt;br /&gt;
		aliases = {&amp;quot;faac&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol unsupport A vote.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Failed A-Class article candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ga = {&lt;br /&gt;
		image = &amp;quot;Symbol support vote.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Good article&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	gar = {&lt;br /&gt;
		image = &amp;quot;GA Candidate Neutral vote(ChaosNil).svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Good article reassessment&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	dga = {&lt;br /&gt;
		image = &amp;quot;Symbol unsupport vote.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Delisted good article&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	gan = {&lt;br /&gt;
		aliases = {&amp;quot;gac&amp;quot;},&lt;br /&gt;
		image = &amp;quot;GA candidate.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Good article nominee&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	ga2 = {&lt;br /&gt;
		image = &amp;quot;Symbol neutral vote.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Good article, 2nd opinion&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	gah = {&lt;br /&gt;
		image = &amp;quot;Symbol wait.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Good article on hold&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	fgan = {&lt;br /&gt;
		aliases = {&amp;quot;noga&amp;quot;, &amp;quot;gaf&amp;quot;, &amp;quot;gf&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol oppose vote.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Failed good article nominee&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	fp = {&lt;br /&gt;
		image = &amp;quot;Cscr-featured.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured picture&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fpc = {&lt;br /&gt;
		aliases = {&amp;quot;fpn&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Cscr-candidate.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured picture candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ffp = {&lt;br /&gt;
		image = &amp;quot;Cscr-former.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Former featured picture&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	vp = {&lt;br /&gt;
		image = &amp;quot;ENWP VP Logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Valued picture&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	vpc = {&lt;br /&gt;
		image = &amp;quot;Valued pics 1.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Valued picture candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fs = {&lt;br /&gt;
		image = &amp;quot;Cscr-featured.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured sound&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ffs = {&lt;br /&gt;
		image = &amp;quot;Cscr-former.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Former featured sound&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fsc = {&lt;br /&gt;
		image = &amp;quot;Cscr-candidate.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured sound candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fpo = {&lt;br /&gt;
		image = &amp;quot;Linecons big-star.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Before the featured portal process ceased in 2017, this had been designated as a featured portal.&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fpor = {&lt;br /&gt;
		image = &amp;quot;Cscr-star piece.png&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured portal review&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ffpo = {&lt;br /&gt;
		image = &amp;quot;Featured article star - cross.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Former featured portal&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fpoc = {&lt;br /&gt;
		image = &amp;quot;Cscr-candidate.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured portal candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ft = {&lt;br /&gt;
		image = &amp;quot;Cscr-featuredtopic.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured topic&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ftrc = {&lt;br /&gt;
		image = &amp;quot;Cscr-star piece.png&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured topic removal candidate&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	fft = {&lt;br /&gt;
		aliases = {&amp;quot;dft&amp;quot;},&lt;br /&gt;
		image = &amp;quot;DFT candidate_cluster.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Former featured topic&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ftc = {&lt;br /&gt;
		aliases = {&amp;quot;ftn&amp;quot;},&lt;br /&gt;
		image = &amp;quot;FT candidate cluster.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Featured topic candidate&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	gt = {&lt;br /&gt;
		image = &amp;quot;Support cluster.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Good topic&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	gtrc = {&lt;br /&gt;
		image = &amp;quot;Symbol unsupport vote.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Good topic removal candidate&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	gtc = {&lt;br /&gt;
		aliases = {&amp;quot;gtn&amp;quot;},&lt;br /&gt;
		image = &amp;quot;GA candidate cluster.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Good topic candidate&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	bplus = {&lt;br /&gt;
		aliases = {&amp;quot;b+&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol bplus class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Bplus-Class article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	b = {&lt;br /&gt;
		image = &amp;quot;Symbol b class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;B-Class article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	br = {&lt;br /&gt;
		aliases = {&amp;quot;bcr&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Bclass-checklist.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;B-Class review&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	c = {&lt;br /&gt;
		image = &amp;quot;Symbol c class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;C-Class article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	start = {&lt;br /&gt;
		image = &amp;quot;Symbol start class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Start-Class article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	stub = {&lt;br /&gt;
		image = &amp;quot;Symbol stub class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Stub-Class article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	list = {&lt;br /&gt;
		aliases = {&amp;quot;comparison&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol list class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;List-Class article&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	no = {&lt;br /&gt;
		image = &amp;quot;Crystal button cancel.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Unknown-Class article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	book = {&lt;br /&gt;
		image = &amp;quot;Symbol book class2.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikipedia book&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	category = {&lt;br /&gt;
		aliases = {&amp;quot;cat&amp;quot;, &amp;quot;categ&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol category class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Category&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	disambiguation = {&lt;br /&gt;
		aliases = {&amp;quot;dab&amp;quot;, &amp;quot;disamb&amp;quot;, &amp;quot;disambig&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol dab class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Disambiguation page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	image = {&lt;br /&gt;
		aliases = {&amp;quot;file&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol file class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;File&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	needed = {&lt;br /&gt;
		image = &amp;quot;Symbol needed class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Needed article&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	outline = {&lt;br /&gt;
		image = &amp;quot;Global thinking.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Outline&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	portal = {&lt;br /&gt;
		image = &amp;quot;Symbol portal class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Portal&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	project = {&lt;br /&gt;
		image = &amp;quot;Symbol project class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Project page&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	redirect = {&lt;br /&gt;
		aliases = {&amp;quot;red&amp;quot;, &amp;quot;redir&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol redirect vote2.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Redirect&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	template = {&lt;br /&gt;
		aliases = {&amp;quot;temp&amp;quot;, &amp;quot;templ&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol template class pink.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Template&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	essay = {&lt;br /&gt;
		image = &amp;quot;Essay.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Essay&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	na = {&lt;br /&gt;
		image = &amp;quot;Symbol na class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Non-article page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	aa = {&lt;br /&gt;
		image = &amp;quot;Yes check.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Audited article of limited subject matter&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	da = {&lt;br /&gt;
		image = &amp;quot;Symbol oppose vote.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Demoted article&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	dyk = {&lt;br /&gt;
		image = &amp;quot;Symbol question.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Did You Know?&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	dyk2 = {&lt;br /&gt;
		image = &amp;quot;DYK questionmark icon.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Did You Know?&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	pr = {&lt;br /&gt;
		image = &amp;quot;Nuvola apps kedit.png&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Peer review&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	ppr = {&lt;br /&gt;
		image = &amp;quot;Nuvola apps kedit.png&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Portal peer review&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	q = {&lt;br /&gt;
		aliases = {&amp;quot;question&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Symbol question.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Question&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	cleanup = {&lt;br /&gt;
		image = &amp;quot;Edit-clear.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Cleanup work&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	qi = {&lt;br /&gt;
		image = &amp;quot;Quality images logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Quality image on Wikimedia Commons&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	vi = {&lt;br /&gt;
		image = &amp;quot;Valued image seal.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Valued image on Wikimedia Commons&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	tfa = {&lt;br /&gt;
		image = &amp;quot;Wikipedia-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Today&#039;s Featured Article&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	tfl = {&lt;br /&gt;
		image = &amp;quot;Wikipedia-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Today&#039;s Featured List&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	itn = {&lt;br /&gt;
		image = &amp;quot;Globe current.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;In The News&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	otd = {&lt;br /&gt;
		image = &amp;quot;Nuvola apps date.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;On This Day&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	wikiproject = {&lt;br /&gt;
		image = &amp;quot;People icon.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;WikiProject&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	goce = {&lt;br /&gt;
		image = &amp;quot;Writing Magnifying.PNG&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Guild of Copy Editors&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	wikipedia = {&lt;br /&gt;
		image = &amp;quot;Wikipedia-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikipedia page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	commons = {&lt;br /&gt;
		image = &amp;quot;Commons-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Commons page&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	wikiquote = {&lt;br /&gt;
		image = &amp;quot;Wikiquote-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikiquote page&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	wikiversity = {&lt;br /&gt;
		image = &amp;quot;Wikiversity logo 2017.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikiversity page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	wikibooks = {&lt;br /&gt;
		image = &amp;quot;Wikibooks-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikibooks page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	wikisource = {&lt;br /&gt;
		image = &amp;quot;Wikisource-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikisource page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	wiktionary = {&lt;br /&gt;
		image = &amp;quot;Wiktionary-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wiktionary page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	wikinews = {&lt;br /&gt;
		image = &amp;quot;Wikinews-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikinews page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	wikispecies = {&lt;br /&gt;
		image = &amp;quot;Wikispecies-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikispecies page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	wikidata = {&lt;br /&gt;
		image = &amp;quot;Wikidata-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikidata page&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	wikivoyage = {&lt;br /&gt;
		image = &amp;quot;Wikivoyage-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Wikivoyage page&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	 mediawiki = {&lt;br /&gt;
		 image = &amp;quot;MediaWiki-2020-icon.svg&amp;quot;,&lt;br /&gt;
		 tooltip = &amp;quot;MediaWiki&amp;quot;,&lt;br /&gt;
		 link = false,&lt;br /&gt;
	 },&lt;br /&gt;
	 phabricator = {&lt;br /&gt;
		 aliases = {&amp;quot;phab&amp;quot;},&lt;br /&gt;
		 image = &amp;quot;Favicon-Phabricator-WM.svg&amp;quot;,&lt;br /&gt;
		 tooltip = &amp;quot;Phabricator&amp;quot;,&lt;br /&gt;
		 link = false,&lt;br /&gt;
	 },&lt;br /&gt;
	 wikitech = {&lt;br /&gt;
		 image = &amp;quot;Wikitech-2021-blue-icon.svg&amp;quot;,&lt;br /&gt;
		 tooltip = &amp;quot;Wikitech&amp;quot;,&lt;br /&gt;
		 link = false,&lt;br /&gt;
	 },&lt;br /&gt;
	meta = {&lt;br /&gt;
		image = &amp;quot;Wikimedia Community Logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Meta-wiki page&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	four = {&lt;br /&gt;
		aliases = {&amp;quot;4a&amp;quot;},&lt;br /&gt;
		image = &amp;quot;Four Award.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Four Award&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	million = {&lt;br /&gt;
		image = &amp;quot;Million award logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Million Award&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	module = {&lt;br /&gt;
		image = &amp;quot;Lua-logo-nolabel.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Module&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	vital = {&lt;br /&gt;
		image = &amp;quot;Círculos_Concéntricos.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Vital article&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	potd  = {&lt;br /&gt;
		image = &amp;quot;Wikipedia-logo.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Picture of the Day&amp;quot;,&lt;br /&gt;
		link = true,&lt;br /&gt;
	},&lt;br /&gt;
	draft = {&lt;br /&gt;
		image = &amp;quot;Symbol draft class.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Draft-Class article&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	info = {&lt;br /&gt;
		image = &amp;quot;Information icon.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Information&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	discussionnotificaion = {&lt;br /&gt;
		image = &amp;quot;Echo edit-user-talk icon.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Discussion&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	alert = {&lt;br /&gt;
		image = &amp;quot;OOjs UI icon alert.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Black alert&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	[&#039;alert-imagewarning&#039;] = {&lt;br /&gt;
		image = &amp;quot;OOjs UI icon alert image warning.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Alert&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	[&#039;alert-constructive&#039;] = {&lt;br /&gt;
		image = &amp;quot;OOjs UI icon alert-constructive.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Green alert&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	[&#039;alert-blackred&#039;] = {&lt;br /&gt;
		image = &amp;quot;OOjs UI icon alert destructive black-darkred.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Black, white, and red alert&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	barnstar2 = {&lt;br /&gt;
		image = &amp;quot;Original Barnstar Hires.svg&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Original barnstar hires&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	barnstar = {&lt;br /&gt;
		image = &amp;quot;Original Barnstar.png&amp;quot;,&lt;br /&gt;
		tooltip = &amp;quot;Original barnstar&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	},&lt;br /&gt;
	_DEFAULT = {&lt;br /&gt;
		image = &amp;quot;Symbol question.svg&amp;quot;,&lt;br /&gt;
		link = false,&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- End icon data&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Make aliases work the same as normal keys, and remove the &amp;quot;aliases&amp;quot; subtables.&lt;br /&gt;
local ret= {}&lt;br /&gt;
for code, iconData in pairs(data) do&lt;br /&gt;
	iconData.canonicalCode = code&lt;br /&gt;
	if iconData.aliases then&lt;br /&gt;
		for _, alias in ipairs(iconData.aliases) do&lt;br /&gt;
			ret[alias] = iconData&lt;br /&gt;
		end&lt;br /&gt;
		iconData.aliases = nil&lt;br /&gt;
	end&lt;br /&gt;
	ret[code] = iconData&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return ret&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Icon&amp;diff=1571</id>
		<title>Module:Icon</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Icon&amp;diff=1571"/>
		<updated>2024-05-30T02:34:45Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements [[Template:Icon]].&lt;br /&gt;
&lt;br /&gt;
require(&amp;quot;strict&amp;quot;)&lt;br /&gt;
local yesNo = require(&amp;quot;Module:Yesno&amp;quot;)&lt;br /&gt;
local getArgs = require(&amp;quot;Module:Arguments&amp;quot;).getArgs&lt;br /&gt;
local getPlain = nil&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Determine whether we&#039;re being called from a sandbox&lt;br /&gt;
local sandbox = mw.getCurrentFrame():getTitle():find(&#039;sandbox&#039;, 1, true) and &#039;/sandbox&#039; or &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
-- Implements [[Template:Icon]]&lt;br /&gt;
-- Returns the icon image corresponding to a string (like &#039;B&#039;)&lt;br /&gt;
function p._main(args, data)&lt;br /&gt;
	local data_module = &#039;Module:Icon/data&#039;..sandbox&lt;br /&gt;
	data = data or mw.loadData(data_module)&lt;br /&gt;
	local code = args.class or args[1]&lt;br /&gt;
	local iconData&lt;br /&gt;
	if code then&lt;br /&gt;
		code = code:match(&#039;^%s*(.-)%s*$&#039;):lower() -- trim whitespace and put in lower case&lt;br /&gt;
		iconData = data[code]&lt;br /&gt;
	end&lt;br /&gt;
	if not iconData then&lt;br /&gt;
		iconData = data._DEFAULT&lt;br /&gt;
	end&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&#039;[[File:%s%s%s|%s|class=noviewer|alt=%s]]&#039;,&lt;br /&gt;
		iconData.image,&lt;br /&gt;
		iconData.tooltip and &#039;|&#039; .. iconData.tooltip or &#039;&#039;,&lt;br /&gt;
		iconData.link == false and &#039;|link=&#039; or &#039;&#039;,&lt;br /&gt;
		args.size or &#039;16x16px&#039;,&lt;br /&gt;
		iconData.alt or &#039;&#039;&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Implements [[Template:Icon link]], a superset of [[Template:Icon]]&lt;br /&gt;
-- Returns an icon, plus a suitably formatted wikilink&lt;br /&gt;
function p._link(args, data)&lt;br /&gt;
	args.size = args.size or args.iconsize&lt;br /&gt;
	local icon = p._main(args, data)&lt;br /&gt;
	-- If no link given in args[2], default back to [[Template:Icon]]&lt;br /&gt;
	if not args[2] then&lt;br /&gt;
		return icon&lt;br /&gt;
	end&lt;br /&gt;
	-- Strip wiki markup out of link&lt;br /&gt;
	getPlain = getPlain or require(&amp;quot;Module:Text&amp;quot;).Text().getPlain&lt;br /&gt;
	local link = getPlain(args[2])&lt;br /&gt;
	local display = args[3] or args[2]&lt;br /&gt;
	-- italicize display string, if requested&lt;br /&gt;
	if yesNo(args.i) or yesNo(args.italic) or yesNo(args.italics) then&lt;br /&gt;
		display = &#039;&amp;lt;i&amp;gt;&#039;..display..&#039;&amp;lt;/i&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	-- if display is link, just use standard wlink&lt;br /&gt;
	if link == display then&lt;br /&gt;
		return &#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&#039;..icon..&#039; &amp;lt;/span&amp;gt;[[&#039;..link..&#039;]]&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return &#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&#039;..icon..&#039; &amp;lt;/span&amp;gt;[[&#039;..link..&#039;|&#039;..display..&#039;]]&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame,{parentFirst=true})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link(frame)&lt;br /&gt;
	local args = getArgs(frame,{parentFirst=true})&lt;br /&gt;
	return p._link(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Hatnote_list&amp;diff=1569</id>
		<title>Module:Hatnote list</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Hatnote_list&amp;diff=1569"/>
		<updated>2024-05-30T02:34:45Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
--                           Module:Hatnote list                              --&lt;br /&gt;
--                                                                            --&lt;br /&gt;
-- This module produces and formats lists for use in hatnotes. In particular, --&lt;br /&gt;
-- it implements the for-see list, i.e. lists of &amp;quot;For X, see Y&amp;quot; statements,   --&lt;br /&gt;
-- as used in {{about}}, {{redirect}}, and their variants. Also introduced    --&lt;br /&gt;
-- are andList &amp;amp; orList helpers for formatting lists with those conjunctions. --&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local mArguments --initialize lazily&lt;br /&gt;
local mFormatLink = require(&#039;Module:Format link&#039;)&lt;br /&gt;
local mHatnote = require(&#039;Module:Hatnote&#039;)&lt;br /&gt;
local libraryUtil = require(&#039;libraryUtil&#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- List stringification helper functions&lt;br /&gt;
--&lt;br /&gt;
-- These functions are used for stringifying lists, usually page lists inside&lt;br /&gt;
-- the &amp;quot;Y&amp;quot; portion of &amp;quot;For X, see Y&amp;quot; for-see items.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--default options table used across the list stringification functions&lt;br /&gt;
local stringifyListDefaultOptions = {&lt;br /&gt;
	conjunction = &amp;quot;and&amp;quot;,&lt;br /&gt;
	separator = &amp;quot;,&amp;quot;,&lt;br /&gt;
	altSeparator = &amp;quot;;&amp;quot;,&lt;br /&gt;
	space = &amp;quot; &amp;quot;,&lt;br /&gt;
	formatted = false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--Searches display text only&lt;br /&gt;
local function searchDisp(haystack, needle)&lt;br /&gt;
	return string.find(&lt;br /&gt;
		string.sub(haystack, (string.find(haystack, &#039;|&#039;) or 0) + 1), needle&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Stringifies a list generically; probably shouldn&#039;t be used directly&lt;br /&gt;
local function stringifyList(list, options)&lt;br /&gt;
	-- Type-checks, defaults, and a shortcut&lt;br /&gt;
	checkType(&amp;quot;stringifyList&amp;quot;, 1, list, &amp;quot;table&amp;quot;)&lt;br /&gt;
	if #list == 0 then return nil end&lt;br /&gt;
	checkType(&amp;quot;stringifyList&amp;quot;, 2, options, &amp;quot;table&amp;quot;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	for k, v in pairs(stringifyListDefaultOptions) do&lt;br /&gt;
		if options[k] == nil then options[k] = v end&lt;br /&gt;
	end&lt;br /&gt;
	local s = options.space&lt;br /&gt;
	-- Format the list if requested&lt;br /&gt;
	if options.formatted then&lt;br /&gt;
		list = mFormatLink.formatPages(&lt;br /&gt;
			{categorizeMissing = mHatnote.missingTargetCat}, list&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	-- Set the separator; if any item contains it, use the alternate separator&lt;br /&gt;
	local separator = options.separator&lt;br /&gt;
	for k, v in pairs(list) do&lt;br /&gt;
		if searchDisp(v, separator) then&lt;br /&gt;
			separator = options.altSeparator&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Set the conjunction, apply Oxford comma, and force a comma if #1 has &amp;quot;§&amp;quot;&lt;br /&gt;
	local conjunction = s .. options.conjunction .. s&lt;br /&gt;
	if #list == 2 and searchDisp(list[1], &amp;quot;§&amp;quot;) or #list &amp;gt; 2 then&lt;br /&gt;
		conjunction = separator .. conjunction&lt;br /&gt;
	end&lt;br /&gt;
	-- Return the formatted string&lt;br /&gt;
	return mw.text.listToText(list, separator .. s, conjunction)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--DRY function&lt;br /&gt;
function p.conjList (conj, list, fmt)&lt;br /&gt;
	return stringifyList(list, {conjunction = conj, formatted = fmt})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Stringifies lists with &amp;quot;and&amp;quot; or &amp;quot;or&amp;quot;&lt;br /&gt;
function p.andList (...) return p.conjList(&amp;quot;and&amp;quot;, ...) end&lt;br /&gt;
function p.orList (...) return p.conjList(&amp;quot;or&amp;quot;, ...) end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- For see&lt;br /&gt;
--&lt;br /&gt;
-- Makes a &amp;quot;For X, see [[Y]].&amp;quot; list from raw parameters. Intended for the&lt;br /&gt;
-- {{about}} and {{redirect}} templates and their variants.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--default options table used across the forSee family of functions&lt;br /&gt;
local forSeeDefaultOptions = {&lt;br /&gt;
	andKeyword = &#039;and&#039;,&lt;br /&gt;
	title = mw.title.getCurrentTitle().text,&lt;br /&gt;
	otherText = &#039;other uses&#039;,&lt;br /&gt;
	forSeeForm = &#039;For %s, see %s.&#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--Collapses duplicate punctuation at end of string, ignoring italics and links&lt;br /&gt;
local function punctuationCollapse (text)&lt;br /&gt;
 	return text:match(&amp;quot;[.?!](&#039;?)%1(%]?)%2%.$&amp;quot;) and text:sub(1, -2) or text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Structures arguments into a table for stringification, &amp;amp; options&lt;br /&gt;
function p.forSeeArgsToTable (args, from, options)&lt;br /&gt;
	-- Type-checks and defaults&lt;br /&gt;
	checkType(&amp;quot;forSeeArgsToTable&amp;quot;, 1, args, &#039;table&#039;)&lt;br /&gt;
	checkType(&amp;quot;forSeeArgsToTable&amp;quot;, 2, from, &#039;number&#039;, true)&lt;br /&gt;
	from = from or 1&lt;br /&gt;
	checkType(&amp;quot;forSeeArgsToTable&amp;quot;, 3, options, &#039;table&#039;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	for k, v in pairs(forSeeDefaultOptions) do&lt;br /&gt;
		if options[k] == nil then options[k] = v end&lt;br /&gt;
	end&lt;br /&gt;
	-- maxArg&#039;s gotten manually because getArgs() and table.maxn aren&#039;t friends&lt;br /&gt;
	local maxArg = 0&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == &#039;number&#039; and k &amp;gt; maxArg then maxArg = k end&lt;br /&gt;
	end&lt;br /&gt;
	-- Structure the data out from the parameter list:&lt;br /&gt;
	-- * forTable is the wrapper table, with forRow rows&lt;br /&gt;
	-- * Rows are tables of a &amp;quot;use&amp;quot; string &amp;amp; a &amp;quot;pages&amp;quot; table of pagename strings&lt;br /&gt;
	-- * Blanks are left empty for defaulting elsewhere, but can terminate list&lt;br /&gt;
	local forTable = {}&lt;br /&gt;
	local i = from&lt;br /&gt;
	local terminated = false&lt;br /&gt;
	-- If there is extra text, and no arguments are given, give nil value&lt;br /&gt;
	-- to not produce default of &amp;quot;For other uses, see foo (disambiguation)&amp;quot;&lt;br /&gt;
	if options.extratext and i &amp;gt; maxArg then return nil end&lt;br /&gt;
	-- Loop to generate rows&lt;br /&gt;
	repeat&lt;br /&gt;
		-- New empty row&lt;br /&gt;
		local forRow = {}&lt;br /&gt;
		-- On blank use, assume list&#039;s ended &amp;amp; break at end of this loop&lt;br /&gt;
		forRow.use = args[i]&lt;br /&gt;
		if not args[i] then terminated = true end&lt;br /&gt;
		-- New empty list of pages&lt;br /&gt;
		forRow.pages = {}&lt;br /&gt;
		-- Insert first pages item if present&lt;br /&gt;
		table.insert(forRow.pages, args[i + 1])&lt;br /&gt;
		-- If the param after next is &amp;quot;and&amp;quot;, do inner loop to collect params&lt;br /&gt;
		-- until the &amp;quot;and&amp;quot;&#039;s stop. Blanks are ignored: &amp;quot;1|and||and|3&amp;quot; → {1, 3}&lt;br /&gt;
		while args[i + 2] == options.andKeyword do&lt;br /&gt;
			if args[i + 3] then&lt;br /&gt;
				table.insert(forRow.pages, args[i + 3])&lt;br /&gt;
			end&lt;br /&gt;
			-- Increment to next &amp;quot;and&amp;quot;&lt;br /&gt;
			i = i + 2&lt;br /&gt;
		end&lt;br /&gt;
		-- Increment to next use&lt;br /&gt;
		i = i + 2&lt;br /&gt;
		-- Append the row&lt;br /&gt;
		table.insert(forTable, forRow)&lt;br /&gt;
	until terminated or i &amp;gt; maxArg&lt;br /&gt;
&lt;br /&gt;
	return forTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Stringifies a table as formatted by forSeeArgsToTable&lt;br /&gt;
function p.forSeeTableToString (forSeeTable, options)&lt;br /&gt;
	-- Type-checks and defaults&lt;br /&gt;
	checkType(&amp;quot;forSeeTableToString&amp;quot;, 1, forSeeTable, &amp;quot;table&amp;quot;, true)&lt;br /&gt;
	checkType(&amp;quot;forSeeTableToString&amp;quot;, 2, options, &amp;quot;table&amp;quot;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	for k, v in pairs(forSeeDefaultOptions) do&lt;br /&gt;
		if options[k] == nil then options[k] = v end&lt;br /&gt;
	end&lt;br /&gt;
	-- Stringify each for-see item into a list&lt;br /&gt;
	local strList = {}&lt;br /&gt;
	if forSeeTable then&lt;br /&gt;
		for k, v in pairs(forSeeTable) do&lt;br /&gt;
			local useStr = v.use or options.otherText&lt;br /&gt;
			local pagesStr =&lt;br /&gt;
				p.andList(v.pages, true) or&lt;br /&gt;
				mFormatLink._formatLink{&lt;br /&gt;
					categorizeMissing = mHatnote.missingTargetCat,&lt;br /&gt;
					link = mHatnote.disambiguate(options.title)&lt;br /&gt;
				}&lt;br /&gt;
			local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)&lt;br /&gt;
			forSeeStr = punctuationCollapse(forSeeStr)&lt;br /&gt;
			table.insert(strList, forSeeStr)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..&#039;.&#039;)) end&lt;br /&gt;
	-- Return the concatenated list&lt;br /&gt;
	return table.concat(strList, &#039; &#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Produces a &amp;quot;For X, see [[Y]]&amp;quot; string from arguments. Expects index gaps&lt;br /&gt;
-- but not blank/whitespace values. Ignores named args and args &amp;lt; &amp;quot;from&amp;quot;.&lt;br /&gt;
function p._forSee (args, from, options)&lt;br /&gt;
	local forSeeTable = p.forSeeArgsToTable(args, from, options)&lt;br /&gt;
	return p.forSeeTableToString(forSeeTable, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- As _forSee, but uses the frame.&lt;br /&gt;
function p.forSee (frame, from, options)&lt;br /&gt;
	mArguments = require(&#039;Module:Arguments&#039;)&lt;br /&gt;
	return p._forSee(mArguments.getArgs(frame), from, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Hatnote/styles.css&amp;diff=1567</id>
		<title>Module:Hatnote/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Hatnote/styles.css&amp;diff=1567"/>
		<updated>2024-05-30T02:34:45Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=y}} */&lt;br /&gt;
.hatnote {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Limit structure CSS to divs because of [[Module:Hatnote inline]] */&lt;br /&gt;
div.hatnote {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding-left: 1.6em;&lt;br /&gt;
	margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hatnote i {&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The templatestyles element inserts a link element before hatnotes.&lt;br /&gt;
 * TODO: Remove link if/when WMF resolves T200206 */&lt;br /&gt;
.hatnote + link + .hatnote {&lt;br /&gt;
	margin-top: -0.5em;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Hatnote&amp;diff=1565</id>
		<title>Module:Hatnote</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Hatnote&amp;diff=1565"/>
		<updated>2024-05-30T02:34:45Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
--                              Module:Hatnote                                --&lt;br /&gt;
--                                                                            --&lt;br /&gt;
-- This module produces hatnote links and links to related articles. It       --&lt;br /&gt;
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --&lt;br /&gt;
-- helper functions for other Lua hatnote modules.                            --&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local libraryUtil = require(&#039;libraryUtil&#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg&lt;br /&gt;
local mArguments -- lazily initialise [[Module:Arguments]]&lt;br /&gt;
local yesno -- lazily initialise [[Module:Yesno]]&lt;br /&gt;
local formatLink -- lazily initialise [[Module:Format link]] ._formatLink&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function getArgs(frame)&lt;br /&gt;
	-- Fetches the arguments from the parent frame. Whitespace is trimmed and&lt;br /&gt;
	-- blanks are removed.&lt;br /&gt;
	mArguments = require(&#039;Module:Arguments&#039;)&lt;br /&gt;
	return mArguments.getArgs(frame, {parentOnly = true})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function removeInitialColon(s)&lt;br /&gt;
	-- Removes the initial colon from a string, if present.&lt;br /&gt;
	return s:match(&#039;^:?(.*)&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.defaultClasses(inline)&lt;br /&gt;
	-- Provides the default hatnote classes as a space-separated string; useful&lt;br /&gt;
	-- for hatnote-manipulation modules like [[Module:Hatnote group]].&lt;br /&gt;
	return&lt;br /&gt;
		(inline == 1 and &#039;hatnote-inline&#039; or &#039;hatnote&#039;) .. &#039; &#039; ..&lt;br /&gt;
		&#039;navigation-not-searchable&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.disambiguate(page, disambiguator)&lt;br /&gt;
	-- Formats a page title with a disambiguation parenthetical,&lt;br /&gt;
	-- i.e. &amp;quot;Example&amp;quot; → &amp;quot;Example (disambiguation)&amp;quot;.&lt;br /&gt;
	checkType(&#039;disambiguate&#039;, 1, page, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;disambiguate&#039;, 2, disambiguator, &#039;string&#039;, true)&lt;br /&gt;
	disambiguator = disambiguator or &#039;disambiguation&#039;&lt;br /&gt;
	return mw.ustring.format(&#039;%s (%s)&#039;, page, disambiguator)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.findNamespaceId(link, removeColon)&lt;br /&gt;
	-- Finds the namespace id (namespace number) of a link or a pagename. This&lt;br /&gt;
	-- function will not work if the link is enclosed in double brackets. Colons&lt;br /&gt;
	-- are trimmed from the start of the link by default. To skip colon&lt;br /&gt;
	-- trimming, set the removeColon parameter to false.&lt;br /&gt;
	checkType(&#039;findNamespaceId&#039;, 1, link, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;findNamespaceId&#039;, 2, removeColon, &#039;boolean&#039;, true)&lt;br /&gt;
	if removeColon ~= false then&lt;br /&gt;
		link = removeInitialColon(link)&lt;br /&gt;
	end&lt;br /&gt;
	local namespace = link:match(&#039;^(.-):&#039;)&lt;br /&gt;
	if namespace then&lt;br /&gt;
		local nsTable = mw.site.namespaces[namespace]&lt;br /&gt;
		if nsTable then&lt;br /&gt;
			return nsTable.id&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)&lt;br /&gt;
	-- Formats an error message to be returned to wikitext. If&lt;br /&gt;
	-- addTrackingCategory is not false after being returned from&lt;br /&gt;
	-- [[Module:Yesno]], and if we are not on a talk page, a tracking category&lt;br /&gt;
	-- is added.&lt;br /&gt;
	checkType(&#039;makeWikitextError&#039;, 1, msg, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;makeWikitextError&#039;, 2, helpLink, &#039;string&#039;, true)&lt;br /&gt;
	yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
	title = title or mw.title.getCurrentTitle()&lt;br /&gt;
	-- Make the help link text.&lt;br /&gt;
	local helpText&lt;br /&gt;
	if helpLink then&lt;br /&gt;
		helpText = &#039; ([[&#039; .. helpLink .. &#039;|help]])&#039;&lt;br /&gt;
	else&lt;br /&gt;
		helpText = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	-- Make the category text.&lt;br /&gt;
	local category&lt;br /&gt;
	if not title.isTalkPage -- Don&#039;t categorise talk pages&lt;br /&gt;
		and title.namespace ~= 2 -- Don&#039;t categorise userspace&lt;br /&gt;
		and yesno(addTrackingCategory) ~= false -- Allow opting out&lt;br /&gt;
	then&lt;br /&gt;
		category = &#039;Hatnote templates with errors&#039;&lt;br /&gt;
		category = mw.ustring.format(&lt;br /&gt;
			&#039;[[%s:%s]]&#039;,&lt;br /&gt;
			mw.site.namespaces[14].name,&lt;br /&gt;
			category&lt;br /&gt;
		)&lt;br /&gt;
	else&lt;br /&gt;
		category = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return mw.ustring.format(&lt;br /&gt;
		&#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: %s%s.&amp;lt;/strong&amp;gt;%s&#039;,&lt;br /&gt;
		msg,&lt;br /&gt;
		helpText,&lt;br /&gt;
		category&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local curNs = mw.title.getCurrentTitle().namespace&lt;br /&gt;
p.missingTargetCat =&lt;br /&gt;
	--Default missing target category, exported for use in related modules&lt;br /&gt;
	((curNs ==  0) or (curNs == 14)) and&lt;br /&gt;
	&#039;Articles with hatnote templates targeting a nonexistent page&#039; or nil&lt;br /&gt;
&lt;br /&gt;
function p.quote(title)&lt;br /&gt;
	--Wraps titles in quotation marks. If the title starts/ends with a quotation&lt;br /&gt;
	--mark, kerns that side as with {{-&#039;}}&lt;br /&gt;
	local quotationMarks = {&lt;br /&gt;
		[&amp;quot;&#039;&amp;quot;]=true, [&#039;&amp;quot;&#039;]=true, [&#039;“&#039;]=true, [&amp;quot;‘&amp;quot;]=true, [&#039;”&#039;]=true, [&amp;quot;’&amp;quot;]=true&lt;br /&gt;
	}&lt;br /&gt;
	local quoteLeft, quoteRight = -- Test if start/end are quotation marks&lt;br /&gt;
		quotationMarks[string.sub(title,  1,  1)],&lt;br /&gt;
		quotationMarks[string.sub(title, -1, -1)]&lt;br /&gt;
	if quoteLeft or quoteRight then&lt;br /&gt;
		title = mw.html.create(&amp;quot;span&amp;quot;):wikitext(title)&lt;br /&gt;
	end&lt;br /&gt;
	if quoteLeft  then title:css(&amp;quot;padding-left&amp;quot;,  &amp;quot;0.15em&amp;quot;) end&lt;br /&gt;
	if quoteRight then title:css(&amp;quot;padding-right&amp;quot;, &amp;quot;0.15em&amp;quot;) end&lt;br /&gt;
	return &#039;&amp;quot;&#039; .. tostring(title) .. &#039;&amp;quot;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Hatnote&lt;br /&gt;
--&lt;br /&gt;
-- Produces standard hatnote text. Implements the {{hatnote}} template.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.hatnote(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local s = args[1]&lt;br /&gt;
	if not s then&lt;br /&gt;
		return p.makeWikitextError(&lt;br /&gt;
			&#039;no text specified&#039;,&lt;br /&gt;
			&#039;Template:Hatnote#Errors&#039;,&lt;br /&gt;
			args.category&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	return p._hatnote(s, {&lt;br /&gt;
		extraclasses = args.extraclasses,&lt;br /&gt;
		selfref = args.selfref&lt;br /&gt;
	})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._hatnote(s, options)&lt;br /&gt;
	checkType(&#039;_hatnote&#039;, 1, s, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;_hatnote&#039;, 2, options, &#039;table&#039;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	local inline = options.inline&lt;br /&gt;
	local hatnote = mw.html.create(inline == 1 and &#039;span&#039; or &#039;div&#039;)&lt;br /&gt;
	local extraclasses&lt;br /&gt;
	if type(options.extraclasses) == &#039;string&#039; then&lt;br /&gt;
		extraclasses = options.extraclasses&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	hatnote&lt;br /&gt;
		:attr(&#039;role&#039;, &#039;note&#039;)&lt;br /&gt;
		:addClass(p.defaultClasses(inline))&lt;br /&gt;
		:addClass(extraclasses)&lt;br /&gt;
		:addClass(options.selfref and &#039;selfref&#039; or nil)&lt;br /&gt;
		:wikitext(s)&lt;br /&gt;
&lt;br /&gt;
	return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = &#039;templatestyles&#039;, args = { src = &#039;Module:Hatnote/styles.css&#039; }&lt;br /&gt;
	} .. tostring(hatnote)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Module:Format_link&amp;diff=1563</id>
		<title>Module:Format link</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Module:Format_link&amp;diff=1563"/>
		<updated>2024-05-30T02:34:44Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
-- Format link&lt;br /&gt;
--&lt;br /&gt;
-- Makes a wikilink from the given link and display values. Links are escaped&lt;br /&gt;
-- with colons if necessary, and links to sections are detected and displayed&lt;br /&gt;
-- with &amp;quot; § &amp;quot; as a separator rather than the standard MediaWiki &amp;quot;#&amp;quot;. Used in&lt;br /&gt;
-- the {{format link}} template.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local libraryUtil = require(&#039;libraryUtil&#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg&lt;br /&gt;
local mArguments -- lazily initialise [[Module:Arguments]]&lt;br /&gt;
local mError -- lazily initialise [[Module:Error]]&lt;br /&gt;
local yesno -- lazily initialise [[Module:Yesno]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function getArgs(frame)&lt;br /&gt;
	-- Fetches the arguments from the parent frame. Whitespace is trimmed and&lt;br /&gt;
	-- blanks are removed.&lt;br /&gt;
	mArguments = require(&#039;Module:Arguments&#039;)&lt;br /&gt;
	return mArguments.getArgs(frame, {parentOnly = true})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function removeInitialColon(s)&lt;br /&gt;
	-- Removes the initial colon from a string, if present.&lt;br /&gt;
	return s:match(&#039;^:?(.*)&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function maybeItalicize(s, shouldItalicize)&lt;br /&gt;
	-- Italicize s if s is a string and the shouldItalicize parameter is true.&lt;br /&gt;
	if s and shouldItalicize then&lt;br /&gt;
		return &#039;&amp;lt;i&amp;gt;&#039; .. s .. &#039;&amp;lt;/i&amp;gt;&#039;&lt;br /&gt;
	else&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parseLink(link)&lt;br /&gt;
	-- Parse a link and return a table with the link&#039;s components.&lt;br /&gt;
	-- These components are:&lt;br /&gt;
	-- - link: the link, stripped of any initial colon (always present)&lt;br /&gt;
	-- - page: the page name (always present)&lt;br /&gt;
	-- - section: the page name (may be nil)&lt;br /&gt;
	-- - display: the display text, if manually entered after a pipe (may be nil)&lt;br /&gt;
	link = removeInitialColon(link)&lt;br /&gt;
&lt;br /&gt;
	-- Find whether a faux display value has been added with the {{!}} magic&lt;br /&gt;
	-- word.&lt;br /&gt;
	local prePipe, display = link:match(&#039;^(.-)|(.*)$&#039;)&lt;br /&gt;
	link = prePipe or link&lt;br /&gt;
&lt;br /&gt;
	-- Find the page, if it exists.&lt;br /&gt;
	-- For links like [[#Bar]], the page will be nil.&lt;br /&gt;
	local preHash, postHash = link:match(&#039;^(.-)#(.*)$&#039;)&lt;br /&gt;
	local page&lt;br /&gt;
	if not preHash then&lt;br /&gt;
		-- We have a link like [[Foo]].&lt;br /&gt;
		page = link&lt;br /&gt;
	elseif preHash ~= &#039;&#039; then&lt;br /&gt;
		-- We have a link like [[Foo#Bar]].&lt;br /&gt;
		page = preHash&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Find the section, if it exists.&lt;br /&gt;
	local section&lt;br /&gt;
	if postHash and postHash ~= &#039;&#039; then&lt;br /&gt;
		section = postHash&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return {&lt;br /&gt;
		link = link,&lt;br /&gt;
		page = page,&lt;br /&gt;
		section = section,&lt;br /&gt;
		display = display,&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatDisplay(parsed, options)&lt;br /&gt;
	-- Formats a display string based on a parsed link table (matching the&lt;br /&gt;
	-- output of parseLink) and an options table (matching the input options for&lt;br /&gt;
	-- _formatLink).&lt;br /&gt;
	local page = maybeItalicize(parsed.page, options.italicizePage)&lt;br /&gt;
	local section = maybeItalicize(parsed.section, options.italicizeSection)&lt;br /&gt;
	if (not section) then&lt;br /&gt;
		return page&lt;br /&gt;
	elseif (not page) then&lt;br /&gt;
		return mw.ustring.format(&#039;§&amp;amp;nbsp;%s&#039;, section)&lt;br /&gt;
	else&lt;br /&gt;
		return mw.ustring.format(&#039;%s §&amp;amp;nbsp;%s&#039;, page, section)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function missingArgError(target)&lt;br /&gt;
	mError = require(&#039;Module:Error&#039;)&lt;br /&gt;
	return mError.error{message =&lt;br /&gt;
		&#039;Error: no link or target specified! ([[&#039; .. target .. &#039;#Errors|help]])&#039;&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Main functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.formatLink(frame)&lt;br /&gt;
	-- The formatLink export function, for use in templates.&lt;br /&gt;
	yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local link = args[1] or args.link&lt;br /&gt;
	local target = args[3] or args.target&lt;br /&gt;
	if not (link or target) then&lt;br /&gt;
		return missingArgError(&#039;Template:Format link&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return p._formatLink{&lt;br /&gt;
		link = link,&lt;br /&gt;
		display = args[2] or args.display,&lt;br /&gt;
		target = target,&lt;br /&gt;
		italicizePage = yesno(args.italicizepage),&lt;br /&gt;
		italicizeSection = yesno(args.italicizesection),&lt;br /&gt;
		categorizeMissing = args.categorizemissing&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._formatLink(options)&lt;br /&gt;
	-- The formatLink export function, for use in modules.&lt;br /&gt;
	checkType(&#039;_formatLink&#039;, 1, options, &#039;table&#039;)&lt;br /&gt;
	local function check(key, expectedType) --for brevity&lt;br /&gt;
		checkTypeForNamedArg(&lt;br /&gt;
			&#039;_formatLink&#039;, key, options[key], expectedType or &#039;string&#039;, true&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	check(&#039;link&#039;)&lt;br /&gt;
	check(&#039;display&#039;)&lt;br /&gt;
	check(&#039;target&#039;)&lt;br /&gt;
	check(&#039;italicizePage&#039;, &#039;boolean&#039;)&lt;br /&gt;
	check(&#039;italicizeSection&#039;, &#039;boolean&#039;)&lt;br /&gt;
	check(&#039;categorizeMissing&#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Normalize link and target and check that at least one is present&lt;br /&gt;
	if options.link == &#039;&#039; then options.link = nil end&lt;br /&gt;
	if options.target == &#039;&#039; then options.target = nil end&lt;br /&gt;
	if not (options.link or options.target) then&lt;br /&gt;
		return missingArgError(&#039;Module:Format link&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parsed = parseLink(options.link)&lt;br /&gt;
	local display = options.display or parsed.display&lt;br /&gt;
	local catMissing = options.categorizeMissing&lt;br /&gt;
	local category = &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
	-- Find the display text&lt;br /&gt;
	if not display then display = formatDisplay(parsed, options) end&lt;br /&gt;
&lt;br /&gt;
	-- Handle the target option if present&lt;br /&gt;
	if options.target then&lt;br /&gt;
		local parsedTarget = parseLink(options.target)&lt;br /&gt;
		parsed.link = parsedTarget.link&lt;br /&gt;
		parsed.page = parsedTarget.page&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Test if page exists if a diagnostic category is specified&lt;br /&gt;
	if catMissing and (mw.ustring.len(catMissing) &amp;gt; 0) then&lt;br /&gt;
		local title = nil&lt;br /&gt;
		if parsed.page then title = mw.title.new(parsed.page) end&lt;br /&gt;
		if title and (not title.isExternal) then&lt;br /&gt;
			local success, exists = pcall(function() return title.exists end)&lt;br /&gt;
			if success and not exists then&lt;br /&gt;
				category = mw.ustring.format(&#039;[[Category:%s]]&#039;, catMissing)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Format the result as a link&lt;br /&gt;
	if parsed.link == display then&lt;br /&gt;
		return mw.ustring.format(&#039;[[:%s]]%s&#039;, parsed.link, category)&lt;br /&gt;
	else&lt;br /&gt;
		return mw.ustring.format(&#039;[[:%s|%s]]%s&#039;, parsed.link, display, category)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Derived convenience functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.formatPages(options, pages)&lt;br /&gt;
	-- Formats an array of pages using formatLink and the given options table,&lt;br /&gt;
	-- and returns it as an array. Nil values are not allowed.&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for i, page in ipairs(pages) do&lt;br /&gt;
		ret[i] = p._formatLink{&lt;br /&gt;
			link = page,&lt;br /&gt;
			categorizeMissing = options.categorizeMissing,&lt;br /&gt;
			italicizePage = options.italicizePage,&lt;br /&gt;
			italicizeSection = options.italicizeSection&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
	<entry>
		<id>https://wiki.tail477f2f.ts.net/index.php?title=Template:Navbox&amp;diff=1561</id>
		<title>Template:Navbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tail477f2f.ts.net/index.php?title=Template:Navbox&amp;diff=1561"/>
		<updated>2024-05-30T02:34:44Z</updated>

		<summary type="html">&lt;p&gt;Akhil T: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Navbox|navbox}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akhil T</name></author>
	</entry>
</feed>