Content-Type: multipart/related; start=<op.mhtml.1253714942957.819d943a1a7c0061@192.168.1.3>; boundary=----------JVjTxU9jaTpGHMRtHCEzMY
Content-Location: http://es.wikipedia.org/wiki/%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola
Subject: =?utf-8?Q?=C3=9Altimo=20parte=20de=20la=20Guerra=20Civil=20Espa=C3=B1ola=20-=20Wikipedia,=20la=20enciclopedia=20libre?=
MIME-Version: 1.0

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename*0*=utf-8''%C3%9Altimo_parte_de_la_Guerra_Ci;
 filename*1*=vil_Espa%C3%B1ola.htm
Content-Type: text/html; charset=utf-8; name*0*=utf-8''%C3%9Altimo_parte_de_la_Guerra_Ci;
 name*1*=vil_Espa%C3%B1ola.htm
Content-ID: <op.mhtml.1253714942957.819d943a1a7c0061@192.168.1.3>
Content-Location: http://es.wikipedia.org/wiki/%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola
Content-Transfer-Encoding: 8bit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es" dir="ltr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta http-equiv="Content-Style-Type" content="text/css" />
		<meta name="generator" content="MediaWiki 1.16alpha-wmf" />
		<meta name="keywords" content="Último parte de la Guerra Civil Española,1922,1939,1 de abril,Burgos,En el día de hoy (libro),España,Francisco Franco,Guerra Civil Española,Italia,Jesús Torbado" />
		<link rel="alternate" type="application/x-wiki" title="Editar" href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=edit" />
		<link rel="edit" title="Editar" href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=edit" />
		<link rel="apple-touch-icon" href="http://es.wikipedia.org/apple-touch-icon.png" />
		<link rel="shortcut icon" href="/favicon.ico" />
		<link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="Wikipedia (es)" />
		<link rel="copyright" href="http://creativecommons.org/licenses/by-sa/3.0/" />
		<link rel="alternate" type="application/rss+xml" title="Wikipedia RSS feed" href="/w/index.php?title=Especial:CambiosRecientes&amp;feed=rss" />
		<link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Especial:CambiosRecientes&amp;feed=atom" />
		<title>Último parte de la Guerra Civil Española - Wikipedia, la enciclopedia libre</title>
		<link rel="stylesheet" href="/skins-1.5/common/shared.css?233zz2" type="text/css" media="screen" />
		<link rel="stylesheet" href="/skins-1.5/common/commonPrint.css?233zz2" type="text/css" media="print" />
		<link rel="stylesheet" href="/skins-1.5/monobook/main.css?233zz2" type="text/css" media="screen" />
		<link rel="stylesheet" href="/skins-1.5/chick/main.css?233zz2" type="text/css" media="handheld" />
		<!--[if lt IE 5.5000]><link rel="stylesheet" href="/skins-1.5/monobook/IE50Fixes.css?233zz2" type="text/css" media="screen" /><![endif]-->
		<!--[if IE 5.5000]><link rel="stylesheet" href="/skins-1.5/monobook/IE55Fixes.css?233zz2" type="text/css" media="screen" /><![endif]-->
		<!--[if IE 6]><link rel="stylesheet" href="/skins-1.5/monobook/IE60Fixes.css?233zz2" type="text/css" media="screen" /><![endif]-->
		<!--[if IE 7]><link rel="stylesheet" href="/skins-1.5/monobook/IE70Fixes.css?233zz2" type="text/css" media="screen" /><![endif]-->
		<link rel="stylesheet" href="/w/index.php?title=MediaWiki:Common.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=2678400&amp;action=raw&amp;maxage=2678400" type="text/css" />
		<link rel="stylesheet" href="/w/index.php?title=MediaWiki:Print.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=2678400&amp;action=raw&amp;maxage=2678400" type="text/css" media="print" />
		<link rel="stylesheet" href="/w/index.php?title=MediaWiki:Handheld.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=2678400&amp;action=raw&amp;maxage=2678400" type="text/css" media="handheld" />
		<link rel="stylesheet" href="/w/index.php?title=MediaWiki:Monobook.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=2678400&amp;action=raw&amp;maxage=2678400" type="text/css" />
		<link rel="stylesheet" href="/w/index.php?title=-&amp;action=raw&amp;maxage=2678400&amp;gen=css" type="text/css" />
		<!--[if lt IE 7]><script type="text/javascript" src="/skins-1.5/common/IEFixes.js?233zz2"></script>
		<meta http-equiv="imagetoolbar" content="no" /><![endif]-->

		<script type="text/javascript">/*<![CDATA[*/
		var skin = "monobook";
		var stylepath = "/skins-1.5";
		var wgArticlePath = "/wiki/$1";
		var wgScriptPath = "/w";
		var wgScript = "/w/index.php";
		var wgVariantArticlePath = false;
		var wgActionPaths = {};
		var wgServer = "http://es.wikipedia.org";
		var wgCanonicalNamespace = "";
		var wgCanonicalSpecialPageName = false;
		var wgNamespaceNumber = 0;
		var wgPageName = "Último_parte_de_la_Guerra_Civil_Española";
		var wgTitle = "Último parte de la Guerra Civil Española";
		var wgAction = "view";
		var wgArticleId = "347814";
		var wgIsArticle = true;
		var wgUserName = null;
		var wgUserGroups = null;
		var wgUserLanguage = "es";
		var wgContentLanguage = "es";
		var wgBreakFrames = false;
		var wgCurRevisionId = 29142447;
		var wgVersion = "1.16alpha-wmf";
		var wgEnableAPI = true;
		var wgEnableWriteAPI = true;
		var wgSeparatorTransformTable = [",	.", ".	,"];
		var wgDigitTransformTable = ["", ""];
		var wgMainPageTitle = "Wikipedia:Portada";
		var wgMWSuggestTemplate = "http://es.wikipedia.org/w/api.php?action=opensearch\x26search={searchTerms}\x26namespace={namespaces}\x26suggest";
		var wgDBname = "eswiki";
		var wgSearchNamespaces = [0, 100, 104];
		var wgMWSuggestMessages = ["con sugerencias", "sin sugerencias"];
		var wgRestrictionEdit = [];
		var wgRestrictionMove = [];
		/*]]>*/</script>

		<script type="text/javascript" src="/skins-1.5/common/wikibits.js?233zz2"><!-- wikibits js --></script>
		<!-- Head Scripts -->
		<script type="text/javascript" src="/skins-1.5/common/ajax.js?233zz2"></script>
		<script type="text/javascript" src="/skins-1.5/common/mwsuggest.js?233zz2"></script>
		<script type="text/javascript">/*<![CDATA[*/
		var wgNotice='';var wgNoticeLocal='';
		/*]]>*/</script>
		<script type="text/javascript" src="http://upload.wikimedia.org/centralnotice/wikipedia/es/centralnotice.js?233zz2"></script>

		<script type="text/javascript" src="/w/index.php?title=-&amp;action=raw&amp;gen=js&amp;useskin=monobook"><!-- site js --></script>
	</head>
<body class="mediawiki ltr ns-0 ns-subject page-Último_parte_de_la_Guerra_Civil_Española skin-monobook">
	<div id="globalWrapper">
		<div id="column-content">
	<div id="content">
		<a name="top" id="top"></a>
		<div id="siteNotice"><script type='text/javascript'>if (wgNotice != '') document.writeln(wgNotice);</script></div>		<h1 id="firstHeading" class="firstHeading">Último parte de la Guerra Civil Española</h1>
		<div id="bodyContent">
			<h3 id="siteSub">De Wikipedia, la enciclopedia libre</h3>
			<div id="contentSub"></div>
									<div id="jump-to-nav">Saltar a <a href="#column-one">navegación</a>, <a href="#searchInput">búsqueda</a></div>			<!-- start content -->
			<div class="floatright"><a href="/wiki/Archivo:Spain_final-guerra-civil.jpg" class="image" title="Spain final-guerra-civil.jpg"><img alt="" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Spain_final-guerra-civil.jpg/220px-Spain_final-guerra-civil.jpg" width="220" height="285" /></a></div>
<p>El <b>último parte de la Guerra Civil Española</b>, firmado por <a href="/wiki/Francisco_Franco" title="Francisco Franco">Franco</a>, publicado el <a href="/wiki/1_de_abril" title="1 de abril">1 de abril</a> de <a href="/wiki/1939" title="1939">1939</a>, día final de la <a href="/wiki/Guerra_Civil_Espa%C3%B1ola" title="Guerra Civil Española">guerra</a>, es un breve texto muy popular en <a href="/wiki/Espa%C3%B1a" title="España">España</a>, que reza lo siguiente:</p>
<div style="margin: 1em 4em 1em" class="citado">"En el día de hoy, cautivo y desarmado el ejército rojo, han alcanzado las tropas nacionales sus últimos objetivos militares. La guerra ha terminado. El Generalísimo: Franco. Burgos, 1º de abril de 1939."</div>
<table id="toc" class="toc" summary="Contenido">
<tr>
<td>
<div id="toctitle">
<h2>Contenido</h2>
</div>
<ul>
<li class="toclevel-1"><a href="#Lectura_radiof.C3.B3nica"><span class="tocnumber">1</span> <span class="toctext">Lectura radiofónica</span></a></li>
<li class="toclevel-1"><a href="#Influencia_cultural"><span class="tocnumber">2</span> <span class="toctext">Influencia cultural</span></a></li>
<li class="toclevel-1"><a href="#Contexto_hist.C3.B3rico_del_parte"><span class="tocnumber">3</span> <span class="toctext">Contexto histórico del parte</span></a></li>
<li class="toclevel-1"><a href="#Fuente_para_el_art.C3.ADculo"><span class="tocnumber">4</span> <span class="toctext">Fuente para el artículo</span></a></li>
<li class="toclevel-1"><a href="#Enlace_externo"><span class="tocnumber">5</span> <span class="toctext">Enlace externo</span></a></li>
</ul>
</td>
</tr>
</table>
<script type="text/javascript">
//<![CDATA[
 if (window.showTocToggle) { var tocShowText = "mostrar"; var tocHideText = "ocultar"; showTocToggle(); } 
//]]>
</script>
<p><a name="Lectura_radiof.C3.B3nica" id="Lectura_radiof.C3.B3nica"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=edit&amp;section=1" title="Editar sección: Lectura radiofónica">editar</a>]</span> <span class="mw-headline">Lectura radiofónica</span></h2>
<p>Fue el único parte firmado por <a href="/wiki/Francisco_Franco" title="Francisco Franco">Franco</a>, que revisó minuciosamente su redacción e hizo varias correcciones. El texto definitivo fue llevado a toda prisa desde el <a href="/wiki/Burgos" title="Burgos">burgalés</a> Palacio de la Isla, sede del gobierno franquista durante la guerra, hasta el entonces estudio de Radio Nacional, en el cercano Paseo del Espolón. Fue leído a las 22:30 por el actor y locutor Fernando Fernández de Córdoba, con entonación y énfasis propios de la radiofonía de aquellos años.</p>
<p><a name="Influencia_cultural" id="Influencia_cultural"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=edit&amp;section=2" title="Editar sección: Influencia cultural">editar</a>]</span> <span class="mw-headline">Influencia cultural</span></h2>
<ul>
<li>La <a href="/wiki/Ucron%C3%ADa" title="Ucronía">ucronía</a> titulada <i><a href="/wiki/En_el_d%C3%ADa_de_hoy_(libro)" title="En el día de hoy (libro)" class="mw-redirect">En el día de hoy</a></i>, de <a href="/wiki/Jes%C3%BAs_Torbado" title="Jesús Torbado">Jesús Torbado</a> (que obtuvo el <a href="/wiki/Premio_Planeta" title="Premio Planeta">Premio Planeta</a> en 1976), toma su título de las primeras palabras del parte. En esta ucronía se novela qué podría haber pasado si el gobierno de la <a href="/wiki/Segunda_Rep%C3%BAblica_Espa%C3%B1ola" title="Segunda República Española">Segunda República</a> hubiese ganado la <a href="/wiki/Guerra_Civil_Espa%C3%B1ola" title="Guerra Civil Española">Guerra Civil Española</a>. La novela se aprovecha de lo conocido que es el parte, repitiéndolo palabra por palabra, pero cambiando "Nacionales" ("...tropas Nacionales...) por "Republicanas".</li>
<li>Muchos españoles aún se saben de memoria, por su importancia histórica, el texto del parte.</li>
<li>En España aún se hacen bromas que comienzan por "Cautivo y desarmado...".</li>
</ul>
<p><a name="Contexto_hist.C3.B3rico_del_parte" id="Contexto_hist.C3.B3rico_del_parte"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=edit&amp;section=3" title="Editar sección: Contexto histórico del parte">editar</a>]</span> <span class="mw-headline">Contexto histórico del parte</span></h2>
<ul>
<li>"<a href="/wiki/Parte" title="Parte">Parte</a>" . El Parte de guerra, emitido radiofónicamente durante la Guerra Civil, fue sustituido por un informativo más convencional, aunque mantuvo durante los años de dictadura el mismo nombre. Durante el franquismo todas las radios privadas tenían la obligación de conectar con la radio pública española a la hora del informativo o, como se le designó, "parte". De ahí que las personas que vivieron el franquismo todavía hoy sigan llamando "el parte" a cualquier tipo de informativo, tanto radiofónico como televisado.</li>
<li>El <i>cuartel general del generalísimo</i> estaba entonces en el <a href="/w/index.php?title=Palacio_de_la_Isla_(Burgos)&amp;action=edit&amp;redlink=1" class="new" title="Palacio de la Isla (Burgos) (aún no redactado)">Palacio de la Isla</a>, en Burgos, que era la capital provisional del bando franquista durante la guerra.</li>
<li><i>III año triunfal</i> era una manera protocolaria de llamar al año 1939. El bando franquista llamó a 1937 <i>I año triunfal</i> y a 1938 <i>II año triunfal</i>. 1939 fue también llamado por este bando como <i>Año de la Victoria</i>. Esta costumbre de asignar esloganes propagandísticos a los años puede estar copiada de la <a href="/wiki/Italia" title="Italia">Italia</a> de <a href="/wiki/Mussolini" title="Mussolini" class="mw-redirect">Mussolini</a>, que numeraba los años en números romanos contando a partir de <a href="/wiki/1922" title="1922">1922</a> (año de la <i><a href="/wiki/Marcha_sobre_Roma" title="Marcha sobre Roma">Marcha sobre Roma</a></i>).</li>
<li>El primero de abril pasó a ser celebrado como <i>Día de la victoria</i> durante todo el franquismo.</li>
<li>Nótese que el parte habla de las tropas nacionales han alcanzado sus últimos objetivos <b>militares</b>. Franco subrayaba así la importancia <b>política</b> que para él tenía el ejército.</li>
<li>A pesar de ser considerado como el final de la Guerra Civil Española, aún hubo combates hasta finales del mes de abril de 1939 en zonas recónditas de España a las que las tropas de Franco aún no habían llegado. Incluso hubo conatos de guerrillas en las cercanías de Madrid durante los años de posguerra.</li>
</ul>
<p><a name="Fuente_para_el_art.C3.ADculo" id="Fuente_para_el_art.C3.ADculo"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=edit&amp;section=4" title="Editar sección: Fuente para el artículo">editar</a>]</span> <span class="mw-headline">Fuente para el artículo</span></h2>
<ul>
<li><i>1939 Agonía y victoria</i>, de <a href="/wiki/Ricardo_de_la_Cierva" title="Ricardo de la Cierva">Ricardo de la Cierva</a>, premio <i>Espejo de España</i> 1989.</li>
</ul>
<p><a name="Enlace_externo" id="Enlace_externo"></a></p>
<h2><span class="editsection">[<a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=edit&amp;section=5" title="Editar sección: Enlace externo">editar</a>]</span> <span class="mw-headline">Enlace externo</span></h2>
<ul>
<li><a href="http://fonotecaderadio.com/html/fernandezdecordoba.html" class="external text" title="http://fonotecaderadio.com/html/fernandezdecordoba.html" rel="nofollow">Grabación de la Fonoteca de radio</a></li>
</ul>


<!-- 
NewPP limit report
Preprocessor node count: 18/1000000
Post-expand include size: 475/2048000 bytes
Template argument size: 210/2048000 bytes
Expensive parser function count: 0/500
-->

<!-- Saved in parser cache with key eswiki:pcache:idhash:347814-0!1!0!!es!2 and timestamp 20090906222520 -->
<div class="printfooter">
Obtenido de "<a href="http://es.wikipedia.org/wiki/%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola">http://es.wikipedia.org/wiki/%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola</a>"</div>
			<div id='catlinks' class='catlinks'><div id="mw-normal-catlinks"><a href="/wiki/Especial:Categor%C3%ADas" title="Especial:Categorías">Categorías</a>: <span dir='ltr'><a href="/wiki/Categor%C3%ADa:Guerra_Civil_Espa%C3%B1ola" title="Categoría:Guerra Civil Española">Guerra Civil Española</a></span> | <span dir='ltr'><a href="/wiki/Categor%C3%ADa:Franquismo" title="Categoría:Franquismo">Franquismo</a></span></div></div>			<!-- end content -->
						<div class="visualClear"></div>
		</div>
	</div>
		</div>
		<div id="column-one">
	<div id="p-cactions" class="portlet">
		<h5>Vistas</h5>
		<div class="pBody">
			<ul lang="es" xml:lang="es">
	
				 <li id="ca-nstab-main" class="selected"><a href="/wiki/%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola" title="Ver el artículo [c]" accesskey="c">Artículo</a></li>
				 <li id="ca-talk"><a href="/wiki/Discusi%C3%B3n:%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola" title="Discusión acerca del artículo [t]" accesskey="t">Discusión</a></li>
				 <li id="ca-edit"><a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=edit" title="Puede editar esta página. Por favor, use el botón de previsualización antes de grabar. [e]" accesskey="e">Editar</a></li>
				 <li id="ca-history"><a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;action=history" title="Versiones anteriores de esta página y sus autores [h]" accesskey="h">Historial</a></li>			</ul>
		</div>
	</div>
	<div class="portlet" id="p-personal">
		<h5>Herramientas personales</h5>
		<div class="pBody">
			<ul lang="es" xml:lang="es">
				<li id="pt-acaibeta"><a href="http://es.wikipedia.org/w/index.php?title=Especial:UsabilityInitiativeOptIn&amp;from=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola" class="no-text-transform">Probar Beta</a></li>
				<li id="pt-login"><a href="/w/index.php?title=Especial:Entrar&amp;returnto=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola" title="Le animamos a registrarse, aunque no es obligatorio [o]" accesskey="o">Registrarse/Entrar</a></li>
			</ul>
		</div>
	</div>
	<div class="portlet" id="p-logo">
		<a style="background-image: url(http://upload.wikimedia.org/wikipedia/commons/7/74/Wikipedia-logo-es.png);" href="/wiki/Wikipedia:Portada" title="Portada [z]" accesskey="z"></a>
	</div>
	<script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
	<div id="p-search" class="portlet">
		<h5 lang="es" xml:lang="es"><label for="searchInput">Buscar</label></h5>
		<div id="searchBody" class="pBody">
			<form action="/w/index.php" id="searchform"><div>
				<input type='hidden' name="title" value="Especial:Buscar"/>
				<input id="searchInput" name="search" type="text" title="Buscar en este wiki [f]" accesskey="f" value="" />
				<input type='submit' name="go" class="searchButton" id="searchGoButton"	value="Ir" title="Ir al artículo con este nombre exacto si existe" />&nbsp;
				<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="Buscar" title="Busca páginas con este texto." />
			</div></form>
		</div>
	</div>
	<div class='generated-sidebar portlet' id='p-navigation'>
		<h5 lang="es" xml:lang="es">Navegación</h5>
		<div class='pBody'>
			<ul>
				<li id="n-mainpage-description"><a href="/wiki/Wikipedia:Portada">Portada</a></li>
				<li id="n-portal"><a href="/wiki/Portal:Comunidad" title="Acerca del proyecto, qué puede hacer, dónde encontrar información">Portal de la comunidad</a></li>
				<li id="n-currentevents"><a href="/wiki/Portal:Actualidad" title="Información de contexto sobre acontecimientos actuales">Actualidad</a></li>
				<li id="n-recentchanges"><a href="/wiki/Especial:CambiosRecientes" title="La lista de cambios recientes en el wiki [r]" accesskey="r">Cambios recientes</a></li>
				<li id="n-randompage"><a href="/wiki/Especial:Aleatoria" title="Cargar una página aleatoriamente [x]" accesskey="x">Página aleatoria</a></li>
				<li id="n-help"><a href="/wiki/Ayuda:Contenidos" title="El lugar para aprender">Ayuda</a></li>
				<li id="n-sitesupport"><a href="http://wikimediafoundation.org/wiki/Donaciones" title="Apóyenos">Donaciones</a></li>
			</ul>
		</div>
	</div>
	<div class='generated-sidebar portlet' id='p-coll-create_a_book'>
		<h5 lang="es" xml:lang="es">Crear un libro</h5>
		<div class='pBody'>
<ul id="collectionPortletList"><li id="coll-add_page"><a href="/w/index.php?title=Especial:Libro/add_article/&amp;arttitle=%C3%9Altimo+parte+de+la+Guerra+Civil+Espa%C3%B1ola&amp;oldid=0" title="Agregar la página wiki actual a tu libro" onclick="collectionCall(&#039;AddArticle&#039;, [&#039;removepage&#039;, wgNamespaceNumber, wgTitle, 0]); return false;" rel="nofollow">Añadir esta página</a></li><li id="coll-help_collections"><a href="/wiki/Ayuda:Libros" title="Mostrar ayuda acerca de la herramienta libro">Ayuda de libros</a></li></ul><script type="text/javascript">/*<![CDATA[*/
		var wgCollectionAddRemoveSate = "addpage";
		/*]]>*/</script>
<script type="text/javascript" src="/w/extensions/Collection/collection/portlet.js?2"></script>		</div>
	</div>
	<div class="portlet" id="p-tb">
		<h5 lang="es" xml:lang="es">Herramientas</h5>
		<div class="pBody">
			<ul>
				<li id="t-whatlinkshere"><a href="/wiki/Especial:LoQueEnlazaAqu%C3%AD/%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola" title="Lista de todas las páginas del wiki que enlazan con ésta [j]" accesskey="j">Lo que enlaza aquí</a></li>
				<li id="t-recentchangeslinked"><a href="/wiki/Especial:CambiosEnEnlazadas/%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola" title="Cambios recientes en las páginas que enlazan con ésta [k]" accesskey="k">Cambios en enlazadas</a></li>
<li id="t-upload"><a href="http://commons.wikimedia.org/wiki/Commons:Upload/es" title="Subir imágenes o archivos multimedia [u]" accesskey="u">Subir archivo</a></li>
<li id="t-specialpages"><a href="/wiki/Especial:P%C3%A1ginasEspeciales" title="Lista de todas las páginas especiales [q]" accesskey="q">Páginas especiales</a></li>
				<li id="t-print"><a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;printable=yes" rel="alternate" title="Versión imprimible de la página [p]" accesskey="p">Versión para imprimir</a></li>				<li id="t-permalink"><a href="/w/index.php?title=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;oldid=29142447" title="Enlace permanente a esta versión de la página">Enlace permanente</a></li><li id="t-cite"><a href="/w/index.php?title=Especial:Citar&amp;page=%C3%9Altimo_parte_de_la_Guerra_Civil_Espa%C3%B1ola&amp;id=29142447">Citar este artículo</a></li><li id="t-download-as-pdf"><a href="/w/index.php?title=Especial:Libro/render_article/&amp;arttitle=%C3%9Altimo+parte+de+la+Guerra+Civil+Espa%C3%B1ola&amp;oldid=29142447&amp;writer=rl" rel="nofollow">Versión en PDF</a></li>			</ul>
		</div>
	</div>
		</div><!-- end of the left (by default at least) column -->
			<div class="visualClear"></div>
			<div id="footer">
				<div id="f-poweredbyico"><a href="http://www.mediawiki.org/"><img src="/skins-1.5/common/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" /></a></div>
				<div id="f-copyrightico"><a href="http://wikimediafoundation.org/"><img src="/images/wikimedia-button.png" width="88" height="31" alt="Wikimedia Foundation"/></a></div>
			<ul id="f-list">
					<li id="lastmod"> Esta página fue modificada por última vez el 03:47, 25 ago 2009.</li>
					<li id="copyright">El texto está disponible bajo la <a href="http://creativecommons.org/licenses/by-sa/3.0/deed.es">Licencia Creative Commons Compartir Igual 3.0</a>; cláusulas adicionales pueden ser de aplicación. Vea <a href="http://wikimediafoundation.org/wiki/Terms_of_Use">los términos de uso</a> para los detalles.</li>
					<li id="privacy"><a href="http://wikimediafoundation.org/wiki/Pol%C3%ADtica_de_privacidad" class="extiw" title="wikimedia:Política de privacidad">Política de privacidad</a></li>
					<li id="about"><a href="/wiki/Wikipedia:Acerca_de" title="Wikipedia:Acerca de">Acerca de Wikipedia</a></li>
					<li id="disclaimer"><a href="/wiki/Wikipedia:Limitaci%C3%B3n_general_de_responsabilidad" title="Wikipedia:Limitación general de responsabilidad">Limitación de responsabilidad</a></li>
			</ul>
		</div>
</div>

		<script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script>
<!-- Served by srv203 in 0.063 secs. --></body></html>

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=favicon.ico
Content-Type: image/x-icon; name=favicon.ico
Content-Location: http://es.wikipedia.org/favicon.ico
Content-Transfer-Encoding: Base64

AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAA
AAAAAAAAEAAAAAAAAAAEAgQAhIOEAMjHyABIR0gA6ejpAGlqaQCpqKkAKCgoAPz9
/AAZGBkAmJiYANjZ2ABXWFcAent6ALm6uQA8OjwAiIiIiIiIiIiIiI4oiL6IiIiI
gzuIV4iIiIhndo53KIiIiB/WvXoYiIiIfEZfWBSIiIEGi/foqoiIgzuL84i9iIjp
GIoMiEHoiMkos3FojmiLlUipYliEWIF+iDe0GoRa7D6GPbjcu1yIiIiIiIiIiIiI
iIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=shared.css
Content-Type: text/css; charset=utf-8; name=shared.css
Content-Location: http://es.wikipedia.org/skins-1.5/common/shared.css?233zz2
Content-Transfer-Encoding: 8bit

/**
 * CSS in this file is used by *all* skins (that have any CSS at all).  Be
 * careful what you put in here, since what looks good in one skin may not in
 * another, but don't ignore the poor non-Monobook users either.
 */

/* Colored watchlist and recent changes numbers */
.mw-plusminus-pos { color: #006400; } /* dark green */
.mw-plusminus-neg { color: #8b0000; } /* dark red */
.mw-plusminus-null { color: #aaa; } /* gray */

/* Comment and username portions of RC entries */
span.comment {
	font-style: italic;
}

span.changedby {
	font-size: 95%;
}

/* Math */
.texvc { direction: ltr; unicode-bidi: embed; }
img.tex { vertical-align: middle; }
span.texhtml { font-family: serif; }

/* add a bit of margin space between the preview and the toolbar */
/* this replaces the ugly <p><br /></p> we used to insert into the page source */
#wikiPreview.ontop { margin-bottom: 1em; }

/* Stop floats from intruding into edit area in previews */
#editform, #toolbar, #wpTextbox1 { clear: both; }

div#mw-js-message {
	margin: 1em 5%;
	padding: 0.5em 2.5%;
	border: solid 1px #ddd;
	background-color: #fcfcfc;
}

/* Edit section links */
.editsection {
	float: right;
	margin-left: 5px;
}

/**
 * File histories
 */
table.filehistory th,
table.filehistory td {
	vertical-align:top;
}
table.filehistory th {
	text-align: left;
}
table.filehistory td.mw-imagepage-filesize,
table.filehistory th.mw-imagepage-filesize {
	white-space:nowrap;
}

table.filehistory td.filehistory-selected {
	font-weight: bold;
}

/*
 * rev_deleted stuff
 */
li span.deleted, span.history-deleted {
	text-decoration: line-through;
	color: #888;
	font-style: italic;
}

/**
 * Patrol stuff
 */
.not-patrolled {
	background-color: #ffa;
}

.unpatrolled {
	font-weight: bold;
	color: red;
}

div.patrollink {
	font-size: 75%;
	text-align: right;
}

/**
 * Forms
 */
body.ltr td.mw-label { text-align: right; }
body.ltr td.mw-input { text-align: left; }
body.ltr td.mw-submit { text-align: left; }
body.rtl td.mw-label { text-align: left; }
body.rtl td.mw-input { text-align: right; }
body.rtl td.mw-submit { text-align: right; }

td.mw-label { vertical-align: top; }
.prefsection td.mw-label { width: 20%; }
.prefsection table { width: 100%; }
td.mw-submit { white-space: nowrap; }

table.mw-htmlform-nolabel td.mw-label { width: 0 !important; }

/**
 * Image captions
 */
body.rtl .thumbcaption { text-align:right; }
body.rtl .magnify { float:left; }

body.ltr .thumbcaption { text-align:left; }
body.ltr .magnify { float:right; }

/**
 * Hidden categories
 */
.mw-hidden-cats-hidden { display: none; }
.catlinks-allhidden { display: none; }

/* Convenience links to edit block, delete and protect reasons */
p.mw-ipb-conveniencelinks, p.mw-protect-editreasons,
p.mw-filedelete-editreasons, p.mw-delete-editreasons,
p.mw-revdel-editreasons {
	font-size: 90%;
	float: right;
}

/* Search results */
.searchresults {
}

.searchresults p {
	margin-left: 0.4em;
	margin-top: 1em;
	margin-bottom: 1.2em;
}

div.searchresult {
	font-size: 95%;
	width:38em;
}

.mw-search-results {
	margin-left: 0.4em;
}

.mw-search-results li {
	padding-bottom: 1em;
	list-style:none;
	list-style-image:none;
}
.mw-search-results li a {
	font-size: 108%;
}

.mw-search-result-data {
	color: green;
	font-size: 97%;
}

.mw-search-formheader {
	background-color: #f3f3f3;
	margin-top: 1em;
	border: 1px solid silver;
}
.mw-search-formheader div.search-types {
	float:left;
	padding-left: 0.25em;
}
.rtl .mw-search-formheader div.search-types {
	float: right;
}
.mw-search-formheader div.search-types ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.mw-search-formheader div.search-types ul li {
	float: left;
	margin: 0;
	padding: 0;
}
.mw-search-formheader div.search-types ul li a {
	display: block;
	padding: 0.5em;
}
.mw-search-formheader div.search-types ul li.current a {
	color: #333333;
	cursor: default;
}
.mw-search-formheader div.search-types ul li.current a:hover {
	text-decoration: none;
}
.mw-search-formheader div.results-info {
	float: right;
	padding: 0.5em;
	padding-right: 0.75em;
}
.mw-search-formheader div.results-info ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.mw-search-formheader div.results-info ul li {
	float: right;
	margin: 0;
	padding: 0;
}
fieldset#mw-searchoptions {
	margin: 0;
	padding-left: 0.75em !important;
	padding-right: 0.75em !important;
	padding-bottom: 0.5em !important;
	padding-top: 0.5em !important;
	border: none;
	background-color: #f9f9f9;
	border: 1px solid silver !important;
	border-top-width: 0 !important;
}
fieldset#mw-searchoptions legend {
	display: none;
}
fieldset#mw-searchoptions h4 {
	padding: 0;
	margin: 0;
	float: left;
}
.rtl fieldset#mw-searchoptions h4 {
	float: right;
}
fieldset#mw-searchoptions div#mw-search-togglebox {
	float: right;
}
.rtl fieldset#mw-searchoptions div#mw-search-togglebox {
	float: left;
}

fieldset#mw-searchoptions div#mw-search-togglebox label {
	margin-right: 0.25em;
}
fieldset#mw-searchoptions div#mw-search-togglebox input {
	margin-left: 0.25em;
}
fieldset#mw-searchoptions table {
	float: left;
	margin-right: 3em;
}
fieldset#mw-searchoptions table td {
	padding-right: 1em;
}
.rtl fieldset#mw-searchoptions table td {
	padding-left: 1em;
	padding-right: 0;
}
body.rtl fieldset#mw-searchoptions table {
	margin-right: 0;
	margin-left: 3em;
	float: right;
}
fieldset#mw-searchoptions div.divider {
	clear: both;
	border-bottom: 1px solid #DDDDDD;
	padding-top: 0.5em;
	margin-bottom: 0.5em;
}

td#mw-search-menu {
	padding-left:6em;
	font-size:85%;
}

div#mw-search-interwiki {
	float: right;
	width: 18em;
	border-style: solid;
	border-color: #AAAAAA;
	border-width: 1px;
	margin-top: 2ex;
}

.rtl div#mw-search-interwiki {
	float: left;
}

div#mw-search-interwiki li {
	font-size: 95%;
}

.mw-search-interwiki-more {
	float: right;
	font-size: 90%;
}

.rtl .mw-search-interwiki-more {
	float: left;
}

div#mw-search-interwiki-caption {
	text-align: center;
	font-weight: bold;
	font-size: 95%;
}

.mw-search-interwiki-project {
	font-size: 97%;
	text-align: left;
	padding-left: 0.2em;
	padding-right: 0.15em;
	padding-bottom: 0.2em;
	padding-top: 0.15em;
	background-color:#ececec;
	border-top:1px solid #BBBBBB;
}

.rtl .mw-search-interwiki-project {
	text-align: right;
}

span.searchalttitle {
	font-size: 95%;
}

div.searchdidyoumean {
	font-size: 127%;
	margin-top: 0.8em;
	/* Note that this color won't affect the link, as desired. */
	color: #c00;
}

div.searchdidyoumean em {
	font-weight: bold;
}

.searchmatch {
	font-weight: bold;
}

table#mw-search-top-table {
	background-color: transparent;
}


/*
 * Advanced PowerSearch box
 */

td#mw-search-togglebox {
        text-align: right;
}

table#mw-search-powertable {
	width:100%;
}

form#powersearch {
	clear: both;
}


/*
 * UserRights stuff
 */
.mw-userrights-disabled {
	color: #888;
}

table.mw-userrights-groups * td,table.mw-userrights-groups * th {
	padding-right: 1.5em;
}

/*
 * OpenSearch ajax suggestions
 */
.os-suggest {
	overflow: auto;
	overflow-x: hidden;
	position: absolute;
	top: 0px;
	left: 0px;
	width: 0px;
	background-color: white;
	background-color: Window;
	border-style: solid;
	border-color: #AAAAAA;
	border-width: 1px;
	z-index:99;
	font-size:95%;
}

table.os-suggest-results {
	font-size: 95%;
	cursor: pointer;
	border: 0;
	border-collapse: collapse;
	width: 100%;
}

.os-suggest-result, .os-suggest-result-hl {
	white-space: nowrap;
	background-color: white;
	background-color: Window;
	color: black;
	color: WindowText;
	padding: 2px;
}
.os-suggest-result-hl,
.os-suggest-result-hl-webkit {
	background-color: #4C59A6;
	color: white;
}
.os-suggest-result-hl {
	/* System colors are misimplemented in Safari 3.0 and earlier,
	   making highlighted text illegible... */
	background-color: Highlight;
	color: HighlightText;
}

.os-suggest-toggle {
	position: relative;
	left: 1ex;
	font-size: 65%;
}
.os-suggest-toggle-def {
	position: absolute;
	top: 0px;
	left: 0px;
	font-size: 65%;
	visibility: hidden;
}

/* Page history styling */
/* the auto-generated edit comments */
.autocomment { color: gray; }
#pagehistory .history-user {
    margin-left: 0.4em;
    margin-right: 0.2em;
}
#pagehistory span.minor { font-weight: bold; }
#pagehistory li { border: 1px solid white; }
#pagehistory li.selected {
    background-color: #f9f9f9;
    border: 1px dashed #aaa;
}

/** Generic minor/bot/newpage styling */
.newpage, .minor, .bot {
	font-weight: bold;
}

/* Special:Contributions styling */
.mw-uctop {
	font-weight: bold;
}

/* Special:ListGroupRights styling */
table.mw-listgrouprights-table tr  {
	vertical-align: top;
}
.listgrouprights-revoked { text-decoration: line-through; }

/* Special:Statistics styling */
td.mw-statistics-numbers {
	text-align: right;
}

/* Special:SpecialPages styling */
h4.mw-specialpagesgroup {
	background-color: #dcdcdc;
	padding: 2px;
	margin: .3em 0em 0em 0em;
}
.mw-specialpagerestricted {
	font-weight: bold;
}

#shared-image-dup, #shared-image-conflict {
	font-style: italic;
}

/* Special:EmailUser styling */
table.mw-emailuser-table {
	width: 98%;
}
td#mw-emailuser-sender, td#mw-emailuser-recipient {
	font-weight: bold;
}

/* Special:Allpages styling */
table.allpageslist {
	background-color: transparent;
}
table.mw-allpages-table-form, table.mw-allpages-table-chunk {
	background-color: transparent;
	width: 100%;
}
td.mw-allpages-alphaindexline {
	text-align: right;
}
td.mw-allpages-nav, p.mw-allpages-nav {
	text-align: right;
	font-size: smaller;
	margin-bottom: 1em;
}
table.mw-allpages-table-form tr  {
	vertical-align: top;
}

/* Special:Prefixindex styling */
table#mw-prefixindex-list-table,
table#mw-prefixindex-nav-table {
	width: 98%;
	background-color: transparent;
}
td#mw-prefixindex-nav-form  {
	font-size: smaller;
	margin-bottom: 1em;
	text-align: right;
	vertical-align: top;
}

/*
 * Recreating deleted page warning
 * Reupload file warning
 * Page protection warning
 * incl. log entries for these warnings
 */
div.mw-warning-with-logexcerpt {
	padding: 3px;
	margin-bottom: 3px;
	border: 2px solid #2F6FAB;
}
div.mw-warning-with-logexcerpt ul li {
	font-size: 90%;
}

/* (show/hide) revision deletion links */
span.mw-revdelundel-link,
strong.mw-revdelundel-link {
	font-size: 90%;
}

/* feed links */
a.feedlink {
	background: url("images/feed-icon.png") center left no-repeat;
	padding-left: 16px;
}

/* Plainlinks - this can be used to switch 
 * off special external link styling */
.plainlinks a {
		background: none !important;
		padding: 0 !important;
}

/* wikitable class for skinning normal tables */
table.wikitable {
    margin: 1em 1em 1em 0;
    background: #f9f9f9;
    border: 1px #aaa solid;
    border-collapse: collapse;
}
.wikitable th, .wikitable td {
    border: 1px #aaa solid;
    padding: 0.2em;
}
.wikitable th {
    background: #f2f2f2;
    text-align: center;
}
.wikitable caption {
    font-weight: bold;
}

/* hide initially collapsed collapsable tables */
table.collapsed tr.collapsable {
	display: none;
}

/* success and error messages */
.success {
	color: green;
	font-size: larger;
}
.error {
	color: red;
	font-size: larger;
}
.errorbox, .successbox {
	font-size: larger;
	border: 2px solid;
	padding: .5em 1em;
	float: left;
	margin-bottom: 2em;
	color: #000;
}
.errorbox {
	border-color: red;
	background-color: #fff2f2;
}
.successbox {
	border-color: green;
	background-color: #dfd;
}
.errorbox h2, .successbox h2 {
	font-size: 1em;
	font-weight: bold;
	display: inline;
	margin: 0 .5em 0 0;
	border: none;
}

.visualClear {
	clear: both;
}

#mw_trackbacks {
	border: solid 1px #bbbbff;
	background-color: #eeeeff;
	padding: 0.2em;
}

/*
  Table pager (e.g. Special:Imagelist)
  - remove underlines from the navigation link
  - collapse borders
  - set the borders to outsets (similar to Special:Allmessages)
  - remove line wrapping for all td and th, set background color
  - restore line wrapping for the last two table cells (description and size)
*/
.TablePager { min-width: 80%; }
.TablePager_nav a { text-decoration: none; }
.TablePager { border-collapse: collapse; }
.TablePager, .TablePager td, .TablePager th { 
	border: 1px solid #aaaaaa;
	padding: 0 0.15em 0 0.15em;
}
.TablePager th { background-color: #eeeeff }
.TablePager td { background-color: #ffffff }
.TablePager tr:hover td { background-color: #eeeeff }

.imagelist td, .imagelist th { white-space: nowrap }
.imagelist .TablePager_col_links { background-color: #eeeeff }
.imagelist .TablePager_col_img_description { white-space: normal }
.imagelist th.TablePager_sort { background-color: #ccccff }

 /* Allmessages table */
#mw-allmessagestable .allmessages-customised td.am_default {
	background-color: #fcffc4;
}

#mw-allmessagestable tr.allmessages-customised:hover td.am_default {
	background-color: #faff90;
}

#mw-allmessagestable td.am_actual {
	background-color: #e2ffe2;
}

#mw-allmessagestable tr.allmessages-customised:hover + tr.allmessages-customised td.am_actual {
	background-color: #b1ffb1;
}

/* filetoc */
ul#filetoc {
	text-align: center;
	border: 1px solid #aaaaaa;
	background-color: #f9f9f9;
	padding: 5px;
	font-size: 95%;
	margin-bottom: 0.5em;
	margin-left: 0;
	margin-right: 0;
}

#filetoc li {
	display: inline;
	list-style-type: none;
	padding-right: 2em;
}

/* Classes for EXIF data display */
table.mw_metadata {
	font-size: 0.8em;
	margin-left: 0.5em;
	margin-bottom: 0.5em;
	width: 300px;
}

table.mw_metadata caption {
	font-weight: bold;
}

table.mw_metadata th {
	font-weight: normal;
}

table.mw_metadata td {
	padding: 0.1em;
}

table.mw_metadata {
	border: none;
	border-collapse: collapse;
}

table.mw_metadata td, table.mw_metadata th {
	text-align: center;
	border: 1px solid #aaaaaa;
	padding-left: 0.1em;
	padding-right: 0.1em;
}

table.mw_metadata th {
	background-color: #f9f9f9;
}

table.mw_metadata td {
	background-color: #fcfcfc;
}

/* Galleries */
table.gallery {
	border: 1px solid #ccc;
	margin: 2px;
	padding: 2px;
	background-color: white;
}

table.gallery tr {
	vertical-align: top;
}

table.gallery td {
	vertical-align: top;
	background-color: #f9f9f9;
	border: solid 2px white;
}
table.gallery caption {
	font-weight: bold;
}

div.gallerybox {
	margin: 2px;
}

div.gallerybox div.thumb {
	text-align: center;
	border: 1px solid #ccc;
	margin: 2px;
}

div.gallerytext {
	overflow: hidden;
	font-size: 94%;
	padding: 2px 4px;
}

table.mw-enhanced-rc {
	background: none;
	padding:0;
	border:0;
	border-spacing:0;
}
td.mw-enhanced-rc {
	white-space:nowrap;
	vertical-align:top;
	font-family:monospace
}

#mw-addcategory-prompt {
	display: inline;
	margin-left: 1em;
}
 
#mw-addcategory-prompt input {
	margin-left: 0.5em;
	margin-right: 0.5em;
}
 
.mw-remove-category {
	padding: 8px;
	background-image: url(images/remove.png);
	background-position: center center;
	background-repeat: no-repeat;
}
 
.mw-ajax-addcategory {
	padding-left: 20px;
	background-image: url(images/add.png);
	background-position: left center;
	background-repeat: no-repeat;
}

.mw-ajax-loader {
	background-image: url(images/ajax-loader.gif);
	background-position: center center;
	background-repeat: no-repeat;
	padding: 16px;
	position: relative;
	top: -16px;
}

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=commonPrint.css
Content-Type: text/css; charset=utf-8; name=commonPrint.css
Content-Location: http://es.wikipedia.org/skins-1.5/common/commonPrint.css?233zz2
Content-Transfer-Encoding: 8bit

/*
** MediaWiki Print style sheet for CSS2-capable browsers.
** Copyright Gabriel Wicke, http://www.aulinx.de/
**
** Derived from the plone (http://plone.org/) styles
** Copyright Alexander Limi
*/

/* Thanks to A List Apart (http://alistapart.com/) for useful extras */
a.stub,
a.new{ color:#ba0000; text-decoration:none; }

#toc { 
    /*border:1px solid #2f6fab;*/
    border:1px solid #aaaaaa;
    background-color:#f9f9f9;
    padding:5px;
}
.tocindent {
	margin-left: 2em;
}
.tocline {
	margin-bottom: 0px;
}

/* images */
div.floatright { 
    float: right;
    clear: right;
    margin: 0;
    position:relative;
    border: 0.5em solid White;
    border-width: 0.5em 0 0.8em 1.4em;
}
div.floatright p { font-style: italic;} 
div.floatleft { 
    float: left; 
    margin: 0.3em 0.5em 0.5em 0;
    position:relative;
    border: 0.5em solid White;
    border-width: 0.5em 1.4em 0.8em 0;
}
div.floatleft p { font-style: italic; } 
/* thumbnails */
div.thumb {
    margin-bottom: 0.5em;
    border-style: solid; border-color: White;
    width: auto;
    overflow: hidden;
}
div.thumb div {
    border:1px solid #cccccc;
    padding: 3px !important;
    background-color:#f9f9f9;
    font-size: 94%;
    text-align: center;
}
div.thumb div a img {
    border:1px solid #cccccc;
}
div.thumb div div.thumbcaption {
    border: none;
    padding: 0.3em 0 0.1em 0;
}
div.magnify { display: none; }
div.tright {
    float: right;
    clear: right;
    border-width: 0.5em 0 0.8em 1.4em;
}
div.tleft {
    float: left;
    margin-right:0.5em;
    border-width: 0.5em 1.4em 0.8em 0;
}
img.thumbborder {
	border: 1px solid #dddddd;
}

/* table standards */
table.rimage {
    float:right; 
    width:1pt; 
    position:relative;
    margin-left:1em; 
    margin-bottom:1em;
    text-align:center;
}

body {
    background: White;
    /*font-size: 11pt !important;*/
    color: Black;
    margin: 0;
    padding: 0;
}

.noprint,
div#jump-to-nav,
div.top,
div#column-one,
#colophon,
.editsection,
.toctoggle,
.tochidden,
div#f-poweredbyico,
div#f-copyrightico,
li#viewcount,
li#about,
li#disclaimer,
li#privacy,
#mw-hidden-catlinks {
    /* Hides all the elements irrelevant for printing */
    display: none;
}

ul { 
    list-style-type: square;
}

#content {
    background: none;
    border: none ! important;
    padding: 0 ! important;
    margin: 0 ! important;
}
#footer {
	background : white;
	color : black;
    border-top: 1px solid black;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: bold;
}

p, .documentDescription {
    margin: 1em 0 ! important;
    line-height: 1.2em;
}

.tocindent p {
	margin: 0 0 0 0 ! important;
}

pre {
    border: 1pt dashed black;
    white-space: pre;
    font-size: 8pt;
    overflow: auto;
    padding: 1em 0;
	background : white;
	color : black;
}

table.listing,
table.listing td {
    border: 1pt solid black;
    border-collapse: collapse;
}

a {
    color: Black !important;
    background: none !important;
    padding: 0 !important;
}

a:link, a:visited {
    color: #520;
    background: transparent;
    text-decoration: underline;
}

#content a.external.text:after, #content a.external.autonumber:after {
    /* Expand URLs for printing */
    content: " (" attr(href) ") ";
}

#globalWrapper {
    width: 100% !important;
    min-width: 0 !important;
}

#content {
	background : white;
	color : black;
}

#column-content {
    margin: 0 !important;
}

#column-content #content {
    padding: 1em;
    margin: 0 !important;
}
/* MSIE/Win doesn't understand 'inherit' */
a, a.external, a.new, a.stub {
	color: black ! important;
	text-decoration: none ! important;
}

/* Continue ... */
a, a.external, a.new, a.stub {
	color: inherit ! important;
	text-decoration: inherit ! important;
}

img { border: none; }
img.tex { vertical-align: middle; }
span.texhtml { font-family: serif; }

#siteNotice { display: none; }

div.gallerybox {
	border: 1px solid #cccccc;
	background-color:#f9f9f9;
	width:  150px;
}

div.gallerytext {
	overflow: visible;
}       

/*
** Diff rendering
*/
table.diff { background:white; }
td.diff-otitle { background:#ffffff; }
td.diff-ntitle { background:#ffffff; }
td.diff-addedline {
    background:#ccffcc;
    font-size: smaller;
    border: solid 2px black;
}
td.diff-deletedline {
    background:#ffffaa;
    font-size: smaller;
    border: dotted 2px black;
}
td.diff-context {
    background:#eeeeee;
    font-size: smaller;
}
.diffchange {
    color: silver;
    font-weight: bold;
    text-decoration: underline;
}

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline
Content-Type: image/jpeg
Content-Location: http://es.wikipedia.org/skins-1.5/monobook/headbg.jpg
Content-Transfer-Encoding: Base64

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
pqmqalFqtJUGrOhqk4mqUtJqampqa/RqapquqRhbcdOIbqoSWMoZnG01aiZjs3Gf
tdoO6lFFFFFFFFJRRRRRytyX9LwVBqmpqUclytrcHACgBSUqKJRRQALZYAFFABQB
SUUUlFFHK2XClAAAFABCoUAAAABQAFACoFAqKAhl2c6KXHu6AiZdkpKWkprGFopR
FSlAEUAARQAAABFEVAAAKKKKKKAKKTU1TU1KkAoqDWDWE1NTU0NTQ1NV1gqFSWZT
WzU1NTU1KWpOVv6WxSiiiiiikoooooooXkDgoopKWjkF4ABRAoACgABQBAUAEKKK
KSiilLAoAFBBQAAAAAARQAQUAAAEyZoopfLVgkpRQUsKAAAAAAAAAAAAAFAUUUUU
UUUUUUUAAAUUUmpRRRQFFFFFAJRRqUUUUUUUUUUampRSgBRRRRRRRRRRRRRQKBRS
UUUoAABRQAUAFAAAFFABRRRRQFFFAFFFAUUAUACoUUFAABQAUAAUAoIqSlFFFLEK
gUUUUAAoAioqCoKICiCgAAAAAAAAAAAAAAAIogKAAAAIoAigAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAD//Z

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://es.wikipedia.org/skins-1.5/monobook/bullet.gif
Content-Transfer-Encoding: Base64

R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4Sp
ADs=

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://es.wikipedia.org/skins-1.5/monobook/external.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZ
zP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcl
y0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4
AVnsAZubxDVmAAAAAElFTkSuQmCC

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://es.wikipedia.org/skins-1.5/monobook/user.gif
Content-Transfer-Encoding: Base64

R0lGODlhEAAQAKU5AFtJMlpJNFxIMU5OTm2XH3aIVJNkK5FmMJZnPbt6NIZzXId0
XpVwQZRzR5p7VI1+baZ3Tdl+Kt1/LIO2JYe5K4q8M4idYZKBbJK/QLqddZfDR5rF
TZ/HVqfMZanNacKVWuKVQ+ejVuelVu21bPC/e5+XjKOjo7rXhr3aiM+1kNi4icff
m8rio83jqNHmrtXotOPEl/HDg/LKjvfaq/ngut3Z1Nvrwd/tx/vqz///////////
/////////////////yH5BAEAAD8ALAAAAAAQABAAAAZiwJ9wSCwafxfF5VhUNBgH
AVO4cKRgHwNg+sjQZrFEYFpSyUihyGD6M4lAEgRbCKnPTaYRjjRYH00vLAUkFhoV
fkQmNy4rJxYcGBQTiEImNi0TKB0bHgSTRX2hon1zpaanP0EAOw==

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=main.css
Content-Type: text/css; charset=utf-8; name=main.css
Content-Location: http://es.wikipedia.org/skins-1.5/monobook/main.css?233zz2
Content-Transfer-Encoding: 8bit

/*
** MediaWiki 'monobook' style sheet for CSS2-capable browsers.
** Copyright Gabriel Wicke - http://wikidev.net/
** License: GPL (http://www.gnu.org/copyleft/gpl.html)
**
** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John
** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher,
** Michael Zeltner and Geir Bækholt)
** All you guys rock :)
*/

#column-content {
	width: 100%;
	float: right;
	margin: 0 0 .6em -12.2em;
	padding: 0;
}
#content {
	margin: 2.8em 0 0 12.2em;
	padding: 0 1em 1em 1em;
	position: relative;
	z-index: 2;
}
#column-one {
	padding-top: 160px;
}
#content {
	background: white;
	color: black;
	border: 1px solid #aaa;
	border-right: none;
	line-height: 1.5em;
}
/* the left column width is specified in class .portlet */

/* Font size:
** We take advantage of keyword scaling- browsers won't go below 9px
** More at http://www.w3.org/2003/07/30-font-size
** http://style.cleverchimp.com/font_size_intervals/altintervals.html
*/

body {
	font: x-small sans-serif;
	background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat;
	color: black;
	margin: 0;
	padding: 0;
}

/* scale back up to a sane default */
#globalWrapper {
	font-size: 127%;
	width: 100%;
	margin: 0;
	padding: 0;
}

/* general styles */

table {
	font-size: 100%;
	color: black;
	/* we don't want the bottom borders of <h2>s to be visible through
	   floated tables */
	background-color: white;
}
fieldset table {
	/* but keep table layouts in forms clean... */
	background: none;
}
a {
	text-decoration: none;
	color: #002bb8;
	background: none;
}
a:visited {
	color: #5a3696;
}
a:active {
	color: #faa700;
}
a:hover {
	text-decoration: underline;
}
a.stub {
	color: #772233;
}
a.new, #p-personal a.new {
	color: #ba0000;
}
a.new:visited, #p-personal a.new:visited {
	color: #a55858;
}

img {
	border: none;
	vertical-align: middle;
}
p {
	margin: .4em 0 .5em 0;
	line-height: 1.5em;
}
p img {
	margin: 0;
}

hr {
	height: 1px;
	color: #aaa;
	background-color: #aaa;
	border: 0;
	margin: .2em 0 .2em 0;
}

h1, h2, h3, h4, h5, h6 {
	color: black;
	background: none;
	font-weight: normal;
	margin: 0;
	padding-top: .5em;
	padding-bottom: .17em;
	border-bottom: 1px solid #aaa;
}
h1 { font-size: 188%; }
h1 .editsection { font-size: 53%; }
h2 { font-size: 150%; }
h2 .editsection { font-size: 67%; }
h3, h4, h5, h6 {
	border-bottom: none;
	font-weight: bold;
}
h3 { font-size: 132%; }
h3 .editsection { font-size: 76%; font-weight: normal; }
h4 { font-size: 116%; }
h4 .editsection { font-size: 86%; font-weight: normal; }
h5 { font-size: 100%; }
h5 .editsection { font-weight: normal; }
h6 { font-size: 80%;  }
h6 .editsection { font-size: 125%; font-weight: normal; }

ul {
	line-height: 1.5em;
	list-style-type: square;
	margin: .3em 0 0 1.5em;
	padding: 0;
	list-style-image: url(bullet.gif);
}
ol {
	line-height: 1.5em;
	margin: .3em 0 0 3.2em;
	padding: 0;
	list-style-image: none;
}
li {
	margin-bottom: .1em;
}
dt {
	font-weight: bold;
	margin-bottom: .1em;
}
dl {
	margin-top: .2em;
	margin-bottom: .5em;
}
dd {
	line-height: 1.5em;
	margin-left: 2em;
	margin-bottom: .1em;
}

fieldset {
	border: 1px solid #2f6fab;
	margin: 1em 0 1em 0;
	padding: 0 1em 1em;
	line-height: 1.5em;
}
fieldset.nested {
	margin: 0 0 0.5em 0;
	padding: 0 0.5em 0.5em;
}
legend {
	padding: .5em;
	font-size: 95%;
}
form {
	border: none;
	margin: 0;
}

textarea {
	width: 100%;
	padding: .1em;
}

input.historysubmit {
	padding: 0 .3em .3em .3em !important;
	font-size: 94%;
	cursor: pointer;
	height: 1.7em !important;
	margin-left: 1.6em;
}
select {
	vertical-align: top;
}
abbr, acronym, .explain {
	border-bottom: 1px dotted black;
	color: black;
	background: none;
	cursor: help;
}
q {
	font-family: Times, "Times New Roman", serif;
	font-style: italic;
}
/* disabled for now
blockquote {
	font-family: Times, "Times New Roman", serif;
	font-style: italic;
}*/
code {
	background-color: #f9f9f9;
}
pre {
	padding: 1em;
	border: 1px dashed #2f6fab;
	color: black;
	background-color: #f9f9f9;
	line-height: 1.1em;
}

/*
** the main content area
*/

#siteSub {
	display: none;
}
#jump-to-nav {
	display: none;
}

#contentSub, #contentSub2 {
	font-size: 84%;
	line-height: 1.2em;
	margin: 0 0 1.4em 1em;
	color: #7d7d7d;
	width: auto;
}
span.subpages {
	display: block;
}

/* Some space under the headers in the content area */
#bodyContent h1, #bodyContent h2 {
	margin-bottom: .6em;
}
#bodyContent h3, #bodyContent h4, #bodyContent h5 {
	margin-bottom: .3em;
}
#firstHeading {
	margin-bottom: .1em;
	/* These two rules hack around bug 2013 (fix for more limited bug 11325).
	   When bug 2013 is fixed properly, they should be removed. */
	line-height: 1.2em;
	padding-bottom: 0;
}

/* user notification thing */
.usermessage {
	background-color: #ffce7b;
	border: 1px solid #ffa500;
	color: black;
	font-weight: bold;
	margin: 2em 0 1em;
	padding: .5em 1em;
	vertical-align: middle;
}
#siteNotice {
	text-align: center;
	font-size: 95%;
	padding: 0 0.9em;
}
#siteNotice p {
	margin: 0;
	padding: 0;
}

.catlinks {
	border: 1px solid #aaa;
	background-color: #f9f9f9;
	padding: 5px;
	margin-top: 1em;
	clear: both;
}
/* currently unused, intended to be used by a metadata box
in the bottom-right corner of the content area */
.documentDescription {
	/* The summary text describing the document */
	font-weight: bold;
	display: block;
	margin: 1em 0;
	line-height: 1.5em;
}
.documentByLine {
	text-align: right;
	font-size: 90%;
	clear: both;
	font-weight: normal;
	color: #76797c;
}

/* emulate center */
.center {
	width: 100%;
	text-align: center;
}
*.center * {
	margin-left: auto;
	margin-right: auto;
}
/* small for tables and similar */
.small, .small * {
	font-size: 94%;
}
table.small {
	font-size: 100%;
}

/*
** content styles
*/

#toc,
.toc,
.mw-warning {
	border: 1px solid #aaa;
	background-color: #f9f9f9;
	padding: 5px;
	font-size: 95%;
}
#toc h2,
.toc h2 {
	display: inline;
	border: none;
	padding: 0;
	font-size: 100%;
	font-weight: bold;
}
#toc #toctitle,
.toc #toctitle,
#toc .toctitle,
.toc .toctitle {
	text-align: center;
}
#toc ul,
.toc ul {
	list-style-type: none;
	list-style-image: none;
	margin-left: 0;
	padding-left: 0;
	text-align: left;
}
#toc ul ul,
.toc ul ul {
	margin: 0 0 0 2em;
}
#toc .toctoggle,
.toc .toctoggle {
	font-size: 94%;
}

.mw-warning {
	margin-left: 50px;
	margin-right: 50px;
	text-align: center;
}

/* images */
div.floatright, table.floatright {
	clear: right;
	float: right;
	position: relative;
	margin: 0 0 .5em .5em;
	border: 0;
/*
	border: .5em solid white;
	border-width: .5em 0 .8em 1.4em;
*/
}
div.floatright p { font-style: italic; }
div.floatleft, table.floatleft {
	float: left;
	clear: left;
	position: relative;
	margin: 0 .5em .5em 0;
	border: 0;
/*
	margin: .3em .5em .5em 0;
	border: .5em solid white;
	border-width: .5em 1.4em .8em 0;
*/
}
div.floatleft p { font-style: italic; }
/* thumbnails */
div.thumb {
	margin-bottom: .5em;
	border-style: solid;
	border-color: white;
	width: auto;
}
div.thumbinner {
	border: 1px solid #ccc;
	padding: 3px !important;
	background-color: #f9f9f9;
	font-size: 94%;
	text-align: center;
	overflow: hidden;
}
html .thumbimage {
	border: 1px solid #ccc;
}
html .thumbcaption {
	border: none;
	text-align: left;
	line-height: 1.4em;
	padding: 3px !important;
	font-size: 94%;
}
div.magnify {
	float: right;
	border: none !important;
	background: none !important;
}
div.magnify a, div.magnify img {
	display: block;
	border: none !important;
	background: none !important;
}
div.tright {
	clear: right;
	float: right;
	border-width: .5em 0 .8em 1.4em;
}
div.tleft {
	float: left;
	clear: left;
	margin-right: .5em;
	border-width: .5em 1.4em .8em 0;
}
img.thumbborder {
	border: 1px solid #dddddd;
}
.hiddenStructure {
	display: none;
}

/*
** classes for special content elements like town boxes
** intended to be referenced directly from the wiki src
*/

/*
** User styles
*/
/* table standards */
table.rimage {
	float: right;
	position: relative;
	margin-left: 1em;
	margin-bottom: 1em;
	text-align: center;
}
.toccolours {
	border: 1px solid #aaa;
	background-color: #f9f9f9;
	padding: 5px;
	font-size: 95%;
}

/*
** edit views etc
*/
.special li {
	line-height: 1.4em;
	margin: 0;
	padding: 0;
}

/*
** keep the whitespace in front of the ^=, hides rule from konqueror
** this is css3, the validator doesn't like it when validating as css2
*/
#bodyContent a.external,
#bodyContent a.external[href ^="gopher://"] {
	background: url(external.png) center right no-repeat;
	padding: 0 13px;
}
.rtl #bodyContent a.external,
.rtl #bodyContent a.external[href ^="gopher://"] {
	background-image: url(external-rtl.png);
}
#bodyContent a.external[href ^="https://"],
.link-https {
	background: url(lock_icon.gif) center right no-repeat;
	padding: 0 16px;
}
#bodyContent a.external[href ^="mailto:"],
.link-mailto {
	background: url(mail_icon.gif) center right no-repeat;
	padding: 0 18px;
}
#bodyContent a.external[href ^="news://"] {
	background: url(news_icon.png) center right no-repeat;
	padding: 0 18px;
}
#bodyContent a.external[href ^="ftp://"],
.link-ftp {
	background: url(file_icon.gif) center right no-repeat;
	padding: 0 18px;
}
#bodyContent a.external[href ^="irc://"],
.link-irc {
	background: url(discussionitem_icon.gif) center right no-repeat;
	padding: 0 18px;
}
#bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"],
#bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"],
#bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"],
#bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"],
#bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"],
#bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"],
.link-audio {
	background: url("audio.png") center right no-repeat;
	padding: 0 13px;
}
#bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"],
#bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"],
#bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"],
#bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"],
.link-video {
	background: url("video.png") center right no-repeat;
	padding: 0 13px;
}
#bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"],
#bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"],
#bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"],
.link-document {
	background: url("document.png") center right no-repeat;
	padding: 0 12px;
}

/* for rtl wikis */
.rtl #bodyContent a.external {
	background-position: left;
	padding-right: 0;
}
.rtl a.feedlink {
	background-position: right;
	padding-right: 16px;
	padding-left: 0;
}

/* correction for ltr wikis */
.ltr #bodyContent a.external {
	padding-left: 0;
}

/* disable interwiki styling */
#bodyContent a.extiw,
#bodyContent a.extiw:active {
	color: #36b;
}
#bodyContent a.external {
	color: #36b;
}
/*
** Structural Elements
*/

/*
** general portlet styles (elements in the quickbar)
*/
.portlet {
	border: none;
	margin: 0 0 .5em;
	padding: 0;
	float: none;
	width: 11.6em;
	overflow: hidden;
}
.portlet h4 {
	font-size: 95%;
	font-weight: normal;
	white-space: nowrap;
}
.portlet h5 {
	background: transparent;
	padding: 0 1em 0 .5em;
	display: inline;
	height: 1em;
	text-transform: lowercase;
	font-size: 91%;
	font-weight: normal;
	white-space: nowrap;
}
.portlet h6 {
	background: #ffae2e;
	border: 1px solid #2f6fab;
	border-style: solid solid none solid;
	padding: 0 1em 0 1em;
	text-transform: lowercase;
	display: block;
	font-size: 1em;
	height: 1.2em;
	font-weight: normal;
	white-space: nowrap;
}
.pBody {
	font-size: 95%;
	background-color: white;
	color: black;
	border-collapse: collapse;
	border: 1px solid #aaa;
	padding: 0 .8em .3em .5em;
}
.portlet h1,
.portlet h2,
.portlet h3,
.portlet h4 {
	margin: 0;
	padding: 0;
}
.portlet ul {
	line-height: 1.5em;
	list-style-type: square;
	list-style-image: url(bullet.gif);
	font-size: 95%;
}
.portlet li {
	padding: 0;
	margin: 0;
}

/*
** Logo properties
*/

#p-logo {
	top: 0;
	left: 0;
	position: absolute; /*needed to use z-index */
	z-index: 3;
	height: 155px;
	width: 12em;
	overflow: visible;
}
#p-logo h5 {
	display: none;
}
#p-logo a,
#p-logo a:hover {
	display: block;
	height: 155px;
	width: 12.2em;
	background-repeat: no-repeat;
	background-position: 35% 50% !important;
	text-decoration: none;
}

/*
** Search portlet
*/
#p-search {
	position: relative;
	z-index: 3;
}
input.searchButton {
	margin-top: 1px;
	font-size: 95%;
}
#searchGoButton {
	padding-left: .5em;
	padding-right: .5em;
	font-weight: bold;
}
#searchInput {
	width: 10.9em;
	margin: 0;
	font-size: 95%;
}
#p-search .pBody {
	padding: .5em .4em .4em .4em;
	text-align: center;
}
#p-search #searchform div div {
	margin-top: .4em;
	font-size: 95%;
}
/*
** the personal toolbar
*/
#p-personal {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
}
#p-personal {
	width: 100%;
	white-space: nowrap;
	padding: 0;
	margin: 0;
	border: none;
	background: none;
	overflow: visible;
	line-height: 1.2em;
}
#p-personal h5 {
	display: none;
}
#p-personal .portlet,
#p-personal .pBody {
	z-index: 0;
	padding: 0;
	margin: 0;
	border: none;
	overflow: visible;
	background: none;
}
/* this is the ul contained in the portlet */
#p-personal ul {
	border: none;
	line-height: 1.4em;
	color: #2f6fab;
	padding: 0 2em 0 3em;
	margin: 0;
	text-align: right;
	list-style: none;
	z-index: 0;
	background: none;
	cursor: default;
}
#p-personal li {
	z-index: 0;
	border: none;
	padding: 0;
	display: inline;
	color: #2f6fab;
	margin-left: 1em;
	line-height: 1.2em;
	background: none;
}
#p-personal li a {
	text-decoration: none;
	color: #005896;
	padding-bottom: .2em;
	background: none;
}
#p-personal li a:hover {
	background-color: white;
	padding-bottom: .2em;
	text-decoration: none;
}
#p-personal li.active a:hover {
	background-color: transparent;
}
/* the icon in front of the user name, single quotes
in bg url to hide it from iemac */
li#pt-userpage,
li#pt-anonuserpage,
li#pt-login {
	background: url(user.gif) top left no-repeat;
	padding-left: 20px;
	text-transform: none;
}
#p-personal ul {
	text-transform: lowercase;
}
#p-personal li.active {
	font-weight: bold;
}
/*
** the page-related actions- page/talk, edit etc
*/
#p-cactions {
	position: absolute;
	top: 1.3em;
	left: 11.5em;
	margin: 0;
	white-space: nowrap;
	width: 76%;
	line-height: 1.1em;
	overflow: visible;
	background: none;
	border-collapse: collapse;
	padding-left: 1em;
	list-style: none;
	font-size: 95%;
}
#p-cactions ul {
	list-style: none;
}
#p-cactions li {
	display: inline;
	border: 1px solid #aaa;
	border-bottom: none;
	padding: 0 0 .1em 0;
	margin: 0 .3em 0 0;
	overflow: visible;
	background: white;
}
#p-cactions li.selected {
	border-color: #fabd23;
	padding: 0 0 .2em 0;
	font-weight: bold;
}
#p-cactions li a {
	background-color: #fbfbfb;
	color: #002bb8;
	border: none;
	padding: 0 .8em .3em;
	position: relative;
	z-index: 0;
	margin: 0;
	text-decoration: none;
}
#p-cactions li.selected a {
	z-index: 3;
	padding: 0 1em .2em!important;
	background-color: white;
}
#p-cactions .new a {
	color: #ba0000;
}
#p-cactions li a:hover {
	z-index: 3;
	text-decoration: none;
	background-color: white;
}
#p-cactions h5 {
	display: none;
}
#p-cactions li.istalk {
	margin-right: 0;
}
#p-cactions li.istalk a {
	padding-right: .5em;
}
#p-cactions #ca-addsection a {
	padding-left: .4em;
	padding-right: .4em;
}
/* offsets to distinguish the tab groups */
li#ca-talk {
	margin-right: 1.6em;
}
li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print {
	margin-left: 1.6em;
}
#p-cactions .pBody {
	font-size: 1em;
	background-color: transparent;
	color: inherit;
	border-collapse: inherit;
	border: 0;
	padding: 0;
}
#p-cactions .hiddenStructure {
	display: none;
}
#p-cactions li a {
	text-transform: lowercase;
}

#p-lang {
	position: relative;
	z-index: 3;
}

/* Override text-transform on languages where capitalization is significant */
.capitalize-all-nouns .portlet h5,
.capitalize-all-nouns .portlet h6,
.capitalize-all-nouns #p-personal ul,
.capitalize-all-nouns #p-cactions ul li a {
	text-transform: none;
}

/* TODO: #t-iscite is only used by the Cite extension, come up with some
 * system which allows extensions to add to this file on the fly
 */
#t-ispermalink, #t-iscite {
	color: #999;
}
/*
** footer
*/
#footer {
	background-color: white;
	border-top: 1px solid #fabd23;
	border-bottom: 1px solid #fabd23;
	margin: .6em 0 1em 0;
	padding: .4em 0 1.2em 0;
	text-align: center;
	font-size: 90%;
}
#footer li {
	display: inline;
	margin: 0 1.3em;
}
#f-poweredbyico, #f-copyrightico {
	margin: 0 8px;
	position: relative;
	top: -2px; /* Bump it up just a tad */
}
#f-poweredbyico {
	float: right;
	height: 1%;
}
#f-copyrightico {
	float: left;
	height: 1%;
}

.mw-htmlform-submit {
	font-weight: bold;
	padding-left: .3em;
	padding-right: .3em;
	margin-right: 2em;
}

/* js pref toc */
#preftoc {
	margin: 0;
	padding: 0;
	width: 100%;
	clear: both;
}
#preftoc li {
	background-color: #f0f0f0;
	color: #000;
}
#preftoc li {
	margin: 1px -2px 1px 2px;
	float: left;
	padding: 2px 0 3px 0;
	border: 1px solid #fff;
	border-right-color: #716f64;
	border-bottom: 0;
	position: relative;
	white-space: nowrap;
	list-style-type: none;
	list-style-image: none;
	z-index: 3;
}
#preftoc li.selected {
	font-weight: bold;
	background-color: #f9f9f9;
	border: 1px solid #aaa;
	border-bottom: none;
	cursor: default;
	top: 1px;
	padding-top: 2px;
	margin-right: -3px;
}
#preftoc > li.selected {
	top: 2px;
}
#preftoc a,
#preftoc a:active {
	display: block;
	color: #000;
	padding: 0 .7em;
	position: relative;
	text-decoration: none;
}
#preftoc li.selected a {
	cursor: default;
	text-decoration: none;
}
#preferences {
	margin: 0;
	border: 1px solid #aaa;
	clear: both;
	padding: 1.5em;
	background-color: #F9F9F9;
}
.prefsection {
	border: none;
	padding: 0;
	margin: 0;
}

.prefsection legend {
	font-weight: bold;   
}
.prefsection table, .prefsection legend {
	background-color: #F9F9F9;
}
.mainLegend {
	display: none;
}
td.htmlform-tip {
	font-size: x-small;
	padding: .2em 2em;
	color: #666;
}

.preferences-login {
	clear: both;
	margin-bottom: 1.5em;
}

.prefcache {
	font-size: 90%;
	margin-top: 2em;
}

div#userloginForm form,
div#userlogin form#userlogin2 {
	margin: 0 3em 1em 0;
	border: 1px solid #aaa;
	clear: both;
	padding: 1.5em 2em;
	background-color: #f9f9f9;
	float: left;
}
.rtl div#userloginForm form,
.rtl div#userlogin form#userlogin2 {
	float: right;
}

div#userloginForm table,
div#userlogin form#userlogin2 table {
	background-color: #f9f9f9;
}

div#userloginForm h2,
div#userlogin form#userlogin2 h2 {
	padding-top: 0;
}

div#userlogin .captcha,
div#userloginForm .captcha {
	border: 1px solid #bbb;
	padding: 1.5em 2em;
	background-color: white;
}

#loginend, #signupend {
	clear: both;
}

#userloginprompt, #languagelinks {
	font-size: 85%;
}

#login-sectiontip {
	font-size: 85%;
	line-height: 1.2;
	padding-top: 2em;
}

#userlogin .loginText, #userlogin .loginPassword {
	width: 12em;
}

#userloginlink a, #wpLoginattempt, #wpCreateaccount {
	font-weight: bold;
}

/*
** IE/Mac fixes, hope to find a validating way to move this
** to a separate stylesheet. This would work but doesn't validate:
** @import("IEMacFixes.css");
*/
/* tabs: border on the a, not the div */
* > html #p-cactions li { border: none; }
* > html #p-cactions li a {
	border: 1px solid #aaa;
	border-bottom: none;
}
* > html #p-cactions li.selected a { border-color: #fabd23; }
/* footer icons need a fixed width */
* > html #f-poweredbyico,
* > html #f-copyrightico { width: 88px; }
* > html #bodyContent,
* > html #bodyContent pre {
	overflow-x: auto;
	width: 100%;
	padding-bottom: 25px;
}

/* more IE fixes */
/* float/negative margin brokenness */
* html #footer {margin-top: 0;}
* html #column-content {
	display: inline;
	margin-bottom: 0;
}
* html div.editsection { font-size: smaller; }
#pagehistory li.selected { position: relative; }

/* Mac IE 5.0 fix; floated content turns invisible */
* > html #column-content {
	float: none;
}
* > html #column-one {
	position: absolute;
	left: 0;
	top: 0;
}
* > html #footer {
	margin-left: 13.2em;
}
.redirectText {
	font-size: 150%;
	margin: 5px;
}

.printfooter {
	display: none;
}


div.patrollink {
	clear: both;
}

.sharedUploadNotice {
	font-style: italic;
}

span.updatedmarker {
	color: black;
	background-color: #0f0;
}

.previewnote {
	color: #c00;
	margin-bottom: 1em;
}

.previewnote p {
	text-indent: 3em;
	margin: 0.8em 0;
}

.editExternally {
	border: 1px solid gray;
	background-color: #ffffff;
	padding: 3px;
	margin-top: 0.5em;
	float: left;
	font-size: small;
	text-align: center;
}
.editExternallyHelp {
	font-style: italic;
	color: gray;
}

.toggle {
	margin-left: 2em;
	text-indent: -2em;
}

input#wpSummary {
	width: 80%;
}

/* @bug 1714 */
input#wpSave, input#wpDiff {
	margin-right: 0.33em;
}

#wpSave {
	font-weight: bold;
}

/* Classes for article validation */

table.revisionform_default {
	border: 1px solid #000000;
}

table.revisionform_focus {
	border: 1px solid #000000;
	background-color:#00BBFF;
}

tr.revision_tr_default {
	background-color:#EEEEEE;
}

tr.revision_tr_first {
	background-color:#DDDDDD;
}

p.revision_saved {
	color: green;
	font-weight:bold;
}

/* noarticletext */
div.noarticletext {
	border: 1px solid #ccc;
	background: #fff;
	padding: .2em 1em;
	color: #000;
}

div#searchTargetContainer {
	left:       10px;
	top:        10px;
	width:      90%;
	background: white;
}

div#searchTarget {
	padding:    3px;
	margin:     5px;
	background: #F0F0F0;
	border:     solid 1px blue;
}

div#searchTarget ul li {
	list-style: none;
}

div#searchTarget ul li:before {
	color: orange;
	content: "\00BB \0020";
}

div#searchTargetHide {
	float:right;
	border:solid 1px black;
	background:#DCDCDC;
	padding:2px;
}

#powersearch p {
	margin-top:0px;
}

div.multipageimagenavbox {
   border: solid 1px silver;
   padding: 4px;
   margin: 1em;
   background: #f0f0f0;
}

div.multipageimagenavbox div.thumb {
   border: none;
   margin-left: 2em;
   margin-right: 2em;
}

div.multipageimagenavbox hr {
   margin: 6px;
}

table.multipageimage td {
   text-align: center;
}

.templatesUsed { margin-top: 1.5em; }

.mw-summary-preview {
	margin: 0.1em 0;
}

/* Friendlier slave lag warnings */
div.mw-lag-warn-normal,
div.mw-lag-warn-high {
	padding: 3px;
	text-align: center;
	margin: 3px auto;
}
div.mw-lag-warn-normal {
	border: 1px solid #FFCC66;
	background-color: #FFFFCC;
}
div.mw-lag-warn-high {
	font-weight: bold;
	border: 2px solid #FF0033;
	background-color: #FFCCCC;
}

.MediaTransformError {
	background-color: #ccc;
	padding: 0.1em;
}
.MediaTransformError td {
	text-align: center;
	vertical-align: middle;
	font-size: 90%;
}

/* God-damned hack for the crappy layout */
.os-suggest {
	font-size: 127%;
}

/* Sometimes people don't want personal tools to be lowercase! */
.no-text-transform {
	text-transform: none;
}

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=main.css
Content-Type: text/css; charset=utf-8; name=main.css
Content-Location: http://es.wikipedia.org/skins-1.5/chick/main.css?233zz2
Content-Transfer-Encoding: 8bit

/*
** MediaWiki 'chick' style sheet for PDAs or other small-screen devices.
** Copyright Timwi
** License: GPL (http://www.gnu.org/copyleft/gpl.html)
**
** Loosely based on Monobook by Gabriel Wicke
*/

body {
    font-family: sans-serif;
    color: Black;
    margin: 0;
    padding: 0.3em;
}

a { color: #002bb8; }
a:visited { color: #5a3696; }
a:active { color: #ffa500; }
a.stub { color: #772233; }
a.new,
#p-personal a.new { color:#ba0000; }
a.new:visited,
#p-personal a.new:visited { color:#a55858; }

img {
    border: none;
    vertical-align: middle;
}
p {
    margin: 0.4em 0em 0.5em 0em;
    line-height: 1.5em;
}

p img { margin: 0; }

hr {
    height: 1px;
    color: #aaaaaa;
    background-color: #aaaaaa;
    border: 0;
    margin: 0.2em 0 0.2em 0;
}

h1, h2, h3, h4, h5, h6 {
    color: Black;
    background: none;
    font-weight: normal;
    margin: 0;
    padding-top: 0.5em;
    padding-bottom: 0.17em;
    border-bottom: 1px solid #aaaaaa;
}
.editsection {
	font-weight: normal;
}
h1 { font-size: 188%; }
h1 .editsection { font-size: 53.2%; }
h2 { font-size: 150%; }
h2 .editsection { font-size: 66.7%; }
h3, h4, h5, h6 {
    border-bottom: none;
    font-weight: bold;
}
h3 { font-size: 132%; }
h3 .editsection { font-size: 75.8%; }
h4 { font-size: 116%; }
h4 .editsection { font-size: 86.2%; }
h5 { font-size: 100%; }
h6 { font-size: 80%;  }
h6 .editsection { font-size: 125%; }

ul {
    line-height: 1.5em;
    margin: 0.3em 0 0 1.5em;
    padding:0;
}
ol {
    line-height: 1.5em;
    margin: 0.3em 0 0 3.2em;
    padding:0;
    list-style-image: none;
}
li { margin-bottom: 0.1em; }
dt {
    font-weight: bold;
    margin-bottom: 0.1em;
}
dl{
    margin-top: 0.2em;
    margin-bottom: 0.5em;
}
dd {
    line-height: 1.5em;
    margin-left: 2em;
    margin-bottom: 0.1em;
}

fieldset {
    border: 1px solid #2f6fab;
    margin: 1em 0em 1em 0em;
    padding: 0em 1em 1em 1em;
    line-height: 1.5em;
}
legend {
    background: White;
    padding: 0.5em;
    font-size: 95%;
}
form {
    border: none;
    margin: 0;
}

textarea {
    border: 1px solid #2f6fab;
    color: Black;
    background-color: white;
    width: 100%;
    padding: 0.1em;
    overflow: auto;
}
/* hide this from ie/mac and konq2.2 */
@media All {
    head:first-child+body input {
        visibility: visible;
        border: 1px solid #2f6fab;
        color: Black;
        background-color: white;
        vertical-align: middle;
        padding: 0.2em;
    }
}
input.historysubmit {
    padding: 0 0.3em 0.3em 0.3em !important;
    font-size: 94%;
    cursor: pointer;
    height: 1.7em !important;
    margin-left: 1.6em;
}
input[type="radio"],
input[type="checkbox"] { border:none; }
select {
    border: 1px solid #2f6fab;
    color: Black;
    vertical-align: top;
}
abbr, acronym, .explain {
    border-bottom: 1px dotted Black;
    color: Black;
    background: none;
    cursor: help;
}
q {
    font-family: Times, "Times New Roman", serif;
    font-style: italic;
}
code { background-color: #f9f9f9; }
pre {
    padding: 1em;
    border: 1px dashed #2f6fab;
    color: Black;
    background-color: #f9f9f9;
    line-height: 1.1em;
}

/*
** the main content area
*/

span.subpages { display: block; }

/* Some space under the headers in the content area */
#bodyContent h1, #bodyContent h2 { margin-bottom:0.6em; }
#bodyContent h3,
#bodyContent h4,
#bodyContent h5 {
    margin-bottom: 0.3em;
}
#firstHeading { margin-bottom:0.1em; }

/* user notification thing */
.usermessage {
    background-color: #ffce7b;
    border: 1px solid #ffa500;
    color: Black;
    font-weight: bold;
    margin: 0.1em 0 0 0;
    padding: 2px 5px;
    vertical-align: middle;
}
#siteNotice {
    text-align: center;
    font-size: 95%;
    padding: 0 0.9em 0 0.9em;
}
#siteNotice p { margin: 0; padding: 0; }
.error {
    color: red;
    font-size: larger;
}
.catlinks {
    border:1px solid #aaaaaa;
    background-color:#f9f9f9;
    padding: 2px 5px;
    margin: 0.1em 0 0 0;
    clear: both;
}
.catlinks { margin: 0; padding: 0; }


/* currently unused, intended to be used by a metadata box
in the bottom-right corner of the content area */
.documentDescription {
    /* The summary text describing the document */
    font-weight: bold;
    display: block;
    margin: 1em 0em;
    line-height: 1.5em;
}
.documentByLine {
    text-align: right;
    font-size: 90%;
    clear: both;
    font-weight: normal;
    color: #76797c;
}

/* emulate center */
.center {
    width: 100%;
    text-align: center;
}
*.center * {
    margin-left: auto;
    margin-right: auto;
}
/* small for tables and similar */
.small, .small * { font-size: 94%; }
table.small { font-size: 100% }

/*
** content styles
*/

#toc {
    /*border:1px solid #2f6fab;*/
    border:1px solid #aaaaaa;
    background-color:#f9f9f9;
    padding:5px;
    font-size: 95%;
}
#toc ul { margin-left: 2em; }
#toc .toctoggle { font-size: 94%; }
#toc .editsection {
    margin-top: 0.7em;
    font-size: 94%;
}

/* images */
div.floatright, table.floatright {
    clear: right;
    float: right;
    margin: 0;
    position: relative;
    border: 0.5em solid White;
    border-width: 0.5em 0 0.8em 1.4em;
}
div.floatright p { font-style: italic; }
div.floatleft, table.floatleft {
    float: left;
    clear: left;
    margin: 0.3em 0.5em 0.5em 0;
    position: relative;
    border: 0.5em solid White;
    border-width: 0.5em 1.4em 0.8em 0;
}
div.floatleft p { font-style: italic; }
/* thumbnails */
div.thumb {
    margin-bottom: 0.5em;
    border-style: solid; border-color: White;
    width: auto;
}
div.thumb div {
    border:1px solid #cccccc;
    padding: 3px !important;
    background-color:#f9f9f9;
    font-size: 94%;
    text-align: center;
    overflow: hidden;
}
div.thumb div a img {
    border:1px solid #cccccc;
}
div.thumb div div.thumbcaption {
    border: none;
    text-align: left;
    line-height: 1.4em;
    padding: 0.3em 0 0.1em 0;
}
div.magnify {
    float: right;
    border: none !important;
    background: none !important;
}
div.magnify a, div.magnify img {
    display: block;
    border: none !important;
    background: none !important;
}
div.tright {
    clear: right;
    float: right;
    border-width: 0.5em 0 0.8em 1.4em;
}
div.tleft {
    float: left;
    clear: left;
    margin-right:0.5em;
    border-width: 0.5em 1.4em 0.8em 0;
}
img.thumbborder {
	border: 1px solid #dddddd;
}

.hiddenStructure {
    display: none;
}

/*
** classes for special content elements like town boxes
** intended to be referenced directly from the wiki src
*/

/*
** User styles
*/
/* table standards */
table.rimage {
    float:right;
    position:relative;
    margin-left:1em;
    margin-bottom:1em;
    text-align:center;
}
.toccolours {
    border:1px solid #aaaaaa;
    background-color:#f9f9f9;
    padding:5px;
    font-size: 95%;
}

/*
** edit views etc
*/
.special li {
    line-height: 1.4em;
    margin: 0;
    padding: 0;
}

a.external { color: #3366bb; }
div#footer { text-align: center; }
ul#f-list li { list-style: none;  text-align: center; }
div.portlet { margin: 0.5em 0; }

.redirectText {
	font-size:150%;
	margin:5px;
}

ul.special li.not-patrolled, ol.special li.not-patrolled {
	background-color: #ffa;
}
div.patrollink {
	font-size: 75%;
	text-align: right;
}

span.updatedmarker {
	color:black;
	background-color:#00FF00;
}

div.gallerybox {
        width:  150px;
}

#xjump-to-nav {
  display: none;
}

.templatesUsed { margin-top: 1.5em; }

.printfooter {
	display: none;
}

#footer {
	background-color: white;
	border-top: 1px solid #fabd23;
	border-bottom: 1px solid #fabd23;
	margin: .6em 0 1em 0;
	padding: .4em 0 1.2em 0;
	text-align: center;
	font-size: 90%;
}
#f-poweredbyico, #f-copyrightico {
	display: inline;
}

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=utf-8; name=index.css
Content-Location: http://es.wikipedia.org/w/index.php?title=MediaWiki:Common.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400
Content-Transfer-Encoding: 8bit

/* Common CSS para todas las pieles */

/* Clases para las infoboxes V2 ("nuevas") */
.infobox_v2 {
 background-color:#f9f9f9;
 border:1px solid #aaa;
 clear:right;
 float:right;
 color:#000;
 font-size:90%;
 line-height:1.5em;
 margin:.5em 0 .5em 1em;
 padding:.4em;
 width:22.5em
}
 
.infobox_v2 td, .infobox_v2 th {
 vertical-align:top;
 text-align:left
}
 
.infobox_v2 .cabecera {
 font-size:140%;
 font-weight:bolder;
 height:45px;
 line-height:1.2em;
 text-align:center;
 vertical-align:middle
}
 
.infobox_v2 .media {
 font-weight:bolder;
 height:35px;
 text-align:center;
 vertical-align:middle
}
 
/* gráficos transparentes de cabecera */
.cabecera.default {}
.media.audio {background:url(http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Gnome-speakernotes.png/35px-Gnome-speakernotes.png) no-repeat top left}
.media.video {background:url(http://upload.wikimedia.org/wikipedia/en/thumb/2/20/Tango-video-x-generic.png/35px-Tango-video-x-generic.png) no-repeat top left}

/* hiddenStructure importado de w:en para permitir esconder automáticamente los parámetros vacíos en tablas */
.hiddenStructure {
   display: none;
   speak: none;
}

/******** CSS para infoboxes generales "viejas" (versión 1) *******
 * las nuevas infobox deben basarse en la clase infobox_v2 ********/

.infobox {
   border: 1px solid #aaa;
   background-color: #f9f9f9;
   color: black;
   margin-bottom: 0.5em;
   margin-left: 1em;
   padding: 0.2em;
   float: right;
   clear: right;
}
.infobox td, .infobox th {
   vertical-align: top;
}
.infobox caption {
   font-size: larger;
   margin-left: inherit;
}
.infobox.bordered {
   border-collapse: collapse;
}
.infobox.bordered td,
.infobox.bordered th {
   border: 1px solid #aaa;
}
.infobox.bordered .borderless td,
.infobox.bordered .borderless th {
   border: 0;
}

.infobox.sisterproject {
   width: 20em;
   font-size: 90%;
}

@media print {
   .infobox.sisterproject {
      display: none;
   }
}

/*********** Códigos para algunas infoboxes aún más viejas *****
 *  MUY POSIBLEMENTE sea obsoleto y se pueda eliminar, en caso contrario
 * URGE ACTUALIZAR esas infoboxes para que no usen este código  ****/
.InfoDerecha {
  clear: right;
  float: right;
  margin: 0 0 1em 1em;
}

.infobox.geography {
   border: 1px solid #ccd2d9;
   text-align: left;
   border-collapse: collapse;
   line-height: 1.2em; 
   font-size: 90%;
}

.infobox.geography  td,
.infobox.geography  th {
   border-top: solid 1px #ccd2d9;
   padding: 0.4em 0.2em 0.4em 0.8em;
}
.infobox.geography .mergedtoprow td,
.infobox.geography .mergedtoprow th {
   border-top: solid 1px #ccd2d9;
   padding: 0.4em 0.2em 0.2em 0.8em;
}

.infobox.geography .mergedrow td,
.infobox.geography .mergedrow th {
     border: 0;
     padding: 0 0.2em 0.2em 0.8em;
}

.infobox.geography .mergedbottomrow td,
.infobox.geography .mergedbottomrow th {
   border-top: 0;
   border-bottom: solid 1px #ccd2d9;
   padding: 0 0.2em 0.4em 0.8em;
}

.infobox.geography .maptable td,
.infobox.geography .maptable th {
     border: 0;
     padding: 0 0 0 0;
}

/*** Cajas de aviso en discusión nuevas (ambox) que son blancas y con 
 * una cinta de color a la izquierda  */
table.ambox {
   margin: 0 10%; /* Will not overlap with other elements */
   border-collapse: collapse; 
   background-color: #fbfbfb; 
   border: 1px solid #aaa; 
   border-left: 10px solid #1e90ff; /* Default "notice" blue */
}
table.ambox th.ambox-text, table.ambox td.ambox-text { /* The message body cell(s) */
   padding: 0.25em 0.5em; /* 0.5em left/right */
   width: 100%; /* Make all templates the same width regardless of text size */
}
table.ambox td.ambox-image { /* The left image cell */
   padding: 2px 0px 2px 0.5em; /* 0.5em left, 0px right */
   text-align: center; 
}
table.ambox td.ambox-imageright { /* The right image cell */
   padding: 2px 4px 2px 0px;  /* 0px left, 4px right */
   text-align: center; 
}
table.ambox-notice {border-left: 10px solid #1e90ff} /* Blue */
table.ambox-delete, table.ambox-serious {border-left: 10px solid #b22222} /* Red */
table.ambox-content {border-left: 10px solid #f28500} /* Orange */
table.ambox-style {border-left: 10px solid #f4c430} /* Yellow */
table.ambox-merge {border-left: 10px solid #9932cc} /* Purple */
table.ambox-growth {border-left: 10px solid #228b22} /* Green */
table.ambox-protection {border-left: 10px solid #bba} /* Gray */
table.ambox.ambox-mini { /* Small floating box variant */
   float: right;
   clear: right;
   margin: 0 0 0 1em;
   width: 25%;
}
@media print { /* Do not print article message box */
   .ambox {display: none}
}

/****** Ciertas cajas para discusión que NO son ambox (no tienen cinta de color) 
 * por ejemplo, la caja grande de artículo destacado  ***/
.messagebox {
   border: 1px solid #aaaaaa;
   background-color: #f9f9f9;
   width: 85%;
   margin: 0 auto 1em auto;
   padding: .2em;
   text-align: justify;
   font-size: 90%;
}
.messagebox.merge {
   border: 1px solid #cf9fff;
   background-color: #f5edf5;
   text-align: center;
}
.messagebox.cleanup {
   border: 1px solid #9f9fff;
   background-color: #efefff;
   text-align: center;
}
.messagebox.standard-talk {
   border: 1px solid #c0c090;
   background-color: #f8eaba;
   text-align: center;
}
.messagebox.warning {
   border: 1px solid #fcc;
   background-color: #fee;
   text-align: center;
   font-size: 100%;
}

/********** Códigos sobre referencias  ********/
ol.references {font-size: 100%}
.references-small {font-size: 90%}
.references-2column {font-size: 90%}

/* Highlight clicked reference in blue to help navigation */
ol.references > li:target,
sup.reference:target,
cite:target { 
    background-color: #DEF;
}

/*  Llamadas al pie: Quitar corchetes */
.corchete-llamada {display: none}

/* [[Plantilla:Listaref]] */
@media print {.listaref {-moz-column-count: 1 !important} }


/* CSS relacionado con el uso de coordenadas 
 
To display coordinates using the notation in the source code, write this in your User:Username/monobook.css:
   .geo-default {display: inline} .geo-nondefault {display: none} 
   .geo-dec {display: inline} .geo-dms {display: inline}
 To display coordinates using decimal notation, write this in your User:Username/monobook.css:
   .geo-default {display: inline} .geo-nondefault {display: inline} 
   .geo-dec {display: inline} .geo-dms {display: none}
 To display coordinates using DMS notation, write this in your User:Username/monobook.css:
   .geo-default {display: inline} .geo-nondefault {display: inline} 
   .geo-dec {display: none}   .geo-dms {display: inline}
 To display coordinates in both decimal and DMS notation, write this in your User:Username/monobook.css:
   .geo-default {display: inline} .geo-nondefault {display: inline} 
   .geo-dec {display: inline}   .geo-dms {display: inline}
   .geo-multi-punct {display: inline}
 See [[Plantilla:Coor link]] for how these are used.
Note that the classes "geo", "longitude", and "latitude" are not just styles but also used by the [[Geo microformat]], so the names should not be changed.
*/
 
.geo-default {display: inline;}
.geo-nondefault {display: none;}
.geo-dms {display: inline;}
.geo-dec {display: inline;}
.geo-multi-punct {display: none;}
 
.longitude .latitude {
   white-space: nowrap;
}
 
/* This is used for the Geo microformat, but no style is needed for now other than .geo-dec. */
.geo {  }

/*******************************************************************/
/********* Estilos para diferentes funcionalidades menores *********/
/*******************************************************************/

#disambig { /* Desambiguaciones */
   border-top: 3px double #cccccc; 
   border-bottom: 3px double #cccccc;
}

.citado {  /* Plantilla de cita */
   font-size: 90%;
   padding: 0.1em;
   background-color: #F9F9F9;
   padding: 5px 10px;
}

/* Estilos para sitenotice y similares */
.notice {
   text-align: justify;
   margin: 1em;
   padding: 0.2em;
}

/****************** TABLAS ***************************/

table.wikitable, table.prettytable {
  margin: 1em 1em 1em 1em;
  padding: 0.5em;
  font-size: 95%;
  background-color: #f9f9f9;
  border: 1px #aaaaaa solid;
  border-collapse: collapse;
}
table.wikitable th, table.wikitable td,
table.prettytable th, table.prettytable td {
  border: 1px #aaaaaa solid;
  padding: 0.2em;
}
table.wikitable th,
table.prettytable th {
  background-color: #f2f2f2;
  text-align: center;
}
table.wikitable caption,
table.prettytable caption {
  margin-left: inherit;
  margin-right: inherit;
}

/* Support for Template:IPA, Template:Unicode and Template:Polytonic. The inherit declaration
   resets the font for all browsers except MSIE6.  The empty comment must remain. */
.IPA {
      font-family: Chrysanthi Unicode, Doulos SIL, Gentium, GentiumAlt, Code2000,
                TITUS Cyberbit Basic, DejaVu Sans, Bitstream Vera Sans,
                Bitstream Cyberbit, Arial Unicode MS, Lucida Sans Unicode,
                Hiragino Kaku Gothic Pro, Matrix Unicode;
      font-family /**/:inherit;
}
.Unicode {
      font-family: TITUS Cyberbit Basic, Code2000, Doulos SIL, Chrysanthi Unicode,
                Bitstream Cyberbit, Bitstream CyberBase, Thryomanes,
                Gentium, GentiumAlt, Visual Geez Unicode, Lucida Grande,
                Arial Unicode MS, Microsoft Sans Serif, Lucida Sans Unicode;
      font-family /**/:inherit;
}
.polytonic {
      font-family: Athena, Gentium, Palatino Linotype, Arial Unicode MS, Lucida Sans Unicode, Lucida Grande, Code2000; 
      font-family /**/:inherit;
}

/** Estilos para tablas.
   ** EXPERIMENTAL **
   la idea es, si se quiere que la primera columna de la tabla esté alineada
   a la derecha, la segunda centrada  y la tercera a la izquierda, usar
   {| class="col1der col2cen col3izq"
   en vez de repetir "style='text-align:right'", etc, en '''cada''' celda
**/
table.col1der TD:first-child {text-align:right;}
table.col1izq TD:first-child {text-align:left;}
table.col1cen TD:first-child {text-align:center;}

table.col2der TD:first-child + TD {text-align:right;}
table.col2izq TD:first-child + TD {text-align:left;}
table.col2cen TD:first-child + TD {text-align:center;}

table.col3der TD:first-child + TD + TD {text-align:right;}
table.col3izq TD:first-child + TD + TD {text-align:left;}
table.col3cen TD:first-child + TD + TD {text-align:center;}

table.col4der TD:first-child + TD + TD + TD {text-align:right;}
table.col4izq TD:first-child + TD + TD + TD {text-align:left;}
table.col4cen TD:first-child + TD + TD + TD {text-align:center;}

table.col5der TD:first-child + TD + TD + TD + TD {text-align:right;}
table.col5izq TD:first-child + TD + TD + TD + TD {text-align:left;}
table.col5cen TD:first-child + TD + TD + TD + TD {text-align:center;}

/* Ayudita para [[Especial:Allpages]] y categorías: los redirects aparecen en cursiva */
.allpagesredirect, .redirect-in-category {font-style: italic}

/* Put a checker background at the image description page only visible if the image has transparent background */

#file img {background: url(http://upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat}

/* Disponibilidad para tareas de mantenimiento/Tablas por día/semana */

table.user-availability {
   text-align:center;
   border:1px solid #333366; 
}
table.user-availability th {
   font-size:110% 
}
table.user-availability .toprow td+td {
   width:30px;
   height:10px;
   background-color:#eeeeee;
   border:1px solid #aaaaaa 
}
table.user-availability .off {
   font-size:80%;
   border:1px solid #aaaaaa;
   background-color:#ffffff; 
}
table.user-availability .onn {
   font-size:80%;
   border:1px solid #aaaaaa;
   background-color:#ccffcc; 
}
table.user-availability .wrk {
   font-size:80%;
   border:1px solid #aaaaaa;
   background-color:#ccccff; 
}
table.user-availability .cll {
   font-size:80%;
   border:1px solid #aaaaaa;
   background-color:#ffffdd; 
}
table.user-availability .key {
   font-size:90%;
   border-top:1px dashed black;
   text-align:right 
}
table.user-availability .key span {
   padding:2px
}

/* Cambiar el icono de los archivos PDF */
#bodyContent a[href$=".pdf"].external, 
#bodyContent a[href*=".pdf?"].external, 
#bodyContent a[href*=".pdf#"].external,
#bodyContent a[href$=".PDF"].external, 
#bodyContent a[href*=".PDF?"].external, 
#bodyContent a[href*=".PDF#"].external {
   background: url(http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Icons-mini-file_acrobat.gif/15px-Icons-mini-file_acrobat.gif) center right no-repeat;
   padding-right: 16px;
}

/* Change the external link icon to an Adobe icon anywhere the PDFlink class */
/* is used (notably Template:PDFlink). This works in IE, unlike the above. */
span.PDFlink a {
   background: url(http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Icons-mini-file_acrobat.gif/15px-Icons-mini-file_acrobat.gif) center right no-repeat !important;
   padding-right: 17px !important;
}

/* Ocultar texto para los no bibliotecarios */
.para_biblios {display: none}

.rotate_0 {display: block}
.rotate_1, .rotate_2, .rotate_3, .rotate_4, .rotate_5, .rotate_6, .rotate_7, .rotate_8, .rotate_9 {display: none}

/* [[Especial:SpecialPages]]: alinear a la izquierda, en vez de estar justificado */
.mw-specialpages-table {text-align:left}

/* Esto permite arreglar las duplicaciones de urls en plantillas de referencias como Plantilla:Citación. */
@media screen, handheld, projection {cite *.printonly {display: none}}

/* Categorías con alineación a la izquierda, no justificada */
body.ns-14 div#mw-pages {text-align:left}

/* otros */
body.page-Especial_Registro fieldset p small {font-size:100%}


/***********  Código posiblemente obsoleto *************/
/* No encuentro páginas en que este código se use, posiblemente sean residuos
 * de css viejo que ya no está en uso - Drini - 9 mayo 09 */

/* Standard talk template style */    
/* Drininota : Creo que esta y la siguiente se usaban en los carteles viejos de discu, antes de ambox 
.Talk-Notice {
   border: 1px solid #C0C090;
   background-color: #F8EABA;
   margin-bottom: 3px;
   width: 85%;
   border-spacing: 3px;
   margin-left: auto;
   margin-right: auto;
}
*/
/* Make template background appear correctly on all browsers 
.Talk-Notice td {
   background: inherit;
} */

/*Add formatting to make sure that "external references" from [[Plantilla:Ref]] do
  not get URL expansion, not even when printed... 
*/
/* Drininota: La plantilla ref ya no se usa */

/* Remove padding from external links displayed without icon */
#bodyContent .plainlinks a,
.plainlinksneverexpand {
  background: none ! important;
  padding: 0 ! important;
}

.plainlinksneverexpand .urlexpansion {
  display : none ! important;
}

/* Make sure that ext links displayed within "plainlinksneverexpand" don't get the arrow... */
.plainlinksneverexpand a {
   background: none !important;
   padding: 0 !important
}


/* With MediaWiki 1.5, the mechanism has changed: instead of a SPAN of class "urlexpansion"
  following the anchor A, the anchor itself now has class "external autonumber" and the
  expansion is inserted when printing (see the common printing style sheet at
  http://en.wikipedia.org/skins-1.5/common/commonPrint.css) using the ":after" pseudo-
  element of CSS. We have to switch this off for links due to Template:Ref!
  
*/
.plainlinksneverexpand a.external.text:after {
 display: none !important;
}
.plainlinksneverexpand a.external.autonumber:after {
 display: none !important;
}


/****** El siguiente código estaba "comentado accidentalmente" (se abría el
 * comentario pero no se cerraba y por tanto nunca tenía efecto:
/* Importo formato para versos de WikiSource
pre.verse {
  background-color: #ffffff;
  font-family:sans-serif;
  line-height: 150%;
  border: none;
  padding-left: 2em;
  margin: 0;
  white-space: pre;
}

.IconoPlantillaMantenimiento {
  float:left;
  margin-left: 1em; 
  margin-right: 1em; 
}
*/

/*InterProject */

.interProject {
   display:none; 
   clear: both; 
   border-top: 2px dotted #AAAAAA; 
   margin-top: 2em;
}

/* Reduce line-height for <sup> and <sub> */
sup, sub {line-height: 1em}

/* [[Plantilla:No firmado]], más pequeño */
span.nofirmado {font-size:smaller}


/*  Traídos desde monobook.css para qe funcionen envector y los demás skins */

li.destacado {
  list-style-image: url("http://upload.wikimedia.org/wikipedia/en/d/d4/Monobook-bullet-star.png");
  list-style-type: square;
  margin-left: 2px;
}

li.bueno {
  list-style-image: url("http://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Art%C3%ADculo_bueno.svg/10px-Art%C3%ADculo_bueno.svg.png");
  list-style-type: square;
  margin-left: 2px;
}


/* CSS para cosas plegables */

div.BoxenVerschmelzen,
div.NavFrame {
    margin: 0px;
    padding: 2px;
    border: 1px solid #aaaaaa;
    text-align: center;
    border-collapse: collapse;
    font-size: 95%;
}
div.BoxenVerschmelzen div.NavFrame {
    border-style: none;
    border-style: hidden;
}
div.NavFrame + div.NavFrame {
    border-top-style: none;
    border-top-style: hidden;
}
div.NavPic {
    background-color: #ffffff;
    margin: 0px;
    padding: 2px;
    float: left;
    display: none;
}
div.NavFrame div.NavHead {
    height: 1.6em;
    font-weight: bold;
    font-size: 100%;
    background-color: #efefef;
}
div.NavFrame p {
    font-size: 100%;
}
div.NavFrame div.NavContent {
     font-size: 100%;
}
div.NavFrame div.NavContent p {
     font-size: 100%;
}
div.NavEnd {
     margin: 0px;
     padding: 0px;
     line-height: 1px;
     clear: both;
}
.NavToggle {
    font-size: x-small;
    float:right;
}


.border-radius4 {
 border-radius: 4px; /* CSS 3 */
 -moz-border-radius: 4px; /* Firefox 3.5+ */
 -webkit-border-radius: 4px; /* Safari 3.0+ */
}

.border-radius6 {
 border-radius: 6px; /* CSS 3 */
 -moz-border-radius: 6px; /* Firefox 3.5+ */
 -webkit-border-radius: 6px; /* Safari 3.0+ */
}
------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=utf-8; name=index.css
Content-Location: http://es.wikipedia.org/w/index.php?title=MediaWiki:Print.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400
Content-Transfer-Encoding: 8bit

/* CSS placed here will affect the print output */

.ns-0 .ambox, .ns-104 .ambox,
.ns-0 .navbox, .ns-104 .navbox,
.ns-0 .infobox.sisterproject, .ns-104 .infobox.sisterproject,
.ns-0 .dablink, .ns-104 .dablink,
.ns-0 .metadata, .ns-104 .metadata,
#privacy, #about, #disclaimer, #contentSub, .editlink,
span.collapseButton, a.NavToggle,
.noprint {
    display: none;
}
------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=utf-8; name=index.css
Content-Location: http://es.wikipedia.org/w/index.php?title=MediaWiki:Handheld.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400
Content-Transfer-Encoding: 8bit

/* CSS placed here will affect handheld devices based on the skin configured in $wgHandheldStyle */
------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=utf-8; name=index.css
Content-Location: http://es.wikipedia.org/w/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400
Content-Transfer-Encoding: 8bit

@media print {#content { background: white } } /* Fondo blanco al imprimir */

a { text-decoration: none}  /* Los enlaces no van subrayados */
a:hover { text-decoration: underline}

/* "editar" en minúscula en algunas páginas especiales */
body.page-Especial_RedireccionesDobles a.new,
body.page-Especial_Artilugios h2 a,
body.page-Especial_Desambiguaciones ol.special li a[href *="/w/index.php"] { text-transform: lowercase }

/* Ocultar título y categorías en la Portada*/
body.page-Wikipedia_Portada h1.firstHeading, body.page-Wikipedia_Portada#catlinks { display:none; }


div.alreadyloggedin {color: red; font-weight: bold} /* Aviso rojo en ([[MediaWiki:Alreadyloggedin]])  */

form#userlogin {
  float: left;
  padding: 1em 1em .7em 1em;
  background-color: #ffffe6;
  border: 2px solid #fc6;
  color: #000;
  margin-right: 2em;
}
form#userlogin table {
  float: left;
  background-color: #ffffe6;
  color: #000;
}

p.error {font-weight: bold}

/* redondeo de esquinas en ciertos navegadores */
.pBody { 
   padding: 0.3em 0.1em;
   -moz-border-radius-topright: 0.5em;
}
.portlet h5 {
   background-color: #e0e3e6;
   border: thin solid silver;
   -moz-border-radius-topright: 0.5em;
}

/* CSS de tablas */
table.metadata {
   border: 1px solid #aaaaaa;
   display: none; /* A definir por cada usuario */
}
.metadata-label {color: #aaaaaa}


.searchbox .searchboxInput {background-color: transparent}


#content {-moz-border-radius-topleft: 0.5em}
#coordinates {  
    position: absolute;
    z-index: 1;
    border: none;
    background: none;
    right: 20px;
    top: 3.7em;
    float: right;
    margin: 0.0em;
    padding: 0.0em;
    line-height: 1.5em;
    text-align: right;
    text-indent: 0;
    font-size: 85%;
    text-transform: none;
    white-space: nowrap;
}

#siteNotice {margin-top: 5px; margin-bottom: -.5em} /* Donations link to be uncommented during fundraising drives */

#ca-edit a {font-weight: bold !important} /* Bold 'edit this page' link to encourage newcomers */

#mw-dismissable-notice {background: transparent}

#pt-login {font-weight: bold; font-size: 110%}
------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=utf-8; name=index.css
Content-Location: http://es.wikipedia.org/w/index.php?title=-&action=raw&maxage=2678400&gen=css
Content-Transfer-Encoding: 8bit

/* generated user stylesheet */
a.new, #quickbar a.new { color: #CC2200; }

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=wikibits.js
Content-Type: application/x-javascript; charset=utf-8; name=wikibits.js
Content-Location: http://es.wikipedia.org/skins-1.5/common/wikibits.js?233zz2
Content-Transfer-Encoding: Base64

Ly8gTWVkaWFXaWtpIEphdmFTY3JpcHQgc3VwcG9ydCBmdW5jdGlvbnMKCnZhciBj
bGllbnRQQyA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTsgLy8g
R2V0IGNsaWVudCBpbmZvCnZhciBpc19nZWNrbyA9IC9nZWNrby8udGVzdCggY2xp
ZW50UEMgKSAmJgoJIS9raHRtbHxzcG9vZmVyfG5ldHNjYXBlXC83XC4wLy50ZXN0
KGNsaWVudFBDKTsKdmFyIHdlYmtpdF9tYXRjaCA9IGNsaWVudFBDLm1hdGNoKC9h
cHBsZXdlYmtpdFwvKFxkKykvKTsKaWYgKHdlYmtpdF9tYXRjaCkgewoJdmFyIGlz
X3NhZmFyaSA9IGNsaWVudFBDLmluZGV4T2YoJ2FwcGxld2Via2l0JykgIT0gLTEg
JiYKCQljbGllbnRQQy5pbmRleE9mKCdzcG9vZmVyJykgPT0gLTE7Cgl2YXIgaXNf
c2FmYXJpX3dpbiA9IGlzX3NhZmFyaSAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k
b3dzJykgIT0gLTE7Cgl2YXIgd2Via2l0X3ZlcnNpb24gPSBwYXJzZUludCh3ZWJr
aXRfbWF0Y2hbMV0pOwp9Ci8vIEZvciBhY2Nlc3NrZXlzOyBub3RlIHRoYXQgRkYz
KyBpcyBpbmNsdWRlZCBoZXJlIQp2YXIgaXNfZmYyID0gL2ZpcmVmb3hcL1syLTld
fG1pbmVmaWVsZFwvMy8udGVzdCggY2xpZW50UEMgKTsKdmFyIGZmMl9idWdzID0g
L2ZpcmVmb3hcLzIvLnRlc3QoIGNsaWVudFBDICk7Ci8vIFRoZXNlIGFyZW4ndCB1
c2VkIGhlcmUsIGJ1dCBzb21lIGN1c3RvbSBzY3JpcHRzIHJlbHkgb24gdGhlbQp2
YXIgaXNfZmYyX3dpbiA9IGlzX2ZmMiAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k
b3dzJykgIT0gLTE7CnZhciBpc19mZjJfeDExID0gaXNfZmYyICYmIGNsaWVudFBD
LmluZGV4T2YoJ3gxMScpICE9IC0xOwppZiAoY2xpZW50UEMuaW5kZXhPZignb3Bl
cmEnKSAhPSAtMSkgewoJdmFyIGlzX29wZXJhID0gdHJ1ZTsKCXZhciBpc19vcGVy
YV9wcmVzZXZlbiA9IHdpbmRvdy5vcGVyYSAmJiAhZG9jdW1lbnQuY2hpbGROb2Rl
czsKCXZhciBpc19vcGVyYV9zZXZlbiA9IHdpbmRvdy5vcGVyYSAmJiBkb2N1bWVu
dC5jaGlsZE5vZGVzOwoJdmFyIGlzX29wZXJhXzk1ID0gL29wZXJhXC8oOVwuWzUt
OV18WzEtOV1bMC05XSkvLnRlc3QoIGNsaWVudFBDICk7Cgl2YXIgb3BlcmE2X2J1
Z3MgPSBpc19vcGVyYV9wcmVzZXZlbjsKCXZhciBvcGVyYTdfYnVncyA9IGlzX29w
ZXJhX3NldmVuICYmICFpc19vcGVyYV85NTsKCXZhciBvcGVyYTk1X2J1Z3MgPSAv
b3BlcmFcLyg5XC41KS8udGVzdCggY2xpZW50UEMgKTsKfQoKLy8gR2xvYmFsIGV4
dGVybmFsIG9iamVjdHMgdXNlZCBieSB0aGlzIHNjcmlwdC4KLypleHRlcm4gdGEs
IHN0eWxlcGF0aCwgc2tpbiAqLwoKLy8gYWRkIGFueSBvbmxvYWQgZnVuY3Rpb25z
IGluIHRoaXMgaG9vayAocGxlYXNlIGRvbid0IGhhcmQtY29kZSBhbnkgZXZlbnRz
IGluIHRoZSB4aHRtbCBzb3VyY2UpCnZhciBkb25lT25sb2FkSG9vazsKCmlmICgh
d2luZG93Lm9ubG9hZEZ1bmN0cykgewoJdmFyIG9ubG9hZEZ1bmN0cyA9IFtdOwp9
CgovLyBjb2RlIHRoYXQgaXMgZGVwZW5kZW50IG9uIGpzMiBmdW5jdGlvbnMgc2hv
dWxkIHVzZSBqczJBZGRPbmxvYWRIb29rCmZ1bmN0aW9uIGFkZE9ubG9hZEhvb2so
aG9va0Z1bmN0KSB7CgkvLyBBbGxvd3MgYWRkLW9uIHNjcmlwdHMgdG8gYWRkIG9u
bG9hZCBmdW5jdGlvbnMKCWlmKCFkb25lT25sb2FkSG9vaykgewoJCW9ubG9hZEZ1
bmN0c1tvbmxvYWRGdW5jdHMubGVuZ3RoXSA9IGhvb2tGdW5jdDsKCX0gZWxzZSB7
CgkJaG9va0Z1bmN0KCk7ICAvLyBidWcgaW4gTVNJRSBzY3JpcHQgbG9hZGluZwoJ
fQp9CgoKZnVuY3Rpb24gaG9va0V2ZW50KGhvb2tOYW1lLCBob29rRnVuY3QpIHsK
CWFkZEhhbmRsZXIod2luZG93LCBob29rTmFtZSwgaG9va0Z1bmN0KTsKfQoKZnVu
Y3Rpb24gaW1wb3J0U2NyaXB0KHBhZ2UpIHsKCS8vIFRPRE86IG1pZ2h0IHdhbnQg
dG8gaW50cm9kdWNlIGEgdXRpbGl0eSBmdW5jdGlvbiB0byBtYXRjaCB3ZlVybGVu
Y29kZSgpIGluIFBIUAoJdmFyIHVyaSA9IHdnU2NyaXB0ICsgJz90aXRsZT0nICsK
CQllbmNvZGVVUklDb21wb25lbnQocGFnZS5yZXBsYWNlKC8gL2csJ18nKSkucmVw
bGFjZSgvJTJGL2lnLCcvJykucmVwbGFjZSgvJTNBL2lnLCc6JykgKwoJCScmYWN0
aW9uPXJhdyZjdHlwZT10ZXh0L2phdmFzY3JpcHQnOwoJcmV0dXJuIGltcG9ydFNj
cmlwdFVSSSh1cmkpOwp9Cgp2YXIgbG9hZGVkU2NyaXB0cyA9IHt9OyAvLyBpbmNs
dWRlZC1zY3JpcHRzIHRyYWNrZXIKZnVuY3Rpb24gaW1wb3J0U2NyaXB0VVJJKHVy
bCkgewoJaWYgKGxvYWRlZFNjcmlwdHNbdXJsXSkgewoJCXJldHVybiBudWxsOwoJ
fQoJbG9hZGVkU2NyaXB0c1t1cmxdID0gdHJ1ZTsKCXZhciBzID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CglzLnNldEF0dHJpYnV0ZSgnc3JjJyx1
cmwpOwoJcy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2phdmFzY3JpcHQnKTsK
CWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5k
Q2hpbGQocyk7CglyZXR1cm4gczsKfQoKZnVuY3Rpb24gaW1wb3J0U3R5bGVzaGVl
dChwYWdlKSB7CglyZXR1cm4gaW1wb3J0U3R5bGVzaGVldFVSSSh3Z1NjcmlwdCAr
ICc/YWN0aW9uPXJhdyZjdHlwZT10ZXh0L2NzcyZ0aXRsZT0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KHBhZ2UucmVwbGFjZSgvIC9nLCdfJykpKTsKfQoKZnVuY3Rpb24g
aW1wb3J0U3R5bGVzaGVldFVSSSh1cmwsbWVkaWEpIHsKCXZhciBsID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnbGluaycpOwoJbC50eXBlID0gJ3RleHQvY3NzJzsK
CWwucmVsID0gJ3N0eWxlc2hlZXQnOwoJbC5ocmVmID0gdXJsOwoJaWYobWVkaWEp
IGwubWVkaWEgPSBtZWRpYQoJZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J2hlYWQnKVswXS5hcHBlbmRDaGlsZChsKTsKCXJldHVybiBsOwp9CgpmdW5jdGlv
biBhcHBlbmRDU1ModGV4dCkgewoJdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzdHlsZScpOwoJcy50eXBlID0gJ3RleHQvY3NzJzsKCXMucmVsID0gJ3N0
eWxlc2hlZXQnOwoJaWYgKHMuc3R5bGVTaGVldCkgcy5zdHlsZVNoZWV0LmNzc1Rl
eHQgPSB0ZXh0IC8vSUUKCWVsc2Ugcy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSh0ZXh0ICsgJycpKSAvL1NhZmFyaSBzb21ldGltZXMgYm9ya3Mg
b24gbnVsbAoJZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVsw
XS5hcHBlbmRDaGlsZChzKTsKCXJldHVybiBzOwp9CgovLyBzcGVjaWFsIHN0eWxl
c2hlZXQgbGlua3MKaWYgKHR5cGVvZiBzdHlsZXBhdGggIT0gJ3VuZGVmaW5lZCcg
JiYgdHlwZW9mIHNraW4gIT0gJ3VuZGVmaW5lZCcpIHsKCS8vIEZJWE1FOiBUaGlz
IHRyaWVzIHRvIGxvYWQgdGhlIHN0eWxlc2hlZXRzIGV2ZW4gZm9yIHNraW5zIHdo
ZXJlIHRoZXkKCS8vIGRvbid0IGV4aXN0LCBpLmUuLCBldmVyeXRoaW5nIGJ1dCBN
b25vYm9vay4KCWlmIChvcGVyYTZfYnVncykgewoJCWltcG9ydFN0eWxlc2hlZXRV
Ukkoc3R5bGVwYXRoKycvJytza2luKycvT3BlcmE2Rml4ZXMuY3NzJyk7Cgl9IGVs
c2UgaWYgKG9wZXJhN19idWdzKSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSShzdHls
ZXBhdGgrJy8nK3NraW4rJy9PcGVyYTdGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAo
b3BlcmE5NV9idWdzKSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSShzdHlsZXBhdGgr
Jy8nK3NraW4rJy9PcGVyYTlGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAoZmYyX2J1
Z3MpIHsKCQlpbXBvcnRTdHlsZXNoZWV0VVJJKHN0eWxlcGF0aCsnLycrc2tpbisn
L0ZGMkZpeGVzLmNzcycpOwoJfQp9CgoKaWYgKHdnQnJlYWtGcmFtZXMpIHsKCS8v
IFVuLXRyYXAgdXMgZnJvbSBmcmFtZXNldHMKCWlmICh3aW5kb3cudG9wICE9IHdp
bmRvdykgewoJCXdpbmRvdy50b3AubG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb247
Cgl9Cn0KCmZ1bmN0aW9uIHNob3dUb2NUb2dnbGUoKSB7CglpZiAoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUpIHsKCQkvLyBVc2VzIERPTSBjYWxscyB0byBhdm9pZCBk
b2N1bWVudC53cml0ZSArIFhIVE1MIGlzc3VlcwoKCQl2YXIgbGlua0hvbGRlciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2N0aXRsZScpOwoJCXZhciBleGlz
dGluZ0xpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9nZ2xlbGluaycp
OwoJCWlmICghbGlua0hvbGRlciB8fCBleGlzdGluZ0xpbmspIHsKCQkJLy8gRG9u
J3QgYWRkIHRoZSB0b2dnbGUgbGluayB0d2ljZQoJCQlyZXR1cm47CgkJfQoKCQl2
YXIgb3V0ZXJTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwoJ
CW91dGVyU3Bhbi5jbGFzc05hbWUgPSAndG9jdG9nZ2xlJzsKCgkJdmFyIHRvZ2ds
ZUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CgkJdG9nZ2xlTGlu
ay5pZCA9ICd0b2dnbGVsaW5rJzsKCQl0b2dnbGVMaW5rLmNsYXNzTmFtZSA9ICdp
bnRlcm5hbCc7CgkJdG9nZ2xlTGluay5ocmVmID0gJ2phdmFzY3JpcHQ6dG9nZ2xl
VG9jKCknOwoJCXRvZ2dsZUxpbmsuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUodG9jSGlkZVRleHQpKTsKCgkJb3V0ZXJTcGFuLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbJykpOwoJCW91dGVyU3Bhbi5hcHBl
bmRDaGlsZCh0b2dnbGVMaW5rKTsKCQlvdXRlclNwYW4uYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoJ10nKSk7CgoJCWxpbmtIb2xkZXIuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKSk7CgkJbGlua0hvbGRl
ci5hcHBlbmRDaGlsZChvdXRlclNwYW4pOwoKCQl2YXIgY29va2llUG9zID0gZG9j
dW1lbnQuY29va2llLmluZGV4T2YoImhpZGV0b2M9Iik7CgkJaWYgKGNvb2tpZVBv
cyA+IC0xICYmIGRvY3VtZW50LmNvb2tpZS5jaGFyQXQoY29va2llUG9zICsgOCkg
PT0gMSkgewoJCQl0b2dnbGVUb2MoKTsKCQl9Cgl9Cn0KCmZ1bmN0aW9uIGNoYW5n
ZVRleHQoZWwsIG5ld1RleHQpIHsKCS8vIFNhZmFyaSB3b3JrIGFyb3VuZAoJaWYg
KGVsLmlubmVyVGV4dCkgewoJCWVsLmlubmVyVGV4dCA9IG5ld1RleHQ7Cgl9IGVs
c2UgaWYgKGVsLmZpcnN0Q2hpbGQgJiYgZWwuZmlyc3RDaGlsZC5ub2RlVmFsdWUp
IHsKCQllbC5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IG5ld1RleHQ7Cgl9Cn0KCmZ1
bmN0aW9uIHRvZ2dsZVRvYygpIHsKCXZhciB0b2MgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndG9jJykuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3VsJylbMF07Cgl2
YXIgdG9nZ2xlTGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2dnbGVs
aW5rJyk7CgoJaWYgKHRvYyAmJiB0b2dnbGVMaW5rICYmIHRvYy5zdHlsZS5kaXNw
bGF5ID09ICdub25lJykgewoJCWNoYW5nZVRleHQodG9nZ2xlTGluaywgdG9jSGlk
ZVRleHQpOwoJCXRvYy5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKCQlkb2N1bWVu
dC5jb29raWUgPSAiaGlkZXRvYz0wIjsKCX0gZWxzZSB7CgkJY2hhbmdlVGV4dCh0
b2dnbGVMaW5rLCB0b2NTaG93VGV4dCk7CgkJdG9jLnN0eWxlLmRpc3BsYXkgPSAn
bm9uZSc7CgkJZG9jdW1lbnQuY29va2llID0gImhpZGV0b2M9MSI7Cgl9Cn0KCnZh
ciBtd0VkaXRCdXR0b25zID0gW107CnZhciBtd0N1c3RvbUVkaXRCdXR0b25zID0g
W107IC8vIGVnIHRvIGFkZCBpbiBNZWRpYVdpa2k6Q29tbW9uLmpzCgpmdW5jdGlv
biBlc2NhcGVRdW90ZXModGV4dCkgewoJdmFyIHJlID0gbmV3IFJlZ0V4cCgiJyIs
ImciKTsKCXRleHQgPSB0ZXh0LnJlcGxhY2UocmUsIlxcJyIpOwoJcmUgPSBuZXcg
UmVnRXhwKCJcXG4iLCJnIik7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCJcXG4i
KTsKCXJldHVybiBlc2NhcGVRdW90ZXNIVE1MKHRleHQpOwp9CgpmdW5jdGlvbiBl
c2NhcGVRdW90ZXNIVE1MKHRleHQpIHsKCXZhciByZSA9IG5ldyBSZWdFeHAoJyYn
LCJnIik7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCImYW1wOyIpOwoJcmUgPSBu
ZXcgUmVnRXhwKCciJywiZyIpOwoJdGV4dCA9IHRleHQucmVwbGFjZShyZSwiJnF1
b3Q7Iik7CglyZSA9IG5ldyBSZWdFeHAoJzwnLCJnIik7Cgl0ZXh0ID0gdGV4dC5y
ZXBsYWNlKHJlLCImbHQ7Iik7CglyZSA9IG5ldyBSZWdFeHAoJz4nLCJnIik7Cgl0
ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCImZ3Q7Iik7CglyZXR1cm4gdGV4dDsKfQoK
Ci8qKgogKiBTZXQgdGhlIGFjY2Vzc2tleSBwcmVmaXggYmFzZWQgb24gYnJvd3Nl
ciBkZXRlY3Rpb24uCiAqLwp2YXIgdG9vbHRpcEFjY2Vzc0tleVByZWZpeCA9ICdh
bHQtJzsKaWYgKGlzX29wZXJhKSB7Cgl0b29sdGlwQWNjZXNzS2V5UHJlZml4ID0g
J3NoaWZ0LWVzYy0nOwp9IGVsc2UgaWYgKCFpc19zYWZhcmlfd2luICYmIGlzX3Nh
ZmFyaSAmJiB3ZWJraXRfdmVyc2lvbiA+IDUyNikgewoJdG9vbHRpcEFjY2Vzc0tl
eVByZWZpeCA9ICdjdHJsLWFsdC0nOwp9IGVsc2UgaWYgKCFpc19zYWZhcmlfd2lu
ICYmIChpc19zYWZhcmkKCQl8fCBjbGllbnRQQy5pbmRleE9mKCdtYWMnKSAhPSAt
MQoJCXx8IGNsaWVudFBDLmluZGV4T2YoJ2tvbnF1ZXJvcicpICE9IC0xICkpIHsK
CXRvb2x0aXBBY2Nlc3NLZXlQcmVmaXggPSAnY3RybC0nOwp9IGVsc2UgaWYgKGlz
X2ZmMikgewoJdG9vbHRpcEFjY2Vzc0tleVByZWZpeCA9ICdhbHQtc2hpZnQtJzsK
fQp2YXIgdG9vbHRpcEFjY2Vzc0tleVJlZ2V4cCA9IC9cWyhjdHJsLSk/KGFsdC0p
PyhzaGlmdC0pPyhlc2MtKT8oLilcXSQvOwoKLyoqCiAqIEFkZCB0aGUgYXBwcm9w
cmlhdGUgcHJlZml4IHRvIHRoZSBhY2Nlc3NrZXkgc2hvd24gaW4gdGhlIHRvb2x0
aXAuCiAqIElmIHRoZSBub2RlTGlzdCBwYXJhbWV0ZXIgaXMgZ2l2ZW4sIG9ubHkg
dGhvc2Ugbm9kZXMgYXJlIHVwZGF0ZWQ7CiAqIG90aGVyd2lzZSwgYWxsIHRoZSBu
b2RlcyB0aGF0IHdpbGwgcHJvYmFibHkgaGF2ZSBhY2Nlc3NrZXlzIGJ5CiAqIGRl
ZmF1bHQgYXJlIHVwZGF0ZWQuCiAqCiAqIEBwYXJhbSBBcnJheSBub2RlTGlzdCAt
LSBsaXN0IG9mIGVsZW1lbnRzIHRvIHVwZGF0ZQogKi8KZnVuY3Rpb24gdXBkYXRl
VG9vbHRpcEFjY2Vzc0tleXMoIG5vZGVMaXN0ICkgewoJaWYgKCAhbm9kZUxpc3Qg
KSB7CgkJLy8gUmF0aGVyIHRoYW4gc2NhbiBhbGwgbGlua3Mgb24gdGhlIHdob2xl
IHBhZ2UsIHdlIGNhbiBqdXN0IHNjYW4gdGhlc2UKCQkvLyBjb250YWluZXJzIHdo
aWNoIGNvbnRhaW4gdGhlIHJlbGV2YW50IGxpbmtzLiBUaGlzIGlzIHJlYWxseSBq
dXN0IGFuCgkJLy8gb3B0aW1pemF0aW9uIHRlY2huaXF1ZS4KCQl2YXIgbGlua0Nv
bnRhaW5lcnMgPSBbCgkJCSJjb2x1bW4tb25lIiwgLy8gTW9ub2Jvb2sgYW5kIE1v
ZGVybgoJCQkiaGVhZCIsICJwYW5lbCIsICJwLWxvZ28iIC8vIFZlY3RvcgoJCV07
CgkJZm9yICggdmFyIGkgaW4gbGlua0NvbnRhaW5lcnMgKSB7CgkJCXZhciBsaW5r
Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGxpbmtDb250YWlu
ZXJzW2ldICk7CgkJCWlmICggbGlua0NvbnRhaW5lciApIHsKCQkJCXVwZGF0ZVRv
b2x0aXBBY2Nlc3NLZXlzKCBsaW5rQ29udGFpbmVyLmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJhIikgKTsKCQkJfQoJCX0KCQkvLyB0aGVzZSBhcmUgcmFyZSBlbm91Z2gg
dGhhdCBubyBzdWNoIG9wdGltaXphdGlvbiBpcyBuZWVkZWQKCQl1cGRhdGVUb29s
dGlwQWNjZXNzS2V5cyggZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlu
cHV0IikgKTsKCQl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImxhYmVsIikgKTsKCQlyZXR1cm47Cgl9CgoJZm9y
ICggdmFyIGkgPSAwOyBpIDwgbm9kZUxpc3QubGVuZ3RoOyBpKysgKSB7CgkJdmFy
IGVsZW1lbnQgPSBub2RlTGlzdFtpXTsKCQl2YXIgdGlwID0gZWxlbWVudC5nZXRB
dHRyaWJ1dGUoInRpdGxlIik7CgkJaWYgKCB0aXAgJiYgdG9vbHRpcEFjY2Vzc0tl
eVJlZ2V4cC5leGVjKHRpcCkgKSB7CgkJCXRpcCA9IHRpcC5yZXBsYWNlKHRvb2x0
aXBBY2Nlc3NLZXlSZWdleHAsCgkJCQkJICAiWyIrdG9vbHRpcEFjY2Vzc0tleVBy
ZWZpeCsiJDVdIik7CgkJCWVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIHRp
cCApOwoJCX0KCX0KfQoKLyoqCiAqIEFkZCBhIGxpbmsgdG8gb25lIG9mIHRoZSBw
b3J0bGV0IG1lbnVzIG9uIHRoZSBwYWdlLCBpbmNsdWRpbmc6CiAqCiAqIHAtY2Fj
dGlvbnM6IENvbnRlbnQgYWN0aW9ucyAoc2hvd24gYXMgdGFicyBhYm92ZSB0aGUg
bWFpbiBjb250ZW50IGluIE1vbm9ib29rKQogKiBwLXBlcnNvbmFsOiBQZXJzb25h
bCB0b29scyAoc2hvd24gYXQgdGhlIHRvcCByaWdodCBvZiB0aGUgcGFnZSBpbiBN
b25vYm9vaykKICogcC1uYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uCiAqIHAtdGI6IFRv
b2xib3gKICoKICogVGhpcyBmdW5jdGlvbiBleGlzdHMgZm9yIHRoZSBjb252ZW5p
ZW5jZSBvZiBjdXN0b20gSlMgYXV0aG9ycy4gIEFsbAogKiBidXQgdGhlIGZpcnN0
IHRocmVlIHBhcmFtZXRlcnMgYXJlIG9wdGlvbmFsLCB0aG91Z2ggcHJvdmlkaW5n
IGF0CiAqIGxlYXN0IGFuIGlkIGFuZCBhIHRvb2x0aXAgaXMgcmVjb21tZW5kZWQu
CiAqCiAqIEJ5IGRlZmF1bHQgdGhlIG5ldyBsaW5rIHdpbGwgYmUgYWRkZWQgdG8g
dGhlIGVuZCBvZiB0aGUgbGlzdC4gIFRvCiAqIGFkZCB0aGUgbGluayBiZWZvcmUg
YSBnaXZlbiBleGlzdGluZyBpdGVtLCBwYXNzIHRoZSBET00gbm9kZSBvZgogKiB0
aGF0IGl0ZW0gKGVhc2lseSBvYnRhaW5lZCB3aXRoIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCkpIGFzIHRoZQogKiBuZXh0bm9kZSBwYXJhbWV0ZXI7IHRvIGFkZCB0
aGUgbGluayBfYWZ0ZXJfIGFuIGV4aXN0aW5nIGl0ZW0sIHBhc3MKICogdGhlIG5v
ZGUncyBuZXh0U2libGluZyBpbnN0ZWFkLgogKgogKiBAcGFyYW0gU3RyaW5nIHBv
cnRsZXQgLS0gaWQgb2YgdGhlIHRhcmdldCBwb3J0bGV0ICgicC1jYWN0aW9ucyIs
ICJwLXBlcnNvbmFsIiwgInAtbmF2aWdhdGlvbiIgb3IgInAtdGIiKQogKiBAcGFy
YW0gU3RyaW5nIGhyZWYgLS0gbGluayBVUkwKICogQHBhcmFtIFN0cmluZyB0ZXh0
IC0tIGxpbmsgdGV4dCAod2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxvd2VyY2FzZWQg
YnkgQ1NTIGZvciBwLWNhY3Rpb25zIGluIE1vbm9ib29rKQogKiBAcGFyYW0gU3Ry
aW5nIGlkIC0tIGlkIG9mIHRoZSBuZXcgaXRlbSwgc2hvdWxkIGJlIHVuaXF1ZSBh
bmQgcHJlZmVyYWJseSBoYXZlIHRoZSBhcHByb3ByaWF0ZSBwcmVmaXggKCJjYS0i
LCAicHQtIiwgIm4tIiBvciAidC0iKQogKiBAcGFyYW0gU3RyaW5nIHRvb2x0aXAg
LS0gdGV4dCB0byBzaG93IHdoZW4gaG92ZXJpbmcgb3ZlciB0aGUgbGluaywgd2l0
aG91dCBhY2Nlc3NrZXkgc3VmZml4CiAqIEBwYXJhbSBTdHJpbmcgYWNjZXNza2V5
IC0tIGFjY2Vzc2tleSB0byBhY3RpdmF0ZSB0aGlzIGxpbmsgKG9uZSBjaGFyYWN0
ZXIsIHRyeSB0byBhdm9pZCBjb25mbGljdHMpCiAqIEBwYXJhbSBOb2RlIG5leHRu
b2RlIC0tIHRoZSBET00gbm9kZSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIHNo
b3VsZCBiZSBhZGRlZCwgc2hvdWxkIGJlIGFub3RoZXIgaXRlbSBpbiB0aGUgc2Ft
ZSBsaXN0CiAqCiAqIEByZXR1cm4gTm9kZSAtLSB0aGUgRE9NIG5vZGUgb2YgdGhl
IG5ldyBpdGVtIChhbiBMSSBlbGVtZW50KSBvciBudWxsCiAqLwpmdW5jdGlvbiBh
ZGRQb3J0bGV0TGluayhwb3J0bGV0LCBocmVmLCB0ZXh0LCBpZCwgdG9vbHRpcCwg
YWNjZXNza2V5LCBuZXh0bm9kZSkgewoJdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChwb3J0bGV0KTsKCWlmICggIXJvb3QgKSByZXR1cm4gbnVsbDsK
CXZhciBub2RlID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSggInVsIiApWzBd
OwoJaWYgKCAhbm9kZSApIHJldHVybiBudWxsOwoKCS8vIHVuaGlkZSBwb3J0bGV0
IGlmIGl0IHdhcyBoaWRkZW4gYmVmb3JlCglyb290LmNsYXNzTmFtZSA9IHJvb3Qu
Y2xhc3NOYW1lLnJlcGxhY2UoIC8oXnwgKWVtcHR5UG9ydGxldCggfCQpLywgIiQy
IiApOwoKCXZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNwYW4i
ICk7CglzcGFuLmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgg
dGV4dCApICk7CgoJdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAi
YSIgKTsKCWxpbmsuYXBwZW5kQ2hpbGQoIHNwYW4gKTsKCWxpbmsuaHJlZiA9IGhy
ZWY7CgoJdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAibGkiICk7
CglpdGVtLmFwcGVuZENoaWxkKCBsaW5rICk7CglpZiAoIGlkICkgaXRlbS5pZCA9
IGlkOwoKCWlmICggYWNjZXNza2V5ICkgewoJCWxpbmsuc2V0QXR0cmlidXRlKCAi
YWNjZXNza2V5IiwgYWNjZXNza2V5ICk7CgkJdG9vbHRpcCArPSAiIFsiK2FjY2Vz
c2tleSsiXSI7Cgl9CglpZiAoIHRvb2x0aXAgKSB7CgkJbGluay5zZXRBdHRyaWJ1
dGUoICJ0aXRsZSIsIHRvb2x0aXAgKTsKCX0KCWlmICggYWNjZXNza2V5ICYmIHRv
b2x0aXAgKSB7CgkJdXBkYXRlVG9vbHRpcEFjY2Vzc0tleXMoIG5ldyBBcnJheSgg
bGluayApICk7Cgl9CgoJaWYgKCBuZXh0bm9kZSAmJiBuZXh0bm9kZS5wYXJlbnRO
b2RlID09IG5vZGUgKQoJCW5vZGUuaW5zZXJ0QmVmb3JlKCBpdGVtLCBuZXh0bm9k
ZSApOwoJZWxzZQoJCW5vZGUuYXBwZW5kQ2hpbGQoIGl0ZW0gKTsgIC8vIElFIGNv
bXBhdGliaWxpdHkgKD8pCgoJcmV0dXJuIGl0ZW07Cn0KCmZ1bmN0aW9uIGdldElu
bmVyVGV4dChlbCkgewoJaWYgKHR5cGVvZiBlbCA9PSAic3RyaW5nIikgcmV0dXJu
IGVsOwoJaWYgKHR5cGVvZiBlbCA9PSAidW5kZWZpbmVkIikgeyByZXR1cm4gZWwg
fTsKCWlmIChlbC50ZXh0Q29udGVudCkgcmV0dXJuIGVsLnRleHRDb250ZW50OyAv
LyBub3QgbmVlZGVkIGJ1dCBpdCBpcyBmYXN0ZXIKCWlmIChlbC5pbm5lclRleHQp
IHJldHVybiBlbC5pbm5lclRleHQ7ICAgICAvLyBJRSBkb2Vzbid0IGhhdmUgdGV4
dENvbnRlbnQKCXZhciBzdHIgPSAiIjsKCgl2YXIgY3MgPSBlbC5jaGlsZE5vZGVz
OwoJdmFyIGwgPSBjcy5sZW5ndGg7Cglmb3IgKHZhciBpID0gMDsgaSA8IGw7IGkr
KykgewoJCXN3aXRjaCAoY3NbaV0ubm9kZVR5cGUpIHsKCQkJY2FzZSAxOiAvL0VM
RU1FTlRfTk9ERQoJCQkJc3RyICs9IHRzX2dldElubmVyVGV4dChjc1tpXSk7CgkJ
CQlicmVhazsKCQkJY2FzZSAzOgkvL1RFWFRfTk9ERQoJCQkJc3RyICs9IGNzW2ld
Lm5vZGVWYWx1ZTsKCQkJCWJyZWFrOwoJCX0KCX0KCXJldHVybiBzdHI7Cn0KCgov
KioKICogU2V0IHVwIGFjY2Vzc2tleXMvdG9vbHRpcHMgZnJvbSB0aGUgZGVwcmVj
YXRlZCB0YSBhcnJheS4gIElmIGRvSWQKICogaXMgc3BlY2lmaWVkLCBvbmx5IHNl
dCB1cCBmb3IgdGhhdCBpZC4gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzCiAq
IGRlcHJlY2F0ZWQgYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbmRlZmluaXRl
bHkgLS0gdXNlCiAqIHVwZGF0ZVRvb2x0aXBBY2Nlc3NLZXkoKSBpbnN0ZWFkLgog
KgogKiBAcGFyYW0gbWl4ZWQgZG9JZCBzdHJpbmcgb3IgbnVsbAogKi8KZnVuY3Rp
b24gYWtleXR0KCBkb0lkICkgewoJLy8gQSBsb3Qgb2YgdXNlciBzY3JpcHRzIChh
bmQgc29tZSBvZiB0aGUgY29kZSBiZWxvdykgYnJlYWsgaWYKCS8vIHRhIGlzbid0
IGRlZmluZWQsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcy4gIEV4cGxpY3RseSB1c2lu
ZwoJLy8gd2luZG93LnRhIGF2b2lkcyBhICJ0YSBpcyBub3QgZGVmaW5lZCIgZXJy
b3IuCglpZiAoIXdpbmRvdy50YSkgd2luZG93LnRhID0gbmV3IEFycmF5OwoKCS8v
IE1ha2UgYSBsb2NhbCwgcG9zc2libHkgcmVzdHJpY3RlZCwgY29weSB0byBhdm9p
ZCBjbG9iYmVyaW5nCgkvLyB0aGUgb3JpZ2luYWwuCgl2YXIgdGE7CglpZiAoIGRv
SWQgKSB7CgkJdGEgPSBbZG9JZF07Cgl9IGVsc2UgewoJCXRhID0gd2luZG93LnRh
OwoJfQoKCS8vIE5vdyBkZWFsIHdpdGggZXZpbCBkZXByZWNhdGVkIHRhCgl2YXIg
d2F0Y2hDaGVja2JveEV4aXN0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAn
d3BXYXRjaHRoaXMnICkgPyB0cnVlIDogZmFsc2U7Cglmb3IgKHZhciBpZCBpbiB0
YSkgewoJCXZhciBuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwoJCWlm
IChuKSB7CgkJCXZhciBhID0gbnVsbDsKCQkJdmFyIGFrID0gJyc7CgkJCS8vIEFy
ZSB3ZSBwdXR0aW5nIGFjY2Vzc2tleSBpbiBpdAoJCQlpZiAodGFbaWRdWzBdLmxl
bmd0aCA+IDApIHsKCQkJCS8vIElzIHRoaXMgb2JqZWN0IGEgb2JqZWN0PyBJZiBu
b3QgYXNzdW1lIGl0J3MgdGhlIG5leHQgY2hpbGQuCgoJCQkJaWYgKG4ubm9kZU5h
bWUudG9Mb3dlckNhc2UoKSA9PSAiYSIpIHsKCQkJCQlhID0gbjsKCQkJCX0gZWxz
ZSB7CgkJCQkJYSA9IG4uY2hpbGROb2Rlc1swXTsKCQkJCX0KCQkJIAkvLyBEb24n
dCBhZGQgYW4gYWNjZXNza2V5IGZvciB0aGUgd2F0Y2ggdGFiIGlmIHRoZSB3YXRj
aAoJCQkgCS8vIGNoZWNrYm94IGlzIGFsc28gYXZhaWxhYmxlLgoJCQkJaWYgKGEg
JiYgKChpZCAhPSAnY2Etd2F0Y2gnICYmIGlkICE9ICdjYS11bndhdGNoJykgfHwg
IXdhdGNoQ2hlY2tib3hFeGlzdHMpKSB7CgkJCQkJYS5hY2Nlc3NLZXkgPSB0YVtp
ZF1bMF07CgkJCQkJYWsgPSAnIFsnK3Rvb2x0aXBBY2Nlc3NLZXlQcmVmaXgrdGFb
aWRdWzBdKyddJzsKCQkJCX0KCQkJfSBlbHNlIHsKCQkJCS8vIFdlIGRvbid0IGNh
cmUgd2hhdCB0eXBlIHRoZSBvYmplY3QgaXMgd2hlbiBhc3NpZ25pbmcgdG9vbHRp
cAoJCQkJYSA9IG47CgkJCQlhayA9ICcnOwoJCQl9CgoJCQlpZiAoYSkgewoJCQkJ
YS50aXRsZSA9IHRhW2lkXVsxXSthazsKCQkJfQoJCX0KCX0KfQoKdmFyIGNoZWNr
Ym94ZXM7CnZhciBsYXN0Q2hlY2tib3g7CgpmdW5jdGlvbiBzZXR1cENoZWNrYm94
U2hpZnRDbGljaygpIHsKCWNoZWNrYm94ZXMgPSBbXTsKCWxhc3RDaGVja2JveCA9
IG51bGw7Cgl2YXIgaW5wdXRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoJ2lucHV0Jyk7CglhZGRDaGVja2JveENsaWNrSGFuZGxlcnMoaW5wdXRzKTsK
fQoKZnVuY3Rpb24gYWRkQ2hlY2tib3hDbGlja0hhbmRsZXJzKGlucHV0cywgc3Rh
cnQpIHsKCWlmICggIXN0YXJ0KSBzdGFydCA9IDA7CgoJdmFyIGZpbmlzaCA9IHN0
YXJ0ICsgMjUwOwoJaWYgKCBmaW5pc2ggPiBpbnB1dHMubGVuZ3RoICkKCQlmaW5p
c2ggPSBpbnB1dHMubGVuZ3RoOwoKCWZvciAoIHZhciBpID0gc3RhcnQ7IGkgPCBm
aW5pc2g7IGkrKyApIHsKCQl2YXIgY2IgPSBpbnB1dHNbaV07CgkJaWYgKCAhY2Iu
dHlwZSB8fCBjYi50eXBlLnRvTG93ZXJDYXNlKCkgIT0gJ2NoZWNrYm94JyApCgkJ
CWNvbnRpbnVlOwoJCXZhciBlbmQgPSBjaGVja2JveGVzLmxlbmd0aDsKCQljaGVj
a2JveGVzW2VuZF0gPSBjYjsKCQljYi5pbmRleCA9IGVuZDsKCQljYi5vbmNsaWNr
ID0gY2hlY2tib3hDbGlja0hhbmRsZXI7Cgl9CgoJaWYgKCBmaW5pc2ggPCBpbnB1
dHMubGVuZ3RoICkgewoJCXNldFRpbWVvdXQoIGZ1bmN0aW9uICgpIHsKCQkJYWRk
Q2hlY2tib3hDbGlja0hhbmRsZXJzKGlucHV0cywgZmluaXNoKTsKCQl9LCAyMDAg
KTsKCX0KfQoKZnVuY3Rpb24gY2hlY2tib3hDbGlja0hhbmRsZXIoZSkgewoJaWYg
KHR5cGVvZiBlID09ICd1bmRlZmluZWQnKSB7CgkJZSA9IHdpbmRvdy5ldmVudDsK
CX0KCWlmICggIWUuc2hpZnRLZXkgfHwgbGFzdENoZWNrYm94ID09PSBudWxsICkg
ewoJCWxhc3RDaGVja2JveCA9IHRoaXMuaW5kZXg7CgkJcmV0dXJuIHRydWU7Cgl9
Cgl2YXIgZW5kU3RhdGUgPSB0aGlzLmNoZWNrZWQ7Cgl2YXIgc3RhcnQsIGZpbmlz
aDsKCWlmICggdGhpcy5pbmRleCA8IGxhc3RDaGVja2JveCApIHsKCQlzdGFydCA9
IHRoaXMuaW5kZXggKyAxOwoJCWZpbmlzaCA9IGxhc3RDaGVja2JveDsKCX0gZWxz
ZSB7CgkJc3RhcnQgPSBsYXN0Q2hlY2tib3g7CgkJZmluaXNoID0gdGhpcy5pbmRl
eCAtIDE7Cgl9Cglmb3IgKHZhciBpID0gc3RhcnQ7IGkgPD0gZmluaXNoOyArK2kg
KSB7CgkJY2hlY2tib3hlc1tpXS5jaGVja2VkID0gZW5kU3RhdGU7CgkJaWYoIGkg
PiBzdGFydCAmJiB0eXBlb2YgY2hlY2tib3hlc1tpXS5vbmNoYW5nZSA9PSAnZnVu
Y3Rpb24nICkKCQkJY2hlY2tib3hlc1tpXS5vbmNoYW5nZSgpOyAvLyBmaXJlIHRy
aWdnZXJzCgl9CglsYXN0Q2hlY2tib3ggPSB0aGlzLmluZGV4OwoJcmV0dXJuIHRy
dWU7Cn0KCmZ1bmN0aW9uIHRvZ2dsZV9lbGVtZW50X2FjdGl2YXRpb24oaWRhLGlk
YikgewoJaWYgKCAhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgKSB7CgkJcmV0dXJu
OwoJfQoJLy8gU2hvdyB0aGUgYXBwcm9wcmlhdGUgdXBsb2FkIHNpemUgbGltaXQg
bWVzc2FnZQoJaWYoIGlkYiA9PSAnd3BVcGxvYWRGaWxlVVJMJyApIHsKCQl2YXIg
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnbXctdXBsb2FkLW1heGZpbGVz
aXplJyApOwoJCWlmKCBlICkgZS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoKCQl2
YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnbXctdXBsb2FkLW1heGZp
bGVzaXplLXVybCcgKTsKCQlpZiggZSApIGUuc3R5bGUuZGlzcGxheSA9ICJibG9j
ayI7Cgl9CglpZiggaWRiID09ICd3cFVwbG9hZEZpbGUnICkgewoJCXZhciBlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdtdy11cGxvYWQtbWF4ZmlsZXNpemUt
dXJsJyApOwoJCWlmKCBlICkgZS5zdHlsZS5kaXNwbGF5ID0gICJub25lIjsKCgkJ
dmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ213LXVwbG9hZC1tYXhm
aWxlc2l6ZScgKTsKCQlpZiggZSApIGUuc3R5bGUuZGlzcGxheSA9ICAiYmxvY2si
OwoJfQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkYSApLmRpc2FibGVkID0g
dHJ1ZTsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBpZGIgKS5kaXNhYmxlZCA9
IGZhbHNlOwp9CgpmdW5jdGlvbiB0b2dnbGVfZWxlbWVudF9jaGVjayhpZGEsaWRi
KSB7CglpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKSB7CgkJcmV0dXJuOwoJ
fQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRhKS5jaGVja2VkPXRydWU7Cglk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZGIpLmNoZWNrZWQ9ZmFsc2U7Cn0KCi8q
CglXcml0dGVuIGJ5IEpvbmF0aGFuIFNub29rLCBodHRwOi8vd3d3LnNub29rLmNh
L2pvbmF0aGFuCglBZGQtb25zIGJ5IFJvYmVydCBOeW1hbiwgaHR0cDovL3d3dy5y
b2JlcnRueW1hbi5jb20KCUF1dGhvciBzYXlzICJUaGUgY3JlZGl0IGNvbW1lbnQg
aXMgYWxsIGl0IHRha2VzLCBubyBsaWNlbnNlLiBHbyBjcmF6eSB3aXRoIGl0ITot
KSIKCUZyb20gaHR0cDovL3d3dy5yb2JlcnRueW1hbi5jb20vMjAwNS8xMS8wNy90
aGUtdWx0aW1hdGUtZ2V0ZWxlbWVudHNieWNsYXNzbmFtZS8KKi8KZnVuY3Rpb24g
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZShvRWxtLCBzdHJUYWdOYW1lLCBvQ2xhc3NO
YW1lcyl7Cgl2YXIgYXJyUmV0dXJuRWxlbWVudHMgPSBuZXcgQXJyYXkoKTsKCWlm
ICggdHlwZW9mKCBvRWxtLmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSA9PSAiZnVu
Y3Rpb24iICkgewoJCS8qIFVzZSBhIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiB3aGVy
ZSBwb3NzaWJsZSBGRjMsIFNhZjMuMiwgT3BlcmEgOS41ICovCgkJdmFyIGFyck5h
dGl2ZVJldHVybiA9IG9FbG0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggb0NsYXNz
TmFtZXMgKTsKCQlpZiAoIHN0clRhZ05hbWUgPT0gIioiICkKCQkJcmV0dXJuIGFy
ck5hdGl2ZVJldHVybjsKCQlmb3IgKCB2YXIgaD0wOyBoIDwgYXJyTmF0aXZlUmV0
dXJuLmxlbmd0aDsgaCsrICkgewoJCQlpZiggYXJyTmF0aXZlUmV0dXJuW2hdLnRh
Z05hbWUudG9Mb3dlckNhc2UoKSA9PSBzdHJUYWdOYW1lLnRvTG93ZXJDYXNlKCkg
KQoJCQkJYXJyUmV0dXJuRWxlbWVudHNbYXJyUmV0dXJuRWxlbWVudHMubGVuZ3Ro
XSA9IGFyck5hdGl2ZVJldHVybltoXTsKCQl9CgkJcmV0dXJuIGFyclJldHVybkVs
ZW1lbnRzOwoJfQoJdmFyIGFyckVsZW1lbnRzID0gKHN0clRhZ05hbWUgPT0gIioi
ICYmIG9FbG0uYWxsKT8gb0VsbS5hbGwgOiBvRWxtLmdldEVsZW1lbnRzQnlUYWdO
YW1lKHN0clRhZ05hbWUpOwoJdmFyIGFyclJlZ0V4cENsYXNzTmFtZXMgPSBuZXcg
QXJyYXkoKTsKCWlmKHR5cGVvZiBvQ2xhc3NOYW1lcyA9PSAib2JqZWN0Iil7CgkJ
Zm9yKHZhciBpPTA7IGk8b0NsYXNzTmFtZXMubGVuZ3RoOyBpKyspewoJCQlhcnJS
ZWdFeHBDbGFzc05hbWVzW2FyclJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJ
CQluZXcgUmVnRXhwKCIoXnxcXHMpIiArIG9DbGFzc05hbWVzW2ldLnJlcGxhY2Uo
L1wtL2csICJcXC0iKSArICIoXFxzfCQpIik7CgkJfQoJfQoJZWxzZXsKCQlhcnJS
ZWdFeHBDbGFzc05hbWVzW2FyclJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJ
CW5ldyBSZWdFeHAoIihefFxccykiICsgb0NsYXNzTmFtZXMucmVwbGFjZSgvXC0v
ZywgIlxcLSIpICsgIihcXHN8JCkiKTsKCX0KCXZhciBvRWxlbWVudDsKCXZhciBi
TWF0Y2hlc0FsbDsKCWZvcih2YXIgaj0wOyBqPGFyckVsZW1lbnRzLmxlbmd0aDsg
aisrKXsKCQlvRWxlbWVudCA9IGFyckVsZW1lbnRzW2pdOwoJCWJNYXRjaGVzQWxs
ID0gdHJ1ZTsKCQlmb3IodmFyIGs9MDsgazxhcnJSZWdFeHBDbGFzc05hbWVzLmxl
bmd0aDsgaysrKXsKCQkJaWYoIWFyclJlZ0V4cENsYXNzTmFtZXNba10udGVzdChv
RWxlbWVudC5jbGFzc05hbWUpKXsKCQkJCWJNYXRjaGVzQWxsID0gZmFsc2U7CgkJ
CQlicmVhazsKCQkJfQoJCX0KCQlpZihiTWF0Y2hlc0FsbCl7CgkJCWFyclJldHVy
bkVsZW1lbnRzW2FyclJldHVybkVsZW1lbnRzLmxlbmd0aF0gPSBvRWxlbWVudDsK
CQl9Cgl9CglyZXR1cm4gKGFyclJldHVybkVsZW1lbnRzKQp9CgpmdW5jdGlvbiBy
ZWRpcmVjdFRvRnJhZ21lbnQoZnJhZ21lbnQpIHsKCXZhciBtYXRjaCA9IG5hdmln
YXRvci51c2VyQWdlbnQubWF0Y2goL0FwcGxlV2ViS2l0XC8oXGQrKS8pOwoJaWYg
KG1hdGNoKSB7CgkJdmFyIHdlYktpdFZlcnNpb24gPSBwYXJzZUludChtYXRjaFsx
XSk7CgkJaWYgKHdlYktpdFZlcnNpb24gPCA0MjApIHsKCQkJLy8gUmVsZWFzZWQg
U2FmYXJpIHcvIFdlYktpdCA0MTguOS4xIG1lc3NlcyB1cCBob3JyaWJseQoJCQkv
LyBOaWdodGxpZXMgb2YgNDIwKyBhcmUgb2sKCQkJcmV0dXJuOwoJCX0KCX0KCWlm
IChpc19nZWNrbykgewoJCS8vIE1vemlsbGEgbmVlZHMgdG8gd2FpdCB1bnRpbCBh
ZnRlciBsb2FkLCBvdGhlcndpc2UgdGhlIHdpbmRvdyBkb2Vzbid0IHNjcm9sbAoJ
CWFkZE9ubG9hZEhvb2soZnVuY3Rpb24gKCkgewoJCQlpZiAod2luZG93LmxvY2F0
aW9uLmhhc2ggPT0gIiIpCgkJCQl3aW5kb3cubG9jYXRpb24uaGFzaCA9IGZyYWdt
ZW50OwoJCX0pOwoJfSBlbHNlIHsKCQlpZiAod2luZG93LmxvY2F0aW9uLmhhc2gg
PT0gIiIpCgkJCXdpbmRvdy5sb2NhdGlvbi5oYXNoID0gZnJhZ21lbnQ7Cgl9Cn0K
Ci8qCiAqIFRhYmxlIHNvcnRpbmcgc2NyaXB0IGJhc2VkIG9uIG9uZSAoYykgMTk5
Ny0yMDA2IFN0dWFydCBMYW5ncmlkZ2UgYW5kIEpvb3N0CiAqIGRlIFZhbGs6CiAq
IGh0dHA6Ly93d3cuam9vc3RkZXZhbGsubmwvY29kZS9zb3J0YWJsZS10YWJsZS8K
ICogaHR0cDovL3d3dy5rcnlvZ2VuaXgub3JnL2NvZGUvYnJvd3Nlci9zb3J0dGFi
bGUvCiAqCiAqIEB0b2RvIGRvbid0IGJyZWFrIG9uIGNvbHNwYW5zL3Jvd3NwYW5z
IChidWcgODAyOCkKICogQHRvZG8gbGFuZ3VhZ2Utc3BlY2lmaWMgZGlnaXQgZ3Jv
dXBpbmcvZGVjaW1hbHMgKGJ1ZyA4MDYzKQogKiBAdG9kbyBzdXBwb3J0IGFsbCBh
Y2NlcHRlZCBkYXRlIGZvcm1hdHMgKGJ1ZyA4MjI2KQogKi8KCnZhciB0c19pbWFn
ZV9wYXRoID0gc3R5bGVwYXRoKyIvY29tbW9uL2ltYWdlcy8iOwp2YXIgdHNfaW1h
Z2VfdXAgPSAic29ydF91cC5naWYiOwp2YXIgdHNfaW1hZ2VfZG93biA9ICJzb3J0
X2Rvd24uZ2lmIjsKdmFyIHRzX2ltYWdlX25vbmUgPSAic29ydF9ub25lLmdpZiI7
CnZhciB0c19ldXJvcGVhbmRhdGUgPSB3Z0NvbnRlbnRMYW5ndWFnZSAhPSAiZW4i
OyAvLyBUaGUgbm9uLUFtZXJpY2FuLWluY2xpbmVkIGNhbiBjaGFuZ2UgdG8gInRy
dWUiCnZhciB0c19hbHRlcm5hdGVfcm93X2NvbG9ycyA9IGZhbHNlOwp2YXIgdHNf
bnVtYmVyX3RyYW5zZm9ybV90YWJsZSA9IG51bGw7CnZhciB0c19udW1iZXJfcmVn
ZXggPSBudWxsOwoKZnVuY3Rpb24gc29ydGFibGVzX2luaXQoKSB7Cgl2YXIgaWRu
dW0gPSAwOwoJLy8gRmluZCBhbGwgdGFibGVzIHdpdGggY2xhc3Mgc29ydGFibGUg
YW5kIG1ha2UgdGhlbSBzb3J0YWJsZQoJdmFyIHRhYmxlcyA9IGdldEVsZW1lbnRz
QnlDbGFzc05hbWUoZG9jdW1lbnQsICJ0YWJsZSIsICJzb3J0YWJsZSIpOwoJZm9y
ICh2YXIgdGkgPSAwOyB0aSA8IHRhYmxlcy5sZW5ndGggOyB0aSsrKSB7CgkJaWYg
KCF0YWJsZXNbdGldLmlkKSB7CgkJCXRhYmxlc1t0aV0uc2V0QXR0cmlidXRlKCdp
ZCcsJ3NvcnRhYmxlX3RhYmxlX2lkXycraWRudW0pOwoJCQkrK2lkbnVtOwoJCX0K
CQl0c19tYWtlU29ydGFibGUodGFibGVzW3RpXSk7Cgl9Cn0KCmZ1bmN0aW9uIHRz
X21ha2VTb3J0YWJsZSh0YWJsZSkgewoJdmFyIGZpcnN0Um93OwoJaWYgKHRhYmxl
LnJvd3MgJiYgdGFibGUucm93cy5sZW5ndGggPiAwKSB7CgkJaWYgKHRhYmxlLnRI
ZWFkICYmIHRhYmxlLnRIZWFkLnJvd3MubGVuZ3RoID4gMCkgewoJCQlmaXJzdFJv
dyA9IHRhYmxlLnRIZWFkLnJvd3NbdGFibGUudEhlYWQucm93cy5sZW5ndGgtMV07
CgkJfSBlbHNlIHsKCQkJZmlyc3RSb3cgPSB0YWJsZS5yb3dzWzBdOwoJCX0KCX0K
CWlmICghZmlyc3RSb3cpIHJldHVybjsKCgkvLyBXZSBoYXZlIGEgZmlyc3Qgcm93
OiBhc3N1bWUgaXQncyB0aGUgaGVhZGVyLCBhbmQgbWFrZSBpdHMgY29udGVudHMg
Y2xpY2thYmxlIGxpbmtzCglmb3IgKHZhciBpID0gMDsgaSA8IGZpcnN0Um93LmNl
bGxzLmxlbmd0aDsgaSsrKSB7CgkJdmFyIGNlbGwgPSBmaXJzdFJvdy5jZWxsc1tp
XTsKCQlpZiAoKCIgIitjZWxsLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiB1bnNv
cnRhYmxlICIpID09IC0xKSB7CgkJCWNlbGwuaW5uZXJIVE1MICs9ICcmbmJzcDsm
bmJzcDsnCgkJCQkrICc8YSBocmVmPSIjIiBjbGFzcz0ic29ydGhlYWRlciIgJwoJ
CQkJKyAnb25jbGljaz0idHNfcmVzb3J0VGFibGUodGhpcyk7cmV0dXJuIGZhbHNl
OyI+JwoJCQkJKyAnPHNwYW4gY2xhc3M9InNvcnRhcnJvdyI+JwoJCQkJKyAnPGlt
ZyBzcmM9IicKCQkJCSsgdHNfaW1hZ2VfcGF0aAoJCQkJKyB0c19pbWFnZV9ub25l
CgkJCQkrICciIGFsdD0iJmRhcnI7Ii8+PC9zcGFuPjwvYT4nOwoJCX0KCX0KCWlm
ICh0c19hbHRlcm5hdGVfcm93X2NvbG9ycykgewoJCXRzX2FsdGVybmF0ZSh0YWJs
ZSk7Cgl9Cn0KCmZ1bmN0aW9uIHRzX2dldElubmVyVGV4dChlbCkgewoJcmV0dXJu
IGdldElubmVyVGV4dCggZWwgKTsKfQoKZnVuY3Rpb24gdHNfcmVzb3J0VGFibGUo
bG5rKSB7CgkvLyBnZXQgdGhlIHNwYW4KCXZhciBzcGFuID0gbG5rLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdzcGFuJylbMF07CgoJdmFyIHRkID0gbG5rLnBhcmVudE5v
ZGU7Cgl2YXIgdHIgPSB0ZC5wYXJlbnROb2RlOwoJdmFyIGNvbHVtbiA9IHRkLmNl
bGxJbmRleDsKCgl2YXIgdGFibGUgPSB0ci5wYXJlbnROb2RlOwoJd2hpbGUgKHRh
YmxlICYmICEodGFibGUudGFnTmFtZSAmJiB0YWJsZS50YWdOYW1lLnRvTG93ZXJD
YXNlKCkgPT0gJ3RhYmxlJykpCgkJdGFibGUgPSB0YWJsZS5wYXJlbnROb2RlOwoJ
aWYgKCF0YWJsZSkgcmV0dXJuOwoKCWlmICh0YWJsZS5yb3dzLmxlbmd0aCA8PSAx
KSByZXR1cm47CgoJLy8gR2VuZXJhdGUgdGhlIG51bWJlciB0cmFuc2Zvcm0gdGFi
bGUgaWYgaXQncyBub3QgZG9uZSBhbHJlYWR5CglpZiAodHNfbnVtYmVyX3RyYW5z
Zm9ybV90YWJsZSA9PSBudWxsKSB7CgkJdHNfaW5pdFRyYW5zZm9ybVRhYmxlKCk7
Cgl9CgoJLy8gV29yayBvdXQgYSB0eXBlIGZvciB0aGUgY29sdW1uCgkvLyBTa2lw
IHRoZSBmaXJzdCByb3cgaWYgdGhhdCdzIHdoZXJlIHRoZSBoZWFkaW5ncyBhcmUK
CXZhciByb3dTdGFydCA9ICh0YWJsZS50SGVhZCAmJiB0YWJsZS50SGVhZC5yb3dz
Lmxlbmd0aCA+IDAgPyAwIDogMSk7CgoJdmFyIGl0bSA9ICIiOwoJZm9yICh2YXIg
aSA9IHJvd1N0YXJ0OyBpIDwgdGFibGUucm93cy5sZW5ndGg7IGkrKykgewoJCWlm
ICh0YWJsZS5yb3dzW2ldLmNlbGxzLmxlbmd0aCA+IGNvbHVtbikgewoJCQlpdG0g
PSB0c19nZXRJbm5lclRleHQodGFibGUucm93c1tpXS5jZWxsc1tjb2x1bW5dKTsK
CQkJaXRtID0gaXRtLnJlcGxhY2UoL15bXHNceGEwXSsvLCAiIikucmVwbGFjZSgv
W1xzXHhhMF0rJC8sICIiKTsKCQkJaWYgKGl0bSAhPSAiIikgYnJlYWs7CgkJfQoJ
fQoKCS8vIFRPRE86IGJ1ZyA4MjI2LCBsb2NhbGlzZWQgZGF0ZSBmb3JtYXRzCgl2
YXIgc29ydGZuID0gdHNfc29ydF9nZW5lcmljOwoJdmFyIHByZXByb2Nlc3NvciA9
IHRzX3RvTG93ZXJDYXNlOwoJaWYgKC9eXGRcZFtcLy4gLV1bYS16QS1aXXszfVtc
Ly4gLV1cZFxkXGRcZCQvLnRlc3QoaXRtKSkgewoJCXByZXByb2Nlc3NvciA9IHRz
X2RhdGVUb1NvcnRLZXk7Cgl9IGVsc2UgaWYgKC9eXGRcZFtcLy4tXVxkXGRbXC8u
LV1cZFxkXGRcZCQvLnRlc3QoaXRtKSkgewoJCXByZXByb2Nlc3NvciA9IHRzX2Rh
dGVUb1NvcnRLZXk7Cgl9IGVsc2UgaWYgKC9eXGRcZFtcLy4tXVxkXGRbXC8uLV1c
ZFxkJC8udGVzdChpdG0pKSB7CgkJcHJlcHJvY2Vzc29yID0gdHNfZGF0ZVRvU29y
dEtleTsKCS8vIHBvdW5kIGRvbGxhciBldXJvIHllbiBjdXJyZW5jeSBjZW50cwoJ
fSBlbHNlIGlmICgvKF5bXHUwMGEzJFx1MjBhY1x1MDBhNFx1MDBhNV18XHUwMGEy
JCkvLnRlc3QoaXRtKSkgewoJCXByZXByb2Nlc3NvciA9IHRzX2N1cnJlbmN5VG9T
b3J0S2V5OwoJfSBlbHNlIGlmICh0c19udW1iZXJfcmVnZXgudGVzdChpdG0pKSB7
CgkJcHJlcHJvY2Vzc29yID0gdHNfcGFyc2VGbG9hdDsKCX0KCgl2YXIgcmV2ZXJz
ZSA9IChzcGFuLmdldEF0dHJpYnV0ZSgic29ydGRpciIpID09ICdkb3duJyk7CgoJ
dmFyIG5ld1Jvd3MgPSBuZXcgQXJyYXkoKTsKCXZhciBzdGF0aWNSb3dzID0gbmV3
IEFycmF5KCk7Cglmb3IgKHZhciBqID0gcm93U3RhcnQ7IGogPCB0YWJsZS5yb3dz
Lmxlbmd0aDsgaisrKSB7CgkJdmFyIHJvdyA9IHRhYmxlLnJvd3Nbal07CgkJaWYo
KCIgIityb3cuY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiIHVuc29ydGFibGUgIikg
PCAwKSB7CgkJCXZhciBrZXlUZXh0ID0gdHNfZ2V0SW5uZXJUZXh0KHJvdy5jZWxs
c1tjb2x1bW5dKTsKCQkJdmFyIG9sZEluZGV4ID0gKHJldmVyc2UgPyAtaiA6IGop
OwoJCQl2YXIgcHJlcHJvY2Vzc2VkID0gcHJlcHJvY2Vzc29yKCBrZXlUZXh0LnJl
cGxhY2UoL15bXHNceGEwXSsvLCAiIikucmVwbGFjZSgvW1xzXHhhMF0rJC8sICIi
KSApOwoKCQkJbmV3Um93c1tuZXdSb3dzLmxlbmd0aF0gPSBuZXcgQXJyYXkocm93
LCBwcmVwcm9jZXNzZWQsIG9sZEluZGV4KTsKCQl9IGVsc2Ugc3RhdGljUm93c1tz
dGF0aWNSb3dzLmxlbmd0aF0gPSBuZXcgQXJyYXkocm93LCBmYWxzZSwgai1yb3dT
dGFydCk7Cgl9CgoJbmV3Um93cy5zb3J0KHNvcnRmbik7CgoJdmFyIGFycm93SFRN
TDsKCWlmIChyZXZlcnNlKSB7CgkJYXJyb3dIVE1MID0gJzxpbWcgc3JjPSInKyB0
c19pbWFnZV9wYXRoICsgdHNfaW1hZ2VfZG93biArICciIGFsdD0iJmRhcnI7Ii8+
JzsKCQluZXdSb3dzLnJldmVyc2UoKTsKCQlzcGFuLnNldEF0dHJpYnV0ZSgnc29y
dGRpcicsJ3VwJyk7Cgl9IGVsc2UgewoJCWFycm93SFRNTCA9ICc8aW1nIHNyYz0i
JysgdHNfaW1hZ2VfcGF0aCArIHRzX2ltYWdlX3VwICsgJyIgYWx0PSImdWFycjsi
Lz4nOwoJCXNwYW4uc2V0QXR0cmlidXRlKCdzb3J0ZGlyJywnZG93bicpOwoJfQoK
CWZvciAodmFyIGkgPSAwOyBpIDwgc3RhdGljUm93cy5sZW5ndGg7IGkrKykgewoJ
CXZhciByb3cgPSBzdGF0aWNSb3dzW2ldOwoJCW5ld1Jvd3Muc3BsaWNlKHJvd1sy
XSwgMCwgcm93KTsKCX0KCgkvLyBXZSBhcHBlbmRDaGlsZCByb3dzIHRoYXQgYWxy
ZWFkeSBleGlzdCB0byB0aGUgdGJvZHksIHNvIGl0IG1vdmVzIHRoZW0gcmF0aGVy
IHRoYW4gY3JlYXRpbmcgbmV3IG9uZXMKCS8vIGRvbid0IGRvIHNvcnRib3R0b20g
cm93cwoJZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdSb3dzLmxlbmd0aDsgaSsrKSB7
CgkJaWYgKCgiICIrbmV3Um93c1tpXVswXS5jbGFzc05hbWUrIiAiKS5pbmRleE9m
KCIgc29ydGJvdHRvbSAiKSA9PSAtMSkKCQkJdGFibGUudEJvZGllc1swXS5hcHBl
bmRDaGlsZChuZXdSb3dzW2ldWzBdKTsKCX0KCS8vIGRvIHNvcnRib3R0b20gcm93
cyBvbmx5Cglmb3IgKHZhciBpID0gMDsgaSA8IG5ld1Jvd3MubGVuZ3RoOyBpKysp
IHsKCQlpZiAoKCIgIituZXdSb3dzW2ldWzBdLmNsYXNzTmFtZSsiICIpLmluZGV4
T2YoIiBzb3J0Ym90dG9tICIpICE9IC0xKQoJCQl0YWJsZS50Qm9kaWVzWzBdLmFw
cGVuZENoaWxkKG5ld1Jvd3NbaV1bMF0pOwoJfQoKCS8vIERlbGV0ZSBhbnkgb3Ro
ZXIgYXJyb3dzIHRoZXJlIG1heSBiZSBzaG93aW5nCgl2YXIgc3BhbnMgPSBnZXRF
bGVtZW50c0J5Q2xhc3NOYW1lKHRyLCAic3BhbiIsICJzb3J0YXJyb3ciKTsKCWZv
ciAodmFyIGkgPSAwOyBpIDwgc3BhbnMubGVuZ3RoOyBpKyspIHsKCQlzcGFuc1tp
XS5pbm5lckhUTUwgPSAnPGltZyBzcmM9IicrIHRzX2ltYWdlX3BhdGggKyB0c19p
bWFnZV9ub25lICsgJyIgYWx0PSImZGFycjsiLz4nOwoJfQoJc3Bhbi5pbm5lckhU
TUwgPSBhcnJvd0hUTUw7CgoJaWYgKHRzX2FsdGVybmF0ZV9yb3dfY29sb3JzKSB7
CgkJdHNfYWx0ZXJuYXRlKHRhYmxlKTsKCX0KfQoKZnVuY3Rpb24gdHNfaW5pdFRy
YW5zZm9ybVRhYmxlKCkgewoJaWYgKCB0eXBlb2Ygd2dTZXBhcmF0b3JUcmFuc2Zv
cm1UYWJsZSA9PSAidW5kZWZpbmVkIgoJCQl8fCAoIHdnU2VwYXJhdG9yVHJhbnNm
b3JtVGFibGVbMF0gPT0gJycgJiYgd2dEaWdpdFRyYW5zZm9ybVRhYmxlWzJdID09
ICcnICkgKQoJewoJCWRpZ2l0Q2xhc3MgPSAiWzAtOSwuXSI7CgkJdHNfbnVtYmVy
X3RyYW5zZm9ybV90YWJsZSA9IGZhbHNlOwoJfSBlbHNlIHsKCQl0c19udW1iZXJf
dHJhbnNmb3JtX3RhYmxlID0ge307CgkJLy8gVW5wYWNrIHRoZSB0cmFuc2Zvcm0g
dGFibGUKCQkvLyBTZXBhcmF0b3JzCgkJYXNjaWkgPSB3Z1NlcGFyYXRvclRyYW5z
Zm9ybVRhYmxlWzBdLnNwbGl0KCJcdCIpOwoJCWxvY2FsaXNlZCA9IHdnU2VwYXJh
dG9yVHJhbnNmb3JtVGFibGVbMV0uc3BsaXQoIlx0Iik7CgkJZm9yICggdmFyIGkg
PSAwOyBpIDwgYXNjaWkubGVuZ3RoOyBpKysgKSB7CgkJCXRzX251bWJlcl90cmFu
c2Zvcm1fdGFibGVbbG9jYWxpc2VkW2ldXSA9IGFzY2lpW2ldOwoJCX0KCQkvLyBE
aWdpdHMKCQlhc2NpaSA9IHdnRGlnaXRUcmFuc2Zvcm1UYWJsZVswXS5zcGxpdCgi
XHQiKTsKCQlsb2NhbGlzZWQgPSB3Z0RpZ2l0VHJhbnNmb3JtVGFibGVbMV0uc3Bs
aXQoIlx0Iik7CgkJZm9yICggdmFyIGkgPSAwOyBpIDwgYXNjaWkubGVuZ3RoOyBp
KysgKSB7CgkJCXRzX251bWJlcl90cmFuc2Zvcm1fdGFibGVbbG9jYWxpc2VkW2ld
XSA9IGFzY2lpW2ldOwoJCX0KCgkJLy8gQ29uc3RydWN0IHJlZ2V4IGZvciBudW1i
ZXIgaWRlbnRpZmljYXRpb24KCQlkaWdpdHMgPSBbJzAnLCAnMScsICcyJywgJzMn
LCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLCAnLCcsICdcXC4nXTsKCQlt
YXhEaWdpdExlbmd0aCA9IDE7CgkJZm9yICggdmFyIGRpZ2l0IGluIHRzX251bWJl
cl90cmFuc2Zvcm1fdGFibGUgKSB7CgkJCS8vIEVzY2FwZSByZWdleCBtZXRhY2hh
cmFjdGVycwoJCQlkaWdpdHMucHVzaCgKCQkJCWRpZ2l0LnJlcGxhY2UoIC9bXFxc
XCRcKlwrXD9cLlwoXClcfFx7XH1cW1xdXC1dLywKCQkJCQlmdW5jdGlvbiggcyAp
IHsgcmV0dXJuICdcXCcgKyBzOyB9ICkKCQkJKTsKCQkJaWYgKGRpZ2l0Lmxlbmd0
aCA+IG1heERpZ2l0TGVuZ3RoKSB7CgkJCQltYXhEaWdpdExlbmd0aCA9IGRpZ2l0
Lmxlbmd0aDsKCQkJfQoJCX0KCQlpZiAoIG1heERpZ2l0TGVuZ3RoID4gMSApIHsK
CQkJZGlnaXRDbGFzcyA9ICdbJyArIGRpZ2l0cy5qb2luKCAnJywgZGlnaXRzICkg
KyAnXSc7CgkJfSBlbHNlIHsKCQkJZGlnaXRDbGFzcyA9ICcoJyArIGRpZ2l0cy5q
b2luKCAnfCcsIGRpZ2l0cyApICsgJyknOwoJCX0KCX0KCgkvLyBXZSBhbGxvdyBh
IHRyYWlsaW5nIHBlcmNlbnQgc2lnbiwgd2hpY2ggd2UganVzdCBzdHJpcC4gIFRo
aXMgd29ya3MgZmluZQoJLy8gaWYgcGVyY2VudHMgYW5kIHJlZ3VsYXIgbnVtYmVy
cyBhcmVuJ3QgYmVpbmcgbWl4ZWQuCgl0c19udW1iZXJfcmVnZXggPSBuZXcgUmVn
RXhwKAoJCSJeKCIgKwoJCQkiWystXT9bMC05XVswLTksXSooXFwuWzAtOSxdKik/
KEVbKy1dP1swLTldWzAtOSxdKik/IiArIC8vIEZvcnRyYW4tc3R5bGUgc2NpZW50
aWZpYwoJCQkifCIgKwoJCQkiWystXT8iICsgZGlnaXRDbGFzcyArICIrJT8iICsg
Ly8gR2VuZXJpYyBsb2NhbGlzZWQKCQkiKSQiLCAiaSIKCSk7Cn0KCmZ1bmN0aW9u
IHRzX3RvTG93ZXJDYXNlKCBzICkgewoJcmV0dXJuIHMudG9Mb3dlckNhc2UoKTsK
fQoKZnVuY3Rpb24gdHNfZGF0ZVRvU29ydEtleShkYXRlKSB7CgkvLyB5Mmsgbm90
ZXM6IHR3byBkaWdpdCB5ZWFycyBsZXNzIHRoYW4gNTAgYXJlIHRyZWF0ZWQgYXMg
MjBYWCwgZ3JlYXRlciB0aGFuIDUwIGFyZSB0cmVhdGVkIGFzIDE5WFgKCWlmIChk
YXRlLmxlbmd0aCA9PSAxMSkgewoJCXN3aXRjaCAoZGF0ZS5zdWJzdHIoMywzKS50
b0xvd2VyQ2FzZSgpKSB7CgkJCWNhc2UgImphbiI6IHZhciBtb250aCA9ICIwMSI7
IGJyZWFrOwoJCQljYXNlICJmZWIiOiB2YXIgbW9udGggPSAiMDIiOyBicmVhazsK
CQkJY2FzZSAibWFyIjogdmFyIG1vbnRoID0gIjAzIjsgYnJlYWs7CgkJCWNhc2Ug
ImFwciI6IHZhciBtb250aCA9ICIwNCI7IGJyZWFrOwoJCQljYXNlICJtYXkiOiB2
YXIgbW9udGggPSAiMDUiOyBicmVhazsKCQkJY2FzZSAianVuIjogdmFyIG1vbnRo
ID0gIjA2IjsgYnJlYWs7CgkJCWNhc2UgImp1bCI6IHZhciBtb250aCA9ICIwNyI7
IGJyZWFrOwoJCQljYXNlICJhdWciOiB2YXIgbW9udGggPSAiMDgiOyBicmVhazsK
CQkJY2FzZSAic2VwIjogdmFyIG1vbnRoID0gIjA5IjsgYnJlYWs7CgkJCWNhc2Ug
Im9jdCI6IHZhciBtb250aCA9ICIxMCI7IGJyZWFrOwoJCQljYXNlICJub3YiOiB2
YXIgbW9udGggPSAiMTEiOyBicmVhazsKCQkJY2FzZSAiZGVjIjogdmFyIG1vbnRo
ID0gIjEyIjsgYnJlYWs7CgkJCS8vIGRlZmF1bHQ6IHZhciBtb250aCA9ICIwMCI7
CgkJfQoJCXJldHVybiBkYXRlLnN1YnN0cig3LDQpK21vbnRoK2RhdGUuc3Vic3Ry
KDAsMik7Cgl9IGVsc2UgaWYgKGRhdGUubGVuZ3RoID09IDEwKSB7CgkJaWYgKHRz
X2V1cm9wZWFuZGF0ZSA9PSBmYWxzZSkgewoJCQlyZXR1cm4gZGF0ZS5zdWJzdHIo
Niw0KStkYXRlLnN1YnN0cigwLDIpK2RhdGUuc3Vic3RyKDMsMik7CgkJfSBlbHNl
IHsKCQkJcmV0dXJuIGRhdGUuc3Vic3RyKDYsNCkrZGF0ZS5zdWJzdHIoMywyKStk
YXRlLnN1YnN0cigwLDIpOwoJCX0KCX0gZWxzZSBpZiAoZGF0ZS5sZW5ndGggPT0g
OCkgewoJCXlyID0gZGF0ZS5zdWJzdHIoNiwyKTsKCQlpZiAocGFyc2VJbnQoeXIp
IDwgNTApIHsKCQkJeXIgPSAnMjAnK3lyOwoJCX0gZWxzZSB7CgkJCXlyID0gJzE5
Jyt5cjsKCQl9CgkJaWYgKHRzX2V1cm9wZWFuZGF0ZSA9PSB0cnVlKSB7CgkJCXJl
dHVybiB5citkYXRlLnN1YnN0cigzLDIpK2RhdGUuc3Vic3RyKDAsMik7CgkJfSBl
bHNlIHsKCQkJcmV0dXJuIHlyK2RhdGUuc3Vic3RyKDAsMikrZGF0ZS5zdWJzdHIo
MywyKTsKCQl9Cgl9CglyZXR1cm4gIjAwMDAwMDAwIjsKfQoKZnVuY3Rpb24gdHNf
cGFyc2VGbG9hdCggcyApIHsKCWlmICggIXMgKSB7CgkJcmV0dXJuIDA7Cgl9Cglp
ZiAodHNfbnVtYmVyX3RyYW5zZm9ybV90YWJsZSAhPSBmYWxzZSkgewoJCXZhciBu
ZXdOdW0gPSAnJywgYzsKCgkJZm9yICggdmFyIHAgPSAwOyBwIDwgcy5sZW5ndGg7
IHArKyApIHsKCQkJYyA9IHMuY2hhckF0KCBwICk7CgkJCWlmIChjIGluIHRzX251
bWJlcl90cmFuc2Zvcm1fdGFibGUpIHsKCQkJCW5ld051bSArPSB0c19udW1iZXJf
dHJhbnNmb3JtX3RhYmxlW2NdOwoJCQl9IGVsc2UgewoJCQkJbmV3TnVtICs9IGM7
CgkJCX0KCQl9CgkJcyA9IG5ld051bTsKCX0KCgludW0gPSBwYXJzZUZsb2F0KHMu
cmVwbGFjZSgvLC9nLCAiIikpOwoJcmV0dXJuIChpc05hTihudW0pID8gMCA6IG51
bSk7Cn0KCmZ1bmN0aW9uIHRzX2N1cnJlbmN5VG9Tb3J0S2V5KCBzICkgewoJcmV0
dXJuIHRzX3BhcnNlRmxvYXQocy5yZXBsYWNlKC9bXjAtOS4sXS9nLCcnKSk7Cn0K
CmZ1bmN0aW9uIHRzX3NvcnRfZ2VuZXJpYyhhLCBiKSB7CglyZXR1cm4gYVsxXSA8
IGJbMV0gPyAtMSA6IGFbMV0gPiBiWzFdID8gMSA6IGFbMl0gLSBiWzJdOwp9Cgpm
dW5jdGlvbiB0c19hbHRlcm5hdGUodGFibGUpIHsKCS8vIFRha2Ugb2JqZWN0IHRh
YmxlIGFuZCBnZXQgYWxsIGl0J3MgdGJvZGllcy4KCXZhciB0YWJsZUJvZGllcyA9
IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpOwoJLy8gTG9vcCB0
aHJvdWdoIHRoZXNlIHRib2RpZXMKCWZvciAodmFyIGkgPSAwOyBpIDwgdGFibGVC
b2RpZXMubGVuZ3RoOyBpKyspIHsKCQkvLyBUYWtlIHRoZSB0Ym9keSwgYW5kIGdl
dCBhbGwgaXQncyByb3dzCgkJdmFyIHRhYmxlUm93cyA9IHRhYmxlQm9kaWVzW2ld
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ciIpOwoJCS8vIExvb3AgdGhyb3VnaCB0
aGVzZSByb3dzCgkJLy8gU3RhcnQgYXQgMSBiZWNhdXNlIHdlIHdhbnQgdG8gbGVh
dmUgdGhlIGhlYWRpbmcgcm93IHVudG91Y2hlZAoJCWZvciAodmFyIGogPSAwOyBq
IDwgdGFibGVSb3dzLmxlbmd0aDsgaisrKSB7CgkJCS8vIENoZWNrIGlmIGogaXMg
ZXZlbiwgYW5kIGFwcGx5IGNsYXNzZXMgZm9yIGJvdGggcG9zc2libGUgcmVzdWx0
cwoJCQl2YXIgb2xkQ2xhc3NlcyA9IHRhYmxlUm93c1tqXS5jbGFzc05hbWUuc3Bs
aXQoIiAiKTsKCQkJdmFyIG5ld0NsYXNzTmFtZSA9ICIiOwoJCQlmb3IgKHZhciBr
ID0gMDsgayA8IG9sZENsYXNzZXMubGVuZ3RoOyBrKyspIHsKCQkJCWlmIChvbGRD
bGFzc2VzW2tdICE9ICIiICYmIG9sZENsYXNzZXNba10gIT0gImV2ZW4iICYmIG9s
ZENsYXNzZXNba10gIT0gIm9kZCIpCgkJCQkJbmV3Q2xhc3NOYW1lICs9IG9sZENs
YXNzZXNba10gKyAiICI7CgkJCX0KCQkJdGFibGVSb3dzW2pdLmNsYXNzTmFtZSA9
IG5ld0NsYXNzTmFtZSArIChqICUgMiA9PSAwID8gImV2ZW4iIDogIm9kZCIpOwoJ
CX0KCX0KfQoKLyoKICogRW5kIG9mIHRhYmxlIHNvcnRpbmcgY29kZQogKi8KCgov
KioKICogQWRkIGEgY3V0ZSBsaXR0bGUgYm94IGF0IHRoZSB0b3Agb2YgdGhlIHNj
cmVlbiB0byBpbmZvcm0gdGhlIHVzZXIgb2YKICogc29tZXRoaW5nLCByZXBsYWNp
bmcgYW55IHByZWV4aXN0aW5nIG1lc3NhZ2UuCiAqCiAqIEBwYXJhbSBTdHJpbmcg
LW9yLSBEb20gT2JqZWN0IG1lc3NhZ2UgSFRNTCB0byBiZSBwdXQgaW5zaWRlIHRo
ZSByaWdodCBkaXYKICogQHBhcmFtIFN0cmluZyBjbGFzc05hbWUgICBVc2VkIGlu
IGFkZGluZyBhIGNsYXNzOyBzaG91bGQgYmUgZGlmZmVyZW50IGZvciBlYWNoCiAq
ICAgY2FsbCB0byBhbGxvdyBDU1MvSlMgdG8gaGlkZSBkaWZmZXJlbnQgYm94ZXMu
ICBudWxsID0gbm8gY2xhc3MgdXNlZC4KICogQHJldHVybiBCb29sZWFuICAgICAg
IFRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24gZmFpbHVyZQogKi8KZnVuY3Rpb24g
anNNc2coIG1lc3NhZ2UsIGNsYXNzTmFtZSApIHsKCWlmICggIWRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkICkgewoJCXJldHVybiBmYWxzZTsKCX0KCS8vIFdlIHNwZWNp
YWwtY2FzZSBza2luIHN0cnVjdHVyZXMgcHJvdmlkZWQgYnkgdGhlIHNvZnR3YXJl
LiAgU2tpbnMgdGhhdAoJLy8gY2hvb3NlIHRvIGFiYW5kb24gb3Igc2lnbmlmaWNh
bnRseSBtb2RpZnkgb3VyIGZvcm1hdHRpbmcgY2FuIGp1c3QgZGVmaW5lCgkvLyBh
biBtdy1qcy1tZXNzYWdlIGRpdiB0byBzdGFydCB3aXRoLgoJdmFyIG1lc3NhZ2VE
aXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ213LWpzLW1lc3NhZ2UnICk7
CglpZiAoICFtZXNzYWdlRGl2ICkgewoJCW1lc3NhZ2VEaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCAnZGl2JyApOwoJCWlmICggZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoICdjb2x1bW4tY29udGVudCcgKQoJCSYmIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCAnY29udGVudCcgKSApIHsKCQkJLy8gTW9ub0Jvb2ssIHByZXN1bWFi
bHkKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdjb250ZW50JyApLmluc2Vy
dEJlZm9yZSgKCQkJCW1lc3NhZ2VEaXYsCgkJCQlkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCggJ2NvbnRlbnQnICkuZmlyc3RDaGlsZAoJCQkpOwoJCX0gZWxzZSBpZiAo
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZW50JykKCQkmJiBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCggJ2FydGljbGUnICkgKSB7CgkJCS8vIE5vbi1Nb25v
Ym9vayBidXQgc3RpbGwgcmVjb2duaXphYmxlIChvbGQtc3R5bGUpCgkJCWRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCAnYXJ0aWNsZScpLmluc2VydEJlZm9yZSgKCQkJ
CW1lc3NhZ2VEaXYsCgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2FydGlj
bGUnICkuZmlyc3RDaGlsZAoJCQkpOwoJCX0gZWxzZSB7CgkJCXJldHVybiBmYWxz
ZTsKCQl9Cgl9CgoJbWVzc2FnZURpdi5zZXRBdHRyaWJ1dGUoICdpZCcsICdtdy1q
cy1tZXNzYWdlJyApOwoJbWVzc2FnZURpdi5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2Nr
JzsKCWlmKCBjbGFzc05hbWUgKSB7CgkJbWVzc2FnZURpdi5zZXRBdHRyaWJ1dGUo
ICdjbGFzcycsICdtdy1qcy1tZXNzYWdlLScrY2xhc3NOYW1lICk7Cgl9CgoJaWYg
KHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JykgewoJCXdoaWxlIChtZXNzYWdl
RGl2Lmhhc0NoaWxkTm9kZXMoKSkgLy8gUmVtb3ZlIG9sZCBjb250ZW50CgkJCW1l
c3NhZ2VEaXYucmVtb3ZlQ2hpbGQobWVzc2FnZURpdi5maXJzdENoaWxkKTsKCQlt
ZXNzYWdlRGl2LmFwcGVuZENoaWxkIChtZXNzYWdlKTsgLy8gQXBwZW5kIG5ldyBj
b250ZW50Cgl9CgllbHNlIHsKCQltZXNzYWdlRGl2LmlubmVySFRNTCA9IG1lc3Nh
Z2U7Cgl9CglyZXR1cm4gdHJ1ZTsKfQoKLyoqCiAqIEluamVjdCBhIGN1dGUgbGl0
dGxlIHByb2dyZXNzIHNwaW5uZXIgYWZ0ZXIgdGhlIHNwZWNpZmllZCBlbGVtZW50
CiAqCiAqIEBwYXJhbSBlbGVtZW50IEVsZW1lbnQgdG8gaW5qZWN0IGFmdGVyCiAq
IEBwYXJhbSBpZCBJZGVudGlmaWVyIHN0cmluZyAoZm9yIHVzZSB3aXRoIHJlbW92
ZVNwaW5uZXIoKSwgYmVsb3cpCiAqLwpmdW5jdGlvbiBpbmplY3RTcGlubmVyKCBl
bGVtZW50LCBpZCApIHsKCXZhciBzcGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCggImltZyIgKTsKCXNwaW5uZXIuaWQgPSAibXctc3Bpbm5lci0iICsgaWQ7
CglzcGlubmVyLnNyYyA9IHN0eWxlcGF0aCArICIvY29tbW9uL2ltYWdlcy9zcGlu
bmVyLmdpZiI7CglzcGlubmVyLmFsdCA9IHNwaW5uZXIudGl0bGUgPSAiLi4uIjsK
CWlmKCBlbGVtZW50Lm5leHRTaWJsaW5nICkgewoJCWVsZW1lbnQucGFyZW50Tm9k
ZS5pbnNlcnRCZWZvcmUoIHNwaW5uZXIsIGVsZW1lbnQubmV4dFNpYmxpbmcgKTsK
CX0gZWxzZSB7CgkJZWxlbWVudC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKCBzcGlu
bmVyICk7Cgl9Cn0KCi8qKgogKiBSZW1vdmUgYSBwcm9ncmVzcyBzcGlubmVyIGFk
ZGVkIHdpdGggaW5qZWN0U3Bpbm5lcigpCiAqCiAqIEBwYXJhbSBpZCBJZGVudGlm
aWVyIHN0cmluZwogKi8KZnVuY3Rpb24gcmVtb3ZlU3Bpbm5lciggaWQgKSB7Cgl2
YXIgc3Bpbm5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAibXctc3Bpbm5l
ci0iICsgaWQgKTsKCWlmKCBzcGlubmVyICkgewoJCXNwaW5uZXIucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZCggc3Bpbm5lciApOwoJfQp9CgpmdW5jdGlvbiBydW5Pbmxv
YWRIb29rKCkgewoJLy8gZG9uJ3QgcnVuIGFueXRoaW5nIGJlbG93IHRoaXMgZm9y
IG5vbi1kb20gYnJvd3NlcnMKCWlmIChkb25lT25sb2FkSG9vayB8fCAhKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkICYmIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKSkgewoJCXJldHVybjsKCX0KCgkvLyBzZXQgdGhpcyBiZWZvcmUgcnVubmlu
ZyBhbnkgaG9va3MsIHNpbmNlIGFueSBlcnJvcnMgYmVsb3cKCS8vIG1pZ2h0IGNh
dXNlIHRoZSBmdW5jdGlvbiB0byB0ZXJtaW5hdGUgcHJlbWF0dXJlbHkKCWRvbmVP
bmxvYWRIb29rID0gdHJ1ZTsKCgl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggbnVs
bCApOwoJYWtleXR0KCBudWxsICk7CglzZXR1cENoZWNrYm94U2hpZnRDbGljaygp
OwoJc29ydGFibGVzX2luaXQoKTsKCgkvLyBSdW4gYW55IGFkZGVkLW9uIGZ1bmN0
aW9ucwoJZm9yICh2YXIgaSA9IDA7IGkgPCBvbmxvYWRGdW5jdHMubGVuZ3RoOyBp
KyspIHsKCQlvbmxvYWRGdW5jdHNbaV0oKTsKCX0KfQoKLyoqCiAqIEFkZCBhbiBl
dmVudCBoYW5kbGVyIHRvIGFuIGVsZW1lbnQKICoKICogQHBhcmFtIEVsZW1lbnQg
ZWxlbWVudCBFbGVtZW50IHRvIGFkZCBoYW5kbGVyIHRvCiAqIEBwYXJhbSBTdHJp
bmcgYXR0YWNoIEV2ZW50IHRvIGF0dGFjaCB0bwogKiBAcGFyYW0gY2FsbGFibGUg
aGFuZGxlciBFdmVudCBoYW5kbGVyIGNhbGxiYWNrCiAqLwpmdW5jdGlvbiBhZGRI
YW5kbGVyKCBlbGVtZW50LCBhdHRhY2gsIGhhbmRsZXIgKSB7CglpZiggd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIgKSB7CgkJZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCBhdHRhY2gsIGhhbmRsZXIsIGZhbHNlICk7Cgl9IGVsc2UgaWYoIHdpbmRvdy5h
dHRhY2hFdmVudCApIHsKCQllbGVtZW50LmF0dGFjaEV2ZW50KCAnb24nICsgYXR0
YWNoLCBoYW5kbGVyICk7Cgl9Cn0KCi8qKgogKiBBZGQgYSBjbGljayBldmVudCBo
YW5kbGVyIHRvIGFuIGVsZW1lbnQKICoKICogQHBhcmFtIEVsZW1lbnQgZWxlbWVu
dCBFbGVtZW50IHRvIGFkZCBoYW5kbGVyIHRvCiAqIEBwYXJhbSBjYWxsYWJsZSBo
YW5kbGVyIEV2ZW50IGhhbmRsZXIgY2FsbGJhY2sKICovCmZ1bmN0aW9uIGFkZENs
aWNrSGFuZGxlciggZWxlbWVudCwgaGFuZGxlciApIHsKCWFkZEhhbmRsZXIoIGVs
ZW1lbnQsICdjbGljaycsIGhhbmRsZXIgKTsKfQoKLyoqCiAqIFJlbW92ZXMgYW4g
ZXZlbnQgaGFuZGxlciBmcm9tIGFuIGVsZW1lbnQKICoKICogQHBhcmFtIEVsZW1l
bnQgZWxlbWVudCBFbGVtZW50IHRvIHJlbW92ZSBoYW5kbGVyIGZyb20KICogQHBh
cmFtIFN0cmluZyByZW1vdmUgRXZlbnQgdG8gcmVtb3ZlCiAqIEBwYXJhbSBjYWxs
YWJsZSBoYW5kbGVyIEV2ZW50IGhhbmRsZXIgY2FsbGJhY2sgdG8gcmVtb3ZlCiAq
LwpmdW5jdGlvbiByZW1vdmVIYW5kbGVyKCBlbGVtZW50LCByZW1vdmUsIGhhbmRs
ZXIgKSB7CglpZiggd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIgKSB7CgkJZWxl
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCByZW1vdmUsIGhhbmRsZXIsIGZhbHNl
ICk7Cgl9IGVsc2UgaWYoIHdpbmRvdy5kZXRhY2hFdmVudCApIHsKCQllbGVtZW50
LmRldGFjaEV2ZW50KCAnb24nICsgcmVtb3ZlLCBoYW5kbGVyICk7Cgl9Cn0KLy9u
b3RlOiBhbGwgc2tpbnMgc2hvdWxkIGNhbGwgcnVuT25sb2FkSG9vaygpIGF0IHRo
ZSBlbmQgb2YgaHRtbCBvdXRwdXQsCi8vICAgICAgc28gdGhlIGJlbG93IHNob3Vs
ZCBiZSByZWR1bmRhbnQuIEl0J3MgdGhlcmUganVzdCBpbiBjYXNlLgpob29rRXZl
bnQoImxvYWQiLCBydW5PbmxvYWRIb29rKTsK

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=ajax.js
Content-Type: application/x-javascript; charset=utf-8; name=ajax.js
Content-Location: http://es.wikipedia.org/skins-1.5/common/ajax.js?233zz2
Content-Transfer-Encoding: Base64

Ly8gcmVtb3RlIHNjcmlwdGluZyBsaWJyYXJ5Ci8vIChjKSBjb3B5cmlnaHQgMjAw
NSBtb2Rlcm5tZXRob2QsIGluYwp2YXIgc2FqYXhfZGVidWdfbW9kZSA9IGZhbHNl
Owp2YXIgc2FqYXhfcmVxdWVzdF90eXBlID0gIkdFVCI7CgovKioKKiBpZiBzYWph
eF9kZWJ1Z19tb2RlIGlzIHRydWUsIHRoaXMgZnVuY3Rpb24gb3V0cHV0cyBnaXZl
biB0aGUgbWVzc2FnZSBpbnRvIAoqIHRoZSBlbGVtZW50IHdpdGggaWQgPSBzYWph
eF9kZWJ1ZzsgaWYgbm8gc3VjaCBlbGVtZW50IGV4aXN0cyBpbiB0aGUgZG9jdW1l
bnQsIAoqIGl0IGlzIGluamVjdGVkLgoqLwpmdW5jdGlvbiBzYWpheF9kZWJ1Zyh0
ZXh0KSB7CglpZiAoIXNhamF4X2RlYnVnX21vZGUpIHJldHVybiBmYWxzZTsKCgl2
YXIgZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhamF4X2RlYnVnJyk7CgoJ
aWYgKCFlKSB7CgkJZT0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwoJCWUu
Y2xhc3NOYW1lPSAnc2FqYXhfZGVidWcnOwoJCWUuaWQ9ICdzYWpheF9kZWJ1Zyc7
CgoJCXZhciBiPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIp
WzBdOwoKCQlpZiAoYi5maXJzdENoaWxkKSBiLmluc2VydEJlZm9yZShlLCBiLmZp
cnN0Q2hpbGQpOwoJCWVsc2UgYi5hcHBlbmRDaGlsZChlKTsKCX0KCgl2YXIgbT0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgltLmFwcGVuZENoaWxkKCBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggdGV4dCApICk7CgoJZS5hcHBlbmRDaGls
ZCggbSApOwoKCXJldHVybiB0cnVlOwp9CgovKioKKiBjb21wYXRpYmlsaXR5IHdy
YXBwZXIgZm9yIGNyZWF0aW5nIGEgbmV3IFhNTEh0dHBSZXF1ZXN0IG9iamVjdC4K
Ki8KZnVuY3Rpb24gc2FqYXhfaW5pdF9vYmplY3QoKSB7CglzYWpheF9kZWJ1Zygi
c2FqYXhfaW5pdF9vYmplY3QoKSBjYWxsZWQuLiIpCgl2YXIgQTsKCXRyeSB7CgkJ
Ly8gVHJ5IHRoZSBuZXcgc3R5bGUgYmVmb3JlIEFjdGl2ZVggc28gd2UgZG9uJ3QK
CQkvLyB1bm5lY2Vzc2FyaWx5IHRyaWdnZXIgd2FybmluZ3MgaW4gSUUgNyB3aGVu
CgkJLy8gc2V0IHRvIHByb21wdCBhYm91dCBBY3RpdmVYIHVzYWdlCgkJQSA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOwoJfSBjYXRjaCAoZSkgewoJCXRyeSB7CgkJCUE9
bmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CgkJfSBjYXRjaCAo
ZSkgewoJCQl0cnkgewoJCQkJQT1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0
LlhNTEhUVFAiKTsKCQkJfSBjYXRjaCAob2MpIHsKCQkJCUE9bnVsbDsKCQkJfQoJ
CX0KCX0KCWlmICghQSkKCQlzYWpheF9kZWJ1ZygiQ291bGQgbm90IGNyZWF0ZSBj
b25uZWN0aW9uIG9iamVjdC4iKTsKCglyZXR1cm4gQTsKfQoKLyoqCiogUGVyZm9y
bSBhbiBhamF4IGNhbGwgdG8gbWVkaWF3aWtpLiBDYWxscyBhcmUgaGFuZGVsZWQg
YnkgQWpheERpc3BhdGNoZXIucGhwCiogICBmdW5jX25hbWUgLSB0aGUgbmFtZSBv
ZiB0aGUgZnVuY3Rpb24gdG8gY2FsbC4gTXVzdCBiZSByZWdpc3RlcmVkIGluICR3
Z0FqYXhFeHBvcnRMaXN0CiogICBhcmdzIC0gYW4gYXJyYXkgb2YgYXJndW1lbnRz
IHRvIHRoYXQgZnVuY3Rpb24KKiAgIHRhcmdldCAtIHRoZSB0YXJnZXQgdGhhdCB3
aWxsIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsLiBJZiB0aGlzIGlzIGEg
ZnVuY3Rpb24sCiogICAgICAgICAgICBpZiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRo
ZSBYTUxIdHRwUmVxdWVzdCBhcyBhIHBhcmFtZXRlcjsgaWYgaXQncyBhbiBpbnB1
dAoqICAgICAgICAgICAgZWxlbWVudCwgaXRzIHZhbHVlIHdpbGwgYmUgc2V0IHRv
IHRoZSByZXN1bHRUZXh0OyBpZiBpdCdzIGFub3RoZXIgdHlwZSBvZgoqICAgICAg
ICAgICAgZWxlbWVudCwgaXRzIGlubmVySFRNTCB3aWxsIGJlIHNldCB0byB0aGUg
cmVzdWx0VGV4dC4KKgoqIEV4YW1wbGU6CiogICAgc2FqYXhfZG9fY2FsbCgnZG9G
b28nLCBbMSwgMiwgM10sIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG93Rm9v
IikpOwoqCiogVGhpcyB3aWxsIGNhbGwgdGhlIGRvRm9vIGZ1bmN0aW9uIHZpYSBN
ZWRpYVdpa2kncyBBamF4RGlzcGF0Y2hlciwgd2l0aAoqICgxLCAyLCAzKSBhcyB0
aGUgcGFyYW1ldGVyIGxpc3QsIGFuZCB3aWxsIHNob3cgdGhlIHJlc3VsdCBpbiB0
aGUgZWxlbWVudAoqIHdpdGggaWQgPSBzaG93Rm9vCiovCmZ1bmN0aW9uIHNhamF4
X2RvX2NhbGwoZnVuY19uYW1lLCBhcmdzLCB0YXJnZXQpIHsKCXZhciBpLCB4LCBu
OwoJdmFyIHVyaTsKCXZhciBwb3N0X2RhdGE7Cgl1cmkgPSB3Z1NlcnZlciArCgkJ
KCh3Z1NjcmlwdCA9PSBudWxsKSA/ICh3Z1NjcmlwdFBhdGggKyAiL2luZGV4LnBo
cCIpIDogd2dTY3JpcHQpICsKCQkiP2FjdGlvbj1hamF4IjsKCWlmIChzYWpheF9y
ZXF1ZXN0X3R5cGUgPT0gIkdFVCIpIHsKCQlpZiAodXJpLmluZGV4T2YoIj8iKSA9
PSAtMSkKCQkJdXJpID0gdXJpICsgIj9ycz0iICsgZW5jb2RlVVJJQ29tcG9uZW50
KGZ1bmNfbmFtZSk7CgkJZWxzZQoJCQl1cmkgPSB1cmkgKyAiJnJzPSIgKyBlbmNv
ZGVVUklDb21wb25lbnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJn
cy5sZW5ndGg7IGkrKykKCQkJdXJpID0gdXJpICsgIiZyc2FyZ3NbXT0iICsgZW5j
b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJCS8vdXJpID0gdXJpICsgIiZyc3Ju
ZD0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJcG9zdF9kYXRhID0gbnVsbDsK
CX0gZWxzZSB7CgkJcG9zdF9kYXRhID0gInJzPSIgKyBlbmNvZGVVUklDb21wb25l
bnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkr
KykKCQkJcG9zdF9kYXRhID0gcG9zdF9kYXRhICsgIiZyc2FyZ3NbXT0iICsgZW5j
b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJfQoJeCA9IHNhamF4X2luaXRfb2Jq
ZWN0KCk7CglpZiAoIXgpIHsKCQlhbGVydCgiQUpBWCBub3Qgc3VwcG9ydGVkIik7
CgkJcmV0dXJuIGZhbHNlOwoJfQoKCXRyeSB7CgkJeC5vcGVuKHNhamF4X3JlcXVl
c3RfdHlwZSwgdXJpLCB0cnVlKTsKCX0gY2F0Y2ggKGUpIHsKCQlpZiAod2luZG93
LmxvY2F0aW9uLmhvc3RuYW1lID09ICJsb2NhbGhvc3QiKSB7CgkJCWFsZXJ0KCJZ
b3VyIGJyb3dzZXIgYmxvY2tzIFhNTEh0dHBSZXF1ZXN0IHRvICdsb2NhbGhvc3Qn
LCB0cnkgdXNpbmcgYSByZWFsIGhvc3RuYW1lIGZvciBkZXZlbG9wbWVudC90ZXN0
aW5nLiIpOwoJCX0KCQl0aHJvdyBlOwoJfQoJaWYgKHNhamF4X3JlcXVlc3RfdHlw
ZSA9PSAiUE9TVCIpIHsKCQl4LnNldFJlcXVlc3RIZWFkZXIoIk1ldGhvZCIsICJQ
T1NUICIgKyB1cmkgKyAiIEhUVFAvMS4xIik7CgkJeC5zZXRSZXF1ZXN0SGVhZGVy
KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv
ZGVkIik7Cgl9Cgl4LnNldFJlcXVlc3RIZWFkZXIoIlByYWdtYSIsICJjYWNoZT15
ZXMiKTsKCXguc2V0UmVxdWVzdEhlYWRlcigiQ2FjaGUtQ29udHJvbCIsICJuby10
cmFuc2Zvcm0iKTsKCXgub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7
CgkJaWYgKHgucmVhZHlTdGF0ZSAhPSA0KQoJCQlyZXR1cm47CgoJCXNhamF4X2Rl
YnVnKCJyZWNlaXZlZCAoIiArIHguc3RhdHVzICsgIiAiICsgeC5zdGF0dXNUZXh0
ICsgIikgIiArIHgucmVzcG9uc2VUZXh0KTsKCgkJLy9pZiAoeC5zdGF0dXMgIT0g
MjAwKQoJCS8vCWFsZXJ0KCJFcnJvcjogIiArIHguc3RhdHVzICsgIiAiICsgeC5z
dGF0dXNUZXh0ICsgIjogIiArIHgucmVzcG9uc2VUZXh0KTsKCQkvL2Vsc2UKCgkJ
aWYgKCB0eXBlb2YoIHRhcmdldCApID09ICdmdW5jdGlvbicgKSB7CgkJCXRhcmdl
dCggeCApOwoJCX0KCQllbHNlIGlmICggdHlwZW9mKCB0YXJnZXQgKSA9PSAnb2Jq
ZWN0JyApIHsKCQkJaWYgKCB0YXJnZXQudGFnTmFtZSA9PSAnSU5QVVQnICkgewoJ
CQkJaWYgKHguc3RhdHVzID09IDIwMCkgdGFyZ2V0LnZhbHVlPSB4LnJlc3BvbnNl
VGV4dDsKCQkJCS8vZWxzZSBhbGVydCgiRXJyb3I6ICIgKyB4LnN0YXR1cyArICIg
IiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIpIik7
CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiAoeC5zdGF0dXMgPT0gMjAwKSB0YXJnZXQu
aW5uZXJIVE1MID0geC5yZXNwb25zZVRleHQ7CgkJCQllbHNlIHRhcmdldC5pbm5l
ckhUTUw9ICI8ZGl2IGNsYXNzPSdlcnJvcic+RXJyb3I6ICIgKyB4LnN0YXR1cyAr
ICIgIiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIp
PC9kaXY+IjsKCQkJfQoJCX0KCQllbHNlIHsKCQkJYWxlcnQoImJhZCB0YXJnZXQg
Zm9yIHNhamF4X2RvX2NhbGw6IG5vdCBhIGZ1bmN0aW9uIG9yIG9iamVjdDogIiAr
IHRhcmdldCk7CgkJfQoKCQlyZXR1cm47Cgl9CgoJc2FqYXhfZGVidWcoZnVuY19u
YW1lICsgIiB1cmkgPSAiICsgdXJpICsgIiAvIHBvc3QgPSAiICsgcG9zdF9kYXRh
KTsKCXguc2VuZChwb3N0X2RhdGEpOwoJc2FqYXhfZGVidWcoZnVuY19uYW1lICsg
IiB3YWl0aW5nLi4iKTsKCWRlbGV0ZSB4OwoKCXJldHVybiB0cnVlOwp9CgovKioK
ICogQHJldHVybiBib29sZWFuIHdoZXRoZXIgdGhlIGJyb3dzZXIgc3VwcG9ydHMg
WE1MSHR0cFJlcXVlc3QKICovCmZ1bmN0aW9uIHdmU3VwcG9ydHNBamF4KCkgewoJ
dmFyIHJlcXVlc3QgPSBzYWpheF9pbml0X29iamVjdCgpOwoJdmFyIHN1cHBvcnRz
QWpheCA9IHJlcXVlc3QgPyB0cnVlIDogZmFsc2U7CglkZWxldGUgcmVxdWVzdDsK
CXJldHVybiBzdXBwb3J0c0FqYXg7Cn0KCg==

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=mwsuggest.js
Content-Type: application/x-javascript; charset=utf-8; name=mwsuggest.js
Content-Location: http://es.wikipedia.org/skins-1.5/common/mwsuggest.js?233zz2
Content-Transfer-Encoding: Base64

LyoKICogT3BlblNlYXJjaCBhamF4IHN1Z2dlc3Rpb24gZW5naW5lIGZvciBNZWRp
YVdpa2kKICoKICogdXNlcyBjb3JlIE1lZGlhV2lraSBvcGVuIHNlYXJjaCBzdXBw
b3J0IHRvIGZldGNoIHN1Z2dlc3Rpb25zCiAqIGFuZCBzaG93IHRoZW0gYmVsb3cg
c2VhcmNoIGJveGVzIGFuZCBvdGhlciBpbnB1dHMKICoKICogYnkgUm9iZXJ0IFN0
b2puaWMgKEFwcmlsIDIwMDgpCiAqLwoKLy8gc2VhcmNoX2JveF9pZCAtPiBSZXN1
bHRzIG9iamVjdAp2YXIgb3NfbWFwID0ge307Ci8vIGNhY2hlZCBkYXRhLCB1cmwg
LT4ganNvbl90ZXh0CnZhciBvc19jYWNoZSA9IHt9OwovLyBnbG9iYWwgdmFyaWFi
bGVzIGZvciBzdWdnZXN0X2tleXByZXNzCnZhciBvc19jdXJfa2V5cHJlc3NlZCA9
IDA7CnZhciBvc19rZXlwcmVzc2VkX2NvdW50ID0gMDsKLy8gdHlwZTogVGltZXIK
dmFyIG9zX3RpbWVyID0gbnVsbDsKLy8gdGllIG1vdXNlZG93bi91cCBldmVudHMK
dmFyIG9zX21vdXNlX3ByZXNzZWQgPSBmYWxzZTsKdmFyIG9zX21vdXNlX251bSA9
IC0xOwovLyBpZiB0cnVlLCB0aGUgbGFzdCBjaGFuZ2Ugd2FzIG1hZGUgYnkgbW91
c2UgKGFuZCBub3Qga2V5Ym9hcmQpCnZhciBvc19tb3VzZV9tb3ZlZCA9IGZhbHNl
OwovLyBkZWxheSBiZXR3ZWVuIGtleXByZXNzIGFuZCBzdWdnZXN0aW9uIChpbiBt
cykKdmFyIG9zX3NlYXJjaF90aW1lb3V0ID0gMjUwOwovLyB0aGVzZSBwYWlycyBv
ZiBpbnB1dHMvZm9ybXMgd2lsbCBiZSBhdXRvbG9hZGVkIGF0IHN0YXJ0dXAKdmFy
IG9zX2F1dG9sb2FkX2lucHV0cyA9IG5ldyBBcnJheSgnc2VhcmNoSW5wdXQnLCAn
c2VhcmNoSW5wdXQyJywgJ3Bvd2VyU2VhcmNoVGV4dCcsICdzZWFyY2hUZXh0Jyk7
CnZhciBvc19hdXRvbG9hZF9mb3JtcyA9IG5ldyBBcnJheSgnc2VhcmNoZm9ybScs
ICdzZWFyY2hmb3JtMicsICdwb3dlcnNlYXJjaCcsICdzZWFyY2gnICk7Ci8vIGlm
IHdlIHN0b3BwZWQgdGhlIHNlcnZpY2UKdmFyIG9zX2lzX3N0b3BwZWQgPSBmYWxz
ZTsKLy8gbWF4IGxpbmVzIHRvIHNob3cgaW4gc3VnZ2VzdCB0YWJsZQp2YXIgb3Nf
bWF4X2xpbmVzX3Blcl9zdWdnZXN0ID0gNzsKLy8gbnVtYmVyIG9mIHN0ZXBzIHRv
IGFuaW1hdGUgZXhwYW5zaW9uL2NvbnRyYWN0aW9uIG9mIGNvbnRhaW5lciB3aWR0
aAp2YXIgb3NfYW5pbWF0aW9uX3N0ZXBzID0gNjsKLy8gbnVtIG9mIHBpeGVscyBv
ZiBzbWFsbGVzdCBzdGVwCnZhciBvc19hbmltYXRpb25fbWluX3N0ZXAgPSAyOwov
LyBkZWxheSBiZXR3ZWVuIHN0ZXBzIChpbiBtcykKdmFyIG9zX2FuaW1hdGlvbl9k
ZWxheSA9IDMwOwovLyBtYXggd2lkdGggb2YgY29udGFpbmVyIGluIHBlcmNlbnQg
b2Ygbm9ybWFsIHNpemUgKDEgPT0gMTAwJSkKdmFyIG9zX2NvbnRhaW5lcl9tYXhf
d2lkdGggPSAyOwovLyBjdXJyZW50bHkgYWN0aXZlIGFuaW1hdGlvbiB0aW1lcgp2
YXIgb3NfYW5pbWF0aW9uX3RpbWVyID0gbnVsbDsKCi8qKiBUaW1lb3V0IHRpbWVy
IGNsYXNzIHRoYXQgd2lsbCBmZXRjaCB0aGUgcmVzdWx0cyAqLwpmdW5jdGlvbiBv
c19UaW1lcihpZCxyLHF1ZXJ5KXsKCXRoaXMuaWQgPSBpZDsKCXRoaXMuciA9IHI7
Cgl0aGlzLnF1ZXJ5ID0gcXVlcnk7Cn0KCi8qKiBUaW1lciB1c2VyIHRvIGFuaW1h
dGUgZXhwYW5zaW9uL2NvbnRyYWN0aW9uIG9mIGNvbnRhaW5lciB3aWR0aCAqLwpm
dW5jdGlvbiBvc19BbmltYXRpb25UaW1lcihyLCB0YXJnZXQpewoJdGhpcy5yID0g
cjsKCXZhciBjdXJyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5jb250
YWluZXIpLm9mZnNldFdpZHRoOwoJdGhpcy5pbmMgPSBNYXRoLnJvdW5kKCh0YXJn
ZXQtY3VycmVudCkgLyBvc19hbmltYXRpb25fc3RlcHMpOwoJaWYodGhpcy5pbmMg
PCBvc19hbmltYXRpb25fbWluX3N0ZXAgJiYgdGhpcy5pbmMgPj0wKQoJCXRoaXMu
aW5jID0gb3NfYW5pbWF0aW9uX21pbl9zdGVwOyAvLyBtaW5pbWFsIGFuaW1hdGlv
biBzdGVwCglpZih0aGlzLmluYyA+IC1vc19hbmltYXRpb25fbWluX3N0ZXAgJiYg
dGhpcy5pbmMgPDApCgkJdGhpcy5pbmMgPSAtb3NfYW5pbWF0aW9uX21pbl9zdGVw
OwoJdGhpcy50YXJnZXQgPSB0YXJnZXQ7Cn0KCi8qKiBQcm9wZXJ0eSBjbGFzcyBm
b3Igc2luZ2xlIHNlYXJjaCBib3ggKi8KZnVuY3Rpb24gb3NfUmVzdWx0cyhuYW1l
LCBmb3JtbmFtZSl7Cgl0aGlzLnNlYXJjaGZvcm0gPSBmb3JtbmFtZTsgLy8gaWQg
b2YgdGhlIHNlYXJjaGZvcm0KCXRoaXMuc2VhcmNoYm94ID0gbmFtZTsgLy8gaWQg
b2YgdGhlIHNlYXJjaGJveAoJdGhpcy5jb250YWluZXIgPSBuYW1lKyJTdWdnZXN0
IjsgLy8gZGl2IHRoYXQgaG9sZHMgcmVzdWx0cwoJdGhpcy5yZXN1bHRUYWJsZSA9
IG5hbWUrIlJlc3VsdCI7IC8vIGlkIGJhc2UgZm9yIHRoZSByZXN1bHQgdGFibGUg
KCtudW0gPSB0YWJsZSByb3cpCgl0aGlzLnJlc3VsdFRleHQgPSBuYW1lKyJSZXN1
bHRUZXh0IjsgLy8gaWQgYmFzZSBmb3IgdGhlIHNwYW5zIHdpdGhpbiByZXN1bHQg
dGFibGVzICgrbnVtKQoJdGhpcy50b2dnbGUgPSBuYW1lKyJUb2dnbGUiOyAvLyBk
aXYgdGhhdCBoYXMgdGhlIHRvZ2dsZSAoZW5hYmxlL2Rpc2FibGUpIGxpbmsKCXRo
aXMucXVlcnkgPSBudWxsOyAvLyBsYXN0IHByb2Nlc3NlZCBxdWVyeQoJdGhpcy5y
ZXN1bHRzID0gbnVsbDsgIC8vIHBhcnNlZCB0aXRsZXMKCXRoaXMucmVzdWx0Q291
bnQgPSAwOyAvLyBudW1iZXIgb2YgcmVzdWx0cwoJdGhpcy5vcmlnaW5hbCA9IG51
bGw7IC8vIHF1ZXJ5IHRoYXQgdXNlciBlbnRlcmVkCgl0aGlzLnNlbGVjdGVkID0g
LTE7IC8vIHdoaWNoIHJlc3VsdCBpcyBzZWxlY3RlZAoJdGhpcy5jb250YWluZXJD
b3VudCA9IDA7IC8vIG51bWJlciBvZiByZXN1bHRzIHZpc2libGUgaW4gY29udGFp
bmVyCgl0aGlzLmNvbnRhaW5lclJvdyA9IDA7IC8vIGhlaWdodCBvZiByZXN1bHQg
ZmllbGQgaW4gdGhlIGNvbnRhaW5lcgoJdGhpcy5jb250YWluZXJUb3RhbCA9IDA7
IC8vIHRvdGFsIGhlaWdodCBvZiB0aGUgY29udGFpbmVyIHdpbGwgYWxsIHJlc3Vs
dHMKCXRoaXMudmlzaWJsZSA9IGZhbHNlOyAvLyBpZiBjb250YWluZXIgaXMgdmlz
aWJsZQoJdGhpcy5zdGF5SGlkZGVuID0gZmFsc2U7IC8vIGRvbid0IHRyeSB0byBz
aG93IGlmIGxvc3QgZm9jdXMKfQoKLyoqIEhpZGUgcmVzdWx0cyBkaXYgKi8KZnVu
Y3Rpb24gb3NfaGlkZVJlc3VsdHMocil7Cgl2YXIgYyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKHIuY29udGFpbmVyKTsKCWlmKGMgIT0gbnVsbCkKCQljLnN0eWxl
LnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKCXIudmlzaWJsZSA9IGZhbHNlOwoJci5z
ZWxlY3RlZCA9IC0xOwp9CgovKiogU2hvdyByZXN1bHRzIGRpdiAqLwpmdW5jdGlv
biBvc19zaG93UmVzdWx0cyhyKXsKCWlmKG9zX2lzX3N0b3BwZWQpCgkJcmV0dXJu
OwoJaWYoci5zdGF5SGlkZGVuKQoJCXJldHVybgoJb3NfZml0Q29udGFpbmVyKHIp
OwoJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7
CglyLnNlbGVjdGVkID0gLTE7CglpZihjICE9IG51bGwpewoJCWMuc2Nyb2xsVG9w
ID0gMDsKCQljLnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CgkJci52aXNp
YmxlID0gdHJ1ZTsKCX0KfQoKZnVuY3Rpb24gb3Nfb3BlcmFXaWR0aEZpeCh4KXsK
CS8vIEZvciBicm93c2VycyB0aGF0IGRvbid0IHVuZGVyc3RhbmQgb3ZlcmZsb3ct
eCwgZXN0aW1hdGUgc2Nyb2xsYmFyIHdpZHRoCglpZih0eXBlb2YgZG9jdW1lbnQu
Ym9keS5zdHlsZS5vdmVyZmxvd1ggIT0gInN0cmluZyIpewoJCXJldHVybiAzMDsK
CX0KCXJldHVybiAwOwp9CgpmdW5jdGlvbiBvc19lbmNvZGVRdWVyeSh2YWx1ZSl7
CiAgaWYgKGVuY29kZVVSSUNvbXBvbmVudCkgewogICAgcmV0dXJuIGVuY29kZVVS
SUNvbXBvbmVudCh2YWx1ZSk7CiAgfQogIGlmKGVzY2FwZSkgewogICAgcmV0dXJu
IGVzY2FwZSh2YWx1ZSk7CiAgfQogIHJldHVybiBudWxsOwp9CmZ1bmN0aW9uIG9z
X2RlY29kZVZhbHVlKHZhbHVlKXsKICBpZiAoZGVjb2RlVVJJQ29tcG9uZW50KSB7
CiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTsKICB9CiAgaWYo
dW5lc2NhcGUpewogIAlyZXR1cm4gdW5lc2NhcGUodmFsdWUpOwogIH0KICByZXR1
cm4gbnVsbDsKfQoKLyoqIEJyb3dlci1kZXBlbmRlbnQgZnVuY3Rpb25zIHRvIGZp
bmQgd2luZG93IGlubmVyIHNpemUsIGFuZCBzY3JvbGwgc3RhdHVzICovCmZ1bmN0
aW9uIGZfY2xpZW50V2lkdGgoKSB7CglyZXR1cm4gZl9maWx0ZXJSZXN1bHRzICgK
CQl3aW5kb3cuaW5uZXJXaWR0aCA/IHdpbmRvdy5pbm5lcldpZHRoIDogMCwKCQlk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQuY2xpZW50V2lkdGggOiAwLAoJCWRvY3VtZW50LmJvZHkgPyBkb2N1bWVudC5i
b2R5LmNsaWVudFdpZHRoIDogMAoJKTsKfQpmdW5jdGlvbiBmX2NsaWVudEhlaWdo
dCgpIHsKCXJldHVybiBmX2ZpbHRlclJlc3VsdHMgKAoJCXdpbmRvdy5pbm5lckhl
aWdodCA/IHdpbmRvdy5pbm5lckhlaWdodCA6IDAsCgkJZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdo
dCA6IDAsCgkJZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkuY2xpZW50SGVp
Z2h0IDogMAoJKTsKfQpmdW5jdGlvbiBmX3Njcm9sbExlZnQoKSB7CglyZXR1cm4g
Zl9maWx0ZXJSZXN1bHRzICgKCQl3aW5kb3cucGFnZVhPZmZzZXQgPyB3aW5kb3cu
cGFnZVhPZmZzZXQgOiAwLAoJCWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA/IGRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IDogMCwKCQlkb2N1bWVu
dC5ib2R5ID8gZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0IDogMAoJKTsKfQpmdW5j
dGlvbiBmX3Njcm9sbFRvcCgpIHsKCXJldHVybiBmX2ZpbHRlclJlc3VsdHMgKAoJ
CXdpbmRvdy5wYWdlWU9mZnNldCA/IHdpbmRvdy5wYWdlWU9mZnNldCA6IDAsCgkJ
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LnNjcm9sbFRvcCA6IDAsCgkJZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJv
ZHkuc2Nyb2xsVG9wIDogMAoJKTsKfQpmdW5jdGlvbiBmX2ZpbHRlclJlc3VsdHMo
bl93aW4sIG5fZG9jZWwsIG5fYm9keSkgewoJdmFyIG5fcmVzdWx0ID0gbl93aW4g
PyBuX3dpbiA6IDA7CglpZiAobl9kb2NlbCAmJiAoIW5fcmVzdWx0IHx8IChuX3Jl
c3VsdCA+IG5fZG9jZWwpKSkKCQluX3Jlc3VsdCA9IG5fZG9jZWw7CglyZXR1cm4g
bl9ib2R5ICYmICghbl9yZXN1bHQgfHwgKG5fcmVzdWx0ID4gbl9ib2R5KSkgPyBu
X2JvZHkgOiBuX3Jlc3VsdDsKfQoKLyoqIEdldCB0aGUgaGVpZ2h0IGF2YWlsYWJs
ZSBmb3IgdGhlIHJlc3VsdHMgY29udGFpbmVyICovCmZ1bmN0aW9uIG9zX2F2YWls
YWJsZUhlaWdodChyKXsKCXZhciBhYnNUb3AgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChyLmNvbnRhaW5lcikuc3R5bGUudG9wOwoJdmFyIHB4ID0gYWJzVG9wLmxh
c3RJbmRleE9mKCJweCIpOwoJaWYocHggPiAwKQoJCWFic1RvcCA9IGFic1RvcC5z
dWJzdHJpbmcoMCxweCk7CglyZXR1cm4gZl9jbGllbnRIZWlnaHQoKSAtIChhYnNU
b3AgLSBmX3Njcm9sbFRvcCgpKTsKfQoKCi8qKiBHZXQgZWxlbWVudCBhYnNvbHV0
ZSBwb3NpdGlvbiB7bGVmdCx0b3B9ICovCmZ1bmN0aW9uIG9zX2dldEVsZW1lbnRQ
b3NpdGlvbihlbGVtSUQpewoJdmFyIG9mZnNldFRyYWlsID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbUlEKTsKCXZhciBvZmZzZXRMZWZ0ID0gMDsKCXZhciBv
ZmZzZXRUb3AgPSAwOwoJd2hpbGUgKG9mZnNldFRyYWlsKXsKCQlvZmZzZXRMZWZ0
ICs9IG9mZnNldFRyYWlsLm9mZnNldExlZnQ7CgkJb2Zmc2V0VG9wICs9IG9mZnNl
dFRyYWlsLm9mZnNldFRvcDsKCQlvZmZzZXRUcmFpbCA9IG9mZnNldFRyYWlsLm9m
ZnNldFBhcmVudDsKCX0KCWlmIChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2Yo
J01hYycpICE9IC0xICYmIHR5cGVvZiBkb2N1bWVudC5ib2R5LmxlZnRNYXJnaW4g
IT0gJ3VuZGVmaW5lZCcpewoJCW9mZnNldExlZnQgKz0gZG9jdW1lbnQuYm9keS5s
ZWZ0TWFyZ2luOwoJCW9mZnNldFRvcCArPSBkb2N1bWVudC5ib2R5LnRvcE1hcmdp
bjsKCX0KCXJldHVybiB7bGVmdDpvZmZzZXRMZWZ0LHRvcDpvZmZzZXRUb3B9Owp9
CgovKiogQ3JlYXRlIHRoZSBjb250YWluZXIgZGl2IHRoYXQgd2lsbCBob2xkIHRo
ZSBzdWdnZXN0ZWQgdGl0bGVzICovCmZ1bmN0aW9uIG9zX2NyZWF0ZUNvbnRhaW5l
cihyKXsKCXZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cgl2
YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2VhcmNoYm94KTsKCXZh
ciBwb3MgPSBvc19nZXRFbGVtZW50UG9zaXRpb24oci5zZWFyY2hib3gpOwoJdmFy
IGxlZnQgPSBwb3MubGVmdDsKCXZhciB0b3AgPSBwb3MudG9wICsgcy5vZmZzZXRI
ZWlnaHQ7CgljLmNsYXNzTmFtZSA9ICJvcy1zdWdnZXN0IjsKCWMuc2V0QXR0cmli
dXRlKCJpZCIsIHIuY29udGFpbmVyKTsKCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoYyk7CgoJLy8gZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHN0eWxlIHBhcmFtcwoJ
Ly8gSUUgd29ya2Fyb3VuZCwgY2Fubm90IGV4cGxpY2l0ZWx5IHNldCAic3R5bGUi
IGF0dHJpYnV0ZQoJYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFp
bmVyKTsKCWMuc3R5bGUudG9wID0gdG9wKyJweCI7CgljLnN0eWxlLmxlZnQgPSBs
ZWZ0KyJweCI7CgljLnN0eWxlLndpZHRoID0gcy5vZmZzZXRXaWR0aCsicHgiOwoK
CS8vIG1vdXNlIGV2ZW50IGhhbmRsZXJzCgljLm9ubW91c2VvdmVyID0gZnVuY3Rp
b24oZXZlbnQpIHsgb3NfZXZlbnRNb3VzZW92ZXIoci5zZWFyY2hib3gsIGV2ZW50
KTsgfTsKCWMub25tb3VzZW1vdmUgPSBmdW5jdGlvbihldmVudCkgeyBvc19ldmVu
dE1vdXNlbW92ZShyLnNlYXJjaGJveCwgZXZlbnQpOyB9OwoJYy5vbm1vdXNlZG93
biA9IGZ1bmN0aW9uKGV2ZW50KSB7IHJldHVybiBvc19ldmVudE1vdXNlZG93bihy
LnNlYXJjaGJveCwgZXZlbnQpOyB9OwoJYy5vbm1vdXNldXAgPSBmdW5jdGlvbihl
dmVudCkgeyBvc19ldmVudE1vdXNldXAoci5zZWFyY2hib3gsIGV2ZW50KTsgfTsK
CXJldHVybiBjOwp9CgovKiogY2hhbmdlIGNvbnRhaW5lciBoZWlnaHQgdG8gZml0
IHRvIHNjcmVlbiAqLwpmdW5jdGlvbiBvc19maXRDb250YWluZXIocil7Cgl2YXIg
YyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFpbmVyKTsKCXZhciBo
ID0gb3NfYXZhaWxhYmxlSGVpZ2h0KHIpIC0gMjA7Cgl2YXIgaW5jID0gci5jb250
YWluZXJSb3c7CgloID0gcGFyc2VJbnQoaC9pbmMpICogaW5jOwoJaWYoaCA8ICgy
ICogaW5jKSAmJiByLnJlc3VsdENvdW50ID4gMSkgLy8gbWluOiB0d28gcmVzdWx0
cwoJCWggPSAyICogaW5jOwoJaWYoKGgvaW5jKSA+IG9zX21heF9saW5lc19wZXJf
c3VnZ2VzdCApCgkJaCA9IGluYyAqIG9zX21heF9saW5lc19wZXJfc3VnZ2VzdDsK
CWlmKGggPCByLmNvbnRhaW5lclRvdGFsKXsKCQljLnN0eWxlLmhlaWdodCA9IGgg
KyJweCI7CgkJci5jb250YWluZXJDb3VudCA9IHBhcnNlSW50KE1hdGgucm91bmQo
aC9pbmMpKTsKCX0gZWxzZXsKCQljLnN0eWxlLmhlaWdodCA9IHIuY29udGFpbmVy
VG90YWwrInB4IjsKCQlyLmNvbnRhaW5lckNvdW50ID0gci5yZXN1bHRDb3VudDsK
CX0KfQovKiogSWYgc29tZSBlbnRyaWVzIGFyZSBsb25nZXIgdGhhbiB0aGUgYm94
LCByZXBsYWNlIHRleHQgd2l0aCAiLi4uIiAqLwpmdW5jdGlvbiBvc190cmltUmVz
dWx0VGV4dChyKXsKCS8vIGZpbmQgbWF4IHdpZHRoLCBmaXJzdCBzZWUgaWYgd2Ug
Y291bGQgZXhwYW5kIHRoZSBjb250YWluZXIgdG8gZml0IGl0Cgl2YXIgbWF4VyA9
IDA7Cglmb3IodmFyIGk9MDtpPHIucmVzdWx0Q291bnQ7aSsrKXsKCQl2YXIgZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIucmVzdWx0VGV4dCtpKTsKCQlpZihl
Lm9mZnNldFdpZHRoID4gbWF4VykKCQkJbWF4VyA9IGUub2Zmc2V0V2lkdGg7Cgl9
Cgl2YXIgdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFpbmVyKS5v
ZmZzZXRXaWR0aDsKCXZhciBmaXggPSAwOwoJaWYoci5jb250YWluZXJDb3VudCA8
IHIucmVzdWx0Q291bnQpewoJCWZpeCA9IDIwOyAvLyBnaXZlIDIwcHggZm9yIHNj
cm9sbGJhcgoJfSBlbHNlCgkJZml4ID0gb3Nfb3BlcmFXaWR0aEZpeCh3KTsKCWlm
KGZpeCA8IDQpCgkJZml4ID0gNDsgLy8gYmFzaWMgcGFkZGluZwoJbWF4VyArPSBm
aXg7CgoJLy8gcmVzaXplIGNvbnRhaW5lciB0byBmaXQgbW9yZSBkYXRhIGlmIHBl
cm1pdHRlZAoJdmFyIG5vcm1XID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5z
ZWFyY2hib3gpLm9mZnNldFdpZHRoOwoJdmFyIHByb3AgPSBtYXhXIC8gbm9ybVc7
CglpZihwcm9wID4gb3NfY29udGFpbmVyX21heF93aWR0aCkKCQlwcm9wID0gb3Nf
Y29udGFpbmVyX21heF93aWR0aDsKCWVsc2UgaWYocHJvcCA8IDEpCgkJcHJvcCA9
IDE7Cgl2YXIgbmV3VyA9IE1hdGgucm91bmQoIG5vcm1XICogcHJvcCApOwoJaWYo
IHcgIT0gbmV3VyApewoJCXcgPSBuZXdXOwoJCWlmKCBvc19hbmltYXRpb25fdGlt
ZXIgIT0gbnVsbCApCgkJCWNsZWFySW50ZXJ2YWwob3NfYW5pbWF0aW9uX3RpbWVy
LmlkKQoJCW9zX2FuaW1hdGlvbl90aW1lciA9IG5ldyBvc19BbmltYXRpb25UaW1l
cihyLHcpOwoJCW9zX2FuaW1hdGlvbl90aW1lci5pZCA9IHNldEludGVydmFsKCJv
c19hbmltYXRlQ2hhbmdlV2lkdGgoKSIsb3NfYW5pbWF0aW9uX2RlbGF5KTsKCQl3
IC09IGZpeDsgLy8gdGhpcyBtdWNoIGlzIHJlc2VydmVkCgl9CgoJLy8gdHJpbSBy
ZXN1bHRzCglpZih3IDwgMTApCgkJcmV0dXJuOwoJZm9yKHZhciBpPTA7aTxyLnJl
c3VsdENvdW50O2krKyl7CgkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChyLnJlc3VsdFRleHQraSk7CgkJdmFyIHJlcGxhY2UgPSAxOwoJCXZhciBsYXN0
VyA9IGUub2Zmc2V0V2lkdGgrMTsKCQl2YXIgaXRlcmF0aW9uID0gMDsKCQl2YXIg
Y2hhbmdlZFRleHQgPSBmYWxzZTsKCQl3aGlsZShlLm9mZnNldFdpZHRoID4gdyAm
JiAoZS5vZmZzZXRXaWR0aCA8IGxhc3RXIHx8IGl0ZXJhdGlvbjwyKSl7CgkJCWNo
YW5nZWRUZXh0ID0gdHJ1ZTsKCQkJbGFzdFcgPSBlLm9mZnNldFdpZHRoOwoJCQl2
YXIgbCA9IGUuaW5uZXJIVE1MOwoJCQllLmlubmVySFRNTCA9IGwuc3Vic3RyaW5n
KDAsbC5sZW5ndGgtcmVwbGFjZSkrIi4uLiI7CgkJCWl0ZXJhdGlvbisrOwoJCQly
ZXBsYWNlID0gNDsgLy8gaG93IG1hbnkgY2hhcnMgdG8gcmVwbGFjZQoJCX0KCQlp
ZihjaGFuZ2VkVGV4dCl7CgkJCS8vIHNob3cgaGludCBmb3IgdHJpbW1lZCB0aXRs
ZXMKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5yZXN1bHRUYWJsZStpKS5z
ZXRBdHRyaWJ1dGUoInRpdGxlIixyLnJlc3VsdHNbaV0pOwoJCX0KCX0KfQoKLyoq
IEludm9rZWQgb24gdGltZXIgdG8gYW5pbWF0ZSBjaGFuZ2UgaW4gY29udGFpbmVy
IHdpZHRoICovCmZ1bmN0aW9uIG9zX2FuaW1hdGVDaGFuZ2VXaWR0aCgpewoJdmFy
IHIgPSBvc19hbmltYXRpb25fdGltZXIucjsKCXZhciBjID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoci5jb250YWluZXIpOwoJdmFyIHcgPSBjLm9mZnNldFdpZHRo
OwoJdmFyIG5vcm1XID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFyY2hi
b3gpLm9mZnNldFdpZHRoOwoJdmFyIG5vcm1MID0gb3NfZ2V0RWxlbWVudFBvc2l0
aW9uKHIuc2VhcmNoYm94KS5sZWZ0OwoJdmFyIGluYyA9IG9zX2FuaW1hdGlvbl90
aW1lci5pbmM7Cgl2YXIgdGFyZ2V0ID0gb3NfYW5pbWF0aW9uX3RpbWVyLnRhcmdl
dDsKCXZhciBudyA9IHcgKyBpbmM7CglpZiggKGluYyA+IDAgJiYgbncgPj0gdGFy
Z2V0KSB8fCAoaW5jIDw9IDAgJiYgbncgPD0gdGFyZ2V0KSApewoJCS8vIGZpbmlz
aGVkICEKCQljLnN0eWxlLndpZHRoID0gdGFyZ2V0KyJweCI7CgkJY2xlYXJJbnRl
cnZhbChvc19hbmltYXRpb25fdGltZXIuaWQpCgkJb3NfYW5pbWF0aW9uX3RpbWVy
ID0gbnVsbDsKCX0gZWxzZXsKCQkvLyBpbi1wcm9ncmVzcwoJCWMuc3R5bGUud2lk
dGggPSBudysicHgiOwoJCWlmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXIg
PT0gInJ0bCIpCgkJCWMuc3R5bGUubGVmdCA9IChub3JtTCArIG5vcm1XICsgKHRh
cmdldCAtIG53KSAtIG9zX2FuaW1hdGlvbl90aW1lci50YXJnZXQgLSAxKSsicHgi
OwoJfQp9CgovKiogSGFuZGxlcyBkYXRhIGZyb20gWE1MSHR0cFJlcXVlc3QsIGFu
ZCB1cGRhdGVzIHRoZSBzdWdnZXN0IHJlc3VsdHMgKi8KZnVuY3Rpb24gb3NfdXBk
YXRlUmVzdWx0cyhyLCBxdWVyeSwgdGV4dCwgY2FjaGVLZXkpewoJb3NfY2FjaGVb
Y2FjaGVLZXldID0gdGV4dDsKCXIucXVlcnkgPSBxdWVyeTsKCXIub3JpZ2luYWwg
PSBxdWVyeTsKCWlmKHRleHQgPT0gIiIpewoJCXIucmVzdWx0cyA9IG51bGw7CgkJ
ci5yZXN1bHRDb3VudCA9IDA7CgkJb3NfaGlkZVJlc3VsdHMocik7Cgl9IGVsc2V7
CgkJdHJ5IHsKCQkJdmFyIHAgPSBldmFsKCcoJyt0ZXh0KycpJyk7IC8vIHNpbXBs
ZSBqc29uIHBhcnNlLCBjb3VsZCBkbyBhIHNhZmVyIG9uZQoJCQlpZihwLmxlbmd0
aDwyIHx8IHBbMV0ubGVuZ3RoID09IDApewoJCQkJci5yZXN1bHRzID0gbnVsbDsK
CQkJCXIucmVzdWx0Q291bnQgPSAwOwoJCQkJb3NfaGlkZVJlc3VsdHMocik7CgkJ
CQlyZXR1cm47CgkJCX0KCQkJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChyLmNvbnRhaW5lcik7CgkJCWlmKGMgPT0gbnVsbCkKCQkJCWMgPSBvc19jcmVh
dGVDb250YWluZXIocik7CgkJCWMuaW5uZXJIVE1MID0gb3NfY3JlYXRlUmVzdWx0
VGFibGUocixwWzFdKTsKCQkJLy8gaW5pdCBjb250YWluZXIgdGFibGUgc2l6ZXMK
CQkJdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnJlc3VsdFRhYmxl
KTsKCQkJci5jb250YWluZXJUb3RhbCA9IHQub2Zmc2V0SGVpZ2h0OwoJCQlyLmNv
bnRhaW5lclJvdyA9IHQub2Zmc2V0SGVpZ2h0IC8gci5yZXN1bHRDb3VudDsKCQkJ
b3NfZml0Q29udGFpbmVyKHIpOwoJCQlvc190cmltUmVzdWx0VGV4dChyKTsKCQkJ
b3Nfc2hvd1Jlc3VsdHMocik7CgkJfSBjYXRjaChlKXsKCQkJLy8gYmFkIHJlc3Bv
bnNlIGZyb20gc2VydmVyIG9yIHN1Y2gKCQkJb3NfaGlkZVJlc3VsdHMocik7CgkJ
CW9zX2NhY2hlW2NhY2hlS2V5XSA9IG51bGw7CgkJfQoJfQp9CgovKiogQ3JlYXRl
IHRoZSByZXN1bHQgdGFibGUgdG8gYmUgcGxhY2VkIGluIHRoZSBjb250YWluZXIg
ZGl2ICovCmZ1bmN0aW9uIG9zX2NyZWF0ZVJlc3VsdFRhYmxlKHIsIHJlc3VsdHMp
ewoJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7
Cgl2YXIgd2lkdGggPSBjLm9mZnNldFdpZHRoIC0gb3Nfb3BlcmFXaWR0aEZpeChj
Lm9mZnNldFdpZHRoKTsKCXZhciBodG1sID0gIjx0YWJsZSBjbGFzcz1cIm9zLXN1
Z2dlc3QtcmVzdWx0c1wiIGlkPVwiIityLnJlc3VsdFRhYmxlKyJcIiBzdHlsZT1c
IndpZHRoOiAiK3dpZHRoKyJweDtcIj4iOwoJci5yZXN1bHRzID0gbmV3IEFycmF5
KCk7CglyLnJlc3VsdENvdW50ID0gcmVzdWx0cy5sZW5ndGg7Cglmb3IoaT0wO2k8
cmVzdWx0cy5sZW5ndGg7aSsrKXsKCQl2YXIgdGl0bGUgPSBvc19kZWNvZGVWYWx1
ZShyZXN1bHRzW2ldKTsKCQlyLnJlc3VsdHNbaV0gPSB0aXRsZTsKCQlodG1sICs9
ICI8dHI+PHRkIGNsYXNzPVwib3Mtc3VnZ2VzdC1yZXN1bHRcIiBpZD1cIiIrci5y
ZXN1bHRUYWJsZStpKyJcIj48c3BhbiBpZD1cIiIrci5yZXN1bHRUZXh0K2krIlwi
PiIrdGl0bGUrIjwvc3Bhbj48L3RkPjwvdHI+IjsKCX0KCWh0bWwrPSI8L3RhYmxl
PiIKCXJldHVybiBodG1sOwp9CgovKiogRmV0Y2ggbmFtZXNwYWNlcyBmcm9tIGNo
ZWNrYm94ZXMgb3IgaGlkZGVuIGZpZWxkcyBpbiB0aGUgc2VhcmNoIGZvcm0sCiAg
ICBpZiBub25lIGRlZmluZWQgdXNlIHdnU2VhcmNoTmFtZXNwYWNlcyBnbG9iYWwg
Ki8KZnVuY3Rpb24gb3NfZ2V0TmFtZXNwYWNlcyhyKXsKCXZhciBuYW1lc3BhY2Vz
ID0gIiI7Cgl2YXIgZWxlbWVudHMgPSBkb2N1bWVudC5mb3Jtc1tyLnNlYXJjaGZv
cm1dLmVsZW1lbnRzOwoJZm9yKGk9MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsr
KXsKCQl2YXIgbmFtZSA9IGVsZW1lbnRzW2ldLm5hbWU7CgkJaWYodHlwZW9mIG5h
bWUgIT0gJ3VuZGVmaW5lZCcgJiYgbmFtZS5sZW5ndGggPiAyCgkJJiYgbmFtZVsw
XT09J24nICYmIG5hbWVbMV09PSdzJwoJCSYmICgoZWxlbWVudHNbaV0udHlwZT09
J2NoZWNrYm94JyAmJiBlbGVtZW50c1tpXS5jaGVja2VkKQoJCSAJfHwgKGVsZW1l
bnRzW2ldLnR5cGU9PSdoaWRkZW4nICYmIGVsZW1lbnRzW2ldLnZhbHVlPT0iMSIp
KSApewoJCQlpZihuYW1lc3BhY2VzIT0iIikKCQkJCW5hbWVzcGFjZXMrPSJ8IjsK
CQkJbmFtZXNwYWNlcys9bmFtZS5zdWJzdHJpbmcoMik7CgkJfQoJfQoJaWYobmFt
ZXNwYWNlcyA9PSAiIikKCQluYW1lc3BhY2VzID0gd2dTZWFyY2hOYW1lc3BhY2Vz
LmpvaW4oInwiKTsKCXJldHVybiBuYW1lc3BhY2VzOwp9CgovKiogVXBkYXRlIHJl
c3VsdHMgaWYgdXNlciBoYXNuJ3QgYWxyZWFkeSB0eXBlZCBzb21ldGhpbmcgZWxz
ZSAqLwpmdW5jdGlvbiBvc191cGRhdGVJZlJlbGV2YW50KHIsIHF1ZXJ5LCB0ZXh0
LCBjYWNoZUtleSl7Cgl2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIu
c2VhcmNoYm94KTsKCWlmKHQgIT0gbnVsbCAmJiB0LnZhbHVlID09IHF1ZXJ5KXsg
Ly8gY2hlY2sgaWYgcmVzcG9uc2UgaXMgc3RpbGwgcmVsZXZhbnQKCQlvc191cGRh
dGVSZXN1bHRzKHIsIHF1ZXJ5LCB0ZXh0LCBjYWNoZUtleSk7Cgl9CglyLnF1ZXJ5
ID0gcXVlcnk7Cn0KCi8qKiBGZXRjaCByZXN1bHRzIGFmdGVyIHNvbWUgdGltZW91
dCAqLwpmdW5jdGlvbiBvc19kZWxheWVkRmV0Y2goKXsKCWlmKG9zX3RpbWVyID09
IG51bGwpCgkJcmV0dXJuOwoJdmFyIHIgPSBvc190aW1lci5yOwoJdmFyIHF1ZXJ5
ID0gb3NfdGltZXIucXVlcnk7Cglvc190aW1lciA9IG51bGw7Cgl2YXIgcGF0aCA9
IHdnTVdTdWdnZXN0VGVtcGxhdGUucmVwbGFjZSgie25hbWVzcGFjZXN9Iixvc19n
ZXROYW1lc3BhY2VzKHIpKQoJCQkJCQkJICAJICAucmVwbGFjZSgie2RibmFtZX0i
LHdnREJuYW1lKQoJCQkJCQkJICAJICAucmVwbGFjZSgie3NlYXJjaFRlcm1zfSIs
b3NfZW5jb2RlUXVlcnkocXVlcnkpKTsKCgkvLyB0cnkgdG8gZ2V0IGZyb20gY2Fj
aGUsIGlmIG5vdCBmZXRjaCB1c2luZyBhamF4Cgl2YXIgY2FjaGVkID0gb3NfY2Fj
aGVbcGF0aF07CglpZihjYWNoZWQgIT0gbnVsbCl7CgkJb3NfdXBkYXRlSWZSZWxl
dmFudChyLCBxdWVyeSwgY2FjaGVkLCBwYXRoKTsKCX0gZWxzZXsKCQl2YXIgeG1s
aHR0cCA9IHNhamF4X2luaXRfb2JqZWN0KCk7CgkJaWYoeG1saHR0cCl7CgkJCXRy
eSB7CgkJCQl4bWxodHRwLm9wZW4oIkdFVCIsIHBhdGgsIHRydWUpOwoJCQkJeG1s
aHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXsKCQkgICAgICAgIAlp
ZiAoeG1saHR0cC5yZWFkeVN0YXRlPT00ICYmIHR5cGVvZiBvc191cGRhdGVJZlJl
bGV2YW50ID09ICdmdW5jdGlvbicpIHsKCQkgICAgICAgIAkJb3NfdXBkYXRlSWZS
ZWxldmFudChyLCBxdWVyeSwgeG1saHR0cC5yZXNwb25zZVRleHQsIHBhdGgpOwoJ
ICAgICAgICAJCX0KCSAgICAgIAkJfTsKCSAgICAgCQl4bWxodHRwLnNlbmQobnVs
bCk7CgkgICAgIAl9IGNhdGNoIChlKSB7CgkJCQlpZiAod2luZG93LmxvY2F0aW9u
Lmhvc3RuYW1lID09ICJsb2NhbGhvc3QiKSB7CgkJCQkJYWxlcnQoIllvdXIgYnJv
d3NlciBibG9ja3MgWE1MSHR0cFJlcXVlc3QgdG8gJ2xvY2FsaG9zdCcsIHRyeSB1
c2luZyBhIHJlYWwgaG9zdG5hbWUgZm9yIGRldmVsb3BtZW50L3Rlc3RpbmcuIik7
CgkJCQl9CgkJCQl0aHJvdyBlOwoJCQl9CgkJfQoJfQp9CgovKiogSW5pdCB0aW1l
ZCB1cGRhdGUgdmlhIG9zX2RlbGF5ZWRVcGRhdGUoKSAqLwpmdW5jdGlvbiBvc19m
ZXRjaFJlc3VsdHMociwgcXVlcnksIHRpbWVvdXQpewoJaWYocXVlcnkgPT0gIiIp
ewoJCXIucXVlcnkgPSAiIjsKCQlvc19oaWRlUmVzdWx0cyhyKTsKCQlyZXR1cm47
Cgl9IGVsc2UgaWYocXVlcnkgPT0gci5xdWVyeSkKCQlyZXR1cm47IC8vIG5vIGNo
YW5nZQoKCW9zX2lzX3N0b3BwZWQgPSBmYWxzZTsgLy8gbWFrZSBzdXJlIHdlJ3Jl
IHJ1bm5pbmcKCgkvKiB2YXIgY2FjaGVLZXkgPSB3Z0RCbmFtZSsiOiIrcXVlcnk7
Cgl2YXIgY2FjaGVkID0gb3NfY2FjaGVbY2FjaGVLZXldOwoJaWYoY2FjaGVkICE9
IG51bGwpewoJCW9zX3VwZGF0ZVJlc3VsdHMocix3Z0RCbmFtZSxxdWVyeSxjYWNo
ZWQpOwoJCXJldHVybjsKCX0gKi8KCgkvLyBjYW5jZWwgYW55IHBlbmRpbmcgZmV0
Y2hlcwoJaWYob3NfdGltZXIgIT0gbnVsbCAmJiBvc190aW1lci5pZCAhPSBudWxs
KQoJCWNsZWFyVGltZW91dChvc190aW1lci5pZCk7CgkvLyBzY2hlZHVsZSBkZWxh
eWVkIGZldGNoaW5nIG9mIHJlc3VsdHMKCWlmKHRpbWVvdXQgIT0gMCl7CgkJb3Nf
dGltZXIgPSBuZXcgb3NfVGltZXIoc2V0VGltZW91dCgib3NfZGVsYXllZEZldGNo
KCkiLHRpbWVvdXQpLHIscXVlcnkpOwoJfSBlbHNlewoJCW9zX3RpbWVyID0gbmV3
IG9zX1RpbWVyKG51bGwscixxdWVyeSk7CgkJb3NfZGVsYXllZEZldGNoKCk7IC8v
IGRvIGl0IG5vdyEKCX0KCn0KLyoqIENoYW5nZSB0aGUgaGlnaGxpZ2h0ZWQgcm93
IChpLmUuIHN1Z2dlc3Rpb24pLCBmcm9tIHBvc2l0aW9uIGN1ciB0byBuZXh0ICov
CmZ1bmN0aW9uIG9zX2NoYW5nZUhpZ2hsaWdodChyLCBjdXIsIG5leHQsIHVwZGF0
ZVNlYXJjaEJveCl7CglpZiAobmV4dCA+PSByLnJlc3VsdENvdW50KQoJCW5leHQg
PSByLnJlc3VsdENvdW50LTE7CglpZiAobmV4dCA8IC0xKQoJCW5leHQgPSAtMTsK
CXIuc2VsZWN0ZWQgPSBuZXh0OwogICAJaWYgKGN1ciA9PSBuZXh0KQogICAgCXJl
dHVybjsgLy8gbm90aGluZyB0byBkby4KCiAgICBpZihjdXIgPj0gMCl7CiAgICAJ
dmFyIGN1clJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIucmVzdWx0VGFi
bGUgKyBjdXIpOwogICAgCWlmKGN1clJvdyAhPSBudWxsKQogICAgCQljdXJSb3cu
Y2xhc3NOYW1lID0gIm9zLXN1Z2dlc3QtcmVzdWx0IjsKICAgIH0KICAgIHZhciBu
ZXdUZXh0OwogICAgaWYobmV4dCA+PSAwKXsKICAgIAl2YXIgbmV4dFJvdyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKHIucmVzdWx0VGFibGUgKyBuZXh0KTsKICAg
IAlpZihuZXh0Um93ICE9IG51bGwpCiAgICAJCW5leHRSb3cuY2xhc3NOYW1lID0g
b3NfSGlnaGxpZ2h0Q2xhc3MoKTsKICAgIAluZXdUZXh0ID0gci5yZXN1bHRzW25l
eHRdOwogICAgfSBlbHNlCiAgICAJbmV3VGV4dCA9IHIub3JpZ2luYWw7CgogICAg
Ly8gYWRqdXN0IHRoZSBzY3JvbGxiYXIgaWYgYW55CiAgICBpZihyLmNvbnRhaW5l
ckNvdW50IDwgci5yZXN1bHRDb3VudCl7CiAgICAJdmFyIGMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7CiAgICAJdmFyIHZTdGFydCA9IGMu
c2Nyb2xsVG9wIC8gci5jb250YWluZXJSb3c7CiAgICAJdmFyIHZFbmQgPSB2U3Rh
cnQgKyByLmNvbnRhaW5lckNvdW50OwogICAgCWlmKG5leHQgPCB2U3RhcnQpCiAg
ICAJCWMuc2Nyb2xsVG9wID0gbmV4dCAqIHIuY29udGFpbmVyUm93OwogICAgCWVs
c2UgaWYobmV4dCA+PSB2RW5kKQogICAgCQljLnNjcm9sbFRvcCA9IChuZXh0IC0g
ci5jb250YWluZXJDb3VudCArIDEpICogci5jb250YWluZXJSb3c7CiAgICB9Cgog
ICAgLy8gdXBkYXRlIHRoZSBjb250ZW50cyBvZiB0aGUgc2VhcmNoIGJveAogICAg
aWYodXBkYXRlU2VhcmNoQm94KXsKICAgIAlvc191cGRhdGVTZWFyY2hRdWVyeShy
LG5ld1RleHQpOwogICAgfQp9CgpmdW5jdGlvbiBvc19IaWdobGlnaHRDbGFzcygp
IHsKCXZhciBtYXRjaCA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FwcGxl
V2ViS2l0XC8oXGQrKS8pOwoJaWYgKG1hdGNoKSB7CgkJdmFyIHdlYktpdFZlcnNp
b24gPSBwYXJzZUludChtYXRjaFsxXSk7CgkJaWYgKHdlYktpdFZlcnNpb24gPCA1
MjMpIHsKCQkJLy8gQ1NTIHN5c3RlbSBoaWdobGlnaHQgY29sb3JzIGJyb2tlbiBv
biBvbGQgU2FmYXJpCgkJCS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MTI5CgkJCS8vIFNhZmFyaSAzLjAuNCwgMy4xIGtub3duIG9r
CgkJCXJldHVybiAib3Mtc3VnZ2VzdC1yZXN1bHQtaGwtd2Via2l0IjsKCQl9Cgl9
CglyZXR1cm4gIm9zLXN1Z2dlc3QtcmVzdWx0LWhsIjsKfQoKZnVuY3Rpb24gb3Nf
dXBkYXRlU2VhcmNoUXVlcnkocixuZXdUZXh0KXsKCWRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKHIuc2VhcmNoYm94KS52YWx1ZSA9IG5ld1RleHQ7CiAgICByLnF1ZXJ5
ID0gbmV3VGV4dDsKfQoKLyoqIEZpbmQgZXZlbnQgdGFyZ2V0ICovCmZ1bmN0aW9u
IG9zX2dldFRhcmdldChlKXsKCWlmICghZSkgZSA9IHdpbmRvdy5ldmVudDsKCWlm
IChlLnRhcmdldCkgcmV0dXJuIGUudGFyZ2V0OwoJZWxzZSBpZiAoZS5zcmNFbGVt
ZW50KSByZXR1cm4gZS5zcmNFbGVtZW50OwoJZWxzZSByZXR1cm4gbnVsbDsKfQoK
CgovKioqKioqKioqKioqKioqKioqKioKICogIEtleWJvYXJkIGV2ZW50cwogKioq
KioqKioqKioqKioqKioqKiovCgovKiogRXZlbnQgaGFuZGxlciB0aGF0IHdpbGwg
ZmV0Y2ggcmVzdWx0cyBvbiBrZXl1cCAqLwpmdW5jdGlvbiBvc19ldmVudEtleXVw
KGUpewoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21h
cFt0YXJnLmlkXTsKCWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47IC8vIG5vdCBvdXIg
ZXZlbnQKCgkvLyBzb21lIGJyb3dzZXJzIHdvbid0IGdlbmVyYXRlIGtleXByZXNz
ZWQgZm9yIGFycm93IGtleXMsIGNhdGNoIGl0CglpZihvc19rZXlwcmVzc2VkX2Nv
dW50ID09IDApewoJCW9zX3Byb2Nlc3NLZXkocixvc19jdXJfa2V5cHJlc3NlZCx0
YXJnKTsKCX0KCXZhciBxdWVyeSA9IHRhcmcudmFsdWU7Cglvc19mZXRjaFJlc3Vs
dHMocixxdWVyeSxvc19zZWFyY2hfdGltZW91dCk7Cn0KCi8qKiBjYXRjaCBhcnJv
d3MgdXAvZG93biBhbmQgZXNjYXBlIHRvIGhpZGUgdGhlIHN1Z2dlc3Rpb25zICov
CmZ1bmN0aW9uIG9zX3Byb2Nlc3NLZXkocixrZXlwcmVzc2VkLHRhcmcpewoJaWYg
KGtleXByZXNzZWQgPT0gNDApeyAvLyBBcnJvdyBEb3duCiAgICAJaWYgKHIudmlz
aWJsZSkgewogICAgICAJCW9zX2NoYW5nZUhpZ2hsaWdodChyLCByLnNlbGVjdGVk
LCByLnNlbGVjdGVkKzEsIHRydWUpOwogICAgCX0gZWxzZSBpZihvc190aW1lciA9
PSBudWxsKXsKICAgIAkJLy8gdXNlciB3YW50cyB0byBnZXQgc3VnZ2VzdGlvbnMg
bm93CiAgICAJCXIucXVlcnkgPSAiIjsKCQkJb3NfZmV0Y2hSZXN1bHRzKHIsdGFy
Zy52YWx1ZSwwKTsKICAgIAl9CiAgCX0gZWxzZSBpZiAoa2V5cHJlc3NlZCA9PSAz
OCl7IC8vIEFycm93IFVwCiAgCQlpZiAoci52aXNpYmxlKXsKICAJCQlvc19jaGFu
Z2VIaWdobGlnaHQociwgci5zZWxlY3RlZCwgci5zZWxlY3RlZC0xLCB0cnVlKTsK
ICAJCX0KICAJfSBlbHNlIGlmKGtleXByZXNzZWQgPT0gMjcpeyAvLyBFc2NhcGUK
ICAJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2VhcmNoYm94KS52YWx1ZSA9
IHIub3JpZ2luYWw7CiAgCQlyLnF1ZXJ5ID0gci5vcmlnaW5hbDsKICAJCW9zX2hp
ZGVSZXN1bHRzKHIpOwogIAl9IGVsc2UgaWYoci5xdWVyeSAhPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChyLnNlYXJjaGJveCkudmFsdWUpewogIAkJLy8gb3NfaGlk
ZVJlc3VsdHMocik7IC8vIGRvbid0IHNob3cgb2xkIHN1Z2dlc3Rpb25zCiAgCX0K
fQoKLyoqIFdoZW4ga2V5cyBpcyBoZWxkIGRvd24gdXNlIGEgdGltZXIgdG8gb3V0
cHV0IHJlZ3VsYXIgZXZlbnRzICovCmZ1bmN0aW9uIG9zX2V2ZW50S2V5cHJlc3Mo
ZSl7Cgl2YXIgdGFyZyA9IG9zX2dldFRhcmdldChlKTsKCXZhciByID0gb3NfbWFw
W3RhcmcuaWRdOwoJaWYociA9PSBudWxsKQoJCXJldHVybjsgLy8gbm90IG91ciBl
dmVudAoKCXZhciBrZXlwcmVzc2VkID0gb3NfY3VyX2tleXByZXNzZWQ7CgoJb3Nf
a2V5cHJlc3NlZF9jb3VudCsrOwoJb3NfcHJvY2Vzc0tleShyLGtleXByZXNzZWQs
dGFyZyk7Cn0KCi8qKiBDYXRjaCB0aGUga2V5IGNvZGUgKEZpcmVmb3ggYnVnKSAg
Ki8KZnVuY3Rpb24gb3NfZXZlbnRLZXlkb3duKGUpewoJaWYgKCFlKSBlID0gd2lu
ZG93LmV2ZW50OwoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9
IG9zX21hcFt0YXJnLmlkXTsKCWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47IC8vIG5v
dCBvdXIgZXZlbnQKCglvc19tb3VzZV9tb3ZlZCA9IGZhbHNlOwoKCW9zX2N1cl9r
ZXlwcmVzc2VkID0gKGUua2V5Q29kZSA9PSB1bmRlZmluZWQpID8gZS53aGljaCA6
IGUua2V5Q29kZTsKCW9zX2tleXByZXNzZWRfY291bnQgPSAwOwp9CgovKiogRXZl
bnQ6IGxvc3Mgb2YgZm9jdXMgb2YgaW5wdXQgYm94ICovCmZ1bmN0aW9uIG9zX2V2
ZW50Qmx1cihlKXsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoJdmFyIHIg
PSBvc19tYXBbdGFyZy5pZF07CglpZihyID09IG51bGwpCgkJcmV0dXJuOyAvLyBu
b3Qgb3VyIGV2ZW50CglpZighb3NfbW91c2VfcHJlc3NlZCl7CgkJb3NfaGlkZVJl
c3VsdHMocik7CgkJLy8gZm9yY2UgY2FudmFzIHRvIHN0YXkgaGlkZGVuCgkJci5z
dGF5SGlkZGVuID0gdHJ1ZQoJCS8vIGNhbmNlbCBhbnkgcGVuZGluZyBmZXRjaGVz
CgkJaWYob3NfdGltZXIgIT0gbnVsbCAmJiBvc190aW1lci5pZCAhPSBudWxsKQoJ
CQljbGVhclRpbWVvdXQob3NfdGltZXIuaWQpOwoJCW9zX3RpbWVyID0gbnVsbAoJ
fQp9CgovKiogRXZlbnQ6IGZvY3VzIChjYXRjaCBvbmx5IHdoZW4gc3RvcHBlZCkg
Ki8KZnVuY3Rpb24gb3NfZXZlbnRGb2N1cyhlKXsKCXZhciB0YXJnID0gb3NfZ2V0
VGFyZ2V0KGUpOwoJdmFyIHIgPSBvc19tYXBbdGFyZy5pZF07CglpZihyID09IG51
bGwpCgkJcmV0dXJuOyAvLyBub3Qgb3VyIGV2ZW50CglyLnN0YXlIaWRkZW4gPSBm
YWxzZQp9CgoKCi8qKioqKioqKioqKioqKioqKioqKgogKiAgTW91c2UgZXZlbnRz
CiAqKioqKioqKioqKioqKioqKioqKi8KCi8qKiBNb3VzZSBvdmVyIHRoZSBjb250
YWluZXIgKi8KZnVuY3Rpb24gb3NfZXZlbnRNb3VzZW92ZXIoc3JjSWQsIGUpewoJ
dmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21hcFtzcmNJ
ZF07CglpZihyID09IG51bGwgfHwgIW9zX21vdXNlX21vdmVkKQoJCXJldHVybjsg
Ly8gbm90IG91ciBldmVudAoJdmFyIG51bSA9IG9zX2dldE51bWJlclN1ZmZpeCh0
YXJnLmlkKTsKCWlmKG51bSA+PSAwKQoJCW9zX2NoYW5nZUhpZ2hsaWdodChyLHIu
c2VsZWN0ZWQsbnVtLGZhbHNlKTsKCn0KCi8qIEdldCByb3cgd2hlcmUgdGhlIGV2
ZW50IG9jY3VyZWQgKGZyb20gaXRzIGlkKSAqLwpmdW5jdGlvbiBvc19nZXROdW1i
ZXJTdWZmaXgoaWQpewoJdmFyIG51bSA9IGlkLnN1YnN0cmluZyhpZC5sZW5ndGgt
Mik7CglpZiggISAobnVtLmNoYXJBdCgwKSA+PSAnMCcgJiYgbnVtLmNoYXJBdCgw
KSA8PSAnOScpICkKCQludW0gPSBudW0uc3Vic3RyaW5nKDEpOwoJaWYob3NfaXNO
dW1iZXIobnVtKSkKCQlyZXR1cm4gcGFyc2VJbnQobnVtKTsKCWVsc2UKCQlyZXR1
cm4gLTE7Cn0KCi8qKiBTYXZlIG1vdXNlIG1vdmUgYXMgbGFzdCBhY3Rpb24gKi8K
ZnVuY3Rpb24gb3NfZXZlbnRNb3VzZW1vdmUoc3JjSWQsIGUpewoJb3NfbW91c2Vf
bW92ZWQgPSB0cnVlOwp9CgovKiogTW91c2UgYnV0dG9uIGhlbGQgZG93biwgcmVn
aXN0ZXIgcG9zc2libGUgY2xpY2sgICovCmZ1bmN0aW9uIG9zX2V2ZW50TW91c2Vk
b3duKHNyY0lkLCBlKXsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoJdmFy
IHIgPSBvc19tYXBbc3JjSWRdOwoJaWYociA9PSBudWxsKQoJCXJldHVybjsgLy8g
bm90IG91ciBldmVudAoJdmFyIG51bSA9IG9zX2dldE51bWJlclN1ZmZpeCh0YXJn
LmlkKTsKCglvc19tb3VzZV9wcmVzc2VkID0gdHJ1ZTsKCWlmKG51bSA+PSAwKXsK
CQlvc19tb3VzZV9udW0gPSBudW07CgkJLy8gb3NfdXBkYXRlU2VhcmNoUXVlcnko
cixyLnJlc3VsdHNbbnVtXSk7Cgl9CgkvLyBrZWVwIHRoZSBmb2N1cyBvbiB0aGUg
c2VhcmNoIGZpZWxkCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnNlYXJjaGJv
eCkuZm9jdXMoKTsKCglyZXR1cm4gZmFsc2U7IC8vIHByZXZlbnRzIHNlbGVjdGlv
bgp9CgovKiogTW91c2UgYnV0dG9uIHJlbGVhc2VkLCBjaGVjayBmb3IgY2xpY2sg
b24gc29tZSByb3cgKi8KZnVuY3Rpb24gb3NfZXZlbnRNb3VzZXVwKHNyY0lkLCBl
KXsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoJdmFyIHIgPSBvc19tYXBb
c3JjSWRdOwoJaWYociA9PSBudWxsKQoJCXJldHVybjsgLy8gbm90IG91ciBldmVu
dAoJdmFyIG51bSA9IG9zX2dldE51bWJlclN1ZmZpeCh0YXJnLmlkKTsKCglpZihu
dW0gPj0gMCAmJiBvc19tb3VzZV9udW0gPT0gbnVtKXsKCQlvc191cGRhdGVTZWFy
Y2hRdWVyeShyLHIucmVzdWx0c1tudW1dKTsKCQlvc19oaWRlUmVzdWx0cyhyKTsK
CQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnNlYXJjaGZvcm0pLnN1Ym1pdCgp
OwoJfQoJb3NfbW91c2VfcHJlc3NlZCA9IGZhbHNlOwoJLy8ga2VlcCB0aGUgZm9j
dXMgb24gdGhlIHNlYXJjaCBmaWVsZAoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ci5zZWFyY2hib3gpLmZvY3VzKCk7Cn0KCi8qKiBDaGVjayBpZiB4IGlzIGEgdmFs
aWQgaW50ZWdlciAqLwpmdW5jdGlvbiBvc19pc051bWJlcih4KXsKCWlmKHggPT0g
IiIgfHwgaXNOYU4oeCkpCgkJcmV0dXJuIGZhbHNlOwoJZm9yKHZhciBpPTA7aTx4
Lmxlbmd0aDtpKyspewoJCXZhciBjID0geC5jaGFyQXQoaSk7CgkJaWYoICEgKGMg
Pj0gJzAnICYmIGMgPD0gJzknKSApCgkJCXJldHVybiBmYWxzZTsKCX0KCXJldHVy
biB0cnVlOwp9CgoKLyoqIFdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIGhpZGUg
ZXZlcnl0aGluZywgY2FuY2VsIHVwZGF0ZXMuLi4gKi8KZnVuY3Rpb24gb3NfZXZl
bnRPbnN1Ym1pdChlKXsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoKCW9z
X2lzX3N0b3BwZWQgPSB0cnVlOwoJLy8ga2lsbCB0aW1lZCByZXF1ZXN0cwoJaWYo
b3NfdGltZXIgIT0gbnVsbCAmJiBvc190aW1lci5pZCAhPSBudWxsKXsKCQljbGVh
clRpbWVvdXQob3NfdGltZXIuaWQpOwoJCW9zX3RpbWVyID0gbnVsbDsKCX0KCS8v
IEhpZGUgYWxsIHN1Z2dlc3Rpb25zCglmb3IoaT0wO2k8b3NfYXV0b2xvYWRfaW5w
dXRzLmxlbmd0aDtpKyspewoJCXZhciByID0gb3NfbWFwW29zX2F1dG9sb2FkX2lu
cHV0c1tpXV07CgkJaWYociAhPSBudWxsKXsKCQkJdmFyIGIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChyLnNlYXJjaGZvcm0pOwoJCQlpZihiICE9IG51bGwgJiYg
YiA9PSB0YXJnKXsKCQkJCS8vIHNldCBxdWVyeSB2YWx1ZSBzbyB0aGUgaGFuZGxl
ciB3b24ndCB0cnkgdG8gZmV0Y2ggYWRkaXRpb25hbCByZXN1bHRzCgkJCQlyLnF1
ZXJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFyY2hib3gpLnZhbHVl
OwoJCQl9CgkJCW9zX2hpZGVSZXN1bHRzKHIpOwoJCX0KCX0KCXJldHVybiB0cnVl
Owp9CgpmdW5jdGlvbiBvc19ob29rRXZlbnQoZWxlbWVudCwgaG9va05hbWUsIGhv
b2tGdW5jdCkgewoJaWYgKGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewoJCWVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihob29rTmFtZSwgaG9va0Z1bmN0LCBmYWxz
ZSk7Cgl9IGVsc2UgaWYgKHdpbmRvdy5hdHRhY2hFdmVudCkgewoJCWVsZW1lbnQu
YXR0YWNoRXZlbnQoIm9uIiArIGhvb2tOYW1lLCBob29rRnVuY3QpOwoJfQp9Cgov
KiogSW5pdCBSZXN1bHQgb2JqZWN0cyBhbmQgZXZlbnQgaGFuZGxlcnMgKi8KZnVu
Y3Rpb24gb3NfaW5pdEhhbmRsZXJzKG5hbWUsIGZvcm1uYW1lLCBlbGVtZW50KXsK
CXZhciByID0gbmV3IG9zX1Jlc3VsdHMobmFtZSwgZm9ybW5hbWUpOwoJLy8gZXZl
bnQgaGFuZGxlcgoJb3NfaG9va0V2ZW50KGVsZW1lbnQsICJrZXl1cCIsIGZ1bmN0
aW9uKGV2ZW50KSB7IG9zX2V2ZW50S2V5dXAoZXZlbnQpOyB9KTsKCW9zX2hvb2tF
dmVudChlbGVtZW50LCAia2V5ZG93biIsIGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2
ZW50S2V5ZG93bihldmVudCk7IH0pOwoJb3NfaG9va0V2ZW50KGVsZW1lbnQsICJr
ZXlwcmVzcyIsIGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2ZW50S2V5cHJlc3MoZXZl
bnQpOyB9KTsKCW9zX2hvb2tFdmVudChlbGVtZW50LCAiYmx1ciIsIGZ1bmN0aW9u
KGV2ZW50KSB7IG9zX2V2ZW50Qmx1cihldmVudCk7IH0pOwoJb3NfaG9va0V2ZW50
KGVsZW1lbnQsICJmb2N1cyIsIGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2ZW50Rm9j
dXMoZXZlbnQpOyB9KTsKCWVsZW1lbnQuc2V0QXR0cmlidXRlKCJhdXRvY29tcGxl
dGUiLCJvZmYiKTsKCS8vIHN0b3BwaW5nIGhhbmRsZXIKCW9zX2hvb2tFdmVudChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChmb3JtbmFtZSksICJzdWJtaXQiLCBmdW5j
dGlvbihldmVudCl7IHJldHVybiBvc19ldmVudE9uc3VibWl0KGV2ZW50KTsgfSk7
Cglvc19tYXBbbmFtZV0gPSByOwoJLy8gdG9nZ2xlIGxpbmsKCWlmKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKHIudG9nZ2xlKSA9PSBudWxsKXsKCQkvLyBUT0RPOiBk
aXNhYmxlIHRoaXMgd2hpbGUgd2UgZmlndXJlIG91dCBhIHdheSBmb3IgdGhpcyB0
byB3b3JrIGluIGFsbCBicm93c2VycwoJCS8qIGlmKG5hbWU9PSdzZWFyY2hJbnB1
dCcpewoJCQkvLyBzcGVjaWFsIGNhc2U6IHBsYWNlIGFib3ZlIHRoZSBtYWluIHNl
YXJjaCBib3gKCQkJdmFyIHQgPSBvc19jcmVhdGVUb2dnbGUociwib3Mtc3VnZ2Vz
dC10b2dnbGUiKTsKCQkJdmFyIHNlYXJjaEJvZHkgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc2VhcmNoQm9keScpOwoJCQl2YXIgZmlyc3QgPSBzZWFyY2hCb2R5
LnBhcmVudE5vZGUuZmlyc3RDaGlsZC5uZXh0U2libGluZy5hcHBlbmRDaGlsZCh0
KTsKCQl9IGVsc2V7CgkJCS8vIGRlZmF1bHQ6IHBsYWNlIGJlbG93IHNlYXJjaCBi
b3ggdG8gdGhlIHJpZ2h0CgkJCXZhciB0ID0gb3NfY3JlYXRlVG9nZ2xlKHIsIm9z
LXN1Z2dlc3QtdG9nZ2xlLWRlZiIpOwoJCQl2YXIgdG9wID0gZWxlbWVudC5vZmZz
ZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodDsKCQkJdmFyIGxlZnQgPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoOwoJCQl0LnN0eWxl
LnBvc2l0aW9uID0gImFic29sdXRlIjsKCQkJdC5zdHlsZS50b3AgPSB0b3AgKyAi
cHgiOwoJCQl0LnN0eWxlLmxlZnQgPSBsZWZ0ICsgInB4IjsKCQkJZWxlbWVudC5w
YXJlbnROb2RlLmFwcGVuZENoaWxkKHQpOwoJCQkvLyBvbmx5IG5vdyB3aWR0aCBn
ZXRzIGNhbGN1bGF0ZWQsIHNoaWZ0IHJpZ2h0CgkJCWxlZnQgLT0gdC5vZmZzZXRX
aWR0aDsKCQkJdC5zdHlsZS5sZWZ0ID0gbGVmdCArICJweCI7CgkJCXQuc3R5bGUu
dmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKCQl9ICovCgl9Cgp9CgovKiogUmV0dXJu
IHRoZSBzcGFuIGVsZW1lbnQgdGhhdCBjb250YWlucyB0aGUgdG9nZ2xlIGxpbmsg
Ki8KZnVuY3Rpb24gb3NfY3JlYXRlVG9nZ2xlKHIsY2xhc3NOYW1lKXsKCXZhciB0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwoJdC5jbGFzc05hbWUg
PSBjbGFzc05hbWU7Cgl0LnNldEF0dHJpYnV0ZSgiaWQiLCByLnRvZ2dsZSk7Cgl2
YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKCWxpbmsuc2V0
QXR0cmlidXRlKCJocmVmIiwiamF2YXNjcmlwdDp2b2lkKDApOyIpOwoJbGluay5v
bmNsaWNrID0gZnVuY3Rpb24oKXsgb3NfdG9nZ2xlKHIuc2VhcmNoYm94LHIuc2Vh
cmNoZm9ybSkgfTsKCXZhciBtc2cgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3
Z01XU3VnZ2VzdE1lc3NhZ2VzWzBdKTsKCWxpbmsuYXBwZW5kQ2hpbGQobXNnKTsK
CXQuYXBwZW5kQ2hpbGQobGluayk7CglyZXR1cm4gdDsKfQoKLyoqIENhbGwgd2hl
biB1c2VyIGNsaWNrcyBvbiBzb21lIG9mIHRoZSB0b2dnbGUgbGlua3MgKi8KZnVu
Y3Rpb24gb3NfdG9nZ2xlKGlucHV0SWQsZm9ybU5hbWUpewoJciA9IG9zX21hcFtp
bnB1dElkXTsKCXZhciBtc2cgPSAnJzsKCWlmKHIgPT0gbnVsbCl7CgkJb3NfZW5h
YmxlU3VnZ2VzdGlvbnNPbihpbnB1dElkLGZvcm1OYW1lKTsKCQlyID0gb3NfbWFw
W2lucHV0SWRdOwoJCW1zZyA9IHdnTVdTdWdnZXN0TWVzc2FnZXNbMF07Cgl9IGVs
c2V7CgkJb3NfZGlzYWJsZVN1Z2dlc3Rpb25zT24oaW5wdXRJZCxmb3JtTmFtZSk7
CgkJbXNnID0gd2dNV1N1Z2dlc3RNZXNzYWdlc1sxXTsKCX0KCS8vIGNoYW5nZSBt
ZXNzYWdlCgl2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIudG9n
Z2xlKS5maXJzdENoaWxkOwoJbGluay5yZXBsYWNlQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUobXNnKSxsaW5rLmZpcnN0Q2hpbGQpOwp9CgovKiogQ2FsbCB0
aGlzIHRvIGVuYWJsZSBzdWdnZXN0aW9ucyBvbiBpbnB1dCAoaWQ9aW5wdXRJZCks
IG9uIGEgZm9ybSAobmFtZT1mb3JtTmFtZSkgKi8KZnVuY3Rpb24gb3NfZW5hYmxl
U3VnZ2VzdGlvbnNPbihpbnB1dElkLCBmb3JtTmFtZSl7Cglvc19pbml0SGFuZGxl
cnMoIGlucHV0SWQsIGZvcm1OYW1lLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChp
bnB1dElkKSApOwp9CgovKiogQ2FsbCB0aGlzIHRvIGRpc2FibGUgc3VnZ2VzdGlv
cyBvbiBpbnB1dCBib3ggKGlkPWlucHV0SWQpICovCmZ1bmN0aW9uIG9zX2Rpc2Fi
bGVTdWdnZXN0aW9uc09uKGlucHV0SWQpewoJciA9IG9zX21hcFtpbnB1dElkXTsK
CWlmKHIgIT0gbnVsbCl7CgkJLy8gY2FuY2VsL2hpZGUgcmVzdWx0cwoJCW9zX3Rp
bWVyID0gbnVsbDsKCQlvc19oaWRlUmVzdWx0cyhyKTsKCQkvLyB0dXJuIGF1dG9j
b21wbGV0ZSBvbiAhCgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCku
c2V0QXR0cmlidXRlKCJhdXRvY29tcGxldGUiLCJvbiIpOwoJCS8vIHJlbW92ZSBk
ZXNjcmlwdG9yCgkJb3NfbWFwW2lucHV0SWRdID0gbnVsbDsKCX0KfQoKLyoqIElu
aXRpYWxpemF0aW9uLCBjYWxsIHVwb24gcGFnZSBvbmxvYWQgKi8KZnVuY3Rpb24g
b3NfTVdTdWdnZXN0SW5pdCgpIHsKCWZvcihpPTA7aTxvc19hdXRvbG9hZF9pbnB1
dHMubGVuZ3RoO2krKyl7CgkJdmFyIGlkID0gb3NfYXV0b2xvYWRfaW5wdXRzW2ld
OwoJCXZhciBmb3JtID0gb3NfYXV0b2xvYWRfZm9ybXNbaV07CgkJZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBpZCApOwoJCWlmKGVsZW1lbnQgIT0g
bnVsbCkKCQkJb3NfaW5pdEhhbmRsZXJzKGlkLGZvcm0sZWxlbWVudCk7Cgl9Cn0K
Cmhvb2tFdmVudCgibG9hZCIsIG9zX01XU3VnZ2VzdEluaXQpOwo=

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=centralnotice.js
Content-Type: text/javascript; charset=utf-8; name=centralnotice.js
Content-Location: http://upload.wikimedia.org/centralnotice/wikipedia/es/centralnotice.js?233zz2
Content-Transfer-Encoding: Quoted-Printable


function toggleNotice() {
	var notice =3D document.getElementById('centralNotice');
	if (!wgNoticeToggleState) {
		notice.className =3D notice.className.replace('collapsed', 'expanded')=
;
		toggleNoticeCookie('0');
	} else {
		notice.className =3D notice.className.replace('expanded', 'collapsed')=
;
		toggleNoticeCookie('1');
	}
	wgNoticeToggleState =3D !wgNoticeToggleState;
}
function toggleNoticeStyle(elems, display) {
	if(elems)
		for(var i=3D0;i<elems.length;i++)
			elems[i].style.display =3D display;
}
function toggleNoticeCookie(state) {
	var e =3D new Date();
	e.setTime( e.getTime() + (7*24*60*60*1000) ); // one week
	var work=3D'hidesnmessage=3D'+state+'; expires=3D' + e.toGMTString() + =
'; path=3D/';
	document.cookie =3D work;
}
function pickTemplate(templates, weights) {
	var weightedTemplates =3D new Array();
	var currentTemplate =3D 0;
	var totalWeight =3D 0;

	if (templates.length =3D=3D 0)
		return '';

	while (currentTemplate < templates.length) {
		totalWeight +=3D weights[currentTemplate];
		for (i=3D0; i<weights[currentTemplate]; i++) {
			weightedTemplates[weightedTemplates.length] =3D templates[currentTemp=
late];
		}
		currentTemplate++;
	}
	=

	if (totalWeight =3D=3D 0)
		return '';

	var randomnumber=3DMath.floor(Math.random()*totalWeight);
	return weightedTemplates[randomnumber];
}


var wgNoticeToggleState =3D (document.cookie.indexOf('hidesnmessage=3D1'=
)=3D=3D-1);
document.writeln("\x3cstyle type=3D\"text/css\"\x3e\n#centralNotice .sit=
eNoticeSmall{display:none;}\n#centralNotice .siteNoticeSmallAnon{display=
:none;}\n#centralNotice .siteNoticeSmallUser{display:none;}\n#centralNot=
ice.collapsed .siteNoticeBig{display:none;}\n#centralNotice.collapsed .s=
iteNoticeSmall{display:block;}\n#centralNotice.collapsed .siteNoticeSmal=
lUser{display:block;}\n#centralNotice.collapsed .siteNoticeSmallAnon{dis=
play:block;}\n#centralNotice.anonnotice .siteNoticeSmallUser{display:non=
e !important;}\n#centralNotice.usernotice .siteNoticeSmallAnon{display:n=
one !important;}\n\x3c/style\x3e");

wgNotice=3DpickTemplate(["\x3cstyle type=3D\"text/css\"\x3e \n/* Styles =
for Notices */\n\n.notice-wrapper-strategy2, .notice-collapsed-wrapper-s=
trategy2 {\n margin: 2px auto 0;\n width: 100%;\n padding: 0;\n font-fam=
ily: \'Arial\',\'Helvetica\',\'Tahoma\',sans-serif;\n color: #333;\n bac=
kground-color: #ddd;\n font-weight: 200;\n vertical-align:middle;\n}\n\n=
.notice-wrapper-strategy2 {\n border: 1px solid #bbb;\n background-color=
: #fcfcfc;\n text-align: left;\n}\n\n.notice-wrapper-strategy2 a {\n col=
or: #006699;\n}\n\n.toggle-box-strategy2 {\n padding: 0;\n white-space: =
nowrap;\n}\n\ntd#table-cell-1 {\n margin: 0 auto;\n padding: 1px 0 3px 5=
px;\n width: 30px;\n}\n\ntd#table-cell-2 {\n margin: 0 auto;\n padding: =
0 5px 0 0;\n font-size: 1.2em;\n}\n\ntd#table-cell-3 {\n text-align:righ=
t;\n font-size:.8em;\n padding:0 5px 0 0;\n}\n\n.line-ht-fix {\n line-he=
ight: 1em;\n}\n\n#centralNotice.collapsed .siteNoticeUser {\n display:no=
ne;\n}\n\ndiv.notice-links-strategy2 {\n text-align:right;\n}\n\x3c/styl=
e\x3e\n\n\x3ctable class=3D\"siteNoticeUser notice-wrapper-strategy2\"\x=
3e\n \x3ctr\x3e\n  \x3ctd id=3D\"table-cell-1\"\x3e\n   \x3cspan id=3D\"=
image-strategy\"\x3e\n    \x3ca title=3D\"Wikimedia Strategy\" href=3D\"=
http://strategy.wikimedia.org\"\x3e\x3cimg alt=3D\"Wikimedia Community l=
ogo\" src=3D\"http://upload.wikimedia.org/wikipedia/commons/thumb/7/75/W=
ikimedia_Community_Logo.svg/30px-Wikimedia_Community_Logo.svg.png\" styl=
e=3D\"border: none; float: left; height:30px;  width:30px; margin-right:=
 .4em; vertical-align: middle;\" /\x3e\x3c/a\x3e\n   \x3c/span\x3e\n  \x=
3c/td\x3e\n  \x3ctd id=3D\"table-cell-2\"\x3e\n   \x3cspan\x3e\n    =C2=A1=
Ayuda a construir el futuro de Wikipedia y sus proyectos hermanos! \x3cB=
R\x3e \x3ca href=3D\"http://volunteer.wikimedia.org\"\x3eLee la carta\x3=
c/a\x3e de Michael Snow y Jimmy Wales.\n   \x3c/span\x3e\n  \x3c/td\x3e\=
n  \x3ctd id=3D\"table-cell-3\" class=3D\"line-ht-fix\"\x3e\n   \x3cspan=
 class=3D\"toggle-box-strategy2\"\x3e[\x3ca href=3D\"#\" onclick=3D\"tog=
gleNotice();return\n   false\"\x3eContraer\x3c/a\x3e]\x3c/span\x3e [\x3c=
a href=3D\"http://strategy.wikimedia.org/wiki/Strategic_Planning:Transla=
tion\"\x3eAy=C3=BAdanos traduciendo.\x3c/a\x3e]\n   \x3c/span\x3e\n  \x3=
c/td\x3e\n \x3c/tr\x3e\n\x3c/table\x3e"],[100]);
if (wgNotice !=3D '')
wgNotice=3D'<div id=3D"centralNotice" class=3D"' + (wgNoticeToggleState =
? 'expanded' : 'collapsed') + ' ' + (wgUserName ? 'usernotice' : 'anonno=
tice' ) + '">' + wgNotice+'</div>';

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=index.js
Content-Type: text/javascript; charset=utf-8; name=index.js
Content-Location: http://es.wikipedia.org/w/index.php?title=-&action=raw&gen=js&useskin=monobook
Content-Transfer-Encoding: 8bit

/* generated javascript */
var skin = 'monobook';
var stylepath = '/skins-1.5';

/* MediaWiki:Common.js */
window.hitos = [];
function hito(nombre) {
  window.hitos.push([nombre, new Date().getTime()]);
}

hito("C Common.js");

 /** Execute function on page load *********************************************
  *
  *  Description: Wrapper around addOnloadHook() for backwards compatibility.
  *               Will be removed in the near future.
  *  Maintainers: [[User:R. Koot]]
  */
 
 function addLoadEvent( f ) { addOnloadHook( f ); }


 /* Test if an element has a certain class **************************************
  *
  * Description: Uses regular expressions and caching for better performance.
  * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
  */
 
 var hasClass = (function () {
     var reCache = {};
     return function (element, className) {
         return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
     };
 })();

 /** Internet Explorer bug fix **************************************************
  *
  *  Description: UNDOCUMENTED
  *  Maintainers: [[User:Tom-]]?
  */
 
 if (window.showModalDialog && document.compatMode)
 {
   var oldWidth;
   var docEl = document.documentElement;
 
   function fixIEScroll()
   {
     if (!oldWidth || docEl.clientWidth > oldWidth)
       doFixIEScroll();
     else
       setTimeout(doFixIEScroll, 1);
   
     oldWidth = docEl.clientWidth;
   }
 
   function doFixIEScroll() {
     docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
   }
   try {
     document.attachEvent("onreadystatechange", fixIEScroll);
     attachEvent("onresize", fixIEScroll);
   }
   catch(e) { }
 }

 /** Collapsible tables *********************************************************
 *
 *  Description: Allows tables to be collapsed, showing only the header. See
 *               [[Wikipedia:NavFrame]].
 *  Maintainers: [[User:R. Koot]]
 */

var autoCollapse = 2;
var collapseCaption = "ocultar";
var expandCaption = "mostrar";

function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );

    if ( !Table || !Button ) {
        return false;
    }

    var Rows = Table.rows;

    if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
}

function createCollapseButtons()
{
    hito("C createCollapseButtons");
    var tableIndex = 0;
    var NavigationBoxes = new Object();
    var Tables = document.getElementsByTagName( "table" );

    for ( var i = 0; i < Tables.length; i++ ) {
        if ( hasClass( Tables[i], "collapsible" ) ) {

            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
            if (!HeaderRow) continue;
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
            if (!Header) continue;

            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );

            var Button     = document.createElement( "span" );
            var ButtonLink = document.createElement( "a" );
            var ButtonText = document.createTextNode( collapseCaption );

            Button.style.styleFloat = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            Button.style.width = "6em";

            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
            ButtonLink.appendChild( ButtonText );

            Button.appendChild( document.createTextNode( "[" ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );

            Header.insertBefore( Button, Header.childNodes[0] );
            tableIndex++;
        }
    }

    for ( var i = 0;  i < tableIndex; i++ ) {
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
            collapseTable( i );
        }
    }
    hito("F createCollapseButtons");
}

addOnloadHook( createCollapseButtons );

 //fix edit summary prompt for undo
 //this code fixes the fact that the undo function combined with the "no edit summary prompter" causes problems if leaving the
 //edit summary unchanged
 //this was added by [[User:Deskana]], code by [[User:Tra]]
 addOnloadHook(function () {
   if (document.location.search.indexOf("undo=") != -1
   && document.getElementsByName('wpAutoSummary')[0]) {
     document.getElementsByName('wpAutoSummary')[0].value='';
   }
 })

/*</pre>
== Búsqueda especial extendida (specialsearch) ==
Añade a la página [[Special:Search]] enlaces a buscadores externos como Yahoo, Google, MSN Live y Exalead.

Trabaja en conjunto con el módulo [[MediaWiki:SpecialSearch.js]] y está basado en [[w:fr:MediaWiki:Monobook.js]].
<pre><nowiki> */

addOnloadHook( function() {
if ((wgCanonicalNamespace == "Special") && (wgCanonicalSpecialPageName == "Search"))
   importScript('MediaWiki:SpecialSearch.js');
} );

/*</nowiki></pre>
== Cerrar mensajes ==
Ver ejemplo en [[Usuario:Chabacano/Fírmalo]], por [[Usuario:Platonides]].
<pre><nowiki> */

 addOnloadHook( function() {
 hito("C cerrar mensajes");
 if (document.getElementById("cierraPadre")) {
      document.getElementById("cierraPadre").childNodes[0].onclick= function () { 
      document.getElementById("cierraPadre").style.cursor = 'pointer';
      document.getElementById("cierraPadre").parentNode.style.display = 'none';
      return false; /*no seguir el href*/} 
   }
 hito("F cerrar mensajes");
 });


/*</nowiki></pre>
== Scripts sólo para biblios ==
<pre><nowiki> */

function userInGroup(group) {
  return (wgUserGroups && (('|' + wgUserGroups.join('|') + '|').indexOf('|' + group + '|') != -1));
}

if ( userInGroup('sysop') ) 
    importScript( "MediaWiki:Sysop.js" );

/*</pre>
== Wikimedia Player ==
Añade reproductor en la misma página.
<pre><nowiki> */

document.write('<script type="text/javascript" src="' 
+ '/w/index.php?title=MediaWiki:Wikimediaplayer.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>');


/** WikiMiniAtlas *******************************************************
  *
  *  Description: WikiMiniAtlas is a popup click and drag world map.
  *               This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
  *               The script itself is located on meta because it is used by many projects.
  *               See [[Meta:WikiMiniAtlas]] for more information. 
  *  Created by: [[User:Dschwen]]
  */
 
document.write('<script type="text/javascript" src="' 
+ 'http://meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js' 
+ '&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400"></script>');

/*</pre>
== Mejoras de diseño de la Portada ==
<pre><nowiki> */

/** Mejoras de diseño de la Portada *********************************************************
  *
  *  Descripción:        Varias mejoras de diseño para la portada, incluyendo un
  *                      enlace adicional a la lista completa de idiomas disponibles.
  *  Adaptado de [[en:MediaWiki:Common.js]]
  */
 
 function mainPageAppendCompleteListLink() {
     hito("C mainPageAppendCompleteListLink");
     try {
         var node = document.getElementById( "p-lang" )
                            .getElementsByTagName('div')[0]
                            .getElementsByTagName('ul')[0];
 
         var aNode = document.createElement( 'a' );
         var liNode = document.createElement( 'li' );
 
         aNode.appendChild( document.createTextNode( 'Lista completa' ) );
         aNode.setAttribute( 'href' , 'http://meta.wikimedia.org/wiki/Lista_de_Wikipedias' );
         liNode.appendChild( aNode );
         liNode.style.fontWeight = 'bold';
         node.appendChild( liNode );
      } catch(e) {
        // lets just ignore what's happened
        //return;
     }
     hito("F mainPageAppendCompleteListLink");
 }

 if ( wgPageName == "Wikipedia:Portada" ) {
        addOnloadHook( mainPageAppendCompleteListLink );
 }
/*</nowiki></pre>

== Redefinición de ordenación de tablas "sortable" ==

Traido de la Inclopedia. Ordena nombres de meses en español y cambia puntos por comas.

<pre><nowiki>*/

function ts_resortTable(lnk) {
	// get the span
	var span = lnk.getElementsByTagName('span')[0];

	var td = lnk.parentNode;
	var tr = td.parentNode;
	var column = td.cellIndex;

	var table = tr.parentNode;
	while (table && !(table.tagName && table.tagName.toLowerCase() == 'table'))
		table = table.parentNode;
	if (!table) return;

	if (table.rows.length <= 1) return;

	// Generate the number transform table if it's not done already
	if (ts_number_transform_table == null) {
		ts_initTransformTable();
	}

	// Work out a type for the column
	// Skip the first row if that's where the headings are
	var rowStart = (table.tHead && table.tHead.rows.length > 0 ? 0 : 1);

	var itm = "";
	for (var i = rowStart; i < table.rows.length; i++) {
		if (table.rows[i].cells.length > column) {
			itm = ts_getInnerText(table.rows[i].cells[column]);
			itm = itm.replace(/^[\s\xa0]+/, "").replace(/[\s\xa0]+$/, "");
			if (itm != "") break;
		}
	}

	// TODO: bug 8226, localised date formats
	var sortfn = ts_sort_generic;
	var preprocessor = ts_toLowerCase;
	if (/\d\d? de [a-zA-Z]+ de \d+$/.test(itm)) {
		preprocessor = ts_dateToSortKey;
	} else if (/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/.test(itm)) {
		preprocessor = ts_dateToSortKey;
	} else if (/^\d\d[\/.-]\d\d[\/.-]\d\d$/.test(itm)) {
		preprocessor = ts_dateToSortKey;
	// pound dollar euro yen currency cents
	} else if (/(^[\u00a3$\u20ac\u00a4\u00a5]|\u00a2$)/.test(itm)) {
		preprocessor = ts_currencyToSortKey;
	} else if (ts_number_regex.test(itm)) {
		preprocessor = ts_parseFloat;
	}

	var reverse = (span.getAttribute("sortdir") == 'down');

	var newRows = new Array();
	var staticRows = new Array();
	for (var j = rowStart; j < table.rows.length; j++) {
		var row = table.rows[j];
		if((" "+row.className+" ").indexOf(" unsortable ") < 0) {
			var keyText = ts_getInnerText(row.cells[column]);
			var oldIndex = (reverse ? -j : j);
			var preprocessed = preprocessor( keyText );

			newRows[newRows.length] = new Array(row, preprocessed, oldIndex);
		} else staticRows[staticRows.length] = new Array(row, false, j-rowStart);
	}

	newRows.sort(sortfn);

	var arrowHTML;
	if (reverse) {
		arrowHTML = '<img src="'+ ts_image_path + ts_image_down + '" alt="&darr;"/>';
		newRows.reverse();
		span.setAttribute('sortdir','up');
	} else {
		arrowHTML = '<img src="'+ ts_image_path + ts_image_up + '" alt="&uarr;"/>';
		span.setAttribute('sortdir','down');
	}

	for (var i = 0; i < staticRows.length; i++) {
		var row = staticRows[i];
		newRows.splice(row[2], 0, row);
	}

	// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
	// don't do sortbottom rows
	for (var i = 0; i < newRows.length; i++) {
		if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") == -1)
			table.tBodies[0].appendChild(newRows[i][0]);
	}
	// do sortbottom rows only
	for (var i = 0; i < newRows.length; i++) {
		if ((" "+newRows[i][0].className+" ").indexOf(" sortbottom ") != -1)
			table.tBodies[0].appendChild(newRows[i][0]);
	}

	// Delete any other arrows there may be showing
	var spans = getElementsByClassName(tr, "span", "sortarrow");
	for (var i = 0; i < spans.length; i++) {
		spans[i].innerHTML = '<img src="'+ ts_image_path + ts_image_none + '" alt="&darr;"/>';
	}
	span.innerHTML = arrowHTML;

	if (ts_alternate_row_colors) {
		ts_alternate(table);
	}
}

function ts_dateToSortKey(date) {	
	if (date.length > 14) {
		date = date.toLowerCase();
		if (date.charAt(1) == " " || date.charAt(1) == "-") {
			var dia = '0' + date.charAt(0);
		} else {
			var dia = date.substr(0, 2);
		}
		var iniciomes = date.indexOf(" de ") + 4;
		var finmes = date.lastIndexOf(" de ");
		var longmes = finmes - iniciomes;
		
		switch (date.substr(iniciomes, longmes)) {
			case "enero": var mes = "01"; break;
			case "febrero": var mes = "02"; break;
			case "marzo": var mes = "03"; break;
			case "abril": var mes = "04"; break;
			case "mayo": var mes = "05"; break;
			case "junio": var mes = "06"; break;
			case "julio": var mes = "07"; break;
			case "agosto": var mes = "08"; break;
			case "septiembre": var mes = "09"; break;
			case "octubre": var mes = "10"; break;
			case "noviembre": var mes = "11"; break;
			case "diciembre": var mes = "12"; break;
		}

		for (var anno = date.substr(finmes + 4); anno.length < 4; anno = '0' + anno);
		return anno + mes + dia;
	} else if (date.length == 10) {
		if (ts_europeandate == false) {
			return date.substr(6,4)+date.substr(0,2)+date.substr(3,2);
		} else {
			return date.substr(6,4)+date.substr(3,2)+date.substr(0,2);
		}
	} else if (date.length == 8) {
		yr = date.substr(6,2);
		if (parseInt(yr) < 50) { 
			yr = '20'+yr; 
		} else { 
			yr = '19'+yr; 
		}
		if (ts_europeandate == true) {
			return yr+date.substr(3,2)+date.substr(0,2);
		} else {
			return yr+date.substr(0,2)+date.substr(3,2);
		}
	}
	return "00000000";
}

function ts_parseFloat(num) {
        if (!num) return 0;
        num = num.replace(/\./g, "");
        num = num.replace(/,/, ".");
        num = parseFloat(num);
        return (isNaN(num) ? 0 : num);
}

function ts_sort_generic(a,b) {
  if ( (typeof a[1] == "string") && (typeof b[1] == "string") ) {
    /* Don't do this if it's eg. 'number'. We don't want that and number doesn't have .toLowerCase() */
    var aa = a[1].toLowerCase();
    var bb = b[1].toLowerCase();
    return(aa.localeCompare(bb));
  } else {
    return a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : a[2] - b[2]; //Original ts_sort_generic
  }
}


addOnloadHook ( function() {
     hito("C función extraña");
     var n = Math.round(Math.random() * 9); //10 opciones

       for (i=0; i < document.styleSheets.length; i++) {
         if (document.styleSheets[0].href.substring(0, wgServer.length) == wgServer) { //NS_ERROR_DOM_SECURITY_ERR: http://permalink.gmane.org/gmane.science.linguistics.wikipedia.technical/40588

             if (document.styleSheets[0].cssRules) {
                for (i=document.styleSheets.length-1; i >= 0; i--) {
                    try {
                         //Añadir al final (Gecko)
                         document.styleSheets[i].insertRule('.rotate_0 { display: none }', document.styleSheets[i].cssRules.length);
                         document.styleSheets[i].insertRule('.rotate_' + n + ' { display: block; }', document.styleSheets[i].cssRules.length);
                         break;
                     } catch(e) {
                         //Ignorar el error y probar con la hoja de estilos anterior.
                         //Así, por ejemplo [[Usuario:Axxgreazz/Monobook-Suite/popups.js]] carga una hoja de estilos desde en.wikipedia.org, lo que provoca un error 'Access to URI denied' (NS_ERROR_DOM_BAD_URI).
                     }
                 }
             } else if (document.styleSheets[0].rules) { //IE
                document.styleSheets[document.styleSheets.length-1].addRule('.rotate_0', 'display: none');
                document.styleSheets[document.styleSheets.length-1].addRule('.rotate_' + n, 'display: block');
             }
             break;
        }
  }
  hito("F función extraña");
} );

var wma_settings =
{
buttonImage: "http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Erioll_world.svg/15px-Erioll_world.svg.png"
}







// == Código del plegado/desplegado de plantillas ==

var NavigationBarHide = 'Plegar';
var NavigationBarShow = 'Desplegar';

var NavigationBarShowDefault = 0;

document.write('<script type="text/javascript" ' +
  'src="/w/index.php?title=MediaWiki:NavigationBar.js' +
  '&amp;action=raw&amp;smaxage=3600&amp;ctype=text/javascript&amp;dontcountme=s"></scr' +
  'ipt>');

// == Código para artículos destacados ==
		
function LinkFA() 
{
   hito("C LinkFA");
   // iterate over all <span>-elements
   for (var i=0; a = document.getElementsByTagName("span")[i]; i++) {
      // if found a FA span
      if(a.className == "destacado") {
         // iterate over all <li>-elements
         for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
            // if found a FA link
            if (b.className == "interwiki-" + a.id) {
               b.className += " destacado";
               b.title = "Este es un artículo destacado en esta Wikipedia.";
            }
         }
      }
   }
   hito("F LinkFA");
}

addOnloadHook(LinkFA);

function LinkAB() 
{
   hito("C LinkAB");
   // iterate over all <span>-elements
   for (var i=0; a = document.getElementsByTagName("span")[i]; i++) {
      if(a.className == "bueno") {
         // iterate over all <li>-elements
         for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
            // if found a AB link
            if (b.className == "interwiki-" + a.id) {
               b.className += " bueno";
               b.title = "Este es un artículo bueno en esta Wikipedia.";
            }
         }
      }
   }
   hito("F LinkAB");
}

addOnloadHook(LinkAB);

/*
// == Interproyectos en un recuadro a la izquierda ==
 Modificado a partir de de:wikt:Mediawiki:monobook.js
 Funcionan con la plantilla {{tl|interproyecto}} y en breve con otras
 [[:Categoría:Wikipedia:Plantillas_de_enlace_entre_proyectos|plantillas de enlace entre proyectos]]
*/

 document.write('<style type="text/css">#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}<\/style>');
 function iProject() {
  hito("C iProject");
  var elementos = new Array();
  
  if ( document.getElementsByClassName ) {
    elementos = document.getElementsByClassName("interProject");
  } else {
    var els = document.getElementsByTagName("span");
    var elsLen = els.length;
    for (i = 0, j = 0; i < elsLen; i++) {
     if ( "interProject" == els[i].className) {
       elementos[j] = els[i];
       j++;
     }
    }
 }
  if (elementos.length > 0) {
     var portal = document.createElement('div');
     portal.setAttribute("class", "portlet portal"); /* portlet en monobook, portal en vector */

     var tit = document.createElement('h5');
     tit.setAttribute("lang", "es");
     tit.setAttributeNS("http://www.w3.org/XML/1998/namespace", "lang", "es");
     tit.appendChild(document.createTextNode( 'Otros proyectos' ) );
     portal.appendChild(tit);

     var IPY = document.createElement('div');
     IPY.setAttribute('class', "pBody body");
     var ul = document.createElement('ul');
     IPY.appendChild(ul);

     for (i = 0; i < elementos.length; i++) {
         var li = document.createElement('li');
         li.innerHTML = elementos[i].innerHTML;
         ul.appendChild(li);
     }
     portal.appendChild(IPY);

     if ( document.getElementById("p-tb").nextSibling )
       document.getElementById("p-tb").parentNode.insertBefore(portal, document.getElementById("p-tb").nextSibling);
     else
       document.getElementById("p-tb").parentNode.appendChild(portal);
   }
   hito("F iProject");
 }
 addOnloadHook(iProject);


hito("F Common.js");

/* MediaWiki:Monobook.js */
hito("C Monobook.js");

//Tooltips and access keys

ta = new Object();
ta['pt-userpage'] = new Array('.','Mi página de usuario'); 
ta['pt-anonuserpage'] = new Array('.','La página de usuario de la IP desde la que editas'); 
ta['pt-mytalk'] = new Array('n','Mi página de discusión'); 
ta['pt-anontalk'] = new Array('n','Discusión sobre ediciones hechas desde esta dirección IP'); 
ta['pt-preferences'] = new Array('','Mis preferencias'); 
ta['pt-watchlist'] = new Array('l','La lista de páginas para las que estás vigilando los cambios'); 
ta['pt-mycontris'] = new Array('y','Lista de mis contribuciones'); 
ta['pt-login'] = new Array('o','Te animamos a registrarte antes de editar, aunque no es obligatorio'); 
ta['pt-anonlogin'] = new Array('o','Te animamos a registrarte antes de editar, aunque no es obligatorio'); 
ta['pt-logout'] = new Array('o','Salir de la sesión'); 
ta['ca-talk'] = new Array('t','Discusión acerca del artículo'); 
ta['ca-edit'] = new Array('e','Puedes editar esta página. Por favor, usa el botón de previsualización antes de grabar.'); 
ta['ca-addsection'] = new Array('+','Añadir un comentario a esta discusión'); 
ta['ca-viewsource'] = new Array('e','Esta página está protegida, sólo puedes ver su código fuente'); 
ta['ca-history'] = new Array('h','Versiones anteriores de esta página y sus autores'); 
ta['ca-protect'] = new Array('=','Proteger esta página'); 
ta['ca-delete'] = new Array('d','Borrar esta página'); 
ta['ca-undelete'] = new Array('d','Restaurar las ediciones hechas a esta página antes de que fuese borrada'); 
ta['ca-move'] = new Array('m','Trasladar (renombrar) esta página'); 
ta['ca-nomove'] = new Array('','No tienes los permisos necesarios para trasladar esta página'); 
ta['ca-watch'] = new Array('w','Añadir esta página a tu lista de seguimiento'); 
ta['ca-unwatch'] = new Array('w','Borrar esta página de tu lista de seguimiento'); 
ta['search'] = new Array('f','Buscar en este wiki'); 
ta['p-logo'] = new Array('','Portada'); 
ta['n-mainpage'] = new Array('z','Visitar la Portada'); 
ta['n-portal'] = new Array('','Acerca del proyecto, qué puedes hacer, dónde encontrar información'); 
ta['n-currentevents'] = new Array('','Información de contexto sobre acontecimientos actuales'); 
ta['n-recentchanges'] = new Array('r','La lista de cambios recientes en el wiki'); 
ta['n-randompage'] = new Array('x','Cargar una página aleatoriamente'); 
ta['n-help'] = new Array('','El lugar para aprender'); 
ta['n-sitesupport'] = new Array('','Respáldanos'); 
ta['t-whatlinkshere'] = new Array('j','Lista de todas las páginas del wiki que enlazan con ésta'); 
ta['t-recentchangeslinked'] = new Array('k','Cambios recientes en las páginas que enlazan con esta otra'); 
ta['feed-rss'] = new Array('','Suscripción RSS de esta página'); 
ta['feed-atom'] = new Array('','Suscripción Atom de esta página'); 
ta['t-contributions'] = new Array('','Ver la lista de contribuciones de este usuario'); 
ta['t-emailuser'] = new Array('','Enviar un mensaje de correo a este usuario'); 
ta['t-upload'] = new Array('u','Subir imágenes o archivos multimedia'); 
ta['t-specialpages'] = new Array('q','Lista de todas las páginas especiales'); 
ta['ca-nstab-main'] = new Array('c','Ver el artículo'); 
ta['ca-nstab-user'] = new Array('c','Ver la página de usuario'); 
ta['ca-nstab-media'] = new Array('c','Ver la página de multimedia'); 
ta['ca-nstab-special'] = new Array('','Esta es una página especial, no se puede editar la página en sí'); 
ta['ca-nstab-wp'] = new Array('a','Ver la página de proyecto'); 
ta['ca-nstab-image'] = new Array('c','Ver la página de la imagen'); 
ta['ca-nstab-mediawiki'] = new Array('c','Ver el mensaje de sistema'); 
ta['ca-nstab-template'] = new Array('c','Ver la plantilla'); 
ta['ca-nstab-help'] = new Array('c','Ver la página de ayuda'); 
ta['ca-nstab-category'] = new Array('c','Ver la página de categoría');
ta['wpConfirmB'] = new Array('s','Borrar realmente la página');




/*
// == Caracteres especiales (edittools) ==
Crea (y coloca) el ''combobox'' que permite seleccionar un conjunto determinado de
caracteres especiales bajo la caja de edición.
Funciona en conjunto con [[MediaWiki:Edittools]] y [[MediaWiki:Edittools.js]].

Basado en [[commons:MediaWiki:Edittools.js]].
*/

document.write('<script type="text/javascript" ' +
               'src="/w/index.php?title=MediaWiki:Edittools.javascript' +
               '&action=raw&smaxage=3600' +
               '&ctype=text/javascript' +
               '&dontcountme=s"></scr' +
               'ipt>');

/*
// == Título incorrecto ==
Desde en: (Maintainers: User:Interiot, User:Mets501). Incorporado por [[Usuario:Platonides]] 
*/

// For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
//      (for instance iPod's title is updated.  But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)
//
// The function looks for a banner like this: 
 // <div id="RealTitleBanner">    <!-- div that gets hidden -->
 //   <span id="RealTitle">title</span>
 // </div>
 // An element with id=DisableRealTitle disables the function.
var disableRealTitle = 0;               // users can disable this by making this true from their monobook.js
if (wgIsArticle) {                      // don't display the RealTitle when editing, since it is apparently inconsistent (doesn't show when editing sections, doesn't show when not previewing)
    addOnloadHook(function() {
        try {
                var realTitleBanner = document.getElementById("RealTitleBanner");
                if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
                        var realTitle = document.getElementById("RealTitle");
                        if (realTitle) {
                                var realTitleHTML = realTitle.innerHTML.replace(/<\/?(sub|sup|small|big)>/gi, function(match) { return match.toLowerCase(); });
                                realTitleText = pickUpText(realTitle);

                                var isPasteable = 0;
                                //var containsHTML = /</.test(realTitleHTML);        // contains ANY HTML
                                var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
                                // calculate whether the title is pasteable
                                var verifyTitle = realTitleText.replace(/^ +/, "");             // trim left spaces
                                verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);       // uppercase first character

                                // if the namespace prefix is there, remove it on our verification copy.  If it isn't there, add it to the original realValue copy.
                                if (wgNamespaceNumber != 0) {
                                        if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
                                                verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
                                        } else {
                                                realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
                                                realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
                                        }
                                }

                                // verify whether wgTitle matches
                                verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, "");                // trim left and right spaces
                                verifyTitle = verifyTitle.replace(/_/g, " ");           // underscores to spaces
                                verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);       // uppercase first character
                                isPasteable = (verifyTitle == wgTitle);

                                var h1 = document.getElementsByTagName("h1")[0];
                                if (h1 && isPasteable) {
                                        h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
                                        if (!containsTooMuchHTML)
                                                realTitleBanner.style.display = "none";
                                }
                                document.title = realTitleText + " - Wikipedia, la enciclopedia libre";
                        }
                }
        } catch (e) {
                /* Something went wrong. */
        }
    });
}

// similar to innerHTML, but only returns the text portions of the insides, excludes HTML
function pickUpText(aParentElement) {
  var str = "";

  function pickUpTextInternal(aElement) {
    var child = aElement.firstChild;
    while (child) {
      if (child.nodeType == 1)          // ELEMENT_NODE 
        pickUpTextInternal(child);
      else if (child.nodeType == 3)     // TEXT_NODE
        str += child.nodeValue;

      child = child.nextSibling;
    }
  }

  pickUpTextInternal(aParentElement);

  return str;
}

/*
// == Botones [editar] justo a la derecha de los títulos ==
Traído por [[Usuario:Chlewey|Carlos Th]] desde [[:de:MediaWiki:Monobook.js]].
* moveEditsection
* Este script mueve los botones [editar] del borde derecho de la ventana
* justo a la derecha del título correspondiente.
* Dieses Script verschiebt die [Bearbeiten]-Buttons vom rechten Fensterrand
* direkt rechts neben die jeweiligen Überschriften.
* This script moves the [edit]-buttons from the right border of the window
* directly right next to the corresponding headings.
*
* Si alguien desea conservar el comportamiento original de los botones,
* puede copiar en su propia botonera (Usuario:Nombre/nomobook.js):
* var oldEditsectionLinks = true;
*
* dbenzhuser (de:Benutzer:Dbenzhuser)
*/
function moveEditsection() {
    if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) {
        var spans = document.getElementsByTagName("span");
        for(var i = 0; i < spans.length; i++) {
            if(spans[i].className == "editsection") {
                spans[i].style.fontSize = "small";
                spans[i].style.fontWeight = "normal";
                spans[i].style.cssFloat = "none";
                spans[i].style.marginLeft = "0px";
                spans[i].parentNode.appendChild(document.createTextNode(" "));
                spans[i].parentNode.appendChild(spans[i]);
            }
        }
    }
}
// onload
addOnloadHook(moveEditsection);

hito("F Monobook.js");
------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=220px-Spain_final-guerra-civil.jpg
Content-Type: image/jpeg; name=220px-Spain_final-guerra-civil.jpg
Content-Location: http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Spain_final-guerra-civil.jpg/220px-Spain_final-guerra-civil.jpg
Content-Transfer-Encoding: Base64

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

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://upload.wikimedia.org/wikipedia/commons/7/74/Wikipedia-logo-es.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAAIcAAACbCAQAAADi+kBhAAAAAXNSR0IArs4c6QAA
AAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AsBFxAi
ex6E1gAAIABJREFUeNrs3XeYJWd5Jvxf1Qmdu6e7p2d6cpA0Go3CKEsgIUBCJMlg
TBIsYGw+wF5jr1nvglkDxl57MTjDGnYJttfrxaQ1YJODEhKSUM4TpMl5OqcTq+r7
o9+uPsPuKCE2XNeWrhnN6T5Vp+p5n3g/9/sc/t/x/47/RcfRgXvf8ie3vyL9ra99
Y9XP6jN2FupdOwe+P/iV8rN/7eKzdaFHorGulRdEvzL389rH3Xz2hZf54lM783C0
N55RiKb0JS/I/sffj0bjUWdxsDxX2tlxV5w068vHlk5tnj0z+cZttw7NnNr8P04c
M1FzxbErB6/ufOGSNc8x4rD9ax675L5vnjvz5OdmxSMrnRINRb1RxV13PXZhcuLv
pwv1lYVLK5ccXFtrO9g1E0e9d57Wk7V1tpWqv7Lni4UP37Kzq3pe+n+QOKbb6pc3
fnPZyzoKmaov+z17DRRG23aWnvzcfb3Jm9LX9JzS1xf1Ver7/mLpHxvJjSKajtqX
1l9Tfe3shbXuuoJIomJOh25LDEXTr3/0xX0f7vj7+0ezbGmyOv3fLo6RqH2w8obH
f6tr3TJfdrcZ1zsozs698fy/e+34k5//47O637n1nPXmZA6Vj5zWuexHU5VyZ9wd
txcs7Txv5PWjL13RHou1KzhN1W5licMiWyy3r3/io7suXP6Jzn21yWOT96dXZ/8b
xfF4HJ9V+60H33B/qc92f+04iLMX//jnfu8tP34qV9hW/Ga8ynucYc6wLZfEH3Cg
1BH3Z12NnsJA+4a2voec5phIqimRmdCmpNsmZZ92p4Lnv675qulq6dBFv5zef6Q6
nPxvEceReG64fE3lXfvPqRv0T76lor1WmklLz733F3/3DTc9tavUDh2dut0VzlfT
67yV1esKIlVtquroUXPACsfFUpktVhtRsN93POghx1ynT1TqKs2dfscHOx6rfPDA
9FDS9ozNJnqGRlJIn1t838zLdhq0zmd83gYjzfI3Lvi76dFV+9+36wlcZ3y0fVth
rlCMBwv97jv/ex85desr9auJdErtU7VMbNJnvV2HGXe41IDjYhxXtNScL/i67Qre
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
sE2WaXc0hLDFmFC03V36RXpssMKcST0KGlZ6o90+ot91RvQ42wFv0qap6Bx3eNR+
Zym3kJ3S4CIntBlQz/3EAv2tme9sucTt/s45zlQLu/QzmbWGxLrUzeXAc5obY2rG
+Q6FMJtKNJ2mIbLuvpUPPx6dkj0JJ71jT/qN6TNLHlbVaaklrgrbzRdBoqr7nGOT
qoN22OWwDfoDRlKxxJCbvQCPYbdPKptUU9Xtk5bYrJxj7othdkanslowpdbKdAGV
XeIqu91lxC+YcDSPTx0ScyFDFfiKC02MKX063J9zgBIkUj3TG2/sGRnKnpSi3zM+
fcvYO7O+FSKDDrjDWmtPyA9iFf2WmdPlFOtNOcVy1AIS1ekVGioKHtLpw/r0OcMS
PTrE2syFZCpqqWAydQUFtRPIc1mefy5kDZs8bs6QsZYG5aIuLPLP50zI1HQ5z6Oa
ofuzgH7E1m1ffcPQU9veU3qg9IMDv7DKLkucarVtRp0RcJB5FW4EwH4BBYsDCjqf
Lza8R6omc6WXEYbjLXBM5/KYsoh4Zzk+skCIik9odAkk6iPuM+w19oaxe9kJKOli
VXs4DDtZod92Ezllfx60SLQlG27p2vEUx5kUD/Z9M2k2DduvKnYW9v5E3z0OF04D
ll4PzccomEwhQI3Tps2pqWkEZc1OwMjTfD37TJvQDCJN8uyyoCBWs9sPHfQS19pl
bw7zZS3asVCx7LPMVQb1atpvWhw0Y2FBGpbv3/z1uPEU98IVm5Xbl95+4PKSSdMG
HDARSv6F7sU8/ShpaUlqqULk1cviNtI0Z3FpAXkX6VSRDW51n0s0lMPGwLqmimlT
JjT1e45VZuwM9N00b2GURCZyTZo25wp3aIg0wjuasrAFMZMqZKfeMnT78FPfKVl4
rPdLleckhXnFrRrUHeL8PAhURhJiQJLnBif2OeL8kdO80RPlP5Fv26ipmDWpYYlb
nCKyw2zgcjTF2vRYr1/JrN053X++l1ZSNGOHm91sjX8jljlgtTljIk2zZg1Z44Hc
XDvRdei8fxiefRr7aMu1yRs6bk8uO1dd3Qoj9jk19DbJlHWYE+nObb51p1yUZwxx
EEJ2wjijWFGiYtQxk+oibbp1eJ7MqFnDyirKioEhXFczGcr6KHR6G9okDrrDd+w2
4HTbVXSpm7TVeEjITzXqiHMUzGlqKCorOOOm4Ruf5qbzwo62z49fONdWkCpaaa+7
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
O/Dq+rN7/8+yOOCucmNlbWvtiuNXjm3pLBcVJeYM6zSR0xyyFn5Hku+nT1pg4f2W
eJ69HpcqaKppamqf6bt/yY0dN2UPDx97RfPZv/efgTjmj1sGrK+eN3vB7GVzp6Ud
JW35eOi4ZVjFwsNHoX+T5Mn8pFibWV1SxyXaZjoe6f1R6V539+3/pamf1V3/zMQB
t5VmlzTWFrbUzprdWjm7OZgU08LCQIFCTplc+F6mKKBfibqGTN2EUrKhXj46+Ujf
/W0P1B8pHzT59ubP8o5/puKYP24tVHsnBrI11hdPSzZObaivTnpnSo1CX9woVELF
0q2MqmqWJYW0kCSNeKJzf9futscLOxp7Zw4NjRenrkt/9vf6k+L4i8CZhS77/LN3
Wehqdvu2oisD077d7WZdHV51+pzbn/ij/qlY7s56jvd29ncOjS2vDXT2pv3jHaXu
UlclK2Zt2dxsbbY4WxvvmBoec/ToSGG8b7o0U5t547MXOW71akeeTpL+l17rA6Hp
+lFftt+3fNDFGPd2PxRp82k9tvuA74gt8Vd63Od33P1k9/KKpon5+aA3RB3luFwq
KpULHcXewqxMIa0l5aQ9iRsdzd761fWfwdJf6rne6M+e7mlXSmUWAddlRmXuz1/f
7LDl+avvGjXs/4bj72TufSYn/leZtGXL5PtlMpeAAbNe3dLy3us3/q8QxtKwJees
p3/q/MiET+Wvl5iQ+Qb4U614wiuNB9P6P/34bX9mRuajzySy3OQKFWvzr2H/D96H
ixy13Qssfm33dzzg32K5xflbx6Qt5jNpVGRDeDVmQq/FATNTxqxv+dyqY2EbytL/
4Z4Oq+hp8XZN0yf8/sTrjpzwu9guV/uANztoracdo14nk3l//nrIrMzX/I0vtLxr
i7q14Gx/ZErmgPdaY8h77JaZ8+cuRMm/NGHUn9mCIe/1uEzVn7hY5O1ulsl8we/4
tAM+rtty73NAZsJf+CN/5iua3oaX+aJM5g5/6r3+0Hfd6BcDS2XIe+2SqfiIC3/i
eV7pVrxUJvOiZwIL7ZU5pJz/5M9kUhWntLzrUycI51My72q5gczn81dXuesELXiN
rOXcQVm+4e3lMt8Fb5H5z/l7ft6nw7/ulNna4viP+b6+8OrNJ3zq4vFt70DRUZn/
cvLHPhn7p+njWOG6/Cd/oiZyu8dbPMobTghbCzNwFl/N5rf8O64O+7iEvrOWCSZN
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
4D9fOQGWyEj1UgAAAABJRU5ErkJggg==

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=portlet.js
Content-Type: application/x-javascript; charset=utf-8; name=portlet.js
Content-Location: http://es.wikipedia.org/w/extensions/Collection/collection/portlet.js?2
Content-Transfer-Encoding: Base64

ZnVuY3Rpb24gcmVmcmVzaENvbGxlY3Rpb25Qb3J0bGV0KGhpbnQpIHsKICBzYWph
eF9yZXF1ZXN0X3R5cGUgPSAnR0VUJzsKICBzYWpheF9kb19jYWxsKCd3ZkFqYXhD
b2xsZWN0aW9uR2V0UG9ydGxldCcsIFtoaW50XSwgZnVuY3Rpb24oeGhyKSB7CiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29sbGVjdGlvblBvcnRsZXRMaXN0
JykucGFyZW50Tm9kZS5pbm5lckhUTUwgPSB4aHIucmVzcG9uc2VUZXh0OwogICAg
aWYgKGhpbnQpIHsKICAgICAgd2dDb2xsZWN0aW9uQWRkUmVtb3ZlU3RhdGUgPSBo
aW50OwogICAgfQogICAgaWYgKHR5cGVvZiByZWZyZXNoQ29sbGVjdGlvbkFydGlj
bGVMaXN0ID09ICdmdW5jdGlvbicpIHsKICAgICAgcmVmcmVzaENvbGxlY3Rpb25B
cnRpY2xlTGlzdCgpOwogICAgfQogIH0pOwp9CgpmdW5jdGlvbiBjb2xsZWN0aW9u
Q2FsbChmdW5jLCBhcmdzKSB7CiAgdmFyIGhpbnQgPSBhcmdzLnNoaWZ0KCk7CiAg
c2FqYXhfcmVxdWVzdF90eXBlID0gJ1BPU1QnOwogIHNhamF4X2RvX2NhbGwoJ3dm
QWpheENvbGxlY3Rpb24nICsgZnVuYywgYXJncywgZnVuY3Rpb24oeGhyKSB7CiAg
ICByZWZyZXNoQ29sbGVjdGlvblBvcnRsZXQoaGludCk7CiAgfSk7Cn0K

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=poweredby_mediawiki_88x31.png
Content-Type: image/png; name=poweredby_mediawiki_88x31.png
Content-Location: http://es.wikipedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png
Content-Transfer-Encoding: Base64

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
RU5ErkJggg==

------------JVjTxU9jaTpGHMRtHCEzMY
Content-Disposition: inline; filename=wikimedia-button.png
Content-Type: image/png; name=wikimedia-button.png
Content-Location: http://es.wikipedia.org/images/wikimedia-button.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAMAAABUFvrSAAAAA3NCSVQICAjb4U/g
AAAAilBMVEVjZGeGh4nn6+yZmZni5uTW1taAgYNtbnGkpKYBhbLd3t1svZdCroKt
rq/Cv79ztMs7ncDMzMy5t7enzL3Hx8h6e37l5eXw8PDK0dOVwtOozdsfkrnKk47E
1tUNiba8RjxKs4bN3eKawM2SybIslr5Yp8TV4N+80dbY5Oek08O5zNJ+wqW20cf2
9vZ09tAFAAAACXBIWXMAAArwAAAK8AFCrDSYAAACh0lEQVR4Xs3RiZKbMAwGYMu3
zX2T+072fP/XqwSUppM0bLfdmf1DxlhmvhGCRV8UFmVfkm8Ig/0beLnZbJYfcuNK
T8Htr6BLcvuBCAv5o/Pf4HjTJ/4AbCyICVhRXk6JUssBXiqVpK16FCvyXJcPHvgJ
n5xLVD7CydqdHsKEWjsN7x3B2QC3Kun2k5mE29Rhh4eiH3JcHOgN1vt/h/fIXN7C
bZEtl8us2IbFauH6YRirFBO0Wqa6K1bM5gzLQDvGtNKMGdEqrcmrRth7fyIlCMPt
M26et2EYUGlxwZ0w3jKDz2WWeVSZ9Z5glltGBY8B8LERtHgwLPeUHsZJ7FfoYc/o
0vq2X+Ms8Chj1gD+he/gCjzBMasMq6hgbdSJwtCSsaiCK3jh1i8FgWFwfg0pxQXh
mceAYZkwLO5hMGUPx2DtLWxZLlg2wFJKhC9FBwZ+gFcES0zOhGxZJaVleKmqUrKD
VV+QGACJo6ClqgDwDjPC87cRHjveS0rVSimiAZalAdXBQ4ExkEAfTyGcd2WjRhhn
PDv3o5AdvN3N6OPJT4fguq4T51J5uIJf65RK9efTw3Pn3PwcjHBwnq+dS+qHiadg
zvkT9nc8o9zDwWp3xEns+MOU412W3Z72MKcG0119CF7lITjIXepw6nesSliuhS0B
Ig48ByEzDaXW+Z9gnqC0QOoJf3x+xN3pXpMRt23FJXAuFHBdRpFQXEbl3Y4bCj85
TJrMZrMkXXduc5syaoSHpsGLVl2WStRNE5XNTQjuQj1TEKUk5N7CGiypNApcc4BY
aVClju7CQ+bY6YCn8+ZusmsArk8ewEQn6WKxOCZz3kzDXEzB71fhT7sn/v4/QvBN
vjv8RfkBEHe0Bwh42FAAAAAASUVORK5CYII=

------------JVjTxU9jaTpGHMRtHCEzMY--

