<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ekatrafoundation.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gurwinder</id>
	<title>Ekatra Foundation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ekatrafoundation.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gurwinder"/>
	<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/wiki/Special:Contributions/Gurwinder"/>
	<updated>2026-05-02T09:46:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=104884</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=104884"/>
		<updated>2025-12-17T06:12:34Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: Undo revision 104883 by Gurwinder (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
&lt;br /&gt;
	var zoomInSVG =&lt;br /&gt;
		&#039;&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;path d=&amp;quot;M15.5 14h-.8l-.3-.3a6.5 6.5 0 1 0-.7.7l.3.3v.8L20 21.5 21.5 20z &#039; +&lt;br /&gt;
		&#039;M10 14a4 4 0 1 1 0-8 4 4 0 0 1 0 8z &#039; +&lt;br /&gt;
		&#039;M11 7H9v2H7v2h2v2h2v-2h2V9h-2z&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
	var zoomOutSVG =&lt;br /&gt;
		&#039;&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;path d=&amp;quot;M15.5 14h-.8l-.3-.3a6.5 6.5 0 1 0-.7.7l.3.3v.8L20 21.5 21.5 20z &#039; +&lt;br /&gt;
		&#039;M7 9h6v2H7z&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
	var toggleSVG =&lt;br /&gt;
		&#039;&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;path d=&amp;quot;M5 4h14v2H5zm4 4h6l-2 12h-2z&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&lt;br /&gt;
		&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index:9999; float:right; display:flex; gap:8px; cursor:pointer;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
			&#039;&amp;lt;span id=&amp;quot;zoomInIcon&amp;quot;&amp;gt;&#039; + zoomInSVG + &#039;&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
			&#039;&amp;lt;span id=&amp;quot;zoomOutIcon&amp;quot;&amp;gt;&#039; + zoomOutSVG + &#039;&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
			&#039;&amp;lt;span id=&amp;quot;toggleButton&amp;quot;&amp;gt;&#039; + toggleSVG + &#039;&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
&lt;br /&gt;
	var sizes = [parseFloat($bodyContent.css(&#039;font-size&#039;))];&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css(&#039;font-size&#039;, sizes[+useCustom] + &#039;pt&#039;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(&#039;#zoomInIcon&#039;).on(&#039;click&#039;, function () {&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	$(&#039;#zoomOutIcon&#039;).on(&#039;click&#039;, function () {&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	$(&#039;#toggleButton&#039;).on(&#039;click&#039;, toggle);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// ==UserScript==&lt;br /&gt;
// @name         MediaWiki Smart Single Quotes&lt;br /&gt;
// @namespace    http://your.local/&lt;br /&gt;
// @version      1.0&lt;br /&gt;
// @description  Convert straight single quotes to typographic single quotes on MediaWiki pages (visual only).&lt;br /&gt;
// @match        https://wiki.ekatrafoundation.org/*&lt;br /&gt;
// @grant        none&lt;br /&gt;
// ==/UserScript==&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function convertSingleQuotesText(text) {&lt;br /&gt;
        if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
        text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;); // contractions/possessives&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;); // opening quotes&lt;br /&gt;
        text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;); // remaining closing quotes&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        if (!root) return;&lt;br /&gt;
        try {&lt;br /&gt;
            var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
            var n;&lt;br /&gt;
            var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;]);&lt;br /&gt;
            while ((n = walker.nextNode())) {&lt;br /&gt;
                var parent = n.parentNode;&lt;br /&gt;
                if (!parent) continue;&lt;br /&gt;
                var anc = parent, skip = false;&lt;br /&gt;
                while (anc &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                    if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                    anc = anc.parentNode;&lt;br /&gt;
                }&lt;br /&gt;
                if (skip) continue;&lt;br /&gt;
                var orig = n.nodeValue;&lt;br /&gt;
                var rep = convertSingleQuotesText(orig);&lt;br /&gt;
                if (rep !== orig) n.nodeValue = rep;&lt;br /&gt;
            }&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes error&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function applyOnce() {&lt;br /&gt;
        var root = document.querySelector(&#039;.mw-parser-output&#039;) || document.body;&lt;br /&gt;
        walkAndReplace(root);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // run after window.load, also watch for AJAX content&lt;br /&gt;
    window.addEventListener(&#039;load&#039;, function () {&lt;br /&gt;
        setTimeout(applyOnce, 150);&lt;br /&gt;
        var obs = new MutationObserver(function (mutations) {&lt;br /&gt;
            mutations.forEach(function (m) {&lt;br /&gt;
                m.addedNodes &amp;amp;&amp;amp; m.addedNodes.forEach(function (n) {&lt;br /&gt;
                    if (n.nodeType === 1) walkAndReplace(n);&lt;br /&gt;
                    else if (n.nodeType === 3 &amp;amp;&amp;amp; n.parentNode) walkAndReplace(n.parentNode);&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
        obs.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
    }, false);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=104883</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=104883"/>
		<updated>2025-12-17T06:11:31Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// ==UserScript==&lt;br /&gt;
// @name         MediaWiki Smart Single Quotes&lt;br /&gt;
// @namespace    http://your.local/&lt;br /&gt;
// @version      1.0&lt;br /&gt;
// @description  Convert straight single quotes to typographic single quotes on MediaWiki pages (visual only).&lt;br /&gt;
// @match        https://wiki.ekatrafoundation.org/*&lt;br /&gt;
// @grant        none&lt;br /&gt;
// ==/UserScript==&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function convertSingleQuotesText(text) {&lt;br /&gt;
        if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
        text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;); // contractions/possessives&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;); // opening quotes&lt;br /&gt;
        text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;); // remaining closing quotes&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        if (!root) return;&lt;br /&gt;
        try {&lt;br /&gt;
            var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
            var n;&lt;br /&gt;
            var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;]);&lt;br /&gt;
            while ((n = walker.nextNode())) {&lt;br /&gt;
                var parent = n.parentNode;&lt;br /&gt;
                if (!parent) continue;&lt;br /&gt;
                var anc = parent, skip = false;&lt;br /&gt;
                while (anc &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                    if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                    anc = anc.parentNode;&lt;br /&gt;
                }&lt;br /&gt;
                if (skip) continue;&lt;br /&gt;
                var orig = n.nodeValue;&lt;br /&gt;
                var rep = convertSingleQuotesText(orig);&lt;br /&gt;
                if (rep !== orig) n.nodeValue = rep;&lt;br /&gt;
            }&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes error&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function applyOnce() {&lt;br /&gt;
        var root = document.querySelector(&#039;.mw-parser-output&#039;) || document.body;&lt;br /&gt;
        walkAndReplace(root);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // run after window.load, also watch for AJAX content&lt;br /&gt;
    window.addEventListener(&#039;load&#039;, function () {&lt;br /&gt;
        setTimeout(applyOnce, 150);&lt;br /&gt;
        var obs = new MutationObserver(function (mutations) {&lt;br /&gt;
            mutations.forEach(function (m) {&lt;br /&gt;
                m.addedNodes &amp;amp;&amp;amp; m.addedNodes.forEach(function (n) {&lt;br /&gt;
                    if (n.nodeType === 1) walkAndReplace(n);&lt;br /&gt;
                    else if (n.nodeType === 3 &amp;amp;&amp;amp; n.parentNode) walkAndReplace(n.parentNode);&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
        obs.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
    }, false);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=104882</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=104882"/>
		<updated>2025-12-17T06:10:21Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
&lt;br /&gt;
	var zoomInSVG =&lt;br /&gt;
		&#039;&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;path d=&amp;quot;M15.5 14h-.8l-.3-.3a6.5 6.5 0 1 0-.7.7l.3.3v.8L20 21.5 21.5 20z &#039; +&lt;br /&gt;
		&#039;M10 14a4 4 0 1 1 0-8 4 4 0 0 1 0 8z &#039; +&lt;br /&gt;
		&#039;M11 7H9v2H7v2h2v2h2v-2h2V9h-2z&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
	var zoomOutSVG =&lt;br /&gt;
		&#039;&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;path d=&amp;quot;M15.5 14h-.8l-.3-.3a6.5 6.5 0 1 0-.7.7l.3.3v.8L20 21.5 21.5 20z &#039; +&lt;br /&gt;
		&#039;M7 9h6v2H7z&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
	var toggleSVG =&lt;br /&gt;
		&#039;&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;path d=&amp;quot;M5 4h14v2H5zm4 4h6l-2 12h-2z&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&lt;br /&gt;
		&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index:9999; float:right; display:flex; gap:8px; cursor:pointer;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
			&#039;&amp;lt;span id=&amp;quot;zoomInIcon&amp;quot;&amp;gt;&#039; + zoomInSVG + &#039;&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
			&#039;&amp;lt;span id=&amp;quot;zoomOutIcon&amp;quot;&amp;gt;&#039; + zoomOutSVG + &#039;&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
			&#039;&amp;lt;span id=&amp;quot;toggleButton&amp;quot;&amp;gt;&#039; + toggleSVG + &#039;&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
		&#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
&lt;br /&gt;
	var sizes = [parseFloat($bodyContent.css(&#039;font-size&#039;))];&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css(&#039;font-size&#039;, sizes[+useCustom] + &#039;pt&#039;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(&#039;#zoomInIcon&#039;).on(&#039;click&#039;, function () {&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	$(&#039;#zoomOutIcon&#039;).on(&#039;click&#039;, function () {&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	$(&#039;#toggleButton&#039;).on(&#039;click&#039;, toggle);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// ==UserScript==&lt;br /&gt;
// @name         MediaWiki Smart Single Quotes&lt;br /&gt;
// @namespace    http://your.local/&lt;br /&gt;
// @version      1.0&lt;br /&gt;
// @description  Convert straight single quotes to typographic single quotes on MediaWiki pages (visual only).&lt;br /&gt;
// @match        https://wiki.ekatrafoundation.org/*&lt;br /&gt;
// @grant        none&lt;br /&gt;
// ==/UserScript==&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function convertSingleQuotesText(text) {&lt;br /&gt;
        if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
        text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;); // contractions/possessives&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;); // opening quotes&lt;br /&gt;
        text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;); // remaining closing quotes&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        if (!root) return;&lt;br /&gt;
        try {&lt;br /&gt;
            var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
            var n;&lt;br /&gt;
            var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;]);&lt;br /&gt;
            while ((n = walker.nextNode())) {&lt;br /&gt;
                var parent = n.parentNode;&lt;br /&gt;
                if (!parent) continue;&lt;br /&gt;
                var anc = parent, skip = false;&lt;br /&gt;
                while (anc &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                    if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                    anc = anc.parentNode;&lt;br /&gt;
                }&lt;br /&gt;
                if (skip) continue;&lt;br /&gt;
                var orig = n.nodeValue;&lt;br /&gt;
                var rep = convertSingleQuotesText(orig);&lt;br /&gt;
                if (rep !== orig) n.nodeValue = rep;&lt;br /&gt;
            }&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes error&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function applyOnce() {&lt;br /&gt;
        var root = document.querySelector(&#039;.mw-parser-output&#039;) || document.body;&lt;br /&gt;
        walkAndReplace(root);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // run after window.load, also watch for AJAX content&lt;br /&gt;
    window.addEventListener(&#039;load&#039;, function () {&lt;br /&gt;
        setTimeout(applyOnce, 150);&lt;br /&gt;
        var obs = new MutationObserver(function (mutations) {&lt;br /&gt;
            mutations.forEach(function (m) {&lt;br /&gt;
                m.addedNodes &amp;amp;&amp;amp; m.addedNodes.forEach(function (n) {&lt;br /&gt;
                    if (n.nodeType === 1) walkAndReplace(n);&lt;br /&gt;
                    else if (n.nodeType === 3 &amp;amp;&amp;amp; n.parentNode) walkAndReplace(n.parentNode);&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
        obs.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
    }, false);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=104881</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=104881"/>
		<updated>2025-12-17T06:08:20Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: Replace zoom img&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var zoomInSVG = `&lt;br /&gt;
&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M15.5 14h-.8l-.3-.3a6.5 6.5 0 1 0-.7.7l.3.3v.8L20 21.5 21.5 20z&lt;br /&gt;
           M10 14a4 4 0 1 1 0-8 4 4 0 0 1 0 8z&lt;br /&gt;
           M11 7H9v2H7v2h2v2h2v-2h2V9h-2z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;`;&lt;br /&gt;
&lt;br /&gt;
var zoomOutSVG = `&lt;br /&gt;
&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M15.5 14h-.8l-.3-.3a6.5 6.5 0 1 0-.7.7l.3.3v.8L20 21.5 21.5 20z&lt;br /&gt;
           M7 9h6v2H7z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;`;&lt;br /&gt;
&lt;br /&gt;
var toggleSVG = `&lt;br /&gt;
&amp;lt;svg width=&amp;quot;22&amp;quot; height=&amp;quot;22&amp;quot; viewBox=&amp;quot;0 0 24 24&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M5 4h14v2H5zm4 4h6l-2 12h-2z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;`;&lt;br /&gt;
&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
$(&#039;#content&#039;).prepend(`&lt;br /&gt;
&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index:9999; float:right; display:flex; gap:8px; cursor:pointer;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span id=&amp;quot;zoomInIcon&amp;quot;&amp;gt;${zoomInSVG}&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span id=&amp;quot;zoomOutIcon&amp;quot;&amp;gt;${zoomOutSVG}&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span id=&amp;quot;toggleButton&amp;quot;&amp;gt;${toggleSVG}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
`);&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// ==UserScript==&lt;br /&gt;
// @name         MediaWiki Smart Single Quotes&lt;br /&gt;
// @namespace    http://your.local/&lt;br /&gt;
// @version      1.0&lt;br /&gt;
// @description  Convert straight single quotes to typographic single quotes on MediaWiki pages (visual only).&lt;br /&gt;
// @match        https://wiki.ekatrafoundation.org/*&lt;br /&gt;
// @grant        none&lt;br /&gt;
// ==/UserScript==&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function convertSingleQuotesText(text) {&lt;br /&gt;
        if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
        text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;); // contractions/possessives&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;); // opening quotes&lt;br /&gt;
        text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;); // remaining closing quotes&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        if (!root) return;&lt;br /&gt;
        try {&lt;br /&gt;
            var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
            var n;&lt;br /&gt;
            var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;]);&lt;br /&gt;
            while ((n = walker.nextNode())) {&lt;br /&gt;
                var parent = n.parentNode;&lt;br /&gt;
                if (!parent) continue;&lt;br /&gt;
                var anc = parent, skip = false;&lt;br /&gt;
                while (anc &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                    if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                    anc = anc.parentNode;&lt;br /&gt;
                }&lt;br /&gt;
                if (skip) continue;&lt;br /&gt;
                var orig = n.nodeValue;&lt;br /&gt;
                var rep = convertSingleQuotesText(orig);&lt;br /&gt;
                if (rep !== orig) n.nodeValue = rep;&lt;br /&gt;
            }&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes error&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function applyOnce() {&lt;br /&gt;
        var root = document.querySelector(&#039;.mw-parser-output&#039;) || document.body;&lt;br /&gt;
        walkAndReplace(root);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // run after window.load, also watch for AJAX content&lt;br /&gt;
    window.addEventListener(&#039;load&#039;, function () {&lt;br /&gt;
        setTimeout(applyOnce, 150);&lt;br /&gt;
        var obs = new MutationObserver(function (mutations) {&lt;br /&gt;
            mutations.forEach(function (m) {&lt;br /&gt;
                m.addedNodes &amp;amp;&amp;amp; m.addedNodes.forEach(function (n) {&lt;br /&gt;
                    if (n.nodeType === 1) walkAndReplace(n);&lt;br /&gt;
                    else if (n.nodeType === 3 &amp;amp;&amp;amp; n.parentNode) walkAndReplace(n.parentNode);&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
        obs.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
    }, false);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103412</id>
		<title>Module:Tree chart</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103412"/>
		<updated>2025-11-11T14:45:46Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Module:Tree chart&lt;br /&gt;
-- Defensive renderer for table-based tree pieces&lt;br /&gt;
-- Avoids hard require(&#039;strict&#039;) so it won&#039;t fail on installs without that library.&lt;br /&gt;
&lt;br /&gt;
-- try to load &#039;strict&#039; if available, but don&#039;t error if it&#039;s missing&lt;br /&gt;
pcall(function() require(&#039;strict&#039;) end)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- load cell definitions (Module:Tree chart/data)&lt;br /&gt;
local cells = mw.loadData(&#039;Module:Tree chart/data&#039;)&lt;br /&gt;
&lt;br /&gt;
-- internal renderer: accepts an array where each entry is either:&lt;br /&gt;
--  * a string key (looks up cells[key]) or&lt;br /&gt;
--  * a table describing a custom cell (text, colspan, rowspan, etc)&lt;br /&gt;
function p._main(cell_args)&lt;br /&gt;
    local ret = mw.html.create()&lt;br /&gt;
    local tbl = ret:tag(&#039;table&#039;)&lt;br /&gt;
                 :addClass(&#039;tree-chart-table&#039;)&lt;br /&gt;
                 :css{ borderCollapse = &#039;collapse&#039;, [&#039;vertical-align&#039;] = &#039;top&#039; }&lt;br /&gt;
&lt;br /&gt;
    local top = tbl:tag(&#039;tr&#039;):css{ height = &#039;1px&#039;, [&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
    local bottom = tbl:tag(&#039;tr&#039;):css{ height = &#039;1px&#039;, [&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
&lt;br /&gt;
    for _, v in ipairs(cell_args) do&lt;br /&gt;
        if type(v) == &#039;string&#039; then&lt;br /&gt;
            local celldef = cells[v]&lt;br /&gt;
            if celldef then&lt;br /&gt;
                if celldef.t then&lt;br /&gt;
                    top:wikitext(celldef.t)&lt;br /&gt;
                else&lt;br /&gt;
                    top:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                end&lt;br /&gt;
                if celldef.b then&lt;br /&gt;
                    bottom:wikitext(celldef.b)&lt;br /&gt;
                else&lt;br /&gt;
                    bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                -- unknown symbol =&amp;gt; placeholder cells so columns align&lt;br /&gt;
                top:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            -- custom cell (table) from unnamed params&lt;br /&gt;
            local colspan = v.colspan or cell_args.colspan or 6&lt;br /&gt;
            local rowspan = v.rowspan or cell_args.rowspan or 2&lt;br /&gt;
            local border = (v.border or cell_args.border or &#039;2&#039;) .. &#039;px solid&#039;&lt;br /&gt;
&lt;br /&gt;
            top:tag(&#039;td&#039;)&lt;br /&gt;
                :attr{ colspan = tostring(colspan), rowspan = tostring(rowspan) }&lt;br /&gt;
                :css{ padding = &#039;0.2em&#039;, border = border }&lt;br /&gt;
                :cssText(v.boxstyle or cell_args.boxstyle or &#039;&#039;)&lt;br /&gt;
                :wikitext(v.text or &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
            if tonumber(rowspan) == nil or tonumber(rowspan) &amp;lt; 2 then&lt;br /&gt;
                bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(tbl)&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:Tree chart&#039;,&lt;br /&gt;
        trim = false,&lt;br /&gt;
        removeBlanks = false&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    local cell_args = {&lt;br /&gt;
        colspan = args.colspan,&lt;br /&gt;
        rowspan = args.rowspan,&lt;br /&gt;
        border = args.border,&lt;br /&gt;
        boxstyle = args.boxstyle&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for _, val in ipairs(args) do&lt;br /&gt;
        local trimmedVal = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
        if trimmedVal == &#039;&#039; then&lt;br /&gt;
            trimmedVal = &#039;$&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if cells[trimmedVal] then&lt;br /&gt;
            table.insert(cell_args, trimmedVal)&lt;br /&gt;
        else&lt;br /&gt;
            local rightTrimmedVal = val:gsub(&#039;%s+$&#039;,&#039;&#039;)&lt;br /&gt;
            local custom = {&lt;br /&gt;
                text = args[trimmedVal] or (&#039;{{{&#039;..trimmedVal..&#039;}}}&#039;),&lt;br /&gt;
                colspan = args[&#039;colspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                rowspan = args[&#039;rowspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                border = args[&#039;border_&#039;..rightTrimmedVal],&lt;br /&gt;
                boxstyle = args[&#039;boxstyle_&#039;..rightTrimmedVal]&lt;br /&gt;
            }&lt;br /&gt;
            table.insert(cell_args, custom)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return p._main(cell_args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103411</id>
		<title>Module:Tree chart</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103411"/>
		<updated>2025-11-11T14:35:44Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Module:Tree chart&lt;br /&gt;
-- Defensive renderer that emits a scoped inline stylesheet next to the table.&lt;br /&gt;
pcall(function() require(&#039;strict&#039;) end)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local cells = mw.loadData(&#039;Module:Tree chart/data&#039;)&lt;br /&gt;
&lt;br /&gt;
-- safe wrapper to insert raw HTML fragments into mw.html nodes&lt;br /&gt;
local function safe_wikitext(node, html)&lt;br /&gt;
    node:wikitext(html)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(cell_args)&lt;br /&gt;
    local out = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
    -- Inline style block scoped to .tree-chart-inline-style (highly specific, uses !important)&lt;br /&gt;
    local style = [[&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
/* Scoped tree styles that override global rules */&lt;br /&gt;
.tree-chart-inline-style { border-collapse: collapse !important; border-spacing: 0 !important; vertical-align: top !important; display: inline-table !important; font-family: inherit !important; }&lt;br /&gt;
.tree-chart-inline-style td { padding: 0 !important; margin: 0 !important; vertical-align: top !important; box-sizing: border-box !important; white-space: nowrap !important; line-height: 1 !important; font-size: 0.9rem !important; }&lt;br /&gt;
.tree-chart-inline-style td.connector { padding: 0 !important; width:1em !important; height:1em !important; min-width:1em !important; min-height:1em !important; max-width:1em !important; max-height:1em !important; line-height:1 !important; }&lt;br /&gt;
.tree-chart-inline-style td.box { padding: 0.35em 0.9em !important; white-space: normal !important; font-size: 1rem !important; text-align: center !important; }&lt;br /&gt;
.tree-chart-inline-style td[style*=&amp;quot;border-bottom&amp;quot;], .tree-chart-inline-style td[style*=&amp;quot;border-right&amp;quot;], .tree-chart-inline-style td[style*=&amp;quot;border&amp;quot;] { box-sizing: border-box !important; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
    ]]&lt;br /&gt;
    out:wikitext(style)&lt;br /&gt;
&lt;br /&gt;
    -- Build table with explicit style attribute (avoid :css camelCase pitfalls)&lt;br /&gt;
    local tbl = out:tag(&#039;table&#039;)&lt;br /&gt;
        :addClass(&#039;tree-chart-inline-style&#039;)&lt;br /&gt;
        :attr{ style = &#039;border-collapse: collapse; border-spacing: 0; vertical-align: top;&#039; }&lt;br /&gt;
&lt;br /&gt;
    local top = tbl:tag(&#039;tr&#039;):attr{ style = &#039;height:1px; text-align:center;&#039; }&lt;br /&gt;
    local bottom = tbl:tag(&#039;tr&#039;):attr{ style = &#039;height:1px; text-align:center;&#039; }&lt;br /&gt;
&lt;br /&gt;
    for _, v in ipairs(cell_args) do&lt;br /&gt;
        if type(v) == &#039;string&#039; then&lt;br /&gt;
            local celldef = cells[v]&lt;br /&gt;
            if celldef then&lt;br /&gt;
                -- celldef.t / celldef.b are fragments produced by Module:Tree chart/data (strings)&lt;br /&gt;
                -- Tag their &amp;lt;td&amp;gt; elements as connector cells by adding class=&amp;quot;connector&amp;quot;&lt;br /&gt;
                if celldef.t then&lt;br /&gt;
                    local tstr = tostring(celldef.t)&lt;br /&gt;
                    -- add class only if not already present&lt;br /&gt;
                    tstr = tstr:gsub(&#039;&amp;lt;td(.-)&amp;gt;&#039;, function(attrs)&lt;br /&gt;
                        -- if class attribute exists, append connector; otherwise add it&lt;br /&gt;
                        if attrs:match(&#039;class%s*=&#039;) then&lt;br /&gt;
                            return &#039;&amp;lt;td&#039; .. attrs:gsub(&#039;class%s*=%s*&amp;quot;(.-)&amp;quot;&#039;, function(c) return string.format(&#039; class=&amp;quot;%s connector&amp;quot;&#039;, c) end) .. &#039;&amp;gt;&#039;&lt;br /&gt;
                        else&lt;br /&gt;
                            return &#039;&amp;lt;td&#039; .. attrs .. &#039; class=&amp;quot;connector&amp;quot;&amp;gt;&#039;&lt;br /&gt;
                        end&lt;br /&gt;
                    end)&lt;br /&gt;
                    safe_wikitext(top, tstr)&lt;br /&gt;
                else&lt;br /&gt;
                    top:tag(&#039;td&#039;):addClass(&#039;connector&#039;):attr{ style = &#039;width:1em; height:1em;&#039; }&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                if celldef.b then&lt;br /&gt;
                    local bstr = tostring(celldef.b)&lt;br /&gt;
                    bstr = bstr:gsub(&#039;&amp;lt;td(.-)&amp;gt;&#039;, function(attrs)&lt;br /&gt;
                        if attrs:match(&#039;class%s*=&#039;) then&lt;br /&gt;
                            return &#039;&amp;lt;td&#039; .. attrs:gsub(&#039;class%s*=%s*&amp;quot;(.-)&amp;quot;&#039;, function(c) return string.format(&#039; class=&amp;quot;%s connector&amp;quot;&#039;, c) end) .. &#039;&amp;gt;&#039;&lt;br /&gt;
                        else&lt;br /&gt;
                            return &#039;&amp;lt;td&#039; .. attrs .. &#039; class=&amp;quot;connector&amp;quot;&amp;gt;&#039;&lt;br /&gt;
                        end&lt;br /&gt;
                    end)&lt;br /&gt;
                    safe_wikitext(bottom, bstr)&lt;br /&gt;
                else&lt;br /&gt;
                    bottom:tag(&#039;td&#039;):addClass(&#039;connector&#039;):attr{ style = &#039;width:1em; height:1em;&#039; }&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                -- unknown symbol: render empty connector td&lt;br /&gt;
                top:tag(&#039;td&#039;):addClass(&#039;connector&#039;):attr{ style = &#039;width:1em; height:1em;&#039; }&lt;br /&gt;
                bottom:tag(&#039;td&#039;):addClass(&#039;connector&#039;):attr{ style = &#039;width:1em; height:1em;&#039; }&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            -- custom cell with text (a boxed cell)&lt;br /&gt;
            local colspan = v.colspan or cell_args.colspan or 6&lt;br /&gt;
            local rowspan = v.rowspan or cell_args.rowspan or 2&lt;br /&gt;
            local border_prop = v.border or cell_args.border or &#039;2&#039;&lt;br /&gt;
            local border = tostring(border_prop) .. &#039;px solid&#039;&lt;br /&gt;
&lt;br /&gt;
            top:tag(&#039;td&#039;)&lt;br /&gt;
                :addClass(&#039;box&#039;)&lt;br /&gt;
                :attr{&lt;br /&gt;
                    colspan = tostring(colspan),&lt;br /&gt;
                    rowspan = tostring(rowspan),&lt;br /&gt;
                    style = &#039;padding:0.35em 0.9em; border: &#039; .. border .. &#039;; box-sizing: border-box;&#039;&lt;br /&gt;
                }&lt;br /&gt;
                :wikitext(v.text or &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
            -- if rowspan &amp;lt; 2 we need a bottom placeholder; most boxes use rowspan=2 so bottom is empty&lt;br /&gt;
            if not tonumber(rowspan) or tonumber(rowspan) &amp;lt; 2 then&lt;br /&gt;
                bottom:tag(&#039;td&#039;):addClass(&#039;connector&#039;):attr{ style = &#039;width:1em; height:1em;&#039; }&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(tbl)&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:Tree chart&#039;, trim = false, removeBlanks = false })&lt;br /&gt;
&lt;br /&gt;
    local cell_args = {&lt;br /&gt;
        colspan = args.colspan,&lt;br /&gt;
        rowspan = args.rowspan,&lt;br /&gt;
        border = args.border,&lt;br /&gt;
        boxstyle = args.boxstyle&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for _, val in ipairs(args) do&lt;br /&gt;
        local trimmedVal = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
        if trimmedVal == &#039;&#039; then trimmedVal = &#039;$&#039; end&lt;br /&gt;
&lt;br /&gt;
        if cells[trimmedVal] then&lt;br /&gt;
            table.insert(cell_args, trimmedVal)&lt;br /&gt;
        else&lt;br /&gt;
            local rightTrimmedVal = val:gsub(&#039;%s+$&#039;,&#039;&#039;)&lt;br /&gt;
            local custom = {&lt;br /&gt;
                text = args[trimmedVal] or (&#039;{{{&#039;..trimmedVal..&#039;}}}&#039;),&lt;br /&gt;
                colspan = args[&#039;colspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                rowspan = args[&#039;rowspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                border = args[&#039;border_&#039;..rightTrimmedVal],&lt;br /&gt;
                boxstyle = args[&#039;boxstyle_&#039;..rightTrimmedVal]&lt;br /&gt;
            }&lt;br /&gt;
            table.insert(cell_args, custom)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return p._main(cell_args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=103410</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=103410"/>
		<updated>2025-11-11T14:30:51Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, .content h1, .content h2 {&lt;br /&gt;
        display: block !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
    padding-right: 0px !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
/* === Tree-chart overrides (scoped, safe) ===&lt;br /&gt;
   Fixes large font / justification / padding inherited from the site-wide rules.&lt;br /&gt;
*/&lt;br /&gt;
.tree-chart-table {&lt;br /&gt;
  border-collapse: collapse !important;&lt;br /&gt;
  border-spacing: 0 !important;&lt;br /&gt;
  vertical-align: top !important;&lt;br /&gt;
&lt;br /&gt;
  /* prevent the large site font from inflating connector cells */&lt;br /&gt;
  font-size: 14px !important;       /* tune this if you want bigger/smaller boxes */&lt;br /&gt;
  line-height: 1 !important;&lt;br /&gt;
  text-align: center !important;    /* center boxed labels; connectors use borders */&lt;br /&gt;
  font-family: inherit !important;  /* use same family but scaled down */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make connector cells truly tiny and not affected by global padding/justify */&lt;br /&gt;
.tree-chart-table td {&lt;br /&gt;
  padding: 0 !important;&lt;br /&gt;
  margin: 0 !important;&lt;br /&gt;
  vertical-align: top !important;&lt;br /&gt;
  box-sizing: border-box !important;&lt;br /&gt;
  white-space: nowrap !important;&lt;br /&gt;
  line-height: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Boxed content cells (the visible labeled boxes) — provide readable padding */&lt;br /&gt;
.tree-chart-table td[style*=&amp;quot;border: 2px solid&amp;quot;],&lt;br /&gt;
.tree-chart-table td[style*=&amp;quot;border:2px solid&amp;quot;] {&lt;br /&gt;
  padding: 0.35em 0.9em !important; /* tweak if you want larger/smaller boxes */&lt;br /&gt;
  white-space: normal !important;&lt;br /&gt;
  font-size: 1em !important;        /* relative to the .tree-chart-table font-size above */&lt;br /&gt;
  text-align: center !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Ensure very small connector cells keep fixed dimensions */&lt;br /&gt;
.tree-chart-table td[style*=&amp;quot;height:1em&amp;quot;],&lt;br /&gt;
.tree-chart-table td[style*=&amp;quot;height: 1em&amp;quot;] {&lt;br /&gt;
  height: 1em !important;&lt;br /&gt;
  min-height: 1em !important;&lt;br /&gt;
  max-height: 1em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep border styles visible on tiny cells */&lt;br /&gt;
.tree-chart-table td { border-collapse: collapse !important; }&lt;br /&gt;
&lt;br /&gt;
/* Optional debug aid (uncomment while adjusting) */&lt;br /&gt;
/* .tree-chart-table td { outline: 1px solid rgba(0,0,0,0.05) !important; } */&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=103409</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=103409"/>
		<updated>2025-11-11T14:26:34Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, .content h1, .content h2 {&lt;br /&gt;
        display: block !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
    padding-right: 0px !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=103408</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=103408"/>
		<updated>2025-11-11T14:26:08Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, .content h1, .content h2 {&lt;br /&gt;
        display: block !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
    padding-right: 0px !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
/* Tree chart styling */&lt;br /&gt;
.tree-chart-table { border-collapse: collapse !important; border-spacing: 0 !important; }&lt;br /&gt;
.tree-chart-table td { padding: 0; vertical-align: top; line-height: 1; white-space: nowrap; }&lt;br /&gt;
.tree-chart-table td &amp;gt; * { display: block; } /* keep cell contents from affecting line-height */&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103407</id>
		<title>Module:Tree chart</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103407"/>
		<updated>2025-11-11T14:25:30Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Module:Tree chart&lt;br /&gt;
-- Defensive renderer for table-based tree pieces&lt;br /&gt;
-- Avoids hard require(&#039;strict&#039;) so it won&#039;t fail on installs without that library.&lt;br /&gt;
&lt;br /&gt;
pcall(function() require(&#039;strict&#039;) end)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local cells = mw.loadData(&#039;Module:Tree chart/data&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._main(cell_args)&lt;br /&gt;
    local ret = mw.html.create()&lt;br /&gt;
    -- use exact CSS property names (strings) for hyphenated properties&lt;br /&gt;
    local tbl = ret:tag(&#039;table&#039;)&lt;br /&gt;
                 :addClass(&#039;tree-chart-table&#039;)&lt;br /&gt;
                 :css{&lt;br /&gt;
                     [&#039;border-collapse&#039;] = &#039;collapse&#039;,&lt;br /&gt;
                     [&#039;border-spacing&#039;] = &#039;0&#039;,&lt;br /&gt;
                     [&#039;vertical-align&#039;] = &#039;top&#039;&lt;br /&gt;
                 }&lt;br /&gt;
&lt;br /&gt;
    local top = tbl:tag(&#039;tr&#039;):css{ [&#039;height&#039;] = &#039;1px&#039;, [&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
    local bottom = tbl:tag(&#039;tr&#039;):css{ [&#039;height&#039;] = &#039;1px&#039;, [&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
&lt;br /&gt;
    for _, v in ipairs(cell_args) do&lt;br /&gt;
        if type(v) == &#039;string&#039; then&lt;br /&gt;
            local celldef = cells[v]&lt;br /&gt;
            if celldef then&lt;br /&gt;
                if celldef.t then&lt;br /&gt;
                    top:wikitext(celldef.t)&lt;br /&gt;
                else&lt;br /&gt;
                    top:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                end&lt;br /&gt;
                if celldef.b then&lt;br /&gt;
                    bottom:wikitext(celldef.b)&lt;br /&gt;
                else&lt;br /&gt;
                    bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                top:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            local colspan = v.colspan or cell_args.colspan or 6&lt;br /&gt;
            local rowspan = v.rowspan or cell_args.rowspan or 2&lt;br /&gt;
            local border_prop = v.border or cell_args.border or &#039;2&#039;&lt;br /&gt;
            local border = tostring(border_prop) .. &#039;px solid&#039;&lt;br /&gt;
&lt;br /&gt;
            top:tag(&#039;td&#039;)&lt;br /&gt;
                :attr{ colspan = tostring(colspan), rowspan = tostring(rowspan) }&lt;br /&gt;
                :css{ padding = &#039;0.2em&#039; }&lt;br /&gt;
                :attr{ style = &#039;border: &#039; .. border .. &#039;;&#039; } -- use explicit style when assembling string&lt;br /&gt;
                :cssText(v.boxstyle or cell_args.boxstyle or &#039;&#039;)&lt;br /&gt;
                :wikitext(v.text or &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
            if tonumber(rowspan) == nil or tonumber(rowspan) &amp;lt; 2 then&lt;br /&gt;
                bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(tbl)&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:Tree chart&#039;,&lt;br /&gt;
        trim = false,&lt;br /&gt;
        removeBlanks = false&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    local cell_args = {&lt;br /&gt;
        colspan = args.colspan,&lt;br /&gt;
        rowspan = args.rowspan,&lt;br /&gt;
        border = args.border,&lt;br /&gt;
        boxstyle = args.boxstyle&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for _, val in ipairs(args) do&lt;br /&gt;
        local trimmedVal = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
        if trimmedVal == &#039;&#039; then&lt;br /&gt;
            trimmedVal = &#039;$&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if cells[trimmedVal] then&lt;br /&gt;
            table.insert(cell_args, trimmedVal)&lt;br /&gt;
        else&lt;br /&gt;
            local rightTrimmedVal = val:gsub(&#039;%s+$&#039;,&#039;&#039;)&lt;br /&gt;
            local custom = {&lt;br /&gt;
                text = args[trimmedVal] or (&#039;{{{&#039;..trimmedVal..&#039;}}}&#039;),&lt;br /&gt;
                colspan = args[&#039;colspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                rowspan = args[&#039;rowspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                border = args[&#039;border_&#039;..rightTrimmedVal],&lt;br /&gt;
                boxstyle = args[&#039;boxstyle_&#039;..rightTrimmedVal]&lt;br /&gt;
            }&lt;br /&gt;
            table.insert(cell_args, custom)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return p._main(cell_args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=103253</id>
		<title>User:Gurwinder/tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=103253"/>
		<updated>2025-11-09T14:35:08Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tree chart/start}}&lt;br /&gt;
{{Tree chart| | | | |CLEAR| | | | |CLEAR=Clear box}}&lt;br /&gt;
{{Tree chart| |,|-|-|&#039;|!|`|-|-|.| }}&lt;br /&gt;
{{Tree chart|RED  |~|GREEN|~|BLUE |RED=Red box|GREEN=Green box|BLUE=Blue box&lt;br /&gt;
|boxstyle_RED  =color:white; background-color: red;&lt;br /&gt;
|boxstyle_GREEN=color:yellow; background-color: green;&lt;br /&gt;
|boxstyle_BLUE =color:white; background-color: blue;&lt;br /&gt;
}}&lt;br /&gt;
{{Tree chart/end}}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103252</id>
		<title>Module:Tree chart</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103252"/>
		<updated>2025-11-09T14:34:30Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Module:Tree chart&lt;br /&gt;
-- Defensive renderer for table-based tree pieces&lt;br /&gt;
-- Avoids hard require(&#039;strict&#039;) so it won&#039;t fail on installs without that library.&lt;br /&gt;
&lt;br /&gt;
-- try to load &#039;strict&#039; if available, but don&#039;t error if it&#039;s missing&lt;br /&gt;
pcall(function() require(&#039;strict&#039;) end)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- load cell definitions (Module:Tree chart/data)&lt;br /&gt;
local cells = mw.loadData(&#039;Module:Tree chart/data&#039;)&lt;br /&gt;
&lt;br /&gt;
-- internal renderer: accepts an array where each entry is either:&lt;br /&gt;
--  * a string key (looks up cells[key]) or&lt;br /&gt;
--  * a table describing a custom cell (text, colspan, rowspan, etc)&lt;br /&gt;
function p._main(cell_args)&lt;br /&gt;
    local ret = mw.html.create()&lt;br /&gt;
    local tbl = ret:tag(&#039;table&#039;)&lt;br /&gt;
                 :addClass(&#039;tree-chart-table&#039;)&lt;br /&gt;
                 :css{ borderCollapse = &#039;collapse&#039;, [&#039;vertical-align&#039;] = &#039;top&#039; }&lt;br /&gt;
&lt;br /&gt;
    local top = tbl:tag(&#039;tr&#039;):css{ height = &#039;1px&#039;, [&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
    local bottom = tbl:tag(&#039;tr&#039;):css{ height = &#039;1px&#039;, [&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
&lt;br /&gt;
    for _, v in ipairs(cell_args) do&lt;br /&gt;
        if type(v) == &#039;string&#039; then&lt;br /&gt;
            local celldef = cells[v]&lt;br /&gt;
            if celldef then&lt;br /&gt;
                if celldef.t then&lt;br /&gt;
                    top:wikitext(celldef.t)&lt;br /&gt;
                else&lt;br /&gt;
                    top:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                end&lt;br /&gt;
                if celldef.b then&lt;br /&gt;
                    bottom:wikitext(celldef.b)&lt;br /&gt;
                else&lt;br /&gt;
                    bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                -- unknown symbol =&amp;gt; placeholder cells so columns align&lt;br /&gt;
                top:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            -- custom cell (table) from unnamed params&lt;br /&gt;
            local colspan = v.colspan or cell_args.colspan or 6&lt;br /&gt;
            local rowspan = v.rowspan or cell_args.rowspan or 2&lt;br /&gt;
            local border = (v.border or cell_args.border or &#039;2&#039;) .. &#039;px solid&#039;&lt;br /&gt;
&lt;br /&gt;
            top:tag(&#039;td&#039;)&lt;br /&gt;
                :attr{ colspan = tostring(colspan), rowspan = tostring(rowspan) }&lt;br /&gt;
                :css{ padding = &#039;0.2em&#039;, border = border }&lt;br /&gt;
                :cssText(v.boxstyle or cell_args.boxstyle or &#039;&#039;)&lt;br /&gt;
                :wikitext(v.text or &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
            if tonumber(rowspan) == nil or tonumber(rowspan) &amp;lt; 2 then&lt;br /&gt;
                bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(tbl)&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:Tree chart&#039;,&lt;br /&gt;
        trim = false,&lt;br /&gt;
        removeBlanks = false&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    local cell_args = {&lt;br /&gt;
        colspan = args.colspan,&lt;br /&gt;
        rowspan = args.rowspan,&lt;br /&gt;
        border = args.border,&lt;br /&gt;
        boxstyle = args.boxstyle&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for _, val in ipairs(args) do&lt;br /&gt;
        local trimmedVal = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
        if trimmedVal == &#039;&#039; then&lt;br /&gt;
            trimmedVal = &#039;$&#039;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if cells[trimmedVal] then&lt;br /&gt;
            table.insert(cell_args, trimmedVal)&lt;br /&gt;
        else&lt;br /&gt;
            local rightTrimmedVal = val:gsub(&#039;%s+$&#039;,&#039;&#039;)&lt;br /&gt;
            local custom = {&lt;br /&gt;
                text = args[trimmedVal] or (&#039;{{{&#039;..trimmedVal..&#039;}}}&#039;),&lt;br /&gt;
                colspan = args[&#039;colspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                rowspan = args[&#039;rowspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                border = args[&#039;border_&#039;..rightTrimmedVal],&lt;br /&gt;
                boxstyle = args[&#039;boxstyle_&#039;..rightTrimmedVal]&lt;br /&gt;
            }&lt;br /&gt;
            table.insert(cell_args, custom)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return p._main(cell_args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=103246</id>
		<title>User:Gurwinder/tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=103246"/>
		<updated>2025-11-09T14:29:23Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tree chart/start}}&lt;br /&gt;
{{Tree chart| | | | |CLEAR| | | | |CLEAR=Clear box}}&lt;br /&gt;
{{Tree chart| |,|-|-|&#039;|!|`|-|-|.| }}&lt;br /&gt;
{{Tree chart|RED  |~|GREEN|~|BLUE |RED=Red box|GREEN=Green box|BLUE=Blue box&lt;br /&gt;
|boxstyle_RED  =color:white; background-color: red;&lt;br /&gt;
|boxstyle_GREEN=color:yellow; background-color: green;&lt;br /&gt;
|boxstyle_BLUE =color:white; background-color: blue;&lt;br /&gt;
}}&lt;br /&gt;
{{Tree chart/end}}&lt;br /&gt;
&lt;br /&gt;
{{Tree chart|A|B|C}}&lt;br /&gt;
&lt;br /&gt;
{{Tree chart|+|$|+}}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103245</id>
		<title>Module:Tree chart</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=103245"/>
		<updated>2025-11-09T14:28:36Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Module:Tree chart&lt;br /&gt;
-- Renders small table-based &amp;quot;tree&amp;quot; pieces using Module:Tree chart/data&lt;br /&gt;
require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- load cell definitions (Module:Tree chart/data)&lt;br /&gt;
local cells = mw.loadData(&#039;Module:Tree chart/data&#039;)&lt;br /&gt;
&lt;br /&gt;
-- internal renderer: accept an array of cell_args where each entry is either:&lt;br /&gt;
--  * a string (symbol key found in `cells`) or&lt;br /&gt;
--  * a table describing a custom cell (text, colspan, rowspan, etc)&lt;br /&gt;
function p._main(cell_args)&lt;br /&gt;
    -- create outer fragment and a table wrapper so TRs are valid HTML&lt;br /&gt;
    local ret = mw.html.create()&lt;br /&gt;
    local tbl = ret:tag(&#039;table&#039;)&lt;br /&gt;
                 :addClass(&#039;tree-chart-table&#039;)&lt;br /&gt;
                 :css{ borderCollapse = &#039;collapse&#039;, [&#039;vertical-align&#039;] = &#039;top&#039; }&lt;br /&gt;
&lt;br /&gt;
    -- two-row design (top and bottom)&lt;br /&gt;
    local top = tbl:tag(&#039;tr&#039;):css{ height = &#039;1px&#039;, [&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
    local bottom = tbl:tag(&#039;tr&#039;):css{ height = &#039;1px&#039;, [&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
&lt;br /&gt;
    for _, v in ipairs(cell_args) do&lt;br /&gt;
        if type(v) == &#039;string&#039; then&lt;br /&gt;
            local celldef = cells[v]&lt;br /&gt;
            if celldef then&lt;br /&gt;
                -- celldef.t / celldef.b in Module:Tree chart/data are strings with &amp;lt;td&amp;gt; elements&lt;br /&gt;
                if celldef.t then&lt;br /&gt;
                    top:wikitext(celldef.t)&lt;br /&gt;
                else&lt;br /&gt;
                    -- keep structure by emitting an empty cell&lt;br /&gt;
                    top:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                if celldef.b then&lt;br /&gt;
                    bottom:wikitext(celldef.b)&lt;br /&gt;
                else&lt;br /&gt;
                    bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                -- unknown symbol: emit empty placeholders so columns align&lt;br /&gt;
                top:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
                bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            -- custom cell supplied from unnamed params (table with text, colspan, rowspan, etc)&lt;br /&gt;
            local colspan = v.colspan or cell_args.colspan or 6&lt;br /&gt;
            local rowspan = v.rowspan or cell_args.rowspan or 2&lt;br /&gt;
            local border = (v.border or cell_args.border or &#039;2&#039;) .. &#039;px solid&#039;&lt;br /&gt;
&lt;br /&gt;
            -- render the custom cell into the top row&lt;br /&gt;
            top:tag(&#039;td&#039;)&lt;br /&gt;
                :attr{ colspan = tostring(colspan), rowspan = tostring(rowspan) }&lt;br /&gt;
                :css{ padding = &#039;0.2em&#039;, border = border }&lt;br /&gt;
                :cssText(v.boxstyle or cell_args.boxstyle or &#039;&#039;)&lt;br /&gt;
                :wikitext(v.text or &#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
            -- if rowspan covers both rows then we do not need a placeholder in bottom.&lt;br /&gt;
            -- if rowspan &amp;lt; 2 then add an empty td on the bottom row to preserve column counts&lt;br /&gt;
            if tonumber(rowspan) == nil or tonumber(rowspan) &amp;lt; 2 then&lt;br /&gt;
                bottom:tag(&#039;td&#039;):wikitext(&#039;&#039;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(tbl)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- public entry point used by Template:Tree chart wrapper&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:Tree chart&#039;,&lt;br /&gt;
        trim = false,&lt;br /&gt;
        removeBlanks = false&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    -- carry through some global defaults to the constructed cell_args&lt;br /&gt;
    local cell_args = {&lt;br /&gt;
        colspan = args.colspan,&lt;br /&gt;
        rowspan = args.rowspan,&lt;br /&gt;
        border = args.border,&lt;br /&gt;
        boxstyle = args.boxstyle&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    -- iterate positional/unnamed params in order&lt;br /&gt;
    for _, val in ipairs(args) do&lt;br /&gt;
        -- normalize leading/trailing whitespace&lt;br /&gt;
        local trimmedVal = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
        if trimmedVal == &#039;&#039; then&lt;br /&gt;
            trimmedVal = &#039;$&#039;  -- preserve blank cells using $ key as in your data module&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if cells[trimmedVal] then&lt;br /&gt;
            table.insert(cell_args, trimmedVal)&lt;br /&gt;
        else&lt;br /&gt;
            -- handle unnamed params that may be named keys (param1 could contain &amp;quot;name=value&amp;quot;)&lt;br /&gt;
            -- right-trim only to match how Template params behave&lt;br /&gt;
            local rightTrimmedVal = val:gsub(&#039;%s+$&#039;,&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
            -- prepare a custom cell table with possible per-cell overrides&lt;br /&gt;
            local custom = {&lt;br /&gt;
                text = args[trimmedVal] or (&#039;{{{&#039;..trimmedVal..&#039;}}}&#039;),&lt;br /&gt;
                colspan = args[&#039;colspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                rowspan = args[&#039;rowspan_&#039;..rightTrimmedVal],&lt;br /&gt;
                border = args[&#039;border_&#039;..rightTrimmedVal],&lt;br /&gt;
                boxstyle = args[&#039;boxstyle_&#039;..rightTrimmedVal]&lt;br /&gt;
            }&lt;br /&gt;
            table.insert(cell_args, custom)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- render and return HTML string&lt;br /&gt;
    return p._main(cell_args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=103240</id>
		<title>User:Gurwinder/tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=103240"/>
		<updated>2025-11-09T14:23:28Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tree chart/start}}&lt;br /&gt;
{{Tree chart| | | | |CLEAR| | | | |CLEAR=Clear box}}&lt;br /&gt;
{{Tree chart| |,|-|-|&#039;|!|`|-|-|.| }}&lt;br /&gt;
{{Tree chart|RED  |~|GREEN|~|BLUE |RED=Red box|GREEN=Green box|BLUE=Blue box&lt;br /&gt;
|boxstyle_RED  =color:white; background-color: red;&lt;br /&gt;
|boxstyle_GREEN=color:yellow; background-color: green;&lt;br /&gt;
|boxstyle_BLUE =color:white; background-color: blue;&lt;br /&gt;
}}&lt;br /&gt;
{{Tree chart/end}}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=103239</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=103239"/>
		<updated>2025-11-09T14:22:10Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, .content h1, .content h2 {&lt;br /&gt;
        display: block !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
    padding-right: 0px !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=%E0%AA%9A%E0%AA%BF%E0%AA%A4%E0%AB%8D%E0%AA%B0%E0%AA%A6%E0%AA%B0%E0%AB%8D%E0%AA%B6%E0%AA%A8%E0%AB%8B/%E0%AA%AA%E0%AA%BF%E0%AA%A4%E0%AB%83%E0%AA%A4%E0%AA%B0%E0%AB%8D%E0%AA%AA%E0%AA%A3&amp;diff=101561</id>
		<title>ચિત્રદર્શનો/પિતૃતર્પણ</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=%E0%AA%9A%E0%AA%BF%E0%AA%A4%E0%AB%8D%E0%AA%B0%E0%AA%A6%E0%AA%B0%E0%AB%8D%E0%AA%B6%E0%AA%A8%E0%AB%8B/%E0%AA%AA%E0%AA%BF%E0%AA%A4%E0%AB%83%E0%AA%A4%E0%AA%B0%E0%AB%8D%E0%AA%AA%E0%AA%A3&amp;diff=101561"/>
		<updated>2025-10-18T14:47:27Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SetTitle}}&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;૧૫, પિતૃતર્પણ&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Block center|&amp;lt;poem&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;૧&amp;lt;/center&amp;gt;બાર બાર ગયાં વર્ષો રાત્રિઓ પડતાં સૂની,&lt;br /&gt;
બાર બાર વહ્યાં વર્ષો વાદળી વરસી ભીનીઃ&lt;br /&gt;
&lt;br /&gt;
બાર વર્ષો થયાં, તાત! મૃત્યુના પડદા નમ્યે;&lt;br /&gt;
હજી યે ચક્ષુમાં ત્હોયે પ્રવેશો પૂર્વના રમે.&lt;br /&gt;
&lt;br /&gt;
કાલની વીંઝતી પાંખ અનેરા વેગથી ભરી,&lt;br /&gt;
નેત્ર મીંચી ઉઘાડું ત્ય્હાં આવે બ્રહ્માંડને ફરી.&lt;br /&gt;
&lt;br /&gt;
નથી તે મેઘનાં નીરે, નથી અન્ધારના જલે&lt;br /&gt;
ધોયાં કો સ્મૃતિનાં ચિત્રો રંગેલા પ્રાણપાટલે.&lt;br /&gt;
&lt;br /&gt;
આપ્યા એકાન્ત રાત્રીએ, ને મેઘ રસ સીંચિયા;&lt;br /&gt;
એમ જીવનના સર્વે આથમ્યા દિન ઉગિયા.&lt;br /&gt;
&lt;br /&gt;
વસન્તે ને વસન્તે જ બોલે છે બોલ કોકિલા,&lt;br /&gt;
આત્મા એમ બોલે છે વસન્તે આપની લીલા.&lt;br /&gt;
&amp;lt;center&amp;gt;૨&amp;lt;/center&amp;gt;પિતાજી! પત્ર ને પુષ્પે એ જ આવી વસન્ત આ :&lt;br /&gt;
ટ્‌હૌકે છે કોકિલા, એવાં ટ્‌હૌકે છે સ્મરણો, અહા!&lt;br /&gt;
&lt;br /&gt;
આંબાની ડાળ મ્હોરી, ને આત્મા યે મુજ મ્હોરિયો;&lt;br /&gt;
ગાય છે સાધુ ને સન્તો હરિની રસહોરીઓ.&lt;br /&gt;
&lt;br /&gt;
હું ય તે લઈ આ વીણા સ્મરું છું ગુણ આપના;&lt;br /&gt;
પુણ્યશ્લોક પિતા! મન્ત્રો જપું છું પિતૃજાપના.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;૩&amp;lt;/center&amp;gt;વીતતી દીર્ઘ રાત્રી, ને થતો પ્હરોડ દેશમાં,&lt;br /&gt;
એ પ્હરોડે ઊગ્યા આપ આશાવાદી અરુણ શા.&lt;br /&gt;
&lt;br /&gt;
છાયા તો વડલા જેવી, ભાવ તો નદના સમ;&lt;br /&gt;
દેવોના ધામના જેવું હૈડું જાણે હિમાલય.&lt;br /&gt;
&lt;br /&gt;
બુદ્ધિવૈભવ, ને આસ્થા આશા, રસ, ઉદારતાઃ&lt;br /&gt;
એ દૈવી દીપમાલાનાં અન્તરે તેજ રાજતાં.&lt;br /&gt;
&lt;br /&gt;
આપ અમૃતના જાયા, ધાવણે અમૃતે દીધાંઃ&lt;br /&gt;
ને તેથી અમૃતમીઠ્ઠાં આપનાં કવિતો હતાં.&lt;br /&gt;
&lt;br /&gt;
ડાહ્યા પુત્ર જ ડાહ્યાના, અંગોઅંગે ઉરે પણ,&lt;br /&gt;
મન વાણી કર્મમાં યે, ઝરે નિત્યે ડ્‌હાપણ.&lt;br /&gt;
&lt;br /&gt;
વીરા જયકુમારીના, જમાવ્યો જય લોકમાં;&lt;br /&gt;
ને દિનકરના ભાઈ, પ્રતાપી ભાસ્કરે સમા.&lt;br /&gt;
&lt;br /&gt;
દેવાનન્દે રમન્તા તે દેવાનન્દ ગુરુથી આ;&lt;br /&gt;
પામીને કાવ્યની દીક્ષા દીપ્યા દેવકુમાર શા.&lt;br /&gt;
&lt;br /&gt;
ભર્યો ઉત્સાહી એ કંઠ મેઘના સમ ગાજતો,&lt;br /&gt;
યશસ્વી વાણીનો એહ પ્રોત્સાહી બોલ આથમ્યો.&lt;br /&gt;
&lt;br /&gt;
શ્વેત વસ્રો સદા ધાર્યાં, પ્રાણની શ્વેત પાંખ શાંઃ&lt;br /&gt;
તેજવાઘા સજી જાણે ફિરિશ્તો કો મનુષ્યમાં.&lt;br /&gt;
&lt;br /&gt;
નમ્ર ને નમતા, ત્હોયે શૈલ શી દૃઢતા હતી;&lt;br /&gt;
ચાલ ધીમી ધીમી, ત્હોયે ખંતથી વેગીલી ગતિ.&lt;br /&gt;
&lt;br /&gt;
હાથે પીતળપટ્ટાળી શ્યામ સીસમ-લાકડી;&lt;br /&gt;
બાંધી રાખી શું સંકેલી સેના સેતાનની લ્હડી!&lt;br /&gt;
&lt;br /&gt;
પૂર્યાં છે દુઃખ ને પાપ મનુષ્યે જગમાં રૂડાં,&lt;br /&gt;
પાડ્યા અન્ધારના પાટા તેજસ્વી વિશ્વમાં વડા.&lt;br /&gt;
&lt;br /&gt;
દીઠું એ સૌ દીર્ઘ કાલ, સુધાર્યું સુધર્યું ય તે;&lt;br /&gt;
પછી સંસારવાડીથી સંકેલી લીધ દૃષ્ટિને.&lt;br /&gt;
&lt;br /&gt;
બહુ વર્ષો સુધી આપે મૂલવ્યાં મોતી બ્હારનાં,&lt;br /&gt;
પછી પારખવા પેઠા આત્માના દરિયાવમાં.&lt;br /&gt;
&lt;br /&gt;
ઘૂમતાં સૌ દિશે ત્હેને ધાર્યાં એક સમાધિમાં,&lt;br /&gt;
વળી બ્રહ્માંડથી ચક્ષુ પરોવ્યાં પરમેશમાં.&lt;br /&gt;
&lt;br /&gt;
વિધિએ ભાગ્યરેખા શું દોરી કુંકુંમકેસરે!&lt;br /&gt;
ઉજ્જ્‌વળા ભાલમાં એવી રેખા તિલકની તરે.&lt;br /&gt;
&lt;br /&gt;
સ્મિતની સુન્દરતાના કપોલે અંકુરો ઊભાઃ&lt;br /&gt;
મધુરાં હાસ્યની દીપે મુખડે મધુરી પ્રભા.&lt;br /&gt;
&lt;br /&gt;
આત્માનું તેજ વીંધીને રોમ રોમ, વિકાસતું,&lt;br /&gt;
બ્રહ્મર્ષિ! આપને દેહે બ્રહ્મવર્ચસ્‌ વિલાસતું.&lt;br /&gt;
&lt;br /&gt;
વેદ જેવા મહાભાવ, દેવ શા દિવ્ય કાન્તિના,&lt;br /&gt;
પ્રકાશે પરમાનન્દે એવી અખંડ શાન્તિના.&lt;br /&gt;
&lt;br /&gt;
આદ્ય દ્રષ્ટા આ યુગના, કવિ છો, સૂત્રકાર છોઃ&lt;br /&gt;
ને નવજીવન કેરા ઋષિ છો, સ્મૃતિકાર છો.&lt;br /&gt;
&lt;br /&gt;
ભવિષ્યવેત્તા, આચાર્ય પેગમ્બર પ્રભુ તણા;&lt;br /&gt;
નવીન ગુર્જરાષ્ટ્રે એ ગજાવી ગેબી ઘોષણા.&lt;br /&gt;
&lt;br /&gt;
ભભૂકી અગ્નિ શા આપે વનો ભસ્મ નથી કીધાંઃ&lt;br /&gt;
ત્હમે વર્ષા સમા વર્ષ્યા, ચન્દ્ર જેમ સીંચી સુધા.&lt;br /&gt;
&lt;br /&gt;
સ્હવારે સ્હાંજરે જેવો તપે ભાનુ દિને દિને.&lt;br /&gt;
શીળા શીળે તપ્યા તેમ, દઝાડ્યા નહિ કોઈને.&lt;br /&gt;
&lt;br /&gt;
મહામૂલાં દીધાં રત્નો પૂર્વજે પૂર્વ કાલમાં,&lt;br /&gt;
પારખી પારખી તેહ સંરક્ષ્યાં, પ્રાણની સમાં.&lt;br /&gt;
&lt;br /&gt;
ને નવયુગની ખીલે પુષ્પે પુષ્પે વસન્ત આ,&lt;br /&gt;
સંઘરી પીમળો સૌની તેહનાં મધ સારવ્યાં.&lt;br /&gt;
&lt;br /&gt;
ધીરગમ્ભીર નેતા, ને દીર્ઘદર્શી ત્હમે ઘણા,&lt;br /&gt;
બોધી તેથી દક્ષતાથી ધીરે ધીરે સુધારણાઃ&lt;br /&gt;
&lt;br /&gt;
વિદ્યા ને સંપનાં સૂત્રો, કલાકૌશલ્ય ઓપતાં,&lt;br /&gt;
ને સંસ્થાનસુધારો, ને દેશનાં હિત દીપતાં;&lt;br /&gt;
&lt;br /&gt;
પુણ્યભાવ, સદાચાર, ભક્તિ, ને પરમાર્થ, ને&lt;br /&gt;
સાત્ત્વિક સ્નેહના મન્ત્રો, ધર્મઔદાર્યઃ સર્વ તે.&lt;br /&gt;
&lt;br /&gt;
વધે સંસારની શોભા, પ્રભા ને પ્રભુતા વધે,&lt;br /&gt;
ગાયાં છે દેહઆત્માનાં સૂક્‌તો ઉન્નતિનાં બધે.&lt;br /&gt;
&lt;br /&gt;
રાજા અને પ્રજા કેરૂં એક છે હિત, તે લહી&lt;br /&gt;
ઉછેર્યું એ સદા આપે, શીખ બન્નેયને દઈ&lt;br /&gt;
&lt;br /&gt;
સ્વીકાર્યા સ્નેહી રાજાએ, પ્રજાએ પ્રેમી પારખ્યા;&lt;br /&gt;
બે બાહુ અંગના એક, ત્હમારે તેમ તે સખા.&lt;br /&gt;
&lt;br /&gt;
પ્રતિભા, રાજ્યની આસ્થા, ઉજ્જ્વળી દેશભક્તિની&lt;br /&gt;
મૂર્તિ આપ હતા મોંઘી, શ્રદ્ધાની અર્ચનાભીની.&lt;br /&gt;
&lt;br /&gt;
પોતાનું માનતા શ્રેષ્ઠ, મુમુક્ષુ પરના હતા;&lt;br /&gt;
સારગ્રાહી સદા તેથી સૌમાંથી સાર શોધતા.&lt;br /&gt;
&lt;br /&gt;
પુરાણા સંપ્રદાયોમાં શુદ્ધ પવિત્ર જે વિભુ,&lt;br /&gt;
પરમ્‌ ધર્મ ત્હમારો તે સ્વામી નારાયણ પ્રભુ.&lt;br /&gt;
&lt;br /&gt;
દેશીઓમાં વશ્યો દેશી થઈ, ત્હેમાં લીધો રસ,&lt;br /&gt;
પરમ્‌ મિત્ર ત્હમારો જ તે મહાભાવ ફાર્બસ.&lt;br /&gt;
&lt;br /&gt;
છે ન્હાના ભાઈ હિન્દુના, ઇસ્લામી ખ્રીસ્તી પારસી,&lt;br /&gt;
સૌ શું સ્નેહ દીધો–લીધો, હૈડે હૈડાં હસી હસી.&lt;br /&gt;
  &lt;br /&gt;
સહસ્ર ધારથી જેમ વર્ષે છે મેઘની ઝડી,&lt;br /&gt;
લોકમાં વર્ષતાં તેમ આપના આત્મનાં અમી.&lt;br /&gt;
&lt;br /&gt;
સિન્ધુ પ્રત્યે વહે જેવી ઊર્મિઓ નદીઓ તણી,&lt;br /&gt;
લોકના હેતનાં પૂર વ્હેતાં ત્હેવાં તમો ભણી.&lt;br /&gt;
&lt;br /&gt;
સારપ આશિષો વ્હોરી જનોમાં શુભ નામના,&lt;br /&gt;
સંચર્યા લઈ સદ્‌ભાવો આપ અક્ષરધામમાં.&lt;br /&gt;
&lt;br /&gt;
હતાં જીવન ને વાસ સદા મન્દિરછાયમાં,&lt;br /&gt;
આરતી પ્રેરણા દેતી કાવ્યસ્તોત્રોની આપનાં.&lt;br /&gt;
&lt;br /&gt;
આપે આયુષ્યમધ્યાહ્‌ન ગાળિયો પ્રભુકાર્યમાં;&lt;br /&gt;
અને આયુષ્યની સન્ધ્યા ગાળી ગાતાં પ્રભુલીલા.&lt;br /&gt;
&lt;br /&gt;
દેહના સુરથે સ્થાપી દેહી કેરો મહારથી,&lt;br /&gt;
ઇન્દ્રિયોના અશ્વ જોડી, લગામો વૃત્તિની ગૂંથી;&lt;br /&gt;
&lt;br /&gt;
વિવેક સારથી માંડી, અખંડ પ્રભુની દિશે,&lt;br /&gt;
ત્હમે કીધી મહાયાત્રા વિશ્વના વિષયો વિશે.&lt;br /&gt;
&lt;br /&gt;
નિત્યે જીવનમાં યોગી, તત્ત્વચિન્તક ચિન્તને,&lt;br /&gt;
શાણા સંસારી સંસારે, તપસ્વી જ તપોવને;&lt;br /&gt;
&lt;br /&gt;
ભક્તિદેશે મહાભક્ત, કૂંપળો ભાવની કુંળીઃ&lt;br /&gt;
આપને આંબલે એમ ડાળીઓ સૌ ફળી ફૂલી.&lt;br /&gt;
&lt;br /&gt;
શું શું સંભારું? ને શી શી પૂજાું પુણ્યવિભૂતિયે?&lt;br /&gt;
પુણ્યાત્માનાં ઉંડાણો તો આભ જેવાં અગાધ છે.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;૪&amp;lt;/center&amp;gt;ને એવું યે હતું જ્ય્હારે પડ્યો’તો પિતૃભાવથી,&lt;br /&gt;
વીસારી પિતૃપૂજા હું પડ્યો’તો પુણ્યલ્હાવથી.&lt;br /&gt;
&lt;br /&gt;
બહુ અવગણ્યા, તાત અસત્કાર્યા અનાદર્યા;&lt;br /&gt;
ને આપમાનને ગારે આ હાથે દેવ અર્ચિયા.&lt;br /&gt;
&lt;br /&gt;
ખીજવ્યા, પજવ્યા પૂરા, કૂમળું દિલ કાપિયું;&lt;br /&gt;
ને ત્હમારા દિનો છેલ્લા ઝેર કીધાઃ સહુ ગયું.&lt;br /&gt;
&lt;br /&gt;
ગયો તે યુગ મસ્તીનો, ઝંઝાવતો ગયા બધા,&lt;br /&gt;
આપના મૃત્યુએ, તાત! આછાં નીર ઊંડાં કીધાં.&lt;br /&gt;
&lt;br /&gt;
પાપની મોહિની પેખે, ન ત્હોયે મોહ પામતા,&lt;br /&gt;
પુરાણી ને પુણ્યવન્તી આર્યોની એ જ આર્યતા.&lt;br /&gt;
&lt;br /&gt;
જન્મની વેળ જે આપે સંચી’તી મુજ અન્તરે,&lt;br /&gt;
નિભાવ્યો આર્યતાએ એ, ને બચાવ્યો પ્રભુવરે.&lt;br /&gt;
&lt;br /&gt;
ભમે છે આ ગ્રહો આભે, કોઈ ત્હો યે નહીં પડેઃ&lt;br /&gt;
ન છૂટે દાંડીથી, જો કે વીંઝણો રમણે ચ્હડે.&lt;br /&gt;
&lt;br /&gt;
રમીને ને ભમીને હું આવ્યો છું આપ છાયમાંઃ&lt;br /&gt;
દેજો એ છાંયડી શીળી, દીધી છે જેમ કાય આ.&lt;br /&gt;
&lt;br /&gt;
સૌ અળવીતરાંની એ ક્ષમાઓ તાત! આપજોઃ&lt;br /&gt;
ન જોશો માટીને દેવા! માનજો પંક પંકજો.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;૫&amp;lt;/center&amp;gt;અન્ધારી રાત્રિએ ઊંડા શબ્દ હો અન્ધકારના,&lt;br /&gt;
બોલે છે ઉરમાં એવા શબ્દ કો ભૂત કાલના.&lt;br /&gt;
&lt;br /&gt;
ડોલાવે આત્મની જ્યોત ઝંઝાનિલો સ્મૃતિ તણા,&lt;br /&gt;
પ્રચંડ મોજે ઊછળે એ અવિરામ ઘોષણા.&lt;br /&gt;
&lt;br /&gt;
અદીઠા સિન્ધુની આવે ગર્જના ક્ષિતિજે તરી,&lt;br /&gt;
ગર્જે છે પડછન્દા કો એવા અન્તર્ગુહા ભરી.&lt;br /&gt;
&lt;br /&gt;
ઘોરે જેવો મહાઘોરે ઘેરો તોફાનનો ધ્વનિ,&lt;br /&gt;
સમસ્ત જીવન કેરો ઘોરે એવો મહાધ્વનિ.&lt;br /&gt;
&lt;br /&gt;
અને એ સ્મૃતિના ઊર્મિ, પડઘા ભૂત કાલના,&lt;br /&gt;
ને બધા મૂંઝવે એવા બોલ જે મુજ બાલ્યનાઃ&lt;br /&gt;
&lt;br /&gt;
ેતે સૌમાં તરતો, જાણે ચન્દ્રમા વ્યોમને જલે,&lt;br /&gt;
સુણ્યો, આકાશવાણી શો, શાન્તિનો શબ્દ એક મ્હેં.&lt;br /&gt;
&lt;br /&gt;
શમાવે પ્રભુના શબ્દો આ કોલાહલ વિશ્વનો,&lt;br /&gt;
એ શબ્દે એમ મ્હારો યે શમ્યો પોકાર ઉરનો.&lt;br /&gt;
&lt;br /&gt;
વર્ષી માધુર્ય દેવોનું, અન્ધકાર ઉજાળતો,&lt;br /&gt;
પુરાણા યે યુગોને એ ઓળંગી શબ્દ આવતો.&lt;br /&gt;
&lt;br /&gt;
જ્યોત્સ્નાની ધારમાં જેવો ભર્યો મન્ત્ર સુધામય,&lt;br /&gt;
એવો ગેબી સુણ્યો મન્ત્ર, પિતૃદેવો ભવ, પ્રિય!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;gt;૬&amp;lt;/center&amp;gt;અધૂરી હા! અધૂરી છે એટલી એકલી ઋચાઃ&lt;br /&gt;
અંકે લે ધરતી માતા, ભલે માર્તંડ હો ઊંચા.&lt;br /&gt;
&lt;br /&gt;
નથી આશા વિના આયુ, નથી ડાળી વિના ફૂલ;&lt;br /&gt;
નથી પૃથ્વી વિના પાયો, નથી માતા વિના કુલ.&lt;br /&gt;
&lt;br /&gt;
હજી તો આભમાં મ્હારા બાળુડો સૂર્ય ઊગતો,&lt;br /&gt;
બાળુડા બોલનો ખોળે કાલો કલ્લોલ જામતો;&lt;br /&gt;
&lt;br /&gt;
દીઠો કે ન દીઠો ત્હેં તે, સુણ્યો કે ન સુણ્યો કંઈ,&lt;br /&gt;
સંકેલી દેહની માયા વન્દીને વિશ્વને ગઈ.&lt;br /&gt;
&lt;br /&gt;
વીતિયાં સ્હાંજ ને વ્હાણાં તે પછી બહુ વર્ષનાં;&lt;br /&gt;
ભૂલ્યો નથી હજી, માતા! હાસ્ય તે તુજ હર્ષનાં.&lt;br /&gt;
&lt;br /&gt;
આભના વર્ણથી આંજી વિશાળી તુજ આંખડી,&lt;br /&gt;
આભના ભેદમાં જોતી દૃષ્ટિ તે તાહરી વડી.&lt;br /&gt;
&lt;br /&gt;
ભરેલા ભાવથી અંગે ડોલતી કુલહાથિણી;&lt;br /&gt;
ગૃહિણી ગુણવન્તી તું, મ્હોટે ચાંલ્લે સુહાગિણી.&lt;br /&gt;
&lt;br /&gt;
સાદી શોભાથી શોભંતી, ધર્મીલી કુલધામની;&lt;br /&gt;
શામળે રંગ રંગેલી સેવિકા ઘનશ્યામની.&lt;br /&gt;
&lt;br /&gt;
પ્રારબ્ધી, પુણ્યશાળી, ને પાપપાવનકારિણીઃ&lt;br /&gt;
ધૈર્યગામ્ભીર્યથી ધીંગી, દેવિ! તુ દુઃખહારિણી.&lt;br /&gt;
&lt;br /&gt;
હેતવાત્સલ્યનાં વ્હેણે હૈયાનું પૂર ગાજતુંઃ&lt;br /&gt;
ધર્મમૂર્તિ પિતા મ્હારા, ભક્તિની મૂર્તિ માત! તું.&lt;br /&gt;
&lt;br /&gt;
સદા સૌભાગ્યવન્તી ને સ્વામીસેવાપરાયણ;&lt;br /&gt;
વ્રતાળી, શાન્તિથી શીળીઃ એ જ ત્હારાં રસાયન.&lt;br /&gt;
&lt;br /&gt;
નથી એ વીસર્યો ત્હારી ટૂંકી જીવનની કલાઃ&lt;br /&gt;
વીસારી વીસરે કેમ માતૃવાત્સલ્યની લીલા?&lt;br /&gt;
&lt;br /&gt;
દૂધથી તાહરા ત્હેં જે સીંચી’તી પ્રાણમાં સુધા,&lt;br /&gt;
નથી તે ઓસરી, માતા! વાધી ઊર્મિ અનેકધા.&lt;br /&gt;
&lt;br /&gt;
ગુર્જરી વાડીમાં એક નદી રેવા અનુત્તમઃ&lt;br /&gt;
ગુર્જરી વાડીમાં તેમ માત રેવા અનુત્તમ.&lt;br /&gt;
&lt;br /&gt;
ઓ અભિજાત આર્યાઓ! ઓ આર્યો સહુ ભોમના,&lt;br /&gt;
સુણો આ વેદની ગાથા, મન્ત્ર આ પુર જોમનાઃ&lt;br /&gt;
&lt;br /&gt;
પિતૃદેવો ભવ, પ્રાજ્ઞ! માતૃદેવો ભવ, પ્રિય!&lt;br /&gt;
સર્વે કુલાશ્રમો નિત્યે હજો એ ભાવનામય.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;૭&amp;lt;/center&amp;gt;&lt;br /&gt;
વિશાળી દુનિયા વીંટી ઘૂમે છે સિન્ધુ ગર્જતો,&lt;br /&gt;
તે સિન્ધુનાં ઊંડાં નીરે મુક્તાપુંજ વિરાજતોઃ&lt;br /&gt;
&lt;br /&gt;
ઘેરીને પૃથ્વિની પાળો પડી છે આભની ઘટા,&lt;br /&gt;
અહોરાત્ર તપે ત્હેમાં તેજના ગોલની છટાઃ&lt;br /&gt;
&lt;br /&gt;
બાંધી બ્રહ્માંડની ઝાડી તે રીતે બ્રહ્મ ફલિયો,&lt;br /&gt;
ને બ્રહ્મજ્યોતિમાં નિત્યે પ્રકાશે પુણ્યશાળીઓ.&lt;br /&gt;
&lt;br /&gt;
પામીને તે બ્રહ્મજ્યોતિ, બ્રહ્મનાં તેજ ઝીલતાં,&lt;br /&gt;
ખીલે છે પુણ્યને પુષ્પે માહરાં માત ને પિતા.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;૮&amp;lt;/center&amp;gt;ગુણાળી ગરવી માતા! પૂજ્ય બ્રહ્મર્ષિ ઓ પિતા!&lt;br /&gt;
ધરૂં છું ચરણે તે આ સ્વીકારો ગુર્જરી ગીતા.&lt;br /&gt;
&lt;br /&gt;
સૌ ઉપનિષદો કેરો ભાવ શી આપ જિંદગી,&lt;br /&gt;
ને ઉપનિષદોના સૌ સાર શી આ ગીતા ઝગી.&lt;br /&gt;
&lt;br /&gt;
એ જ સંવત્સરી આજે, થયા દેવ મનુ મટીઃ&lt;br /&gt;
પાળું છું પર્વ, પૂજાું છું ગુણો તાત! રટી રટી.&lt;br /&gt;
&lt;br /&gt;
ભરી અંજલિ અશ્રુની કરું છું આ હું અર્પણ;&lt;br /&gt;
સત્કારો સ્નેહની સેવા, પુત્રનું પિતૃતર્પણ.&lt;br /&gt;
&lt;br /&gt;
અમોલાં બહુ યે રત્નો શાસ્રરત્નાકરે તરે;&lt;br /&gt;
વીણીને એક મોંઘેરૂં પુત્ર આ પાવલે ધરે.&lt;br /&gt;
&lt;br /&gt;
સદા યે રીઝવી આપે સેવી દેવી સરસ્વતી;&lt;br /&gt;
આપના પુણ્યથી એહ આ ને આવી થતી કૃતિ.&lt;br /&gt;
&lt;br /&gt;
તો ભૂલી ભૂતની ભૂલો, ભાળીને લક્ષ્ય ભાવિનો,&lt;br /&gt;
અમીની આશિષો આપો, ફળે સદ્‌ભાવ સુતનો.&lt;br /&gt;
&lt;br /&gt;
પૂર્વે જે ભાવથી આપે વધાવ્યો જન્મ માહરો,&lt;br /&gt;
આ પરે યે, પિતામાતા! દૃષ્ટિ તે ભાવની કરો.&lt;br /&gt;
&amp;lt;/poem&amp;gt;}}&lt;br /&gt;
&amp;lt;center&amp;gt;૦&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{HeaderNav2&lt;br /&gt;
|previous = સૌરાષ્ટ્રનો સાધુ&lt;br /&gt;
|next = મહર્ષિ દયાનંદ સરસ્વતી&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=%E0%AA%95%E0%AA%BE%E0%AA%B6%E0%AB%8D%E0%AA%AE%E0%AB%80%E0%AA%B0%E0%AA%A8%E0%AB%8B_%E0%AA%AA%E0%AB%8D%E0%AA%B0%E0%AA%B5%E0%AA%BE%E0%AA%B8&amp;diff=101429</id>
		<title>કાશ્મીરનો પ્રવાસ</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=%E0%AA%95%E0%AA%BE%E0%AA%B6%E0%AB%8D%E0%AA%AE%E0%AB%80%E0%AA%B0%E0%AA%A8%E0%AB%8B_%E0%AA%AA%E0%AB%8D%E0%AA%B0%E0%AA%B5%E0%AA%BE%E0%AA%B8&amp;diff=101429"/>
		<updated>2025-10-18T14:23:13Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: /* top */ clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#seo:&lt;br /&gt;
|title_mode= replace&lt;br /&gt;
|title= કાશ્મીરનો પ્રવાસ - Ekatra Foundation&lt;br /&gt;
|keywords= Ekatra, Ekatra Foundation, MainPage&lt;br /&gt;
|description=This is home page for this wiki&lt;br /&gt;
|image=કાશ્મીરનો પ્રવાસ-1.jpg&lt;br /&gt;
|image_alt=Wiki Logo&lt;br /&gt;
|site_name=Ekatra Foundation&lt;br /&gt;
|locale=gu-IN&lt;br /&gt;
|type=website&lt;br /&gt;
|modified_time={{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{{BookCover&lt;br /&gt;
|cover_image = File:કાશ્મીરનો પ્રવાસ-1.jpg&lt;br /&gt;
|title = કાશ્મીરનો પ્રવાસ&lt;br /&gt;
|author = કલાપી&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Box&lt;br /&gt;
|title = અનુક્રમણિકા&lt;br /&gt;
|content = &lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/પ્રારંભિક|પ્રારંભિક]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/કાશ્મીરનું સ્વપ્ન|કાશ્મીરનું સ્વપ્ન]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/પત્રની શરૂઆત|પત્રની શરૂઆત]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૧-૧૧-૯૧|તા. ૧-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૩-૧૧-૯૧|તા. ૩-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૫-૧૧-૯૧|તા. ૫-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૬-૧૧-૯૧|તા. ૬-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૭-૧૧-૯૧|તા. ૭-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૮-૧૧-૯૧|તા. ૮-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૯-૧૧-૯૧|તા. ૯-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૧૦-૧૧-૯૧|તા. ૧૦-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૧૧-૧૧-૯૧|તા. ૧૧-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૧૨-૧૧-૯૧|તા. ૧૨-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૧૩-૧૧-૯૧|તા. ૧૩-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૧૪-૧૧-૯૧|તા. ૧૪-૧૧-૯૧]]&lt;br /&gt;
* [[કાશ્મીરનો પ્રવાસ/તા. ૧૫-૧૧-૯૧|તા. ૧૫-૧૧-૯૧]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=101425</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=101425"/>
		<updated>2025-10-18T13:43:30Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, .content h1, .content h2 {&lt;br /&gt;
        display: block !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=101424</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=101424"/>
		<updated>2025-10-18T13:41:41Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, .content h1, .content h2 {&lt;br /&gt;
        display: block !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.poem {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wst-block-center .poem {&lt;br /&gt;
    text-align: left !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=%E0%AA%B8%E0%AA%AE%E0%AA%97%E0%AB%8D%E0%AA%B0%E0%AA%AE%E0%AA%BE%E0%AA%82%E0%AA%A5%E0%AB%80_%E0%AA%B8%E0%AA%98%E0%AA%A8-%E0%AA%B5%E0%AA%BF%E0%AA%B5%E0%AB%87%E0%AA%9A%E0%AA%A8%E0%AA%B6%E0%AB%8D%E0%AA%B0%E0%AB%87%E0%AA%A3%E0%AB%80_%E2%80%93_%E0%AA%AD%E0%AB%8B%E0%AA%97%E0%AB%80%E0%AA%B2%E0%AA%BE%E0%AA%B2_%E0%AA%B8%E0%AA%BE%E0%AA%82%E0%AA%A1%E0%AB%87%E0%AA%B8%E0%AA%B0%E0%AA%BE/%E0%AA%9C%E0%AA%BF%E0%AA%AE%E0%AA%A3%E0%AA%B5%E0%AA%BE%E0%AA%B0_-_%E0%AA%AA%E0%AA%B0%E0%AA%BF%E0%AA%A7%E0%AA%BE%E0%AA%A8_%E0%AA%B5%E0%AA%BF%E0%AA%A7%E0%AA%BF&amp;diff=101133</id>
		<title>સમગ્રમાંથી સઘન-વિવેચનશ્રેણી – ભોગીલાલ સાંડેસરા/જિમણવાર - પરિધાન વિધિ</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=%E0%AA%B8%E0%AA%AE%E0%AA%97%E0%AB%8D%E0%AA%B0%E0%AA%AE%E0%AA%BE%E0%AA%82%E0%AA%A5%E0%AB%80_%E0%AA%B8%E0%AA%98%E0%AA%A8-%E0%AA%B5%E0%AA%BF%E0%AA%B5%E0%AB%87%E0%AA%9A%E0%AA%A8%E0%AA%B6%E0%AB%8D%E0%AA%B0%E0%AB%87%E0%AA%A3%E0%AB%80_%E2%80%93_%E0%AA%AD%E0%AB%8B%E0%AA%97%E0%AB%80%E0%AA%B2%E0%AA%BE%E0%AA%B2_%E0%AA%B8%E0%AA%BE%E0%AA%82%E0%AA%A1%E0%AB%87%E0%AA%B8%E0%AA%B0%E0%AA%BE/%E0%AA%9C%E0%AA%BF%E0%AA%AE%E0%AA%A3%E0%AA%B5%E0%AA%BE%E0%AA%B0_-_%E0%AA%AA%E0%AA%B0%E0%AA%BF%E0%AA%A7%E0%AA%BE%E0%AA%A8_%E0%AA%B5%E0%AA%BF%E0%AA%A7%E0%AA%BF&amp;diff=101133"/>
		<updated>2025-10-16T10:05:26Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SetTitle}}&lt;br /&gt;
{{Heading|વિભાગ ૪ : અન્ય}}&lt;br /&gt;
&lt;br /&gt;
{{Heading|૧૧. जिमणवार-परिधान विधि|(પ્રાચીન ભોજનવ્યવસ્થા, સમાજ અને સંસ્કૃતિ)}}&lt;br /&gt;
&lt;br /&gt;
[I-A ]  ॥ र्द. ॥  जिमणबार लिखीइ छइ; राजानइं बइसवानइं सुवर्णमइ&amp;lt;ref&amp;gt; सुवर्णमय, बीजी प्रतमां आ पछी ‘जेहना शुभघाट&#039; छे.&amp;lt;/ref&amp;gt; पाट, बीजानइ बइसवा चुकीवट, विशाल सेजवट. मतबालु&amp;lt;ref&amp;gt; मतवाल. &amp;lt;/ref&amp;gt; ए आवइ,&amp;lt;ref&amp;gt; संचालइ. &amp;lt;/ref&amp;gt;  तिवारइं बइसवानां आसन&amp;lt;ref&amp;gt; आसन्न, तेनी पछी &#039;मांड्यां वासन&#039; एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  हवइ, आरोगबानइ समइ,&amp;lt;ref&amp;gt; समय, पछी &#039;सहुनइं मइं&#039; एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  आपआपणे&amp;lt;ref&amp;gt; आपापणइं, &amp;lt;/ref&amp;gt; आसने&amp;lt;ref&amp;gt; आसण, &amp;lt;/ref&amp;gt;  बइसइ. सुवर्णमइ&amp;lt;ref&amp;gt; सुवर्णमय, पछी &#039;रुडी मांडणी&#039; एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  आडणी ऊपरि सोनांना&amp;lt;ref&amp;gt;. सोनाना. &amp;lt;/ref&amp;gt; थाल,&amp;lt;ref&amp;gt; तेनी पछी &#039;बावन्न पलनि थाल रुपा कांसाना बाट’ एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  रूपानां सोनानां विशाल त्राट, जिमणहार,&amp;lt;ref&amp;gt; जिमनार. &amp;lt;/ref&amp;gt;  जोइ वाट सोना रुपां कांसा तणां’&amp;lt;ref&amp;gt; कांसाना थाल, तेनी पछी बीजी प्रतमां, &#039;बांसलानां काचला तणां’ एवा शब्द छे. &amp;lt;/ref&amp;gt; कचोलां, जिस्यां उत्तमानां&amp;lt;ref&amp;gt; उत्तमनां.  चित्र भोला.१४&lt;br /&gt;
&amp;lt;ref&amp;gt;भालां. &amp;lt;/ref&amp;gt;  समस्तनइ प्रीसवा&amp;lt;ref&amp;gt; पीसवा. &amp;lt;/ref&amp;gt;  भणी स्त्री आवइ,&amp;lt;ref&amp;gt; तेनी पछी बीजी प्रतमां &#039;सकाम भावइं&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  पद्मिनी&amp;lt;ref&amp;gt; बीजी प्रतमां पद्मिनी हस्तिनी चित्रिणी शंषिनी ए शब्दोने १, २, ३, ४ अनुक्रम नंबर आपेला छे.&amp;lt;/ref&amp;gt; &lt;br /&gt;
हस्तिनी शंषिनी चित्रिणी&amp;lt;ref&amp;gt; चित्रणी.&amp;lt;/ref&amp;gt;  एहवी स्त्री सोल शृंगार सारी,१९&lt;br /&gt;
&amp;lt;ref&amp;gt;तेनी पछी बीजी प्रतमां नीचे प्रमाणे पद्य छे :&lt;br /&gt;
आदौ मज्जन चीर हार तिलकं नेत्रांजनं कुंडलं,&lt;br /&gt;
नाना मुक्तिक पुष्फहार करलां झंकार तुं परं, *(आ चरणमांथी एक अक्षर पडी गयो छे.)&lt;br /&gt;
अंगे चंदनलेप कचुकमणी छद्रावली घंटिका,&lt;br /&gt;
तांबूलं करकंकणं चतुरिता शृंगारिका षोडश. १&lt;br /&gt;
शृंगार १६ अति चतुर नारी कडिमेषला टलकतइं.&amp;lt;/ref&amp;gt; सुवर्णमइ करवइ ढलकतइ, चुडइ षलकतइ, कंकण झलकतइ, हाथ ललकतइ, शीतल गंगोदकिं हस्तोदक&amp;lt;ref&amp;gt; हस्तोदकिं,&amp;lt;/ref&amp;gt;  दीधां. तदनंतरं प्रसन्नइ कालि, सुवर्णमइ थालि, मोटइ झमालि, नवयोवन&amp;lt;ref&amp;gt; यौवन. &amp;lt;/ref&amp;gt; समइ आवी&amp;lt;ref&amp;gt; ‘समइ आवी’ ए शब्दोंने बदले बीजी प्रतमां &#039;मोटी झमालि आवता&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  ऊजमालि, प्रथम प्रीसाइ&amp;lt;ref&amp;gt; प्रीसाय. &amp;lt;/ref&amp;gt;  फलहुलि; छोहारी षारिकि, जालिकी षारिकि, पिस्तानी षारिकि, भुंगडी षारिकि, सिलेमानी  खारिकि, नीली खारिकिः अखोड बदाम, कागदी बदाम, कठ बदाम, शकरी बदामः पस्तां निमजां चाइम चारुली जरगोजां अंजीर; हेरेबी&amp;lt;ref&amp;gt; हरेबी. &amp;lt;/ref&amp;gt; द्राष, कसिमसी द्राष, नीली द्राष, गोस्तनी द्राषः वरसोलां दाडिम, आदमी&amp;lt;ref&amp;gt; आदिमी. &amp;lt;/ref&amp;gt;  दाडिम, पाकां दाडिम, हरमजी दाडिम, तेहनी कुलीः खल्हइलां मलबारी नालीअर&amp;lt;ref&amp;gt; नालेर, &amp;lt;/ref&amp;gt; , कोलंबी नालीअर,&amp;lt;ref&amp;gt;नालीयर, &amp;lt;/ref&amp;gt;  मुठीआं नालीअर, दीवाई नालीअर, तेहनी षडहिडी; चंगाल खजुर, फडद खजुर, पैमी&amp;lt;ref&amp;gt; पेसी. &amp;lt;/ref&amp;gt;  खजुर, रतबी खजुर, नवइशाक&amp;lt;ref&amp;gt; नव्ईशाष. &amp;lt;/ref&amp;gt;  खजुर, मधुफलद खजुर, हरमी खजुर, मधुरुं मांकडुं, दीपशिषा समानः हरमीजी सीरु, आदनी सरकु, सेलडीना कटकडा,&amp;lt;ref&amp;gt; कडकडा, &amp;lt;/ref&amp;gt;  तरुणां करणां नारिंगां&amp;lt;ref&amp;gt; बीजी प्रतमां &#039;नारिंगां’ पछी &#039;चंगां&#039; शब्द छे. &amp;lt;/ref&amp;gt;  जंबीरां कमरक&amp;lt;ref&amp;gt; कमर, &amp;lt;/ref&amp;gt;  दोडंगां सदाफल अमृतफल फालसां सकरलींबू कमलकाकडी सींधोडां, टोपरांना कटका; कुंकणां&amp;lt;ref&amp;gt; कुंकणीयां. &amp;lt;/ref&amp;gt;  केलां, सोनेलां केलां, राजेलां केलां, सुठेलां केलां, वाघेलां केला, नाथसिंघेलां केलांनी पातली कातली, बीजुरानी चडुडी, आंबानी कातली, प्रीसि नारि पातली, षडबूजां गोटा, नीकोल्यां राईण, इसी फलहुलि प्रीसाइ.&amp;lt;ref&amp;gt; पीसाय, &amp;lt;/ref&amp;gt; अथ पक्वान; सातपडां खाजां, चुवडां खाजां, एकवडां खाजां; फीणी खांड गली खाजली, दोठां, घारां, घेवर, शषिवदन&amp;lt;ref&amp;gt; शिषवदनी &amp;lt;/ref&amp;gt;  सुंहाली, घृतवर्णी&amp;lt;ref&amp;gt;  धृतवणी.&amp;lt;/ref&amp;gt;   घारडी, पतास फीणी, दहीथरां तिलसांकली फाफडा पूरी गुंझां गुंदवडां परीमीडां घूघरी गुळपापडी गुंदपाक महिसूफ कूलिरि,&amp;lt;ref&amp;gt; कूलरि. &amp;lt;/ref&amp;gt; मुगनुं उसडः हवह विधिना लाडू, जिस्या अमृतमई&amp;lt;ref&amp;gt; अमृतमय,&amp;lt;/ref&amp;gt; लाडू, धृतिं तल्यां&amp;lt;ref&amp;gt; तलां. &amp;lt;/ref&amp;gt; साकरनइ आधिं&amp;lt;ref&amp;gt; आधि. &amp;lt;/ref&amp;gt; मल्या, मिरीचिना&amp;lt;ref&amp;gt; मिरीना. &amp;lt;/ref&amp;gt; चत्कार&amp;lt;ref&amp;gt; चमत्कार. &amp;lt;/ref&amp;gt;, कर्पूर-परिमलसार, स्थूल बहुला गार, अत्यंत सुकुमाल&amp;lt;ref&amp;gt; आनी पछी  बीजी प्रतमां &#039;माहारसाल&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt; महोज्वल इस्या मोदक, सेवईआ लाडू, मोतीआ लाडू, झगरीआ लाडू, [I-B] बाबा मुगीआ लाडू, अडदना लाडू, माठा लाडू, वाजणा लाडू, दलीआ लाडू, सतूना लाडू, पिपरिना लाडू, गुंदना लाडू, करहंडना&amp;lt;ref&amp;gt; करहड. &amp;lt;/ref&amp;gt; लाडू, दोठांना&amp;lt;ref&amp;gt; दोठाना. &amp;lt;/ref&amp;gt; लाडू, कसमसीआ लाडू, मसमसीआ लाडू, यासी लाडू, ताजखांनी लाडू, पखालीआ&amp;lt;ref&amp;gt; पखालीया. &amp;lt;/ref&amp;gt; लाडू, जाडी सेवना लाडू, सिंहकेसरी लाडू,&amp;lt;ref&amp;gt; आ शब्द पछी बीजी प्रतमां नीचेनुं अशुद्ध पद्य हांसियामां मूळ प्रतथी  जुदा अक्षरे लखायेलुं  छेः&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;कं  दोसं  घरता दले सरलता, तर्णस्य संपूर्णता&amp;lt;br&amp;gt;&lt;br /&gt;
रूपे सुंदरता रसे मधुरता कस्य परिसदृशी ।&amp;lt;br&amp;gt;&lt;br /&gt;
एकस्य सध हकारलिन वा धिक धारस्नितं सत्य वो&amp;lt;br&amp;gt;&lt;br /&gt;
दीर्घायुः भवसाघर विधिरागे पारं विना निर्मिताः ॥&amp;lt;/ref&amp;gt; उसडना लाडू, दूधना लाडू, दहीथरांना लाडू, रवाना लाडू, करकरी लाडू, आसंधिना लाडू, मेथीना लाडू, समकितीया लाडू, पडवासना लाडू, समीना लाडू, टोपरांना लाडू, चारुआ लाडू, द्राषडीआ लाडू, इसि लाडू, तिलवट&amp;lt;ref&amp;gt; तिलबटना, &amp;lt;/ref&amp;gt; लाडू, चूरिम&amp;lt;ref&amp;gt; चूरिमाना. &amp;lt;/ref&amp;gt; लाडू, एतले प्रकारे लाडू प्रीसाइ.&lt;br /&gt;
वली शी शी वस्तु प्रीसाइ? शकरपारा,&amp;lt;ref&amp;gt; साकरपार. &amp;lt;/ref&amp;gt; साकरीआ चिणा, दूधपाक कोहलापाक सेलडीपाक गुंदपाक नालीअरपाक&amp;lt;ref&amp;gt; नालीयरपाक, &amp;lt;/ref&amp;gt; कौचां-पाक&amp;lt;ref&amp;gt; कौचापाक. &amp;lt;/ref&amp;gt; आदापाक पिंपरिपाक इंद्ररसां मरकी मांडी सेवदल हेसमी जलेबी खरमां चांदखांनी, साकरनां वरसोलां, साकरलिंगां,&amp;lt;ref&amp;gt; साकरलीमां. &amp;lt;/ref&amp;gt; साकरना कूजा,&amp;lt;ref&amp;gt; थाद. &amp;lt;/ref&amp;gt; साकरना हारडा, दूधसाकरि&amp;lt;ref&amp;gt; दूधसाकर.&amp;lt;/ref&amp;gt; पल्हाल्या पउंआ, तल्या गुंद, बाउलनुं&amp;lt;ref&amp;gt; बातलउ.&amp;lt;/ref&amp;gt; षइरी&amp;lt;ref&amp;gt; षयरी.&amp;lt;/ref&amp;gt; धवीउ कडाही&amp;lt;ref&amp;gt;तल्या. &amp;lt;/ref&amp;gt;  गुंद. हवाई गल्या पूडा&amp;lt;ref&amp;gt; आ शब्द पछी आवता &#039;षाटा पुडा&#039; ए शब्दो बीजी प्रतमां नथी. &amp;lt;/ref&amp;gt; , षाटा पूडा, चाउलीना&amp;lt;ref&amp;gt; चुलाना. &amp;lt;/ref&amp;gt; पूडा, अडद मगनी पहितिना पूडा, अडद मगनां ढोकलां, सेव उसाई, लापसी ति केहवी छइ,&lt;br /&gt;
{{Poem2Close}}&lt;br /&gt;
{{Block center|&#039;&#039;&#039;&amp;lt;poem&amp;gt;दुग्धं गोधूमचूर्णं धृतगुडसहितं नालिकेरस्य खंडं&lt;br /&gt;
द्राक्षाषर्जूरशुंठीतजमरिचयुतं पेशलं देवपुष्पम् ।&lt;br /&gt;
	&lt;br /&gt;
पक्त्वा लोहे कटाहे टलविटलटलत्पावके मंदकांतौ&lt;br /&gt;
धन्यो हेमंतकाले प्रचुरधृतयुतां भुंजते लापनश्रीम् ।।&amp;lt;/poem&amp;gt;&#039;&#039;&#039;}}&lt;br /&gt;
{{Poem2Open}}&lt;br /&gt;
एहवी लापसी प्रीसाइ&amp;lt;ref&amp;gt; पीसाई. &amp;lt;/ref&amp;gt;. पछइ खीर.&amp;lt;ref&amp;gt; आ पछी नीचेना शब्दो बीजी प्रतमां मळे छेः ‘१०० गायनां दूध, ५० नीपाई अनुक्रमे, १ नीपाई रूडा आषा चोषानी पीर मुकाई पछई.&#039; &amp;lt;/ref&amp;gt; हांसा गहुं, काठा गहुं, जालीया&amp;lt;ref&amp;gt; भीलीया. &amp;lt;/ref&amp;gt;  गहुं, बाजीया&amp;lt;ref&amp;gt; वासीया. &amp;lt;/ref&amp;gt;  गहुं, वांसीया गहुं, एतले प्रकारे गहुंना मांडां; ते किम.&amp;lt;ref&amp;gt; &#039;ते किम&#039; ए शब्दो बीजी प्रतमां नथी. &amp;lt;/ref&amp;gt;  खांडमांडा, पूरणमांडा, आछा मांडा, करकरा मांडा, आकाशमांडा, एतली&amp;lt;ref&amp;gt; एकली. &amp;lt;/ref&amp;gt;  पडसूदीना मांडा. लहचूई पोली, खूबी रोटी, वारू&amp;lt;ref&amp;gt; वारु. &amp;lt;/ref&amp;gt;  वडां, वेढिमी, वडां तो&amp;lt;ref&amp;gt; ते. &amp;lt;/ref&amp;gt; केहवां छइ?&lt;br /&gt;
{{Poem2Close}}&lt;br /&gt;
{{Block center|&#039;&#039;&#039;&amp;lt;poem&amp;gt;&amp;lt;ref&amp;gt;श्लोकनी शरुआतमां बीजी प्रतमां &#039;यतः शब्द छे. &amp;lt;/ref&amp;gt;हिंग्वाजी रैर्मिरीचैर्लवणदलयुतैरार्दकैः पूर्णगर्भैः&lt;br /&gt;
स्निग्धः स्वादु सुवृत्तः परिमलबहुलः कोमलः कुंकुमाभः ।&lt;br /&gt;
लग्नो दंतांतराले मरुमरुमरुतस्पष्टविस्पष्टशब्दै-&lt;br /&gt;
र्धन्यानां कः कपोले प्रविशति वटकः प्रेयसीप्रेमदत्तः ॥&amp;lt;/poem&amp;gt;&#039;&#039;&#039;}}&lt;br /&gt;
{{Poem2Open}}&lt;br /&gt;
घणइ तेलिं सीनां, खाटइ भीना,&amp;lt;ref&amp;gt; सीनां. &amp;lt;/ref&amp;gt;  हाथ धुवलइ,&amp;lt;ref&amp;gt; हाथ घुवलइ ए शब्दोंने बदले बीजी प्रतमां &amp;quot;घणइं वेगरइं मिलइं&amp;quot; एवा शब्द छे. &amp;lt;/ref&amp;gt;  मुहि पडियां&amp;lt;ref&amp;gt; पड्यां. &amp;lt;/ref&amp;gt; गलइ, स्वर्ग थिकु&amp;lt;ref&amp;gt;थकी&amp;lt;/ref&amp;gt; देवता देषी टलवलइ. अडदनां वडां, मगनां वडां, इस्यां अनेक प्रकारिं वडां,&amp;lt;ref&amp;gt; &#039;इस्यां अनेक प्रकारिं वडां&#039; शब्दोंने बदले बीजी प्रतमां &#039;एटले प्रकारे यहां जाणिवा&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt; इस्ति [2-A] पद वडां, भीनां वडा, घोल वडां, आर्द्रक वडां, मरी२&amp;lt;ref&amp;gt; मिरी. &amp;lt;/ref&amp;gt; वडा, राई वडा, मोतीआ&amp;lt;ref&amp;gt; मोतीयां. &amp;lt;/ref&amp;gt; वडां, कांजीआं&amp;lt;ref&amp;gt; कांजियां, &amp;lt;/ref&amp;gt; वडां, दालिआं&amp;lt;ref&amp;gt; दालियां. &amp;lt;/ref&amp;gt; वडा, खांड वडां, कुहाडीआ&amp;lt;ref&amp;gt; कुहाडीयां. &amp;lt;/ref&amp;gt; वडां, एतले प्रकारे वडां जाणिवां. पछइ साकर&amp;lt;ref&amp;gt; शाकर. &amp;lt;/ref&amp;gt; जाणवी;&amp;lt;ref&amp;gt; आ शब्द बीजी प्रतमां नथीः पछी “षांड गुल मुकीयइं&amp;quot; एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt; तिवराज&amp;lt;ref&amp;gt; तिविराज, &amp;lt;/ref&amp;gt; साकर, चीणी साकर, घसी साकर, मादलीआं&amp;lt;ref&amp;gt; मादलीयां. &amp;lt;/ref&amp;gt; साकर, उत्तराधी साकर, कालपी साकर,  आगरी साकर. पछइ षांड आवइ; फूल खांड, सींगलुहरी&amp;lt;ref&amp;gt; सिंगलुरी. &amp;lt;/ref&amp;gt; खांड, बुरा खांड, चीत्रुडी&amp;lt;ref&amp;gt;चित्रोडी, &amp;lt;/ref&amp;gt; खांड, वागडा खांड, मालवी खांड&amp;lt;ref&amp;gt; पछी &#039;ईडरी खांड&#039; छे. &amp;lt;/ref&amp;gt;, नीझरी खांड, उत्तराधी खांड, आगरानी&amp;lt;ref&amp;gt; आगराइ. &amp;lt;/ref&amp;gt; खांड&amp;lt;ref&amp;gt; पछीना &#039;एतली षांडनी जाति जाणवी’ ए शब्द बीजी प्रतमां नथी. &amp;lt;/ref&amp;gt; एतली षांडनी जाति जाणवी. हवइ गुलनां नामः&amp;lt;ref&amp;gt; हवइ गुलनां नाम ए शब्दोने बदले बीजी प्रतमां एकलो &#039;गुल&#039; शब्द आपेलो छे. &amp;lt;/ref&amp;gt; मलबारी गुल, वागडीउ गुल, सोरठी&amp;lt;ref&amp;gt; सोरठीउ. &amp;lt;/ref&amp;gt; गुल, मालवी गुल, नवसारी&amp;lt;ref&amp;gt; नवसारीउ. &amp;lt;/ref&amp;gt; गुल, नंदरबारी गुल, नमीआडु&amp;lt;ref&amp;gt; नमीआडउ. &amp;lt;/ref&amp;gt; गुल, महीयाशाही&amp;lt;ref&amp;gt; महीयासाथी. &amp;lt;/ref&amp;gt; गुल, पंड्याणी गुल, नागुहुरी&amp;lt;ref&amp;gt;नागहुरी. &amp;lt;/ref&amp;gt; गुल, जेहनइ जिसी&amp;lt;ref&amp;gt; जेहवी. &amp;lt;/ref&amp;gt; रुचि तेहनइ&amp;lt;ref&amp;gt;तेहनइं. &amp;lt;/ref&amp;gt; तिसिउं गलिउं प्रीसाइ.&lt;br /&gt;
&lt;br /&gt;
पछइ&amp;lt;ref&amp;gt;पछी बीजी प्रतमां &#039;शालि ६० प्रकारनउं कूर प्रीसइं ते कहीस्यई&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt; राइभोग शालि,&amp;lt;ref&amp;gt;बीजी प्रतमां शालिनां ६० जातने अनुक्रम नंबर आपी गणावी छे. &amp;lt;/ref&amp;gt; सुगंध शालि,&amp;lt;ref&amp;gt;बीजी प्रतमां आपेलां शालिनां वधु नामः चांद्रणी वेरडा डांगरी ढूंढणीया करडीया शालीया, मुडी कमोद पेसलवेलि कमोद, मुंठी कमोद, जीरा कमोद, शंषी कमोद, मालवणि वालेरी मुंगीउं चीतावेलि मजीठी मोहणी कोबरवेलि हरिवाल बावन्ना सीधलु हरिमुषी गोलंयालपंषी खिमुई शालि, कुंकमवणी शालि, वाघउरी शालि, चारुली शालि, गोरडु कागपंषी झुरासाणी जातषंषी वाना मांजरवेलि पाटमांजर पोति पूटणी जटाली मुषी गमतमल पलासी अडाउं गोत्रवेलि धानवेलि शुद्ध वांनवानां.&amp;lt;/ref&amp;gt; कमल शालि, तिल-वासी शालि,&amp;lt;ref&amp;gt; साली.&amp;lt;/ref&amp;gt;  जीरा शालि, महा शालि, साठी&amp;lt;ref&amp;gt; शाठी. &amp;lt;/ref&amp;gt;  शालि, कमोद शालि, कनडी शालि, षरसु शालि, धानुरी शालि, वागडी शालि, करम शालि, बालरु शालि, कुंआरी शालि, चाद्रिणी शालि, बरडा शालि, डांगरी शालि, ढूंढणीया शालि, करडीया शालि, सालीया शालि प्रमुख, तेहना चोषा, दूबलीइं खाड्या,&amp;lt;ref&amp;gt; षांड्यां &amp;lt;/ref&amp;gt;  सबलीइं छड्या, निषूतीइं वीण्या, अलवेसरि आण्या, सुमतीइं सोहिआ,&amp;lt;ref&amp;gt; सोह्या, आ शब्द पछी &#039;बहुजल धोया, रुडइं पात्रइं जोया, हाथ रुडे डोया,&#039; एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  इस्या चोषानु भगनीइं&amp;lt;ref&amp;gt; भगतीइं. &amp;lt;/ref&amp;gt;  समारिउ,&amp;lt;ref&amp;gt; आ शब्द पछी बीजी प्रतमां&#039; रुडे ठामडे धारिउं&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  उंन्हु&amp;lt;ref&amp;gt; उन्हउ. &amp;lt;/ref&amp;gt;  तिन्हु&amp;lt;ref&amp;gt; तीन्हउ. &amp;lt;/ref&amp;gt;  अणीआलु सुंहालु&amp;lt;ref&amp;gt; सुहालउं,&amp;lt;/ref&amp;gt;  सरस, सुकोमल,&amp;lt;ref&amp;gt; सकोमल &amp;lt;/ref&amp;gt;  जिसिउ&amp;lt;ref&amp;gt;जिस्यउं &amp;lt;/ref&amp;gt; केवडु&amp;lt;ref&amp;gt; केवडउं &amp;lt;/ref&amp;gt;  कुंडेली जेवडउ, सबली स्त्रीइं उसायु&amp;lt;ref&amp;gt; &#039;सबळी स्त्रीइं उसायु’ ए शब्दो बीजी प्रतमां नथी. &amp;lt;/ref&amp;gt;  इसिउ&amp;lt;ref&amp;gt; ईसी. &amp;lt;/ref&amp;gt;  सालिनु कूर, वीषरी&amp;lt;ref&amp;gt; सीष &amp;lt;/ref&amp;gt;  वीणीइ&amp;lt;ref&amp;gt; वीसाइं &amp;lt;/ref&amp;gt;  मनरंगि फीणीइ. मंडोरा मग,&amp;lt;ref&amp;gt; आ पछी धूंषला ‘मग&#039; एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  करडूआ&amp;lt;ref&amp;gt; करड्या. &amp;lt;/ref&amp;gt; मग, नीलूआ&amp;lt;ref&amp;gt; नीलूया. &amp;lt;/ref&amp;gt;  मग, तेहनी दालि, कान्हमी तूअरि&amp;lt;ref&amp;gt;आ शब्द पछी बीजी प्रतमां &#039;वाग्मी तुअरि&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  मसूरि&amp;lt;ref&amp;gt; मसूर. &amp;lt;/ref&amp;gt; तेह तणी दालि, बभुक्षानी&amp;lt;ref&amp;gt; बभुक्षानइं. &amp;lt;/ref&amp;gt; कालि, फोतिरे छांडी, हलूइ हाथि खांडी, त्रिछद्द कीधी, घणइ पाणीइ सीनी,&amp;lt;ref&amp;gt; बीजी प्रतमां &#039;घणइ पाणीइ सीनी&#039; ए शब्द नथी. &amp;lt;/ref&amp;gt;  बानि&amp;lt;ref&amp;gt; बावि. &amp;lt;/ref&amp;gt;  पीयली,&amp;lt;ref&amp;gt; पीइं. &amp;lt;/ref&amp;gt; परिणामि शीअली इसी दालि. छालीनुं घृत,&amp;lt;ref&amp;gt; &#039;छालिनुं धृत&#039; ए शब्दो बीजी प्रतमां ए ज पंक्तिमां &#039;भइंसर्नु धृत&#039; ए शब्दोनी पछी आवे छे. &amp;lt;/ref&amp;gt;  गाईनुं धृत, भइंसिनुं&amp;lt;ref&amp;gt; भइंसनुं. &amp;lt;/ref&amp;gt;  धृत, तत्कालनुं&amp;lt;ref&amp;gt; तत्कालि, &amp;lt;/ref&amp;gt; ताव्युं&amp;lt;ref&amp;gt; ताबिउं. &amp;lt;/ref&amp;gt;  घाईसिउं&amp;lt;ref&amp;gt; कइसिनुं. &amp;lt;/ref&amp;gt;  नामिउं, मंजिष्ट वर्ण, अवधारइ कर्ण, सरही धार,&amp;lt;ref&amp;gt; आ पछी बीजी प्रतमां ‘रसा घणउ भार&#039; एवा शब्द छे.&amp;lt;/ref&amp;gt;   साक्षात् अमृत एवंविध धृत. पछइ शाक&amp;lt;ref&amp;gt;शाकि.&amp;lt;/ref&amp;gt;  प्रीसाइ,&amp;lt;ref&amp;gt;आ पछी बीजी प्रतमां &#039;सहुई श्रीसवा धाई&#039; एवा शब्द छे &amp;lt;/ref&amp;gt;  चुली फली, ग्वार फली, कडा फली, सडसडती फली, मगना नीलूआ,&amp;lt;ref&amp;gt;लूआ. &amp;lt;/ref&amp;gt;  मोगरी&amp;lt;ref&amp;gt;सांगरी. &amp;lt;/ref&amp;gt;  उढवी&amp;lt;ref&amp;gt;वढवी. &amp;lt;/ref&amp;gt;  कइरां कंकोडां कारेलां रायकारेलां तोरईआं घीसोडां सेलरां राईआं टीडूरां सडसडती डोडी, कलकलता कसुंभा, चमचमतां चीभडां, मिरीभरी&amp;lt;ref&amp;gt;मिरीमिरी. &amp;lt;/ref&amp;gt;  खांडिमी, बधारिउं पूरण, परि [૨-B] हरीइ&amp;lt;ref&amp;gt;आ शब्द पछी बीजी प्रतमां &#039;सूरण&#039; शब्द छे. &amp;lt;/ref&amp;gt;  [सूरण], बांगलां,&amp;lt;ref&amp;gt;बोगलां. &amp;lt;/ref&amp;gt; वधारिआं खडबूजां, वघारिआ&amp;lt;ref&amp;gt;वधारया. &amp;lt;/ref&amp;gt;  आंबारस मतीरां, वघारीआं &amp;lt;ref&amp;gt;वधारयां &amp;lt;/ref&amp;gt; ६ फूट, चिणानां&amp;lt;ref&amp;gt;चणाणा. &amp;lt;/ref&amp;gt;  बाकला, वघारि&amp;lt;ref&amp;gt;वधारथा. &amp;lt;/ref&amp;gt;  मसूर दालि, वघारी आंबागोठी, तूअरिना नीलूआ, चिनामी दालि, वघारि बूबूल,&amp;lt;ref&amp;gt;ब्बूल &amp;lt;/ref&amp;gt;  काकडी,&amp;lt;ref&amp;gt;&#039;काकडी.... कोठीबदां&#039; ए पाठ बीजी प्रतमां &#039;कंकोडां कारेलां&#039; ए मुख्य प्रतना (उपर, पं. ३) शब्दोनी पछी आवे छे. &amp;lt;/ref&amp;gt; कोहलां, कालिंगडां, कोठीबडां, आरीआं, चीलनी भाजी, ढीबडांनी भाजी, सोआनी भाजी, तांदजानी &amp;lt;ref&amp;gt;तांदलजानी. &amp;lt;/ref&amp;gt;भाजी, चिणेजी&amp;lt;ref&amp;gt;चिणानी, &amp;lt;/ref&amp;gt;  भाजी, कणझिरानी भाजी, मेथीनी भाजी, फांगीनी भाजी.&amp;lt;ref&amp;gt; &#039;फांगीनी भाजी, अडदनी भाजी&#039; ए शब्दो बीजी प्रतमां नथी. &amp;lt;/ref&amp;gt;  अडदनी भाजी, कली&amp;lt;ref&amp;gt;काला थुलाना. &amp;lt;/ref&amp;gt;  पापड, लांगना&amp;lt;ref&amp;gt;लांगनन, &amp;lt;/ref&amp;gt; पापड, मगना पापड, चोषानी पापडी, जारिनी पापडी, मालनी पापडी, तेहनां साजीआं.&amp;lt;ref&amp;gt;साजीयां. &amp;lt;/ref&amp;gt;  चुलानी वडी, अडदनी बडी, घसि&amp;lt;ref&amp;gt;घईसि. &amp;lt;/ref&amp;gt;  वडी, छमका बडी, सुंतली वडी, षेरु, राईतां,&amp;lt;ref&amp;gt;रायतां. &amp;lt;/ref&amp;gt;  घारडां, पनुली, बघारिआ वाल, वाल्हुलि सूरी, वाल्हुलि चिहुं वानीना पलेव, कडूआ&amp;lt;ref&amp;gt;कडूया. &amp;lt;/ref&amp;gt;  कसायला तीषा मधुरा पाडोसणिनी जीमि&amp;lt;ref&amp;gt;जीभ. &amp;lt;/ref&amp;gt;  जस्या&amp;lt;ref&amp;gt;जिस्या. &amp;lt;/ref&amp;gt;  कडूआ, जिसिआ&amp;lt;ref&amp;gt;जिस्यू. &amp;lt;/ref&amp;gt;  सद्‌गुरु तणा उपदेश तिस्या कसायला, जिसी सुकिनी&amp;lt;ref&amp;gt;सोकिनी,&amp;lt;/ref&amp;gt;  जीभ एहवा तीषा, जिस्यांमातानां चित्त तिस्या मधुरा पलेव. स्वादनइं अर्थि लींबुआना रस मुंकाइ,&amp;lt;ref&amp;gt; मूकायइं.&amp;lt;/ref&amp;gt;  पछइ मिरी मांजरि, लींबुआं षारां, बीली,&amp;lt;ref&amp;gt; आ शब्द पछी &#039;करपटां कयर षारां&#039; एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  खारी सुंठि, खारी कइरी, कोहलाना फाफडा षारा&amp;lt;ref&amp;gt; षार. &amp;lt;/ref&amp;gt;  सेक्या, खारां कयर, खारी हलद्र, खारा वासेटा, एवंविध&amp;lt;ref&amp;gt; एवं विधि, तेना पड़ी आवतो &#039;सालणां&#039; शब्द बीजी प्रतमां नथी, पण एने स्थाने &#039;गिरिमिरी बांसगांठि आदां&#039; एवा शब्दो छे. &amp;lt;/ref&amp;gt;  सालणां. सेक्या सुंतल्या&amp;lt;ref&amp;gt; &#039;सुंतल्यां&#039; शब्द बीजी प्रतमां नथी. &amp;lt;/ref&amp;gt; तल्यां&amp;lt;ref&amp;gt; तला. &amp;lt;/ref&amp;gt; ताव्यां&amp;lt;ref&amp;gt; ताव्या. &amp;lt;/ref&amp;gt;  तीषां तमतमां षाटां पारां&amp;lt;ref&amp;gt; आ पछी बीजी प्रतमां &#039;तमतमां&#039; शब्द छे. &amp;lt;/ref&amp;gt; कडूआं कसायलां मीठां मधुरां गलिआं&amp;lt;ref&amp;gt; कल्यां. &amp;lt;/ref&amp;gt; चोपडां, काचां&amp;lt;ref&amp;gt; चोल्यां. &amp;lt;/ref&amp;gt;  पाकां छोल्यां छुबरयां&amp;lt;ref&amp;gt; सुतलां. &amp;lt;/ref&amp;gt;  वघारियां&amp;lt;ref&amp;gt; मधास्यां. &amp;lt;/ref&amp;gt;  अणवधारियां,&amp;lt;ref&amp;gt; अणवघारां. &amp;lt;/ref&amp;gt;  इस्यां सालणां. एलचीवाणी, द्राषवाणी, साकरवाणी, आंबलिवाणी,&amp;lt;ref&amp;gt; आंबिलवाणी, ए पछी बीजी प्रतमां, &#039;इक्षुवाणी&#039; शब्द छे.&amp;lt;/ref&amp;gt;  पांडवाणी, विचि इस्यां पीजइ पांणी. बारु शालि तणा करंबा,&amp;lt;ref&amp;gt; आ पछी बीजी प्रतमां  &#039;पांमी इंनु पूजीइं अंबा&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  कपूरिं वास्या,&amp;lt;ref&amp;gt; आ पछी प्रतमां &#039;जिम वासहु करइं आस्या’ एवा शब्द छे. &amp;lt;/ref&amp;gt; एलचीनुं उल्लास, भोज्य लक्ष्मीनुं निवास, मांहि दही तणु प्रयोग, जेणइ&amp;lt;ref&amp;gt; जेहनइं. &amp;lt;/ref&amp;gt;  जिमणहारनइ हुइ&amp;lt;ref&amp;gt; हुयइं. &amp;lt;/ref&amp;gt; अभियोग, अमृतमय थोल, जिस्या खीर समुद्रना कल्लोल. हाथे मिलिउ गलणे गलिउ,&amp;lt;ref&amp;gt; गलीयउ., &amp;lt;/ref&amp;gt; अत्यंत धवल प्रीणीइ मुखकमल इस्या&amp;lt;ref&amp;gt; &#039;इस्या थोल&#039; ए शब्दो बीजी प्रतमां नथी. &amp;lt;/ref&amp;gt; थोल, ऊपरि उन्हां टाढां पाणी,&amp;lt;ref&amp;gt; आ पछी बीजी प्रतमां &#039;आपइं चतुर नारि आणी&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  सीकरीवासित कपूरवासित&amp;lt;ref&amp;gt; कपूरवासित वाणी. &amp;lt;/ref&amp;gt;  पाडलवासित&amp;lt;ref&amp;gt; पाडलवासित बाणी. &amp;lt;/ref&amp;gt; एलचीवासित इस्यां पाणी, खीरोदक चीर हाथ- लूहाण.&amp;lt;ref&amp;gt; लूंहणे. &amp;lt;/ref&amp;gt;  पछइ चाउरे&amp;lt;ref&amp;gt; चाउर. &amp;lt;/ref&amp;gt;  [3-A] आसणे आवी बइसइ.&amp;lt;ref&amp;gt; बइंस्यइं.&amp;lt;/ref&amp;gt; हवइं तंबोल,&amp;lt;ref&amp;gt; आ पच्छी &#039;आपइं तंबोर शब्दो बीजी प्रतमां छे.&amp;lt;/ref&amp;gt;  अडांगरां पांन, तबकी पांन, षाषरीआ&amp;lt;ref&amp;gt; षाषरीयां. &amp;lt;/ref&amp;gt;  पांन, चेउली पांन, श्रेष्टिवेलिआं&amp;lt;ref&amp;gt; *वेलियां. &amp;lt;/ref&amp;gt; पांन, कपूरवेलिआ&amp;lt;ref&amp;gt; *वेलियां. &amp;lt;/ref&amp;gt;  पान, नागरखंडां पांन, मांगुलुरां&amp;lt;ref&amp;gt; मांगळुरां. &amp;lt;/ref&amp;gt;  पांन, बीटि सांकडां,&amp;lt;ref&amp;gt; &#039;बीटि सांकडां&#039; आ शब्दो पछी &#039;मांहि नहीं लाकडां&#039; एवा शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  अल्प नसाजाल, एवंविध&amp;lt;ref&amp;gt; एहवां. &amp;lt;/ref&amp;gt;  मनोहर पांन.&amp;lt;ref&amp;gt; &#039;मनोहर पांन&#039; ए शब्दोंने बदले बीजी प्रतमां &#039;आपइ भुपाल&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  तबकी सोपारी, चेउळी सोवारी, कीली सोपारी, चीकणी सोपारी, लालीआं&amp;lt;ref&amp;gt; लालीआ. &amp;lt;/ref&amp;gt; सोपारी, रोठा&amp;lt;ref&amp;gt; रोठा. &amp;lt;/ref&amp;gt;  सोपारी, भमरागर सोपारी, कुचीगर सोपारी, तानुरां सोपारी, मडावां सोपारी, नीली सोपारी, कातली, तबक खरवडी, तबकी&amp;lt;ref&amp;gt; तबकी. &amp;lt;/ref&amp;gt; काथु, केवडीउ&amp;lt;ref&amp;gt; केवडीयो. &amp;lt;/ref&amp;gt; काथु,&amp;lt;ref&amp;gt; काथो. &amp;lt;/ref&amp;gt;  लिविंग&amp;lt;ref&amp;gt; लविंग, &amp;lt;/ref&amp;gt;  एलची बोदा काठी जाइफल जावित्री&amp;lt;ref&amp;gt; जावंत्री. &amp;lt;/ref&amp;gt;  कर्पूर&amp;lt;ref&amp;gt; मिरीकपूर. &amp;lt;/ref&amp;gt; कस्तूरी तणइ संयोगि चुसरां&amp;lt;ref&amp;gt; चुसठि. &amp;lt;/ref&amp;gt;  पाननां बीडां&amp;lt;ref&amp;gt; आ पछी बीजी प्रतमां &#039;एकइं नहीं रुडां इकइं नहीं&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  इम&amp;lt;ref&amp;gt; ईम, आ पछी बीजी प्रतमां &#039;द्रव्यना लाहा लीधा’ एवा शब्द छे. &amp;lt;/ref&amp;gt;  सर्व परिवारनइं भोजन तंबोल दीधा.&lt;br /&gt;
ईसपना&amp;lt;ref&amp;gt; ईसपान. &amp;lt;/ref&amp;gt;  लोबान,&amp;lt;ref&amp;gt; लोब्यान. &amp;lt;/ref&amp;gt;  शलारसबती,&amp;lt;ref&amp;gt; शलारसवती. &amp;lt;/ref&amp;gt;  कृष्णागर भोग धूप समस्त परिवार आगलि ऊषेवाइ.&amp;lt;ref&amp;gt; उषवेवाइं, आनी पछी बीजी प्रतमां &#039;गायन बइंठाणाय&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  धूपेल चांपेल मोगरेल करणेल जइतेल&amp;lt;ref&amp;gt; जायतेल, बीजी प्रतमां आ शब्द पछी &#039;घणइ बत्त्या&#039; शब्दो मले छे. &amp;lt;/ref&amp;gt;  एवंविध तेलिइं चोला भीजाइ.&amp;lt;ref&amp;gt; भींजबीइं &amp;lt;/ref&amp;gt; चूउ जबाधि पोहिसा कचूलु गुलाब सुरतर&amp;lt;ref&amp;gt; गुरुतरु. &amp;lt;/ref&amp;gt;  अबीर बावन्नाचंदन सूकडि केसर मिलियोगिरा&amp;lt;ref&amp;gt; मिलियागरं, &amp;lt;/ref&amp;gt; कपूरकाचरी नखला गहुंला कस्तूरी बरासकपूर,&amp;lt;ref&amp;gt; कपूरबरास. &amp;lt;/ref&amp;gt;  चीणीउं कपूर,&amp;lt;ref&amp;gt; आ शब्द बीजी प्रतमां नथी. &amp;lt;/ref&amp;gt; गुलाल एवंविध छांटणां. चंपकपुष्प&amp;lt;ref&amp;gt; चंपकपुष्प. &amp;lt;/ref&amp;gt;  मालती&amp;lt;ref&amp;gt; मालतीपुष्प. &amp;lt;/ref&amp;gt;  केवडा पाडल जाइनां&amp;lt;ref&amp;gt; जायनां.&amp;lt;/ref&amp;gt;  फूल, सेवंत्रां, जूईनां&amp;lt;ref&amp;gt; जूहीनां.&amp;lt;/ref&amp;gt;  फूल, बुलसिरीनां&amp;lt;ref&amp;gt; बलिहारी. &amp;lt;/ref&amp;gt; फूल, दमणउ सरूउ मचकंद कमल जासु गुलाल बेलि मोगरु करणी वालु पारिजातक&amp;lt;ref&amp;gt; हारिजात. &amp;lt;/ref&amp;gt; एवंविध&lt;br /&gt;
&amp;lt;ref&amp;gt;एम विधि. &amp;lt;/ref&amp;gt; फूल परिवार प्रति अपाइ.&amp;lt;ref&amp;gt; अपावइ. &amp;lt;/ref&amp;gt; हवइ राजा परिवार प्रति वस्त्र आपइ; गुडीआं&amp;lt;ref&amp;gt; गुडीयां, बीजी प्रतमां अन्य वस्त्रोनां नामने छेडे पण &#039;आं &#039;ने बदले ‘यां&#039; छे &amp;lt;/ref&amp;gt; शणीआं कस्तूरीआं प्रतापीआं कुसंभीआ&amp;lt;ref&amp;gt;आनी पछीनो &#039;मोलीआं&#039; शब्द बीजी प्रतमां नथी &amp;lt;/ref&amp;gt; वाटलीआं जलोदरीआं मगीआं जोडदरीआं प्रागीआं चुकडीआं&amp;lt;ref&amp;gt; चउकडीयां. &amp;lt;/ref&amp;gt; टसरीआं पूरीआं अमरीआं सूहवीआं मूगीआं चलवलीआं चारुलीआं परवालीआं मांडलीआं खाजलीआं पिंपलीआं पोपटिआं हांसलीआं चंपकदुर्गीआं&amp;lt;ref&amp;gt;चंपकदुगीयां. &amp;lt;/ref&amp;gt; विद्यापुरीआं देकापाटकीआं कास्मीरीआं धूमराई खीरोदक पदांशुक चीनांशुक खांडकी तनुसख मनसष&amp;lt;ref&amp;gt; मनसुष. &amp;lt;/ref&amp;gt; कमखा चलाषा मलाषा देवदूष्य&amp;lt;ref&amp;gt; &#039;देवदूष्य&#039; शब्द बीजी प्रतमां नथी.&amp;lt;/ref&amp;gt; बंधालग कौठालग कलगइ कोकची&amp;lt;ref&amp;gt; कठपीठ, आनी पछी &#039;षेस&#039; शब्द बीजी पतमां छे. &amp;lt;/ref&amp;gt; पंचवर्ण यज, दुरंगी यज, मांगलुरी यज, गढगजी सवागजी चुगजी पंटणी पटपाटू, पंचवर्ण छींट, नीलवटां चकवटां धौंत [3-B] वटां मुहिवटां नाटी दोटी धटी कठपीठ पाघडी बींडी रेट चूनडी पातलसाडी, नंदरबारी पाघडी, पामडी लोवडी, वाहणवही लोवडी, पछेडी चूनडी गजवडि&amp;lt;ref&amp;gt; गजबटि. &amp;lt;/ref&amp;gt; बोरीआवडि हंसवडि सुवर्णवडि&amp;lt;ref&amp;gt; सुवणवडि. &amp;lt;/ref&amp;gt; कालावडि फाडां ठेपाडां कुमरपछेडु, गोमेद लुगडूं, अदाण&amp;lt;ref&amp;gt; अद्दण. &amp;lt;/ref&amp;gt; कर्मदाण कंतरांइणी गजकर्णी पइठाणी&amp;lt;ref&amp;gt; पइंठांणी. &amp;lt;/ref&amp;gt; सलहिती बारबती फरोदस्ती चूडाभाति शकलात पोतु तास्तु नीलनेत्रां बासत्था, मिशरु बासत्था, कद दोकद चुपदा मास-पदा तनुबंध&amp;lt;ref&amp;gt; तिनुबंध.&amp;lt;/ref&amp;gt; शरबंध कमरबंध मगवनां कमलवनां दरीयाखाना कतनीझूंना&amp;lt;ref&amp;gt; कचनीझूंना.&amp;lt;/ref&amp;gt; प्रताप सचोप, पटणी कथीवु, फिरंगी&amp;lt;ref&amp;gt;फरंगी, आ शब्द पछी बीजी प्रतमां  &#039;एरंडी&#039; छे. &amp;lt;/ref&amp;gt; कथीवु, सानुबाफ जरबाफ श्रीबाफ सुफ कमखा&amp;lt;ref&amp;gt;कमरबाफ. &amp;lt;/ref&amp;gt;  खरमु नरमु मेघाडंबर मंजीर दाडिमसार&amp;lt;ref&amp;gt;दामिमसार.&amp;lt;/ref&amp;gt;  जादर हीरागर वइरागर फूलपगर चीर बलगार चुतार&amp;lt;ref&amp;gt;चउतार. &amp;lt;/ref&amp;gt;  पीतांबर चादर रक्तांबर नेत्रांबर षासरी सालूर&amp;lt;ref&amp;gt;गालू. &amp;lt;/ref&amp;gt;  चौलहिरां&amp;lt;ref&amp;gt;चोलहिरा. &amp;lt;/ref&amp;gt; नीलुहुरां&amp;lt;ref&amp;gt;तीलुहुरी. &amp;lt;/ref&amp;gt;  जरजरी मलबारी लाछरी&amp;lt;ref&amp;gt;लाछुउरी. &amp;lt;/ref&amp;gt;  अधोतरी&amp;lt;ref&amp;gt;अधातरी, आनी पछी &#039;देवदूषा&#039; शब्द बीजी प्रतमां छे. &amp;lt;/ref&amp;gt;  अमरी गंगापारी मोतीचूरि टमरु मशरु रत्नकंबल छाइल मकबल अगल साउला उरसाला वाला पटुलां बाकलां घनवेलि कमलवेलि कपूरवेलि सेलां पटुली षमरतली झमरतली चेउली मह्यूसालू&amp;lt;ref&amp;gt;महुसाहु. &amp;lt;/ref&amp;gt; चारसा&amp;lt;ref&amp;gt; चोरसा &amp;lt;/ref&amp;gt; षरबास षेस&amp;lt;ref&amp;gt;बीजी प्रतमर्मा &#039;षेस&#039; नथी. &amp;lt;/ref&amp;gt;  कतास अतलस खासु कमसू भइरव, मिश्रु भइरव, रेशमी भइरव, लाहि महीमुंदीशाही&amp;lt;ref&amp;gt; महिमुंदशाही, आनी पछी बीजी प्रतमां नीचेनां वस्त्रोनां नाम मळे छेः &#039;चीगीदाम गोयागरी सागीयां, नीली पांजणी, पीली काली कादूई राती पंचवर्ण पांजणी, पछेडी, बाट पछेडी, नीझरी पछेडी, सोनादोरी पछेडी.&#039; &amp;lt;/ref&amp;gt;  मलमलसाही प्रमुख नानाविध&amp;lt;ref&amp;gt;नानाविधि. &amp;lt;/ref&amp;gt;  भातिनां,&amp;lt;ref&amp;gt;आ पछी बीजी प्रतमां ‘नानावधि जातिनां&#039; एवा शब्द छे. &amp;lt;/ref&amp;gt;  नानाविध&amp;lt;ref&amp;gt;नानाविधि. &amp;lt;/ref&amp;gt;  देशनां वस्त्र आणी समस्त परिवार,&amp;lt;ref&amp;gt;आ पछी बीजी प्रतमां ‘स्वजनवर्ग परवर्ग नरनारी&#039; ए शब्दो छे. &amp;lt;/ref&amp;gt;  नगरलोक पहिरावी&amp;lt;ref&amp;gt;पहिरावइं, आ पछी बीजी प्रतमां नीचेनी पंक्तिओ छे:&amp;lt;br&amp;gt;&lt;br /&gt;
{{gap}}देशलोक, बंदीजन, जाचक, प्रतिबंधन वस्त्र आपइं, दरिद्रानां दरिद्र कापइ, सहुनइं पहिराबी, लोभनी बात नावीः राजा युबराजा प्रधान श्रीकरण कोठारी धान्यकोठारी धनभंडारी वस्रभंडारी नगरलोक सहुइंनइं राजा बुलावइं, पद पाच सात पाछलि आवई, चतुर नारी गीत गावइं, मोती थाल भरी वधावइं, मृदंग पडह तूर बजावइं, पंच शबद नीसाण गजावइं, एहवा उछव करावइ, मस्तकि छत्र धरावइं, पापिष्ट दुष्टनइं डरावइं, पंषिया जीवनइं चर।बइं.&#039; &amp;lt;/ref&amp;gt;  नांमस्थापना कीधी.&amp;lt;ref&amp;gt;आ पछी बीजी प्रतमां &#039;कीर्तिरुपिणी धज दीधी&#039; एवा शब्द छे.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
इति श्रीजिमणवारपरिधानविधिः संपूर्णः। &amp;lt;ref&amp;gt; बीजी प्रतमां नीचे प्रमागे पुष्पिका छे:&amp;lt;br&amp;gt;&lt;br /&gt;
गणि हस्तीरुचि लिषतं बीबीपुरे पारिष जेठा स्ववाचनाय ॥&amp;lt;/ref&amp;gt;पूज्यश्रीसोमविमलसूरिशिष्यआचार्य्यश्रीआणंदसोमसूरिशिष्यपंडितरत्नसोमगणि तत् शिष्य विद्यासोममुनिलषितं । संवत १६७५ वर्षे फागुण वदि ७ गुरौ वासरे। श्रीरस्तुः । कल्लाणमस्तु ॥&lt;br /&gt;
{{Poem2Close}}&lt;br /&gt;
&lt;br /&gt;
{{right|&#039;&#039;&#039;[વર્ણકસમુચ્ચમ ભાગ-૧, પ્રકા. મહારાજા સયાજીરાવ વિશ્વવિદ્યાલય, વડોદરા, ૧૯૫૬]&#039;&#039;&#039;}}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{center|&amp;lt;nowiki&amp;gt;****&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{HeaderNav2&lt;br /&gt;
|previous = સૌભાગ્યપંચમી કથા&lt;br /&gt;
|next = ભોજનસામગ્રી&lt;br /&gt;
}}&lt;br /&gt;
{{reflist}}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Minerva.css&amp;diff=101099</id>
		<title>MediaWiki:Minerva.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Minerva.css&amp;diff=101099"/>
		<updated>2025-10-15T05:35:36Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* All CSS here will be loaded for users of the MinervaNeue skin */&lt;br /&gt;
.page-heading {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
.bookcover-heading {&lt;br /&gt;
    font-size: 29px;&lt;br /&gt;
    color: #861f23;&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.external, .mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
/* Override hiding of headings on mobile */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
  html.skin-minerva .pre-content h1,&lt;br /&gt;
  html.skin-minerva .content h1,&lt;br /&gt;
  html.skin-minerva .content h2 {&lt;br /&gt;
    display: block !important;&lt;br /&gt;
    visibility: visible !important;&lt;br /&gt;
    opacity: 1 !important;&lt;br /&gt;
    height: auto !important;&lt;br /&gt;
    overflow: visible !important;&lt;br /&gt;
  }&lt;br /&gt;
  html.skin-minerva .pre-content,&lt;br /&gt;
  html.skin-minerva .mw-body &amp;gt; .content,&lt;br /&gt;
  html.skin-minerva #mw-mf-page-center {&lt;br /&gt;
    display: block !important;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=101098</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=101098"/>
		<updated>2025-10-15T05:01:12Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, .content h1, .content h2 {&lt;br /&gt;
        display: block !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.poem {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=101097</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=101097"/>
		<updated>2025-10-15T04:59:59Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, &lt;br /&gt;
    .content h1, &lt;br /&gt;
    .content h2 {&lt;br /&gt;
        display: block !important;&lt;br /&gt;
        visibility: visible !important;&lt;br /&gt;
    opacity: 1 !important;&lt;br /&gt;
    height: auto !important;&lt;br /&gt;
    overflow: visible !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.poem {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101096</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101096"/>
		<updated>2025-10-15T04:37:30Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// ==UserScript==&lt;br /&gt;
// @name         MediaWiki Smart Single Quotes&lt;br /&gt;
// @namespace    http://your.local/&lt;br /&gt;
// @version      1.0&lt;br /&gt;
// @description  Convert straight single quotes to typographic single quotes on MediaWiki pages (visual only).&lt;br /&gt;
// @match        https://wiki.ekatrafoundation.org/*&lt;br /&gt;
// @grant        none&lt;br /&gt;
// ==/UserScript==&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function convertSingleQuotesText(text) {&lt;br /&gt;
        if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
        text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;); // contractions/possessives&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;); // opening quotes&lt;br /&gt;
        text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;); // remaining closing quotes&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        if (!root) return;&lt;br /&gt;
        try {&lt;br /&gt;
            var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
            var n;&lt;br /&gt;
            var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;]);&lt;br /&gt;
            while ((n = walker.nextNode())) {&lt;br /&gt;
                var parent = n.parentNode;&lt;br /&gt;
                if (!parent) continue;&lt;br /&gt;
                var anc = parent, skip = false;&lt;br /&gt;
                while (anc &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                    if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                    anc = anc.parentNode;&lt;br /&gt;
                }&lt;br /&gt;
                if (skip) continue;&lt;br /&gt;
                var orig = n.nodeValue;&lt;br /&gt;
                var rep = convertSingleQuotesText(orig);&lt;br /&gt;
                if (rep !== orig) n.nodeValue = rep;&lt;br /&gt;
            }&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes error&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function applyOnce() {&lt;br /&gt;
        var root = document.querySelector(&#039;.mw-parser-output&#039;) || document.body;&lt;br /&gt;
        walkAndReplace(root);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // run after window.load, also watch for AJAX content&lt;br /&gt;
    window.addEventListener(&#039;load&#039;, function () {&lt;br /&gt;
        setTimeout(applyOnce, 150);&lt;br /&gt;
        var obs = new MutationObserver(function (mutations) {&lt;br /&gt;
            mutations.forEach(function (m) {&lt;br /&gt;
                m.addedNodes &amp;amp;&amp;amp; m.addedNodes.forEach(function (n) {&lt;br /&gt;
                    if (n.nodeType === 1) walkAndReplace(n);&lt;br /&gt;
                    else if (n.nodeType === 3 &amp;amp;&amp;amp; n.parentNode) walkAndReplace(n.parentNode);&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
        obs.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
    }, false);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101060</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101060"/>
		<updated>2025-10-14T18:47:43Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(function (window, document) {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Small API object for testing/rerun&lt;br /&gt;
    window.smartQuotes = window.smartQuotes || {};&lt;br /&gt;
&lt;br /&gt;
    // Convert single quotes in a text string to smart quotes&lt;br /&gt;
    function convertSingleQuotes(text) {&lt;br /&gt;
        if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
        // Protect contractions/possessives like don&#039;t or John&#039;s&lt;br /&gt;
        text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;);&lt;br /&gt;
        // Opening single quote when at start or after whitespace/open punctuation&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;);&lt;br /&gt;
        // Remaining single quotes are closing&lt;br /&gt;
        text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;);&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Walk text nodes under root and replace text content (skip code-like tags)&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        if (!root) return;&lt;br /&gt;
        try {&lt;br /&gt;
            var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
            var node;&lt;br /&gt;
            var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;, &amp;quot;TEXTAREA&amp;quot;]);&lt;br /&gt;
            while ((node = walker.nextNode())) {&lt;br /&gt;
                var parent = node.parentNode;&lt;br /&gt;
                if (!parent) continue;&lt;br /&gt;
                // Skip nodes with blacklisted ancestor&lt;br /&gt;
                var anc = parent, skip = false;&lt;br /&gt;
                while (anc &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                    if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                    anc = anc.parentNode;&lt;br /&gt;
                }&lt;br /&gt;
                if (skip) continue;&lt;br /&gt;
                var original = node.nodeValue;&lt;br /&gt;
                var replaced = convertSingleQuotes(original);&lt;br /&gt;
                if (replaced !== original) node.nodeValue = replaced;&lt;br /&gt;
            }&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            // Defensive: log but don&#039;t throw&lt;br /&gt;
            if (window.console &amp;amp;&amp;amp; window.console.error) {&lt;br /&gt;
                console.error(&#039;smartQuotes.walkAndReplace error:&#039;, e);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Process main content area (parser output) then body fallback&lt;br /&gt;
    function processOnce() {&lt;br /&gt;
        var root = document.querySelector(&#039;.mw-parser-output&#039;) || document.body;&lt;br /&gt;
        walkAndReplace(root);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Observe for dynamic/AJAX content&lt;br /&gt;
    function initObserver() {&lt;br /&gt;
        try {&lt;br /&gt;
            var obs = new MutationObserver(function (mutations) {&lt;br /&gt;
                mutations.forEach(function (m) {&lt;br /&gt;
                    m.addedNodes &amp;amp;&amp;amp; m.addedNodes.forEach(function (n) {&lt;br /&gt;
                        if (n.nodeType === 1) walkAndReplace(n);&lt;br /&gt;
                        else if (n.nodeType === 3 &amp;amp;&amp;amp; n.parentNode) walkAndReplace(n.parentNode);&lt;br /&gt;
                    });&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
            obs.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
            window.smartQuotes._observer = obs;&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes.initObserver error:&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Public API to run now (useful to trigger from console)&lt;br /&gt;
    window.smartQuotes.runNow = function () {&lt;br /&gt;
        processOnce();&lt;br /&gt;
        if (!window.smartQuotes._observer) initObserver();&lt;br /&gt;
        return true;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    // Run after full window load — this avoids ResourceLoader bundle errors&lt;br /&gt;
    function runAfterLoad() {&lt;br /&gt;
        try {&lt;br /&gt;
            // Use requestIdleCallback if available for low priority, fallback to setTimeout&lt;br /&gt;
            var run = function () { window.smartQuotes.runNow(); };&lt;br /&gt;
            if (&#039;requestIdleCallback&#039; in window) {&lt;br /&gt;
                requestIdleCallback(run, { timeout: 2000 });&lt;br /&gt;
            } else {&lt;br /&gt;
                // slight delay to allow any late DOM insertions&lt;br /&gt;
                setTimeout(run, 350);&lt;br /&gt;
            }&lt;br /&gt;
            if (window.console) console.info(&#039;smartQuotes: scheduled run after load.&#039;);&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes.runAfterLoad error:&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (document.readyState === &#039;complete&#039;) {&lt;br /&gt;
        runAfterLoad();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Attach to load to guarantee it runs after everything (including ResourceLoader errors)&lt;br /&gt;
        window.addEventListener(&#039;load&#039;, runAfterLoad, false);&lt;br /&gt;
        // Also run on DOMContentLoaded as a fallback&lt;br /&gt;
        document.addEventListener(&#039;DOMContentLoaded&#039;, function () {&lt;br /&gt;
            // still defer slightly so other inline scripts finish&lt;br /&gt;
            setTimeout(runAfterLoad, 150);&lt;br /&gt;
        }, false);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Helpful console test: window.smartQuotes.test()&lt;br /&gt;
    window.smartQuotes.test = function (input) {&lt;br /&gt;
        input = input || &amp;quot; &#039;Hello&#039; It&#039;s John&#039;s &#039;quote&#039; &amp;quot;;&lt;br /&gt;
        var out = convertSingleQuotes(input);&lt;br /&gt;
        console.log(&#039;smartQuotes.test input:&#039;, input);&lt;br /&gt;
        console.log(&#039;smartQuotes.test output:&#039;, out);&lt;br /&gt;
        return out;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
})(window, document);&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101059</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101059"/>
		<updated>2025-10-14T18:45:18Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// MediaWiki:Common.js&lt;br /&gt;
// Smart single-quote substitution (fixed) - ver 1.3&lt;br /&gt;
&lt;br /&gt;
( function ( window, document, mw ) {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Minimal safety: if mw is missing, bail out gracefully&lt;br /&gt;
    if ( typeof mw === &#039;undefined&#039; ) {&lt;br /&gt;
        console.warn(&#039;smartQuotes: mw is not available; aborting.&#039;);&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Ensure we load when ResourceLoader is ready&lt;br /&gt;
    mw.loader.using([], function () {&lt;br /&gt;
&lt;br /&gt;
        // Utility: are we anonymous? (avoids using mw.user.isAnon)&lt;br /&gt;
        function isAnon() {&lt;br /&gt;
            var wgUserId = mw.config.get(&#039;wgUserId&#039;);&lt;br /&gt;
            // wgUserId is 0 or null for anonymous users in many setups&lt;br /&gt;
            return !wgUserId || wgUserId === 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Convert single quotes -&amp;gt; smart quotes in a string&lt;br /&gt;
        function convertSingleQuotes(text) {&lt;br /&gt;
            if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
            // Protect contractions/possessives like don&#039;t or John&#039;s&lt;br /&gt;
            text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;);&lt;br /&gt;
            // Opening single quote when at start or after whitespace or opening punctuation&lt;br /&gt;
            text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;);&lt;br /&gt;
            // Remaining single quotes are closing&lt;br /&gt;
            text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;);&lt;br /&gt;
            return text;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Walk text nodes under root and replace text content (skip code-like tags)&lt;br /&gt;
        function walkAndReplace(root) {&lt;br /&gt;
            try {&lt;br /&gt;
                if (!root) return;&lt;br /&gt;
                var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
                var node;&lt;br /&gt;
                var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;]);&lt;br /&gt;
&lt;br /&gt;
                while ((node = walker.nextNode())) {&lt;br /&gt;
                    var parent = node.parentNode;&lt;br /&gt;
                    if (!parent) continue;&lt;br /&gt;
                    // skip if any ancestor is blacklisted&lt;br /&gt;
                    var anc = parent, skip = false;&lt;br /&gt;
                    while (anc &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                        if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                        anc = anc.parentNode;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (skip) continue;&lt;br /&gt;
                    var original = node.nodeValue;&lt;br /&gt;
                    var replaced = convertSingleQuotes(original);&lt;br /&gt;
                    if (replaced !== original) node.nodeValue = replaced;&lt;br /&gt;
                }&lt;br /&gt;
            } catch (e) {&lt;br /&gt;
                console.error(&#039;smartQuotes.walkAndReplace error:&#039;, e);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Process initial content&lt;br /&gt;
        function processAll() {&lt;br /&gt;
            try {&lt;br /&gt;
                var root = document.querySelector(&#039;.mw-parser-output&#039;) || document.body;&lt;br /&gt;
                walkAndReplace(root);&lt;br /&gt;
                console.info(&#039;smartQuotes: processAll completed.&#039;);&lt;br /&gt;
            } catch (e) {&lt;br /&gt;
                console.error(&#039;smartQuotes.processAll error:&#039;, e);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Observer for dynamic content&lt;br /&gt;
        function initObserver() {&lt;br /&gt;
            try {&lt;br /&gt;
                var observer = new MutationObserver(function (mutations) {&lt;br /&gt;
                    mutations.forEach(function (m) {&lt;br /&gt;
                        if (m.addedNodes &amp;amp;&amp;amp; m.addedNodes.length) {&lt;br /&gt;
                            m.addedNodes.forEach(function (n) {&lt;br /&gt;
                                if (n.nodeType === 1) walkAndReplace(n);&lt;br /&gt;
                                else if (n.nodeType === 3 &amp;amp;&amp;amp; n.parentNode) walkAndReplace(n.parentNode);&lt;br /&gt;
                            });&lt;br /&gt;
                        }&lt;br /&gt;
                    });&lt;br /&gt;
                });&lt;br /&gt;
                observer.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
                window.smartQuotes = window.smartQuotes || {};&lt;br /&gt;
                window.smartQuotes._observer = observer;&lt;br /&gt;
                console.info(&#039;smartQuotes: MutationObserver inited.&#039;);&lt;br /&gt;
            } catch (e) {&lt;br /&gt;
                console.error(&#039;smartQuotes.initObserver error:&#039;, e);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Expose test function for console verification&lt;br /&gt;
        window.smartQuotes = window.smartQuotes || {};&lt;br /&gt;
        window.smartQuotes.test = function (input) {&lt;br /&gt;
            input = input || &amp;quot; &#039;Hello&#039; It&#039;s John&#039;s &#039;quote&#039; &amp;quot;;&lt;br /&gt;
            var out = convertSingleQuotes(input);&lt;br /&gt;
            console.log(&#039;smartQuotes.test input:&#039;, input);&lt;br /&gt;
            console.log(&#039;smartQuotes.test output:&#039;, out);&lt;br /&gt;
            return out;&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        // init after DOM ready&lt;br /&gt;
        function initWhenReady() {&lt;br /&gt;
            if (document.readyState === &#039;complete&#039; || document.readyState === &#039;interactive&#039;) {&lt;br /&gt;
                processAll();&lt;br /&gt;
                initObserver();&lt;br /&gt;
            } else {&lt;br /&gt;
                document.addEventListener(&#039;DOMContentLoaded&#039;, function () {&lt;br /&gt;
                    processAll();&lt;br /&gt;
                    initObserver();&lt;br /&gt;
                });&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        initWhenReady();&lt;br /&gt;
&lt;br /&gt;
    }); // mw.loader.using&lt;br /&gt;
&lt;br /&gt;
})( window, document, window.mw );&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101058</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101058"/>
		<updated>2025-10-14T18:42:19Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
( function (window, document, mw) {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Expose a minimal API for testing&lt;br /&gt;
    window.smartQuotes = window.smartQuotes || {};&lt;br /&gt;
&lt;br /&gt;
    function convertSingleQuotes(text) {&lt;br /&gt;
        if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
        // Protect contractions/possessives like don&#039;t or John&#039;s&lt;br /&gt;
        text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;);&lt;br /&gt;
        // Opening quote when at start or after whitespace or open punctuation&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;);&lt;br /&gt;
        // Remaining single quotes are closing&lt;br /&gt;
        text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;);&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        if (!root) return;&lt;br /&gt;
        var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
        var node;&lt;br /&gt;
        var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;]);&lt;br /&gt;
&lt;br /&gt;
        while ((node = walker.nextNode())) {&lt;br /&gt;
            var parent = node.parentNode;&lt;br /&gt;
            if (!parent) continue;&lt;br /&gt;
&lt;br /&gt;
            // Skip nodes with blacklisted ancestor&lt;br /&gt;
            var anc = parent, skip = false;&lt;br /&gt;
            while (anc &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                anc = anc.parentNode;&lt;br /&gt;
            }&lt;br /&gt;
            if (skip) continue;&lt;br /&gt;
&lt;br /&gt;
            var original = node.nodeValue;&lt;br /&gt;
            var replaced = convertSingleQuotes(original);&lt;br /&gt;
            if (replaced !== original) node.nodeValue = replaced;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Kick off on initial DOM and expose functions for debugging&lt;br /&gt;
    function processAll() {&lt;br /&gt;
        try {&lt;br /&gt;
            var root = document.querySelector(&#039;.mw-parser-output&#039;) || document.body;&lt;br /&gt;
            walkAndReplace(root);&lt;br /&gt;
            console.info(&#039;smartQuotes: processAll completed.&#039;);&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes processAll error:&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // MutationObserver for dynamic content&lt;br /&gt;
    function initObserver() {&lt;br /&gt;
        try {&lt;br /&gt;
            var observer = new MutationObserver(function (mutations) {&lt;br /&gt;
                mutations.forEach(function (m) {&lt;br /&gt;
                    if (m.addedNodes &amp;amp;&amp;amp; m.addedNodes.length) {&lt;br /&gt;
                        m.addedNodes.forEach(function (n) {&lt;br /&gt;
                            if (n.nodeType === 1) walkAndReplace(n);&lt;br /&gt;
                            else if (n.nodeType === 3 &amp;amp;&amp;amp; n.parentNode) walkAndReplace(n.parentNode);&lt;br /&gt;
                        });&lt;br /&gt;
                    }&lt;br /&gt;
                });&lt;br /&gt;
            });&lt;br /&gt;
            observer.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
            window.smartQuotes._observer = observer;&lt;br /&gt;
            console.info(&#039;smartQuotes: MutationObserver inited.&#039;);&lt;br /&gt;
        } catch (e) {&lt;br /&gt;
            console.error(&#039;smartQuotes observer error:&#039;, e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Expose a test utility to call from the console&lt;br /&gt;
    window.smartQuotes.test = function (input) {&lt;br /&gt;
        input = input || &amp;quot; &#039;Hello&#039; It&#039;s John&#039;s &#039;quote&#039; &amp;quot;;&lt;br /&gt;
        var out = convertSingleQuotes(input);&lt;br /&gt;
        console.log(&#039;smartQuotes.test input:&#039;, input);&lt;br /&gt;
        console.log(&#039;smartQuotes.test output:&#039;, out);&lt;br /&gt;
        return out;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    // Init after ResourceLoader and DOM ready&lt;br /&gt;
    function init() {&lt;br /&gt;
        processAll();&lt;br /&gt;
        initObserver();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (mw &amp;amp;&amp;amp; mw.loader) {&lt;br /&gt;
        mw.loader.using([], function () {&lt;br /&gt;
            if (document.readyState === &#039;complete&#039; || document.readyState === &#039;interactive&#039;) {&lt;br /&gt;
                init();&lt;br /&gt;
            } else {&lt;br /&gt;
                document.addEventListener(&#039;DOMContentLoaded&#039;, init);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    } else {&lt;br /&gt;
        // fallback&lt;br /&gt;
        if (document.readyState === &#039;complete&#039; || document.readyState === &#039;interactive&#039;) init();&lt;br /&gt;
        else document.addEventListener(&#039;DOMContentLoaded&#039;, init);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Small heartbeat so we can see if script runs at all&lt;br /&gt;
    console.info(&#039;smartQuotes script loaded.&#039;);&lt;br /&gt;
&lt;br /&gt;
})(window, document, window.mw);&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101057</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101057"/>
		<updated>2025-10-14T18:37:57Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Put this in MediaWiki:Common.js&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    // Convert single quotes in a text string to smart quotes&lt;br /&gt;
    function convertSingleQuotes(text) {&lt;br /&gt;
        if (!text || text.indexOf(&amp;quot;&#039;&amp;quot;) === -1) return text;&lt;br /&gt;
&lt;br /&gt;
        // 1) Protect contractions/possessives like &amp;quot;don&#039;t&amp;quot; or &amp;quot;John&#039;s&amp;quot;&lt;br /&gt;
        text = text.replace(/([A-Za-z0-9])&#039;([A-Za-z0-9])/g, &amp;quot;$1’$2&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        // 2) Replace opening single quotes:&lt;br /&gt;
        // Replace a straight quote that occurs at start of string or after whitespace/opening punctuation&lt;br /&gt;
        // with an opening single quote ‘&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;lt;\u2014\u2013&amp;quot;“&#039;«])&#039;(?=\S)/g, &amp;quot;$1‘&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        // 3) Remaining single quotes are closing quotes ’&lt;br /&gt;
        text = text.replace(/&#039;/g, &amp;quot;’&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Walk text nodes under root and replace text content&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        if (!root) return;&lt;br /&gt;
        var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
        var node;&lt;br /&gt;
        // Tags to ignore entirely&lt;br /&gt;
        var blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;, &amp;quot;INPUT&amp;quot;]);&lt;br /&gt;
&lt;br /&gt;
        while ((node = walker.nextNode())) {&lt;br /&gt;
            var parent = node.parentNode;&lt;br /&gt;
            if (!parent) continue;&lt;br /&gt;
&lt;br /&gt;
            // If any ancestor is blacklisted, skip this node&lt;br /&gt;
            var skip = false;&lt;br /&gt;
            var anc = parent;&lt;br /&gt;
            while (anc &amp;amp;&amp;amp; anc !== document &amp;amp;&amp;amp; anc.nodeType === 1) {&lt;br /&gt;
                if (blacklist.has(anc.nodeName)) { skip = true; break; }&lt;br /&gt;
                anc = anc.parentNode;&lt;br /&gt;
            }&lt;br /&gt;
            if (skip) continue;&lt;br /&gt;
&lt;br /&gt;
            var original = node.nodeValue;&lt;br /&gt;
            var replaced = convertSingleQuotes(original);&lt;br /&gt;
            if (replaced !== original) node.nodeValue = replaced;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Run on initial content&lt;br /&gt;
    function processAll() {&lt;br /&gt;
        walkAndReplace(document.body);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Handle dynamic content (AJAX navigation)&lt;br /&gt;
    function initObserver() {&lt;br /&gt;
        var observer = new MutationObserver(function(mutations) {&lt;br /&gt;
            mutations.forEach(function(m) {&lt;br /&gt;
                if (m.addedNodes &amp;amp;&amp;amp; m.addedNodes.length) {&lt;br /&gt;
                    m.addedNodes.forEach(function(n) {&lt;br /&gt;
                        if (n.nodeType === 1) { // element&lt;br /&gt;
                            walkAndReplace(n);&lt;br /&gt;
                        } else if (n.nodeType === 3) { // text node&lt;br /&gt;
                            // handle single text node&#039;s parent element&lt;br /&gt;
                            var parent = n.parentNode;&lt;br /&gt;
                            if (parent) walkAndReplace(parent);&lt;br /&gt;
                        }&lt;br /&gt;
                    });&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
        observer.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Use MediaWiki hooks if available, otherwise fallback to DOMContentLoaded&lt;br /&gt;
    if (window.mw &amp;amp;&amp;amp; mw.hook) {&lt;br /&gt;
        mw.hook(&#039;wikipage.content&#039;).add(function($content) { walkAndReplace($content[0]); });&lt;br /&gt;
        mw.loader.using([&#039;mediawiki.util&#039;]).then(function(){ processAll(); initObserver(); });&lt;br /&gt;
    } else {&lt;br /&gt;
        document.addEventListener(&#039;DOMContentLoaded&#039;, function () { processAll(); initObserver(); });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101056</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101056"/>
		<updated>2025-10-14T18:08:24Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
( function () {&lt;br /&gt;
    function smartSingleQuotes(text) {&lt;br /&gt;
        // Handle apostrophes in contractions or possessives first (like John&#039;s, it&#039;s)&lt;br /&gt;
        text = text.replace(/(\w)&#039;(\w)/g, &amp;quot;$1’$2&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        // Then handle opening quotes (at start or after space/open punctuation)&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;quot;‘“])/g, function(match) {&lt;br /&gt;
            return match; // just return the same, will handle in next step&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Now process alternation: alternate between opening ‘ and closing ’&lt;br /&gt;
        let result = &amp;quot;&amp;quot;;&lt;br /&gt;
        let isOpen = true;&lt;br /&gt;
        for (let char of text) {&lt;br /&gt;
            if (char === &amp;quot;&#039;&amp;quot;) {&lt;br /&gt;
                result += isOpen ? &amp;quot;‘&amp;quot; : &amp;quot;’&amp;quot;;&lt;br /&gt;
                isOpen = !isOpen;&lt;br /&gt;
            } else {&lt;br /&gt;
                result += char;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return result;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
        const blacklist = new Set([&amp;quot;CODE&amp;quot;, &amp;quot;PRE&amp;quot;, &amp;quot;SCRIPT&amp;quot;, &amp;quot;STYLE&amp;quot;, &amp;quot;TEXTAREA&amp;quot;, &amp;quot;NOSCRIPT&amp;quot;, &amp;quot;MATH&amp;quot;]);&lt;br /&gt;
&lt;br /&gt;
        let node;&lt;br /&gt;
        while ((node = walker.nextNode())) {&lt;br /&gt;
            let parent = node.parentNode;&lt;br /&gt;
            if (!parent || blacklist.has(parent.nodeName)) continue;&lt;br /&gt;
&lt;br /&gt;
            let newText = smartSingleQuotes(node.nodeValue);&lt;br /&gt;
            if (newText !== node.nodeValue) node.nodeValue = newText;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    mw.hook(&amp;quot;wikipage.content&amp;quot;).add(function ($content) {&lt;br /&gt;
        walkAndReplace($content[0]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
        walkAndReplace(document.body);&lt;br /&gt;
    });&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101055</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=101055"/>
		<updated>2025-10-14T18:06:49Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
( function () {&lt;br /&gt;
    function convertSingleQuotes(text) {&lt;br /&gt;
        // Opening single quote -&amp;gt; ‘ when at start or after whitespace/opening punctuation and before letter/digit&lt;br /&gt;
        text = text.replace(/(^|[\s\(\[\{\&amp;quot;&#039;«—])&#039;(?=[A-Za-z0-9])/g, &#039;$1‘&#039;);&lt;br /&gt;
        // Closing single quote -&amp;gt; ’ when after letter/digit&lt;br /&gt;
        text = text.replace(/(?&amp;lt;=[A-Za-z0-9])&#039;(?=$|[^\w\d])/g, &#039;’&#039;);&lt;br /&gt;
        // fallback&lt;br /&gt;
        text = text.replace(/&#039;/g, &#039;’&#039;);&lt;br /&gt;
        return text;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function walkAndReplace(root) {&lt;br /&gt;
        var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false);&lt;br /&gt;
        var node;&lt;br /&gt;
        var blacklist = new Set([&#039;CODE&#039;,&#039;PRE&#039;,&#039;SCRIPT&#039;,&#039;STYLE&#039;,&#039;TEXTAREA&#039;,&#039;NOSCRIPT&#039;,&#039;MATH&#039;,&#039;SPAN&#039;]); // adjust span if needed&lt;br /&gt;
&lt;br /&gt;
        while (node = walker.nextNode()) {&lt;br /&gt;
            var parent = node.parentNode;&lt;br /&gt;
            if (!parent) continue;&lt;br /&gt;
            if (blacklist.has(parent.nodeName)) continue;&lt;br /&gt;
            // skip if inside a link? (optional)&lt;br /&gt;
            var ancestor = parent;&lt;br /&gt;
            var skip = false;&lt;br /&gt;
            while (ancestor &amp;amp;&amp;amp; ancestor !== root) {&lt;br /&gt;
                if (blacklist.has(ancestor.nodeName)) { skip = true; break; }&lt;br /&gt;
                ancestor = ancestor.parentNode;&lt;br /&gt;
            }&lt;br /&gt;
            if (skip) continue;&lt;br /&gt;
&lt;br /&gt;
            var newText = convertSingleQuotes(node.nodeValue);&lt;br /&gt;
            if (newText !== node.nodeValue) node.nodeValue = newText;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Run after page load and on ajax content updates&lt;br /&gt;
    mw.hook(&#039;wikipage.content&#039;).add(function($content) {&lt;br /&gt;
        walkAndReplace($content[0]);&lt;br /&gt;
    });&lt;br /&gt;
    document.addEventListener(&#039;DOMContentLoaded&#039;, function() {&lt;br /&gt;
        walkAndReplace(document.body);&lt;br /&gt;
    });&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=100965</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=100965"/>
		<updated>2025-10-13T07:29:07Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.poem {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=100963</id>
		<title>User:Gurwinder/tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=100963"/>
		<updated>2025-10-13T05:40:21Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: Replaced content with &amp;quot;File:Example OOG.ogg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Example OOG.ogg]]&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=File:Example_OOG.ogg&amp;diff=100962</id>
		<title>File:Example OOG.ogg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=File:Example_OOG.ogg&amp;diff=100962"/>
		<updated>2025-10-13T05:39:38Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{hr|1=Example file}}&lt;br /&gt;
|date=2025-10-13&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Gurwinder|Gurwinder]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=100757</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=100757"/>
		<updated>2025-10-12T17:15:28Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, &lt;br /&gt;
    .content h1, &lt;br /&gt;
    .content h2 {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.poem {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=100662</id>
		<title>User:Gurwinder/tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/tree&amp;diff=100662"/>
		<updated>2025-10-12T15:36:19Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: Created page with &amp;quot;{{Tree chart/start}} {{Tree chart| | | | |CLEAR| | | | |CLEAR=Clear box}} {{Tree chart| |,|-|-|&amp;#039;|!|`|-|-|.| }} {{Tree chart|RED  |~|GREEN|~|BLUE |RED=Red box|GREEN=Green box|BLUE=Blue box |boxstyle_RED  =color:white; background-color: red; |boxstyle_GREEN=color:yellow; background-color: green; |boxstyle_BLUE =color:white; background-color: blue; }} {{Tree chart/end}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tree chart/start}}&lt;br /&gt;
{{Tree chart| | | | |CLEAR| | | | |CLEAR=Clear box}}&lt;br /&gt;
{{Tree chart| |,|-|-|&#039;|!|`|-|-|.| }}&lt;br /&gt;
{{Tree chart|RED  |~|GREEN|~|BLUE |RED=Red box|GREEN=Green box|BLUE=Blue box&lt;br /&gt;
|boxstyle_RED  =color:white; background-color: red;&lt;br /&gt;
|boxstyle_GREEN=color:yellow; background-color: green;&lt;br /&gt;
|boxstyle_BLUE =color:white; background-color: blue;&lt;br /&gt;
}}&lt;br /&gt;
{{Tree chart/end}}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Arguments&amp;diff=100661</id>
		<title>Module:Arguments</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Arguments&amp;diff=100661"/>
		<updated>2025-10-12T15:35:42Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module provides easy processing of arguments passed to Scribunto from&lt;br /&gt;
-- #invoke. It is intended for use by other Lua modules, and should not be&lt;br /&gt;
-- called from #invoke directly.&lt;br /&gt;
&lt;br /&gt;
local libraryUtil = require(&#039;libraryUtil&#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
&lt;br /&gt;
local arguments = {}&lt;br /&gt;
&lt;br /&gt;
-- Generate four different tidyVal functions, so that we don&#039;t have to check the&lt;br /&gt;
-- options every time we call it.&lt;br /&gt;
&lt;br /&gt;
local function tidyValDefault(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		val = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
		if val == &#039;&#039; then&lt;br /&gt;
			return nil&lt;br /&gt;
		else&lt;br /&gt;
			return val&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValTrimOnly(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		return val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValRemoveBlanksOnly(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		if val:find(&#039;%S&#039;) then&lt;br /&gt;
			return val&lt;br /&gt;
		else&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValNoChange(key, val)&lt;br /&gt;
	return val&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function matchesTitle(given, title)&lt;br /&gt;
	local tp = type( given )&lt;br /&gt;
	return (tp == &#039;string&#039; or tp == &#039;number&#039;) and mw.title.new( given ).prefixedText == title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local translate_mt = { __index = function(t, k) return k end }&lt;br /&gt;
&lt;br /&gt;
function arguments.getArgs(frame, options)&lt;br /&gt;
	checkType(&#039;getArgs&#039;, 1, frame, &#039;table&#039;, true)&lt;br /&gt;
	checkType(&#039;getArgs&#039;, 2, options, &#039;table&#039;, true)&lt;br /&gt;
	frame = frame or {}&lt;br /&gt;
	options = options or {}&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Set up argument translation.&lt;br /&gt;
	--]]&lt;br /&gt;
	options.translate = options.translate or {}&lt;br /&gt;
	if getmetatable(options.translate) == nil then&lt;br /&gt;
		setmetatable(options.translate, translate_mt)&lt;br /&gt;
	end&lt;br /&gt;
	if options.backtranslate == nil then&lt;br /&gt;
		options.backtranslate = {}&lt;br /&gt;
		for k,v in pairs(options.translate) do&lt;br /&gt;
			options.backtranslate[v] = k&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if options.backtranslate and getmetatable(options.backtranslate) == nil then&lt;br /&gt;
		setmetatable(options.backtranslate, {&lt;br /&gt;
			__index = function(t, k)&lt;br /&gt;
				if options.translate[k] ~= k then&lt;br /&gt;
					return nil&lt;br /&gt;
				else&lt;br /&gt;
					return k&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Get the argument tables. If we were passed a valid frame object, get the&lt;br /&gt;
	-- frame arguments (fargs) and the parent frame arguments (pargs), depending&lt;br /&gt;
	-- on the options set and on the parent frame&#039;s availability. If we weren&#039;t&lt;br /&gt;
	-- passed a valid frame object, we are being called from another Lua module&lt;br /&gt;
	-- or from the debug console, so assume that we were passed a table of args&lt;br /&gt;
	-- directly, and assign it to a new variable (luaArgs).&lt;br /&gt;
	--]]&lt;br /&gt;
	local fargs, pargs, luaArgs&lt;br /&gt;
	if type(frame.args) == &#039;table&#039; and type(frame.getParent) == &#039;function&#039; then&lt;br /&gt;
		if options.wrappers then&lt;br /&gt;
			--[[&lt;br /&gt;
			-- The wrappers option makes Module:Arguments look up arguments in&lt;br /&gt;
			-- either the frame argument table or the parent argument table, but&lt;br /&gt;
			-- not both. This means that users can use either the #invoke syntax&lt;br /&gt;
			-- or a wrapper template without the loss of performance associated&lt;br /&gt;
			-- with looking arguments up in both the frame and the parent frame.&lt;br /&gt;
			-- Module:Arguments will look up arguments in the parent frame&lt;br /&gt;
			-- if it finds the parent frame&#039;s title in options.wrapper;&lt;br /&gt;
			-- otherwise it will look up arguments in the frame object passed&lt;br /&gt;
			-- to getArgs.&lt;br /&gt;
			--]]&lt;br /&gt;
			local parent = frame:getParent()&lt;br /&gt;
			if not parent then&lt;br /&gt;
				fargs = frame.args&lt;br /&gt;
			else&lt;br /&gt;
				local title = parent:getTitle():gsub(&#039;/sandbox$&#039;, &#039;&#039;)&lt;br /&gt;
				local found = false&lt;br /&gt;
				if matchesTitle(options.wrappers, title) then&lt;br /&gt;
					found = true&lt;br /&gt;
				elseif type(options.wrappers) == &#039;table&#039; then&lt;br /&gt;
					for _,v in pairs(options.wrappers) do&lt;br /&gt;
						if matchesTitle(v, title) then&lt;br /&gt;
							found = true&lt;br /&gt;
							break&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- We test for false specifically here so that nil (the default) acts like true.&lt;br /&gt;
				if found or options.frameOnly == false then&lt;br /&gt;
					pargs = parent.args&lt;br /&gt;
				end&lt;br /&gt;
				if not found or options.parentOnly == false then&lt;br /&gt;
					fargs = frame.args&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- options.wrapper isn&#039;t set, so check the other options.&lt;br /&gt;
			if not options.parentOnly then&lt;br /&gt;
				fargs = frame.args&lt;br /&gt;
			end&lt;br /&gt;
			if not options.frameOnly then&lt;br /&gt;
				local parent = frame:getParent()&lt;br /&gt;
				pargs = parent and parent.args or nil&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if options.parentFirst then&lt;br /&gt;
			fargs, pargs = pargs, fargs&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		luaArgs = frame&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the order of precedence of the argument tables. If the variables are&lt;br /&gt;
	-- nil, nothing will be added to the table, which is how we avoid clashes&lt;br /&gt;
	-- between the frame/parent args and the Lua args.&lt;br /&gt;
	local argTables = {fargs}&lt;br /&gt;
	argTables[#argTables + 1] = pargs&lt;br /&gt;
	argTables[#argTables + 1] = luaArgs&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Generate the tidyVal function. If it has been specified by the user, we&lt;br /&gt;
	-- use that; if not, we choose one of four functions depending on the&lt;br /&gt;
	-- options chosen. This is so that we don&#039;t have to call the options table&lt;br /&gt;
	-- every time the function is called.&lt;br /&gt;
	--]]&lt;br /&gt;
	local tidyVal = options.valueFunc&lt;br /&gt;
	if tidyVal then&lt;br /&gt;
		if type(tidyVal) ~= &#039;function&#039; then&lt;br /&gt;
			error(&lt;br /&gt;
				&amp;quot;bad value assigned to option &#039;valueFunc&#039;&amp;quot;&lt;br /&gt;
					.. &#039;(function expected, got &#039;&lt;br /&gt;
					.. type(tidyVal)&lt;br /&gt;
					.. &#039;)&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	elseif options.trim ~= false then&lt;br /&gt;
		if options.removeBlanks ~= false then&lt;br /&gt;
			tidyVal = tidyValDefault&lt;br /&gt;
		else&lt;br /&gt;
			tidyVal = tidyValTrimOnly&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if options.removeBlanks ~= false then&lt;br /&gt;
			tidyVal = tidyValRemoveBlanksOnly&lt;br /&gt;
		else&lt;br /&gt;
			tidyVal = tidyValNoChange&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Set up the args, metaArgs and nilArgs tables. args will be the one&lt;br /&gt;
	-- accessed from functions, and metaArgs will hold the actual arguments. Nil&lt;br /&gt;
	-- arguments are memoized in nilArgs, and the metatable connects all of them&lt;br /&gt;
	-- together.&lt;br /&gt;
	--]]&lt;br /&gt;
	local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}&lt;br /&gt;
	setmetatable(args, metatable)&lt;br /&gt;
&lt;br /&gt;
	local function mergeArgs(tables)&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Accepts multiple tables as input and merges their keys and values&lt;br /&gt;
		-- into one table. If a value is already present it is not overwritten;&lt;br /&gt;
		-- tables listed earlier have precedence. We are also memoizing nil&lt;br /&gt;
		-- values, which can be overwritten if they are &#039;s&#039; (soft).&lt;br /&gt;
		--]]&lt;br /&gt;
		for _, t in ipairs(tables) do&lt;br /&gt;
			for key, val in pairs(t) do&lt;br /&gt;
				if metaArgs[key] == nil and nilArgs[key] ~= &#039;h&#039; then&lt;br /&gt;
					local tidiedVal = tidyVal(key, val)&lt;br /&gt;
					if tidiedVal == nil then&lt;br /&gt;
						nilArgs[key] = &#039;s&#039;&lt;br /&gt;
					else&lt;br /&gt;
						metaArgs[key] = tidiedVal&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Define metatable behaviour. Arguments are memoized in the metaArgs table,&lt;br /&gt;
	-- and are only fetched from the argument tables once. Fetching arguments&lt;br /&gt;
	-- from the argument tables is the most resource-intensive step in this&lt;br /&gt;
	-- module, so we try and avoid it where possible. For this reason, nil&lt;br /&gt;
	-- arguments are also memoized, in the nilArgs table. Also, we keep a record&lt;br /&gt;
	-- in the metatable of when pairs and ipairs have been called, so we do not&lt;br /&gt;
	-- run pairs and ipairs on the argument tables more than once. We also do&lt;br /&gt;
	-- not run ipairs on fargs and pargs if pairs has already been run, as all&lt;br /&gt;
	-- the arguments will already have been copied over.&lt;br /&gt;
	--]]&lt;br /&gt;
&lt;br /&gt;
	metatable.__index = function (t, key)&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Fetches an argument when the args table is indexed. First we check&lt;br /&gt;
		-- to see if the value is memoized, and if not we try and fetch it from&lt;br /&gt;
		-- the argument tables. When we check memoization, we need to check&lt;br /&gt;
		-- metaArgs before nilArgs, as both can be non-nil at the same time.&lt;br /&gt;
		-- If the argument is not present in metaArgs, we also check whether&lt;br /&gt;
		-- pairs has been run yet. If pairs has already been run, we return nil.&lt;br /&gt;
		-- This is because all the arguments will have already been copied into&lt;br /&gt;
		-- metaArgs by the mergeArgs function, meaning that any other arguments&lt;br /&gt;
		-- must be nil.&lt;br /&gt;
		--]]&lt;br /&gt;
		if type(key) == &#039;string&#039; then&lt;br /&gt;
			key = options.translate[key]&lt;br /&gt;
		end&lt;br /&gt;
		local val = metaArgs[key]&lt;br /&gt;
		if val ~= nil then&lt;br /&gt;
			return val&lt;br /&gt;
		elseif metatable.donePairs or nilArgs[key] then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		for _, argTable in ipairs(argTables) do&lt;br /&gt;
			local argTableVal = tidyVal(key, argTable[key])&lt;br /&gt;
			if argTableVal ~= nil then&lt;br /&gt;
				metaArgs[key] = argTableVal&lt;br /&gt;
				return argTableVal&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		nilArgs[key] = &#039;h&#039;&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__newindex = function (t, key, val)&lt;br /&gt;
		-- This function is called when a module tries to add a new value to the&lt;br /&gt;
		-- args table, or tries to change an existing value.&lt;br /&gt;
		if type(key) == &#039;string&#039; then&lt;br /&gt;
			key = options.translate[key]&lt;br /&gt;
		end&lt;br /&gt;
		if options.readOnly then&lt;br /&gt;
			error(&lt;br /&gt;
				&#039;could not write to argument table key &amp;quot;&#039;&lt;br /&gt;
					.. tostring(key)&lt;br /&gt;
					.. &#039;&amp;quot;; the table is read-only&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		elseif options.noOverwrite and args[key] ~= nil then&lt;br /&gt;
			error(&lt;br /&gt;
				&#039;could not write to argument table key &amp;quot;&#039;&lt;br /&gt;
					.. tostring(key)&lt;br /&gt;
					.. &#039;&amp;quot;; overwriting existing arguments is not permitted&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		elseif val == nil then&lt;br /&gt;
			--[[&lt;br /&gt;
			-- If the argument is to be overwritten with nil, we need to erase&lt;br /&gt;
			-- the value in metaArgs, so that __index, __pairs and __ipairs do&lt;br /&gt;
			-- not use a previous existing value, if present; and we also need&lt;br /&gt;
			-- to memoize the nil in nilArgs, so that the value isn&#039;t looked&lt;br /&gt;
			-- up in the argument tables if it is accessed again.&lt;br /&gt;
			--]]&lt;br /&gt;
			metaArgs[key] = nil&lt;br /&gt;
			nilArgs[key] = &#039;h&#039;&lt;br /&gt;
		else&lt;br /&gt;
			metaArgs[key] = val&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function translatenext(invariant)&lt;br /&gt;
		local k, v = next(invariant.t, invariant.k)&lt;br /&gt;
		invariant.k = k&lt;br /&gt;
		if k == nil then&lt;br /&gt;
			return nil&lt;br /&gt;
		elseif type(k) ~= &#039;string&#039; or not options.backtranslate then&lt;br /&gt;
			return k, v&lt;br /&gt;
		else&lt;br /&gt;
			local backtranslate = options.backtranslate[k]&lt;br /&gt;
			if backtranslate == nil then&lt;br /&gt;
				-- Skip this one. This is a tail call, so this won&#039;t cause stack overflow&lt;br /&gt;
				return translatenext(invariant)&lt;br /&gt;
			else&lt;br /&gt;
				return backtranslate, v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__pairs = function ()&lt;br /&gt;
		-- Called when pairs is run on the args table.&lt;br /&gt;
		if not metatable.donePairs then&lt;br /&gt;
			mergeArgs(argTables)&lt;br /&gt;
			metatable.donePairs = true&lt;br /&gt;
		end&lt;br /&gt;
		return translatenext, { t = metaArgs }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function inext(t, i)&lt;br /&gt;
		-- This uses our __index metamethod&lt;br /&gt;
		local v = t[i + 1]&lt;br /&gt;
		if v ~= nil then&lt;br /&gt;
			return i + 1, v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__ipairs = function (t)&lt;br /&gt;
		-- Called when ipairs is run on the args table.&lt;br /&gt;
		return inext, t, 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return arguments&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Template:Tree_chart/end&amp;diff=100660</id>
		<title>Template:Tree chart/end</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Template:Tree_chart/end&amp;diff=100660"/>
		<updated>2025-10-12T15:31:57Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=100659</id>
		<title>Module:Tree chart</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart&amp;diff=100659"/>
		<updated>2025-10-12T15:29:45Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local cells = mw.loadData(&#039;Module:Tree chart/data&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._main(cell_args)&lt;br /&gt;
	local ret = mw.html.create()&lt;br /&gt;
	local top = ret:tag(&#039;tr&#039;)&lt;br /&gt;
						:css{ height = &#039;1px&#039;,&lt;br /&gt;
								[&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
	local bottom = ret:tag(&#039;tr&#039;)&lt;br /&gt;
						:css{ height = &#039;1px&#039;,&lt;br /&gt;
								[&#039;text-align&#039;] = &#039;center&#039; }&lt;br /&gt;
	for _, v in ipairs(cell_args) do&lt;br /&gt;
		if type(v) == &#039;string&#039; then&lt;br /&gt;
			top:wikitext(cells[v].t)&lt;br /&gt;
			bottom:wikitext(cells[v].b)&lt;br /&gt;
		else&lt;br /&gt;
			top:tag(&#039;td&#039;)&lt;br /&gt;
				:attr{ colspan = v.colspan or cell_args.colspan or 6,&lt;br /&gt;
						rowspan = v.rowspan or cell_args.rowspan or 2 }&lt;br /&gt;
				:css{ padding = &#039;0.2em&#039;,&lt;br /&gt;
						border = (v.border or cell_args.border or &#039;2&#039;) .. &#039;px solid&#039; }&lt;br /&gt;
				:cssText(v.boxstyle or cell_args.boxstyle)&lt;br /&gt;
				:wikitext(v.text)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(ret)&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, {wrappers = &#039;Template:Tree chart&#039;, trim = false, removeBlanks = false})&lt;br /&gt;
	local cell_args = {&lt;br /&gt;
		colspan = args.colspan,&lt;br /&gt;
		rowspan = args.rowspan,&lt;br /&gt;
		border = args.border,&lt;br /&gt;
		boxstyle = args.boxstyle&lt;br /&gt;
	}&lt;br /&gt;
	for _, val in ipairs(args) do&lt;br /&gt;
		local trimmedVal = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
		if trimmedVal == &#039;&#039; then&lt;br /&gt;
			trimmedVal = &#039;$&#039;&lt;br /&gt;
		end&lt;br /&gt;
		if cells[trimmedVal] then&lt;br /&gt;
			table.insert(cell_args, trimmedVal)&lt;br /&gt;
		else&lt;br /&gt;
			-- Unnamed params behave weirdly&lt;br /&gt;
			-- white space at the front counts for param_{{{1}}}, but not whitespace at the end, so remove it&lt;br /&gt;
			local rightTrimmedVal = val:gsub(&#039;%s+$&#039;,&#039;&#039;)&lt;br /&gt;
			table.insert(cell_args, {&lt;br /&gt;
				text = args[trimmedVal] or (&#039;{{{&#039;..trimmedVal..&#039;}}}&#039;),&lt;br /&gt;
				colspan = args[&#039;colspan_&#039;..rightTrimmedVal],&lt;br /&gt;
				rowspan = args[&#039;rowspan_&#039;..rightTrimmedVal],&lt;br /&gt;
				border = args[&#039;border_&#039;..rightTrimmedVal],&lt;br /&gt;
				boxstyle = args[&#039;boxstyle_&#039;..rightTrimmedVal]&lt;br /&gt;
			})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return p._main(cell_args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart/data&amp;diff=100658</id>
		<title>Module:Tree chart/data</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Tree_chart/data&amp;diff=100658"/>
		<updated>2025-10-12T15:29:18Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local SLD = &#039;1px solid&#039;&lt;br /&gt;
local DSH = &#039;1px dashed&#039;&lt;br /&gt;
local DOT = &#039;1px dotted&#039;&lt;br /&gt;
&lt;br /&gt;
local data = {&lt;br /&gt;
	[&#039;!&#039;] = {&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;%&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&amp;quot;&#039;&amp;quot;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;(&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;)&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;*&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;+&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;,&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;-&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = SLD, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;.&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;7&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;:&#039;] = {&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;A&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;C&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;D&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;E&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;F&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;G&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;G2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;H&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;J&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;K&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;L&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;M&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = DOT, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;P&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = DOT, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;Q&#039;] = {&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;R&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;S&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;T3&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;T2&#039;] = {&lt;br /&gt;
		b = { { style ={ [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style =  { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = {  [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;T&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;U&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;V&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = DSH, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;W&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;X&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;X2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;Y&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;Z&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;^&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;$&#039;] = {&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039;, rowspan = &#039;2&#039;}, style = { width = &#039;2em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;`&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;a2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = &#039;1px dashed #000001&#039;, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;a&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;b2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = &#039;1px dotted #000001&#039;, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;b3&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;b&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;c&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;d&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;di&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;dj&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;e&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;f&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;fh&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] =DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;fy&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;h&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;he&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;i&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;ic&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;j&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = SLD, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;jc&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;k2&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;k3&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;k&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;kq&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;kr&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;kq2&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;kr2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
&lt;br /&gt;
	[&#039;l2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = &#039;1px dashed #000001&#039;, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;l3&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;l4&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;l&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;m2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = DOT, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;m&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = DOT, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;mp&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;mp2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;n2&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = &#039;1px dotted #000001&#039;, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;n&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;np&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;np2&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;o2&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;o&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { rowspan = &#039;2&#039; }, style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;2em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;om&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;om2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;on&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;on2&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;p2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DSH, [&#039;border-bottom&#039;] = &#039;1px dotted #000001&#039;, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;p&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;q2&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = &#039;1px dashed #000001&#039;, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;q&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;ql&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;ql2&#039;] = {&lt;br /&gt;
		b = { { style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = DOT, [&#039;border-bottom&#039;] =DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;r2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = DSH, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;r&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = SLD, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;rl&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;rl2&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = DOT, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;t&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-right&#039;] = SLD, [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;v&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = SLD, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;x&#039;] = {},&lt;br /&gt;
	[&#039;y&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ style = { width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = DSH, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;ye&#039;] = {&lt;br /&gt;
		b = { { style = { [&#039;border-right&#039;] = SLD, width = &#039;1em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { style = { [&#039;border-bottom&#039;] = DSH, width = &#039;1em&#039;, height = &#039;1em&#039; } },&lt;br /&gt;
			{ attr = { rowspan = &#039;2&#039; }, style = { width = &#039;1em&#039;, height = &#039;2em&#039; } } }&lt;br /&gt;
			},&lt;br /&gt;
	[&#039;~&#039;] = {&lt;br /&gt;
		b = { { attr = { colspan = &#039;2&#039; }, style = { width = &#039;2em&#039;, height = &#039;1em&#039; } } },&lt;br /&gt;
		t = { { attr = { colspan = &#039;2&#039; }, style = { [&#039;border-bottom&#039;] = DSH, width = &#039;2em&#039;, height = &#039;1em&#039; } } }&lt;br /&gt;
			}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local retval = {}&lt;br /&gt;
&lt;br /&gt;
for k,v in pairs(data) do&lt;br /&gt;
	retval[k] = {}&lt;br /&gt;
	for k2,v2 in pairs(v) do&lt;br /&gt;
		local renderedCells = mw.html.create()&lt;br /&gt;
		for k3,v3 in ipairs(v2) do&lt;br /&gt;
			renderedCells:tag(&#039;td&#039;):css(v3.style or {}):attr(v3.attr or {})&lt;br /&gt;
		end&lt;br /&gt;
		retval[k][k2] = tostring(renderedCells)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return retval&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Module:Check_for_unknown_parameters&amp;diff=100657</id>
		<title>Module:Check for unknown parameters</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Module:Check_for_unknown_parameters&amp;diff=100657"/>
		<updated>2025-10-12T15:23:22Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module may be used to compare the arguments passed to the parent&lt;br /&gt;
-- with a list of arguments, returning a specified result if an argument is&lt;br /&gt;
-- not on the list&lt;br /&gt;
&lt;br /&gt;
-- require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function trim(s)&lt;br /&gt;
	return s:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isnotempty(s)&lt;br /&gt;
	return s and s:match(&#039;%S&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function clean(text)&lt;br /&gt;
	-- Return text cleaned for display and truncated if too long.&lt;br /&gt;
	-- Strip markers are replaced with dummy text representing the original wikitext.&lt;br /&gt;
	local pos, truncated&lt;br /&gt;
	local function truncate(text)&lt;br /&gt;
		if truncated then&lt;br /&gt;
			return &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		if mw.ustring.len(text) &amp;gt; 25 then&lt;br /&gt;
			truncated = true&lt;br /&gt;
			text = mw.ustring.sub(text, 1, 25) .. &#039;...&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return mw.text.nowiki(text)&lt;br /&gt;
	end&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for before, tag, remainder in text:gmatch(&#039;([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()&#039;) do&lt;br /&gt;
		pos = remainder&lt;br /&gt;
		table.insert(parts, truncate(before) .. &#039;&amp;amp;lt;&#039; .. tag .. &#039;&amp;amp;gt;...&amp;amp;lt;/&#039; .. tag .. &#039;&amp;amp;gt;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(parts, truncate(text:sub(pos or 1)))&lt;br /&gt;
	return table.concat(parts)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._check(args, pargs)&lt;br /&gt;
	if type(args) ~= &amp;quot;table&amp;quot; or type(pargs) ~= &amp;quot;table&amp;quot; then&lt;br /&gt;
		-- TODO: error handling&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- create the list of known args, regular expressions, and the return string&lt;br /&gt;
	local knownargs = {}&lt;br /&gt;
	local regexps = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == &#039;number&#039; then&lt;br /&gt;
			v = trim(v)&lt;br /&gt;
			knownargs[v] = 1&lt;br /&gt;
		elseif k:find(&#039;^regexp[1-9][0-9]*$&#039;) then&lt;br /&gt;
			table.insert(regexps, &#039;^&#039; .. v .. &#039;$&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- loop over the parent args, and make sure they are on the list&lt;br /&gt;
	local ignoreblank = isnotempty(args[&#039;ignoreblank&#039;])&lt;br /&gt;
	local showblankpos = isnotempty(args[&#039;showblankpositional&#039;])&lt;br /&gt;
	local values = {}&lt;br /&gt;
	for k, v in pairs(pargs) do&lt;br /&gt;
		if type(k) == &#039;string&#039; and knownargs[k] == nil then&lt;br /&gt;
			local knownflag = false&lt;br /&gt;
			for _, regexp in ipairs(regexps) do&lt;br /&gt;
				if mw.ustring.match(k, regexp) then&lt;br /&gt;
					knownflag = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not knownflag and ( not ignoreblank or isnotempty(v) )  then&lt;br /&gt;
				table.insert(values, clean(k))&lt;br /&gt;
			end&lt;br /&gt;
		elseif type(k) == &#039;number&#039; and knownargs[tostring(k)] == nil then&lt;br /&gt;
			local knownflag = false&lt;br /&gt;
			for _, regexp in ipairs(regexps) do&lt;br /&gt;
				if mw.ustring.match(tostring(k), regexp) then&lt;br /&gt;
					knownflag = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not knownflag and ( showblankpos or isnotempty(v) ) then&lt;br /&gt;
				table.insert(values, k .. &#039; = &#039; .. clean(v))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- add results to the output tables&lt;br /&gt;
	local res = {}&lt;br /&gt;
	if #values &amp;gt; 0 then&lt;br /&gt;
		local unknown_text = args[&#039;unknown&#039;] or &#039;Found _VALUE_, &#039;&lt;br /&gt;
&lt;br /&gt;
		if mw.getCurrentFrame():preprocess( &amp;quot;{{REVISIONID}}&amp;quot; ) == &amp;quot;&amp;quot; then&lt;br /&gt;
			local preview_text = args[&#039;preview&#039;]&lt;br /&gt;
			if isnotempty(preview_text) then&lt;br /&gt;
				preview_text = require(&#039;Module:If preview&#039;)._warning({preview_text})&lt;br /&gt;
			elseif preview_text == nil then&lt;br /&gt;
				preview_text = unknown_text&lt;br /&gt;
			end&lt;br /&gt;
			unknown_text = preview_text&lt;br /&gt;
		end&lt;br /&gt;
		for _, v in pairs(values) do&lt;br /&gt;
			-- Fix odd bug for | = which gets stripped to the empty string and&lt;br /&gt;
			-- breaks category links&lt;br /&gt;
			if v == &#039;&#039; then v = &#039; &#039; end&lt;br /&gt;
&lt;br /&gt;
			-- avoid error with v = &#039;example%2&#039; (&amp;quot;invalid capture index&amp;quot;)&lt;br /&gt;
			local r = unknown_text:gsub(&#039;_VALUE_&#039;, {_VALUE_ = v})&lt;br /&gt;
			table.insert(res, r)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.check(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = frame:getParent().args&lt;br /&gt;
	return p._check(args, pargs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Category:Pages_with_reference_errors&amp;diff=100656</id>
		<title>Category:Pages with reference errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Category:Pages_with_reference_errors&amp;diff=100656"/>
		<updated>2025-10-12T14:55:57Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: Cat should be hidden&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=Category:Pages_with_script_errors&amp;diff=100655</id>
		<title>Category:Pages with script errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=Category:Pages_with_script_errors&amp;diff=100655"/>
		<updated>2025-10-12T14:55:10Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: Cat should be hidden&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=79225</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=79225"/>
		<updated>2024-10-03T13:56:24Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, &lt;br /&gt;
    .content h1, &lt;br /&gt;
    .content h2 {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
nav#p-coll-print_export {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77912</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77912"/>
		<updated>2024-08-24T16:45:55Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, &lt;br /&gt;
    .content h1, &lt;br /&gt;
    .content h2 {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: sticky;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    height: 50px;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77911</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77911"/>
		<updated>2024-08-24T07:03:04Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, &lt;br /&gt;
    .content h1, &lt;br /&gt;
    .content h2 {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
  position: sticky;&lt;br /&gt;
  top: 0;&lt;br /&gt;
  z-index: 1000;&lt;br /&gt;
  background-color: white; &lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=77910</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.js&amp;diff=77910"/>
		<updated>2024-08-24T06:56:56Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;//wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
&lt;br /&gt;
// Turn &amp;lt;span class=&amp;quot;mw-charinsert&amp;quot;&amp;gt;foo&amp;lt;/span&amp;gt; into a button that inserts &amp;quot;foo&amp;quot;&lt;br /&gt;
// into the edit box:&lt;br /&gt;
$( function () {&lt;br /&gt;
    $( &#039;span.mw-charinsert&#039; ).wrap( function () {&lt;br /&gt;
        var text = this.title || this.textContent;&lt;br /&gt;
        var parts = text.split( &#039;+&#039; );&lt;br /&gt;
        if ( text === &#039;+&#039; ) parts = [ text ];&lt;br /&gt;
        var front = decodeURIComponent( parts[0] || &#039;&#039; );&lt;br /&gt;
        var back  = decodeURIComponent( parts[1] || &#039;&#039; );&lt;br /&gt;
        return $( &#039;&amp;lt;button&amp;gt;&#039; ).click( function () {&lt;br /&gt;
            insertTags( front, back, &#039;&#039; );&lt;br /&gt;
            return false;&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	if (window.matchMedia(&amp;quot;(max-width: 768px)&amp;quot;).matches) {&lt;br /&gt;
		if( mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;minerva&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_mobile&#039;);&lt;br /&gt;
			&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		if(  mw.config.get(&amp;quot;skin&amp;quot;) !== &amp;quot;vector&amp;quot; ){&lt;br /&gt;
			const currWikiUrl = new URL(window.location.href);&lt;br /&gt;
			currWikiUrl.searchParams.set(&#039;mobileaction&#039;, &#039;toggle_view_desktop&#039;);&lt;br /&gt;
&lt;br /&gt;
			window.location.replace(currWikiUrl);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if( mw.config.get(&#039;wgIsMainPage&#039;) ){&lt;br /&gt;
		$(&#039;#firstHeading&#039;).remove();&lt;br /&gt;
		&lt;br /&gt;
		var mainpageLeft = $(&amp;quot;.mainpage-left&amp;quot;);&lt;br /&gt;
		var mainpageRight = $(&amp;quot;.mainpage-right&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mainpageLeft.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
		mainpageRight.css(&amp;quot;position&amp;quot;, &amp;quot;relative&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
		function animateLeft(){&lt;br /&gt;
			mainpageRight.animate({&#039;left&#039;: &#039;15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageRight.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateLeft() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateLeft();&lt;br /&gt;
		&lt;br /&gt;
		function animateRight(){&lt;br /&gt;
			mainpageLeft.animate({&#039;left&#039;: &#039;-15px&#039;}, 1000, function(){&lt;br /&gt;
				mainpageLeft.animate( {&amp;quot;left&amp;quot;: &amp;quot;0px&amp;quot; }, 1000, animateRight() );&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
		animateRight();&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; ).length &amp;gt; 1 ){&lt;br /&gt;
		var tempPageName = mw.config.get(&#039;wgPageName&#039;).split( &#039;/&#039; )[0];&lt;br /&gt;
		var tempLink =&#039;&amp;amp;#60;  &amp;lt;a href=&amp;quot;https://wiki.ekatrafoundation.org/wiki/&#039; +  tempPageName + &#039;&amp;quot;&amp;gt;&#039; + tempPageName.replaceAll(&amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
		$(&amp;quot;#top&amp;quot;).after(  $( &#039;&amp;lt;p&amp;gt;&#039;).css( &#039;font-size&#039;, &#039;17px&#039;).html( tempLink ) );&lt;br /&gt;
	}&lt;br /&gt;
	if( mw.config.get(&#039;wgUserName&#039;) === null  ){&lt;br /&gt;
		$(&#039;body&#039;).bind(&#039;cut copy&#039;, function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
		});&lt;br /&gt;
	} else {&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onmousedown&amp;quot;);&lt;br /&gt;
		$(&amp;quot;#content&amp;quot;).removeAttr(&amp;quot;onselectstart&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:OCR.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:PoemButtons.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if( $(&amp;quot;.wikiaudioplayer&amp;quot;).length ){&lt;br /&gt;
		mw.loader.load( &#039;/index.php?title=MediaWiki:Green-audio-player.min.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &#039;text/css&#039;);&lt;br /&gt;
		$.when(&lt;br /&gt;
		    mw.loader.getScript( &#039;https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Green-audio-player.min.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
		)&lt;br /&gt;
		.then(&lt;br /&gt;
		    function () {&lt;br /&gt;
				GreenAudioPlayer.init({&lt;br /&gt;
				    selector: &#039;.wikiaudioplayer&#039;,&lt;br /&gt;
				    stopOthersOnPlay: true&lt;br /&gt;
				});&lt;br /&gt;
				$( &amp;quot;.wikiaudioplayer &amp;gt; audio&amp;quot;).css(&amp;quot;display&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
		    },&lt;br /&gt;
		    function ( e ) {&lt;br /&gt;
		        mw.log.error( e.message );&lt;br /&gt;
		    }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	var sidebarCategory = $(&amp;quot;#p-Categories &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	var sidebarAuthor = $(&amp;quot;#p-Authors &amp;gt; .vector-menu-content&amp;quot;);&lt;br /&gt;
	sidebarCategory.empty();&lt;br /&gt;
	sidebarAuthor.empty();&lt;br /&gt;
&lt;br /&gt;
	mw.loader.using( [ &#039;mediawiki.api&#039; ], function(){&lt;br /&gt;
		var sel1 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarCategory );&lt;br /&gt;
		var sel2 = $(&#039;&amp;lt;select&amp;gt;&#039;).css( &#039;width&#039;, &#039;100%&#039;).appendTo( sidebarAuthor );&lt;br /&gt;
		sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
		sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;disabled&#039;, true).attr(&#039;selected&#039;, true).text( &amp;quot;-- Select an option --&amp;quot; ) );&lt;br /&gt;
&lt;br /&gt;
		// For category Categories&lt;br /&gt;
		catMemberParam1 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Categories on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam1, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel1.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel1.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// For category Author&lt;br /&gt;
		catMemberParam2 = {&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;query&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;list&amp;quot;: &amp;quot;categorymembers&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtitle&amp;quot;: &amp;quot;Category:Authors on EkatraWiki&amp;quot;,&lt;br /&gt;
			&amp;quot;cmprop&amp;quot;: &amp;quot;title&amp;quot;,&lt;br /&gt;
			&amp;quot;cmtype&amp;quot;: &amp;quot;subcat&amp;quot;,&lt;br /&gt;
			&amp;quot;cmlimit&amp;quot;: &amp;quot;500&amp;quot;&lt;br /&gt;
		};&lt;br /&gt;
		(new mw.Api()).get( catMemberParam2, { async: false }  ).done(function ( resData ){&lt;br /&gt;
			var catOptions = [];&lt;br /&gt;
			var members = resData.query.categorymembers;&lt;br /&gt;
	&lt;br /&gt;
			// Creating MenuItems array from Category Members&lt;br /&gt;
			members.forEach( function(it){&lt;br /&gt;
				var ct = it.title.replace(&amp;quot;Category:&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
				sel2.append( $(&amp;quot;&amp;lt;option&amp;gt;&amp;quot;).attr(&#039;value&#039;, ct).text(ct) );&lt;br /&gt;
			});&lt;br /&gt;
			&lt;br /&gt;
			sel2.on(&#039;change&#039;, function (e) {&lt;br /&gt;
			    var valueSelected = this.value;&lt;br /&gt;
			    window.location = &amp;quot;https://wiki.ekatrafoundation.org/wiki/Category:&amp;quot; + valueSelected;&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
	} );&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Long list into col&lt;br /&gt;
$( document ).ready( function(){&lt;br /&gt;
&lt;br /&gt;
	var longList = $(&amp;quot;#longList&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;),&lt;br /&gt;
		dlElements = longList.children().filter(&amp;quot;dl&amp;quot;),&lt;br /&gt;
		dlElementsLength = dlElements.length;&lt;br /&gt;
	&lt;br /&gt;
	var list1 = [],&lt;br /&gt;
		list2 = [];&lt;br /&gt;
	&lt;br /&gt;
	var count = 0;&lt;br /&gt;
	dlElements.each( function(index, ele){&lt;br /&gt;
		if( count &amp;lt; dlElementsLength/2 ){&lt;br /&gt;
			list1.push(ele);&lt;br /&gt;
			list1.push( $(ele).next() );&lt;br /&gt;
		} else {&lt;br /&gt;
			list2.push(ele);&lt;br /&gt;
			list2.push( $(ele).next() );&lt;br /&gt;
		}&lt;br /&gt;
		count = count + 1;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.empty();&lt;br /&gt;
	&lt;br /&gt;
	var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list1.forEach( function(value, index){&lt;br /&gt;
		leftDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
	list2.forEach( function(value, index){&lt;br /&gt;
		rightDiv.append(value);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	longList.append(leftDiv, rightDiv );&lt;br /&gt;
	&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	&lt;br /&gt;
	var countPoem2 = $(&amp;quot;.Poem2-Ekatra&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	if( countPoem2.length &amp;gt; 0 ){&lt;br /&gt;
	&lt;br /&gt;
	var Poem2lenghtArray = [];&lt;br /&gt;
	for (var k = 0; k &amp;lt;= countPoem2.length; k++) {&lt;br /&gt;
	   Poem2lenghtArray.push(k);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
		Poem2lenghtArray.forEach(function(j) {&lt;br /&gt;
			&lt;br /&gt;
			var poemElement = $(&amp;quot;.Poem2-Ekatra&amp;quot;).eq(j);&lt;br /&gt;
						&lt;br /&gt;
			if( poemElement.length ){&lt;br /&gt;
				var poemText = poemElement.html();&lt;br /&gt;
&lt;br /&gt;
				var poemArray = poemText.split(&amp;quot;\n&amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				poemElement.text(&amp;quot;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
				// First measure&lt;br /&gt;
				poemArray.forEach( function(i) {&lt;br /&gt;
					poemElement.append( &#039;&amp;lt;p style=&amp;quot;text-indent: 2em;&amp;quot;&amp;gt;&#039; + i + &#039;&amp;lt;/p&amp;gt;&#039; );&lt;br /&gt;
				});&lt;br /&gt;
				&lt;br /&gt;
				// Second measure&lt;br /&gt;
				poemElement.children(&#039;p&#039;).each(function () {&lt;br /&gt;
					$(this).css(&#039;text-indent&#039;, &#039;2em&#039;);&lt;br /&gt;
				});&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$( function() {&lt;br /&gt;
	var divide2cols = $(&amp;quot;#divide2cols&amp;quot;);&lt;br /&gt;
	if( divide2cols.length ){&lt;br /&gt;
		var leftDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var rightDiv = $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_col&amp;quot;);&lt;br /&gt;
		var parentHieght = divide2cols.height()/2;&lt;br /&gt;
		divide2cols.children().filter(&amp;quot;dl&amp;quot;).each(function() {&lt;br /&gt;
			console.log( $(this).offset().top , parentHieght );&lt;br /&gt;
			if ( $(this).offset().top &amp;gt; parentHieght ) {&lt;br /&gt;
				rightDiv.append( $(this), $(this).next() );&lt;br /&gt;
			} else {&lt;br /&gt;
				leftDiv.append( $(this), $(this).next() );&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		divide2cols.before( $(&amp;quot;&amp;lt;div/&amp;gt;&amp;quot;).addClass(&amp;quot;grid_row&amp;quot;).append(leftDiv, rightDiv) );&lt;br /&gt;
		divide2cols.remove();&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( function(){&lt;br /&gt;
	// toggled by toggle button. also determines which toggle button image to use&lt;br /&gt;
	var useCustom = false;&lt;br /&gt;
	&lt;br /&gt;
	// toggleImgs[0] to switch to custom, toggleImgs[1] to revert to default&lt;br /&gt;
	var toggleImgs = [&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_search_black_24px.svg&#039;,&lt;br /&gt;
		&#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_youtube_searched_for_black_24px.svg&#039;&lt;br /&gt;
	];&lt;br /&gt;
	var zoomInImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_in_black_24px.svg&#039;;&lt;br /&gt;
	var zoomOutImg = &#039;//storage.googleapis.com/material-icons/external-assets/v4/icons/svg/ic_zoom_out_black_24px.svg&#039;;&lt;br /&gt;
	&lt;br /&gt;
	// create DOM elements&lt;br /&gt;
	$(&#039;#content&#039;).prepend(&#039;&amp;lt;div id=&amp;quot;zoomButtons&amp;quot; style=&amp;quot;z-index: 9999;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomInIcon&amp;quot; src=&amp;quot;&#039; + zoomInImg + &#039;&amp;quot; alt=&amp;quot;zoom in&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;zoomOutIcon&amp;quot; src=&amp;quot;&#039; + zoomOutImg + &#039;&amp;quot; alt=&amp;quot;zoom out&amp;quot;&amp;quot;&amp;gt;\&lt;br /&gt;
	&amp;lt;img id=&amp;quot;toggleButton&amp;quot; src=&amp;quot;&#039; + toggleImgs[+ useCustom] + &#039;&amp;quot; alt=&amp;quot;toggle zoom&amp;quot;&amp;gt;&amp;amp;nbsp&amp;lt;/div&amp;gt;&#039;);&lt;br /&gt;
	$(&#039;#zoomButtons&#039;).css({&#039;float&#039;: &#039;right&#039;});&lt;br /&gt;
	&lt;br /&gt;
	// find DOM elements used later&lt;br /&gt;
	var $bodyContent = $(&#039;.mw-body-content&#039;);&lt;br /&gt;
	var $toggleButton = $(&#039;#toggleButton&#039;);&lt;br /&gt;
	&lt;br /&gt;
	// sizes[0] is default, sizes[1] is custom&lt;br /&gt;
	var sizes = [parseFloat($(&#039;.mw-body-content&#039;).css(&#039;font-size&#039;))];&lt;br /&gt;
	// default custom zoom of 2&lt;br /&gt;
	sizes[1] = sizes[0] + 2;&lt;br /&gt;
	&lt;br /&gt;
	// the + converts bool to 0 or 1 to use as array index&lt;br /&gt;
	function updateSize() {&lt;br /&gt;
		$bodyContent.css({&#039;font-size&#039;:(sizes[+ useCustom] + &#039;pt&#039;)});&lt;br /&gt;
	}&lt;br /&gt;
	function toggle() {&lt;br /&gt;
		useCustom = !useCustom;&lt;br /&gt;
		$toggleButton.attr(&#039;src&#039;,toggleImgs[+ useCustom]);&lt;br /&gt;
		updateSize();&lt;br /&gt;
	}&lt;br /&gt;
	function zoom(dif) {&lt;br /&gt;
		sizes[1] += dif;&lt;br /&gt;
		if (useCustom) {&lt;br /&gt;
			updateSize();&lt;br /&gt;
		} else {&lt;br /&gt;
			toggle();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomInIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom +&amp;quot;);&lt;br /&gt;
		zoom(1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#zoomOutIcon&#039; ).on( &#039;click&#039;, function(){&lt;br /&gt;
		console.log(&amp;quot;Zoom -&amp;quot;);&lt;br /&gt;
		zoom(-1);&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	$( &#039;#toggleButton&#039; ).on( &#039;click&#039;, toggle );&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Convert numbers between numeral systems.&lt;br /&gt;
 *&lt;br /&gt;
 * Dependencies: jquery.cookie, mediawiki.util, mediawiki.user&lt;br /&gt;
 * Source: https://www.mediawiki.org/wiki/MediaWiki:Gadget-Numerakri.js&lt;br /&gt;
 * Revision: 2019-01-11&lt;br /&gt;
 *&lt;br /&gt;
 * @copyright 2012 Daniel Friesen&lt;br /&gt;
 * @copyright 2012 Siddhartha Ghai&lt;br /&gt;
 * @copyright 2014 Bhawani Gautam&lt;br /&gt;
 * @copyright 2012-2018 Timo Tijhof&lt;br /&gt;
 * @license &amp;lt;https://opensource.org/licenses/MIT&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
/*jshint browser:true, unused:true, forin:false */&lt;br /&gt;
/*global $, mw */&lt;br /&gt;
(function () {&lt;br /&gt;
	&#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
	var msgs = {&lt;br /&gt;
			&#039;option-default&#039;: {&lt;br /&gt;
				en: &#039;Default&#039;,&lt;br /&gt;
				bho: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				gu: &#039;ડિફોલ્ટ&#039;,&lt;br /&gt;
				hi: &#039;डिफ़ॉल्ट&#039;,&lt;br /&gt;
				ne: &#039;डिफल्ट&#039;,&lt;br /&gt;
				pa: &#039;ਅਸਲ ਦਿੱਖ&#039;,&lt;br /&gt;
				sa: &#039;उत्सर्गः&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-arabic&#039;: {&lt;br /&gt;
				en: &#039;1 2 3&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-devanagari&#039;: {&lt;br /&gt;
				en: &#039;Devanagari&#039;,&lt;br /&gt;
				bho: &#039;१२३&#039;,&lt;br /&gt;
				hi: &#039;१२३&#039;,&lt;br /&gt;
				ne: &#039;१२३&#039;,&lt;br /&gt;
				sa: &#039;१२३&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gujarati&#039;: {&lt;br /&gt;
				en: &#039;૧ ૨ ૩&#039;,&lt;br /&gt;
				gu: &#039;૧ ૨ ૩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;option-gurmukhi&#039;: {&lt;br /&gt;
				en: &#039;Gurmukhi&#039;,&lt;br /&gt;
				pa: &#039;੧੨੩&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-url&#039;: {&lt;br /&gt;
				en: &#039;//www.mediawiki.org/wiki/MediaWiki_talk:Gadget-Numerakri.js&#039;,&lt;br /&gt;
				gu: &#039;//gu.wikipedia.org/wiki/વિકિસૂક્તિઃઅંક_પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;//hi.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				ne: &#039;//ne.wikipedia.org/wiki/विकिपीडिया:अंक_परिवर्तक&#039;,&lt;br /&gt;
				pa: &#039;//pa.wikipedia.org/wiki/ਵਿਕੀਪੀਡੀਆ:ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;//sa.wikipedia.org/wiki/विकिपीडिया:अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-text&#039;: {&lt;br /&gt;
				en: &#039;Convert numerals&#039;,&lt;br /&gt;
				bho: &#039;अंक बदलाव&#039;,&lt;br /&gt;
				gu: &#039;અંક પરિવર્તક&#039;,&lt;br /&gt;
				hi: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				ne: &#039;अंक परिवर्तन&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕ ਬਦਲੋ&#039;,&lt;br /&gt;
				sa: &#039;अङ्कपरिवर्तकम्&#039;&lt;br /&gt;
			},&lt;br /&gt;
			&#039;label-tooltip&#039;: {&lt;br /&gt;
				en: &#039;Convert between Arabic and Devanagari numerals&#039;,&lt;br /&gt;
				bho: &#039;नागरी आ अरबी अंकों में अदला-बदली करीं&#039;,&lt;br /&gt;
				gu: &#039;ગુજરાતી અને અંગ્રેજી અંકોમાં પરિવર્તન કરો&#039;,&lt;br /&gt;
				hi: &#039;नागरी और अरबी अंकों में परिवर्तन करें&#039;,&lt;br /&gt;
				ne: &#039;देवनागरी र अरबी अंकहरूमा परिवर्तन गर्नुहोस्&#039;,&lt;br /&gt;
				pa: &#039;ਅੰਕਾਂ ਨੂ ਗੁਰਮੁਖੀ ਤੇ ਅਰਬੀ ਵਿਚ ਬਦਲੇਂ&#039;,&lt;br /&gt;
				sa: &#039;देवनागरी-अरबी-अङ्कयोः चयनं करोतु&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		maps = {&lt;br /&gt;
			arabic: [&#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;],&lt;br /&gt;
			devanagari: [&#039;०&#039;, &#039;१&#039;, &#039;२&#039;, &#039;३&#039;, &#039;४&#039;, &#039;५&#039;, &#039;६&#039;, &#039;७&#039;, &#039;८&#039;, &#039;९&#039;],&lt;br /&gt;
			gujarati: [&#039;૦&#039;, &#039;૧&#039;, &#039;૨&#039;, &#039;૩&#039;, &#039;૪&#039;, &#039;૫&#039;, &#039;૬&#039;, &#039;૭&#039;, &#039;૮&#039;, &#039;૯&#039;],&lt;br /&gt;
			gurmukhi: [&#039;੦&#039;, &#039;੧&#039;, &#039;੨&#039;, &#039;੩&#039;, &#039;੪&#039;, &#039;੫&#039;, &#039;੬&#039;, &#039;੭&#039;, &#039;੮&#039;, &#039;੯&#039;]&lt;br /&gt;
		},&lt;br /&gt;
		availableMaps,&lt;br /&gt;
		currentType = &#039;default&#039;,&lt;br /&gt;
		matchers = {},&lt;br /&gt;
		walker,&lt;br /&gt;
		styleTag;&lt;br /&gt;
&lt;br /&gt;
	function isValidType(type) {&lt;br /&gt;
		return type === &#039;default&#039; || availableMaps.indexOf(type) !== -1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {Object.&amp;lt;RegExp&amp;gt;} */&lt;br /&gt;
	function getMatchers(targetType) {&lt;br /&gt;
		var rChars;&lt;br /&gt;
		if (!matchers[targetType]) {&lt;br /&gt;
			rChars = { 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [] };&lt;br /&gt;
			$.each(maps, function (type, map) {&lt;br /&gt;
				if (type !== targetType) {&lt;br /&gt;
					for (var i = 0; i &amp;lt;= 9; i++) {&lt;br /&gt;
						rChars[i].push(map[i]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
			$.each(rChars, function (num, chars) {&lt;br /&gt;
				rChars[num] = new RegExp(&#039;(&#039; + chars.map(mw.RegExp.escape).join(&#039;|&#039;) + &#039;)&#039;, &#039;g&#039;);&lt;br /&gt;
			});&lt;br /&gt;
			matchers[targetType] = rChars;&lt;br /&gt;
		}&lt;br /&gt;
		return matchers[targetType];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function msg(key) {&lt;br /&gt;
		return msgs[key][mw.config.get(&#039;wgUserLanguage&#039;)] || msgs[key].en;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {HTMLElement|TextNode} node&lt;br /&gt;
	 * @return {number} NodeFilter.FILTER_* constant&lt;br /&gt;
	 */&lt;br /&gt;
	function filterNode(node) {&lt;br /&gt;
		if (node.nodeType === Node.TEXT_NODE) {&lt;br /&gt;
			return NodeFilter.FILTER_ACCEPT;&lt;br /&gt;
		}&lt;br /&gt;
		var n = node.nodeName &amp;amp;&amp;amp; node.nodeName.toLowerCase();&lt;br /&gt;
		if (n === &#039;input&#039; || n === &#039;textarea&#039; || $(node).hasClass(&#039;mw-numerakri-skip&#039;)) {&lt;br /&gt;
			// Skip this element and skip its children&lt;br /&gt;
			return NodeFilter.FILTER_REJECT;&lt;br /&gt;
		}&lt;br /&gt;
		// Skip this element, but check its children&lt;br /&gt;
		return NodeFilter.FILTER_SKIP;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param {TextNode} node&lt;br /&gt;
	 */&lt;br /&gt;
	function handleTextNode(node) {&lt;br /&gt;
		var original = node.nodeValue,&lt;br /&gt;
			changed = original,&lt;br /&gt;
			matchers = getMatchers(currentType),&lt;br /&gt;
			i = 0;&lt;br /&gt;
		for (; i &amp;lt;= 9; i++) {&lt;br /&gt;
			changed = changed.replace(matchers[i], maps[currentType][i]);&lt;br /&gt;
		}&lt;br /&gt;
		if (original !== changed) {&lt;br /&gt;
			node.nodeValue = changed;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// https://doc.wikimedia.org/mediawiki-core/master/js/#!/api/mw-method-requestIdleCallback&lt;br /&gt;
	function idleWalker(deadline) {&lt;br /&gt;
		var el;&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		while (deadline.timeRemaining() &amp;gt; 0) {&lt;br /&gt;
			el = walker.nextNode();&lt;br /&gt;
			if (!el) {&lt;br /&gt;
				// Reached the end&lt;br /&gt;
				walker = null;&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			handleTextNode(el);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// The user may interact with the page. We pause so the browser can process&lt;br /&gt;
		// interaction. The text handler will continue after that.&lt;br /&gt;
		if (walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Save a browser cookie for 30 days, or remove it.&lt;br /&gt;
	 * @param {string|null} value&lt;br /&gt;
	 */&lt;br /&gt;
	function saveType(value) {&lt;br /&gt;
		mw.requestIdleCallback(function () {&lt;br /&gt;
			$.cookie(&#039;mw-numerakri-type&#039;, value, { expires: 30, path: &#039;/&#039; });&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return {string}&lt;br /&gt;
	 */&lt;br /&gt;
	function getStoredType() {&lt;br /&gt;
		var value = $.cookie(&#039;mw-numerakri-type&#039;);&lt;br /&gt;
		if (value !== null &amp;amp;&amp;amp; !isValidType(value)) {&lt;br /&gt;
			// Remove bad cookie&lt;br /&gt;
			saveType(null);&lt;br /&gt;
			value = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return value || &#039;default&#039;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function startPageConversion() {&lt;br /&gt;
		if (styleTag) {&lt;br /&gt;
			// Undo style for a previously selected type&lt;br /&gt;
			$(styleTag).remove();&lt;br /&gt;
			styleTag = null;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;default&#039;) {&lt;br /&gt;
			// Don&#039;t change the page&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (currentType === &#039;arabic&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: decimal; }&#039;);&lt;br /&gt;
		} else if (currentType === &#039;devanagari&#039;) {&lt;br /&gt;
			styleTag = mw.loader.addStyleTag(&#039;.mw-parser-output ol, ol.references, li.references { list-style-type: devanagari; }&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// If a walker is already active, replace it.&lt;br /&gt;
		// If no walker is active yet, start it.&lt;br /&gt;
		if (!walker) {&lt;br /&gt;
			mw.requestIdleCallback(idleWalker);&lt;br /&gt;
		}&lt;br /&gt;
		walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, filterNode, false);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/** @return {HTMLElement} */&lt;br /&gt;
	function createSelector() {&lt;br /&gt;
		var $select = $(&#039;&amp;lt;select&amp;gt;&#039;).addClass(&#039;mw-numerakri-skip&#039;).append(&lt;br /&gt;
			$(&#039;&amp;lt;option&amp;gt;&#039;).val(&#039;default&#039;).text(msg(&#039;option-default&#039;))&lt;br /&gt;
		);&lt;br /&gt;
		availableMaps.forEach(function (type) {&lt;br /&gt;
			$select.append($(&#039;&amp;lt;option&amp;gt;&#039;).val(type).text(msg(&#039;option-&#039; + type)));&lt;br /&gt;
		});&lt;br /&gt;
		$select.val(currentType);&lt;br /&gt;
		$select.on(&#039;change&#039;, function () {&lt;br /&gt;
			currentType = this.value;&lt;br /&gt;
			startPageConversion();&lt;br /&gt;
			saveType(currentType);&lt;br /&gt;
		});&lt;br /&gt;
		return $select[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function init() {&lt;br /&gt;
		var potlet, menu;&lt;br /&gt;
&lt;br /&gt;
		// Decide which types to show&lt;br /&gt;
		availableMaps = [&#039;gujarati&#039;, &#039;arabic&#039;];&lt;br /&gt;
&lt;br /&gt;
		// Decide selected type&lt;br /&gt;
		currentType = getStoredType();&lt;br /&gt;
		startPageConversion();&lt;br /&gt;
&lt;br /&gt;
		potlet = mw.util.addPortletLink(&lt;br /&gt;
			&#039;p-personal&#039;,&lt;br /&gt;
			msg(&#039;label-url&#039;),&lt;br /&gt;
			msg(&#039;label-text&#039;),&lt;br /&gt;
			&#039;pt-numconvert&#039;,&lt;br /&gt;
			msg(&#039;label-tooltip&#039;),&lt;br /&gt;
			null,&lt;br /&gt;
			mw.user.isAnon() ? &#039;#pt-createaccount&#039; : &#039;#pt-userpage&#039;&lt;br /&gt;
		);&lt;br /&gt;
		menu = $(&#039;&amp;lt;div&amp;gt;&#039;).addClass(&#039;mw-numerakri-menu&#039;).append(createSelector())[0];&lt;br /&gt;
		if(potlet) {&lt;br /&gt;
			potlet.appendChild(menu);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(function () {&lt;br /&gt;
		mw.requestIdleCallback(init);&lt;br /&gt;
	});&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
/* Any JavaScript here will be loaded for all users on every page load. */&lt;br /&gt;
&lt;br /&gt;
self.ws_messages = { &lt;br /&gt;
	&#039;iwtrans&#039;:&#039;Its text comes from&#039;, &lt;br /&gt;
	&#039;iwtrans2&#039;:&#039;Its text comes from other sub-domains.&#039;,&lt;br /&gt;
	&#039;optlist&#039;:&#039;Display options&#039;,&lt;br /&gt;
	&#039;hide_page_numbers&#039;:&#039;Hide page links&#039;,&lt;br /&gt;
	&#039;show_page_numbers&#039;:&#039;Show page links&#039;,&lt;br /&gt;
	&#039;layout&#039;:&#039;Layout&#039;,&lt;br /&gt;
	&#039;author&#039;:&#039;Author&#039;,&lt;br /&gt;
	&#039;translator&#039;:&#039;Translator&#039;, &lt;br /&gt;
	&#039;editor&#039;:&#039;Editor&#039;, &lt;br /&gt;
	&#039;publisher&#039;:&#039;Publisher&#039;, &lt;br /&gt;
	&#039;place&#039;:&#039;Place&#039;, &lt;br /&gt;
	&#039;volume&#039;:&#039;Volume&#039;, &lt;br /&gt;
	&#039;school&#039;:&#039;School&#039;, &lt;br /&gt;
	&#039;book&#039;:&#039;Book&#039;, &lt;br /&gt;
	&#039;collection&#039;:&#039;Collection&#039;, &lt;br /&gt;
	&#039;journal&#039;:&#039;Journal or magazine&#039;, &lt;br /&gt;
	&#039;phdthesis&#039;:&#039;Thesis, report&#039;, &lt;br /&gt;
	&#039;dictionary&#039;:&#039;Dictionary&#039;, &lt;br /&gt;
	&#039;progress&#039;:&#039;Progress&#039;, &lt;br /&gt;
	&#039;progress_T&#039;:&#039;Done&#039;, &lt;br /&gt;
	&#039;progress_V&#039;:&#039;To be validated&#039;, &lt;br /&gt;
	&#039;progress_C&#039;:&#039;To be proofread&#039;, &lt;br /&gt;
	&#039;progress_MS&#039;:&#039;Ready for Match &amp;amp; Split&#039;, &lt;br /&gt;
	&#039;progress_OCR&#039;:&#039;Needs an OCR text layer&#039;, &lt;br /&gt;
	&#039;progress_L&#039;:&#039;Source file is incorrect (missing pages, unordered pages, etc)&#039;,&lt;br /&gt;
 &lt;br /&gt;
	&#039;page_namespace_name&#039;:      &#039;Page&#039;,&lt;br /&gt;
	&#039;page_trascluded_in&#039;:       &#039;Page trascluded in:&#039;,&lt;br /&gt;
	&#039;text_number&#039;:              &#039;Text&#039;,&lt;br /&gt;
&lt;br /&gt;
	&#039;compare_with&#039;:  &#039;Comparison with:&#039;,&lt;br /&gt;
	&#039;compare_texts&#039;: &#039;Compare texts&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
$.getScript( &#039;//wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039; )&lt;br /&gt;
.done( function() {&lt;br /&gt;
	importScript(&#039;MediaWiki:InterWikiTransclusion.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:TranscludedIn.js&#039;);&lt;br /&gt;
	importScript(&#039;MediaWiki:Compare.js&#039;);&lt;br /&gt;
} );&lt;br /&gt;
/* Footnotes as tooltip - from it.wikipedia.org - request by Candalua */&lt;br /&gt;
&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
 sups = document.getElementsByTagName(&amp;quot;sup&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt;sups.length; i++)&lt;br /&gt;
 {&lt;br /&gt;
   note_id = sups[i].childNodes[0].href;&lt;br /&gt;
   if (note_id &amp;amp;&amp;amp; (note_id.indexOf(&amp;quot;#&amp;quot;) != -1))&lt;br /&gt;
   {&lt;br /&gt;
     note_id = document.getElementById(note_id.substr(note_id.indexOf(&amp;quot;#&amp;quot;)+1));&lt;br /&gt;
     if (note_id)&lt;br /&gt;
       if (document.all) &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.innerText; &lt;br /&gt;
           sups[i].childNodes[0].title = note_id.innerText; &lt;br /&gt;
       } &lt;br /&gt;
       else &lt;br /&gt;
       { &lt;br /&gt;
           sups[i].title = note_id.textContent; &lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// Add links to Wikidata in the toolbar where [[Module:Interwiki]] is used&lt;br /&gt;
$(&amp;quot;#t-wikibase&amp;quot;).insertBefore($(&amp;quot;#p-tb li&amp;quot;).last()).removeAttr(&amp;quot;style&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Code to switch sizes for {{Tscore resizable}}&lt;br /&gt;
$( function ()&lt;br /&gt;
{&lt;br /&gt;
	el = document.getElementsByClassName(&amp;quot;prp-page-content&amp;quot;);&lt;br /&gt;
	if (el.length) {&lt;br /&gt;
		maxwidth = el[0].clientWidth;&lt;br /&gt;
	} else {&lt;br /&gt;
		maxwidth = document.getElementById(&amp;quot;mw-content-text&amp;quot;).clientWidth;&lt;br /&gt;
	}&lt;br /&gt;
	screslistslist = document.getElementsByClassName(&amp;quot;score-resizable-container&amp;quot;);&lt;br /&gt;
	scressizelist = [];&lt;br /&gt;
	for (i = 0; i &amp;lt; screslistslist.length; i++) {&lt;br /&gt;
		//maxwidth = screslistslist[i].parentNode.clientWidth;&lt;br /&gt;
		screslist = screslistslist[i].getElementsByClassName(&amp;quot;score-resizable&amp;quot;);&lt;br /&gt;
		fitwidth = 0;&lt;br /&gt;
		fitelement = -1;&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			s = screslist[j].className.match(/score-resizable-size-\d+/);&lt;br /&gt;
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);&lt;br /&gt;
			//find largest score that has width &amp;lt; parent width&lt;br /&gt;
			if (scressizelist[j] &amp;gt; fitwidth &amp;amp;&amp;amp; scressizelist[j] &amp;lt;= maxwidth) {&lt;br /&gt;
				fitwidth = scressizelist[j];&lt;br /&gt;
				fitelement = j;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if (fitelement &amp;lt; 0) {&lt;br /&gt;
			fitelement = 0;&lt;br /&gt;
		}&lt;br /&gt;
		for (j = 0; j &amp;lt; screslist.length; j++) {&lt;br /&gt;
			if (j != fitelement) {&lt;br /&gt;
				screslist[j].style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		screslist[fitelement].style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (mw.user.isAnon() === true) { // Check if the user is anonymous&lt;br /&gt;
    $(function () {&lt;br /&gt;
        $(&#039;.ext-wikisource-download-button&#039;).hide(); // Hide the button for anonymous users&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
&lt;br /&gt;
    // Encode the title and replace spaces with &#039;%20&#039;&lt;br /&gt;
    var encodedTitle = encodeURIComponent(pageTitle).replace(/%20/g, &#039;%20&#039;); // Correctly handle spaces&lt;br /&gt;
&lt;br /&gt;
    // Create the download button&lt;br /&gt;
    var downloadButton = $(&#039;&amp;lt;a&amp;gt;&#039;)&lt;br /&gt;
        .attr(&#039;href&#039;, &#039;https://wiki.ekatrafoundation.org/images/epub/&#039; + encodedTitle + &#039;.epub&#039;)&lt;br /&gt;
        .attr(&#039;download&#039;, &#039;&#039;) // Suggests to download the file rather than opening it&lt;br /&gt;
        .text(&#039;Download EPUB&#039;)&lt;br /&gt;
        .css({&lt;br /&gt;
            &#039;display&#039;: &#039;inline-block&#039;,&lt;br /&gt;
            &#039;padding&#039;: &#039;8px 16px&#039;,&lt;br /&gt;
            &#039;background-color&#039;: &#039;#4CAF50&#039;,&lt;br /&gt;
            &#039;color&#039;: &#039;#ffffff&#039;,&lt;br /&gt;
            &#039;text-align&#039;: &#039;center&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;4px&#039;,&lt;br /&gt;
            &#039;text-decoration&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;margin-top&#039;: &#039;10px&#039;&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
    // Add the button to the page content&lt;br /&gt;
    $(&#039;#bodyContent&#039;).append(downloadButton);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    // Get the page title from the MediaWiki configuration&lt;br /&gt;
    var pageTitle = mw.config.get(&#039;wgTitle&#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Check if the page title contains a forward slash&lt;br /&gt;
    if (pageTitle.indexOf(&#039;/&#039;) === -1) {&lt;br /&gt;
        // Show the download button if it&#039;s a top-level page&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).show();&lt;br /&gt;
    } else {&lt;br /&gt;
        // Hide the download button if it&#039;s a subpage&lt;br /&gt;
        $(&#039;a[href*=&amp;quot;/find_epub.php&amp;quot;]&#039;).hide();&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    var $element = $(&#039;#editpage-specialchars&#039;);&lt;br /&gt;
    var isDragging = false;&lt;br /&gt;
    var startX, startY, initialX, initialY;&lt;br /&gt;
&lt;br /&gt;
    $element.on(&#039;mousedown&#039;, function(e) {&lt;br /&gt;
        isDragging = true;&lt;br /&gt;
        startX = e.clientX;&lt;br /&gt;
        startY = e.clientY;&lt;br /&gt;
        initialX = $element.offset().left;&lt;br /&gt;
        initialY = $element.offset().top;&lt;br /&gt;
        $element.addClass(&#039;dragging&#039;);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mousemove&#039;, function(e) {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            var dx = e.clientX - startX;&lt;br /&gt;
            var dy = e.clientY - startY;&lt;br /&gt;
            $element.css({&lt;br /&gt;
                top: initialY + dy + &#039;px&#039;,&lt;br /&gt;
                left: initialX + dx + &#039;px&#039;&lt;br /&gt;
            });&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(document).on(&#039;mouseup&#039;, function() {&lt;br /&gt;
        if (isDragging) {&lt;br /&gt;
            isDragging = false;&lt;br /&gt;
            $element.removeClass(&#039;dragging&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77909</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77909"/>
		<updated>2024-08-24T06:56:36Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, &lt;br /&gt;
    .content h1, &lt;br /&gt;
    .content h2 {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: fixed;&lt;br /&gt;
    top: 20px;&lt;br /&gt;
    left: 20px;&lt;br /&gt;
    width: 200px;&lt;br /&gt;
    z-index: 9999; /* Ensures it&#039;s on top of everything */&lt;br /&gt;
    background-color: #f9f9f9; /* Optional: Background color */&lt;br /&gt;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* Optional: Shadow */&lt;br /&gt;
    padding: 10px; /* Optional: Padding */&lt;br /&gt;
    border-radius: 5px; /* Optional: Rounded corners */&lt;br /&gt;
    cursor: move; /* Changes the cursor to indicate it can be dragged */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#editpage-specialchars.dragging {&lt;br /&gt;
    opacity: 0.7; /* Makes the element semi-transparent while dragging */&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77908</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77908"/>
		<updated>2024-08-24T06:52:06Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, &lt;br /&gt;
    .content h1, &lt;br /&gt;
    .content h2 {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: fixed; /* Make it sticky */&lt;br /&gt;
    top: 20px; /* Distance from the top of the viewport */&lt;br /&gt;
    right: 20px; /* Distance from the right side of the viewport */&lt;br /&gt;
    width: 200px; /* Set the desired width */&lt;br /&gt;
    max-height: 90vh; /* Maximum height relative to viewport */&lt;br /&gt;
    overflow-y: auto; /* Scroll content if it overflows */&lt;br /&gt;
    z-index: 1000; /* Ensure it stays on top */&lt;br /&gt;
    background-color: #f9f9f9; /* Optional: background color */&lt;br /&gt;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* Optional: shadow */&lt;br /&gt;
    padding: 10px; /* Optional: padding inside the box */&lt;br /&gt;
    border-radius: 5px; /* Optional: rounded corners */&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77907</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Common.css&amp;diff=77907"/>
		<updated>2024-08-24T06:50:24Z</updated>

		<summary type="html">&lt;p&gt;Gurwinder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Normal.ttf&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Bold.ttf&amp;quot;);&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
    font-family: &amp;quot;Ekatra&amp;quot;;&lt;br /&gt;
    src: url(&amp;quot;https://wiki.ekatrafoundation.org/fonts/Ekatra-Italic.ttf&amp;quot;);&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  font-family: Ekatra;&lt;br /&gt;
  font-size: 24px;&lt;br /&gt;
  text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.action-edit #bodyContent {&lt;br /&gt;
	padding-left: 2%;&lt;br /&gt;
	padding-right: 2%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 600px) {&lt;br /&gt;
 #bodyContent {&lt;br /&gt;
	padding-left: 5%;&lt;br /&gt;
	padding-right: 5%;&lt;br /&gt;
	color:#2e2e2e;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#firstHeading {&lt;br /&gt;
	font-family: Ekatra;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-logo {&lt;br /&gt;
	margin-top: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.grid_row {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	flex-flow: row wrap;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
}&lt;br /&gt;
.grid_col {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
	min-width: 250px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.error {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #a2a9b1;&lt;br /&gt;
    border-spacing: 3px;&lt;br /&gt;
    background-color: #f8f9fa;&lt;br /&gt;
    color: black;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    width: 22em;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-name{&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
    font-size: 23px;&lt;br /&gt;
    line-height: 28px;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography th{&lt;br /&gt;
	text-align:left;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.infobox.biography td {&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
}&lt;br /&gt;
.infobox-heading-caption{&lt;br /&gt;
		text-align:center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.Poem2-Ekatra{&lt;br /&gt;
	text-align:justify;&lt;br /&gt;
}&lt;br /&gt;
/* Mobile specific style */&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .Poem2-Ekatra {&lt;br /&gt;
        text-align: justify;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    body {&lt;br /&gt;
        text-align: justify !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-heading {&lt;br /&gt;
	font-size: 29px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
p.bookcover-author, p.bookcover-editor{&lt;br /&gt;
	font-size: 21px;&lt;br /&gt;
	color:#861f23;&lt;br /&gt;
}&lt;br /&gt;
.bookcover{&lt;br /&gt;
	padding:10px;&lt;br /&gt;
	margin-bottom:20px;&lt;br /&gt;
}&lt;br /&gt;
.heading-detail-page{&lt;br /&gt;
	width:auto; &lt;br /&gt;
	margin-left:auto; &lt;br /&gt;
	margin-right:auto; &lt;br /&gt;
	margin-bottom: 30px;&lt;br /&gt;
}&lt;br /&gt;
.tablecenter{&lt;br /&gt;
	margin:0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.content-box.lightpink{&lt;br /&gt;
	border:2px solid #ffe2e2;&lt;br /&gt;
}&lt;br /&gt;
.content-box-heading{&lt;br /&gt;
	background:#ffe2e2;&lt;br /&gt;
	font-size: larger;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding-top: 0.1em;&lt;br /&gt;
	padding-bottom: 0.1em;&lt;br /&gt;
}&lt;br /&gt;
.content-box-text{&lt;br /&gt;
	background:#fff5f5;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	font-size:17px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
table.autorowtable {&lt;br /&gt;
  counter-reset: rowNumber;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.autorow::before {&lt;br /&gt;
  counter-increment: rowNumber;&lt;br /&gt;
  content:  counter(rowNumber) &amp;quot;.&amp;quot; ;&lt;br /&gt;
  padding-right: 0.3em;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* To make images responsive */&lt;br /&gt;
.res-img img {&lt;br /&gt;
	max-width:70%;&lt;br /&gt;
	height:auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#wikisource-download-epub,&lt;br /&gt;
#wikisource-download-choose,&lt;br /&gt;
#wikisource-download-pdf,&lt;br /&gt;
#wikisource-download-mobi {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.mw-indicators {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 767px) {&lt;br /&gt;
    .pre-content h1, &lt;br /&gt;
    .content h1, &lt;br /&gt;
    .content h2 {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
.mw-parser-output a.external {&lt;br /&gt;
    background-image: none !important;&lt;br /&gt;
}&lt;br /&gt;
.mw-ui-button.mw-ui-progressive:not(:disabled) {&lt;br /&gt;
    background-color: #3366cc !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    position: relative;&lt;br /&gt;
    transition: all 0.3s ease-in-out;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sticky-sidebar {&lt;br /&gt;
    position: fixed;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    right: 0; /* Adjust based on your layout */&lt;br /&gt;
    width: 200px; /* Adjust the width as needed */&lt;br /&gt;
    height: 100%; /* Full height */&lt;br /&gt;
    z-index: 1000;&lt;br /&gt;
    background-color: #f9f9f9; /* Optional background */&lt;br /&gt;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* Optional shadow */&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
</feed>