From: HTTrack Website Copier Subject: Local mirror Date: Mon, 15 Mar 2010 08:20:43 GMT Message-ID: Content-Type: multipart/related; boundary="----=_MIMEPart_1268641243_481199691_=----"; type="text/html" MIME-Version: 1.0 This message is a RFC MIME-compliant multipart message. ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/v/20100315/zamora/necesitamos-union-para-lograr-20100315.html" Content-Type: text/html Content-Transfer-Encoding: 8bit Content-ID: «Necesitamos más unión para lograr una Semana Santa de conjunto». nortecastilla.es
sol
Hoy-2 / 11.7||Mañana0.9 / 15.9|
más información sobre el tiempo
Estás en: > > >
«Necesitamos más unión para lograr una Semana Santa de conjunto»

ZAMORA

«Necesitamos más unión para lograr una Semana Santa de conjunto»

15.03.10 - 01:55 -
0 Comentarios | Comparte esta noticia »
CerrarEnvía la noticia

Rellena los siguientes campos para enviar esta información a otras personas.

* campos obligatorios
Cerrar Rectificar la noticia

Rellene todos los campos con sus datos.

* campos obligatorios
Su vinculación a la Pasión se remonta a su niñez y en los últimos años ha participado activamente en conseguir una mayor proyección de la Semana Santa de Toro. Es secretario de la cofradía del Cristo del Amparo y durante su etapa como presidente de la Junta Pro Semana Santa fue uno de los impulsores de la petición de Interés Turístico Regional para la Pasión toresana.
-¿Qué supone para usted haber sido elegido pregonero?
-Para mí ha supuesto una alegría y un orgullo, pero también una responsabilidad, aunque intentaré hacerlo lo mejor que pueda. Creo que la responsabilidad pesa más por el hecho de que la Junta Pro Semana Santa se haya acordado de mí
-¿Ha pensado ya el mensaje que quiere transmitir con su pregón?
-El pregón se centrará en las tradiciones. Quiero que sea un reflejo de la tradición, de cómo somos los toresanos y de como vivimos la Semana Santa. Si la Semana Santa en Toro se celebra de una manera es porque nosotros, los toresanos, somos así, con todos los defectos que pueda tener, porque hay cosas que son mejorables; no es fácil cambiar en pocos años lo que durante muchos siglos se ha desarrollado de una manera determinada.
-¿Desde cuándo participa activamente en la celebración de la Semana Santa de Toro?
-Tuve que abandonar Toro por los estudios y después por trabajo. Volví hace unos veinte años y empecé a participar en la Semana Santa. No obstante, la he vivido desde la infancia porque soy de Toro y guardo recuerdos muy entrañables de esos primeros años.
Pequeños feudos
-A su juicio, ¿cuál es la función que tienen que asumir las cofradías toresanas?
-Creo que deberían tratar de tener un poco más de contacto entre ellas. Las cofradías de Toro son todavía como pequeños feudos y, aunque la Junta Pro Semana Santa intenta englobar a todas, todavía siguen siendo autónomas en cuestiones como la organización de las procesiones. Por eso creo que hay que intentar conseguir una mayor unión de las cofradías para organizar en conjunto la Semana Santa.
-¿Cree necesario recuperar el sentido originario de las cofradías?
-Me parece que es muy difícil conseguirlo. La cofradía del Cristo del Amparo, en unos documentos de 1876 que recogen todo el articulado, se contemplan las ayudas a los cofrades fallecidos, a las viudas de los cofrades, las misas de cabildo que se deben celebrar... Y me imagino que los comienzos del resto de las cofradías serían muy similares. Esos principios no tienen cabida en la sociedad actual porque existen muchos organismos que se encargan ya de prestar este tipo de ayudas.
-¿Cuál es el patrimonio más importante de una cofradía?
-Para mí, el patrimonio más importante de las cofradías de Toro son las personas. Las imágenes, como se ha demostrado a lo largo de la Historia, son las transmisoras de las tradiciones, pero puede haber una catástrofe como sucedió en Toro con el incendio de 1957.
-¿Es partidario de que las mujeres formen parte de todas las cofradías?
-En el caso de la cofradía del Cristo del Amparo, se va a contemplar la posibilidad de la integración de las mujeres. No creo que haya tampoco una negativa rotunda a la integración, aunque también es cierto que todavía no ha surgido el debate en la cofradía, por lo que cuando haya peticiones se estudiará
-La distinción de Interés Turístico Regional, ¿qué ha supuesto para la Semana Santa de Toro?
-Creo que supone un impulso importante sobre todo para Toro. Tenemos que tener en cuenta que, a pesar de la cercanía con Zamora, el hecho de haber obtenido esta distinción y de que nuestra Semana Santa sea valorada en su justa medida, es algo muy importante y algo que nos llena de orgullo a los toresanos.
-¿Cree que la Junta Pro Semana Santa conseguirá el objetivo de que sea declarada de Interés Turístico Nacional?
-Es muy loable la solicitud, aunque estoy convencido de que las dificultades serán muy grandes, sobre todo por la situación geográfica en la que nos encontramos, pero, si no se intenta, no se consigue nada, así que me gustaría animar a la Junta Pro Semana Santa y espero que se obtenga esta distinción.
Momentos preferidos
-¿Con qué momento se queda de la Semana Santa de Toro?
-Como miembro de la cofradía del Cristo del Amparo, uno de los momentos que más me gustan es el himno que se canta al Cristo en la iglesia de La Trinidad, aunque también me gusta mucho el Vía Crucis del Miércoles Santo. Creo que todas las cofradías viven intensamente unos momentos muy determinados que, plásticamente son muy bonitos.
- ¿Y qué sonido prefiere ?
-El sonido del tambor que indica la salida de la procesión del Miércoles Santo', un sonido que se me ha quedado grabado. Además me gusta el sonido de las cornetas cuando llaman a los cofrades. Creo que son los dos sonidos más característicos de la Semana Santa de Toro.
-¿Con qué color vincula a la Pasión toresana?
-Yo me quedo con el negro aunque el morado es el característico de siempre. Me gustan mucho más las cofradías que desfilan con las túnicas negras que con las moradas.
-¿Qué olor le recuerda a la Semana Santa?
-Sin duda el olor de la cera, aunque ahora cada vez se usa menos. Cuando era joven recuerdo que se generaban largas colas de devotos que acompañaban a la procesión y ese olor a cera quemada
0 Comentarios | Comparte esta noticia »
Opina

Aprovecha las ventajas de ser un usuario registrado y Regístrate Para realizar un comentario con tu perfil, primero debes identificarte: Login. También puedes escribir un comentario sin tener perfil:

* campos obligatorios


Listado de Comentarios
«Necesitamos más unión para lograr una Semana Santa de conjunto»

Teodoro Calvo posa bajo la imagen del Cristo del Amparo. :: M. J. C.

Pueblos de Zamora
Nuestra provincia
Información, fotos y concursos
El Norte de Castilla

EN CUALQUIER CASO TODOS LOS DERECHOS RESERVADOS:
Queda prohibida la reproducción, distribución, puesta a disposición, comunicación pública y utilización, total o parcial, de los contenidos de esta web, en cualquier forma o modalidad, sin previa, expresa y escrita autorización, incluyendo, en particular, su mera reproducción y/o puesta a disposición como resúmenes, reseñas o revistas de prensa con fines comerciales o directa o indirectamente lucrativos, a la que se manifiesta oposición expresa.

------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/css/ppll.css" Content-Type: text/css Content-Transfer-Encoding: base64 Content-ID: QGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQuZ2VuZXJhbC5jc3Mi KTsKQGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQubW9kdWxvcy5j c3MiKTsKQGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQubW9kdWxv c0RUUy5jc3MiKTsKQGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQu bXVsdGltZWRpYURUUy5jc3MiKTsKQGltcG9ydCB1cmwoImh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5l cy9jc3MvcmQuZWNvbm9taWFEVFMuY3NzIik7CkBpbXBvcnQgdXJsKCJodHRwOi8vd3d3Lm5vcnRlY2Fz dGlsbGEuZXMvY3NzL3JkLnBhcnRpY2lwYWNpb24uY3NzIik7CkBpbXBvcnQgdXJsKCJodHRwOi8vd3d3 Lm5vcnRlY2FzdGlsbGEuZXMvY3NzL3JkLnNlcnZpY2lvcy5jc3MiKTsKQGltcG9ydCB1cmwoImh0dHA6 Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3NwL3JkLnBvcnRhbC5jc3MiKTsKQGltcG9ydCB1cmwoImh0 dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9jc3MvcmQub2Npby1jb3JyZW9EVFMuY3NzIik7CkBpbXBv cnQgdXJsKCJodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvY3NzL3JkLmNvbXVuZXNEVFMuY3NzIik7 Cg== ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.jquery.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoKICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2MS4zLjIKICogaHR0cDovL2pxdWVyeS5jb20v CiAqCiAqIENvcHlyaWdodCAoYykgMjAwOSBKb2huIFJlc2lnCiAqIER1YWwgbGljZW5zZWQgdW5kZXIg dGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL0xpY2Vuc2UK ICoKICogRGF0ZTogMjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIgMjAwOSkKICog UmV2aXNpb246IDYyNDYKICovCihmdW5jdGlvbigpe3ZhciBsPXRoaXMsZyx5PWwualF1ZXJ5LHA9bC4k LG89bC5qUXVlcnk9bC4kPWZ1bmN0aW9uKEUsRil7cmV0dXJuIG5ldyBvLmZuLmluaXQoRSxGKX0sRD0v XltePF0qKDwoLnxccykrPilbXj5dKiR8XiMoW1x3LV0rKSQvLGY9L14uW146I1xbXC4sXSokLztvLmZu PW8ucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKEUsSCl7RT1FfHxkb2N1bWVudDtpZihFLm5vZGVUeXBl KXt0aGlzWzBdPUU7dGhpcy5sZW5ndGg9MTt0aGlzLmNvbnRleHQ9RTtyZXR1cm4gdGhpc31pZih0eXBl b2YgRT09PSJzdHJpbmciKXt2YXIgRz1ELmV4ZWMoRSk7aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sxXSl7 RT1vLmNsZWFuKFtHWzFdXSxIKX1lbHNle3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdbM10p O2lmKEkmJkkuaWQhPUdbM10pe3JldHVybiBvKCkuZmluZChFKX12YXIgRj1vKEl8fFtdKTtGLmNvbnRl eHQ9ZG9jdW1lbnQ7Ri5zZWxlY3Rvcj1FO3JldHVybiBGfX1lbHNle3JldHVybiBvKEgpLmZpbmQoRSl9 fWVsc2V7aWYoby5pc0Z1bmN0aW9uKEUpKXtyZXR1cm4gbyhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUu c2VsZWN0b3ImJkUuY29udGV4dCl7dGhpcy5zZWxlY3Rvcj1FLnNlbGVjdG9yO3RoaXMuY29udGV4dD1F LmNvbnRleHR9cmV0dXJuIHRoaXMuc2V0QXJyYXkoby5pc0FycmF5KEUpP0U6by5tYWtlQXJyYXkoRSkp fSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuMy4yIixzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVu Z3RofSxnZXQ6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1nP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxs KHRoaXMpOnRoaXNbRV19LHB1c2hTdGFjazpmdW5jdGlvbihGLEgsRSl7dmFyIEc9byhGKTtHLnByZXZP YmplY3Q9dGhpcztHLmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKEg9PT0iZmluZCIpe0cuc2VsZWN0b3I9 dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK0V9ZWxzZXtpZihIKXtHLnNlbGVjdG9y PXRoaXMuc2VsZWN0b3IrIi4iK0grIigiK0UrIikifX1yZXR1cm4gR30sc2V0QXJyYXk6ZnVuY3Rpb24o RSl7dGhpcy5sZW5ndGg9MDtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLEUpO3JldHVybiB0 aGlzfSxlYWNoOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIG8uZWFjaCh0aGlzLEYsRSl9LGluZGV4OmZ1bmN0 aW9uKEUpe3JldHVybiBvLmluQXJyYXkoRSYmRS5qcXVlcnk/RVswXTpFLHRoaXMpfSxhdHRyOmZ1bmN0 aW9uKEYsSCxHKXt2YXIgRT1GO2lmKHR5cGVvZiBGPT09InN0cmluZyIpe2lmKEg9PT1nKXtyZXR1cm4g dGhpc1swXSYmb1tHfHwiYXR0ciJdKHRoaXNbMF0sRil9ZWxzZXtFPXt9O0VbRl09SH19cmV0dXJuIHRo aXMuZWFjaChmdW5jdGlvbihJKXtmb3IoRiBpbiBFKXtvLmF0dHIoRz90aGlzLnN0eWxlOnRoaXMsRixv LnByb3AodGhpcyxFW0ZdLEcsSSxGKSl9fSl9LGNzczpmdW5jdGlvbihFLEYpe2lmKChFPT0id2lkdGgi fHxFPT0iaGVpZ2h0IikmJnBhcnNlRmxvYXQoRik8MCl7Rj1nfXJldHVybiB0aGlzLmF0dHIoRSxGLCJj dXJDU1MiKX0sdGV4dDpmdW5jdGlvbihGKXtpZih0eXBlb2YgRiE9PSJvYmplY3QiJiZGIT1udWxsKXty ZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxk b2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRikpfXZhciBFPSIiO28uZWFjaChGfHx0aGlzLGZ1bmN0aW9u KCl7by5lYWNoKHRoaXMuY2hpbGROb2RlcyxmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTgpe0Ur PXRoaXMubm9kZVR5cGUhPTE/dGhpcy5ub2RlVmFsdWU6by5mbi50ZXh0KFt0aGlzXSl9fSl9KTtyZXR1 cm4gRX0sd3JhcEFsbDpmdW5jdGlvbihFKXtpZih0aGlzWzBdKXt2YXIgRj1vKEUsdGhpc1swXS5vd25l ckRvY3VtZW50KS5jbG9uZSgpO2lmKHRoaXNbMF0ucGFyZW50Tm9kZSl7Ri5pbnNlcnRCZWZvcmUodGhp c1swXSl9Ri5tYXAoZnVuY3Rpb24oKXt2YXIgRz10aGlzO3doaWxlKEcuZmlyc3RDaGlsZCl7Rz1HLmZp cnN0Q2hpbGR9cmV0dXJuIEd9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5j dGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS5jb250ZW50cygpLndyYXBB bGwoRSl9KX0sd3JhcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlz KS53cmFwQWxsKEUpfSl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3Vt ZW50cyx0cnVlLGZ1bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuYXBwZW5kQ2hpbGQo RSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsdHJ1 ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPT0xKXt0aGlzLmluc2VydEJlZm9yZShFLHRoaXMu Zmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3Vt ZW50cyxmYWxzZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcyl9 KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVu Y3Rpb24oRSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShFLHRoaXMubmV4dFNpYmxpbmcpfSl9 LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fG8oW10pfSxwdXNoOltdLnB1c2gs c29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2UsZmluZDpmdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0 aD09PTEpe3ZhciBGPXRoaXMucHVzaFN0YWNrKFtdLCJmaW5kIixFKTtGLmxlbmd0aD0wO28uZmluZChF LHRoaXNbMF0sRik7cmV0dXJuIEZ9ZWxzZXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoby5t YXAodGhpcyxmdW5jdGlvbihHKXtyZXR1cm4gby5maW5kKEUsRyl9KSksImZpbmQiLEUpfX0sY2xvbmU6 ZnVuY3Rpb24oRyl7dmFyIEU9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVF dmVudCYmIW8uaXNYTUxEb2ModGhpcykpe3ZhciBJPXRoaXMub3V0ZXJIVE1MO2lmKCFJKXt2YXIgSj10 aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Si5hcHBlbmRDaGlsZCh0aGlzLmNs b25lTm9kZSh0cnVlKSk7ST1KLmlubmVySFRNTH1yZXR1cm4gby5jbGVhbihbSS5yZXBsYWNlKC8galF1 ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpLnJlcGxhY2UoL15ccyovLCIiKV0pWzBdfWVsc2V7cmV0 dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpfX0pO2lmKEc9PT10cnVlKXt2YXIgSD10aGlzLmZpbmQoIioi KS5hbmRTZWxmKCksRj0wO0UuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhp cy5ub2RlTmFtZSE9PUhbRl0ubm9kZU5hbWUpe3JldHVybn12YXIgST1vLmRhdGEoSFtGXSwiZXZlbnRz Iik7Zm9yKHZhciBLIGluIEkpe2Zvcih2YXIgSiBpbiBJW0tdKXtvLmV2ZW50LmFkZCh0aGlzLEssSVtL XVtKXSxJW0tdW0pdLmRhdGEpfX1GKyt9KX1yZXR1cm4gRX0sZmlsdGVyOmZ1bmN0aW9uKEUpe3JldHVy biB0aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8uZ3JlcCh0aGlzLGZ1bmN0aW9uKEcsRil7 cmV0dXJuIEUuY2FsbChHLEYpfSl8fG8ubXVsdGlGaWx0ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihG KXtyZXR1cm4gRi5ub2RlVHlwZT09PTF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oRSl7 dmFyIEc9by5leHByLm1hdGNoLlBPUy50ZXN0KEUpP28oRSk6bnVsbCxGPTA7cmV0dXJuIHRoaXMubWFw KGZ1bmN0aW9uKCl7dmFyIEg9dGhpczt3aGlsZShIJiZILm93bmVyRG9jdW1lbnQpe2lmKEc/Ry5pbmRl eChIKT4tMTpvKEgpLmlzKEUpKXtvLmRhdGEoSCwiY2xvc2VzdCIsRik7cmV0dXJuIEh9SD1ILnBhcmVu dE5vZGU7RisrfX0pfSxub3Q6ZnVuY3Rpb24oRSl7aWYodHlwZW9mIEU9PT0ic3RyaW5nIil7aWYoZi50 ZXN0KEUpKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tdWx0aUZpbHRlcihFLHRoaXMsdHJ1ZSksIm5v dCIsRSl9ZWxzZXtFPW8ubXVsdGlGaWx0ZXIoRSx0aGlzKX19dmFyIEY9RS5sZW5ndGgmJkVbRS5sZW5n dGgtMV0hPT1nJiYhRS5ub2RlVHlwZTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4g Rj9vLmluQXJyYXkodGhpcyxFKTwwOnRoaXMhPUV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlz LnB1c2hTdGFjayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIEU9PT0ic3RyaW5nIj9v KEUpOm8ubWFrZUFycmF5KEUpKSkpfSxpczpmdW5jdGlvbihFKXtyZXR1cm4gISFFJiZvLm11bHRpRmls dGVyKEUsdGhpcykubGVuZ3RoPjB9LGhhc0NsYXNzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJnRoaXMu aXMoIi4iK0UpfSx2YWw6ZnVuY3Rpb24oSyl7aWYoSz09PWcpe3ZhciBFPXRoaXNbMF07aWYoRSl7aWYo by5ub2RlTmFtZShFLCJvcHRpb24iKSl7cmV0dXJuKEUuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNwZWNp ZmllZD9FLnZhbHVlOkUudGV4dH1pZihvLm5vZGVOYW1lKEUsInNlbGVjdCIpKXt2YXIgST1FLnNlbGVj dGVkSW5kZXgsTD1bXSxNPUUub3B0aW9ucyxIPUUudHlwZT09InNlbGVjdC1vbmUiO2lmKEk8MCl7cmV0 dXJuIG51bGx9Zm9yKHZhciBGPUg/STowLEo9SD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyIEc9TVtG XTtpZihHLnNlbGVjdGVkKXtLPW8oRykudmFsKCk7aWYoSCl7cmV0dXJuIEt9TC5wdXNoKEspfX1yZXR1 cm4gTH1yZXR1cm4oRS52YWx1ZXx8IiIpLnJlcGxhY2UoL1xyL2csIiIpfXJldHVybiBnfWlmKHR5cGVv ZiBLPT09Im51bWJlciIpe0srPSIifXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5v ZGVUeXBlIT0xKXtyZXR1cm59aWYoby5pc0FycmF5KEspJiYvcmFkaW98Y2hlY2tib3gvLnRlc3QodGhp cy50eXBlKSl7dGhpcy5jaGVja2VkPShvLmluQXJyYXkodGhpcy52YWx1ZSxLKT49MHx8by5pbkFycmF5 KHRoaXMubmFtZSxLKT49MCl9ZWxzZXtpZihvLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgTj1v Lm1ha2VBcnJheShLKTtvKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVk PShvLmluQXJyYXkodGhpcy52YWx1ZSxOKT49MHx8by5pbkFycmF5KHRoaXMudGV4dCxOKT49MCl9KTtp ZighTi5sZW5ndGgpe3RoaXMuc2VsZWN0ZWRJbmRleD0tMX19ZWxzZXt0aGlzLnZhbHVlPUt9fX0pfSxo dG1sOmZ1bmN0aW9uKEUpe3JldHVybiBFPT09Zz8odGhpc1swXT90aGlzWzBdLmlubmVySFRNTC5yZXBs YWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpOm51bGwpOnRoaXMuZW1wdHkoKS5hcHBl bmQoRSl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmFmdGVyKEUpLnJlbW92ZSgp fSxlcTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5zbGljZShFLCtFKzEpfSxzbGljZTpmdW5jdGlvbigp e3JldHVybiB0aGlzLnB1c2hTdGFjayhBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkodGhpcyxhcmd1 bWVudHMpLCJzbGljZSIsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIs IikpfSxtYXA6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubWFwKHRoaXMsZnVuY3Rp b24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRixHKX0pKX0sYW5kU2VsZjpmdW5jdGlvbigpe3JldHVybiB0 aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfSxkb21NYW5pcDpmdW5jdGlvbihKLE0sTCl7aWYodGhpc1sw XSl7dmFyIEk9KHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSkuY3JlYXRlRG9jdW1lbnRGcmFn bWVudCgpLEY9by5jbGVhbihKLCh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLEkpLEg9SS5m aXJzdENoaWxkO2lmKEgpe2Zvcih2YXIgRz0wLEU9dGhpcy5sZW5ndGg7RzxFO0crKyl7TC5jYWxsKEso dGhpc1tHXSxIKSx0aGlzLmxlbmd0aD4xfHxHPjA/SS5jbG9uZU5vZGUodHJ1ZSk6SSl9fWlmKEYpe28u ZWFjaChGLHopfX1yZXR1cm4gdGhpcztmdW5jdGlvbiBLKE4sTyl7cmV0dXJuIE0mJm8ubm9kZU5hbWUo TiwidGFibGUiKSYmby5ub2RlTmFtZShPLCJ0ciIpPyhOLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9k eSIpWzBdfHxOLmFwcGVuZENoaWxkKE4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIp KSk6Tn19fTtvLmZuLmluaXQucHJvdG90eXBlPW8uZm47ZnVuY3Rpb24geihFLEYpe2lmKEYuc3JjKXtv LmFqYXgoe3VybDpGLnNyYyxhc3luYzpmYWxzZSxkYXRhVHlwZToic2NyaXB0In0pfWVsc2V7by5nbG9i YWxFdmFsKEYudGV4dHx8Ri50ZXh0Q29udGVudHx8Ri5pbm5lckhUTUx8fCIiKX1pZihGLnBhcmVudE5v ZGUpe0YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChGKX19ZnVuY3Rpb24gZSgpe3JldHVybiArbmV3IERh dGV9by5leHRlbmQ9by5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgSj1hcmd1bWVudHNbMF18fHt9LEg9 MSxJPWFyZ3VtZW50cy5sZW5ndGgsRT1mYWxzZSxHO2lmKHR5cGVvZiBKPT09ImJvb2xlYW4iKXtFPUo7 Sj1hcmd1bWVudHNbMV18fHt9O0g9Mn1pZih0eXBlb2YgSiE9PSJvYmplY3QiJiYhby5pc0Z1bmN0aW9u KEopKXtKPXt9fWlmKEk9PUgpe0o9dGhpczstLUh9Zm9yKDtIPEk7SCsrKXtpZigoRz1hcmd1bWVudHNb SF0pIT1udWxsKXtmb3IodmFyIEYgaW4gRyl7dmFyIEs9SltGXSxMPUdbRl07aWYoSj09PUwpe2NvbnRp bnVlfWlmKEUmJkwmJnR5cGVvZiBMPT09Im9iamVjdCImJiFMLm5vZGVUeXBlKXtKW0ZdPW8uZXh0ZW5k KEUsS3x8KEwubGVuZ3RoIT1udWxsP1tdOnt9KSxMKX1lbHNle2lmKEwhPT1nKXtKW0ZdPUx9fX19fXJl dHVybiBKfTt2YXIgYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWln aHQvaSxxPWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fSxzPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7 by5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oRSl7bC4kPXA7aWYoRSl7bC5qUXVlcnk9eX1yZXR1 cm4gb30saXNGdW5jdGlvbjpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgRnVu Y3Rpb25dIn0saXNBcnJheTpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgQXJy YXldIn0saXNYTUxEb2M6ZnVuY3Rpb24oRSl7cmV0dXJuIEUubm9kZVR5cGU9PT05JiZFLmRvY3VtZW50 RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1MInx8ISFFLm93bmVyRG9jdW1lbnQmJm8uaXNYTUxEb2MoRS5v d25lckRvY3VtZW50KX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnRlc3QoRykpe3Zh ciBGPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3Vt ZW50RWxlbWVudCxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0UudHlwZT0idGV4dC9q YXZhc2NyaXB0IjtpZihvLnN1cHBvcnQuc2NyaXB0RXZhbCl7RS5hcHBlbmRDaGlsZChkb2N1bWVudC5j cmVhdGVUZXh0Tm9kZShHKSl9ZWxzZXtFLnRleHQ9R31GLmluc2VydEJlZm9yZShFLEYuZmlyc3RDaGls ZCk7Ri5yZW1vdmVDaGlsZChFKX19LG5vZGVOYW1lOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYubm9kZU5h bWUmJkYubm9kZU5hbWUudG9VcHBlckNhc2UoKT09RS50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9u KEcsSyxGKXt2YXIgRSxIPTAsST1HLmxlbmd0aDtpZihGKXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYo Sy5hcHBseShHW0VdLEYpPT09ZmFsc2Upe2JyZWFrfX19ZWxzZXtmb3IoO0g8STspe2lmKEsuYXBwbHko R1tIKytdLEYpPT09ZmFsc2Upe2JyZWFrfX19fWVsc2V7aWYoST09PWcpe2ZvcihFIGluIEcpe2lmKEsu Y2FsbChHW0VdLEUsR1tFXSk9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcih2YXIgSj1HWzBdO0g8SSYm Sy5jYWxsKEosSCxKKSE9PWZhbHNlO0o9R1srK0hdKXt9fX1yZXR1cm4gR30scHJvcDpmdW5jdGlvbihI LEksRyxGLEUpe2lmKG8uaXNGdW5jdGlvbihJKSl7ST1JLmNhbGwoSCxGKX1yZXR1cm4gdHlwZW9mIEk9 PT0ibnVtYmVyIiYmRz09ImN1ckNTUyImJiFiLnRlc3QoRSk/SSsicHgiOkl9LGNsYXNzTmFtZTp7YWRk OmZ1bmN0aW9uKEUsRil7by5lYWNoKChGfHwiIikuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKEcsSCl7aWYo RS5ub2RlVHlwZT09MSYmIW8uY2xhc3NOYW1lLmhhcyhFLmNsYXNzTmFtZSxIKSl7RS5jbGFzc05hbWUr PShFLmNsYXNzTmFtZT8iICI6IiIpK0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5 cGU9PTEpe0UuY2xhc3NOYW1lPUYhPT1nP28uZ3JlcChFLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyksZnVu Y3Rpb24oRyl7cmV0dXJuICFvLmNsYXNzTmFtZS5oYXMoRixHKX0pLmpvaW4oIiAiKToiIn19LGhhczpm dW5jdGlvbihGLEUpe3JldHVybiBGJiZvLmluQXJyYXkoRSwoRi5jbGFzc05hbWV8fEYpLnRvU3RyaW5n KCkuc3BsaXQoL1xzKy8pKT4tMX19LHN3YXA6ZnVuY3Rpb24oSCxHLEkpe3ZhciBFPXt9O2Zvcih2YXIg RiBpbiBHKXtFW0ZdPUguc3R5bGVbRl07SC5zdHlsZVtGXT1HW0ZdfUkuY2FsbChIKTtmb3IodmFyIEYg aW4gRyl7SC5zdHlsZVtGXT1FW0ZdfX0sY3NzOmZ1bmN0aW9uKEgsRixKLEUpe2lmKEY9PSJ3aWR0aCJ8 fEY9PSJoZWlnaHQiKXt2YXIgTCxHPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRl biIsZGlzcGxheToiYmxvY2sifSxLPUY9PSJ3aWR0aCI/WyJMZWZ0IiwiUmlnaHQiXTpbIlRvcCIsIkJv dHRvbSJdO2Z1bmN0aW9uIEkoKXtMPUY9PSJ3aWR0aCI/SC5vZmZzZXRXaWR0aDpILm9mZnNldEhlaWdo dDtpZihFPT09ImJvcmRlciIpe3JldHVybn1vLmVhY2goSyxmdW5jdGlvbigpe2lmKCFFKXtMLT1wYXJz ZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRpbmciK3RoaXMsdHJ1ZSkpfHwwfWlmKEU9PT0ibWFyZ2luIil7 TCs9cGFyc2VGbG9hdChvLmN1ckNTUyhILCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwfWVsc2V7TC09cGFy c2VGbG9hdChvLmN1ckNTUyhILCJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8fDB9fSl9aWYoSC5v ZmZzZXRXaWR0aCE9PTApe0koKX1lbHNle28uc3dhcChILEcsSSl9cmV0dXJuIE1hdGgubWF4KDAsTWF0 aC5yb3VuZChMKSl9cmV0dXJuIG8uY3VyQ1NTKEgsRixKKX0sY3VyQ1NTOmZ1bmN0aW9uKEksRixHKXt2 YXIgTCxFPUkuc3R5bGU7aWYoRj09Im9wYWNpdHkiJiYhby5zdXBwb3J0Lm9wYWNpdHkpe0w9by5hdHRy KEUsIm9wYWNpdHkiKTtyZXR1cm4gTD09IiI/IjEiOkx9aWYoRi5tYXRjaCgvZmxvYXQvaSkpe0Y9d31p ZighRyYmRSYmRVtGXSl7TD1FW0ZdfWVsc2V7aWYocS5nZXRDb21wdXRlZFN0eWxlKXtpZihGLm1hdGNo KC9mbG9hdC9pKSl7Rj0iZmxvYXQifUY9Ri5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJD YXNlKCk7dmFyIE09cS5nZXRDb21wdXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD1NLmdldFByb3BlcnR5 VmFsdWUoRil9aWYoRj09Im9wYWNpdHkiJiZMPT0iIil7TD0iMSJ9fWVsc2V7aWYoSS5jdXJyZW50U3R5 bGUpe3ZhciBKPUYucmVwbGFjZSgvXC0oXHcpL2csZnVuY3Rpb24oTixPKXtyZXR1cm4gTy50b1VwcGVy Q2FzZSgpfSk7TD1JLmN1cnJlbnRTdHlsZVtGXXx8SS5jdXJyZW50U3R5bGVbSl07aWYoIS9eXGQrKHB4 KT8kL2kudGVzdChMKSYmL15cZC8udGVzdChMKSl7dmFyIEg9RS5sZWZ0LEs9SS5ydW50aW1lU3R5bGUu bGVmdDtJLnJ1bnRpbWVTdHlsZS5sZWZ0PUkuY3VycmVudFN0eWxlLmxlZnQ7RS5sZWZ0PUx8fDA7TD1F LnBpeGVsTGVmdCsicHgiO0UubGVmdD1IO0kucnVudGltZVN0eWxlLmxlZnQ9S319fX1yZXR1cm4gTH0s Y2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9S3x8ZG9jdW1lbnQ7aWYodHlwZW9mIEsuY3JlYXRlRWxlbWVu dD09PSJ1bmRlZmluZWQiKXtLPUsub3duZXJEb2N1bWVudHx8S1swXSYmS1swXS5vd25lckRvY3VtZW50 fHxkb2N1bWVudH1pZighSSYmRi5sZW5ndGg9PT0xJiZ0eXBlb2YgRlswXT09PSJzdHJpbmciKXt2YXIg SD0vXjwoXHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgpe3JldHVybltLLmNyZWF0ZUVsZW1lbnQo SFsxXSldfX12YXIgRz1bXSxFPVtdLEw9Sy5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5j dGlvbihQLFMpe2lmKHR5cGVvZiBTPT09Im51bWJlciIpe1MrPSIifWlmKCFTKXtyZXR1cm59aWYodHlw ZW9mIFM9PT0ic3RyaW5nIil7Uz1TLnJlcGxhY2UoLyg8KFx3KylbXj5dKj8pXC8+L2csZnVuY3Rpb24o VSxWLFQpe3JldHVybiBULm1hdGNoKC9eKGFiYnJ8YnJ8Y29sfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFy YW18aHJ8YXJlYXxlbWJlZCkkL2kpP1U6VisiPjwvIitUKyI+In0pO3ZhciBPPVMucmVwbGFjZSgvXlxz Ky8sIiIpLnN1YnN0cmluZygwLDEwKS50b0xvd2VyQ2FzZSgpO3ZhciBRPSFPLmluZGV4T2YoIjxvcHQi KSYmWzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXXx8IU8uaW5kZXhP ZigiPGxlZyIpJiZbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il18fE8ubWF0Y2goL148KHRoZWFk fHRib2R5fHRmb290fGNvbGd8Y2FwKS8pJiZbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il18fCFPLmluZGV4 T2YoIjx0ciIpJiZbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il18fCghTy5pbmRl eE9mKCI8dGQiKXx8IU8uaW5kZXhPZigiPHRoIikpJiZbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90 cj48L3Rib2R5PjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjxjb2wiKSYmWzIsIjx0YWJsZT48dGJvZHk+ PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdfHwhby5zdXBwb3J0Lmh0bWxT ZXJpYWxpemUmJlsxLCJkaXY8ZGl2PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07TC5pbm5lckhUTUw9UVsx XStTK1FbMl07d2hpbGUoUVswXS0tKXtMPUwubGFzdENoaWxkfWlmKCFvLnN1cHBvcnQudGJvZHkpe3Zh ciBSPS88dGJvZHkvaS50ZXN0KFMpLE49IU8uaW5kZXhPZigiPHRhYmxlIikmJiFSP0wuZmlyc3RDaGls ZCYmTC5maXJzdENoaWxkLmNoaWxkTm9kZXM6UVsxXT09Ijx0YWJsZT4iJiYhUj9MLmNoaWxkTm9kZXM6 W107Zm9yKHZhciBNPU4ubGVuZ3RoLTE7TT49MDstLU0pe2lmKG8ubm9kZU5hbWUoTltNXSwidGJvZHki KSYmIU5bTV0uY2hpbGROb2Rlcy5sZW5ndGgpe05bTV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChOW01d KX19fWlmKCFvLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJi9eXHMvLnRlc3QoUykpe0wuaW5zZXJ0 QmVmb3JlKEsuY3JlYXRlVGV4dE5vZGUoUy5tYXRjaCgvXlxzKi8pWzBdKSxMLmZpcnN0Q2hpbGQpfVM9 by5tYWtlQXJyYXkoTC5jaGlsZE5vZGVzKX1pZihTLm5vZGVUeXBlKXtHLnB1c2goUyl9ZWxzZXtHPW8u bWVyZ2UoRyxTKX19KTtpZihJKXtmb3IodmFyIEo9MDtHW0pdO0orKyl7aWYoby5ub2RlTmFtZShHW0pd LCJzY3JpcHQiKSYmKCFHW0pdLnR5cGV8fEdbSl0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2 YXNjcmlwdCIpKXtFLnB1c2goR1tKXS5wYXJlbnROb2RlP0dbSl0ucGFyZW50Tm9kZS5yZW1vdmVDaGls ZChHW0pdKTpHW0pdKX1lbHNle2lmKEdbSl0ubm9kZVR5cGU9PT0xKXtHLnNwbGljZS5hcHBseShHLFtK KzEsMF0uY29uY2F0KG8ubWFrZUFycmF5KEdbSl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIp KSkpfUkuYXBwZW5kQ2hpbGQoR1tKXSl9fXJldHVybiBFfXJldHVybiBHfSxhdHRyOmZ1bmN0aW9uKEos RyxLKXtpZighSnx8Si5ub2RlVHlwZT09M3x8Si5ub2RlVHlwZT09OCl7cmV0dXJuIGd9dmFyIEg9IW8u aXNYTUxEb2MoSiksTD1LIT09ZztHPUgmJm8ucHJvcHNbR118fEc7aWYoSi50YWdOYW1lKXt2YXIgRj0v aHJlZnxzcmN8c3R5bGUvLnRlc3QoRyk7aWYoRz09InNlbGVjdGVkIiYmSi5wYXJlbnROb2RlKXtKLnBh cmVudE5vZGUuc2VsZWN0ZWRJbmRleH1pZihHIGluIEomJkgmJiFGKXtpZihMKXtpZihHPT0idHlwZSIm Jm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYmSi5wYXJlbnROb2RlKXt0aHJvdyJ0eXBlIHByb3BlcnR5IGNh bid0IGJlIGNoYW5nZWQifUpbR109S31pZihvLm5vZGVOYW1lKEosImZvcm0iKSYmSi5nZXRBdHRyaWJ1 dGVOb2RlKEcpKXtyZXR1cm4gSi5nZXRBdHRyaWJ1dGVOb2RlKEcpLm5vZGVWYWx1ZX1pZihHPT0idGFi SW5kZXgiKXt2YXIgST1KLmdldEF0dHJpYnV0ZU5vZGUoInRhYkluZGV4Iik7cmV0dXJuIEkmJkkuc3Bl Y2lmaWVkP0kudmFsdWU6Si5ub2RlTmFtZS5tYXRjaCgvKGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0 fHRleHRhcmVhKS9pKT8wOkoubm9kZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkmJkouaHJlZj8wOmd9 cmV0dXJuIEpbR119aWYoIW8uc3VwcG9ydC5zdHlsZSYmSCYmRz09InN0eWxlIil7cmV0dXJuIG8uYXR0 cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtKLnNldEF0dHJpYnV0ZShHLCIiK0spfXZhciBFPSFv LnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJkgmJkY/Si5nZXRBdHRyaWJ1dGUoRywyKTpKLmdldEF0dHJp YnV0ZShHKTtyZXR1cm4gRT09PW51bGw/ZzpFfWlmKCFvLnN1cHBvcnQub3BhY2l0eSYmRz09Im9wYWNp dHkiKXtpZihMKXtKLnpvb209MTtKLmZpbHRlcj0oSi5maWx0ZXJ8fCIiKS5yZXBsYWNlKC9hbHBoYVwo W14pXSpcKS8sIiIpKyhwYXJzZUludChLKSsiIj09Ik5hTiI/IiI6ImFscGhhKG9wYWNpdHk9IitLKjEw MCsiKSIpfXJldHVybiBKLmZpbHRlciYmSi5maWx0ZXIuaW5kZXhPZigib3BhY2l0eT0iKT49MD8ocGFy c2VGbG9hdChKLmZpbHRlci5tYXRjaCgvb3BhY2l0eT0oW14pXSopLylbMV0pLzEwMCkrIiI6IiJ9Rz1H LnJlcGxhY2UoLy0oW2Etel0pL2lnLGZ1bmN0aW9uKE0sTil7cmV0dXJuIE4udG9VcHBlckNhc2UoKX0p O2lmKEwpe0pbR109S31yZXR1cm4gSltHXX0sdHJpbTpmdW5jdGlvbihFKXtyZXR1cm4oRXx8IiIpLnJl cGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKEcpe3ZhciBFPVtdO2lmKEch PW51bGwpe3ZhciBGPUcubGVuZ3RoO2lmKEY9PW51bGx8fHR5cGVvZiBHPT09InN0cmluZyJ8fG8uaXNG dW5jdGlvbihHKXx8Ry5zZXRJbnRlcnZhbCl7RVswXT1HfWVsc2V7d2hpbGUoRil7RVstLUZdPUdbRl19 fX1yZXR1cm4gRX0saW5BcnJheTpmdW5jdGlvbihHLEgpe2Zvcih2YXIgRT0wLEY9SC5sZW5ndGg7RTxG O0UrKyl7aWYoSFtFXT09PUcpe3JldHVybiBFfX1yZXR1cm4gLTF9LG1lcmdlOmZ1bmN0aW9uKEgsRSl7 dmFyIEY9MCxHLEk9SC5sZW5ndGg7aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPUVbRisrXSkh PW51bGwpe2lmKEcubm9kZVR5cGUhPTgpe0hbSSsrXT1HfX19ZWxzZXt3aGlsZSgoRz1FW0YrK10pIT1u dWxsKXtIW0krK109R319cmV0dXJuIEh9LHVuaXF1ZTpmdW5jdGlvbihLKXt2YXIgRj1bXSxFPXt9O3Ry eXtmb3IodmFyIEc9MCxIPUsubGVuZ3RoO0c8SDtHKyspe3ZhciBKPW8uZGF0YShLW0ddKTtpZighRVtK XSl7RVtKXT10cnVlO0YucHVzaChLW0ddKX19fWNhdGNoKEkpe0Y9S31yZXR1cm4gRn0sZ3JlcDpmdW5j dGlvbihGLEosRSl7dmFyIEc9W107Zm9yKHZhciBIPTAsST1GLmxlbmd0aDtIPEk7SCsrKXtpZighRSE9 IUooRltIXSxIKSl7Ry5wdXNoKEZbSF0pfX1yZXR1cm4gR30sbWFwOmZ1bmN0aW9uKEUsSil7dmFyIEY9 W107Zm9yKHZhciBHPTAsSD1FLmxlbmd0aDtHPEg7RysrKXt2YXIgST1KKEVbR10sRyk7aWYoSSE9bnVs bCl7RltGLmxlbmd0aF09SX19cmV0dXJuIEYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3ZhciBDPW5hdmln YXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtvLmJyb3dzZXI9e3ZlcnNpb246KEMubWF0Y2goLy4r KD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAsIjAiXSlbMV0sc2FmYXJpOi93ZWJraXQv LnRlc3QoQyksb3BlcmE6L29wZXJhLy50ZXN0KEMpLG1zaWU6L21zaWUvLnRlc3QoQykmJiEvb3BlcmEv LnRlc3QoQyksbW96aWxsYTovbW96aWxsYS8udGVzdChDKSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50 ZXN0KEMpfTtvLmVhY2goe3BhcmVudDpmdW5jdGlvbihFKXtyZXR1cm4gRS5wYXJlbnROb2RlfSxwYXJl bnRzOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwYXJlbnROb2RlIil9LG5leHQ6ZnVuY3Rpb24o RSl7cmV0dXJuIG8ubnRoKEUsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihFKXtyZXR1cm4g by5udGgoRSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5k aXIoRSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwicHJl dmlvdXNTaWJsaW5nIil9LHNpYmxpbmdzOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5wYXJl bnROb2RlLmZpcnN0Q2hpbGQsRSl9LGNoaWxkcmVuOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmco RS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubm9kZU5hbWUoRSwiaWZy YW1lIik/RS5jb250ZW50RG9jdW1lbnR8fEUuY29udGVudFdpbmRvdy5kb2N1bWVudDpvLm1ha2VBcnJh eShFLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oRSxGKXtvLmZuW0VdPWZ1bmN0aW9uKEcpe3ZhciBIPW8u bWFwKHRoaXMsRik7aWYoRyYmdHlwZW9mIEc9PSJzdHJpbmciKXtIPW8ubXVsdGlGaWx0ZXIoRyxIKX1y ZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoSCksRSxHKX19KTtvLmVhY2goe2FwcGVuZFRvOiJh cHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVy OiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVu Y3Rpb24oRyl7dmFyIEo9W10sTD1vKEcpO2Zvcih2YXIgSz0wLEg9TC5sZW5ndGg7SzxIO0srKyl7dmFy IEk9KEs+MD90aGlzLmNsb25lKHRydWUpOnRoaXMpLmdldCgpO28uZm5bRl0uYXBwbHkobyhMW0tdKSxJ KTtKPUouY29uY2F0KEkpfXJldHVybiB0aGlzLnB1c2hTdGFjayhKLEUsRyl9fSk7by5lYWNoKHtyZW1v dmVBdHRyOmZ1bmN0aW9uKEUpe28uYXR0cih0aGlzLEUsIiIpO2lmKHRoaXMubm9kZVR5cGU9PTEpe3Ro aXMucmVtb3ZlQXR0cmlidXRlKEUpfX0sYWRkQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUuYWRk KHRoaXMsRSl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKEUpe28uY2xhc3NOYW1lLnJlbW92ZSh0aGlzLEUp fSx0b2dnbGVDbGFzczpmdW5jdGlvbihGLEUpe2lmKHR5cGVvZiBFIT09ImJvb2xlYW4iKXtFPSFvLmNs YXNzTmFtZS5oYXModGhpcyxGKX1vLmNsYXNzTmFtZVtFPyJhZGQiOiJyZW1vdmUiXSh0aGlzLEYpfSxy ZW1vdmU6ZnVuY3Rpb24oRSl7aWYoIUV8fG8uZmlsdGVyKEUsW3RoaXNdKS5sZW5ndGgpe28oIioiLHRo aXMpLmFkZChbdGhpc10pLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzKTtvLnJlbW92 ZURhdGEodGhpcyl9KTtpZih0aGlzLnBhcmVudE5vZGUpe3RoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGls ZCh0aGlzKX19fSxlbXB0eTpmdW5jdGlvbigpe28odGhpcykuY2hpbGRyZW4oKS5yZW1vdmUoKTt3aGls ZSh0aGlzLmZpcnN0Q2hpbGQpe3RoaXMucmVtb3ZlQ2hpbGQodGhpcy5maXJzdENoaWxkKX19fSxmdW5j dGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEYsYXJndW1lbnRzKX19 KTtmdW5jdGlvbiBqKEUsRil7cmV0dXJuIEVbMF0mJnBhcnNlSW50KG8uY3VyQ1NTKEVbMF0sRix0cnVl KSwxMCl8fDB9dmFyIGg9ImpRdWVyeSIrZSgpLHY9MCxBPXt9O28uZXh0ZW5kKHtjYWNoZTp7fSxkYXRh OmZ1bmN0aW9uKEYsRSxHKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoIUgpe0g9RltoXT0rK3Z9aWYo RSYmIW8uY2FjaGVbSF0pe28uY2FjaGVbSF09e319aWYoRyE9PWcpe28uY2FjaGVbSF1bRV09R31yZXR1 cm4gRT9vLmNhY2hlW0hdW0VdOkh9LHJlbW92ZURhdGE6ZnVuY3Rpb24oRixFKXtGPUY9PWw/QTpGO3Zh ciBIPUZbaF07aWYoRSl7aWYoby5jYWNoZVtIXSl7ZGVsZXRlIG8uY2FjaGVbSF1bRV07RT0iIjtmb3Io RSBpbiBvLmNhY2hlW0hdKXticmVha31pZighRSl7by5yZW1vdmVEYXRhKEYpfX19ZWxzZXt0cnl7ZGVs ZXRlIEZbaF19Y2F0Y2goRyl7aWYoRi5yZW1vdmVBdHRyaWJ1dGUpe0YucmVtb3ZlQXR0cmlidXRlKGgp fX1kZWxldGUgby5jYWNoZVtIXX19LHF1ZXVlOmZ1bmN0aW9uKEYsRSxIKXtpZihGKXtFPShFfHwiZngi KSsicXVldWUiO3ZhciBHPW8uZGF0YShGLEUpO2lmKCFHfHxvLmlzQXJyYXkoSCkpe0c9by5kYXRhKEYs RSxvLm1ha2VBcnJheShIKSl9ZWxzZXtpZihIKXtHLnB1c2goSCl9fX1yZXR1cm4gR30sZGVxdWV1ZTpm dW5jdGlvbihILEcpe3ZhciBFPW8ucXVldWUoSCxHKSxGPUUuc2hpZnQoKTtpZighR3x8Rz09PSJmeCIp e0Y9RVswXX1pZihGIT09Zyl7Ri5jYWxsKEgpfX19KTtvLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihF LEcpe3ZhciBIPUUuc3BsaXQoIi4iKTtIWzFdPUhbMV0/Ii4iK0hbMV06IiI7aWYoRz09PWcpe3ZhciBG PXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK0hbMV0rIiEiLFtIWzBdXSk7aWYoRj09PWcmJnRo aXMubGVuZ3RoKXtGPW8uZGF0YSh0aGlzWzBdLEUpfXJldHVybiBGPT09ZyYmSFsxXT90aGlzLmRhdGEo SFswXSk6Rn1lbHNle3JldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK0hbMV0rIiEiLFtIWzBdLEdd KS5lYWNoKGZ1bmN0aW9uKCl7by5kYXRhKHRoaXMsRSxHKX0pfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihF KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5yZW1vdmVEYXRhKHRoaXMsRSl9KX0scXVldWU6 ZnVuY3Rpb24oRSxGKXtpZih0eXBlb2YgRSE9PSJzdHJpbmciKXtGPUU7RT0iZngifWlmKEY9PT1nKXty ZXR1cm4gby5xdWV1ZSh0aGlzWzBdLEUpfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgRz1v LnF1ZXVlKHRoaXMsRSxGKTtpZihFPT0iZngiJiZHLmxlbmd0aD09MSl7R1swXS5jYWxsKHRoaXMpfX0p fSxkZXF1ZXVlOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmRlcXVldWUo dGhpcyxFKX0pfX0pOwovKgogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSAtIHYwLjkuMwogKiAg Q29weXJpZ2h0IDIwMDksIFRoZSBEb2pvIEZvdW5kYXRpb24KICogIFJlbGVhc2VkIHVuZGVyIHRoZSBN SVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4KICogIE1vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6 bGVqcy5jb20vCiAqLwooZnVuY3Rpb24oKXt2YXIgUj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSsp K1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+ LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/L2csTD0wLEg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmlu Zzt2YXIgRj1mdW5jdGlvbihZLFUsYWIsYWMpe2FiPWFifHxbXTtVPVV8fGRvY3VtZW50O2lmKFUubm9k ZVR5cGUhPT0xJiZVLm5vZGVUeXBlIT09OSl7cmV0dXJuW119aWYoIVl8fHR5cGVvZiBZIT09InN0cmlu ZyIpe3JldHVybiBhYn12YXIgWj1bXSxXLGFmLGFpLFQsYWQsVixYPXRydWU7Ui5sYXN0SW5kZXg9MDt3 aGlsZSgoVz1SLmV4ZWMoWSkpIT09bnVsbCl7Wi5wdXNoKFdbMV0pO2lmKFdbMl0pe1Y9UmVnRXhwLnJp Z2h0Q29udGV4dDticmVha319aWYoWi5sZW5ndGg+MSYmTS5leGVjKFkpKXtpZihaLmxlbmd0aD09PTIm JkkucmVsYXRpdmVbWlswXV0pe2FmPUooWlswXStaWzFdLFUpfWVsc2V7YWY9SS5yZWxhdGl2ZVtaWzBd XT9bVV06RihaLnNoaWZ0KCksVSk7d2hpbGUoWi5sZW5ndGgpe1k9Wi5zaGlmdCgpO2lmKEkucmVsYXRp dmVbWV0pe1krPVouc2hpZnQoKX1hZj1KKFksYWYpfX19ZWxzZXt2YXIgYWU9YWM/e2V4cHI6Wi5wb3Ao KSxzZXQ6RShhYyl9OkYuZmluZChaLnBvcCgpLFoubGVuZ3RoPT09MSYmVS5wYXJlbnROb2RlP1UucGFy ZW50Tm9kZTpVLFEoVSkpO2FmPUYuZmlsdGVyKGFlLmV4cHIsYWUuc2V0KTtpZihaLmxlbmd0aD4wKXth aT1FKGFmKX1lbHNle1g9ZmFsc2V9d2hpbGUoWi5sZW5ndGgpe3ZhciBhaD1aLnBvcCgpLGFnPWFoO2lm KCFJLnJlbGF0aXZlW2FoXSl7YWg9IiJ9ZWxzZXthZz1aLnBvcCgpfWlmKGFnPT1udWxsKXthZz1VfUku cmVsYXRpdmVbYWhdKGFpLGFnLFEoVSkpfX1pZighYWkpe2FpPWFmfWlmKCFhaSl7dGhyb3ciU3ludGF4 IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIisoYWh8fFkpfWlmKEguY2FsbChhaSk9PT0i W29iamVjdCBBcnJheV0iKXtpZighWCl7YWIucHVzaC5hcHBseShhYixhaSl9ZWxzZXtpZihVLm5vZGVU eXBlPT09MSl7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJihhaVthYV09 PT10cnVlfHxhaVthYV0ubm9kZVR5cGU9PT0xJiZLKFUsYWlbYWFdKSkpe2FiLnB1c2goYWZbYWFdKX19 fWVsc2V7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJmFpW2FhXS5ub2Rl VHlwZT09PTEpe2FiLnB1c2goYWZbYWFdKX19fX19ZWxzZXtFKGFpLGFiKX1pZihWKXtGKFYsVSxhYixh Yyk7aWYoRyl7aGFzRHVwbGljYXRlPWZhbHNlO2FiLnNvcnQoRyk7aWYoaGFzRHVwbGljYXRlKXtmb3Io dmFyIGFhPTE7YWE8YWIubGVuZ3RoO2FhKyspe2lmKGFiW2FhXT09PWFiW2FhLTFdKXthYi5zcGxpY2Uo YWEtLSwxKX19fX19cmV0dXJuIGFifTtGLm1hdGNoZXM9ZnVuY3Rpb24oVCxVKXtyZXR1cm4gRihULG51 bGwsbnVsbCxVKX07Ri5maW5kPWZ1bmN0aW9uKGFhLFQsYWIpe3ZhciBaLFg7aWYoIWFhKXtyZXR1cm5b XX1mb3IodmFyIFc9MCxWPUkub3JkZXIubGVuZ3RoO1c8VjtXKyspe3ZhciBZPUkub3JkZXJbV10sWDtp ZigoWD1JLm1hdGNoW1ldLmV4ZWMoYWEpKSl7dmFyIFU9UmVnRXhwLmxlZnRDb250ZXh0O2lmKFUuc3Vi c3RyKFUubGVuZ3RoLTEpIT09IlxcIil7WFsxXT0oWFsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO1o9 SS5maW5kW1ldKFgsVCxhYik7aWYoWiE9bnVsbCl7YWE9YWEucmVwbGFjZShJLm1hdGNoW1ldLCIiKTti cmVha319fX1pZighWil7Wj1ULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9cmV0dXJue3NldDpaLGV4 cHI6YWF9fTtGLmZpbHRlcj1mdW5jdGlvbihhZCxhYyxhZyxXKXt2YXIgVj1hZCxhaT1bXSxhYT1hYyxZ LFQsWj1hYyYmYWNbMF0mJlEoYWNbMF0pO3doaWxlKGFkJiZhYy5sZW5ndGgpe2Zvcih2YXIgYWIgaW4g SS5maWx0ZXIpe2lmKChZPUkubWF0Y2hbYWJdLmV4ZWMoYWQpKSE9bnVsbCl7dmFyIFU9SS5maWx0ZXJb YWJdLGFoLGFmO1Q9ZmFsc2U7aWYoYWE9PWFpKXthaT1bXX1pZihJLnByZUZpbHRlclthYl0pe1k9SS5w cmVGaWx0ZXJbYWJdKFksYWEsYWcsYWksVyxaKTtpZighWSl7VD1haD10cnVlfWVsc2V7aWYoWT09PXRy dWUpe2NvbnRpbnVlfX19aWYoWSl7Zm9yKHZhciBYPTA7KGFmPWFhW1hdKSE9bnVsbDtYKyspe2lmKGFm KXthaD1VKGFmLFksWCxhYSk7dmFyIGFlPVdeISFhaDtpZihhZyYmYWghPW51bGwpe2lmKGFlKXtUPXRy dWV9ZWxzZXthYVtYXT1mYWxzZX19ZWxzZXtpZihhZSl7YWkucHVzaChhZik7VD10cnVlfX19fX1pZihh aCE9PWcpe2lmKCFhZyl7YWE9YWl9YWQ9YWQucmVwbGFjZShJLm1hdGNoW2FiXSwiIik7aWYoIVQpe3Jl dHVybltdfWJyZWFrfX19aWYoYWQ9PVYpe2lmKFQ9PW51bGwpe3Rocm93IlN5bnRheCBlcnJvciwgdW5y ZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYWR9ZWxzZXticmVha319Vj1hZH1yZXR1cm4gYWF9O3ZhciBJ PUYuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdc dTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwu KSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylbJyJdKlxd LyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVxzKig/OihcUz89KVxzKihb JyJdKikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKl8tXXxcXC4pKykv LENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSop XCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/ KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspKD86XCgoWyci XSopKCg/OlwoW15cKV0rXCl8W15cMlwoXCldKikrKVwyXCkpPy99LGF0dHJNYXA6eyJjbGFzcyI6ImNs YXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0aW9uKFQpe3JldHVy biBULmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0scmVsYXRpdmU6eyIrIjpmdW5jdGlvbihhYSxULFope3Zh ciBYPXR5cGVvZiBUPT09InN0cmluZyIsYWI9WCYmIS9cVy8udGVzdChUKSxZPVgmJiFhYjtpZihhYiYm IVope1Q9VC50b1VwcGVyQ2FzZSgpfWZvcih2YXIgVz0wLFY9YWEubGVuZ3RoLFU7VzxWO1crKyl7aWYo KFU9YWFbV10pKXt3aGlsZSgoVT1VLnByZXZpb3VzU2libGluZykmJlUubm9kZVR5cGUhPT0xKXt9YWFb V109WXx8VSYmVS5ub2RlTmFtZT09PVQ/VXx8ZmFsc2U6VT09PVR9fWlmKFkpe0YuZmlsdGVyKFQsYWEs dHJ1ZSl9fSwiPiI6ZnVuY3Rpb24oWixVLGFhKXt2YXIgWD10eXBlb2YgVT09PSJzdHJpbmciO2lmKFgm JiEvXFcvLnRlc3QoVSkpe1U9YWE/VTpVLnRvVXBwZXJDYXNlKCk7Zm9yKHZhciBWPTAsVD1aLmxlbmd0 aDtWPFQ7VisrKXt2YXIgWT1aW1ZdO2lmKFkpe3ZhciBXPVkucGFyZW50Tm9kZTtaW1ZdPVcubm9kZU5h bWU9PT1VP1c6ZmFsc2V9fX1lbHNle2Zvcih2YXIgVj0wLFQ9Wi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9 WltWXTtpZihZKXtaW1ZdPVg/WS5wYXJlbnROb2RlOlkucGFyZW50Tm9kZT09PVV9fWlmKFgpe0YuZmls dGVyKFUsWix0cnVlKX19fSwiIjpmdW5jdGlvbihXLFUsWSl7dmFyIFY9TCsrLFQ9UztpZighVS5tYXRj aCgvXFcvKSl7dmFyIFg9VT1ZP1U6VS50b1VwcGVyQ2FzZSgpO1Q9UH1UKCJwYXJlbnROb2RlIixVLFYs VyxYLFkpfSwifiI6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPUwrKyxUPVM7aWYodHlwZW9mIFU9PT0ic3Ry aW5nIiYmIVUubWF0Y2goL1xXLykpe3ZhciBYPVU9WT9VOlUudG9VcHBlckNhc2UoKTtUPVB9VCgicHJl dmlvdXNTaWJsaW5nIixVLFYsVyxYLFkpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oVSxWLFcpe2lmKHR5cGVv ZiBWLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFXKXt2YXIgVD1WLmdldEVsZW1lbnRCeUlk KFVbMV0pO3JldHVybiBUP1tUXTpbXX19LE5BTUU6ZnVuY3Rpb24oVixZLFope2lmKHR5cGVvZiBZLmdl dEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe3ZhciBVPVtdLFg9WS5nZXRFbGVtZW50c0J5TmFt ZShWWzFdKTtmb3IodmFyIFc9MCxUPVgubGVuZ3RoO1c8VDtXKyspe2lmKFhbV10uZ2V0QXR0cmlidXRl KCJuYW1lIik9PT1WWzFdKXtVLnB1c2goWFtXXSl9fXJldHVybiBVLmxlbmd0aD09PTA/bnVsbDpVfX0s VEFHOmZ1bmN0aW9uKFQsVSl7cmV0dXJuIFUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVFsxXSl9fSxwcmVG aWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKFcsVSxWLFQsWixhYSl7Vz0iICIrV1sxXS5yZXBsYWNlKC9cXC9n LCIiKSsiICI7aWYoYWEpe3JldHVybiBXfWZvcih2YXIgWD0wLFk7KFk9VVtYXSkhPW51bGw7WCsrKXtp ZihZKXtpZihaXihZLmNsYXNzTmFtZSYmKCIgIitZLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoVyk+PTAp KXtpZighVil7VC5wdXNoKFkpfX1lbHNle2lmKFYpe1VbWF09ZmFsc2V9fX19cmV0dXJuIGZhbHNlfSxJ RDpmdW5jdGlvbihUKXtyZXR1cm4gVFsxXS5yZXBsYWNlKC9cXC9nLCIiKX0sVEFHOmZ1bmN0aW9uKFUs VCl7Zm9yKHZhciBWPTA7VFtWXT09PWZhbHNlO1YrKyl7fXJldHVybiBUW1ZdJiZRKFRbVl0pP1VbMV06 VVsxXS50b1VwcGVyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihUKXtpZihUWzFdPT0ibnRoIil7dmFyIFU9 LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhUWzJdPT0iZXZlbiImJiIybiJ8fFRbMl09PSJv ZGQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoVFsyXSkmJiIwbisiK1RbMl18fFRbMl0pO1RbMl09KFVbMV0r KFVbMl18fDEpKS0wO1RbM109VVszXS0wfVRbMF09TCsrO3JldHVybiBUfSxBVFRSOmZ1bmN0aW9uKFgs VSxWLFQsWSxaKXt2YXIgVz1YWzFdLnJlcGxhY2UoL1xcL2csIiIpO2lmKCFaJiZJLmF0dHJNYXBbV10p e1hbMV09SS5hdHRyTWFwW1ddfWlmKFhbMl09PT0ifj0iKXtYWzRdPSIgIitYWzRdKyIgIn1yZXR1cm4g WH0sUFNFVURPOmZ1bmN0aW9uKFgsVSxWLFQsWSl7aWYoWFsxXT09PSJub3QiKXtpZihYWzNdLm1hdGNo KFIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KFhbM10pKXtYWzNdPUYoWFszXSxudWxsLG51bGwsVSl9ZWxz ZXt2YXIgVz1GLmZpbHRlcihYWzNdLFUsVix0cnVlXlkpO2lmKCFWKXtULnB1c2guYXBwbHkoVCxXKX1y ZXR1cm4gZmFsc2V9fWVsc2V7aWYoSS5tYXRjaC5QT1MudGVzdChYWzBdKXx8SS5tYXRjaC5DSElMRC50 ZXN0KFhbMF0pKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIFh9LFBPUzpmdW5jdGlvbihUKXtULnVuc2hpZnQo dHJ1ZSk7cmV0dXJuIFR9fSxmaWx0ZXJzOntlbmFibGVkOmZ1bmN0aW9uKFQpe3JldHVybiBULmRpc2Fi bGVkPT09ZmFsc2UmJlQudHlwZSE9PSJoaWRkZW4ifSxkaXNhYmxlZDpmdW5jdGlvbihUKXtyZXR1cm4g VC5kaXNhYmxlZD09PXRydWV9LGNoZWNrZWQ6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuY2hlY2tlZD09PXRy dWV9LHNlbGVjdGVkOmZ1bmN0aW9uKFQpe1QucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBU LnNlbGVjdGVkPT09dHJ1ZX0scGFyZW50OmZ1bmN0aW9uKFQpe3JldHVybiAhIVQuZmlyc3RDaGlsZH0s ZW1wdHk6ZnVuY3Rpb24oVCl7cmV0dXJuICFULmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihWLFUsVCl7 cmV0dXJuICEhRihUWzNdLFYpLmxlbmd0aH0saGVhZGVyOmZ1bmN0aW9uKFQpe3JldHVybi9oXGQvaS50 ZXN0KFQubm9kZU5hbWUpfSx0ZXh0OmZ1bmN0aW9uKFQpe3JldHVybiJ0ZXh0Ij09PVQudHlwZX0scmFk aW86ZnVuY3Rpb24oVCl7cmV0dXJuInJhZGlvIj09PVQudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oVCl7 cmV0dXJuImNoZWNrYm94Ij09PVQudHlwZX0sZmlsZTpmdW5jdGlvbihUKXtyZXR1cm4iZmlsZSI9PT1U LnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKFQpe3JldHVybiJwYXNzd29yZCI9PT1ULnR5cGV9LHN1Ym1p dDpmdW5jdGlvbihUKXtyZXR1cm4ic3VibWl0Ij09PVQudHlwZX0saW1hZ2U6ZnVuY3Rpb24oVCl7cmV0 dXJuImltYWdlIj09PVQudHlwZX0scmVzZXQ6ZnVuY3Rpb24oVCl7cmV0dXJuInJlc2V0Ij09PVQudHlw ZX0sYnV0dG9uOmZ1bmN0aW9uKFQpe3JldHVybiJidXR0b24iPT09VC50eXBlfHxULm5vZGVOYW1lLnRv VXBwZXJDYXNlKCk9PT0iQlVUVE9OIn0saW5wdXQ6ZnVuY3Rpb24oVCl7cmV0dXJuL2lucHV0fHNlbGVj dHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KFQubm9kZU5hbWUpfX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVu Y3Rpb24oVSxUKXtyZXR1cm4gVD09PTB9LGxhc3Q6ZnVuY3Rpb24oVixVLFQsVyl7cmV0dXJuIFU9PT1X Lmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFQlMj09PTB9LG9kZDpmdW5jdGlvbihV LFQpe3JldHVybiBUJTI9PT0xfSxsdDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU8VFszXS0wfSxndDpm dW5jdGlvbihWLFUsVCl7cmV0dXJuIFU+VFszXS0wfSxudGg6ZnVuY3Rpb24oVixVLFQpe3JldHVybiBU WzNdLTA9PVV9LGVxOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gVFszXS0wPT1VfX0sZmlsdGVyOntQU0VV RE86ZnVuY3Rpb24oWixWLFcsYWEpe3ZhciBVPVZbMV0sWD1JLmZpbHRlcnNbVV07aWYoWCl7cmV0dXJu IFgoWixXLFYsYWEpfWVsc2V7aWYoVT09PSJjb250YWlucyIpe3JldHVybihaLnRleHRDb250ZW50fHxa LmlubmVyVGV4dHx8IiIpLmluZGV4T2YoVlszXSk+PTB9ZWxzZXtpZihVPT09Im5vdCIpe3ZhciBZPVZb M107Zm9yKHZhciBXPTAsVD1ZLmxlbmd0aDtXPFQ7VysrKXtpZihZW1ddPT09Wil7cmV0dXJuIGZhbHNl fX1yZXR1cm4gdHJ1ZX19fX0sQ0hJTEQ6ZnVuY3Rpb24oVCxXKXt2YXIgWj1XWzFdLFU9VDtzd2l0Y2go Wil7Y2FzZSJvbmx5IjpjYXNlImZpcnN0Ijp3aGlsZShVPVUucHJldmlvdXNTaWJsaW5nKXtpZihVLm5v ZGVUeXBlPT09MSl7cmV0dXJuIGZhbHNlfX1pZihaPT0iZmlyc3QiKXtyZXR1cm4gdHJ1ZX1VPVQ7Y2Fz ZSJsYXN0Ijp3aGlsZShVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtyZXR1cm4gZmFs c2V9fXJldHVybiB0cnVlO2Nhc2UibnRoIjp2YXIgVj1XWzJdLGFjPVdbM107aWYoVj09MSYmYWM9PTAp e3JldHVybiB0cnVlfXZhciBZPVdbMF0sYWI9VC5wYXJlbnROb2RlO2lmKGFiJiYoYWIuc2l6Y2FjaGUh PT1ZfHwhVC5ub2RlSW5kZXgpKXt2YXIgWD0wO2ZvcihVPWFiLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNp Ymxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtVLm5vZGVJbmRleD0rK1h9fWFiLnNpemNhY2hlPVl9dmFy IGFhPVQubm9kZUluZGV4LWFjO2lmKFY9PTApe3JldHVybiBhYT09MH1lbHNle3JldHVybihhYSVWPT0w JiZhYS9WPj0wKX19fSxJRDpmdW5jdGlvbihVLFQpe3JldHVybiBVLm5vZGVUeXBlPT09MSYmVS5nZXRB dHRyaWJ1dGUoImlkIik9PT1UfSxUQUc6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oVD09PSIqIiYmVS5ub2Rl VHlwZT09PTEpfHxVLm5vZGVOYW1lPT09VH0sQ0xBU1M6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oIiAiKyhV LmNsYXNzTmFtZXx8VS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihUKT4tMX0sQVRU UjpmdW5jdGlvbihZLFcpe3ZhciBWPVdbMV0sVD1JLmF0dHJIYW5kbGVbVl0/SS5hdHRySGFuZGxlW1Zd KFkpOllbVl0hPW51bGw/WVtWXTpZLmdldEF0dHJpYnV0ZShWKSxaPVQrIiIsWD1XWzJdLFU9V1s0XTty ZXR1cm4gVD09bnVsbD9YPT09IiE9IjpYPT09Ij0iP1o9PT1VOlg9PT0iKj0iP1ouaW5kZXhPZihVKT49 MDpYPT09In49Ij8oIiAiK1orIiAiKS5pbmRleE9mKFUpPj0wOiFVP1omJlQhPT1mYWxzZTpYPT09IiE9 Ij9aIT1VOlg9PT0iXj0iP1ouaW5kZXhPZihVKT09PTA6WD09PSIkPSI/Wi5zdWJzdHIoWi5sZW5ndGgt VS5sZW5ndGgpPT09VTpYPT09Inw9Ij9aPT09VXx8Wi5zdWJzdHIoMCxVLmxlbmd0aCsxKT09PVUrIi0i OmZhbHNlfSxQT1M6ZnVuY3Rpb24oWCxVLFYsWSl7dmFyIFQ9VVsyXSxXPUkuc2V0RmlsdGVyc1tUXTtp ZihXKXtyZXR1cm4gVyhYLFYsVSxZKX19fX07dmFyIE09SS5tYXRjaC5QT1M7Zm9yKHZhciBPIGluIEku bWF0Y2gpe0kubWF0Y2hbT109UmVnRXhwKEkubWF0Y2hbT10uc291cmNlKy8oPyFbXlxbXSpcXSkoPyFb XlwoXSpcKSkvLnNvdXJjZSl9dmFyIEU9ZnVuY3Rpb24oVSxUKXtVPUFycmF5LnByb3RvdHlwZS5zbGlj ZS5jYWxsKFUpO2lmKFQpe1QucHVzaC5hcHBseShULFUpO3JldHVybiBUfXJldHVybiBVfTt0cnl7QXJy YXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMp fWNhdGNoKE4pe0U9ZnVuY3Rpb24oWCxXKXt2YXIgVT1XfHxbXTtpZihILmNhbGwoWCk9PT0iW29iamVj dCBBcnJheV0iKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShVLFgpfWVsc2V7aWYodHlwZW9mIFgu bGVuZ3RoPT09Im51bWJlciIpe2Zvcih2YXIgVj0wLFQ9WC5sZW5ndGg7VjxUO1YrKyl7VS5wdXNoKFhb Vl0pfX1lbHNle2Zvcih2YXIgVj0wO1hbVl07VisrKXtVLnB1c2goWFtWXSl9fX1yZXR1cm4gVX19dmFy IEc7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtHPWZ1 bmN0aW9uKFUsVCl7dmFyIFY9VS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihUKSY0Py0xOlU9PT1UPzA6 MTtpZihWPT09MCl7aGFzRHVwbGljYXRlPXRydWV9cmV0dXJuIFZ9fWVsc2V7aWYoInNvdXJjZUluZGV4 IiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe0c9ZnVuY3Rpb24oVSxUKXt2YXIgVj1VLnNvdXJj ZUluZGV4LVQuc291cmNlSW5kZXg7aWYoVj09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBWfX1l bHNle2lmKGRvY3VtZW50LmNyZWF0ZVJhbmdlKXtHPWZ1bmN0aW9uKFcsVSl7dmFyIFY9Vy5vd25lckRv Y3VtZW50LmNyZWF0ZVJhbmdlKCksVD1VLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtWLnNlbGVj dE5vZGUoVyk7Vi5jb2xsYXBzZSh0cnVlKTtULnNlbGVjdE5vZGUoVSk7VC5jb2xsYXBzZSh0cnVlKTt2 YXIgWD1WLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsVCk7aWYoWD09PTAp e2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBYfX19fShmdW5jdGlvbigpe3ZhciBVPWRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoImZvcm0iKSxWPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO1UuaW5uZXJI VE1MPSI8aW5wdXQgbmFtZT0nIitWKyInLz4iO3ZhciBUPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtU Lmluc2VydEJlZm9yZShVLFQuZmlyc3RDaGlsZCk7aWYoISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChW KSl7SS5maW5kLklEPWZ1bmN0aW9uKFgsWSxaKXtpZih0eXBlb2YgWS5nZXRFbGVtZW50QnlJZCE9PSJ1 bmRlZmluZWQiJiYhWil7dmFyIFc9WS5nZXRFbGVtZW50QnlJZChYWzFdKTtyZXR1cm4gVz9XLmlkPT09 WFsxXXx8dHlwZW9mIFcuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZXLmdldEF0dHJpYnV0 ZU5vZGUoImlkIikubm9kZVZhbHVlPT09WFsxXT9bV106ZzpbXX19O0kuZmlsdGVyLklEPWZ1bmN0aW9u KFksVyl7dmFyIFg9dHlwZW9mIFkuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZZLmdldEF0 dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIFkubm9kZVR5cGU9PT0xJiZYJiZYLm5vZGVWYWx1ZT09PVd9 fVQucmVtb3ZlQ2hpbGQoVSl9KSgpOyhmdW5jdGlvbigpe3ZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1l bnQoImRpdiIpO1QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikpO2lmKFQuZ2V0 RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCl7SS5maW5kLlRBRz1mdW5jdGlvbihVLFkpe3Zh ciBYPVkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVVsxXSk7aWYoVVsxXT09PSIqIil7dmFyIFc9W107Zm9y KHZhciBWPTA7WFtWXTtWKyspe2lmKFhbVl0ubm9kZVR5cGU9PT0xKXtXLnB1c2goWFtWXSl9fVg9V31y ZXR1cm4gWH19VC5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iO2lmKFQuZmlyc3RDaGlsZCYmdHlw ZW9mIFQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUhPT0idW5kZWZpbmVkIiYmVC5maXJzdENoaWxkLmdl dEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiKXtJLmF0dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihVKXtyZXR1 cm4gVS5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfX19KSgpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB bGwpeyhmdW5jdGlvbigpe3ZhciBUPUYsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtVLmlu bmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKFUucXVlcnlTZWxlY3RvckFsbCYmVS5xdWVy eVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApe3JldHVybn1GPWZ1bmN0aW9uKFksWCxWLFcp e1g9WHx8ZG9jdW1lbnQ7aWYoIVcmJlgubm9kZVR5cGU9PT05JiYhUShYKSl7dHJ5e3JldHVybiBFKFgu cXVlcnlTZWxlY3RvckFsbChZKSxWKX1jYXRjaChaKXt9fXJldHVybiBUKFksWCxWLFcpfTtGLmZpbmQ9 VC5maW5kO0YuZmlsdGVyPVQuZmlsdGVyO0Yuc2VsZWN0b3JzPVQuc2VsZWN0b3JzO0YubWF0Y2hlcz1U Lm1hdGNoZXN9KSgpfWlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmRvY3VtZW50LmRv Y3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXsoZnVuY3Rpb24oKXt2YXIgVD1kb2N1 bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48 L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgi ZSIpLmxlbmd0aD09PTApe3JldHVybn1ULmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKFQuZ2V0RWxl bWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTEpe3JldHVybn1JLm9yZGVyLnNwbGljZSgxLDAs IkNMQVNTIik7SS5maW5kLkNMQVNTPWZ1bmN0aW9uKFUsVixXKXtpZih0eXBlb2YgVi5nZXRFbGVtZW50 c0J5Q2xhc3NOYW1lIT09InVuZGVmaW5lZCImJiFXKXtyZXR1cm4gVi5nZXRFbGVtZW50c0J5Q2xhc3NO YW1lKFVbMV0pfX19KSgpfWZ1bmN0aW9uIFAoVSxaLFksYWQsYWEsYWMpe3ZhciBhYj1VPT0icHJldmlv dXNTaWJsaW5nIiYmIWFjO2Zvcih2YXIgVz0wLFY9YWQubGVuZ3RoO1c8VjtXKyspe3ZhciBUPWFkW1dd O2lmKFQpe2lmKGFiJiZULm5vZGVUeXBlPT09MSl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9VD1UW1Vd O3ZhciBYPWZhbHNlO3doaWxlKFQpe2lmKFQuc2l6Y2FjaGU9PT1ZKXtYPWFkW1Quc2l6c2V0XTticmVh a31pZihULm5vZGVUeXBlPT09MSYmIWFjKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31pZihULm5vZGVO YW1lPT09Wil7WD1UO2JyZWFrfVQ9VFtVXX1hZFtXXT1YfX19ZnVuY3Rpb24gUyhVLFosWSxhZCxhYSxh Yyl7dmFyIGFiPVU9PSJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZhciBXPTAsVj1hZC5sZW5ndGg7 VzxWO1crKyl7dmFyIFQ9YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9PT0xKXtULnNpemNhY2hl PVk7VC5zaXpzZXQ9V31UPVRbVV07dmFyIFg9ZmFsc2U7d2hpbGUoVCl7aWYoVC5zaXpjYWNoZT09PVkp e1g9YWRbVC5zaXpzZXRdO2JyZWFrfWlmKFQubm9kZVR5cGU9PT0xKXtpZighYWMpe1Quc2l6Y2FjaGU9 WTtULnNpenNldD1XfWlmKHR5cGVvZiBaIT09InN0cmluZyIpe2lmKFQ9PT1aKXtYPXRydWU7YnJlYWt9 fWVsc2V7aWYoRi5maWx0ZXIoWixbVF0pLmxlbmd0aD4wKXtYPVQ7YnJlYWt9fX1UPVRbVV19YWRbV109 WH19fXZhciBLPWRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKFUsVCl7cmV0 dXJuIFUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVCkmMTZ9OmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFUh PT1UJiYoVS5jb250YWlucz9VLmNvbnRhaW5zKFQpOnRydWUpfTt2YXIgUT1mdW5jdGlvbihUKXtyZXR1 cm4gVC5ub2RlVHlwZT09PTkmJlQuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIVQu b3duZXJEb2N1bWVudCYmUShULm93bmVyRG9jdW1lbnQpfTt2YXIgSj1mdW5jdGlvbihULGFhKXt2YXIg Vz1bXSxYPSIiLFksVj1hYS5ub2RlVHlwZT9bYWFdOmFhO3doaWxlKChZPUkubWF0Y2guUFNFVURPLmV4 ZWMoVCkpKXtYKz1ZWzBdO1Q9VC5yZXBsYWNlKEkubWF0Y2guUFNFVURPLCIiKX1UPUkucmVsYXRpdmVb VF0/VCsiKiI6VDtmb3IodmFyIFo9MCxVPVYubGVuZ3RoO1o8VTtaKyspe0YoVCxWW1pdLFcpfXJldHVy biBGLmZpbHRlcihYLFcpfTtvLmZpbmQ9RjtvLmZpbHRlcj1GLmZpbHRlcjtvLmV4cHI9Ri5zZWxlY3Rv cnM7by5leHByWyI6Il09by5leHByLmZpbHRlcnM7Ri5zZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49ZnVu Y3Rpb24oVCl7cmV0dXJuIFQub2Zmc2V0V2lkdGg9PT0wfHxULm9mZnNldEhlaWdodD09PTB9O0Yuc2Vs ZWN0b3JzLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihUKXtyZXR1cm4gVC5vZmZzZXRXaWR0aD4wfHxU Lm9mZnNldEhlaWdodD4wfTtGLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKFQpe3Jl dHVybiBvLmdyZXAoby50aW1lcnMsZnVuY3Rpb24oVSl7cmV0dXJuIFQ9PT1VLmVsZW19KS5sZW5ndGh9 O28ubXVsdGlGaWx0ZXI9ZnVuY3Rpb24oVixULFUpe2lmKFUpe1Y9Ijpub3QoIitWKyIpIn1yZXR1cm4g Ri5tYXRjaGVzKFYsVCl9O28uZGlyPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W10sVz1WW1VdO3doaWxlKFcm JlchPWRvY3VtZW50KXtpZihXLm5vZGVUeXBlPT0xKXtULnB1c2goVyl9Vz1XW1VdfXJldHVybiBUfTtv Lm50aD1mdW5jdGlvbihYLFQsVixXKXtUPVR8fDE7dmFyIFU9MDtmb3IoO1g7WD1YW1ZdKXtpZihYLm5v ZGVUeXBlPT0xJiYrK1U9PVQpe2JyZWFrfX1yZXR1cm4gWH07by5zaWJsaW5nPWZ1bmN0aW9uKFYsVSl7 dmFyIFQ9W107Zm9yKDtWO1Y9Vi5uZXh0U2libGluZyl7aWYoVi5ub2RlVHlwZT09MSYmViE9VSl7VC5w dXNoKFYpfX1yZXR1cm4gVH07cmV0dXJuO2wuU2l6emxlPUZ9KSgpO28uZXZlbnQ9e2FkZDpmdW5jdGlv bihJLEYsSCxLKXtpZihJLm5vZGVUeXBlPT0zfHxJLm5vZGVUeXBlPT04KXtyZXR1cm59aWYoSS5zZXRJ bnRlcnZhbCYmSSE9bCl7ST1sfWlmKCFILmd1aWQpe0guZ3VpZD10aGlzLmd1aWQrK31pZihLIT09Zyl7 dmFyIEc9SDtIPXRoaXMucHJveHkoRyk7SC5kYXRhPUt9dmFyIEU9by5kYXRhKEksImV2ZW50cyIpfHxv LmRhdGEoSSwiZXZlbnRzIix7fSksSj1vLmRhdGEoSSwiaGFuZGxlIil8fG8uZGF0YShJLCJoYW5kbGUi LGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBvIT09InVuZGVmaW5lZCImJiFvLmV2ZW50LnRyaWdnZXJl ZD9vLmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVlLmVsZW0sYXJndW1lbnRzKTpnfSk7 Si5lbGVtPUk7by5lYWNoKEYuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKE0sTil7dmFyIE89Ti5zcGxpdCgi LiIpO049Ty5zaGlmdCgpO0gudHlwZT1PLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTt2YXIgTD1FW05d O2lmKG8uZXZlbnQuc3BlY2lhbEFsbFtOXSl7by5ldmVudC5zcGVjaWFsQWxsW05dLnNldHVwLmNhbGwo SSxLLE8pfWlmKCFMKXtMPUVbTl09e307aWYoIW8uZXZlbnQuc3BlY2lhbFtOXXx8by5ldmVudC5zcGVj aWFsW05dLnNldHVwLmNhbGwoSSxLLE8pPT09ZmFsc2Upe2lmKEkuYWRkRXZlbnRMaXN0ZW5lcil7SS5h ZGRFdmVudExpc3RlbmVyKE4sSixmYWxzZSl9ZWxzZXtpZihJLmF0dGFjaEV2ZW50KXtJLmF0dGFjaEV2 ZW50KCJvbiIrTixKKX19fX1MW0guZ3VpZF09SDtvLmV2ZW50Lmdsb2JhbFtOXT10cnVlfSk7ST1udWxs fSxndWlkOjEsZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihLLEgsSil7aWYoSy5ub2RlVHlwZT09M3x8 Sy5ub2RlVHlwZT09OCl7cmV0dXJufXZhciBHPW8uZGF0YShLLCJldmVudHMiKSxGLEU7aWYoRyl7aWYo SD09PWd8fCh0eXBlb2YgSD09PSJzdHJpbmciJiZILmNoYXJBdCgwKT09Ii4iKSl7Zm9yKHZhciBJIGlu IEcpe3RoaXMucmVtb3ZlKEssSSsoSHx8IiIpKX19ZWxzZXtpZihILnR5cGUpe0o9SC5oYW5kbGVyO0g9 SC50eXBlfW8uZWFjaChILnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE8pe3ZhciBRPU8uc3BsaXQoIi4i KTtPPVEuc2hpZnQoKTt2YXIgTj1SZWdFeHAoIihefFxcLikiK1Euc2xpY2UoKS5zb3J0KCkuam9pbigi LipcXC4iKSsiKFxcLnwkKSIpO2lmKEdbT10pe2lmKEope2RlbGV0ZSBHW09dW0ouZ3VpZF19ZWxzZXtm b3IodmFyIFAgaW4gR1tPXSl7aWYoTi50ZXN0KEdbT11bUF0udHlwZSkpe2RlbGV0ZSBHW09dW1BdfX19 aWYoby5ldmVudC5zcGVjaWFsQWxsW09dKXtvLmV2ZW50LnNwZWNpYWxBbGxbT10udGVhcmRvd24uY2Fs bChLLFEpfWZvcihGIGluIEdbT10pe2JyZWFrfWlmKCFGKXtpZighby5ldmVudC5zcGVjaWFsW09dfHxv LmV2ZW50LnNwZWNpYWxbT10udGVhcmRvd24uY2FsbChLLFEpPT09ZmFsc2Upe2lmKEsucmVtb3ZlRXZl bnRMaXN0ZW5lcil7Sy5yZW1vdmVFdmVudExpc3RlbmVyKE8sby5kYXRhKEssImhhbmRsZSIpLGZhbHNl KX1lbHNle2lmKEsuZGV0YWNoRXZlbnQpe0suZGV0YWNoRXZlbnQoIm9uIitPLG8uZGF0YShLLCJoYW5k bGUiKSl9fX1GPW51bGw7ZGVsZXRlIEdbT119fX0pfWZvcihGIGluIEcpe2JyZWFrfWlmKCFGKXt2YXIg TD1vLmRhdGEoSywiaGFuZGxlIik7aWYoTCl7TC5lbGVtPW51bGx9by5yZW1vdmVEYXRhKEssImV2ZW50 cyIpO28ucmVtb3ZlRGF0YShLLCJoYW5kbGUiKX19fSx0cmlnZ2VyOmZ1bmN0aW9uKEksSyxILEUpe3Zh ciBHPUkudHlwZXx8STtpZighRSl7ST10eXBlb2YgST09PSJvYmplY3QiP0lbaF0/STpvLmV4dGVuZChv LkV2ZW50KEcpLEkpOm8uRXZlbnQoRyk7aWYoRy5pbmRleE9mKCIhIik+PTApe0kudHlwZT1HPUcuc2xp Y2UoMCwtMSk7SS5leGNsdXNpdmU9dHJ1ZX1pZighSCl7SS5zdG9wUHJvcGFnYXRpb24oKTtpZih0aGlz Lmdsb2JhbFtHXSl7by5lYWNoKG8uY2FjaGUsZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50cyYmdGhpcy5l dmVudHNbR10pe28uZXZlbnQudHJpZ2dlcihJLEssdGhpcy5oYW5kbGUuZWxlbSl9fSl9fWlmKCFIfHxI Lm5vZGVUeXBlPT0zfHxILm5vZGVUeXBlPT04KXtyZXR1cm4gZ31JLnJlc3VsdD1nO0kudGFyZ2V0PUg7 Sz1vLm1ha2VBcnJheShLKTtLLnVuc2hpZnQoSSl9SS5jdXJyZW50VGFyZ2V0PUg7dmFyIEo9by5kYXRh KEgsImhhbmRsZSIpO2lmKEope0ouYXBwbHkoSCxLKX1pZigoIUhbR118fChvLm5vZGVOYW1lKEgsImEi KSYmRz09ImNsaWNrIikpJiZIWyJvbiIrR10mJkhbIm9uIitHXS5hcHBseShILEspPT09ZmFsc2Upe0ku cmVzdWx0PWZhbHNlfWlmKCFFJiZIW0ddJiYhSS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIShvLm5vZGVO YW1lKEgsImEiKSYmRz09ImNsaWNrIikpe3RoaXMudHJpZ2dlcmVkPXRydWU7dHJ5e0hbR10oKX1jYXRj aChMKXt9fXRoaXMudHJpZ2dlcmVkPWZhbHNlO2lmKCFJLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3Zh ciBGPUgucGFyZW50Tm9kZXx8SC5vd25lckRvY3VtZW50O2lmKEYpe28uZXZlbnQudHJpZ2dlcihJLEss Rix0cnVlKX19fSxoYW5kbGU6ZnVuY3Rpb24oSyl7dmFyIEosRTtLPWFyZ3VtZW50c1swXT1vLmV2ZW50 LmZpeChLfHxsLmV2ZW50KTtLLmN1cnJlbnRUYXJnZXQ9dGhpczt2YXIgTD1LLnR5cGUuc3BsaXQoIi4i KTtLLnR5cGU9TC5zaGlmdCgpO0o9IUwubGVuZ3RoJiYhSy5leGNsdXNpdmU7dmFyIEk9UmVnRXhwKCIo XnxcXC4pIitMLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikrIihcXC58JCkiKTtFPShvLmRhdGEo dGhpcywiZXZlbnRzIil8fHt9KVtLLnR5cGVdO2Zvcih2YXIgRyBpbiBFKXt2YXIgSD1FW0ddO2lmKEp8 fEkudGVzdChILnR5cGUpKXtLLmhhbmRsZXI9SDtLLmRhdGE9SC5kYXRhO3ZhciBGPUguYXBwbHkodGhp cyxhcmd1bWVudHMpO2lmKEYhPT1nKXtLLnJlc3VsdD1GO2lmKEY9PT1mYWxzZSl7Sy5wcmV2ZW50RGVm YXVsdCgpO0suc3RvcFByb3BhZ2F0aW9uKCl9fWlmKEsuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3Bw ZWQoKSl7YnJlYWt9fX19LHByb3BzOiJhbHRLZXkgYXR0ckNoYW5nZSBhdHRyTmFtZSBidWJibGVzIGJ1 dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50WSBjdHJsS2V5IGN1cnJlbnRUYXJn ZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVudCBoYW5kbGVyIGtleUNvZGUgbWV0YUtl eSBuZXdWYWx1ZSBvcmlnaW5hbFRhcmdldCBwYWdlWCBwYWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUg cmVsYXRlZFRhcmdldCBzY3JlZW5YIHNjcmVlblkgc2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9F bGVtZW50IHZpZXcgd2hlZWxEZWx0YSB3aGljaCIuc3BsaXQoIiAiKSxmaXg6ZnVuY3Rpb24oSCl7aWYo SFtoXSl7cmV0dXJuIEh9dmFyIEY9SDtIPW8uRXZlbnQoRik7Zm9yKHZhciBHPXRoaXMucHJvcHMubGVu Z3RoLEo7Rzspe0o9dGhpcy5wcm9wc1stLUddO0hbSl09RltKXX1pZighSC50YXJnZXQpe0gudGFyZ2V0 PUguc3JjRWxlbWVudHx8ZG9jdW1lbnR9aWYoSC50YXJnZXQubm9kZVR5cGU9PTMpe0gudGFyZ2V0PUgu dGFyZ2V0LnBhcmVudE5vZGV9aWYoIUgucmVsYXRlZFRhcmdldCYmSC5mcm9tRWxlbWVudCl7SC5yZWxh dGVkVGFyZ2V0PUguZnJvbUVsZW1lbnQ9PUgudGFyZ2V0P0gudG9FbGVtZW50OkguZnJvbUVsZW1lbnR9 aWYoSC5wYWdlWD09bnVsbCYmSC5jbGllbnRYIT1udWxsKXt2YXIgST1kb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQsRT1kb2N1bWVudC5ib2R5O0gucGFnZVg9SC5jbGllbnRYKyhJJiZJLnNjcm9sbExlZnR8fEUm JkUuc2Nyb2xsTGVmdHx8MCktKEkuY2xpZW50TGVmdHx8MCk7SC5wYWdlWT1ILmNsaWVudFkrKEkmJkku c2Nyb2xsVG9wfHxFJiZFLnNjcm9sbFRvcHx8MCktKEkuY2xpZW50VG9wfHwwKX1pZighSC53aGljaCYm KChILmNoYXJDb2RlfHxILmNoYXJDb2RlPT09MCk/SC5jaGFyQ29kZTpILmtleUNvZGUpKXtILndoaWNo PUguY2hhckNvZGV8fEgua2V5Q29kZX1pZighSC5tZXRhS2V5JiZILmN0cmxLZXkpe0gubWV0YUtleT1I LmN0cmxLZXl9aWYoIUgud2hpY2gmJkguYnV0dG9uKXtILndoaWNoPShILmJ1dHRvbiYxPzE6KEguYnV0 dG9uJjI/MzooSC5idXR0b24mND8yOjApKSl9cmV0dXJuIEh9LHByb3h5OmZ1bmN0aW9uKEYsRSl7RT1F fHxmdW5jdGlvbigpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07RS5ndWlkPUYuZ3VpZD1G Lmd1aWR8fEUuZ3VpZHx8dGhpcy5ndWlkKys7cmV0dXJuIEV9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpC LHRlYXJkb3duOmZ1bmN0aW9uKCl7fX19LHNwZWNpYWxBbGw6e2xpdmU6e3NldHVwOmZ1bmN0aW9uKEUs Ril7by5ldmVudC5hZGQodGhpcyxGWzBdLGMpfSx0ZWFyZG93bjpmdW5jdGlvbihHKXtpZihHLmxlbmd0 aCl7dmFyIEU9MCxGPVJlZ0V4cCgiKF58XFwuKSIrR1swXSsiKFxcLnwkKSIpO28uZWFjaCgoby5kYXRh KHRoaXMsImV2ZW50cyIpLmxpdmV8fHt9KSxmdW5jdGlvbigpe2lmKEYudGVzdCh0aGlzLnR5cGUpKXtF Kyt9fSk7aWYoRTwxKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEdbMF0sYyl9fX19fX07by5FdmVudD1mdW5j dGlvbihFKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdCl7cmV0dXJuIG5ldyBvLkV2ZW50KEUpfWlmKEUm JkUudHlwZSl7dGhpcy5vcmlnaW5hbEV2ZW50PUU7dGhpcy50eXBlPUUudHlwZX1lbHNle3RoaXMudHlw ZT1FfXRoaXMudGltZVN0YW1wPWUoKTt0aGlzW2hdPXRydWV9O2Z1bmN0aW9uIGsoKXtyZXR1cm4gZmFs c2V9ZnVuY3Rpb24gdSgpe3JldHVybiB0cnVlfW8uRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVs dDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXU7dmFyIEU9dGhpcy5vcmlnaW5hbEV2 ZW50O2lmKCFFKXtyZXR1cm59aWYoRS5wcmV2ZW50RGVmYXVsdCl7RS5wcmV2ZW50RGVmYXVsdCgpfUUu cmV0dXJuVmFsdWU9ZmFsc2V9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdh dGlvblN0b3BwZWQ9dTt2YXIgRT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIUUpe3JldHVybn1pZihFLnN0 b3BQcm9wYWdhdGlvbil7RS5zdG9wUHJvcGFnYXRpb24oKX1FLmNhbmNlbEJ1YmJsZT10cnVlfSxzdG9w SW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25T dG9wcGVkPXU7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOmssaXNQcm9w YWdhdGlvblN0b3BwZWQ6ayxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDprfTt2YXIgYT1mdW5j dGlvbihGKXt2YXIgRT1GLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRSYmRSE9dGhpcyl7dHJ5e0U9RS5wYXJl bnROb2RlfWNhdGNoKEcpe0U9dGhpc319aWYoRSE9dGhpcyl7Ri50eXBlPUYuZGF0YTtvLmV2ZW50Lmhh bmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTtvLmVhY2goe21vdXNlb3ZlcjoibW91c2VlbnRlciIs bW91c2VvdXQ6Im1vdXNlbGVhdmUifSxmdW5jdGlvbihGLEUpe28uZXZlbnQuc3BlY2lhbFtFXT17c2V0 dXA6ZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsYSxFKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtv LmV2ZW50LnJlbW92ZSh0aGlzLEYsYSl9fX0pO28uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKEYsRyxF KXtyZXR1cm4gRj09InVubG9hZCI/dGhpcy5vbmUoRixHLEUpOnRoaXMuZWFjaChmdW5jdGlvbigpe28u ZXZlbnQuYWRkKHRoaXMsRixFfHxHLEUmJkcpfSl9LG9uZTpmdW5jdGlvbihHLEgsRil7dmFyIEU9by5l dmVudC5wcm94eShGfHxILGZ1bmN0aW9uKEkpe28odGhpcykudW5iaW5kKEksRSk7cmV0dXJuKEZ8fEgp LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50 LmFkZCh0aGlzLEcsRSxGJiZIKX0pfSx1bmJpbmQ6ZnVuY3Rpb24oRixFKXtyZXR1cm4gdGhpcy5lYWNo KGZ1bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLEUpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oRSxG KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC50cmlnZ2VyKEUsRix0aGlzKX0pfSx0 cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihFLEcpe2lmKHRoaXNbMF0pe3ZhciBGPW8uRXZlbnQoRSk7Ri5w cmV2ZW50RGVmYXVsdCgpO0Yuc3RvcFByb3BhZ2F0aW9uKCk7by5ldmVudC50cmlnZ2VyKEYsRyx0aGlz WzBdKTtyZXR1cm4gRi5yZXN1bHR9fSx0b2dnbGU6ZnVuY3Rpb24oRyl7dmFyIEU9YXJndW1lbnRzLEY9 MTt3aGlsZShGPEUubGVuZ3RoKXtvLmV2ZW50LnByb3h5KEcsRVtGKytdKX1yZXR1cm4gdGhpcy5jbGlj ayhvLmV2ZW50LnByb3h5KEcsZnVuY3Rpb24oSCl7dGhpcy5sYXN0VG9nZ2xlPSh0aGlzLmxhc3RUb2dn bGV8fDApJUY7SC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBFW3RoaXMubGFzdFRvZ2dsZSsrXS5hcHBs eSh0aGlzLGFyZ3VtZW50cyl8fGZhbHNlfSkpfSxob3ZlcjpmdW5jdGlvbihFLEYpe3JldHVybiB0aGlz Lm1vdXNlZW50ZXIoRSkubW91c2VsZWF2ZShGKX0scmVhZHk6ZnVuY3Rpb24oRSl7QigpO2lmKG8uaXNS ZWFkeSl7RS5jYWxsKGRvY3VtZW50LG8pfWVsc2V7by5yZWFkeUxpc3QucHVzaChFKX1yZXR1cm4gdGhp c30sbGl2ZTpmdW5jdGlvbihHLEYpe3ZhciBFPW8uZXZlbnQucHJveHkoRik7RS5ndWlkKz10aGlzLnNl bGVjdG9yK0c7byhkb2N1bWVudCkuYmluZChpKEcsdGhpcy5zZWxlY3RvciksdGhpcy5zZWxlY3RvcixF KTtyZXR1cm4gdGhpc30sZGllOmZ1bmN0aW9uKEYsRSl7byhkb2N1bWVudCkudW5iaW5kKGkoRix0aGlz LnNlbGVjdG9yKSxFP3tndWlkOkUuZ3VpZCt0aGlzLnNlbGVjdG9yK0Z9Om51bGwpO3JldHVybiB0aGlz fX0pO2Z1bmN0aW9uIGMoSCl7dmFyIEU9UmVnRXhwKCIoXnxcXC4pIitILnR5cGUrIihcXC58JCkiKSxH PXRydWUsRj1bXTtvLmVhY2goby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKEks Sil7aWYoRS50ZXN0KEoudHlwZSkpe3ZhciBLPW8oSC50YXJnZXQpLmNsb3Nlc3QoSi5kYXRhKVswXTtp ZihLKXtGLnB1c2goe2VsZW06SyxmbjpKfSl9fX0pO0Yuc29ydChmdW5jdGlvbihKLEkpe3JldHVybiBv LmRhdGEoSi5lbGVtLCJjbG9zZXN0Iiktby5kYXRhKEkuZWxlbSwiY2xvc2VzdCIpfSk7by5lYWNoKEYs ZnVuY3Rpb24oKXtpZih0aGlzLmZuLmNhbGwodGhpcy5lbGVtLEgsdGhpcy5mbi5kYXRhKT09PWZhbHNl KXtyZXR1cm4oRz1mYWxzZSl9fSk7cmV0dXJuIEd9ZnVuY3Rpb24gaShGLEUpe3JldHVyblsibGl2ZSIs RixFLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csInwiKV0uam9pbigiLiIpfW8uZXh0ZW5k KHtpc1JlYWR5OmZhbHNlLHJlYWR5TGlzdDpbXSxyZWFkeTpmdW5jdGlvbigpe2lmKCFvLmlzUmVhZHkp e28uaXNSZWFkeT10cnVlO2lmKG8ucmVhZHlMaXN0KXtvLmVhY2goby5yZWFkeUxpc3QsZnVuY3Rpb24o KXt0aGlzLmNhbGwoZG9jdW1lbnQsbyl9KTtvLnJlYWR5TGlzdD1udWxsfW8oZG9jdW1lbnQpLnRyaWdn ZXJIYW5kbGVyKCJyZWFkeSIpfX19KTt2YXIgeD1mYWxzZTtmdW5jdGlvbiBCKCl7aWYoeCl7cmV0dXJu fXg9dHJ1ZTtpZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVudC5hZGRFdmVudExpc3Rl bmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVu ZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGFyZ3VtZW50cy5jYWxsZWUsZmFsc2UpO28ucmVhZHkoKX0sZmFs c2UpfWVsc2V7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJl YWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0 ZSIpe2RvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGFyZ3VtZW50cy5jYWxs ZWUpO28ucmVhZHkoKX19KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJmw9PWwu dG9wKXsoZnVuY3Rpb24oKXtpZihvLmlzUmVhZHkpe3JldHVybn10cnl7ZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goRSl7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVl LDApO3JldHVybn1vLnJlYWR5KCl9KSgpfX19by5ldmVudC5hZGQobCwibG9hZCIsby5yZWFkeSl9by5l YWNoKCgiYmx1cixmb2N1cyxsb2FkLHJlc2l6ZSxzY3JvbGwsdW5sb2FkLGNsaWNrLGRibGNsaWNrLG1v dXNlZG93bixtb3VzZXVwLG1vdXNlbW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsbW91c2VlbnRlcixtb3Vz ZWxlYXZlLGNoYW5nZSxzZWxlY3Qsc3VibWl0LGtleWRvd24sa2V5cHJlc3Msa2V5dXAsZXJyb3IiKS5z cGxpdCgiLCIpLGZ1bmN0aW9uKEYsRSl7by5mbltFXT1mdW5jdGlvbihHKXtyZXR1cm4gRz90aGlzLmJp bmQoRSxHKTp0aGlzLnRyaWdnZXIoRSl9fSk7byhsKS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9y KHZhciBFIGluIG8uY2FjaGUpe2lmKEUhPTEmJm8uY2FjaGVbRV0uaGFuZGxlKXtvLmV2ZW50LnJlbW92 ZShvLmNhY2hlW0VdLmhhbmRsZS5lbGVtKX19fSk7KGZ1bmN0aW9uKCl7by5zdXBwb3J0PXt9O3ZhciBG PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxHPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp LEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSj0ic2NyaXB0IisobmV3IERhdGUpLmdldFRp bWUoKTtLLnN0eWxlLmRpc3BsYXk9Im5vbmUiO0suaW5uZXJIVE1MPScgICA8bGluay8+PHRhYmxlPjwv dGFibGU+PGEgaHJlZj0iL2EiIHN0eWxlPSJjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41OyI+ YTwvYT48c2VsZWN0PjxvcHRpb24+dGV4dDwvb3B0aW9uPjwvc2VsZWN0PjxvYmplY3Q+PHBhcmFtLz48 L29iamVjdD4nO3ZhciBIPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxFPUsuZ2V0RWxlbWVudHNC eVRhZ05hbWUoImEiKVswXTtpZighSHx8IUgubGVuZ3RofHwhRSl7cmV0dXJufW8uc3VwcG9ydD17bGVh ZGluZ1doaXRlc3BhY2U6Sy5maXJzdENoaWxkLm5vZGVUeXBlPT0zLHRib2R5OiFLLmdldEVsZW1lbnRz QnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxvYmplY3RBbGw6ISFLLmdldEVsZW1lbnRzQnlUYWdOYW1l KCJvYmplY3QiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aCxodG1sU2VyaWFsaXpl OiEhSy5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KEUu Z2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpFLmdldEF0dHJpYnV0ZSgiaHJlZiIp PT09Ii9hIixvcGFjaXR5OkUuc3R5bGUub3BhY2l0eT09PSIwLjUiLGNzc0Zsb2F0OiEhRS5zdHlsZS5j c3NGbG9hdCxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9O0cu dHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7Ry5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0 Tm9kZSgid2luZG93LiIrSisiPTE7IikpfWNhdGNoKEkpe31GLmluc2VydEJlZm9yZShHLEYuZmlyc3RD aGlsZCk7aWYobFtKXSl7by5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgbFtKXX1GLnJlbW92 ZUNoaWxkKEcpO2lmKEsuYXR0YWNoRXZlbnQmJksuZmlyZUV2ZW50KXtLLmF0dGFjaEV2ZW50KCJvbmNs aWNrIixmdW5jdGlvbigpe28uc3VwcG9ydC5ub0Nsb25lRXZlbnQ9ZmFsc2U7Sy5kZXRhY2hFdmVudCgi b25jbGljayIsYXJndW1lbnRzLmNhbGxlZSl9KTtLLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9u Y2xpY2siKX1vKGZ1bmN0aW9uKCl7dmFyIEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TC5z dHlsZS53aWR0aD1MLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp bGQoTCk7by5ib3hNb2RlbD1vLnN1cHBvcnQuYm94TW9kZWw9TC5vZmZzZXRXaWR0aD09PTI7ZG9jdW1l bnQuYm9keS5yZW1vdmVDaGlsZChMKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfSkoKTt2YXIgdz1vLnN1 cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCI7by5wcm9wcz17ImZvciI6Imh0bWxG b3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijp3LGNzc0Zsb2F0Oncsc3R5bGVGbG9hdDp3LHJl YWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3Bh Y2luZyIscm93c3Bhbjoicm93U3BhbiIsdGFiaW5kZXg6InRhYkluZGV4In07by5mbi5leHRlbmQoe19s b2FkOm8uZm4ubG9hZCxsb2FkOmZ1bmN0aW9uKEcsSixLKXtpZih0eXBlb2YgRyE9PSJzdHJpbmciKXty ZXR1cm4gdGhpcy5fbG9hZChHKX12YXIgST1HLmluZGV4T2YoIiAiKTtpZihJPj0wKXt2YXIgRT1HLnNs aWNlKEksRy5sZW5ndGgpO0c9Ry5zbGljZSgwLEkpfXZhciBIPSJHRVQiO2lmKEope2lmKG8uaXNGdW5j dGlvbihKKSl7Sz1KO0o9bnVsbH1lbHNle2lmKHR5cGVvZiBKPT09Im9iamVjdCIpe0o9by5wYXJhbShK KTtIPSJQT1NUIn19fXZhciBGPXRoaXM7by5hamF4KHt1cmw6Ryx0eXBlOkgsZGF0YVR5cGU6Imh0bWwi LGRhdGE6Sixjb21wbGV0ZTpmdW5jdGlvbihNLEwpe2lmKEw9PSJzdWNjZXNzInx8TD09Im5vdG1vZGlm aWVkIil7Ri5odG1sKEU/bygiPGRpdi8+IikuYXBwZW5kKE0ucmVzcG9uc2VUZXh0LnJlcGxhY2UoLzxz Y3JpcHQoLnxccykqP1wvc2NyaXB0Pi9nLCIiKSkuZmluZChFKTpNLnJlc3BvbnNlVGV4dCl9aWYoSyl7 Ri5lYWNoKEssW00ucmVzcG9uc2VUZXh0LEwsTV0pfX19KTtyZXR1cm4gdGhpc30sc2VyaWFsaXplOmZ1 bmN0aW9uKCl7cmV0dXJuIG8ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJy YXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50 cz9vLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJu IHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fC9zZWxlY3R8dGV4dGFyZWEv aS50ZXN0KHRoaXMubm9kZU5hbWUpfHwvdGV4dHxoaWRkZW58cGFzc3dvcmR8c2VhcmNoL2kudGVzdCh0 aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihFLEYpe3ZhciBHPW8odGhpcykudmFsKCk7cmV0dXJuIEc9 PW51bGw/bnVsbDpvLmlzQXJyYXkoRyk/by5tYXAoRyxmdW5jdGlvbihJLEgpe3JldHVybntuYW1lOkYu bmFtZSx2YWx1ZTpJfX0pOntuYW1lOkYubmFtZSx2YWx1ZTpHfX0pLmdldCgpfX0pO28uZWFjaCgiYWph eFN0YXJ0LGFqYXhTdG9wLGFqYXhDb21wbGV0ZSxhamF4RXJyb3IsYWpheFN1Y2Nlc3MsYWpheFNlbmQi LnNwbGl0KCIsIiksZnVuY3Rpb24oRSxGKXtvLmZuW0ZdPWZ1bmN0aW9uKEcpe3JldHVybiB0aGlzLmJp bmQoRixHKX19KTt2YXIgcj1lKCk7by5leHRlbmQoe2dldDpmdW5jdGlvbihFLEcsSCxGKXtpZihvLmlz RnVuY3Rpb24oRykpe0g9RztHPW51bGx9cmV0dXJuIG8uYWpheCh7dHlwZToiR0VUIix1cmw6RSxkYXRh Okcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKEUsRil7cmV0dXJuIG8u Z2V0KEUsbnVsbCxGLCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihFLEYsRyl7cmV0dXJuIG8uZ2V0 KEUsRixHLCJqc29uIil9LHBvc3Q6ZnVuY3Rpb24oRSxHLEgsRil7aWYoby5pc0Z1bmN0aW9uKEcpKXtI PUc7Rz17fX1yZXR1cm4gby5hamF4KHt0eXBlOiJQT1NUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRh dGFUeXBlOkZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKEUpe28uZXh0ZW5kKG8uYWpheFNldHRpbmdzLEUp fSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29u dGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1 ZSxhc3luYzp0cnVlLHhocjpmdW5jdGlvbigpe3JldHVybiBsLkFjdGl2ZVhPYmplY3Q/bmV3IEFjdGl2 ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik6bmV3IFhNTEh0dHBSZXF1ZXN0KCl9LGFjY2VwdHM6 e3htbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRl eHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNv biwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGxhc3RN b2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKE0pe009by5leHRlbmQodHJ1ZSxNLG8uZXh0ZW5kKHRydWUs e30sby5hamF4U2V0dGluZ3MsTSkpO3ZhciBXLEY9Lz1cPygmfCQpL2csUixWLEc9TS50eXBlLnRvVXBw ZXJDYXNlKCk7aWYoTS5kYXRhJiZNLnByb2Nlc3NEYXRhJiZ0eXBlb2YgTS5kYXRhIT09InN0cmluZyIp e00uZGF0YT1vLnBhcmFtKE0uZGF0YSl9aWYoTS5kYXRhVHlwZT09Impzb25wIil7aWYoRz09IkdFVCIp e2lmKCFNLnVybC5tYXRjaChGKSl7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKSsoTS5q c29ucHx8ImNhbGxiYWNrIikrIj0/In19ZWxzZXtpZighTS5kYXRhfHwhTS5kYXRhLm1hdGNoKEYpKXtN LmRhdGE9KE0uZGF0YT9NLmRhdGErIiYiOiIiKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19TS5k YXRhVHlwZT0ianNvbiJ9aWYoTS5kYXRhVHlwZT09Impzb24iJiYoTS5kYXRhJiZNLmRhdGEubWF0Y2go Ril8fE0udXJsLm1hdGNoKEYpKSl7Vz0ianNvbnAiK3IrKztpZihNLmRhdGEpe00uZGF0YT0oTS5kYXRh KyIiKS5yZXBsYWNlKEYsIj0iK1crIiQxIil9TS51cmw9TS51cmwucmVwbGFjZShGLCI9IitXKyIkMSIp O00uZGF0YVR5cGU9InNjcmlwdCI7bFtXXT1mdW5jdGlvbihYKXtWPVg7SSgpO0woKTtsW1ddPWc7dHJ5 e2RlbGV0ZSBsW1ddfWNhdGNoKFkpe31pZihIKXtILnJlbW92ZUNoaWxkKFQpfX19aWYoTS5kYXRhVHlw ZT09InNjcmlwdCImJk0uY2FjaGU9PW51bGwpe00uY2FjaGU9ZmFsc2V9aWYoTS5jYWNoZT09PWZhbHNl JiZHPT0iR0VUIil7dmFyIEU9ZSgpO3ZhciBVPU0udXJsLnJlcGxhY2UoLyhcP3wmKV89Lio/KCZ8JCkv LCIkMV89IitFKyIkMiIpO00udXJsPVUrKChVPT1NLnVybCk/KE0udXJsLm1hdGNoKC9cPy8pPyImIjoi PyIpKyJfPSIrRToiIil9aWYoTS5kYXRhJiZHPT0iR0VUIil7TS51cmwrPShNLnVybC5tYXRjaCgvXD8v KT8iJiI6Ij8iKStNLmRhdGE7TS5kYXRhPW51bGx9aWYoTS5nbG9iYWwmJiFvLmFjdGl2ZSsrKXtvLmV2 ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpfXZhciBRPS9eKFx3KzopP1wvXC8oW15cLz8jXSspLy5leGVj KE0udXJsKTtpZihNLmRhdGFUeXBlPT0ic2NyaXB0IiYmRz09IkdFVCImJlEmJihRWzFdJiZRWzFdIT1s b2NhdGlvbi5wcm90b2NvbHx8UVsyXSE9bG9jYXRpb24uaG9zdCkpe3ZhciBIPWRvY3VtZW50LmdldEVs ZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2Ny aXB0Iik7VC5zcmM9TS51cmw7aWYoTS5zY3JpcHRDaGFyc2V0KXtULmNoYXJzZXQ9TS5zY3JpcHRDaGFy c2V0fWlmKCFXKXt2YXIgTz1mYWxzZTtULm9ubG9hZD1ULm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlv bigpe2lmKCFPJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT0ibG9hZGVkInx8dGhp cy5yZWFkeVN0YXRlPT0iY29tcGxldGUiKSl7Tz10cnVlO0koKTtMKCk7VC5vbmxvYWQ9VC5vbnJlYWR5 c3RhdGVjaGFuZ2U9bnVsbDtILnJlbW92ZUNoaWxkKFQpfX19SC5hcHBlbmRDaGlsZChUKTtyZXR1cm4g Z312YXIgSz1mYWxzZTt2YXIgSj1NLnhocigpO2lmKE0udXNlcm5hbWUpe0oub3BlbihHLE0udXJsLE0u YXN5bmMsTS51c2VybmFtZSxNLnBhc3N3b3JkKX1lbHNle0oub3BlbihHLE0udXJsLE0uYXN5bmMpfXRy eXtpZihNLmRhdGEpe0ouc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixNLmNvbnRlbnRUeXBl KX1pZihNLmlmTW9kaWZpZWQpe0ouc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLG8u bGFzdE1vZGlmaWVkW00udXJsXXx8IlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIil9Si5zZXRS ZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTtKLnNldFJlcXVl c3RIZWFkZXIoIkFjY2VwdCIsTS5kYXRhVHlwZSYmTS5hY2NlcHRzW00uZGF0YVR5cGVdP00uYWNjZXB0 c1tNLmRhdGFUeXBlXSsiLCAqLyoiOk0uYWNjZXB0cy5fZGVmYXVsdCl9Y2F0Y2goUyl7fWlmKE0uYmVm b3JlU2VuZCYmTS5iZWZvcmVTZW5kKEosTSk9PT1mYWxzZSl7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZl KXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9Si5hYm9ydCgpO3JldHVybiBmYWxzZX1pZihNLmds b2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsW0osTV0pfXZhciBOPWZ1bmN0aW9uKFgpe2lm KEoucmVhZHlTdGF0ZT09MCl7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGw7aWYoTS5nbG9iYWwm JiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9fX1lbHNle2lmKCFLJiZKJiYo Si5yZWFkeVN0YXRlPT00fHxYPT0idGltZW91dCIpKXtLPXRydWU7aWYoUCl7Y2xlYXJJbnRlcnZhbChQ KTtQPW51bGx9Uj1YPT0idGltZW91dCI/InRpbWVvdXQiOiFvLmh0dHBTdWNjZXNzKEopPyJlcnJvciI6 TS5pZk1vZGlmaWVkJiZvLmh0dHBOb3RNb2RpZmllZChKLE0udXJsKT8ibm90bW9kaWZpZWQiOiJzdWNj ZXNzIjtpZihSPT0ic3VjY2VzcyIpe3RyeXtWPW8uaHR0cERhdGEoSixNLmRhdGFUeXBlLE0pfWNhdGNo KFope1I9InBhcnNlcmVycm9yIn19aWYoUj09InN1Y2Nlc3MiKXt2YXIgWTt0cnl7WT1KLmdldFJlc3Bv bnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIil9Y2F0Y2goWil7fWlmKE0uaWZNb2RpZmllZCYmWSl7by5s YXN0TW9kaWZpZWRbTS51cmxdPVl9aWYoIVcpe0koKX19ZWxzZXtvLmhhbmRsZUVycm9yKE0sSixSKX1M KCk7aWYoWCl7Si5hYm9ydCgpfWlmKE0uYXN5bmMpe0o9bnVsbH19fX07aWYoTS5hc3luYyl7dmFyIFA9 c2V0SW50ZXJ2YWwoTiwxMyk7aWYoTS50aW1lb3V0PjApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihK JiYhSyl7TigidGltZW91dCIpfX0sTS50aW1lb3V0KX19dHJ5e0ouc2VuZChNLmRhdGEpfWNhdGNoKFMp e28uaGFuZGxlRXJyb3IoTSxKLG51bGwsUyl9aWYoIU0uYXN5bmMpe04oKX1mdW5jdGlvbiBJKCl7aWYo TS5zdWNjZXNzKXtNLnN1Y2Nlc3MoVixSKX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4 U3VjY2VzcyIsW0osTV0pfX1mdW5jdGlvbiBMKCl7aWYoTS5jb21wbGV0ZSl7TS5jb21wbGV0ZShKLFIp fWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW0osTV0pfWlmKE0uZ2xv YmFsJiYhLS1vLmFjdGl2ZSl7by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX1yZXR1cm4gSn0saGFu ZGxlRXJyb3I6ZnVuY3Rpb24oRixILEUsRyl7aWYoRi5lcnJvcil7Ri5lcnJvcihILEUsRyl9aWYoRi5n bG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheEVycm9yIixbSCxGLEddKX19LGFjdGl2ZTowLGh0dHBT dWNjZXNzOmZ1bmN0aW9uKEYpe3RyeXtyZXR1cm4gIUYuc3RhdHVzJiZsb2NhdGlvbi5wcm90b2NvbD09 ImZpbGU6Inx8KEYuc3RhdHVzPj0yMDAmJkYuc3RhdHVzPDMwMCl8fEYuc3RhdHVzPT0zMDR8fEYuc3Rh dHVzPT0xMjIzfWNhdGNoKEUpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihH LEUpe3RyeXt2YXIgSD1HLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7cmV0dXJuIEcu c3RhdHVzPT0zMDR8fEg9PW8ubGFzdE1vZGlmaWVkW0VdfWNhdGNoKEYpe31yZXR1cm4gZmFsc2V9LGh0 dHBEYXRhOmZ1bmN0aW9uKEosSCxHKXt2YXIgRj1KLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5 cGUiKSxFPUg9PSJ4bWwifHwhSCYmRiYmRi5pbmRleE9mKCJ4bWwiKT49MCxJPUU/Si5yZXNwb25zZVhN TDpKLnJlc3BvbnNlVGV4dDtpZihFJiZJLmRvY3VtZW50RWxlbWVudC50YWdOYW1lPT0icGFyc2VyZXJy b3IiKXt0aHJvdyJwYXJzZXJlcnJvciJ9aWYoRyYmRy5kYXRhRmlsdGVyKXtJPUcuZGF0YUZpbHRlcihJ LEgpfWlmKHR5cGVvZiBJPT09InN0cmluZyIpe2lmKEg9PSJzY3JpcHQiKXtvLmdsb2JhbEV2YWwoSSl9 aWYoSD09Impzb24iKXtJPWxbImV2YWwiXSgiKCIrSSsiKSIpfX1yZXR1cm4gSX0scGFyYW06ZnVuY3Rp b24oRSl7dmFyIEc9W107ZnVuY3Rpb24gSChJLEope0dbRy5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVu dChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEopfWlmKG8uaXNBcnJheShFKXx8RS5qcXVlcnkpe28u ZWFjaChFLGZ1bmN0aW9uKCl7SCh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KX1lbHNle2Zvcih2YXIgRiBp biBFKXtpZihvLmlzQXJyYXkoRVtGXSkpe28uZWFjaChFW0ZdLGZ1bmN0aW9uKCl7SChGLHRoaXMpfSl9 ZWxzZXtIKEYsby5pc0Z1bmN0aW9uKEVbRl0pP0VbRl0oKTpFW0ZdKX19fXJldHVybiBHLmpvaW4oIiYi KS5yZXBsYWNlKC8lMjAvZywiKyIpfX0pO3ZhciBtPXt9LG4sZD1bWyJoZWlnaHQiLCJtYXJnaW5Ub3Ai LCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJn aW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0 eSJdXTtmdW5jdGlvbiB0KEYsRSl7dmFyIEc9e307by5lYWNoKGQuY29uY2F0LmFwcGx5KFtdLGQuc2xp Y2UoMCxFKSksZnVuY3Rpb24oKXtHW3RoaXNdPUZ9KTtyZXR1cm4gR31vLmZuLmV4dGVuZCh7c2hvdzpm dW5jdGlvbihKLEwpe2lmKEope3JldHVybiB0aGlzLmFuaW1hdGUodCgic2hvdyIsMyksSixMKX1lbHNl e2Zvcih2YXIgSD0wLEY9dGhpcy5sZW5ndGg7SDxGO0grKyl7dmFyIEU9by5kYXRhKHRoaXNbSF0sIm9s ZGRpc3BsYXkiKTt0aGlzW0hdLnN0eWxlLmRpc3BsYXk9RXx8IiI7aWYoby5jc3ModGhpc1tIXSwiZGlz cGxheSIpPT09Im5vbmUiKXt2YXIgRz10aGlzW0hdLnRhZ05hbWUsSztpZihtW0ddKXtLPW1bR119ZWxz ZXt2YXIgST1vKCI8IitHKyIgLz4iKS5hcHBlbmRUbygiYm9keSIpO0s9SS5jc3MoImRpc3BsYXkiKTtp ZihLPT09Im5vbmUiKXtLPSJibG9jayJ9SS5yZW1vdmUoKTttW0ddPUt9by5kYXRhKHRoaXNbSF0sIm9s ZGRpc3BsYXkiLEspfX1mb3IodmFyIEg9MCxGPXRoaXMubGVuZ3RoO0g8RjtIKyspe3RoaXNbSF0uc3R5 bGUuZGlzcGxheT1vLmRhdGEodGhpc1tIXSwib2xkZGlzcGxheSIpfHwiIn1yZXR1cm4gdGhpc319LGhp ZGU6ZnVuY3Rpb24oSCxJKXtpZihIKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQoImhpZGUiLDMpLEgsSSl9 ZWxzZXtmb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3ZhciBFPW8uZGF0YSh0aGlzW0dd LCJvbGRkaXNwbGF5Iik7aWYoIUUmJkUhPT0ibm9uZSIpe28uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5 IixvLmNzcyh0aGlzW0ddLCJkaXNwbGF5IikpfX1mb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtH Kyspe3RoaXNbR10uc3R5bGUuZGlzcGxheT0ibm9uZSJ9cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOm8uZm4u dG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihHLEYpe3ZhciBFPXR5cGVvZiBHPT09ImJvb2xlYW4iO3JldHVy biBvLmlzRnVuY3Rpb24oRykmJm8uaXNGdW5jdGlvbihGKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxh cmd1bWVudHMpOkc9PW51bGx8fEU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIEg9RT9HOm8odGhpcyku aXMoIjpoaWRkZW4iKTtvKHRoaXMpW0g/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZSh0KCJ0 b2dnbGUiLDMpLEcsRil9LGZhZGVUbzpmdW5jdGlvbihFLEcsRil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh7 b3BhY2l0eTpHfSxFLEYpfSxhbmltYXRlOmZ1bmN0aW9uKEksRixILEcpe3ZhciBFPW8uc3BlZWQoRixI LEcpO3JldHVybiB0aGlzW0UucXVldWU9PT1mYWxzZT8iZWFjaCI6InF1ZXVlIl0oZnVuY3Rpb24oKXt2 YXIgSz1vLmV4dGVuZCh7fSxFKSxNLEw9dGhpcy5ub2RlVHlwZT09MSYmbyh0aGlzKS5pcygiOmhpZGRl biIpLEo9dGhpcztmb3IoTSBpbiBJKXtpZihJW01dPT0iaGlkZSImJkx8fElbTV09PSJzaG93IiYmIUwp e3JldHVybiBLLmNvbXBsZXRlLmNhbGwodGhpcyl9aWYoKE09PSJoZWlnaHQifHxNPT0id2lkdGgiKSYm dGhpcy5zdHlsZSl7Sy5kaXNwbGF5PW8uY3NzKHRoaXMsImRpc3BsYXkiKTtLLm92ZXJmbG93PXRoaXMu c3R5bGUub3ZlcmZsb3d9fWlmKEsub3ZlcmZsb3chPW51bGwpe3RoaXMuc3R5bGUub3ZlcmZsb3c9Imhp ZGRlbiJ9Sy5jdXJBbmltPW8uZXh0ZW5kKHt9LEkpO28uZWFjaChJLGZ1bmN0aW9uKE8sUyl7dmFyIFI9 bmV3IG8uZngoSixLLE8pO2lmKC90b2dnbGV8c2hvd3xoaWRlLy50ZXN0KFMpKXtSW1M9PSJ0b2dnbGUi P0w/InNob3ciOiJoaWRlIjpTXShJKX1lbHNle3ZhciBRPVMudG9TdHJpbmcoKS5tYXRjaCgvXihbKy1d PSk/KFtcZCstLl0rKSguKikkLyksVD1SLmN1cih0cnVlKXx8MDtpZihRKXt2YXIgTj1wYXJzZUZsb2F0 KFFbMl0pLFA9UVszXXx8InB4IjtpZihQIT0icHgiKXtKLnN0eWxlW09dPShOfHwxKStQO1Q9KChOfHwx KS9SLmN1cih0cnVlKSkqVDtKLnN0eWxlW09dPVQrUH1pZihRWzFdKXtOPSgoUVsxXT09Ii09Ij8tMTox KSpOKStUfVIuY3VzdG9tKFQsTixQKX1lbHNle1IuY3VzdG9tKFQsUywiIil9fX0pO3JldHVybiB0cnVl fSl9LHN0b3A6ZnVuY3Rpb24oRixFKXt2YXIgRz1vLnRpbWVycztpZihGKXt0aGlzLnF1ZXVlKFtdKX10 aGlzLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIEg9Ry5sZW5ndGgtMTtIPj0wO0gtLSl7aWYoR1tIXS5l bGVtPT10aGlzKXtpZihFKXtHW0hdKHRydWUpfUcuc3BsaWNlKEgsMSl9fX0pO2lmKCFFKXt0aGlzLmRl cXVldWUoKX1yZXR1cm4gdGhpc319KTtvLmVhY2goe3NsaWRlRG93bjp0KCJzaG93IiwxKSxzbGlkZVVw OnQoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOnQoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93 In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24o RyxIKXtyZXR1cm4gdGhpcy5hbmltYXRlKEYsRyxIKX19KTtvLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24o RyxILEYpe3ZhciBFPXR5cGVvZiBHPT09Im9iamVjdCI/Rzp7Y29tcGxldGU6Rnx8IUYmJkh8fG8uaXNG dW5jdGlvbihHKSYmRyxkdXJhdGlvbjpHLGVhc2luZzpGJiZIfHxIJiYhby5pc0Z1bmN0aW9uKEgpJiZI fTtFLmR1cmF0aW9uPW8uZngub2ZmPzA6dHlwZW9mIEUuZHVyYXRpb249PT0ibnVtYmVyIj9FLmR1cmF0 aW9uOm8uZnguc3BlZWRzW0UuZHVyYXRpb25dfHxvLmZ4LnNwZWVkcy5fZGVmYXVsdDtFLm9sZD1FLmNv bXBsZXRlO0UuY29tcGxldGU9ZnVuY3Rpb24oKXtpZihFLnF1ZXVlIT09ZmFsc2Upe28odGhpcykuZGVx dWV1ZSgpfWlmKG8uaXNGdW5jdGlvbihFLm9sZCkpe0Uub2xkLmNhbGwodGhpcyl9fTtyZXR1cm4gRX0s ZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oRyxILEUsRil7cmV0dXJuIEUrRipHfSxzd2luZzpmdW5jdGlv bihHLEgsRSxGKXtyZXR1cm4oKC1NYXRoLmNvcyhHKk1hdGguUEkpLzIpKzAuNSkqRitFfX0sdGltZXJz OltdLGZ4OmZ1bmN0aW9uKEYsRSxHKXt0aGlzLm9wdGlvbnM9RTt0aGlzLmVsZW09Rjt0aGlzLnByb3A9 RztpZighRS5vcmlnKXtFLm9yaWc9e319fX0pO28uZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24o KXtpZih0aGlzLm9wdGlvbnMuc3RlcCl7dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhp cy5ub3csdGhpcyl9KG8uZnguc3RlcFt0aGlzLnByb3BdfHxvLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMp O2lmKCh0aGlzLnByb3A9PSJoZWlnaHQifHx0aGlzLnByb3A9PSJ3aWR0aCIpJiZ0aGlzLmVsZW0uc3R5 bGUpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fSxjdXI6ZnVuY3Rpb24oRil7aWYodGhp cy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVb dGhpcy5wcm9wXT09bnVsbCkpe3JldHVybiB0aGlzLmVsZW1bdGhpcy5wcm9wXX12YXIgRT1wYXJzZUZs b2F0KG8uY3NzKHRoaXMuZWxlbSx0aGlzLnByb3AsRikpO3JldHVybiBFJiZFPi0xMDAwMD9FOnBhcnNl RmxvYXQoby5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oSSxI LEcpe3RoaXMuc3RhcnRUaW1lPWUoKTt0aGlzLnN0YXJ0PUk7dGhpcy5lbmQ9SDt0aGlzLnVuaXQ9R3x8 dGhpcy51bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0wO3Zh ciBFPXRoaXM7ZnVuY3Rpb24gRihKKXtyZXR1cm4gRS5zdGVwKEopfUYuZWxlbT10aGlzLmVsZW07aWYo RigpJiZvLnRpbWVycy5wdXNoKEYpJiYhbil7bj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBLPW8u dGltZXJzO2Zvcih2YXIgSj0wO0o8Sy5sZW5ndGg7SisrKXtpZighS1tKXSgpKXtLLnNwbGljZShKLS0s MSl9fWlmKCFLLmxlbmd0aCl7Y2xlYXJJbnRlcnZhbChuKTtuPWd9fSwxMyl9fSxzaG93OmZ1bmN0aW9u KCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1vLmF0dHIodGhpcy5lbGVtLnN0eWxlLHRoaXMu cHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnByb3A9PSJ3aWR0aCJ8 fHRoaXMucHJvcD09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO28odGhpcy5lbGVtKS5zaG93KCl9LGhp ZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPW8uYXR0cih0aGlzLmVsZW0u c3R5bGUsdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlO3RoaXMuY3VzdG9tKHRoaXMuY3Vy KCksMCl9LHN0ZXA6ZnVuY3Rpb24oSCl7dmFyIEc9ZSgpO2lmKEh8fEc+PXRoaXMub3B0aW9ucy5kdXJh dGlvbit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0x O3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO3ZhciBFPXRy dWU7Zm9yKHZhciBGIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtpZih0aGlzLm9wdGlvbnMuY3VyQW5p bVtGXSE9PXRydWUpe0U9ZmFsc2V9fWlmKEUpe2lmKHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxsKXt0 aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92ZXJmbG93O3RoaXMuZWxlbS5zdHls ZS5kaXNwbGF5PXRoaXMub3B0aW9ucy5kaXNwbGF5O2lmKG8uY3NzKHRoaXMuZWxlbSwiZGlzcGxheSIp PT0ibm9uZSIpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fWlmKHRoaXMub3B0aW9ucy5o aWRlKXtvKHRoaXMuZWxlbSkuaGlkZSgpfWlmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMu c2hvdyl7Zm9yKHZhciBJIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtvLmF0dHIodGhpcy5lbGVtLnN0 eWxlLEksdGhpcy5vcHRpb25zLm9yaWdbSV0pfX10aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlz LmVsZW0pfXJldHVybiBmYWxzZX1lbHNle3ZhciBKPUctdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1K L3RoaXMub3B0aW9ucy5kdXJhdGlvbjt0aGlzLnBvcz1vLmVhc2luZ1t0aGlzLm9wdGlvbnMuZWFzaW5n fHwoby5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIildKHRoaXMuc3RhdGUsSiwwLDEsdGhpcy5v cHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0KygodGhpcy5lbmQtdGhpcy5zdGFydCkq dGhpcy5wb3MpO3RoaXMudXBkYXRlKCl9cmV0dXJuIHRydWV9fTtvLmV4dGVuZChvLmZ4LHtzcGVlZHM6 e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihFKXtv LmF0dHIoRS5lbGVtLnN0eWxlLCJvcGFjaXR5IixFLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9uKEUpe2lm KEUuZWxlbS5zdHlsZSYmRS5lbGVtLnN0eWxlW0UucHJvcF0hPW51bGwpe0UuZWxlbS5zdHlsZVtFLnBy b3BdPUUubm93K0UudW5pdH1lbHNle0UuZWxlbVtFLnByb3BdPUUubm93fX19fSk7aWYoZG9jdW1lbnQu ZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7by5mbi5vZmZzZXQ9ZnVuY3Rpb24o KXtpZighdGhpc1swXSl7cmV0dXJue3RvcDowLGxlZnQ6MH19aWYodGhpc1swXT09PXRoaXNbMF0ub3du ZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4gby5vZmZzZXQuYm9keU9mZnNldCh0aGlzWzBdKX12YXIgRz10 aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEo9dGhpc1swXS5vd25lckRvY3VtZW50LEY9Si5i b2R5LEU9Si5kb2N1bWVudEVsZW1lbnQsTD1FLmNsaWVudFRvcHx8Ri5jbGllbnRUb3B8fDAsSz1FLmNs aWVudExlZnR8fEYuY2xpZW50TGVmdHx8MCxJPUcudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxvLmJveE1v ZGVsJiZFLnNjcm9sbFRvcHx8Ri5zY3JvbGxUb3ApLUwsSD1HLmxlZnQrKHNlbGYucGFnZVhPZmZzZXR8 fG8uYm94TW9kZWwmJkUuc2Nyb2xsTGVmdHx8Ri5zY3JvbGxMZWZ0KS1LO3JldHVybnt0b3A6SSxsZWZ0 Okh9fX1lbHNle28uZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pe3JldHVybnt0b3A6MCxs ZWZ0OjB9fWlmKHRoaXNbMF09PT10aGlzWzBdLm93bmVyRG9jdW1lbnQuYm9keSl7cmV0dXJuIG8ub2Zm c2V0LmJvZHlPZmZzZXQodGhpc1swXSl9by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRp YWxpemUoKTt2YXIgSj10aGlzWzBdLEc9Si5vZmZzZXRQYXJlbnQsRj1KLE89Si5vd25lckRvY3VtZW50 LE0sSD1PLmRvY3VtZW50RWxlbWVudCxLPU8uYm9keSxMPU8uZGVmYXVsdFZpZXcsRT1MLmdldENvbXB1 dGVkU3R5bGUoSixudWxsKSxOPUoub2Zmc2V0VG9wLEk9Si5vZmZzZXRMZWZ0O3doaWxlKChKPUoucGFy ZW50Tm9kZSkmJkohPT1LJiZKIT09SCl7TT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKTtOLT1KLnNj cm9sbFRvcCxJLT1KLnNjcm9sbExlZnQ7aWYoSj09PUcpe04rPUoub2Zmc2V0VG9wLEkrPUoub2Zmc2V0 TGVmdDtpZihvLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKG8ub2Zmc2V0LmRvZXNBZGRCb3JkZXJG b3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoSi50YWdOYW1lKSkpe04rPXBhcnNl SW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEw KXx8MH1GPUcsRz1KLm9mZnNldFBhcmVudH1pZihvLm9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVy Zmxvd05vdFZpc2libGUmJk0ub3ZlcmZsb3chPT0idmlzaWJsZSIpe04rPXBhcnNlSW50KE0uYm9yZGVy VG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1FPU19aWYo RS5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fEUucG9zaXRpb249PT0ic3RhdGljIil7Tis9Sy5vZmZzZXRU b3AsSSs9Sy5vZmZzZXRMZWZ0fWlmKEUucG9zaXRpb249PT0iZml4ZWQiKXtOKz1NYXRoLm1heChILnNj cm9sbFRvcCxLLnNjcm9sbFRvcCksSSs9TWF0aC5tYXgoSC5zY3JvbGxMZWZ0LEsuc2Nyb2xsTGVmdCl9 cmV0dXJue3RvcDpOLGxlZnQ6SX19fW8ub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7aWYodGhp cy5pbml0aWFsaXplZCl7cmV0dXJufXZhciBMPWRvY3VtZW50LmJvZHksRj1kb2N1bWVudC5jcmVhdGVF bGVtZW50KCJkaXYiKSxILEcsTixJLE0sRSxKPUwuc3R5bGUubWFyZ2luVG9wLEs9JzxkaXYgc3R5bGU9 InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMw MDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PGRpdj48L2Rpdj48L2Rpdj48dGFibGUg c3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNv bGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9IjAiIGNl bGxzcGFjaW5nPSIwIj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPic7TT17cG9zaXRpb246ImFic29s dXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgi LHZpc2liaWxpdHk6ImhpZGRlbiJ9O2ZvcihFIGluIE0pe0Yuc3R5bGVbRV09TVtFXX1GLmlubmVySFRN TD1LO0wuaW5zZXJ0QmVmb3JlKEYsTC5maXJzdENoaWxkKTtIPUYuZmlyc3RDaGlsZCxHPUguZmlyc3RD aGlsZCxJPUgubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkO3RoaXMuZG9lc05vdEFkZEJv cmRlcj0oRy5vZmZzZXRUb3AhPT01KTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPShJ Lm9mZnNldFRvcD09PTUpO0guc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsSC5zdHlsZS5wb3NpdGlvbj0i cmVsYXRpdmUiO3RoaXMuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPShHLm9mZnNl dFRvcD09PS01KTtMLnN0eWxlLm1hcmdpblRvcD0iMXB4Ijt0aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2lu SW5Cb2R5T2Zmc2V0PShMLm9mZnNldFRvcD09PTApO0wuc3R5bGUubWFyZ2luVG9wPUo7TC5yZW1vdmVD aGlsZChGKTt0aGlzLmluaXRpYWxpemVkPXRydWV9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oRSl7by5vZmZz ZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgRz1FLm9mZnNldFRvcCxGPUUu b2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Rys9 cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luVG9wIix0cnVlKSwxMCl8fDAsRis9cGFyc2VJbnQoby5j dXJDU1MoRSwibWFyZ2luTGVmdCIsdHJ1ZSksMTApfHwwfXJldHVybnt0b3A6RyxsZWZ0OkZ9fX07by5m bi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIEk9MCxIPTAsRjtpZih0aGlzWzBdKXt2YXIg Rz10aGlzLm9mZnNldFBhcmVudCgpLEo9dGhpcy5vZmZzZXQoKSxFPS9eYm9keXxodG1sJC9pLnRlc3Qo R1swXS50YWdOYW1lKT97dG9wOjAsbGVmdDowfTpHLm9mZnNldCgpO0oudG9wLT1qKHRoaXMsIm1hcmdp blRvcCIpO0oubGVmdC09aih0aGlzLCJtYXJnaW5MZWZ0Iik7RS50b3ArPWooRywiYm9yZGVyVG9wV2lk dGgiKTtFLmxlZnQrPWooRywiYm9yZGVyTGVmdFdpZHRoIik7Rj17dG9wOkoudG9wLUUudG9wLGxlZnQ6 Si5sZWZ0LUUubGVmdH19cmV0dXJuIEZ9LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciBFPXRoaXNb MF0ub2Zmc2V0UGFyZW50fHxkb2N1bWVudC5ib2R5O3doaWxlKEUmJighL15ib2R5fGh0bWwkL2kudGVz dChFLnRhZ05hbWUpJiZvLmNzcyhFLCJwb3NpdGlvbiIpPT0ic3RhdGljIikpe0U9RS5vZmZzZXRQYXJl bnR9cmV0dXJuIG8oRSl9fSk7by5lYWNoKFsiTGVmdCIsIlRvcCJdLGZ1bmN0aW9uKEYsRSl7dmFyIEc9 InNjcm9sbCIrRTtvLmZuW0ddPWZ1bmN0aW9uKEgpe2lmKCF0aGlzWzBdKXtyZXR1cm4gbnVsbH1yZXR1 cm4gSCE9PWc/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09bHx8dGhpcz09ZG9jdW1lbnQ/bC5zY3Jv bGxUbyghRj9IOm8obCkuc2Nyb2xsTGVmdCgpLEY/SDpvKGwpLnNjcm9sbFRvcCgpKTp0aGlzW0ddPUh9 KTp0aGlzWzBdPT1sfHx0aGlzWzBdPT1kb2N1bWVudD9zZWxmW0Y/InBhZ2VZT2Zmc2V0IjoicGFnZVhP ZmZzZXQiXXx8by5ib3hNb2RlbCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W0ddfHxkb2N1bWVudC5i b2R5W0ddOnRoaXNbMF1bR119fSk7by5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihJLEcp e3ZhciBFPUk/IkxlZnQiOiJUb3AiLEg9ST8iUmlnaHQiOiJCb3R0b20iLEY9Ry50b0xvd2VyQ2FzZSgp O28uZm5bImlubmVyIitHXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdP28uY3NzKHRoaXNbMF0sRixm YWxzZSwicGFkZGluZyIpOm51bGx9O28uZm5bIm91dGVyIitHXT1mdW5jdGlvbihLKXtyZXR1cm4gdGhp c1swXT9vLmNzcyh0aGlzWzBdLEYsZmFsc2UsSz8ibWFyZ2luIjoiYm9yZGVyIik6bnVsbH07dmFyIEo9 Ry50b0xvd2VyQ2FzZSgpO28uZm5bSl09ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXNbMF09PWw/ZG9jdW1l bnQuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVu dCIrR118fGRvY3VtZW50LmJvZHlbImNsaWVudCIrR106dGhpc1swXT09ZG9jdW1lbnQ/TWF0aC5tYXgo ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddLGRvY3VtZW50LmJvZHlbInNjcm9sbCIr R10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK0ddLGRvY3VtZW50LmJvZHlbIm9mZnNl dCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJvZmZzZXQiK0ddKTpLPT09Zz8odGhpcy5sZW5n dGg/by5jc3ModGhpc1swXSxKKTpudWxsKTp0aGlzLmNzcyhKLHR5cGVvZiBLPT09InN0cmluZyI/SzpL KyJweCIpfX0pfSkoKTs= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/jquery.template.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoqCiAqIGpRdWVyeSBUZW1wbGF0ZXMKICoKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUICho dHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocCkKICogYW5kIEdQ TCAoaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHApIGxpY2Vu c2VzLgogKgogKiBXcml0dGVuIGJ5OiBTdGFuIExlbW9uIDxzdGFubGVtb25AbWFjLmNvbT4KICoKICog QmFzZWQgb2ZmIG9mIHRoZSBFeHQuVGVtcGxhdGUgbGlicmFyeSwgYXZhaWxhYmxlIGF0OgogKiBodHRw Oi8vd3d3LmV4dGpzLmNvbQogKgogKiBUaGlzIGxpYnJhcnkgcHJvdmlkZXMgYmFzaWMgdGVtcGxhdGlu ZyBmdW5jdGlvbmFsaXR5LCBhbGxvd2luZyBmb3IgbWFjcm8tYmFzZWQKICogdGVtcGxhdGVzIHdpdGhp biBqUXVlcnkuCiAqCiAqIEJhc2ljIFVzYWdlOgogKgogKiB2YXIgdCA9ICQudGVtcGxhdGUoJzxkaXYg aWQ9ImZvbyI+SGVsbG8gJHtuYW1lfSwgaG93IGFyZSB5b3UgJHtxdWVzdGlvbn0/ICBJIGFtICR7bWU6 c3Vic3RyKDAsMTApfTwvZGl2PicpOwogKgogKiAkKHNlbGVjdG9yKS5hcHBlbmQoIHQgLCB7CiAqICAg ICBuYW1lOiAnU3RhbicsCiAqICAgICBxdWVzdGlvbjogJ2ZlZWxpbmcnLAogKiAgICAgbWU6ICdkb2lu ZyBxdWl0ZSB3ZWxsIG15c2VsZiwgdGhhbmsgeW91IHZlcnkgbXVjaCEnCiAqIH0pOwogKgogKiBSZXF1 aXJlczogalF1ZXJ5IDEuMisKICoKICoKICogQHRvZG8gICAgQWRkIGNhbGxiYWNrcyB0byB0aGUgRE9N IG1hbmlwdWxhdGlvbiBtZXRob2RzLCBzbyB0aGF0IGV2ZW50cyBjYW4gYmUgYm91bmQKICogICAgICAg ICAgdG8gdGVtcGxhdGUgbm9kZXMgYWZ0ZXIgY3JlYXRpb24uCiAqLwooZnVuY3Rpb24oJCl7CgkKCS8q KgoJICogQ3JlYXRlIGEgTmV3IFRlbXBsYXRlCgkgKi8KCSQudGVtcGxhdGUgPSBmdW5jdGlvbihodG1s LCBvcHRpb25zKSB7CgkJcmV0dXJuIG5ldyAkLnRlbXBsYXRlLmluc3RhbmNlKGh0bWwsIG9wdGlvbnMp OwoJfTsKCgkvKioKCSAqIFRlbXBsYXRlIGNvbnN0cnVjdG9yIC0gQ3JlYXRlcyBhIG5ldyB0ZW1wbGF0 ZSBpbnN0YW5jZS4KCSAqCgkgKiBAcGFyYW0gCWh0bWwgCVRoZSBzdHJpbmcgb2YgSFRNTCB0byBiZSB1 c2VkIGZvciB0aGUgdGVtcGxhdGUuCgkgKiBAcGFyYW0gCW9wdGlvbnMgQW4gb2JqZWN0IG9mIGNvbmZp Z3VyYWJsZSBvcHRpb25zLiAgQ3VycmVudGx5CgkgKiAJCQl5b3UgY2FuIHRvZ2dsZSBjb21waWxlIGFz IGEgYm9vbGVhbiB2YWx1ZSBhbmQgc2V0IGEgY3VzdG9tCgkgKiAgICAgICAgICB0ZW1wbGF0ZSByZWd1 bGFyIGV4cHJlc3Npb24gb24gdGhlIHByb3BlcnR5IHJlZ3ggYnkKCSAqICAgICAgICAgIHNwZWNpZnlp bmcgdGhlIGtleSBvZiB0aGUgcmVneCB0byB1c2UgZnJvbSB0aGUgcmVneCBvYmplY3QuCgkgKi8KCSQu dGVtcGxhdGUuaW5zdGFuY2UgPSBmdW5jdGlvbihodG1sLCBvcHRpb25zKSB7CiAgICAgICAgLy8gSWYg YSBjdXN0b20gcmVndWxhciBleHByZXNzaW9uIGhhcyBiZWVuIHNldCwgZ3JhYiBpdCBmcm9tIHRoZSBy ZWd4IG9iamVjdAogICAgICAgIGlmICggb3B0aW9ucyAmJiBvcHRpb25zWydyZWd4J10gKSBvcHRpb25z LnJlZ3ggPSB0aGlzLnJlZ3hbIG9wdGlvbnMucmVneCBdOwoKCQl0aGlzLm9wdGlvbnMgPSAkLmV4dGVu ZCh7CgkJCWNvbXBpbGU6IAkJZmFsc2UsCgkJCXJlZ3g6ICAgICAgICAgICB0aGlzLnJlZ3guc3RhbmRh cmQKCQl9LCBvcHRpb25zIHx8IHt9KTsKCgkJdGhpcy5odG1sID0gaHRtbDsKCgkJaWYgKHRoaXMub3B0 aW9ucy5jb21waWxlKSB7CgkJCXRoaXMuY29tcGlsZSgpOyAgIAoJCX0KCQl0aGlzLmlzVGVtcGxhdGUg PSB0cnVlOwoJfTsKCgkvKioKCSAqIFJlZ3VsYXIgRXhwcmVzc2lvbiBmb3IgRmluZGluZyBWYXJpYWJs ZXMKCSAqCgkgKiBUaGUgZGVmYXVsdCBwYXR0ZXJuIGxvb2tzIGZvciB2YXJpYWJsZXMgaW4gSlNQIHN0 eWxlLCB0aGUgZm9ybSBvZjogJHt2YXJpYWJsZX0KCSAqIFRoZXJlIGFyZSBhbHNvIHJlZ3VsYXIgZXhw cmVzc2lvbnMgYXZhaWxhYmxlIGZvciBleHQtc3R5bGUgdmFyaWFibGVzIGFuZAoJICogalRlbXBsYXRl IHN0eWxlIHZhcmlhYmxlcy4KCSAqCgkgKiBZb3UgY2FuIGFkZCB5b3VyIG93biByZWd1bGFyIGV4cHJl c3Npb25zIGZvciB2YXJpYWJsZSB1c3NhZ2UgYnkgZG9pbmcuCgkgKiAkLmV4dGVuZCh7ICQudGVtcGxh dGUucmUgLCB7CgkgKiAgICAgbXl2YXJ0eXBlOiAvLi4uLi4vZwoJICogfQoJICoKCSAqIFRoZW4gd2hl biBjcmVhdGluZyBhIHRlbXBsYXRlIGRvOgoJICogdmFyIHQgPSAkLnRlbXBsYXRlKCI8ZGl2Pi4uLjwv ZGl2PiIsIHsgcmVneDogJ215dmFydHlwZScgfSk7CgkgKi8KCSQudGVtcGxhdGUucmVneCA9ICQudGVt cGxhdGUuaW5zdGFuY2UucHJvdG90eXBlLnJlZ3ggPSB7CgkgICAganNwOiAgICAgICAgL1wkXHsoW1x3 LV0rKSg/Olw6KFtcd1wuXSopKD86XCgoLio/KT9cKSk/KT9cfS9nLAogICAgICAgIGV4dDogICAgICAg IC9ceyhbXHctXSspKD86XDooW1x3XC5dKikoPzpcKCguKj8pP1wpKT8pP1x9L2csCiAgICAgICAganRl bXBsYXRlczogL1x7XHsoW1x3LV0rKSg/Olw6KFtcd1wuXSopKD86XCgoLio/KT9cKSk/KT9cfVx9L2cK CX07CgkKCS8qKgoJICogU2V0IHRoZSBzdGFuZGFyZCByZWd1bGFyIGV4cHJlc3Npb24gdG8gYmUgdXNl ZC4KCSAqLwoJJC50ZW1wbGF0ZS5yZWd4LnN0YW5kYXJkID0gJC50ZW1wbGF0ZS5yZWd4LmpzcDsKCQoJ LyoqCgkgKiBWYXJpYWJsZSBIZWxwZXIgTWV0aG9kcwoJICoKCSAqIFRoaXMgaXMgYSBjb2xsZWN0aW9u IG9mIG1ldGhvZHMgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aGluIHRoZSB2YXJpYWJsZSBzeW50YXgsIGll OgoJICogJHt2YXJpYWJsZTpzdWJzdHIoMCwzMCl9IFdoaWNoIHdvdWxkIG9ubHkgcHJpbnQgYSBzdWJz dHJpbmcsIDMwIGNoYXJhY3RlcnMgaW4gbGVuZ3RoCgkgKiBiZWdpbmluZyBhdCB0aGUgZmlyc3QgY2hh cmFjdGVyIGZvciB0aGUgdmFyaWFibGUgbmFtZWQgInZhcmlhYmxlIi4KCSAqCgkgKiBBIGJhc2ljIHN1 YnN0cmluZyBoZWxwZXIgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgeW91IGNhbiBkZWZp bmUgaGVscGVycy4KCSAqIFRvIGFkZCBtb3JlIGhlbHBlcnMgc2ltcGx5IGRvOgoJICogJC5leHRlbmQo ICQudGVtcGxhdGUuaGVscGVycyAsIHsKCSAqCSBzYW1wbGVIZWxwZXI6IGZ1bmN0aW9uKCkgeyAuLi4g fQkKCSAqIH0pOwoJICovCgkkLnRlbXBsYXRlLmhlbHBlcnMgPSAkLnRlbXBsYXRlLmluc3RhbmNlLnBy b3RvdHlwZS5oZWxwZXJzID0gewoJCXN1YnN0ciA6IGZ1bmN0aW9uKHZhbHVlLCBzdGFydCwgbGVuZ3Ro KXsKCQkJcmV0dXJuIFN0cmluZyh2YWx1ZSkuc3Vic3RyKHN0YXJ0LCBsZW5ndGgpOwoJCX0KCX07CgoK CS8qKgoJICogVGVtcGxhdGUgSW5zdGFuY2UgTWV0aG9kcwoJICovCgkkLmV4dGVuZCggJC50ZW1wbGF0 ZS5pbnN0YW5jZS5wcm90b3R5cGUsIHsKCQkKCQkvKioKCQkgKiBBcHBseSBWYWx1ZXMgdG8gYSBUZW1w bGF0ZQoJCSAqCgkJICogVGhpcyBpcyB0aGUgbWFjcm8td29yayBob3JzZSBvZiB0aGUgbGlicmFyeSwg aXQgcmVjZWl2ZXMgYW4gb2JqZWN0CgkJICogYW5kIHRoZSBwcm9wZXJ0aWVzIG9mIHRoYXQgb2JqZWN0 cyBhcmUgYXNzaWduZWQgdG8gdGhlIHRlbXBsYXRlLCB3aGVyZQoJCSAqIHRoZSB2YXJpYWJsZXMgaW4g dGhlIHRlbXBsYXRlIHJlcHJlc2VudCBrZXlzIHdpdGhpbiB0aGUgb2JqZWN0IGl0c2VsZi4KCQkgKgoJ CSAqIEBwYXJhbSAJdmFsdWVzIAlBbiBvYmplY3Qgb2YgcHJvcGVydGllcyBtYXBwZWQgdG8gdGVtcGxh dGUgdmFyaWFibGVzCgkJICovCgkJYXBwbHk6IGZ1bmN0aW9uKHZhbHVlcykgewoJCQlpZiAodGhpcy5v cHRpb25zLmNvbXBpbGUpIHsKCQkJCXJldHVybiB0aGlzLmNvbXBpbGVkKHZhbHVlcyk7CgkJCX0gZWxz ZSB7CgkJCQl2YXIgdHBsID0gdGhpczsKCQkJCXZhciBmbSA9IHRoaXMuaGVscGVyczsKCgkJCQl2YXIg Zm4gPSBmdW5jdGlvbihtLCBuYW1lLCBmb3JtYXQsIGFyZ3MpIHsKCQkJCQlpZiAoZm9ybWF0KSB7CgkJ CQkJCWlmIChmb3JtYXQuc3Vic3RyKDAsIDUpID09ICJ0aGlzLiIpewoJCQkJCQkJcmV0dXJuIHRwbC5j YWxsKGZvcm1hdC5zdWJzdHIoNSksIHZhbHVlc1tuYW1lXSwgdmFsdWVzKTsKCQkJCQkJfSBlbHNlIHsK CQkJCQkJCWlmIChhcmdzKSB7CgkJCQkJCQkJLy8gcXVvdGVkIHZhbHVlcyBhcmUgcmVxdWlyZWQgZm9y IHN0cmluZ3MgaW4gY29tcGlsZWQgdGVtcGxhdGVzLCAKCQkJCQkJCQkvLyBidXQgZm9yIG5vbiBjb21w aWxlZCB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KCQkJCQkJCQkvLyBxdW90ZWQgcmV2ZXJzZWQgZm9yIGpz bWluCgkJCQkJCQkJdmFyIHJlID0gL15ccypbJyJdKC4qKVsiJ11ccyokLzsKCQkJCQkJCQlhcmdzID0g YXJncy5zcGxpdCgnLCcpOwoKCQkJCQkJCQlmb3IodmFyIGkgPSAwLCBsZW4gPSBhcmdzLmxlbmd0aDsg aSA8IGxlbjsgaSsrKSB7CgkJCQkJCQkJCWFyZ3NbaV0gPSBhcmdzW2ldLnJlcGxhY2UocmUsICIkMSIp OwoJCQkJCQkJCX0KCQkJCQkJCQlhcmdzID0gW3ZhbHVlc1tuYW1lXV0uY29uY2F0KGFyZ3MpOwoJCQkJ CQkJfSBlbHNlIHsKCQkJCQkJCQlhcmdzID0gW3ZhbHVlc1tuYW1lXV07CgkJCQkJCQl9CgoJCQkJCQkJ cmV0dXJuIGZtW2Zvcm1hdF0uYXBwbHkoZm0sIGFyZ3MpOwoJCQkJCQl9CgkJCQkJfSBlbHNlIHsKCQkJ CQkJcmV0dXJuIHZhbHVlc1tuYW1lXSAhPT0gdW5kZWZpbmVkID8gdmFsdWVzW25hbWVdIDogIiI7CgkJ CQkJfQoJCQkJfTsKCgkJCQlyZXR1cm4gdGhpcy5odG1sLnJlcGxhY2UodGhpcy5vcHRpb25zLnJlZ3gs IGZuKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIENvbXBpbGUgYSB0ZW1wbGF0ZSBmb3Igc3BlZWRpZXIg dXNhZ2UKCQkgKi8KCQljb21waWxlOiBmdW5jdGlvbigpIHsKCQkJdmFyIHNlcCA9ICQuYnJvd3Nlci5t b3ppbGxhID8gIisiIDogIiwiOwoJCQl2YXIgZm0gPSB0aGlzLmhlbHBlcnM7CgoJCQl2YXIgZm4gPSBm dW5jdGlvbihtLCBuYW1lLCBmb3JtYXQsIGFyZ3MpewoJCQkJaWYgKGZvcm1hdCkgewoJCQkJCWFyZ3Mg PSBhcmdzID8gJywnICsgYXJncyA6ICIiOwoKCQkJCQlpZiAoZm9ybWF0LnN1YnN0cigwLCA1KSAhPSAi dGhpcy4iKSB7CgkJCQkJCWZvcm1hdCA9ICJmbS4iICsgZm9ybWF0ICsgJygnOwoJCQkJCX0gZWxzZSB7 CgkJCQkJCWZvcm1hdCA9ICd0aGlzLmNhbGwoIicrIGZvcm1hdC5zdWJzdHIoNSkgKyAnIiwgJzsKCQkJ CQkJYXJncyA9ICIsIHZhbHVlcyI7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQlhcmdzPSAnJzsgZm9y bWF0ID0gIih2YWx1ZXNbJyIgKyBuYW1lICsgIiddID09IHVuZGVmaW5lZCA/ICcnIDogIjsKCQkJCX0K CQkJCXJldHVybiAiJyIrIHNlcCArIGZvcm1hdCArICJ2YWx1ZXNbJyIgKyBuYW1lICsgIiddIiArIGFy Z3MgKyAiKSIrc2VwKyInIjsKCQkJfTsKCgkJCXZhciBib2R5OwoKCQkJaWYgKCQuYnJvd3Nlci5tb3pp bGxhKSB7CgkJCQlib2R5ID0gInRoaXMuY29tcGlsZWQgPSBmdW5jdGlvbih2YWx1ZXMpeyByZXR1cm4g JyIgKwoJCQkJCSAgIHRoaXMuaHRtbC5yZXBsYWNlKC9cXC9nLCAnXFxcXCcpLnJlcGxhY2UoLyhcclxu fFxuKS9nLCAnXFxuJykucmVwbGFjZSgvJy9nLCAiXFwnIikucmVwbGFjZSh0aGlzLm9wdGlvbnMucmVn eCwgZm4pICsKCQkJCQkJIic7fTsiOwoJCQl9IGVsc2UgewoJCQkJYm9keSA9IFsidGhpcy5jb21waWxl ZCA9IGZ1bmN0aW9uKHZhbHVlcyl7IHJldHVybiBbJyJdOwoJCQkJYm9keS5wdXNoKHRoaXMuaHRtbC5y ZXBsYWNlKC9cXC9nLCAnXFxcXCcpLnJlcGxhY2UoLyhcclxufFxuKS9nLCAnXFxuJykucmVwbGFjZSgv Jy9nLCAiXFwnIikucmVwbGFjZSh0aGlzLm9wdGlvbnMucmVneCwgZm4pKTsKCQkJCWJvZHkucHVzaCgi J10uam9pbignJyk7fTsiKTsKCQkJCWJvZHkgPSBib2R5LmpvaW4oJycpOwoJCQl9CgkJCWV2YWwoYm9k eSk7CgkJCXJldHVybiB0aGlzOwoJCX0KCX0pOwoKCgkvKioKCSAqIFNhdmUgYSByZWZlcmVuY2UgaW4g dGhpcyBsb2NhbCBzY29wZSB0byB0aGUgb3JpZ2luYWwgbWV0aG9kcyB3aGljaCB3ZSdyZSAKCSAqIGdv aW5nIHRvIG92ZXJsb2FkLgoJICoqLwoJdmFyICRfb2xkID0gewoJICAgIGRvbU1hbmlwOiAkLmZuLmRv bU1hbmlwLAoJICAgIHRleHQ6ICQuZm4udGV4dCwKCSAgICBodG1sOiAkLmZuLmh0bWwKCX07CgoJLyoq CgkgKiBPdmVyd3JpdGUgdGhlIGRvbU1hbmlwIG1ldGhvZCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhpbmdz IGxpa2UgYXBwZW5kKCkgYnkgcGFzc2luZyBhIAoJICogdGVtcGxhdGUgb2JqZWN0IGFuZCBtYWNybyBw YXJhbWV0ZXJzLgoJICovCgkkLmZuLmRvbU1hbmlwID0gZnVuY3Rpb24oIGFyZ3MsIHRhYmxlLCByZXZl cnNlLCBjYWxsYmFjayApIHsKCQlpZiAoYXJnc1swXS5pc1RlbXBsYXRlKSB7CgkJCS8vIEFwcGx5IHRo ZSB0ZW1wbGF0ZSBhbmQgaXQncyBhcmd1bWVudHMuLi4KCQkJYXJnc1swXSA9IGFyZ3NbMF0uYXBwbHko IGFyZ3NbMV0gKTsKCQkJLy8gR2V0IHJpZCBvZiB0aGUgYXJndWVtZW50cywgd2UgZG9uJ3Qgd2FudCB0 byBwYXNzIHRoZW0gb24KCQkJZGVsZXRlIGFyZ3NbMV07CgkJfQoKCQkvLyBDYWxsIHRoZSBvcmlnaW5h bCBtZXRob2QKCQl2YXIgciA9ICRfb2xkLmRvbU1hbmlwLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CgoJ CXJldHVybiByOwoJfTsKCiAgICAvKioKICAgICAqIE92ZXJ3cml0ZSB0aGUgaHRtbCgpIG1ldGhvZAog ICAgICovCgkkLmZuLmh0bWwgPSBmdW5jdGlvbiggdmFsdWUgLCBvICkgewoJICAgIGlmICh2YWx1ZSAm JiB2YWx1ZS5pc1RlbXBsYXRlKSB2YXIgdmFsdWUgPSB2YWx1ZS5hcHBseSggbyApOwoKCQl2YXIgciA9 ICRfb2xkLmh0bWwuYXBwbHkodGhpcywgW3ZhbHVlXSk7CgoJCXJldHVybiByOwoJfTsKCQoJLyoqCgkg KiBPdmVyd3JpdGUgdGhlIHRleHQoKSBtZXRob2QKCSAqLwoJJC5mbi50ZXh0ID0gZnVuY3Rpb24oIHZh bHVlICwgbyApIHsKCSAgICBpZiAodmFsdWUgJiYgdmFsdWUuaXNUZW1wbGF0ZSkgdmFyIHZhbHVlID0g dmFsdWUuYXBwbHkoIG8gKTsKCgkJdmFyIHIgPSAkX29sZC50ZXh0LmFwcGx5KHRoaXMsIFt2YWx1ZV0p OwoKCQlyZXR1cm4gcjsKCX07Cgp9KShqUXVlcnkpOwo= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/jquery.cookie.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoqCiAqIENvb2tpZSBwbHVnaW4KICoKICogQ29weXJpZ2h0IChjKSAyMDA2IEtsYXVzIEhhcnRsIChz dGlsYnVlcm8uZGUpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2Vz OgogKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogKiBo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwKICoKICovCgovKioKICogQ3JlYXRlIGEg Y29va2llIHdpdGggdGhlIGdpdmVuIG5hbWUgYW5kIHZhbHVlIGFuZCBvdGhlciBvcHRpb25hbCBwYXJh bWV0ZXJzLgogKgogKiBAZXhhbXBsZSAkLmNvb2tpZSgndGhlX2Nvb2tpZScsICd0aGVfdmFsdWUnKTsK ICogQGRlc2MgU2V0IHRoZSB2YWx1ZSBvZiBhIGNvb2tpZS4KICogQGV4YW1wbGUgJC5jb29raWUoJ3Ro ZV9jb29raWUnLCAndGhlX3ZhbHVlJywgeyBleHBpcmVzOiA3LCBwYXRoOiAnLycsIGRvbWFpbjogJ2px dWVyeS5jb20nLCBzZWN1cmU6IHRydWUgfSk7CiAqIEBkZXNjIENyZWF0ZSBhIGNvb2tpZSB3aXRoIGFs bCBhdmFpbGFibGUgb3B0aW9ucy4KICogQGV4YW1wbGUgJC5jb29raWUoJ3RoZV9jb29raWUnLCAndGhl X3ZhbHVlJyk7CiAqIEBkZXNjIENyZWF0ZSBhIHNlc3Npb24gY29va2llLgogKiBAZXhhbXBsZSAkLmNv b2tpZSgndGhlX2Nvb2tpZScsIG51bGwpOwogKiBAZGVzYyBEZWxldGUgYSBjb29raWUgYnkgcGFzc2lu ZyBudWxsIGFzIHZhbHVlLiBLZWVwIGluIG1pbmQgdGhhdCB5b3UgaGF2ZSB0byB1c2UgdGhlIHNhbWUg cGF0aCBhbmQgZG9tYWluCiAqICAgICAgIHVzZWQgd2hlbiB0aGUgY29va2llIHdhcyBzZXQuCiAqCiAq IEBwYXJhbSBTdHJpbmcgbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29va2llLgogKiBAcGFyYW0gU3RyaW5n IHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgY29va2llLgogKiBAcGFyYW0gT2JqZWN0IG9wdGlvbnMgQW4g b2JqZWN0IGxpdGVyYWwgY29udGFpbmluZyBrZXkvdmFsdWUgcGFpcnMgdG8gcHJvdmlkZSBvcHRpb25h bCBjb29raWUgYXR0cmlidXRlcy4KICogQG9wdGlvbiBOdW1iZXJ8RGF0ZSBleHBpcmVzIEVpdGhlciBh biBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIGV4cGlyYXRpb24gZGF0ZSBmcm9tIG5vdyBvbiBpbiBkYXlz IG9yIGEgRGF0ZSBvYmplY3QuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBhIG5lZ2F0 aXZlIHZhbHVlIGlzIHNwZWNpZmllZCAoZS5nLiBhIGRhdGUgaW4gdGhlIHBhc3QpLCB0aGUgY29va2ll IHdpbGwgYmUgZGVsZXRlZC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHNldCB0byBu dWxsIG9yIG9taXR0ZWQsIHRoZSBjb29raWUgd2lsbCBiZSBhIHNlc3Npb24gY29va2llIGFuZCB3aWxs IG5vdCBiZSByZXRhaW5lZAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiB0aGUgdGhl IGJyb3dzZXIgZXhpdHMuCiAqIEBvcHRpb24gU3RyaW5nIHBhdGggVGhlIHZhbHVlIG9mIHRoZSBwYXRo IGF0cmlidXRlIG9mIHRoZSBjb29raWUgKGRlZmF1bHQ6IHBhdGggb2YgcGFnZSB0aGF0IGNyZWF0ZWQg dGhlIGNvb2tpZSkuCiAqIEBvcHRpb24gU3RyaW5nIGRvbWFpbiBUaGUgdmFsdWUgb2YgdGhlIGRvbWFp biBhdHRyaWJ1dGUgb2YgdGhlIGNvb2tpZSAoZGVmYXVsdDogZG9tYWluIG9mIHBhZ2UgdGhhdCBjcmVh dGVkIHRoZSBjb29raWUpLgogKiBAb3B0aW9uIEJvb2xlYW4gc2VjdXJlIElmIHRydWUsIHRoZSBzZWN1 cmUgYXR0cmlidXRlIG9mIHRoZSBjb29raWUgd2lsbCBiZSBzZXQgYW5kIHRoZSBjb29raWUgdHJhbnNt aXNzaW9uIHdpbGwKICogICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlIGEgc2VjdXJlIHByb3Rv Y29sIChsaWtlIEhUVFBTKS4KICogQHR5cGUgdW5kZWZpbmVkCiAqCiAqIEBuYW1lICQuY29va2llCiAq IEBjYXQgUGx1Z2lucy9Db29raWUKICogQGF1dGhvciBLbGF1cyBIYXJ0bC9rbGF1cy5oYXJ0bEBzdGls YnVlcm8uZGUKICovCgovKioKICogR2V0IHRoZSB2YWx1ZSBvZiBhIGNvb2tpZSB3aXRoIHRoZSBnaXZl biBuYW1lLgogKgogKiBAZXhhbXBsZSAkLmNvb2tpZSgndGhlX2Nvb2tpZScpOwogKiBAZGVzYyBHZXQg dGhlIHZhbHVlIG9mIGEgY29va2llLgogKgogKiBAcGFyYW0gU3RyaW5nIG5hbWUgVGhlIG5hbWUgb2Yg dGhlIGNvb2tpZS4KICogQHJldHVybiBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZS4KICogQHR5cGUgU3Ry aW5nCiAqCiAqIEBuYW1lICQuY29va2llCiAqIEBjYXQgUGx1Z2lucy9Db29raWUKICogQGF1dGhvciBL bGF1cyBIYXJ0bC9rbGF1cy5oYXJ0bEBzdGlsYnVlcm8uZGUKICovCmV2YWwoZnVuY3Rpb24ocCxhLGMs ayxlLHIpe2U9ZnVuY3Rpb24oYyl7cmV0dXJuKGM8YT8nJzplKHBhcnNlSW50KGMvYSkpKSsoKGM9YyVh KT4zNT9TdHJpbmcuZnJvbUNoYXJDb2RlKGMrMjkpOmMudG9TdHJpbmcoMzYpKX07aWYoIScnLnJlcGxh Y2UoL14vLFN0cmluZykpe3doaWxlKGMtLSlyW2UoYyldPWtbY118fGUoYyk7az1bZnVuY3Rpb24oZSl7 cmV0dXJuIHJbZV19XTtlPWZ1bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTF9O3doaWxlKGMtLSlpZihr W2NdKXA9cC5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcYicrZShjKSsnXFxiJywnZycpLGtbY10pO3JldHVy biBwfSgnbi41PXYoYSxiLGMpezQoNyBiIT1cJ3dcJyl7Yz1jfHx7fTs0KGI9PT1vKXtiPVwnXCc7Yy4z PS0xfTIgZD1cJ1wnOzQoYy4zJiYoNyBjLjM9PVwncFwnfHxjLjMucSkpezIgZTs0KDcgYy4zPT1cJ3Bc Jyl7ZT14IHkoKTtlLnooZS5BKCkrKGMuMypCKnIqcipDKSl9c3tlPWMuM31kPVwnOyAzPVwnK2UucSgp fTIgZj1jLjg/XCc7IDg9XCcrKGMuOCk6XCdcJzsyIGc9Yy45P1wnOyA5PVwnKyhjLjkpOlwnXCc7MiBo PWMudD9cJzsgdFwnOlwnXCc7Ni41PVthLFwnPVwnLEQoYiksZCxmLGcsaF0uRShcJ1wnKX1zezIgaj1v OzQoNi41JiY2LjUhPVwnXCcpezIgaz02LjUuRihcJztcJyk7RygyIGk9MDtpPGsubTtpKyspezIgbD1u Lkgoa1tpXSk7NChsLnUoMCxhLm0rMSk9PShhK1wnPVwnKSl7aj1JKGwudShhLm0rMSkpO0p9fX1LIGp9 fTsnLDQ3LDQ3LCd8fHZhcnxleHBpcmVzfGlmfGNvb2tpZXxkb2N1bWVudHx0eXBlb2Z8cGF0aHxkb21h aW58fHx8fHx8fHx8fHx8bGVuZ3RofGpRdWVyeXxudWxsfG51bWJlcnx0b1VUQ1N0cmluZ3w2MHxlbHNl fHNlY3VyZXxzdWJzdHJpbmd8ZnVuY3Rpb258dW5kZWZpbmVkfG5ld3xEYXRlfHNldFRpbWV8Z2V0VGlt ZXwyNHwxMDAwfGVuY29kZVVSSUNvbXBvbmVudHxqb2lufHNwbGl0fGZvcnx0cmltfGRlY29kZVVSSUNv bXBvbmVudHxicmVha3xyZXR1cm4nLnNwbGl0KCd8JyksMCx7fSkp ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.dts.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIERUUyA9IHt9OwpEVFMuY2FtYmlhck1vZHVsbyA9IGZ1bmN0aW9uIChtb2R1bG8sIGFjdHVhbCwg bnVldm8pIHsKCXZhciBhTmF2ZWdhY2lvbiA9IG1vZHVsby5zcGxpdCgnLicpOwoJdmFyIG5hdmVnYWNp b24gPSAkKCcjJythTmF2ZWdhY2lvblswXSsnXFwuJythTmF2ZWdhY2lvblsxXSsnXFwuJythTmF2ZWdh Y2lvblsyXSsnLTEnKS5wYXJlbnQoKS5zaWJsaW5ncygnLm1vZG5hdicpOwoJCgkkKCcjJyArIGFOYXZl Z2FjaW9uWzBdKydcXC4nK2FOYXZlZ2FjaW9uWzFdKydcXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy0nICsg bnVldm8pLmZpbmQoJ2ltZ1tyZWwqPSIvIl0nKS5hdHRyKCdzcmMnLCAkKCcjJyArIGFOYXZlZ2FjaW9u WzBdKydcXC4nK2FOYXZlZ2FjaW9uWzFdKydcXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy0nICsgbnVldm8p LmZpbmQoJ2ltZ1tyZWwqPSIvIl0nKS5hdHRyKCdyZWwnKSk7CgkKCSQoJyMnICsgYU5hdmVnYWNpb25b MF0rJ1xcLicrYU5hdmVnYWNpb25bMV0rJ1xcLicrYU5hdmVnYWNpb25bMl0gKyAnLScgKyBhY3R1YWwp LmhpZGUoKTsKCSQoJyMnICsgYU5hdmVnYWNpb25bMF0rJ1xcLicrYU5hdmVnYWNpb25bMV0rJ1xcLicr YU5hdmVnYWNpb25bMl0gKyAnLScgKyBudWV2bykuc2hvdygpOwoJCgkkKG5hdmVnYWNpb24pLmZpbmQo J2EubmdfbnVtZXJvOmVxKCcgKyAoYWN0dWFsIC0gMSkgKyAnKScpLnJlbW92ZUNsYXNzKCdhY3Rpdm8n KTsKCSQobmF2ZWdhY2lvbikuZmluZCgnYS5uZ19udW1lcm86ZXEoJyArIChudWV2byAtIDEpICsgJykn KS5hZGRDbGFzcygnYWN0aXZvJyk7CgkKfTsKCkRUUy5wYWdpbmFjaW9uTW9kdWxvcyA9IGZ1bmN0aW9u IChtb2R1bG8pIHsKCgkJdmFyIGFOYXZlZ2FjaW9uID0gbW9kdWxvLnNwbGl0KCcuJyk7CgkJdmFyIG5h dmVnYWNpb24gPSAkKCcjJythTmF2ZWdhY2lvblswXSsnXFwuJythTmF2ZWdhY2lvblsxXSsnXFwuJyth TmF2ZWdhY2lvblsyXSsnLTEnKS5wYXJlbnQoKS5zaWJsaW5ncygnLm1vZG5hdicpOwoJCXZhciBudW1f Zm90b25vdGljaWFzID0gJChuYXZlZ2FjaW9uKS5maW5kKCdhLm5nX251bWVybyAnKS5sZW5ndGg7CgkK CQlpZihudW1fZm90b25vdGljaWFzID09ICcnKSB7CgkJCW51bV9mb3Rvbm90aWNpYXMgPSAxOwoJCX0K CQkKCQkKCQl2YXIgYWN0dWFsID0gMTsKCQoJCWlmKG51bV9mb3Rvbm90aWNpYXMgPT0gMSkgewoJCQlh Y3R1YWwgPSAxOwoJCX0KCQoJCWlmKCQoJyMnICsgYU5hdmVnYWNpb25bMF0rJ1xcLicrYU5hdmVnYWNp b25bMV0rJ1xcLicrYU5hdmVnYWNpb25bMl0gKyAnLScgKyBhY3R1YWwpLmZpbmQoJ2ltZ1tyZWwqPSIv Il0nKS5hdHRyKCdyZWwnKSkgewoJCQkkKCcjJyArIGFOYXZlZ2FjaW9uWzBdKydcXC4nK2FOYXZlZ2Fj aW9uWzFdKydcXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy0nICsgYWN0dWFsKS5maW5kKCdpbWdbcmVsKj0i LyJdJykuYXR0cignc3JjJywgJCgnIycgKyBhTmF2ZWdhY2lvblswXSsnXFwuJythTmF2ZWdhY2lvblsx XSsnXFwuJythTmF2ZWdhY2lvblsyXSArICctJyArIGFjdHVhbCkuZmluZCgnaW1nW3JlbCo9Ii8iXScp LmF0dHIoJ3JlbCcpKTsKCQl9IGVsc2UgewoJCQlpZihhY3R1YWwgPT0gMSAmJiAkKCcjJyArIGFOYXZl Z2FjaW9uWzBdKydcXC4nK2FOYXZlZ2FjaW9uWzFdKydcXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy0nICsg YWN0dWFsKS5maW5kKCdpbWdbcmVsKj0iLyJdJykuY3NzKCdkaXNwbGF5JykgPT0gJ25vbmUnKSB7CgkJ CQkkKCcjJyArIGFOYXZlZ2FjaW9uWzBdKydcXC4nK2FOYXZlZ2FjaW9uWzFdKydcXC4nK2FOYXZlZ2Fj aW9uWzJdICsgJy0nICsgYWN0dWFsKS5maW5kKCdpbWdbcmVsKj0iLyJdJykuY3NzKCdkaXNwbGF5Jywg J2Jsb2NrJyk7CgkJCX0KCQl9CgkKCQoJCSQobmF2ZWdhY2lvbikuZmluZCgnYS5uZ19udW1lcm86ZXEo JyArIChhY3R1YWwgLSAxKSArICcpJykuYWRkQ2xhc3MoJ2FjdGl2bycpOwoJCQoJCgkJLy8gT2N1bHRh bW9zIHRvZGFzIG1lbm9zIGxhIGFjdHVhbAoJCQoJCSQoJ1tpZF49JyArYU5hdmVnYWNpb25bMF0rJ1wu JythTmF2ZWdhY2lvblsxXSsnXC4nK2FOYXZlZ2FjaW9uWzJdICsgJy1dJykuZWFjaChmdW5jdGlvbiAo aSkgewoJCQkJaWYgKGkgIT0gKGFjdHVhbCAtIDEpKSB7CgkJCQkJJCh0aGlzKS5oaWRlKCk7CgkJCQl9 IAoJCQl9CgkJKTsKCQkKCQkvLyBOdW1lcm9zCgkJCgkJJChuYXZlZ2FjaW9uKS5maW5kKCdhLm5nX251 bWVybycpLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkkKHRoaXMpLmF0dHIoJ2hyZWYnLCAnamF2YXNjcmlw dDp2b2lkKDApJyk7CgkJCQkKCQkJCXZhciBwb3NpY2lvbiA9ICQodGhpcykudGV4dCgpOwoJCQkJCgkJ CQkkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCkgewoJCgkJCQkJCURUUy5jYW1iaWFyTW9kdWxvKG1vZHVs bywgYWN0dWFsLCBwb3NpY2lvbik7CgkJCQkJCQoJCQkJCQlhY3R1YWwgPSBwb3NpY2lvbjsKCQkJCQl9 CgkJCQkpOwoJCQl9CgkJKTsKCQkKCQkKCQkvLyBTaWd1aWVudGUKCQkKCQkkKG5hdmVnYWNpb24pLmZp bmQoJy5uZ2FzX3NpZycpLmF0dHIoJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lkKDApJyk7CgkJJChuYXZl Z2FjaW9uKS5maW5kKCcubmdhc19zaWcnKS5jbGljayhmdW5jdGlvbigpewoJCQkJCgkJCQl2YXIgc2ln dWllbnRlID0gKChhY3R1YWwgKyAxKSA+IG51bV9mb3Rvbm90aWNpYXMpID8gMSA6IChhY3R1YWwgKyAx KTsKCQkJCQkKCQkJCURUUy5jYW1iaWFyTW9kdWxvKG1vZHVsbywgYWN0dWFsLCBzaWd1aWVudGUpOwoJ CQkJCgkJCQlhY3R1YWwgPSBzaWd1aWVudGU7CgkJCX0KCQkpOwoJCQoJCS8vIEFudGVyaW9yCgkJCgkJ JChuYXZlZ2FjaW9uKS5maW5kKCcubmdhc19hbnQnKS5hdHRyKCdocmVmJywgJ2phdmFzY3JpcHQ6dm9p ZCgwKScpOwoJCSQobmF2ZWdhY2lvbikuZmluZCgnLm5nYXNfYW50JykuY2xpY2soZnVuY3Rpb24oKXsK CQkJCQoJCQkJdmFyIGFudGVyaW9yID0gKChhY3R1YWwgLSAxKSA8IDEpID8gbnVtX2ZvdG9ub3RpY2lh cyA6IChhY3R1YWwgLSAxKTsKCQkJCQoJCQkJRFRTLmNhbWJpYXJNb2R1bG8obW9kdWxvLCBhY3R1YWws IGFudGVyaW9yKTsKCQkJCQoJCQkJYWN0dWFsID0gYW50ZXJpb3I7CgkJCX0KCQkpOwoKfTs= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.maquetacion.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: Ly8gbWFuZWpvIGRlIGVsZW1lbnRvcyBkZSBsYSBtYXF1ZXRhY2nzbgp2YXIgTVFUID0ge307Ck1RVC5m b3RvQXJ0aWN1bG9BY3R1YWwgPSAnJzsKTVFULnZhcmlhYmxlR2xvYmFsU2VydiA9IDA7Ck1RVC52YXJp YWJsZUdsb2JhbENhbWIgPSAwOwpNUVQudmFyaWFibGVHbG9iYWxQZXJzID0gMDsKTVFULnZhcmlhYmxl R2xvYmFsTWV0ZW8gPSAwCgpNUVQubW9kdWxvc0xvbWFzID0gZnVuY3Rpb24gKCkgewoJJCgiZGl2Lm1v ZF9sb21hcyA+IGRpdi5ibG9xdWVfbG9tYXMgPiBkaXYuYmxtX2hlYWRlciIpLmNsaWNrKCBmdW5jdGlv bigpIHsKCQkJCXZhciAkb3JpZ2VuID0gJCh0aGlzKTsKCQkJCSRvcmlnZW4uZmluZCgiYS5ib3Rvbl9k ZXNwbGllZ2EiKS5hdHRyKHsgaHJlZjogImphdmFzY3JpcHQ6dm9pZCgwKSJ9KTsKCQkJCS8vIG1vdmlt aWVudG8gZGVsIGNvbnRlbmlkbwoJCQkJJCgiZGl2LmJsbV9jb250ZW50Iikuc2xpZGVVcCgic2xvdyIp OwoJCQkJJG9yaWdlbi5wYXJlbnQoKS5maW5kKCJkaXYuYmxtX2NvbnRlbnQiKS5zbGlkZURvd24oInNs b3ciKTsKCQkJCgkJCQkvLyBjb2xvcmVzIGFjdGl2b3Mvbm8gYWN0aXZvcyBlbmNhYmV6YWRvCgkJCQkk KCJkaXYuYmxtX2hlYWRlciIpLnJlbW92ZUNsYXNzKCJibG1faGVhZGVyX2FjdGl2YSIpOwoJCQkJJG9y aWdlbi5hZGRDbGFzcygiYmxtX2hlYWRlcl9hY3RpdmEiKTsKCQkJCgkJCQkvLyBjb2xvcmVzIGFjdGl2 b3Mvbm8gYWN0aXZvcyBlbmNhYmV6YWRvCgkJCQkkKCJhLmJvdG9uX2Rlc3BsaWVnYSIpLnJlbW92ZUNs YXNzKCJidG5fZGVzb24iKTsKCQkJCSRvcmlnZW4uZmluZCgiYS5ib3Rvbl9kZXNwbGllZ2EiKS5hZGRD bGFzcygiYnRuX2Rlc29uIik7Cgl9KTsKfTsKCk1RVC5hY3RpdmFfbG9tYXMgPSBmdW5jdGlvbihpZHBh cmFhY3RpdmFyKSB7CgkvLyBvcGNpb25lcyBpZHBhcmFhY3RpdmFyOiBtYXNsZWlkbywgbWFzY29tZW50 YWRvLCBtYXN1bHRpbW9zCgkkKCIjIiArIGlkcGFyYWFjdGl2YXIpLmZpbmQoImRpdi5ibG1fY29udGVu dCIpLnNsaWRlRG93bigic2xvdyIpOwoJJCgiIyIgKyBpZHBhcmFhY3RpdmFyKS5maW5kKCJkaXYuYmxt X2hlYWRlciIpLmFkZENsYXNzKCJibG1faGVhZGVyX2FjdGl2YSIpOwoJJCgiIyIgKyBpZHBhcmFhY3Rp dmFyKS5maW5kKCJhLmJvdG9uX2Rlc3BsaWVnYSIpLmFkZENsYXNzKCJidG5fZGVzb24iKTsKfTsKCk1R VC5hYnJpckZvcm11bGFyaW9FbnZpYXIgPSBmdW5jdGlvbigpIHsKCSQoIi5haF9lbnZpYXIiKS5jbGlj ayggZnVuY3Rpb24oKSB7CgkJJCgiLmZybV9hcnRfcmVjdGlmaWNhIikuc2xpZGVVcCgic2xvdyIpOwoJ CSQoIiNmb3JtLWFydGljdWxvLXRvcCIpLmZpbmQoIi5haF9lbnZpYXIiKS5hdHRyKHsgaHJlZjogImph dmFzY3JpcHQ6dm9pZCgwKSJ9KTsKCQkkKCIuYXJ0X2hlcnJhbWllbnRhcyBhIikucmVtb3ZlQ2xhc3Mo ImFjdGl2byIpOwoJCSQodGhpcykuYWRkQ2xhc3MoImFjdGl2byIpOwoJCSQoIi5mcm1fYXJ0X2Vudmlh Iikuc2xpZGVEb3duKCJzbG93Iik7Cgl9KTsKfTsKCk1RVC5jZXJyYXJGb3JtdWxhcmlvRW52aWFyID0g ZnVuY3Rpb24oKSB7CgkkKCIuZnJtX2FydF9lbnZpYSAuY2VycmFyIikuY2xpY2soIGZ1bmN0aW9uKCkg ewoJCSQodGhpcykuYXR0cih7IGhyZWY6ICJqYXZhc2NyaXB0OnZvaWQoMCkifSk7CgkJJCgiLmFydF9o ZXJyYW1pZW50YXMgYSIpLnJlbW92ZUNsYXNzKCJhY3Rpdm8iKTsKCQkkKCIuZnJtX2FydF9lbnZpYSIp LnNsaWRlVXAoInNsb3ciKTsKCX0pOwp9OwoKTVFULmFicmlyRm9ybXVsYXJpb1JlY3RpZmljYXIgPSBm dW5jdGlvbigpIHsKCSQoIi5haF9yZWN0aWZpY2FyIikuY2xpY2soIGZ1bmN0aW9uKCkgewoJCSQoIi5m cm1fYXJ0X2VudmlhIikuc2xpZGVVcCgic2xvdyIpOwoJCSQoIiNmb3JtLWFydGljdWxvLXRvcCIpLmZp bmQoIi5haF9yZWN0aWZpY2FyIikuYXR0cih7IGhyZWY6ICJqYXZhc2NyaXB0OnZvaWQoMCkifSk7CgkJ JCgiLmFydF9oZXJyYW1pZW50YXMgYSIpLnJlbW92ZUNsYXNzKCJhY3Rpdm8iKTsKCQkkKHRoaXMpLmFk ZENsYXNzKCJhY3Rpdm8iKTsKCQkkKCIuZnJtX2FydF9yZWN0aWZpY2EiKS5zbGlkZURvd24oInNsb3ci KTsKCX0pOwp9OwoKTVFULmNlcnJhckZvcm11bGFyaW9SZWN0aWZpY2FyID0gZnVuY3Rpb24oKSB7Cgkk KCIuZnJtX2FydF9yZWN0aWZpY2EgLmNlcnJhciIpLmNsaWNrKCBmdW5jdGlvbigpIHsKCQkkKHRoaXMp LmF0dHIoeyBocmVmOiAiamF2YXNjcmlwdDp2b2lkKDApIn0pOwoJCSQoIi5mcm1fYXJ0X2VudmlhIiku c2xpZGVVcCgic2xvdyIpOwoJCSQoIi5hcnRfaGVycmFtaWVudGFzIGEiKS5yZW1vdmVDbGFzcygiYWN0 aXZvIik7CgkJJCgiLmZybV9hcnRfcmVjdGlmaWNhIikuc2xpZGVVcCgic2xvdyIpOwoJfSk7Cn07CgpN UVQubW9kdWxvc2NhYmVjZXJhMSA9IGZ1bmN0aW9uKCkgewoKJEhUTUxjYWphID0gJzxzcGFuIGNsYXNz PSJjaiI+PHNwYW4gY2xhc3M9ImNqdGwiPjxzcGFuIGNsYXNzPSJjanRyIj48c3BhbiBjbGFzcz0iY2p0 Ij48L3NwYW4+PC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2psIj48c3BhbiBjbGFzcz0iY2pyIj48 c3BhbiBjbGFzcz0iY2pjIj48c3BhbiBjbGFzcz0iY2xlYXIiPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwv c3Bhbj48c3BhbiBjbGFzcz0iY2pibCI+PHNwYW4gY2xhc3M9ImNqYnIiPjxzcGFuIGNsYXNzPSJjamIi Pjwvc3Bhbj48L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjbGVhciI+PC9zcGFuPjwvc3Bhbj4nOwoJ Ly8gbWVudSBkZSBzZXJ2aWNpb3MKCSQoIiNtaS1zZXJ2aWNpb3MiKS5tb3VzZW92ZXIoIGZ1bmN0aW9u KCkgewoJCQlpZihNUVQudmFyaWFibGVHbG9iYWxTZXJ2ID09IDApIHsKCQkJCU1RVC52YXJpYWJsZUds b2JhbFNlcnYgPSAxOwoJCQkJJCgiI21pLXNlcnZpY2lvcyIpLnByZXBlbmQoJEhUTUxjYWphKTsKCQkJ CSQoIiNtaS1zZXJ2aWNpb3MgLmNqYyIpLnByZXBlbmQoJCgiZGl2Lm1lbnVuYXYgdWwuc3VibW5fc2Vy dmljaW9zIikpOwoJCQkJTVFULm1vZHVsb3NjYWJlY2VyYTIoKTsKCQkJfQoJCQkkKCIjbWktc2Vydmlj aW9zIC5tbl9pdGVtX2EiKS5hZGRDbGFzcygiYWN0aXZvIik7CQkJCQkJCSAgIAoJCQkkKCIjbWktc2Vy dmljaW9zIC5jaiIpLnNob3coKTsKCQkJJCgiZGl2Lm1lbnVuYXYgdWwuc3VibW5fc2VydmljaW9zIiku c2hvdygpOwoJfSk7CgkkKCIjbWktc2VydmljaW9zIikubW91c2VvdXQoIGZ1bmN0aW9uKCkgewoJCQkk KCIjbWktc2VydmljaW9zIC5tbl9pdGVtX2EiKS5yZW1vdmVDbGFzcygiYWN0aXZvIik7CgkJCSQoIiNt aS1zZXJ2aWNpb3MgLmNqIikuaGlkZSgpOwoJCQkkKCIjbWktc2VydmljaW9zIC5zdWJtbl9zZXJ2aWNp b3MiKS5oaWRlKCk7Cgl9KTsKCSQoIiNtaS1zZXJ2aWNpb3MgLmNqIikubW91c2VvdmVyKCBmdW5jdGlv bigpIHsKCQkJJCgiI21pLXNlcnZpY2lvcyAubW5faXRlbV9hIikuYWRkQ2xhc3MoImFjdGl2byIpOwoJ CQkkKCIjbWktc2VydmljaW9zIC5jaiIpLnNob3coKTsKCQkJJCgiZGl2Lm1lbnVuYXYgdWwuc3VibW5f c2VydmljaW9zIikuc2hvdygpOwoJfSk7CgoJLy8gY2FtYmlvcwoJJCgiZGl2LmNlZl9jYW1iaWFyID4g YS5jZWZfY2FtYmlhcl9zZWxlY2Npb24iKS5jbGljayggZnVuY3Rpb24oKSB7CgkJaWYoTVFULnZhcmlh YmxlR2xvYmFsQ2FtYiA9PSAwKSB7CgkJCU1RVC52YXJpYWJsZUdsb2JhbENhbWIgPSAxOwoJCQkkKCJz cGFuLmNlZl9jYW1iaW9fbHN0IikucHJlcGVuZCgkSFRNTGNhamEpOwoJCQkkKCJzcGFuLmNlZl9jYW1i aW9fbHN0ICBzcGFuLmNqYyIpLnByZXBlbmQoJCgic3Bhbi5jZWZfY2FtYmlvX2xzdCA+IC5sc3RjYWIi KSk7CgkJfQkJCQkJCQkJCQkKCQkKCQkkKCJkaXYuY2VmX2NhbWJpYXIgPiBhLmNlZl9jYW1iaWFyX3Nl bGVjY2lvbiIpLmFkZENsYXNzKCJjZWZfcGVyc29fYWN0aXZhIik7CgkJJCgic3Bhbi5jZWZfY2FtYmlv X2xzdCAgc3Bhbi5jaiIpLnNob3coKTsKCQkkKCJzcGFuLmNlZl9jYW1iaW9fbHN0ICB1bC5sc3RjYWIi KS5zaG93KCk7Cgl9KTsKCSQoInNwYW4uY2VmX2NhbWJpb19sc3QiKS5tb3VzZW91dCggZnVuY3Rpb24o KSB7CQoJCSQoImRpdi5jZWZfY2FtYmlhciBhLmNlZl9jYW1iaWFyX3NlbGVjY2lvbiIpLnJlbW92ZUNs YXNzKCJjZWZfcGVyc29fYWN0aXZhIik7CgkJJCgic3Bhbi5jZWZfY2FtYmlvX2xzdCBzcGFuLmNqIiku aGlkZSgpOwoJCSQoInNwYW4uY2VmX2NhbWJpb19sc3QgdWwubHN0Y2FiIikuaGlkZSgpOwoJfSk7Cgkk KCJzcGFuLmNlZl9jYW1iaW9fbHN0IikubW91c2VvdmVyKCBmdW5jdGlvbigpIHsKCQkkKCJkaXYuY2Vm X2NhbWJpYXIgYS5jZWZfY2FtYmlhcl9zZWxlY2Npb24iKS5hZGRDbGFzcygiY2VmX3BlcnNvX2FjdGl2 YSIpOwoJCSQoInNwYW4uY2VmX2NhbWJpb19sc3Qgc3Bhbi5jaiIpLnNob3coKTsKCQkkKCJzcGFuLmNl Zl9jYW1iaW9fbHN0IHVsLmxzdGNhYiIpLnNob3coKTsKCX0pOwoJLy8gcGVyc28KCSQoImEuY2VmX3Bl cnNvX3NlbGVjY2lvbiIpLmNsaWNrKCBmdW5jdGlvbigpIHsKCQlpZihNUVQudmFyaWFibGVHbG9iYWxQ ZXJzID09IDApIHsKCQkJTVFULnZhcmlhYmxlR2xvYmFsUGVycyA9IDE7CgkJCSQoInNwYW4uY2VmX3Bl cnNvX2xzdCIpLnByZXBlbmQoJEhUTUxjYWphKTsKCQkJJCgic3Bhbi5jZWZfcGVyc29fbHN0IHNwYW4u Y2pjIikucHJlcGVuZCgkKCJzcGFuLmNlZl9wZXJzb19sc3QgPiAubHN0Y2FiIikpOwoJCX0JCgkJCQkJ CQkJCQkJICAKCQkkKCJhLmNlZl9wZXJzb19zZWxlY2Npb24iKS5hZGRDbGFzcygiY2VmX3BlcnNvX2Fj dGl2YSIpOwkJICAKCQkkKCJzcGFuLmNlZl9wZXJzb19sc3Qgc3Bhbi5jaiIpLnNob3coKTsKCQkkKCJz cGFuLmNlZl9wZXJzb19sc3QgdWwubHN0Y2FiIikuc2hvdygpOwoJfSk7CgkkKCJzcGFuLmNlZl9wZXJz b19sc3QiKS5tb3VzZW91dCggZnVuY3Rpb24oKSB7CQoJCSQoImEuY2VmX3BlcnNvX3NlbGVjY2lvbiIp LnJlbW92ZUNsYXNzKCJjZWZfcGVyc29fYWN0aXZhIik7CgkJJCgic3Bhbi5jZWZfcGVyc29fbHN0IHNw YW4uY2oiKS5oaWRlKCk7CgkJJCgic3Bhbi5jZWZfcGVyc29fbHN0IHVsLmxzdGNhYiIpLmhpZGUoKTsK CX0pOwoJJCgic3Bhbi5jZWZfcGVyc29fbHN0IikubW91c2VvdmVyKCBmdW5jdGlvbigpIHsKCQkkKCJh LmNlZl9wZXJzb19zZWxlY2Npb24iKS5hZGRDbGFzcygiY2VmX3BlcnNvX2FjdGl2YSIpOwoJCSQoInNw YW4uY2VmX3BlcnNvX2xzdCBzcGFuLmNqIikuc2hvdygpOwoJCSQoInNwYW4uY2VmX3BlcnNvX2xzdCB1 bC5sc3RjYWIiKS5zaG93KCk7Cgl9KTsKfTsKCgpNUVQubW9kdWxvc2NhYmVjZXJhMiA9IGZ1bmN0aW9u ICgpIHsKCS8qcGFnaW5hIGRlIGluaWNpbyovCgl2YXIgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJB Z2VudC50b0xvd2VyQ2FzZSgpOwoJalF1ZXJ5LmJyb3dzZXIgPSB7Cgl2ZXJzaW9uOiAodXNlckFnZW50 Lm1hdGNoKCAvLisoPzpydnxpdHxyYXxpZXxtZSlbXC86IF0oW1xkLl0rKS8gKSB8fCBbXSlbMV0sCglj aHJvbWU6IC9jaHJvbWUvLnRlc3QoIHVzZXJBZ2VudCApLAoJc2FmYXJpOiAvd2Via2l0Ly50ZXN0KCB1 c2VyQWdlbnQgKSAmJiAhL2Nocm9tZS8udGVzdCggdXNlckFnZW50ICksCglvcGVyYTogL29wZXJhLy50 ZXN0KCB1c2VyQWdlbnQgKSwKCW1zaWU6IC9tc2llLy50ZXN0KCB1c2VyQWdlbnQgKSAmJiAhL29wZXJh Ly50ZXN0KCB1c2VyQWdlbnQgKSwKCW1vemlsbGE6IC9tb3ppbGxhLy50ZXN0KCB1c2VyQWdlbnQgKSAm JiAhLyhjb21wYXRpYmxlfHdlYmtpdCkvLnRlc3QoIHVzZXJBZ2VudCApCgl9OwoJdmFyIHVybGllYWN0 dWFsID0gd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoJy8nKTsKCXVybGllID0gdXJs aWVhY3R1YWxbMl07Cgl1cmxpZWZpbmFsID0gImh0dHA6Ly8iICsgdXJsaWU7CgkkSFRNTGluaWNpbyA9 ICc8bGkgaWQ9InBhZ2luYWluaWNpbyIgY2xhc3M9ImxpIj48YSBocmVmPSIjIiBjbGFzcz0iYSI+UOFn aW5hIGRlIGluaWNpbzwvYT48L2xpPic7CgkkKCJ1bC5zdWJtbl9zZXJ2aWNpb3MiKS5hcHBlbmQoJEhU TUxpbmljaW8pOwoJLy9BLiBzYWZhcmkKCWlmKCAkLmJyb3dzZXIuc2FmYXJpICkgJCgiI3BhZ2luYWlu aWNpbyBhIikuYXR0cih7IGhyZWY6ICIvaW50ZXJhY3Rpdm8vY29tdW4vcGFnaW5hX2luaWNpb19zYWZh cmkuaHRtbCJ9KTsKCS8vQi4gRXhwbG9yZXIKCWlmICgkLmJyb3dzZXIubXNpZSApJCgiI3BhZ2luYWlu aWNpbyBhIikuYXR0cih7IGhyZWY6ICJqYXZhc2NyaXB0OnZvaWQoKTsifSk7JCgiI3BhZ2luYWluaWNp byBhIikuY2xpY2soIGZ1bmN0aW9uKCkgewoJCXRoaXMuc3R5bGUuYmVoYXZpb3I9J3VybCgjZGVmYXVs dCNob21lcGFnZSknO3RoaXMuc2V0SG9tZVBhZ2UodXJsaWVmaW5hbCk7Cgl9KTsKCS8vQy4gRmlyZWZv eAoJaWYgKCQuYnJvd3Nlci5tb3ppbGxhICYmICQuYnJvd3Nlci52ZXJzaW9uID49ICIxLjgiICkgJCgi I3BhZ2luYWluaWNpbyBhIikuYXR0cih7IGhyZWY6ICIvaW50ZXJhY3Rpdm8vY29tdW4vcGFnaW5hX2lu aWNpb19maXJlZm94Lmh0bWwifSk7CgkvL0QuIENocm9tZQoJaWYgKCQuYnJvd3Nlci5jaHJvbWUgKSAk KCIjcGFnaW5haW5pY2lvIGEiKS5hdHRyKHsgaHJlZjogIi9pbnRlcmFjdGl2by9jb211bi9wYWdpbmFf aW5pY2lvX2Nocm9tZS5odG1sIn0pOwoJLy9ELiBPcGVyYQoJaWYgKCQuYnJvd3Nlci5vcGVyYSApICQo IiNwYWdpbmFpbmljaW8gYSIpLmF0dHIoeyBocmVmOiAiL2ludGVyYWN0aXZvL2NvbXVuL3BhZ2luYV9p bmljaW9fb3BlcmEuaHRtbCJ9KTsKCX07CgkKCU1RVC5tb2R1bG9zY2FiZWNlcmE1ID0gZnVuY3Rpb24g KCkgewoJLy9lbCB0aWVtcG8KCSQoImEubWNtZXRfbWFzIikuY2xpY2soIGZ1bmN0aW9uKCkgewoJCQkJ CQkJCQkKCQlpZihNUVQudmFyaWFibGVHbG9iYWxNZXRlbyA9PSAwKSB7CgkJCU1RVC52YXJpYWJsZUds b2JhbE1ldGVvID0gMTsKCQkJJCgiZm9ybS5tY21ldF9sb2NhbGlkYWRlcyIpLmJlZm9yZSgkSFRNTGNh amEpOwoJCQkkKCJkaXYubW9kY2FiX21ldGVvIHNwYW4uY2pjIikucHJlcGVuZCgkKCJmb3JtLm1jbWV0 X2xvY2FsaWRhZGVzIikpOwoJCX0JCgkJJCh0aGlzKS5hdHRyKHsgaHJlZjogImphdmFzY3JpcHQ6dm9p ZCgwKSJ9KTsKCQlpZigkKHRoaXMpLmhhc0NsYXNzKCJtY21ldF9tYXNfcHVsc2FkbyIpKSB7CgkJCSQo dGhpcykucmVtb3ZlQ2xhc3MoIm1jbWV0X21hc19hY3Rpdm8iKTsKCQkJJCh0aGlzKS5yZW1vdmVDbGFz cygibWNtZXRfbWFzX3B1bHNhZG8iKTsKCQkJJCh0aGlzKS5hZGRDbGFzcygibWNtZXRfbWFzX25vX3B1 bHNhZG8iKTsKCQkJJCgiZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIikuaGlkZSgpOwoJCQkkKCJmb3Jt Lm1jbWV0X2xvY2FsaWRhZGVzIikuaGlkZSgpOwoJCX0gZWxzZSB7CgkJCSQodGhpcykucmVtb3ZlQ2xh c3MoIm1jbWV0X21hc19ub19wdWxzYWRvIik7CgkJCSQodGhpcykucmVtb3ZlQ2xhc3MoIm1jbWV0X21h c19hY3Rpdm8iKTsKCQkJJCh0aGlzKS5hZGRDbGFzcygibWNtZXRfbWFzX3B1bHNhZG8iKTsKCQkJJCgi ZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIikuc2hvdygpOwoJCQkkKCJmb3JtLm1jbWV0X2xvY2FsaWRh ZGVzIikuc2hvdygpOwoJCX0KCX0pOwoJCgkkKCJkaXYubW9kY2FiX21ldGVvID4gLmNqIikubW91c2Vv dmVyKCBmdW5jdGlvbigpIHsKCQkkKHRoaXMpLmF0dHIoeyBocmVmOiAiamF2YXNjcmlwdDp2b2lkKDAp In0pOwoJCSQoImEubWNtZXRfbWFzIikuYWRkQ2xhc3MoIm1jbWV0X21hc19hY3Rpdm8iKTsKCQkkKCJk aXYubW9kY2FiX21ldGVvIHNwYW4uY2oiKS5zaG93KCk7CgkJJCgiZm9ybS5tY21ldF9sb2NhbGlkYWRl cyIpLnNob3coKTsKCX0pOwoJJCgiZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIHNlbGVjdCIpLm1vdXNl b3ZlciggZnVuY3Rpb24oKSB7CgkJJCh0aGlzKS5hdHRyKHsgaHJlZjogImphdmFzY3JpcHQ6dm9pZCgw KSJ9KTsKCQkkKCJhLm1jbWV0X21hcyIpLmFkZENsYXNzKCJtY21ldF9tYXNfYWN0aXZvIik7CgkJJCgi ZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIikuc2hvdygpOwoJCSQoImZvcm0ubWNtZXRfbG9jYWxpZGFk ZXMiKS5zaG93KCk7Cgl9KTsKCSQoImRpdi5tb2RjYWJfbWV0ZW8gc3Bhbi5jaiBpbnB1dCIpLm1vdXNl b3ZlciggZnVuY3Rpb24oKSB7CgkJJCh0aGlzKS5hdHRyKHsgaHJlZjogImphdmFzY3JpcHQ6dm9pZCgw KSJ9KTsKCQkkKCJhLm1jbWV0X21hcyIpLmFkZENsYXNzKCJtY21ldF9tYXNfYWN0aXZvIik7CgkJJCgi ZGl2Lm1vZGNhYl9tZXRlbyBzcGFuLmNqIikuc2hvdygpOwoJCSQoImZvcm0ubWNtZXRfbG9jYWxpZGFk ZXMiKS5zaG93KCk7Cgl9KTsKCQp9OwoKTVFULm1vZHVsb0NhYmVjZXJhVmlkZW9jaGF0ID0gZnVuY3Rp b24oKSB7CgkJJCgiZGl2Lm1vZGNhYl92aWRlb2NoYXQiKS5oaWRlKCk7CgkJdmFyIGluZGljZSA9IE1h dGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICQoImRpdi5tb2RjYWJfdmlkZW9jaGF0IikubGVuZ3RoKTsK CQkkKCJkaXYubW9kY2FiX3ZpZGVvY2hhdDplcSgiICsgaW5kaWNlICsgIikiKS5zaG93KCk7CQp9OwoK Ly9BUlRJQ1VMT1MgTEVBRApNUVQuYXJ0aWN1bG9zTGVhZCA9IGZ1bmN0aW9uICgpIHsKCS8vIGFwb3lv cyBzb2JyZSBmb3RvCgkkKCJkaXYubGVhZCAubGluay1hcHAyIikuZWFjaCggZnVuY3Rpb24oKSB7CgkJ dmFyICRvcmlnZW4gPSAkKHRoaXMpOwoJCWlmKCEkb3JpZ2VuLnBhcmVudCgpLnBhcmVudCgpLmZpbmQo ImRpdi5waG90byIpLmhhc0NsYXNzKCJibG9xdWVyZWxhdGl2byIpKSB7CgkJCSRvcmlnZW4ucGFyZW50 KCkucGFyZW50KCkuZmluZCgiZGl2LnBob3RvIikuYWRkQ2xhc3MoImJsb3F1ZXJlbGF0aXZvIik7CgkJ fQoJCWlmKCRvcmlnZW4ucGFyZW50KCkuZmluZCgiZGl2LnBob3RvIikuaHRtbCgpICE9IG51bGwgJiYg JG9yaWdlbi5wYXJlbnQoKS5maW5kKCJkaXYucGhvdG8iKS5odG1sKCkuaW5kZXhPZigkb3JpZ2VuLmh0 bWwoKSkgPT0gLTEpIHsKCQkJJG9yaWdlbi5wYXJlbnQoKS5maW5kKCJkaXYucGhvdG8iKS5hcHBlbmQo JG9yaWdlbik7CgkJfQoJCX0pOyAKCSQoImRpdi5sZWFkIC5saW5rLWFwcDIgLnJlbGF0ZWQtbGluayIp LmFwcGVuZCgnPHNwYW4gY2xhc3M9InJsdHJhbnMiPjwvc3Bhbj4nKTsKCS8vIGFwb3lvcyBlc3BlY2lh bGVzIGNvbiBmb3RvIHBhcmEgIGJvbWJhIEFCCgkkKCJkaXYuYm9tYmEtQUIgZGl2LnBob3RvOmxhc3Qi KS5hZnRlcigkKCIubGluay1hcHAzIikpOwp9OwoKLy9QQVJUSUNJUEFDSU9OCk1RVC56b25hcGFydGlj aXBhY2lvbiA9IGZ1bmN0aW9uICgpIHsKCSQoImRpdi50b2RvcGFydGljaXBhY2lvbiIpLmFwcGVuZCgn PGRpdiBjbGFzcz0idHBfc29tYnJhIj48L2Rpdj4nKTsKLy8JJCgiZGl2Lm1vZFBBUlRoZWFkZXIiKS53 cmFwSW5uZXIoJzxzcGFuIGNsYXNzPSJtb2RwaF9penEiPjxzcGFuIGNsYXNzPSJtb2RwaF9kZXIiPjwv c3Bhbj48L3NwYW4+Jyk7CgkkKCIuenBfaWNvX251ZXZvIikuZWFjaCggZnVuY3Rpb24oKSB7CgkJJCh0 aGlzKS5wYXJlbnQoInNwYW4ubW9kcGhfdGl0IikuYWRkQ2xhc3MoInpwX2ljb24iKTsKCX0pOyAKfTsK Ck1RVC5jbHNjb2RlID0gJzxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4nOwpNUVQuc2VwYXJhY29kZSA9 ICc8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+JzsKTVFULmNscyA9IGZ1bmN0aW9uICgpIHsKCS8vIEFq dXN0ZSBkZSBibG9xdWVzCgkkKCJkaXYjcHVibGljaWRhZGVzX3RvcCIpLmFkZENsYXNzKCdjbGVhcmZp eCcpOwkKCS8vJCgiZGl2I3RvZG9wb3J0YWwiKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCSQoImRpdi56 b25hQUJDIikuYWRkQ2xhc3MoJ2NsZWFyZml4Jyk7CgkkKCJkaXYuY29udGVuaWRvQUJDIikuYWRkQ2xh c3MoJ2NsZWFyZml4Jyk7CgkkKCJkaXYuY29udGVuaWRvQUIiKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsK CSQoImRpdi5jb2xBQiIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2LnBpZSIpLmFkZENsYXNz KCdjbGVhcmZpeCcpOwoJJCgiZGl2LnBpZUlOIikuYWRkQ2xhc3MoJ2NsZWFyZml4Jyk7CgkKCSQoImRp di56b25hUEFSVElDSVBBQ0lPTiIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2LnRvZG9wYXJ0 aWNpcGFjaW9uIikuYWRkQ2xhc3MoJ2NsZWFyZml4Jyk7CgkkKCJkaXYuWlBfY29udGVuaWRvIikuYWRk Q2xhc3MoJ2NsZWFyZml4Jyk7CgkkKCJkaXYuWlBDIikuYWRkQ2xhc3MoJ2NsZWFyZml4Jyk7CgkkKCJk aXYuWlBDX2NvbnRlbmlkb0FCQyIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2Lm1vZFBBUlQi KS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCSQoImRpdi5tb2RQQVJUaGVhZGVyIikuYWRkQ2xhc3MoJ2Ns ZWFyZml4Jyk7CgkkKCJkaXYubW9kUEFSVGNvbnRlbnQiKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCSQo ImRpdi5tb2R1bG8tY29uc3VsdG9yaW8iKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCSQoImRpdi5tb2R1 bG9wYXJ0aWNpcGFjaW9uMiIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJCgkkKCJkaXYuYXJ0aWN1bG8g ZGl2LnJlbGF0ZWQtbGluayIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2LmJvbWJhLUFCIGRp di5saW5rLWFwcDMgZGl2LnJlbGF0ZWQtbGluayIpLmFkZENsYXNzKCdjbGVhcmZpeCcpOwoJJCgiZGl2 LnVuYS12ZXotYW5vIGRpdi5saW5rLWFwcDEiKS5hZGRDbGFzcygnY2xlYXJmaXgnKTsKCQkKfTsKCk1R VC5yYW5kb21YVG9ZID0gZnVuY3Rpb24gKG1pblZhbCxtYXhWYWwsZmxvYXRWYWwpIHsKICB2YXIgcmFu ZFZhbCA9IG1pblZhbCsoTWF0aC5yYW5kb20oKSoobWF4VmFsLW1pblZhbCkpOwogIHJldHVybiB0eXBl b2YgZmxvYXRWYWw9PSd1bmRlZmluZWQnP01hdGgucm91bmQocmFuZFZhbCk6cmFuZFZhbC50b0ZpeGVk KGZsb2F0VmFsKTsKfTsKCk1RVC5jYW1iaWFyRm90b25vdGljaWEgPSBmdW5jdGlvbiAobW9kdWxvLCBh Y3R1YWwsIG51ZXZvKSB7CgkKCSQoJyMnICsgbW9kdWxvICsgJy0nICsgbnVldm8pLmZpbmQoJ2ltZ1ty ZWwqPSIvIl0nKS5hdHRyKCdzcmMnLCAkKCcjJyArIG1vZHVsbyArICctJyArIG51ZXZvKS5maW5kKCdp bWdbcmVsKj0iLyJdJykuYXR0cigncmVsJykpOwoKCSQoJyMnICsgbW9kdWxvICsgJy0nICsgYWN0dWFs KS5oaWRlKCk7CgkkKCcjJyArIG1vZHVsbyArICctJyArIG51ZXZvKS5zaG93KCk7CgkKCSQoJy4nICsg bW9kdWxvICsgJyAubmF2ZWdhY2lvbl9nYWxlcmlhIC5uZ19udW1lcm9zIGE6ZXEoJyArIChhY3R1YWwg LSAxKSArICcpJykucmVtb3ZlQ2xhc3MoJ25nX251bWVyb19hY3Rpdm8nKTsKCSQoJy4nICsgbW9kdWxv ICsgJyAubmF2ZWdhY2lvbl9nYWxlcmlhIC5uZ19udW1lcm9zIGE6ZXEoJyArIChudWV2byAtIDEpICsg JyknKS5hZGRDbGFzcygnbmdfbnVtZXJvX2FjdGl2bycpOwoJCn07CgpNUVQucGFnaW5hY2lvbiA9IGZ1 bmN0aW9uIChtb2R1bG8sIGFsZWF0b3JpbykgewoJCgl2YXIgbnVtX2ZvdG9ub3RpY2lhcyA9ICQoJy4n ICsgbW9kdWxvICsgJyAubmdfbnVtZXJvcyBhJykubGVuZ3RoOwoKCWlmKG51bV9mb3Rvbm90aWNpYXMg PT0gJycpIHsKCQludW1fZm90b25vdGljaWFzID0gMTsKCX0KCQoJCgl2YXIgYWN0dWFsID0gYWxlYXRv cmlvID8gTVFULnJhbmRvbVhUb1koMSwgbnVtX2ZvdG9ub3RpY2lhcykgOiAxOwoKCWlmKG51bV9mb3Rv bm90aWNpYXMgPT0gMSkgewoJCWFjdHVhbCA9IDE7CgkJYWxlYXRvcmlvID0gZmFsc2U7Cgl9CgoKCWlm KCQoJyMnICsgbW9kdWxvICsgJy0nICsgYWN0dWFsKS5maW5kKCdpbWdbcmVsKj0iLyJdJykuYXR0cign cmVsJykpIHsKCQkkKCcjJyArIG1vZHVsbyArICctJyArIGFjdHVhbCkuZmluZCgnaW1nW3JlbCo9Ii8i XScpLmF0dHIoJ3NyYycsICQoJyMnICsgbW9kdWxvICsgJy0nICsgYWN0dWFsKS5maW5kKCdpbWdbcmVs Kj0iLyJdJykuYXR0cigncmVsJykpOwoJfSBlbHNlIHsKCQlpZihhY3R1YWwgPT0gMSAmJiAkKCcjJyAr IG1vZHVsbyArICctJyArIGFjdHVhbCkuZmluZCgnaW1nW3JlbCo9Ii8iXScpLmNzcygnZGlzcGxheScp ID09ICdub25lJykgewoJCQkkKCcjJyArIG1vZHVsbyArICctJyArIGFjdHVhbCkuZmluZCgnaW1nW3Jl bCo9Ii8iXScpLmNzcygnZGlzcGxheScsICdibG9jaycpOwoJCX0KCX0KCQoJJCgnLicgKyBtb2R1bG8g KyAnIC5uYXZlZ2FjaW9uX2dhbGVyaWEgLm5nX251bWVyb3MgYTplcSgnICsgKGFjdHVhbCAtIDEpICsg JyknKS5hZGRDbGFzcygnbmdfbnVtZXJvX2FjdGl2bycpOwoJCgoJLy8gT2N1bHRhbW9zIHRvZGFzIG1l bm9zIGxhIGFjdHVhbAoJCgkkKCdbaWQqPScgKyBtb2R1bG8gKyAnLV0nKS5lYWNoKGZ1bmN0aW9uIChp KSB7CgkJCWlmIChpICE9IChhY3R1YWwgLSAxKSkgewoJCQkJJCh0aGlzKS5oaWRlKCk7CgkJCX0gCgkJ fQoJKTsKCQoJdmFyIHVybEdhbGVyaWEgPSAkKCcuJyArIG1vZHVsbyArICcgLnBob3RvJykuZmluZCgn YScpLmF0dHIoJ2hyZWYnKTsKCgkvLyBOdW1lcm9zCgkKCSQoJy4nICsgbW9kdWxvICsgJyAubmF2ZWdh Y2lvbl9nYWxlcmlhIC5uZ19udW1lcm9zIGEnKS5lYWNoKGZ1bmN0aW9uKCkgewoJCQkkKHRoaXMpLmF0 dHIoJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lkKDApJyk7CgkJCQoJCQl2YXIgcG9zaWNpb24gPSAkKHRo aXMpLnRleHQoKTsKCQkJCgkJCSQodGhpcykuY2xpY2soZnVuY3Rpb24oKSB7CgoJCQkJCU1RVC5jYW1i aWFyRm90b25vdGljaWEobW9kdWxvLCBhY3R1YWwsIHBvc2ljaW9uKTsKCQkJCQkKCQkJCQlhY3R1YWwg PSBwb3NpY2lvbjsKCQkJCX0KCQkJKTsKCQl9CgkpOwoJCgkKCS8vIFNpZ3VpZW50ZQoJJCgnLicgKyBt b2R1bG8gKyAnIC5uYXZlZ2FjaW9uX2dhbGVyaWEgW2NsYXNzPSJuZ2FzIG5nYXNfc2lnIl0nKS5hdHRy KCdocmVmJywgJ2phdmFzY3JpcHQ6dm9pZCgwKScpOwoJJCgnLicgKyBtb2R1bG8gKyAnIC5uYXZlZ2Fj aW9uX2dhbGVyaWEgW2NsYXNzPSJuZ2FzIG5nYXNfc2lnIl0nKS5jbGljayhmdW5jdGlvbigpewoJCQkv L3ZhciBzaWd1aWVudGUgPSAoKGFjdHVhbCArIDEpID4gbnVtX2ZvdG9ub3RpY2lhcykgPyAxIDogKGFj dHVhbCArIDEpOwoJCQl2YXIgc2lndWllbnRlOwoJCQkkKCcuJyArIG1vZHVsbykuZmluZCgnLm5nX251 bWVyb3MnKS5maW5kKCdhJykuZWFjaChmdW5jdGlvbihpbmRleCl7CgkJCQlpZigkKHRoaXMpLmhhc0Ns YXNzKCduZ19udW1lcm9fYWN0aXZvJykpIHsKCQkJCQl2YXIgaW5kID0gcGFyc2VJbnQoaW5kZXgpOwoJ CQkJCWluZCsrOwoJCQkJCXNpZ3VpZW50ZSA9IGluZCArIDE7CgkJCQl9CgkJCX0pOwoJCQlpZihzaWd1 aWVudGUgPiBudW1fZm90b25vdGljaWFzKSB7CgkJCQlzaWd1aWVudGUgPSAxOwoJCQl9CgkJCQoJCQkK CQkJLyppZih1cmxHYWxlcmlhICE9IG51bGwgJiYgdXJsR2FsZXJpYS5pbmRleE9mKCdodHRwOi8vJykg Pj0gMCAmJiBzaWd1aWVudGUgPT0gMSkgewoJCQkJZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHVybEdh bGVyaWE7CgkJCQlyZXR1cm47CgkJCX0gZWxzZSB7CgkJCQlNUVQuY2FtYmlhckZvdG9ub3RpY2lhKG1v ZHVsbywgYWN0dWFsLCBzaWd1aWVudGUpOwoJCQl9Ki8KCQkJTVFULmNhbWJpYXJGb3Rvbm90aWNpYSht b2R1bG8sIGFjdHVhbCwgc2lndWllbnRlKTsJCQkKCQkJYWN0dWFsID0gc2lndWllbnRlOwoJCX0KCSk7 CgkKCS8vIEFudGVyaW9yCgkKCSQoJy4nICsgbW9kdWxvICsgJyAubmF2ZWdhY2lvbl9nYWxlcmlhIFtj bGFzcz0ibmdhcyBuZ2FzX2FudCJdJykuYXR0cignaHJlZicsICdqYXZhc2NyaXB0OnZvaWQoMCknKTsK CSQoJy4nICsgbW9kdWxvICsgJyAubmF2ZWdhY2lvbl9nYWxlcmlhIFtjbGFzcz0ibmdhcyBuZ2FzX2Fu dCJdJykuY2xpY2soZnVuY3Rpb24oKXsKCQkJCgkJCXZhciBhbnRlcmlvciA9ICgoYWN0dWFsIC0gMSkg PCAxKSA/IG51bV9mb3Rvbm90aWNpYXMgOiAoYWN0dWFsIC0gMSk7CgkJCQoJCQlNUVQuY2FtYmlhckZv dG9ub3RpY2lhKG1vZHVsbywgYWN0dWFsLCBhbnRlcmlvcik7CgkJCQoJCQlhY3R1YWwgPSBhbnRlcmlv cjsKCQl9CgkpOwoKCS8vIEZvdG8KCglpZihudW1fZm90b25vdGljaWFzID4gMSkgewoJCWlmKCQoJy4n ICsgbW9kdWxvICsgJyAucGhvdG8nKS5maW5kKCdhJykuZmluZCgiaW1nIikgJiYgJCgnLicgKyBtb2R1 bG8gKyAnIC5waG90bycpLmZpbmQoJ2EnKS5hdHRyKCdocmVmJykuaW5kZXhPZignLycpID09IC0xKSB7 CgkJCSQoJy4nICsgbW9kdWxvICsgJyAucGhvdG8nKS5maW5kKCdhJykuYXR0cignaHJlZicsICdqYXZh c2NyaXB0OnZvaWQoMCknKTsKCQkJJCgnLicgKyBtb2R1bG8gKyAnIC5waG90bycpLmZpbmQoJ2EnKS5j bGljayhmdW5jdGlvbigpewoJCQkJCQoJCQkJCXZhciBzaWd1aWVudGUgPSAoKGFjdHVhbCArIDEpID4g bnVtX2ZvdG9ub3RpY2lhcykgPyAxIDogKGFjdHVhbCArIDEpOwoJCQkJCWlmKHVybEdhbGVyaWEgIT0g bnVsbCAmJiB1cmxHYWxlcmlhLmluZGV4T2YoJ2h0dHA6Ly8nKSA+PSAwICYmIHNpZ3VpZW50ZSA9PSAx KSB7CgkJCQkJCWRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB1cmxHYWxlcmlhOwoJCQkJCQlyZXR1cm47 CgkJCQkJfSBlbHNlIHsKCQkJCQkJTVFULmNhbWJpYXJGb3Rvbm90aWNpYShtb2R1bG8sIGFjdHVhbCwg c2lndWllbnRlKTsKCQkJCQl9CgkJCQkJCgkJCQkJYWN0dWFsID0gc2lndWllbnRlOwoJCQkJfQoJCQkp OwoJCX0KCX0KfTsKCk1RVC5nYWxlcmlhSCA9IGZ1bmN0aW9uICgpIHsKCQoJJChkb2N1bWVudCkucmVh ZHkoZnVuY3Rpb24oKSB7CgoJCQludW1fZm90b25vdGljaWFzID0gMDsKCQkJCgkJCSQoIi5mb3RvZ2Fs ZXJpYXNIIC5waG90byIpLmVhY2goIGZ1bmN0aW9uKGluZGljZSkgewoJCQkJJCh0aGlzKS5wcmVwZW5k KCQoJzxzcGFuIGNsYXNzPSJmZ0hsIj48L3NwYW4+PHNwYW4gY2xhc3M9ImZnSHIiPjwvc3Bhbj4nKSk7 CgkJCQkkKHRoaXMpLmZpbmQoIi5mZ0hsIikuaGVpZ2h0KCQodGhpcykuaGVpZ2h0KCkpOwoJCQkJJCh0 aGlzKS5maW5kKCIuZmdIciIpLmhlaWdodCgkKHRoaXMpLmhlaWdodCgpKTsKCQkJCSQodGhpcykucGFy ZW50KCkuZmluZCgiLm5hdl9mZ0hfYW50IikuaGVpZ2h0KCQoIi5mb3RvZ2FsZXJpYXNIIC5waG90byIp LmhlaWdodCgpKTsKCQkJCSQodGhpcykucGFyZW50KCkuZmluZCgiLm5hdl9mZ0hfc2lnIikuaGVpZ2h0 KCQoIi5mb3RvZ2FsZXJpYXNIIC5waG90byIpLmhlaWdodCgpKTsKCQkJCWlmKE1RVC5mb3RvQXJ0aWN1 bG9BY3R1YWwgPT0gJycgJiYgKCQodGhpcykuaXMoJzpoaWRkZW4nKSB8fCAhJCh0aGlzKS5maW5kKCJp bWciKS5hdHRyKCdyZWwnKSkpIHsKCQkJCQlkYXRvc19hY3R1YWwgPSAkKHRoaXMpLmF0dHIoJ2lkJyku c3BsaXQoJy0nKTsKCQkJCQlNUVQuZm90b0FydGljdWxvQWN0dWFsID0gZGF0b3NfYWN0dWFsWzFdOwoJ CQkJfQoKCQkJCWlmKGluZGljZSA+IDApIHsKCQkJCQkkKHRoaXMpLmhpZGUoKTsKCQkJCQlyZXR1cm4g ZmFsc2U7CgkJCQl9CgkJCX0pOyAKCgkJCSQoIi5mb3RvZ2FsZXJpYXNIIC5waG90byIpLmVhY2goIGZ1 bmN0aW9uKGluZGljZSkgewoJCQkJbnVtX2ZvdG9ub3RpY2lhcysrOwoJCQkJaWYoaW5kaWNlID4gMCkg ewoJCQkJCSQodGhpcykuaGlkZSgpOwoJCQkJfQoJCQl9KTsKCQkJCgkJCS8vIFNpZ3VpZW50ZQoJCQkk KCcuZm90b2dhbGVyaWFzSCAubmF2X2ZnSF9zaWcnKS5hdHRyKCdocmVmJywgJ2phdmFzY3JpcHQ6dm9p ZCgwKScpOwoJCQkkKCcuZm90b2dhbGVyaWFzSCAubmF2X2ZnSF9zaWcnKS5jbGljayhmdW5jdGlvbigp IHsKCQkJCQl2YXIgc2lndWllbnRlID0gTVFULmZvdG9BcnRpY3Vsb0FjdHVhbCA+PSBudW1fZm90b25v dGljaWFzID8gMSA6IHBhcnNlSW50KE1RVC5mb3RvQXJ0aWN1bG9BY3R1YWwpICsgMTsKCQkJCQkKCQkJ CQlNUVQuY2FtYmlhckZvdG9ub3RpY2lhKCdmb3RvJywgTVFULmZvdG9BcnRpY3Vsb0FjdHVhbCwgc2ln dWllbnRlKTsKCQkJCQkKCQkJCQkkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKCQkJCQkJJCh0 aGlzKS5wYXJlbnQoKS5maW5kKCIubmF2X2ZnSF9hbnQiKS5oZWlnaHQoJCgiI2ZvdG8tIiArIHNpZ3Vp ZW50ZSkuaGVpZ2h0KCkpOwoJCQkJCQkkKHRoaXMpLnBhcmVudCgpLmZpbmQoIi5uYXZfZmdIX3NpZyIp LmhlaWdodCgkKCIjZm90by0iICsgc2lndWllbnRlKS5oZWlnaHQoKSk7CgkJCQkJfSk7CgkJCQkJTVFU LmZvdG9BcnRpY3Vsb0FjdHVhbCA9IHNpZ3VpZW50ZTsKCQkJCX0KCQkJKTsKCQkJCgkJCS8vIEFudGVy aW9yCgkJCQkkKCcuZm90b2dhbGVyaWFzSCAubmF2X2ZnSF9hbnQnKS5hdHRyKCdocmVmJywgJ2phdmFz Y3JpcHQ6dm9pZCgwKScpOwoJCQkJJCgnLmZvdG9nYWxlcmlhc0ggLm5hdl9mZ0hfYW50JykuY2xpY2so ZnVuY3Rpb24oKXsKCQkJCQl2YXIgYW50ZXJpb3IgPSBNUVQuZm90b0FydGljdWxvQWN0dWFsIDw9IDEg PyBudW1fZm90b25vdGljaWFzIDogcGFyc2VJbnQoTVFULmZvdG9BcnRpY3Vsb0FjdHVhbCkgLSAxOwoK CQkJCQlNUVQuY2FtYmlhckZvdG9ub3RpY2lhKCdmb3RvJywgTVFULmZvdG9BcnRpY3Vsb0FjdHVhbCwg YW50ZXJpb3IpOwoJCQkJCSQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgewoJCQkJCQkkKHRoaXMp LnBhcmVudCgpLmZpbmQoIi5uYXZfZmdIX2FudCIpLmhlaWdodCgkKCIjZm90by0iICsgYW50ZXJpb3Ip LmhlaWdodCgpKTsKCQkJCQkJJCh0aGlzKS5wYXJlbnQoKS5maW5kKCIubmF2X2ZnSF9zaWciKS5oZWln aHQoJCgiI2ZvdG8tIiArIGFudGVyaW9yKS5oZWlnaHQoKSk7CgkJCQkJfSk7CgkJCQkJTVFULmZvdG9B cnRpY3Vsb0FjdHVhbCA9IGFudGVyaW9yOwoJCQkJfQoJCQkpOwoJCX0KCSk7CgkKfTsKCgpNUVQubW9k dWxvc2NhYmVjZXJhNCA9IGZ1bmN0aW9uICgpIHsKCS8vYnVzY2Fkb3IKCSQoImRpdi5tZW51bmF2Iiku YXBwZW5kKCQoIi5jYWJfYnVzY2FyIikpOwoJJCgnLmNhYl9pbnB1dHh0Jykua2V5dXAoZnVuY3Rpb24o ZSkge2lmKGUua2V5Q29kZSA9PSAxMykge2J1c3F1ZWRhKCk7fX0pOwoJJCgiZGl2LmNhYmVjZXJhIiku YXBwZW5kKCQoImRpdi5tb2R1bG9fY2FiZWNlcmEiKSk7CgkkKCJkaXYuY2FiZWNlcmEiKS5hcHBlbmQo JCgiZGl2Lm1vZGNhYl90diIpKTsKCSQoImRpdi5jYWJlY2VyYSIpLmFwcGVuZCgkKCJkaXYubW9kY2Fi X21ldGVvIikpOwoJTVFULm1vZHVsb3NjYWJlY2VyYTEoKTsKCU1RVC5tb2R1bG9zY2FiZWNlcmE1KCk7 CglNUVQuem9uYXBhcnRpY2lwYWNpb24oKTsKCU1RVC5tb2R1bG9zTG9tYXMoKTsKCU1RVC5hcnRpY3Vs b3NMZWFkKCk7CglNUVQuYWJyaXJGb3JtdWxhcmlvRW52aWFyKCk7CglNUVQuY2VycmFyRm9ybXVsYXJp b0VudmlhcigpOwoJTVFULmFicmlyRm9ybXVsYXJpb1JlY3RpZmljYXIoKTsKCU1RVC5jZXJyYXJGb3Jt dWxhcmlvUmVjdGlmaWNhcigpOwoJTVFULnpvbmFwYXJ0aWNpcGFjaW9uKCk7CglNUVQuY2xzKCk7Cn07 CgokKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCkgewoJLy9hbGVydCgkKCJib2R5Iikud2lkdGgoKSk7 Cgl2YXIgJGNhbGN1bG9hbmNob2RlbGFwYWdpbmEgPSAkKCJib2R5Iikud2lkdGgoKSAlIDI7CgkvL2Fs ZXJ0KCRjYWxjdWxvYW5jaG9kZWxhcGFnaW5hKTsKCWlmKCRjYWxjdWxvYW5jaG9kZWxhcGFnaW5hID09 IDApIHsKCQkvL2FsZXJ0KCJwYXIiKTsKCQkkKCJib2R5IikucmVtb3ZlQ2xhc3MoImJvZHlpbXBhciIp OwkKCQkkKCJib2R5IikuYWRkQ2xhc3MoImJvZHlwYXIiKTsJCQoJfSBlbHNlIHsKCQkvL2FsZXJ0KCJp bXBhciIpOwoJCSQoImJvZHkiKS5yZW1vdmVDbGFzcygiYm9keXBhciIpOwoJCSQoImJvZHkiKS5hZGRD bGFzcygiYm9keWltcGFyIik7Cgl9Cn0pOwoKZnVuY3Rpb24gTU1fb3BlbkJyV2luZG93KHRoZVVSTCx3 aW5OYW1lLGZlYXR1cmVzKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubmFtZT0ncHJpbmNpcGFsJzsK ICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHRoZVVSTCx3aW5OYW1lLGZlYXR1cmVzKTsKICAgICAg ICB9Cgo= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.herramientas.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoqKioqKioqIEZPVE8gTk9USUNJQSAqKioqKioqKi8KCgl2YXIgZm90b3NQYWcgPSA1OyAvLyBO+m1l cm8gZGUgZm90b3MgcXVlIHNhbGUgZW4gbGEgcGFnaW5hY2nzbi4KCWZ1bmN0aW9uIGZvdG9Ob3RpY2lh KGlkLG51bSxudW1Ub3RhbCkgewoJCWZvdG9zTiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l KCdkaXYnKTsKCQlmb3RvT24gPSAxOwoJCWZvdG9FeHAgPSBuZXcgUmVnRXhwKGlkICsgIi0iKTsKCQlm b3IoaT0wO2k8Zm90b3NOLmxlbmd0aDtpKyspIHsKCQkJaWYoZm90b3NOW2ldLmlkLmluZGV4T2YoaWQp ID09IDApIHsKCQkJCWZvdG9PbiA9IHBhcnNlSW50KGZvdG9zTltpXS5pZC5yZXBsYWNlKGZvdG9FeHAs ICIiKSk7CgkJCQlpZihmb3Rvc05baV0uc3R5bGUuZGlzcGxheSA9PSAiIikgewoJCQkJCWlmKG51bSA9 PSAnKycpIG51bSA9IGZvdG9PbiArIDE7CgkJCQkJaWYobnVtID09ICctJykgbnVtID0gZm90b09uIC0g MTsKCQkJCX0KCQkJCWZvdG9zTltpXS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCQl9CgkJfQoJCWlm KG51bSA9PSAwKSBudW0gPSBudW1Ub3RhbDsKCQlpZigobnVtID4gbnVtVG90YWwpIHx8IGlzTmFOKG51 bSkpIG51bSA9IDE7CgkJaWYoZm90b04gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCArICctJyAr IG51bSkpIGZvdG9OLnN0eWxlLmRpc3BsYXkgPSAiIjsKCQlpbmRpY2VQYWcgPSBNYXRoLmNlaWwobnVt L2ZvdG9zUGFnKSAtIDE7CgkJZm9yKGk9MTtpPD1mb3Rvc1BhZztpKyspIHsKCQkJaWYocGFnID0gZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQgKyAnLXBhZy0nICsgaSkpIHsKCQkJCXBhZy5jbGFzc05hbWUg PSAiIjsKCQkJCXBhZ051bSA9IGkgKyAoaW5kaWNlUGFnICogZm90b3NQYWcpOwoJCQkJaWYocGFnTnVt ID4gbnVtVG90YWwpIHsKCQkJCQlwYWcuaW5uZXJIVE1MID0gIiZuYnNwOyZuYnNwOyI7CgkJCQkJcGFn LmhyZWYgPSAiIyI7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQlwYWcuaW5uZXJIVE1MID0gaSArIChpbmRp Y2VQYWcgKiBmb3Rvc1BhZyk7CgkJCQkJcGFnLmhyZWYgPSAiSmF2YVNjcmlwdDpmb3RvTm90aWNpYSgn IiArIGlkICsgIicsIiArIHBhZ051bSArICIsIiArIG51bVRvdGFsICsgIik7IjsKCQkJCX0KCQkJfQoJ CX0KCQludW1QYWcgPSAoKG51bSAtIDEpICUgZm90b3NQYWcpICsgMTsKCQlpZihwYWcgPSBkb2N1bWVu dC5nZXRFbGVtZW50QnlJZChpZCArICctcGFnLScgKyBudW1QYWcpKSBwYWcuY2xhc3NOYW1lID0gImFj dGl2byI7Cgl9CgoJLyoqKioqKioqIEZJTiBGT1RPIE5PVElDSUEgKioqKioqKiovCgkvKioqKioqKiog UkFORE9NICoqKioqKioqLwoKZnVuY3Rpb24gYWxlYXRvcmlvKGluZmVyaW9yLHN1cGVyaW9yKXsKbnVt UG9zaWJpbGlkYWRlcyA9IHN1cGVyaW9yIC0gaW5mZXJpb3I7CnJhbmQgPSBNYXRoLnJhbmRvbSgpICog bnVtUG9zaWJpbGlkYWRlczsKcmFuZCA9IE1hdGgucm91bmQocmFuZCk7CnJldHVybiBwYXJzZUludChp bmZlcmlvcikgKyByYW5kOwp9CgovKioqKioqKiogRklOIFJBTkRPTSAqKioqKioqKi8KCi8qKioqKioq KiBHT09HTEUgICoqKioqKioqLwoJZnVuY3Rpb24gY3MoKSB7d2luZG93LnN0YXR1cz0nJ307CglmdW5j dGlvbiBzcyh1cmxWaXNpYmxlKXt3aW5kb3cuc3RhdHVzPXVybFZpc2libGU7cmV0dXJuIHRydWU7fTsK CQoJZnVuY3Rpb24gZ29vZ2xlX2FkX3JlcXVlc3RfZG9uZShnb29nbGVfYWRzKSB7CgkJdmFyIGk7CgkJ dmFyIHB1YmxpID0nJzsKCQlhY2NpcCA9ICJvZmYiOwoJCWlmKGdvb2dsZV9hZHMubGVuZ3RoID4gMCkg ewoJCQlwdWJsaSs9JzxkaXYgY2xhc3M9ImFkZHMiPic7CgkJCXB1YmxpKz0nPGRpdiBjbGFzcz0iZXN0 aWxvX3RpdCI+QW51bmNpb3MgPHN0cm9uZz5Hb29nbGU8L3N0cm9uZz48L2Rpdj4nOwoJCQlwdWJsaSs9 Jzx0YWJsZSBjbGFzcz0iYWRkc2NvbnRlbnQiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+ JzsKCQkJZm9yKGkgPSAwOyBpIDwgZ29vZ2xlX2Fkcy5sZW5ndGg7ICsraSkgewoJCQkJcHVibGkrPSc8 dHI+JzsKCQkJCXB1YmxpKz0nPHRkIGNsYXNzPSJlc3RpbG9fdHh0Ij4nOwoJCQkJcHVibGkrPSc8YSBo cmVmPVwnJysgZ29vZ2xlX2Fkc1tpXS51cmwgKyAnXCcgdGFyZ2V0PSJfYmxhbmsiIG9uTW91c2VPdmVy PSJyZXR1cm4gc3MoXCcnICsgZ29vZ2xlX2Fkc1tpXS52aXNpYmxlX3VybCArICdcJykiIG9uTW91c2VP dXQ9ImNzKCkiPic7CgoJCQkJcHVibGkrPSc8c3BhbiBjbGFzcz0iZXN0aWxvX2xuayI+JzsKCQkJCXB1 YmxpKz1nb29nbGVfYWRzW2ldLmxpbmUxOwoJCQkJcHVibGkrPSc8L3NwYW4+JzsKCQkJCXB1YmxpKz0n PHNwYW4gY2xhc3M9ImVzdGlsb19kZXNjcmlwY2lvbiI+JzsKCQkJCXB1YmxpKz1nb29nbGVfYWRzW2ld LmxpbmUyICsgJyZuYnNwOyc7CgkJCQlwdWJsaSs9Z29vZ2xlX2Fkc1tpXS5saW5lMyArICcmbmJzcDsn OwoJCQkJcHVibGkrPSc8L3NwYW4+JzsKCQkJCXB1YmxpKz0nPHNwYW4gY2xhc3M9ImVzdGlsb191cmwi Pic7CgkJCQlwdWJsaSs9Z29vZ2xlX2Fkc1tpXS52aXNpYmxlX3VybDsKCQkJCXB1YmxpKz0nPC9zcGFu PjwvYT48L3RkPjwvdHI+JzsKCQkJfQoJCQlwdWJsaSs9JzwvdGFibGU+PC9kaXY+JzsKCQkJaWYoY29u dE5veHRydW0gPSB3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInB1YmxpMV9ub3h0cnVtIikp CgkJCQljb250Tm94dHJ1bS5pbm5lckhUTUwgPSBwdWJsaTsKCQl9Cgl9Ci8qKioqKioqKiBHT09HTEUg ICoqKioqKioqLwkKCQogICAgICAgLyoqKioqKioqIE1PRFVMT1MgTUVUSE9ERSAqKioqKioqKi8KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBmdW5jdGlvbiBjYW5hbGVzSG95KGlk LG51bSxjb2xvcikgewogICAgICAgICAgICAgICAgY29sb3JQZXN0YW5hID0gIiIKICAgICAgICAgICAg ICAgIGlmKCFpc05hTihjb2xvcikpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yUGVzdGFuYSA9 ICIgcGVzdGNhbmFsLSIgKyBjb2xvcjsKICAgICAgICAgICAgICAgIHBlc3RhbmFPbiA9IGlkICsgIi1w ZXN0YW5hLSIgKyBudW07CiAgICAgICAgICAgICAgICBjb250ZW5pZG9PbiA9IGlkICsgIi1jb250ZW5p ZG8tIiArIG51bTsKICAgICAgICAgICAgICAgIGJvdHRvbU9uID0gaWQgKyAiLWJvdHRvbS0iICsgbnVt OwogICAgICAgICAgICAgICAgY29udGVuaWRvc04gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt ZSgnZGl2Jyk7CiAgICAgICAgICAgICAgICBmb3IoaT0wO2k8Y29udGVuaWRvc04ubGVuZ3RoO2krKykg ewogICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW5pZG9zTltpXS5pZC5pbmRleE9mKGlkKSA9 PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKGNvbnRlbmlkb3NOW2ldLmlk ID09IGNvbnRlbmlkb09uKSB8fCAoY29udGVuaWRvc05baV0uaWQgPT0gYm90dG9tT24pKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVuaWRvc05baV0uc3R5bGUuZGlzcGxh eSA9ICIiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbmlkb3NOW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9u ZSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgIHBlc3RhbmFzTiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyk7CiAgICAgICAg ICAgICAgICBmb3IoaT0wO2k8cGVzdGFuYXNOLmxlbmd0aDtpKyspIHsKICAgICAgICAgICAgICAgICAg ICAgICAgaWYocGVzdGFuYXNOW2ldLmlkLmluZGV4T2YoaWQpID09IDApIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZihwZXN0YW5hc05baV0uaWQgPT0gcGVzdGFuYU9uKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVzdGFuYXNOW2ldLmNsYXNzTmFtZSA9ICJhY3Rp dm8iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBlc3RhbmFzTltpXS5jbGFzc05hbWUgPSAiIjsKICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYob2JqQ29s b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29sb3ItJyArIGlkKSkKICAgICAgICAgICAgICAg ICAgICAgICAgb2JqQ29sb3IuY2xhc3NOYW1lID0gIm1vZHVsb2NhbmFsZXNob3kiICsgY29sb3JQZXN0 YW5hOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gY2FuYWxlc0NsYXNpKGlkLGNhbmFsKSB7CiAg ICAgICAgICAgICAgICBjb250ZW5pZG9zTiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdk aXYnKTsKICAgICAgICAgICAgICAgIGZvcihpPTA7aTxjb250ZW5pZG9zTi5sZW5ndGg7aSsrKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbnRlbmlkb3NOW2ldLmlkLmluZGV4T2YoaWQpID09IDAp IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW5pZG9zTltpXS5pZCA9PSBp ZCArICItIiArIGNhbmFsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGVuaWRvc05baV0uc3R5bGUuZGlzcGxheSA9ICIiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbmlkb3NO W2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHBlc3RhbmFzTiA9IGRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKCdhJyk7CiAgICAgICAgICAgICAgICBmb3IoaT0wO2k8cGVzdGFuYXNOLmxlbmd0aDtp KyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYocGVzdGFuYXNOW2ldLmlkLmluZGV4T2YoaWQp ID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihwZXN0YW5hc05baV0uaWQg PT0gaWQgKyAiLXBlc3RhbmEtIiArIGNhbmFsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGVzdGFuYXNOW2ldLmNsYXNzTmFtZSA9ICJhY3Rpdm8gIiArIGNhbmFsOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBlc3RhbmFzTltpXS5jbGFzc05hbWUgPSAiIjsKICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gY2FuYWxlc0lu Zm8oaWQsbnVtLG51bVRvdGFsKSB7CiAgICAgICAgICAgICAgICBjb250ZW5pZG9PbiA9IDE7CiAgICAg ICAgICAgICAgICBjb250ZW5pZG9FeHAgPSBuZXcgUmVnRXhwKGlkICsgIi0oY29udGVuaWRvfGZvdG9n cmFmaWEpLSIpOwogICAgICAgICAgICAgICAgY29udGVuaWRvc04gPSBkb2N1bWVudC5nZXRFbGVtZW50 c0J5VGFnTmFtZSgnZGl2Jyk7CiAgICAgICAgICAgICAgICBmb3IoaT0wO2k8Y29udGVuaWRvc04ubGVu Z3RoO2krKykgewogICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW5pZG9zTltpXS5pZC5pbmRl eE9mKGlkKSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVuaWRvT24g PSBwYXJzZUludChjb250ZW5pZG9zTltpXS5pZC5yZXBsYWNlKGNvbnRlbmlkb0V4cCwgIiIpKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW5pZG9zTltpXS5zdHlsZS5kaXNwbGF5 ID09ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihudW0gPT0g JysnKSBudW0gPSBjb250ZW5pZG9PbiArIDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZihudW0gPT0gJy0nKSBudW0gPSBjb250ZW5pZG9PbiAtIDE7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbmlk b3NOW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKG51bSA9PSAwKSBudW0gPSBudW1Ub3RhbDsK ICAgICAgICAgICAgICAgIGlmKChudW0gPiBudW1Ub3RhbCkgfHwgaXNOYU4obnVtKSkgbnVtID0gMTsK ICAgICAgICAgICAgICAgIGlmKGNvbnRlbmlkb04gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCAr ICctZm90b2dyYWZpYS0nICsgbnVtKSkgY29udGVuaWRvTi5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAg ICAgICAgICAgICBpZihjb250ZW5pZG9OID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQgKyAnLWNv bnRlbmlkby0nICsgbnVtKSkgY29udGVuaWRvTi5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAg ICAgICBudW1UeHQgPSBudW0udG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIGlmKG51bSA8IDEwKQog ICAgICAgICAgICAgICAgICAgICAgICBudW1UeHQgPSAiMCIgKyBudW1UeHQ7CiAgICAgICAgICAgICAg ICBpZihjb250ZW5pZG9OID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQgKyAnLW51bScpKSBjb250 ZW5pZG9OLmlubmVySFRNTCA9IG51bVR4dDsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHNlcnZp Y2lvcyhpZCxudW0pIHsKICAgICAgICAgICAgICAgIGNvbnRlbmlkb3NOID0gZG9jdW1lbnQuZ2V0RWxl bWVudHNCeVRhZ05hbWUoJ2RpdicpOwogICAgICAgICAgICAgICAgZm9yKGk9MDtpPGNvbnRlbmlkb3NO Lmxlbmd0aDtpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29udGVuaWRvc05baV0uaWQu aW5kZXhPZihpZCArICItY29udGVuaWRvLSIpID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZihjb250ZW5pZG9zTltpXS5pZCA9PSBpZCArICItY29udGVuaWRvLSIgKyBudW0pCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW5pZG9zTltpXS5zdHlsZS5k aXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVuaWRvc05baV0uc3R5bGUuZGlzcGxheSA9 ICJub25lIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgcGVzdGFuYXNOID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpJyk7CiAg ICAgICAgICAgICAgICBmb3IoaT0wO2k8cGVzdGFuYXNOLmxlbmd0aDtpKyspIHsKICAgICAgICAgICAg ICAgICAgICAgICAgaWYocGVzdGFuYXNOW2ldLmlkLmluZGV4T2YoaWQgKyAiLXBlc3RhbmEtIikgPT0g MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHBlc3RhbmFzTltpXS5pZCA9PSBp ZCArICItcGVzdGFuYS0iICsgbnVtKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGVzdGFuYXNOW2ldLmNsYXNzTmFtZSA9ICJhY3RpdmEiOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlc3Rh bmFzTltpXS5jbGFzc05hbWUgPSAiIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyoqKioqKioqIE1PRFVMT1MgTUVUSE9ERSAgKioqKioq KiovCQoKCS8qKioqKioqKioqKiogQUpBWCAqKioqKioqKioqLwoJCglmdW5jdGlvbiBjcmVhdGVSZXF1 ZXN0T2JqZWN0KCkgewoJCXZhciBybzsKCQl2YXIgYnJvd3NlciA9IG5hdmlnYXRvci5hcHBOYW1lOwoJ CQoJCWlmKGJyb3dzZXIgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpewoJCQlybyA9IG5l dyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpOwoJCX0KCQllbHNlewoJCQlybyA9IG5l dyBYTUxIdHRwUmVxdWVzdCgpOwoJCX0KCQlyZXR1cm4gcm87Cgl9ICAKCQoJLyoqKioqKioqKioqKiBG SU4gQUpBWCAqKioqKioqKioqLwoKCgpmdW5jdGlvbiB2b3RhcnRpY3VsbyhwdW50b3MpIHsKCQkKCQl2 YXIgZGlyZWNjaW9uOwoJCQoJCWlmICh3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZi5pbmRleE9m KCc/JykgPiAwKSB7CgkJCXZhciBjYW1wb3MgPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZi5z cGxpdCgnPycpOwoJCQlkaXJlY2Npb24gPSBjYW1wb3NbMF07CgkJfQoJCWVsc2UgewoJCQlkaXJlY2Np b24gPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKCQl9CQoJCQoJCXZhciBodHRwID0gY3Jl YXRlUmVxdWVzdE9iamVjdCgpOwoJCWh0dHAub3BlbigiZ2V0IiwgIi9iYWNrZW5kL3ZvdGFjaW9uZXMv dm90YXIucGhwP3B1bnRvcz0iICsgcHVudG9zICsgIiZ1cmw9IiArIGRpcmVjY2lvbiArICImcj0iICsg TWF0aC5yYW5kb20oKSk7CgkJaHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CgkJ CWlmKGh0dHAucmVhZHlTdGF0ZSA9PSA0KXsKCQkJCWlmIChodHRwLnJlc3BvbnNlVGV4dCkgewoJCQkJ CWdyYWNpYXMgPSAiPGRpdiBjbGFzcz1sYWJlbD5HcmFjaWFzIHBvciB2b3RhcjwvZGl2PiI7CgkJCQkJ ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbmlkb2VzdHJlbGxhcycpLmlubmVySFRNTCA9IGdy YWNpYXM7CgkJCQkJZ2V0RXN0cmVsbGFzKCk7CgkJCQkJZ2V0Vm90b3MoKTsKCQkJCQkJCgkJCQl9CgkJ CX0JCgkJfTsKCQlodHRwLnNlbmQobnVsbCk7CQkKCX0KCQoJZnVuY3Rpb24gZ2V0RXN0cmVsbGFzKCkg ewoJCQoJCXZhciBkaXJlY2Npb247CgkJCgkJaWYgKHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVm LmluZGV4T2YoJz8nKSA+IDApIHsKCQkJdmFyIGNhbXBvcyA9IHdpbmRvdy5kb2N1bWVudC5sb2NhdGlv bi5ocmVmLnNwbGl0KCc/Jyk7CgkJCWRpcmVjY2lvbiA9IGNhbXBvc1swXTsKCQl9CgkJZWxzZSB7CgkJ CWRpcmVjY2lvbiA9IHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmOwoJCX0KCQkKCQl2YXIgaHR0 cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKCQlodHRwLm9wZW4oImdldCIsICIvYmFja2VuZC92b3Rh Y2lvbmVzL2VzdHJlbGxhcy5waHA/dXJsPSIgKyBkaXJlY2Npb24pOwoJCWh0dHAub25yZWFkeXN0YXRl Y2hhbmdlID0gZnVuY3Rpb24gKCkgewoJCQlpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CgkJCQlpZiAo aHR0cC5yZXNwb25zZVRleHQpIHsKCQkJCQl2YXIgZXN0cmVsbGFzID0gaHR0cC5yZXNwb25zZVRleHQ7 CgkJCQkJCgkJCQkJaWYgKGVzdHJlbGxhcy5pbmRleE9mKCIuIikpIHsKCQkJCgkJCQkJCWNhbXBvcyA9 IGVzdHJlbGxhcy5zcGxpdCgiLiIpOwoJCQkJCQllc3RyZWxsYXMgPSBjYW1wb3NbMF07CQoJCQkJCQl2 YXIgbWVkaWEgPSAoY2FtcG9zWzFdID4gMCkgPyAxIDogMDsKCQkJCQl9CgkJCQkJCgkJCQkJdmFyIGNv bnRlbmlkbyA9ICcnOwoJCQkJCQoJCQkJCWZvciAoaSA9IDA7IGkgPCBlc3RyZWxsYXM7IGkrKykgewoJ CQkJCQljb250ZW5pZG8gKz0gJzxpbWcgc3JjPSIvaW1nL3N0YXJfb24uZ2lmIiBhbHQ9IicgKyBpICsn IHZvdG9zIiAvPic7CgkJCQkJfQoJCQkJCQoJCQkJCWlmIChtZWRpYSA9PSAxKSB7CgkJCQkJCWNvbnRl bmlkbyArPSAnPGltZyBzcmM9Ii9pbWcvc3Rhcl9vbl9tZC5naWYiIGFsdD0iJyArIGVzdHJlbGxhcyAr JyB2b3RvcyIgLz4nOwoJCQkJCQllc3RyZWxsYXMrKzsKCQkJCQl9CgkJCQkJCgkJCQkJZm9yIChpID0g ZXN0cmVsbGFzOyBpIDwgNTsgaSsrKSB7CgkJCQkJCWNvbnRlbmlkbyArPSAnPGltZyBzcmM9Ii9pbWcv c3Rhcl9vZmYuZ2lmIiBhbHQ9IicgKyBpICsnIHZvdG9zIiAvPic7CQoJCQkJCX0KCQkJCQkKCQkJCQl3 aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdGFkb3Mtdm90b3MnKS5pbm5lckhUTUwg PSBjb250ZW5pZG87CgkJCQkJCQoJCQkJfQoJCQl9CQoJCX07CgkJaHR0cC5zZW5kKG51bGwpOwoJCQkK CX0KCQoJZnVuY3Rpb24gZ2V0Vm90b3MoKSB7CgkJCgkJdmFyIGRpcmVjY2lvbjsKCQkKCQlpZiAod2lu ZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignPycpID4gMCkgewoJCQl2YXIgY2FtcG9z ID0gd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTsKCQkJZGlyZWNjaW9uID0g Y2FtcG9zWzBdOwoJCX0KCQllbHNlIHsKCQkJZGlyZWNjaW9uID0gd2luZG93LmRvY3VtZW50LmxvY2F0 aW9uLmhyZWY7CgkJfQoJCQoJCXZhciBodHRwID0gY3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJCS8vaHR0 cC5vcGVuKCJnZXQiLCAiL2JhY2tlbmQvdm90YWNpb25lcy92b3Rvcy5waHA/dXJsPSIgKyBkaXJlY2Np b24gKyImcj0iICsgTWF0aC5yYW5kb20oKSk7CgkJaHR0cC5vcGVuKCJnZXQiLCAiL2JhY2tlbmQvdm90 YWNpb25lcy92b3Rvcy5waHA/dXJsPSIgKyBkaXJlY2Npb24pOwoJCWh0dHAub25yZWFkeXN0YXRlY2hh bmdlID0gZnVuY3Rpb24gKCkgewoJCQlpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CgkJCQlpZiAoaHR0 cC5yZXNwb25zZVRleHQpIHsKCQkJCQl2YXIgdm90b3MgPSBodHRwLnJlc3BvbnNlVGV4dDsKCQkJCQlp ZiAodm90b3MgPT0gMSkgewoJCQkJCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251bXZv dG9zLXZvdG9zJykuaW5uZXJIVE1MID0gdm90b3MgKyAnIHZvdG8nOwoJCQkJCX0KCQkJCQllbHNlIHsK CQkJCQkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW12b3Rvcy12b3RvcycpLmlubmVy SFRNTCA9IHZvdG9zICsgJyB2b3Rvcyc7CgkJCQkJfQoJCQkJfQoJCQl9CQoJCX07CgkJaHR0cC5zZW5k KG51bGwpOwoJCQkKCX0KCgl2YXIgaHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBodHRwLm9wZW4oJ2dldCcsICcvYWNjZXNvLnBo cD9wYWc9JyArIHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmICsgJyZyZXNvbHVjaW9uPScgKyBz Y3JlZW4ud2lkdGggKyAneCcgKyBzY3JlZW4uaGVpZ2h0ICsgJyZyPScgKyBNYXRoLnJhbmRvbSgpKTsK ICAgICAgICBodHRwLnNlbmQobnVsbCk7CgoJLyoqKioqKioqKioqKiBDT09LSUVTICoqKioqKioqKioq LwoKICAgICAgICBmdW5jdGlvbiBzZXRDb29raWUobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRv bWFpbiwgc2VjdXJlKSB7CiAgICAgICAgICAgICAgICB2YXIgY3VyQ29va2llID0gbmFtZSArICI9IiAr IGVzY2FwZSh2YWx1ZSkgKyAoKGV4cGlyZXMpID8gIjsgZXhwaXJlcz0iICsgZXhwaXJlcyA6ICIiKSAr ICgocGF0aCkgPyAiOyBwYXRoPSIgKyBwYXRoIDogIiIpICsgKChkb21haW4pID8gIjsgZG9tYWluPSIg KyBkb21haW4gOiAiIikgKyAoKHNlY3VyZSkgPyAiOyBzZWN1cmUiIDogIiIpOwogICAgICAgICAgICAg ICAgZG9jdW1lbnQuY29va2llID0gY3VyQ29va2llOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24g Z2V0Q29va2llKG5hbWUpIHsKICAgICAgICAgICAgICAgIHZhciBkYyA9IGRvY3VtZW50LmNvb2tpZTsK ICAgICAgICAgICAgICAgIHZhciBwcmVmaXggPSBuYW1lICsgIj0iOwogICAgICAgICAgICAgICAgdmFy IGJlZ2luID0gZGMuaW5kZXhPZigiOyAiICsgcHJlZml4KTsKICAgICAgICAgICAgICAgIGlmIChiZWdp biA9PSAtMSkgewogICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGRjLmluZGV4T2YocHJlZml4 KTsKICAgICAgICAgICAgICAgIGlmIChiZWdpbiAhPSAwKSByZXR1cm4gbnVsbDsKICAgICAgICAgICAg ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiArPSAyOwogICAgICAgICAgICAg ICAgdmFyIGVuZCA9IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCI7IiwgYmVnaW4pOwogICAgICAgICAg ICAgICAgaWYgKGVuZCA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gZGMubGVuZ3Ro OwogICAgICAgICAgICAgICAgcmV0dXJuIHVuZXNjYXBlKGRjLnN1YnN0cmluZyhiZWdpbiArIHByZWZp eC5sZW5ndGgsIGVuZCkpOwogICAgICAgIH0KCiAgICAgICAgLyoqKioqKioqKioqKiBGSU4gQ09PS0lF UyAqKioqKioqKioqKi8KCgpmdW5jdGlvbiBwcmVzZW50YXJ0aWNrZXIoY2FwYSl7CiAgICAgICAgZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RpY2tlcmVjb25vbWlhb2ZmJykuc3R5bGUuZGlzcGxheSA9ICdu b25lJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGlja2VyZWNvbm9taWEnKS5zdHls ZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKfQoKZnVuY3Rpb24gdGllbmRhKG1vZHVsbyxtYXhpbW8pewogICAg ICAgICAgICAgICAgZm9yIChpcSA9IDE7IGlxIDwgbWF4aW1vKzE7IGlxKyspIHsKICAgICAgICAgICAg ICAgICAgICAgICAgYmxvcXVlID0gIm1vZHVsb3RpZW5kYSIgKyBpcTsKICAgICAgICAgICAgICAgICAg ICAgICAgLy9hbGVydCgnb2N1bHRvICcgKyBibG9xdWUpOwogICAgICAgICAgICAgICAgICAgICAgICBk b2N1bWVudC5nZXRFbGVtZW50QnlJZChibG9xdWUpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAg ICAgICAgICAgICB9CiAgICAgICAKICAgICAgICAgICAgICAgIHByZXNlbnRhciA9ICJtb2R1bG90aWVu ZGEiICsgbW9kdWxvOwogICAgICAgICAgICAgICAgLy9hbGVydCgncHJlc2VudG8gJyArIHByZXNlbnRh ciApOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJlc2VudGFyKS5zdHls ZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgIAoJfQoKLyoqKioqKioqKioqKiBURVhUTElOSyAqKioq KioqKioqKi8KCmZ1bmN0aW9uIGFjdGl2YVRleHRMaW5rKCl7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0 aW9uKCkgewppZiggJCgiI3B1YmxpRXNwZWNpYWwiKS5jc3MoImRpc3BsYXkiKSA9PSAnbm9uZScgKSB7 CiQoIiNwdWJsaUVzcGVjaWFsIikuY3NzKCJkaXNwbGF5IiwiIik7Cn0KfSk7Cn0KCi8qKioqKioqKioq KiogRklOIFRFWFRMSU5LICoqKioqKioqKioqLwo= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.tus-fotos.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIFRVU0ZPVE9TID0ge307CgpUVVNGT1RPUy5mb3RvR2FsZXJpYSA9IGZ1bmN0aW9uKGZpY2hJbmNs dWRlLCBlZGljaW9uKSB7CgkKCWNhdGVnb3JpYUF1eCA9IGZpY2hJbmNsdWRlLnJlcGxhY2UoJ2MtJywg JycpOwoJY2F0ZWdvcmlhID0gZmljaEluY2x1ZGUucmVwbGFjZSgnYy0nLCAnJyk7CglkYXRvcyA9IGNh dGVnb3JpYS5zcGxpdCgiLSIpOwoJdmFyIGNhdGVnb3JpYSA9ICcnOwoJZm9yKGk9MDsgaTxkYXRvcy5s ZW5ndGg7IGkrKykgewoJCWlmKGlzTmFOKGRhdG9zW2ldKSB8fCBkYXRvc1tpXSA+IDEwKSB7CgkJCWlm KGNhdGVnb3JpYSAhPSAnJykgCgkJCQljYXRlZ29yaWEgPSBjYXRlZ29yaWEgKyAiLSIgKyBkYXRvc1tp XTsKCQkJZWxzZQoJCQkJY2F0ZWdvcmlhID0gZGF0b3NbaV07CgkJfQoJfQoJaWYoY2F0ZWdvcmlhID09 ICcnKSB7CgkJY2F0ZWdvcmlhID0gY2F0ZWdvcmlhQXV4LnN1YnN0cigxKTsKCX0KCWlmKGVkaWNpb24g IT0gbnVsbCAmJiBlZGljaW9uICE9ICcnKSB7CgkJJCgiI3JkLVRVU0ZPVE9TLSIgKyBjYXRlZ29yaWEp LmxvYWQoIi9pbmNsdWRlc19lZS9wYXJ0aWNpcGFjaW9uLyIgKyBlZGljaW9uICsgIi90dXMtZm90b3Mv IiArIGZpY2hJbmNsdWRlICsgIi5odG1sIik7Cgl9IGVsc2UgewoJCSQoIiNyZC1UVVNGT1RPUy0iICsg Y2F0ZWdvcmlhKS5sb2FkKCIvaW5jbHVkZXNfZWUvcGFydGljaXBhY2lvbi90dXMtZm90b3MvIiArIGZp Y2hJbmNsdWRlICsgIi5odG1sIik7Cgl9Cn0KClRVU0ZPVE9TLnZpZGVvR2FsZXJpYSA9IGZ1bmN0aW9u KGZpY2hJbmNsdWRlLCBlZGljaW9uKSB7CgkKCWNhdGVnb3JpYUF1eCA9IGZpY2hJbmNsdWRlLnJlcGxh Y2UoJ2MtdHVzLXZpZGVvcycsICcnKTsKCWNhdGVnb3JpYSA9IGZpY2hJbmNsdWRlLnJlcGxhY2UoJ2Mt dHVzLXZpZGVvcycsICcnKTsKCWRhdG9zID0gY2F0ZWdvcmlhLnNwbGl0KCItIik7CgljYXRlZ29yaWEg PSAnJzsKCWZvcihpPTA7IGk8ZGF0b3MubGVuZ3RoOyBpKyspIHsKCQlpZihpc05hTihkYXRvc1tpXSkg fHwgZGF0b3NbaV0gPiAxMCkgewoJCQlpZihjYXRlZ29yaWEgIT0gJycpIAoJCQkJY2F0ZWdvcmlhID0g Y2F0ZWdvcmlhICsgIi0iICsgZGF0b3NbaV07CgkJCWVsc2UKCQkJCWNhdGVnb3JpYSA9IGRhdG9zW2ld OwoJCX0KCX0KCWlmKGNhdGVnb3JpYSA9PSAnJykgewoJCWNhdGVnb3JpYSA9IGNhdGVnb3JpYUF1eC5z dWJzdHIoMSk7Cgl9CglpZihlZGljaW9uICE9IG51bGwgJiYgZWRpY2lvbiAhPSAnJykgewoJCSQoIiNy ZC1UVVNWSURFT1MtIiArIGNhdGVnb3JpYSkubG9hZCgiL2luY2x1ZGVzX2VlL3BhcnRpY2lwYWNpb24v IiArIGVkaWNpb24gKyAiL3ZpZGVvcy8iICsgZmljaEluY2x1ZGUgKyAiLmh0bWwiKTsKCX0gZWxzZSB7 CgkJJCgiI3JkLVRVU1ZJREVPUy0iICsgY2F0ZWdvcmlhKS5sb2FkKCIvaW5jbHVkZXNfZWUvcGFydGlj aXBhY2lvbi92aWRlb3MvIiArIGZpY2hJbmNsdWRlICsgIi5odG1sIik7Cgl9Cn0= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.tiempo.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIEFfQ29ydW5uYSA9IG5ldyBBcnJheSgnQmV0YW56b3MnLCAnRmVycm9sJywgJ0xhIENvcnXxYScs ICdOb2lhJywgJ1BhZHLzbicsICdTYW50aWFnbycpOwp2YXIgQWxhdmEgPSBuZXcgQXJyYXkoJ0FtdXJy aW8nLCAnTGFiYXN0aWRhJywgJ0xhdWRpbycsICdPafNuJywgJ1NhbHZhdGllcnJhJywgJ1ZpdG9yaWEg LSBHYXN0ZWl6Jyk7CnZhciBBbGJhY2V0ZSA9IG5ldyBBcnJheSgnQWxiYWNldGUnLCAnQWxtYW5zYScs ICdIZWxs7W4nKTsKdmFyIEFsaWNhbnRlID0gbmV3IEFycmF5KCdBbGNvaScsICdBbGljYW50ZScsICdB bHRlYScsICdCZW5pZG9ybScsICdDYWxwZScsICdEZW5pYScsICdFbGRhJywgJ0VseCcsICdK4XZlYScs ICdMYSBWaWxhIEpvaW9zYScsICdPcmlodWVsYScsICdTYW50YSBQb2xhJywgJ1RvcnJldmllamEnKTsK dmFyIEFsbWVyaWEgPSBuZXcgQXJyYXkoJ0FkcmEnLCAnQWxtZXLtYScsICdDYWJvIEdhdGEnLCAnTW9q 4WNhcicsICdSb3F1ZXRhcycsICdWZXJhJyk7CnZhciBBc3R1cmlhcyA9IG5ldyBBcnJheSgnQXZpbOlz JywgJ0NhbmdhcyBkZSBOYXJjZWEnLCAnR2lq824nLCAnTGxhbmVzJywgJ0x1YXJjYScsICdPdmllZG8n LCAnUGljb3MgZGUgRXVyb3BhJywgJ1JpYmFkZXNlbGxhJyk7CnZhciBBdmlsYSA9IG5ldyBBcnJheSgn wXZpbGEnKTsKdmFyIEJhZGFqb3ogPSBuZXcgQXJyYXkoJ0FsbWVuZHJhbGVqbycsICdCYWRham96Jywg J0RvbiBCZW5pdG8nLCAnSmVyZXogZGUgbG9zIEMuJywgJ01lcmlkYScsICdWaWxsYW51ZXZhJywgJ1ph ZnJhJyk7CnZhciBCYWxlYXJlcyA9IG5ldyBBcnJheSgnQWxjdWRpYScsICdBbmRyYXR4JywgJ0FydOEn LCAnQ2FsdmnhJywgJ0NpdXRhZGVsbGEnLCAnRGVp4ScsICdGZWxhbml0eCcsICdJYml6YScsICdJbmNh JywgJ0xsdWNtYWpvcicsICdNYWxsb3JjYScsICdNYW5hY29yJywgJ01h8ycsICdQb2xsZW7nYScsICdT YW4gQW50b25pbycsICdTYW50YSBFdWxhbGlhJywgJ1NvbGxlcicpOwp2YXIgQmFyY2Vsb25hID0gbmV3 IEFycmF5KCdCYXJjZWxvbmEnLCAnQ2FsZWxsYScsICdHcmFub2xsZXJzJywgJ0lndWFsYWRhJywgJ01h dGFy8ycsICdTYWJhZGVsbCcsICdTaXRnZXMnLCAnVGVycmFzc2EnLCAnVmljJywgJ1ZpbGFmcmFuY2En LCAnVmlsYW5vdmEnKTsKdmFyIEJpemthaWEgPSBuZXcgQXJyYXkoJ0JhbG1hc2VkYScsICdCZXJtZW8n LCAnQmlsYmFvJywgJ0R1cmFuZ28nLCAnRXJtdWEnLCAnR2VybmlrYS1MdW1vJywgJ0f8ZfFlcycsICdM ZWtlaXRpbycsICdNdW5n7WEnLCAnT25kYXJyb2EnLCAnT3JkdfFhJywgJ09ydHVlbGxhJywgJ1VyaWJl LUtvc3RhJywgJ1pvcm5vdHphJyk7CnZhciBCdXJnb3MgPSBuZXcgQXJyYXkoJ0FyYW5kYScsICdCdXJn b3MnLCAnTWlyYW5kYScpOwp2YXIgQ2FjZXJlcyA9IG5ldyBBcnJheSgnQ+FjZXJlcycsICdQbGFzZW5j aWEnLCAnVHJ1amlsbG8nKTsKdmFyIENhZGl6ID0gbmV3IEFycmF5KCdBbGdlY2lyYXMnLCAnQ+FkaXon LCAnQ2hpY2xhbmEnLCAnR3JhemFsZW1hJywgJ0plcmV6JywgJ0xhIExpbmVhJywgJ1NhbiBGZXJuYW5k bycsICdTYW5s+mNhcicsICdUYXJpZmEnKTsKdmFyIENhbnRhYnJpYSA9IG5ldyBBcnJheSgnQXJyZWRv bmRvJywgJ0Nhc3RybycsICdDb21pbGxhcycsICdMYXJlZG8nLCAnTm9qYScsICdQb3RlcycsICdQdWVu dGUgVmllc2dvJywgJ1JlaW5vc2EnLCAnU2FuIFZpY2VudGUgZGUgbGEgQmFycXVlcmEnLCAnU2FudGFu ZGVyJywgJ1NhbnRpbGxhbmEnLCAnU3VhbmNlcycsICdUb3JyZWxhdmVnYScpOwp2YXIgQ2FzdGVsbG9u ID0gbmV3IEFycmF5KCdCZW5pY2Fzc2ltJywgJ0Nhc3RlbGzzbicsICdPcm9wZXNhJywgJ1Bl8WlzY29s YScsICdWaW5hcm9zJyk7CnZhciBDZXV0YSA9IG5ldyBBcnJheSgnQ2V1dGEnKTsKdmFyIENpdWRhZF9S ZWFsID0gbmV3IEFycmF5KCdBbGNhemEgUy5KLicsICdBbG1hZ3JvJywgJ0NpdWRhZCBSZWFsJywgJ1Zh bGRlcGXxYXMnKTsKdmFyIENvcmRvYmEgPSBuZXcgQXJyYXkoJ0PzcmRvYmEnLCAnTHVjZW5hJywgJ01v bnRpbGxhJywgJ1BhbG1hIGRlbCBS7W8nKTsKdmFyIEN1ZW5jYSA9IG5ldyBBcnJheSgnQ3VlbmNhJywg J1RhcmFuY/NuJyk7CnZhciBHaXB1emtvYSA9IG5ldyBBcnJheSgnQW5kb2FpbicsICdBcnJhc2F0ZScs ICdBenBlaXRpYScsICdCZWFzYWluJywgJ0JlcmdhcmEnLCAnRG9ub3N0aWEnLCAnRWliYXInLCAnSG9u ZGFycmliaWEnLCAnSXL6bicsICdMYXNhcnRlJywgJ0xlZ2F6cGknLCAnT2lhcnR6dW4nLCAnT/FhdGkn LCAnT3JkaXppYScsICdUb2xvc2EnLCAnWmFyYXV0eicsICdadW1haWEnLCAnWnVt4XJyYWdhJyk7CnZh ciBHaXJvbmEgPSBuZXcgQXJyYXkoJ0JsYW5lcycsICdDYWRhcXXpcycsICdGaWd1ZXJlcycsICdHaXJv bmEnLCAnTGxvcmV0JywgJ1BhbGFt83MnLCAnUHVpZ2NlcmThJywgJ1NhbnQgRmVsaXUgZGUgR3VpeG9s cycpOwp2YXIgR3JhbmFkYSA9IG5ldyBBcnJheSgnQWxtdfHpY2FyJywgJ0JhemEnLCAnR3JhbmFkYScs ICdHdWFkaXgnLCAnTW90cmlsJywgJ05ldmFkYScsICdTaWVycmEnKTsKdmFyIEd1YWRhbGFqYXJhID0g bmV3IEFycmF5KCdHdWFkYWxhamFyYScpOwp2YXIgSHVlbHZhID0gbmV3IEFycmF5KCdBeWFtb250ZScs ICdIdWVsdmEnLCAnVXRlcmEnKTsKdmFyIEh1ZXNjYSA9IG5ldyBBcnJheSgnQmFyYmFzdHJvJywgJ0Jl bmFzcXVlJywgJ0JpZWxzYScsICdGcmFnYScsICdIdWVzY2EnLCAnSmFjYScsICdNb256824nLCAnU2Fi afHhbmlnbycsICdTYWxsZW50Jyk7CnZhciBKYWVuID0gbmV3IEFycmF5KCdBbmT6amFyJywgJ0JhZXph JywgJ0Nhem9ybGEnLCAnSmHpbicsICdMaW5hcmVzJywgJ9piZWRhJyk7CnZhciBMYV9SaW9qYSA9IG5l dyBBcnJheSgnQWxmYXJvJywgJ0FybmVkbycsICdDYWxhaG9ycmEnLCAnRXpjYXJheScsICdIYXJvJywg J0xvZ3Jv8W8nLCAnTuFqZXJhJywgJ1N0by4gRG9taW5nbycpOwp2YXIgTGFzX1BhbG1hcyA9IG5ldyBB cnJheSgnRnVlcnRldmVudHVyYScsICdMYW56YXJvdGUnLCAnTGFzIFBhbG1hcycpOwp2YXIgTGVvbiA9 IG5ldyBBcnJheSgnQXN0b3JnYScsICdMZfNuJywgJ1BvbmZlcnJhZGEnKTsKdmFyIExsZWlkYSA9IG5l dyBBcnJheSgnTGxlaWRhJywgJ1NldSBktFVyZ2VsbCcsICdUYXJyZWfhJyk7CnZhciBMdWdvID0gbmV3 IEFycmF5KCdMdWdvJywgJ01vbmZvcnRlIGRlIExlbW9zJywgJ1JpYmFkZW8nKTsKdmFyIE1hZHJpZCA9 IG5ldyBBcnJheSgnQWxjYWzhJywgJ0FyYW5qdWV6JywgJ0JydW5ldGUnLCAnQnVpdHJhZ28nLCAnQ29s bGFkbyBWaWxsYWxiYScsICdDb2xtZW5hcicsICdFbCBFc2NvcmlhbCcsICdHZXRhZmUnLCAnTWFkcmlk JywgJ01hamFkYWhvbmRhJywgJ03zc3RvbGVzJywgJ05hdmFjZXJyYWRhJywgJ1BhcmxhJywgJ1BvenVl bG8nLCAnUi4gQ2hhdmVsYScsICdUb3JyZWrzbicpOwp2YXIgTWFsYWdhID0gbmV3IEFycmF5KCdBbnRl cXVlcmEnLCAnQmVuYWxt4WRlbmEnLCAnRXN0ZXBvbmEnLCAnTeFsYWdhJywgJ01hcmJlbGxhJywgJ01p amFzJywgJ05lcmphJywgJ1JvbmRhJywgJ1RvcnJlbW9saW5vcycpOwp2YXIgTWVsaWxsYSA9IG5ldyBB cnJheSgnTWVsaWxsYScpOwp2YXIgTXVyY2lhID0gbmV3IEFycmF5KCdBZ3VpbGFzJywgJ0NhcmF2YWNh JywgJ0NhcnRhZ2VuYScsICdKdW1pbGxhJywgJ0xhIE1hbmdhJywgJ0xvcmNhJywgJ0xvcyBBbGPhemFy ZXMnLCAnTWF6YXJy824nLCAnTXVsYScsICdNdXJjaWEnLCAnU2FuIEphdmllcicsICdZZWNsYScpOwp2 YXIgTmF2YXJyYSA9IG5ldyBBcnJheSgnQW9peicsICdFc3RlbGxhJywgJ0lzYWJhJywgJ0xlaXphJywg J0xlc2FrYScsICdQYW1wbG9uYScsICdSb25jZXN2YWxsZXMnLCAnU2FuZ/xlc2EnLCAnVGFmYWxsYScs ICdUdWRlbGEnKTsKdmFyIE91cmVuc2UgPSBuZXcgQXJyYXkoJ091cmVuc2UnLCAnVmVy7W4nKTsKdmFy IFBhbGVuY2lhID0gbmV3IEFycmF5KCdQYWxlbmNpYScpOwp2YXIgUG9udGV2ZWRyYSA9IG5ldyBBcnJh eSgnQmFpb25hJywgJ0NhbWJhZG9zJywgJ08gR3JvdmUnLCAnUG9udGV2ZWRyYScsICdUdWknLCAnVmln bycsICdWaWxhZ2FyY+1hIGRlIEFyb3VzYScpOwp2YXIgU2FsYW1hbmNhID0gbmV3IEFycmF5KCdC6Wph cicsICdDaXVkYWQgUm9kcmlnbycsICdTYWxhbWFuY2EnKTsKdmFyIFNhbnRhX0NydXpfZGVfVGVuZXJp ZmUgPSBuZXcgQXJyYXkoJ0dvbWVyYScsICdIaWVycm8nLCAnTGEgUGFsbWEnLCAnU2FudGEgQ3J1eics ICdUZW5lcmlmZSBDZW50cm8nLCAnVGVuZXJpZmUgU3VyJyk7CnZhciBTZWdvdmlhID0gbmV3IEFycmF5 KCdDdWVsbGFyJywgJ1NlZ292aWEnKTsKdmFyIFNldmlsbGEgPSBuZXcgQXJyYXkoJ0FsY2Fs4SBkZSBH dWFkYWlyYScsICdDYXJtb25hJywgJ0RvcyBIZXJtYW5hcycsICfJY2lqYScsICdTZXZpbGxhJywgJ1V0 cmVyYScpOwp2YXIgU29yaWEgPSBuZXcgQXJyYXkoJ0J1cmdvIGRlIE9zbWEnLCAnU29yaWEnKTsKdmFy IFRhcnJhZ29uYSA9IG5ldyBBcnJheSgnQ2FtYnJpbHMnLCAnUmV1cycsICdTYWxvdScsICdUYXJyYWdv bmEnLCAnVG9ydG9zYScpOwp2YXIgVGVydWVsID0gbmV3IEFycmF5KCdBbGJhcnJhY+1uJywgJ0FsY2Hx aXonLCAnQ2FsYW1vY2hhJywgJ1RlcnVlbCcpOwp2YXIgVG9sZWRvID0gbmV3IEFycmF5KCdUYWxhdmVy YSBkZSBsYSBSZWluYScsICdUb2xlZG8nKTsKdmFyIFZhbGVuY2lhID0gbmV3IEFycmF5KCdBbHppcmEn LCAnQ3VsbGVyYScsICdHYW5k7WEnLCAnT250aW55ZW50JywgJ1NhZ3VudCcsICdWYWxlbmNpYScsICdY YXRpdmEnKTsKdmFyIFZhbGxhZG9saWQgPSBuZXcgQXJyYXkoJ01lZGluYSBkZWwgQ2FtcG8nLCAnVmFs bGFkb2xpZCcpOwp2YXIgWmFtb3JhID0gbmV3IEFycmF5KCdCZW5hdmVudGUnLCAnVG9ybycsICdaYW1v cmEnKTsKdmFyIFphcmFnb3phID0gbmV3IEFycmF5KCdDYWxhdGF5dWQnLCAnQ2FzcGUnLCAnVGFyYXpv bmEnLCAnWmFyYWdvemEnKTsKCgpmdW5jdGlvbiBwb2JsYXIoKSB7Cgl2YXIgc2VsZWNjaW9uYWRvID0g d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm92aW5jaWEiKS5vcHRpb25zW3dpbmRvdy5k b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvdmluY2lhIikuc2VsZWN0ZWRJbmRleF0udmFsdWU7Cglp ZiAoc2VsZWNjaW9uYWRvICE9ICIiKSB7CgkJZXZhbCgncG9ibGFjaW9uZXMgPSAnICsgc2VsZWNjaW9u YWRvKTsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvY2FsaWRhZCIpLmxlbmd0aCA9 IHBvYmxhY2lvbmVzLmxlbmd0aCArIDE7CgkJb3B0aW9uID0gbmV3IE9wdGlvbigiU2VsZWNjaW9uZSBM b2NhbGlkYWQiLCIiKTsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvY2FsaWRhZCIp Lm9wdGlvbnNbMF0gPSBvcHRpb247CgkJZm9yIChpID0gMDsgaSA8IHBvYmxhY2lvbmVzLmxlbmd0aDsg aSsrKSB7CgkJCWV2YWwoJ29wdGlvbicgKyBpICsgJz0gbmV3IE9wdGlvbihcIicgKyBwb2JsYWNpb25l c1tpXSArICdcIiwgXCInICsgcG9ibGFjaW9uZXNbaV0gKyAnXCIpJyk7CgkJCWV2YWwoJ3dpbmRvdy5k b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9jYWxpZGFkIikub3B0aW9uc1tpICsgMV09b3B0aW9uJyAr IGkpOwkKCQl9CgkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2NhbGlkYWQiKS5zZWxl Y3RlZEluZGV4ID0gMDsKCX0KCWVsc2UgewoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi bG9jYWxpZGFkIikubGVuZ3RoID0gMTsKCQlvcHRpb24gPSBuZXcgT3B0aW9uKCJTZWxlY2Npb25lIExv Y2FsaWRhZCIsIiIpOwoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9jYWxpZGFkIiku b3B0aW9uc1swXSA9IG9wdGlvbjsgCgl9CgkJCn0KCmZ1bmN0aW9uIHBvYmxhcjIoKSB7Cgl2YXIgc2Vs ZWNjaW9uYWRvID0gd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm92aW5jaWEyIikub3B0 aW9uc1t3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb3ZpbmNpYTIiKS5zZWxlY3RlZElu ZGV4XS52YWx1ZTsKCWlmIChzZWxlY2Npb25hZG8gIT0gIiIpIHsKCQlldmFsKCdwb2JsYWNpb25lcyA9 ICcgKyBzZWxlY2Npb25hZG8pOwoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9jYWxp ZGFkMiIpLmxlbmd0aCA9IHBvYmxhY2lvbmVzLmxlbmd0aCArIDE7CgkJb3B0aW9uID0gbmV3IE9wdGlv bigiU2VsZWNjaW9uZSBMb2NhbGlkYWQiLCIiKTsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoImxvY2FsaWRhZDIiKS5vcHRpb25zWzBdID0gb3B0aW9uOwoJCWZvciAoaSA9IDA7IGkgPCBwb2Js YWNpb25lcy5sZW5ndGg7IGkrKykgewoJCQlldmFsKCdvcHRpb24nICsgaSArICc9IG5ldyBPcHRpb24o XCInICsgcG9ibGFjaW9uZXNbaV0gKyAnXCIsIFwiJyArIHBvYmxhY2lvbmVzW2ldICsgJ1wiKScpOwoJ CQlldmFsKCd3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvY2FsaWRhZDIiKS5vcHRpb25z W2kgKyAxXT1vcHRpb24nICsgaSk7CQoJCX0KCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo ImxvY2FsaWRhZDIiKS5zZWxlY3RlZEluZGV4ID0gMDsKCX0KCWVsc2UgewoJCXdpbmRvdy5kb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgibG9jYWxpZGFkMiIpLmxlbmd0aCA9IDE7CgkJb3B0aW9uID0gbmV3IE9w dGlvbigiU2VsZWNjaW9uZSBMb2NhbGlkYWQiLCIiKTsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoImxvY2FsaWRhZDIiKS5vcHRpb25zWzBdID0gb3B0aW9uOyAKCX0KCQkKfQoKZnVuY3Rpb24g c2V0Q29va2llX3QobmFtZSwgdmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlKSB7Cgl2 YXIgY3VyQ29va2llID0gbmFtZSArICI9IiArIGVzY2FwZSh2YWx1ZSkgKyAoKGV4cGlyZXMpID8gIjsg ZXhwaXJlcz0iICsgZXhwaXJlcyA6ICIiKSArICgocGF0aCkgPyAiOyBwYXRoPSIgKyBwYXRoIDogIiIp ICsgKChkb21haW4pID8gIjsgZG9tYWluPSIgKyBkb21haW4gOiAiIikgKyAoKHNlY3VyZSkgPyAiOyBz ZWN1cmUiIDogIiIpOwoJZG9jdW1lbnQuY29va2llID0gY3VyQ29va2llOwp9CiAgICAJCmZ1bmN0aW9u IGdldENvb2tpZV90KG5hbWUpIHsKCXZhciBkYyA9IGRvY3VtZW50LmNvb2tpZTsKCXZhciBwcmVmaXgg PSBuYW1lICsgIj0iOwoJdmFyIGJlZ2luID0gZGMuaW5kZXhPZigiOyAiICsgcHJlZml4KTsKCWlmIChi ZWdpbiA9PSAtMSkgewoJCWJlZ2luID0gZGMuaW5kZXhPZihwcmVmaXgpOwoJaWYgKGJlZ2luICE9IDAp IHJldHVybiBudWxsOwoJfSBlbHNlCgkJYmVnaW4gKz0gMjsKCXZhciBlbmQgPSBkb2N1bWVudC5jb29r aWUuaW5kZXhPZigiOyIsIGJlZ2luKTsKCWlmIChlbmQgPT0gLTEpCgkJZW5kID0gZGMubGVuZ3RoOwoJ cmV0dXJuIHVuZXNjYXBlKGRjLnN1YnN0cmluZyhiZWdpbiArIHByZWZpeC5sZW5ndGgsIGVuZCkpOwp9 CgpmdW5jdGlvbiB3aXRob3V0Q3V0ZXMoY2FkZW5hKSB7CgkKCWNhZGVuYSA9IGNhZGVuYS5yZXBsYWNl KC8gL2csICcnKTsKCWNhZGVuYSA9IGNhZGVuYS5yZXBsYWNlKC/hL2dpLCAnYScpOwoJY2FkZW5hID0g Y2FkZW5hLnJlcGxhY2UoL+kvZ2ksICdlJyk7CgljYWRlbmEgPSBjYWRlbmEucmVwbGFjZSgv7S9naSwg J2knKTsKCWNhZGVuYSA9IGNhZGVuYS5yZXBsYWNlKC/zL2dpLCAnbycpOwoJY2FkZW5hID0gY2FkZW5h LnJlcGxhY2UoL/ovZ2ksICd1Jyk7CgljYWRlbmEgPSBjYWRlbmEucmVwbGFjZSgv/C9naSwgJ3UnKTsK CWNhZGVuYSA9IGNhZGVuYS5yZXBsYWNlKC/xL2dpLCAnbm4nKTsKCWNhZGVuYSA9IGNhZGVuYS5yZXBs YWNlKC8tL2dpLCAnJyk7CgkKCXJldHVybiBjYWRlbmE7Cgp9CgoKZnVuY3Rpb24gYWN0dWFsaXphVGll bXBvKGNpdWRhZCwgdGlwbykgewoJCglpZiAoY2l1ZGFkKSB7CgkJY2l1ZGFkID0gd2l0aG91dEN1dGVz KGNpdWRhZC50b0xvd2VyQ2FzZSgpKTsKCQl2YXIgaHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsK CQlodHRwLm9wZW4oImdldCIsICIvaW5jbHVkZXMvbWFudWFsZXMvdGllbXBvL2luY2x1ZGVfIiArIGNp dWRhZCArICIueG1sP3I9IiArIE1hdGgucmFuZG9tKCkpOwoJCWh0dHAub25yZWFkeXN0YXRlY2hhbmdl ID0gZnVuY3Rpb24gKCkgewoJCQlpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CgkJCQlpZiAoaHR0cC5y ZXNwb25zZVhNTCkgewoJCQkJCWNhbWJpYVRpZW1wbyhodHRwLnJlc3BvbnNlWE1MLCB0aXBvKTsKCQkJ CQkJCgkJCQl9CgkJCX0JCgkJfTsKCQlodHRwLnNlbmQobnVsbCk7Cgl9CQoJZWxzZSB7CgkJd2luZG93 LmFsZXJ0KCJQb3IgZmF2b3IsIHNlbGVjY2lvbmUgdW5hIGxvY2FsaWRhZC4iKTsKCQlyZXR1cm47CQkK CX0KfQoKZnVuY3Rpb24gY2FtYmlhVGllbXBvKHJlc3BvbnNlLCB0aXBvKSB7CglpZiAocmVzcG9uc2Up IHsKCQl2YXIgbG9jYWxpZGFkID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xvY2FsaWRh ZCcpLml0ZW0oMCkuZmlyc3RDaGlsZC5kYXRhOyAKCQl2YXIgbWFwYSA9IHJlc3BvbnNlLmdldEVsZW1l bnRzQnlUYWdOYW1lKCdtYXBhJykuaXRlbSgwKS5maXJzdENoaWxkLmRhdGE7CgkJCgkJLy8gRXN0byBl cyBwb3JxdWUgZWwgRXhwbG9yZXIgeSBlbCBGaXJlZm94IGludGVycHJldGFuIGRpc3RpbnRvIGVsIFhN TAoJCQoJCWlmIChyZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJldmlzaW9uZXMnKS5pdGVt KDApLmNoaWxkTm9kZXMubGVuZ3RoID09IDEzKSB7CgkJCQoJCQl2YXIgdGllbXBvX2hveSA9IHJlc3Bv bnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGROb2Rlc1s3 XS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBlcmF0dXJhbWF4X2hveSA9 IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGRO b2Rlc1s3XS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBlcmF0dXJhbWlu X2hveSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCku Y2hpbGROb2Rlc1s3XS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuZGF0YTsKCQkJCgkJCXZhciBkaWFf bWFuYW5hID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZXZpc2lvbmVzJykuaXRlbSgw KS5jaGlsZE5vZGVzWzldLmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZC5kYXRhOwoJCQl2YXIgdGllbXBv X21hbmFuYSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0o MCkuY2hpbGROb2Rlc1s5XS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBl cmF0dXJhbWF4X21hbmFuYSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25l cycpLml0ZW0oMCkuY2hpbGROb2Rlc1s5XS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJ dmFyIHRlbXBlcmF0dXJhbWluX21hbmFuYSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdw cmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGROb2Rlc1s5XS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQu ZGF0YTsKCQkJCgkJCXZhciBkaWFfcGFzYWRvID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUo J3ByZXZpc2lvbmVzJykuaXRlbSgwKS5jaGlsZE5vZGVzWzExXS5jaGlsZE5vZGVzWzFdLmZpcnN0Q2hp bGQuZGF0YTsKCQkJdmFyIHRpZW1wb19wYXNhZG8gPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFt ZSgncHJldmlzaW9uZXMnKS5pdGVtKDApLmNoaWxkTm9kZXNbMTFdLmNoaWxkTm9kZXNbM10uZmlyc3RD aGlsZC5kYXRhOwoJCQl2YXIgdGVtcGVyYXR1cmFtYXhfcGFzYWRvID0gcmVzcG9uc2UuZ2V0RWxlbWVu dHNCeVRhZ05hbWUoJ3ByZXZpc2lvbmVzJykuaXRlbSgwKS5jaGlsZE5vZGVzWzExXS5jaGlsZE5vZGVz WzVdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBlcmF0dXJhbWluX3Bhc2FkbyA9IHJlc3BvbnNl LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGROb2Rlc1sxMV0u Y2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmRhdGE7CgkJfQoJCWVsc2UgewoJCQl2YXIgdGllbXBvX2hv eSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hp bGROb2Rlc1szXS5jaGlsZE5vZGVzWzFdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBlcmF0dXJh bWF4X2hveSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycpLml0ZW0o MCkuY2hpbGROb2Rlc1szXS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFyIHRlbXBl cmF0dXJhbWluX2hveSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcmV2aXNpb25lcycp Lml0ZW0oMCkuY2hpbGROb2Rlc1szXS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuZGF0YTsKCQkJdmFy IGRpYV9tYW5hbmEgPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgncHJldmlzaW9uZXMnKS5p dGVtKDApLmNoaWxkTm9kZXNbNF0uY2hpbGROb2Rlc1swXS5maXJzdENoaWxkLmRhdGE7CgkJCXZhciB0 aWVtcG9fbWFuYW5hID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZXZpc2lvbmVzJyku aXRlbSgwKS5jaGlsZE5vZGVzWzRdLmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZC5kYXRhOwoJCQl2YXIg dGVtcGVyYXR1cmFtYXhfbWFuYW5hID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZXZp c2lvbmVzJykuaXRlbSgwKS5jaGlsZE5vZGVzWzRdLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5kYXRh OwoJCQl2YXIgdGVtcGVyYXR1cmFtaW5fbWFuYW5hID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05h bWUoJ3ByZXZpc2lvbmVzJykuaXRlbSgwKS5jaGlsZE5vZGVzWzRdLmNoaWxkTm9kZXNbM10uZmlyc3RD aGlsZC5kYXRhOwoJCQl2YXIgZGlhX3Bhc2FkbyA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1l KCdwcmV2aXNpb25lcycpLml0ZW0oMCkuY2hpbGROb2Rlc1s1XS5jaGlsZE5vZGVzWzBdLmZpcnN0Q2hp bGQuZGF0YTsKCQkJdmFyIHRpZW1wb19wYXNhZG8gPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFt ZSgncHJldmlzaW9uZXMnKS5pdGVtKDApLmNoaWxkTm9kZXNbNV0uY2hpbGROb2Rlc1sxXS5maXJzdENo aWxkLmRhdGE7CgkJCXZhciB0ZW1wZXJhdHVyYW1heF9wYXNhZG8gPSByZXNwb25zZS5nZXRFbGVtZW50 c0J5VGFnTmFtZSgncHJldmlzaW9uZXMnKS5pdGVtKDApLmNoaWxkTm9kZXNbNV0uY2hpbGROb2Rlc1sy XS5maXJzdENoaWxkLmRhdGE7CgkJCXZhciB0ZW1wZXJhdHVyYW1pbl9wYXNhZG8gPSByZXNwb25zZS5n ZXRFbGVtZW50c0J5VGFnTmFtZSgncHJldmlzaW9uZXMnKS5pdGVtKDApLmNoaWxkTm9kZXNbNV0uY2hp bGROb2Rlc1szXS5maXJzdENoaWxkLmRhdGE7CgkJfQoJCQoJCWlmICh0aXBvID09ICAwKSB7CgkJCXZh ciBjb250ZW5pZG8gPSAnPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5n PSIwIj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgICA8dHI+JzsKCQkJY29udGVuaWRvICs9ICcg ICAgICAgICAgICA8dGQgcm93c3Bhbj0iMyIgc2NvcGU9ImNvbCIgY2xhc3M9ImltYWdlbnRpZW1wbyI+ PGltZyBhbHQ9IiIgd2lkdGg9IjEwNiIgaGVpZ2h0PSI4MSIgc3JjPSInICsgbWFwYSArICciPjwvdGQ+ JzsKCQkJY29udGVuaWRvICs9ICcgICAgICAgICAgICA8dGggc2NvcGU9ImNvbCI+JzsKCQkJY29udGVu aWRvICs9ICcgICAgICAgICAgICAgIDxzdHJvbmc+SG95PC9zdHJvbmc+JzsKCQkJY29udGVuaWRvICs9 ICcgICAgICAgICAgICA8L3RoPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPHRoIHNjb3Bl PSJjb2wiPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICA8c3Ryb25nPicgKyBkaWFfbWFu YW5hICsgJzwvc3Ryb25nPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPC90aD4nOwoJCQlj b250ZW5pZG8gKz0gJyAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIj4nOwoJCQljb250ZW5pZG8gKz0g JyAgICAgICAgICAgICAgPHN0cm9uZz4nICsgZGlhX3Bhc2FkbyArICc8L3N0cm9uZz4nOwoJCQljb250 ZW5pZG8gKz0gJyAgICAgICAgICAgIDwvdGg+JzsKCQkJY29udGVuaWRvICs9ICcgICAgICAgICAgICA8 dGQgcm93c3Bhbj0iMyIgc2NvcGU9ImNvbCIgY2xhc3M9ImVubGFjZXRpZW1wbyI+JzsKCQkJY29udGVu aWRvICs9ICcgICAgICAgICAgICAgIDxwPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICAg IDxhIGhyZWY9IiMiIG9uY2xpY2s9ImNhbWJpYXJMb2NhbGlkYWQoKSI+Q2FtYmlhcjxicj4nOwoJCQlj b250ZW5pZG8gKz0gJyAgICAgICAgICAgICAgICAgIGxvY2FsaWRhZDwvYT4nOwoJCQljb250ZW5pZG8g Kz0gJyAgICAgICAgICAgICAgPC9wPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICA8ZGl2 IGNsYXNzPSJzZXBhcmEiPjwvZGl2Pic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgICA8cD4n OwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBvbmNsaWNrPSJpck1l dGVvKFwnJyArIGxvY2FsaWRhZCArICdcJykiPlZlcjxicj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAg ICAgICAgICAgICAgICAgcHJldmlzaSZvYWN1dGU7bjwvYT4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAg ICAgICAgICAgPC9wPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPC90ZD4nOwoJCQljb250 ZW5pZG8gKz0gJyAgICAgICAgICA8L3RyPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgIDx0cj4n OwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgICAgIDx0ZD48aW1nIHNyYz0iL2ltZy9tZXRlby8nICsg dGllbXBvX2hveSArICcuZ2lmIiBhbHQ9IiIgd2lkdGg9IjI5IiBoZWlnaHQ9IjIyIj48L3RkPic7CgkJ CWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPHRkPjxpbWcgc3JjPSIvaW1nL21ldGVvLycgKyB0aWVt cG9fbWFuYW5hICsgJy5naWYiIGFsdD0iIiB3aWR0aD0iMjkiIGhlaWdodD0iMjIiPjwvdGQ+JzsKCQkJ Y29udGVuaWRvICs9ICcgICAgICAgICAgICA8dGQ+PGltZyBzcmM9Ii9pbWcvbWV0ZW8vJyArIHRpZW1w b19wYXNhZG8gKyAnLmdpZiIgYWx0PSIiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyMiI+PC90ZD4nOwoJCQlj b250ZW5pZG8gKz0gJyAgICAgICAgICA8L3RyPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgIDx0 cj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgICAgIDx0ZCBjbGFzcz0idGVtcGVyYXR1cmEiPicg KyB0ZW1wZXJhdHVyYW1heF9ob3kgKyAnJm9yZG07IC8gJyArIHRlbXBlcmF0dXJhbWluX2hveSArICcm b3JkbTs8L3RkPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZW1wZXJh dHVyYSI+JyArIHRlbXBlcmF0dXJhbWF4X21hbmFuYSArICcmb3JkbTsgLyAnICsgdGVtcGVyYXR1cmFt aW5fbWFuYW5hICsgJyZvcmRtOzwvdGQ+JzsKCQkJY29udGVuaWRvICs9ICcgICAgICAgICAgICA8dGQg Y2xhc3M9InRlbXBlcmF0dXJhIj4nICsgdGVtcGVyYXR1cmFtYXhfcGFzYWRvICsgJyZvcmRtOyAvICcg KyB0ZW1wZXJhdHVyYW1pbl9wYXNhZG8gKyAnJm9yZG07PC90ZD4nOwoJCQljb250ZW5pZG8gKz0gJyAg ICAgICAgICA8L3RyPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICA8L3RhYmxlPic7CgkJCQoJCQl3 aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NpdWRhZCcpLmlubmVySFRNTCA9ICdlbiAnICsg bG9jYWxpZGFkOyAKCQl9CgkJZWxzZSB7CgkJCXZhciBjb250ZW5pZG8gPSAnPHRhYmxlIGJvcmRlcj0i MCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICA8 dHI+JzsKCQkJY29udGVuaWRvICs9ICcgICAgICA8dGQgcm93c3Bhbj0iMyIgc2NvcGU9ImNvbCIgY2xh c3M9ImltYWdlbnRpZW1wbyI+PGltZyBhbHQ9IiIgd2lkdGg9IjEwNiIgaGVpZ2h0PSI4MSIgaWQ9Im1h cGEiIHNyYz0iJyArIG1hcGEgKyAnIj48L3RkPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgPHRoIHNj b3BlPSJjb2wiPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAgICA8c3Ryb25nPkhveTwvc3Ryb25nPic7 CgkJCWNvbnRlbmlkbyArPSAnICAgICAgPC90aD4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgIDx0aCBz Y29wZT0iY29sIj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgPHN0cm9uZz4nICsgZGlhX21hbmFu YSArICc8L3N0cm9uZz4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgIDwvdGg+JzsKCQkJY29udGVuaWRv ICs9ICcgICAgIDx0aCBzY29wZT0iY29sIj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgICAgPHN0cm9u Zz4nICsgZGlhX3Bhc2FkbyArICc8L3N0cm9uZz4nOwoJCQljb250ZW5pZG8gKz0gJyAgICAgIDwvdGg+ JzsKCQkJY29udGVuaWRvICs9ICcgICAgPC90cj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICA8dHI+JzsK CQkJY29udGVuaWRvICs9ICcgICAgICA8dGQ+PGltZyBzcmM9Ii9pbWcvbWV0ZW8vJyArIHRpZW1wb19o b3kgKyAnLmdpZiIgYWx0PSIiIHdpZHRoPSIyOSIgaGVpZ2h0PSIyMiI+PC90ZD4nOwoJCQljb250ZW5p ZG8gKz0gJyAgICAgIDx0ZD48aW1nIHNyYz0iL2ltZy9tZXRlby8nICsgdGllbXBvX21hbmFuYSArICcu Z2lmIiBhbHQ9IiIgd2lkdGg9IjI5IiBoZWlnaHQ9IjIyIj48L3RkPic7CgkJCWNvbnRlbmlkbyArPSAn ICAgICAgPHRkPjxpbWcgc3JjPSIvaW1nL21ldGVvLycgKyB0aWVtcG9fcGFzYWRvICsgJy5naWYiIGFs dD0iIiB3aWR0aD0iMjkiIGhlaWdodD0iMjIiPjwvdGQ+JzsKCQkJY29udGVuaWRvICs9ICcgICAgPC90 cj4nOwoJCQljb250ZW5pZG8gKz0gJyAgICA8dHI+JzsKCQkJY29udGVuaWRvICs9ICcgICAgICAgIDx0 ZCBjbGFzcz0idGVtcGVyYXR1cmEiPicgKyB0ZW1wZXJhdHVyYW1heF9ob3kgKyAnJm9yZG07IC8gJyAr IHRlbXBlcmF0dXJhbWluX2hveSArICcmb3JkbTs8L3RkPic7CgkJCWNvbnRlbmlkbyArPSAnICAgICAg ICA8dGQgY2xhc3M9InRlbXBlcmF0dXJhIj4nICsgdGVtcGVyYXR1cmFtYXhfbWFuYW5hICsgJyZvcmRt OyAvICcgKyB0ZW1wZXJhdHVyYW1pbl9tYW5hbmEgKyAnJm9yZG07PC90ZD4nOwoJCQljb250ZW5pZG8g Kz0gJyAgICAgICAgPHRkIGNsYXNzPSJ0ZW1wZXJhdHVyYSI+JyArIHRlbXBlcmF0dXJhbWF4X3Bhc2Fk byArICcmb3JkbTsgLyAnICsgdGVtcGVyYXR1cmFtaW5fcGFzYWRvICsgJyZvcmRtOzwvdGQ+JzsKCQkJ Y29udGVuaWRvICs9ICcgICAgPC90cj4nOwoJCQljb250ZW5pZG8gKz0gJyAgPC90YWJsZT4nOwoJCX0K CQkKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VsdGllbXBvLWRhdG9zJykuaW5uZXJI VE1MID0gY29udGVuaWRvOwoJCQoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWx0aWVt cG8tZGF0b3MnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoJ2VsdGllbXBvLXNlbGVjY2lvbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZScJCgkJCgkJ c2V0Q29va2llX3QoJ2NpdWRhZCcsIGxvY2FsaWRhZCwgJ1R1ZSwgMzEtRGVjLTIwMTAgMDA6MDA6MDAg R01UJyk7Cgl9CgkKfQoKCmZ1bmN0aW9uIGNhbWJpYXJMb2NhbGlkYWQoKSB7Cgl3aW5kb3cuZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoJ2VsdGllbXBvLWRhdG9zJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK CXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWx0aWVtcG8tc2VsZWNjaW9uJykuc3R5bGUu ZGlzcGxheSA9ICdibG9jaycJCQp9CgpmdW5jdGlvbiBpck1ldGVvKGNpdWRhZCkgewoJCgljaXVkYWQg PSBnZXRDb29raWVfdCgnY2l1ZGFkJykgPyBnZXRDb29raWVfdCgnY2l1ZGFkJykgOiBjaXVkYWQ7CgkK CWlmIChjaXVkYWQpIHsKCQl2YXIgZGlyID0gZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKCQljYW1wb3Mg PSBkaXIuc3BsaXQoIi8iKTsKCQljYW1wb3MyID0gY2FtcG9zWzJdLnNwbGl0KCIuIik7CgkJd2luZG93 LmxvY2F0aW9uID0gJ2h0dHA6Ly9jYW5hbG1ldGVvLicgKyBjYW1wb3MyWzFdICsgJy4nICsgY2FtcG9z MlsyXSsgIi9jaXVkYWQucGhwP2NpdWRhZD0iICsgZXNjYXBlKGNpdWRhZCk7CQoJfQp9CgpmdW5jdGlv biB0aWVuZUNvb2tpZSh0aXBvKSB7Cgl2YXIgY2l1ZGFkID0gZ2V0Q29va2llX3QoJ2NpdWRhZCcpOwoJ aWYgKGNpdWRhZCkgewoJCWFjdHVhbGl6YVRpZW1wbyhjaXVkYWQsIHRpcG8pOwoJfQkKfQoKCgoK ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/css/barranavegacion.css" Content-Type: text/css Content-Transfer-Encoding: base64 Content-ID: Ym9keXtwYWRkaW5nLWJvdHRvbTozN3B4IWltcG9ydGFudDt9DQojbWVuc2Vud2F0ew0KICBtYXJnaW46 IDA7DQogIGxlZnQ6MDsNCiAgYm90dG9tOiAwOw0KICB3aWR0aDogMTAwJTsNCiAgYmFja2dyb3VuZDp1 cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2lkX2ZvbmRvLmpwZykgcmVwZWF0LXgg dG9wOw0KICBtaW4taGVpZ2h0OjM2cHg7DQogIGhlaWdodDozNnB4Ow0KICB0ZXh0LWFsaWduOmNlbnRl cjsNCiAgcG9zaXRpb246Zml4ZWQ7DQogIHotaW5kZXg6OTk5OTk5OTk5Ow0KIA0KfQ0KKiBodG1sIGRp diNtZW5zZW53YXQgew0KcG9zaXRpb246YWJzb2x1dGU7DQpib3R0b206MHB4Ow0KbGVmdDogZXhwcmVz c2lvbiggKCAtMCAtIG1lbnNlbndhdC5vZmZzZXRXaWR0aCArICggZG9jdW1lbnQuZG9jdW1lbnRFbGVt ZW50LmNsaWVudFdpZHRoID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDogZG9j dW1lbnQuYm9keS5jbGllbnRXaWR0aCApICsgKCBpZ25vcmVNZTIgPSBkb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQuc2Nyb2xsTGVmdCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IDogZG9j dW1lbnQuYm9keS5zY3JvbGxMZWZ0ICkgKSArICdweCcgKTsNCiAgdG9wOiBleHByZXNzaW9uKCAoLW1l bnNlbndhdC5vZmZzZXRIZWlnaHQgKyAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWln aHQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IDogZG9jdW1lbnQuYm9keS5j bGllbnRIZWlnaHQgKSArICggaWdub3JlTWUgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs VG9wID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA6IGRvY3VtZW50LmJvZHkuc2Ny b2xsVG9wICkgKSArICdweCcgKTsNCn0NCiNtZW5zZW53YXQgLmdlYnJ1aWtlcnsNCgltYXJnaW46IDAg YXV0bzsNCglwYWRkaW5nOjA7DQoJdGV4dC1hbGlnbjpsZWZ0Ow0KCXdpZHRoOjk5MHB4Ow0KCWZvbnQt ZmFtaWx5OkFyaWFsLCBzYW5zLXNlcmlmOw0KCWNvbG9yOiNGRkY7DQoJZm9udC1zaXplOjExcHg7DQoJ cG9zaXRpb246cmVsYXRpdmU7DQp9DQoNCiNnZWJydWlrZXJfc2hhZG93IHsNCmZvbnQtc2l6ZTowOw0K aGVpZ2h0OjFweDsNCndpZHRoOjEwMCU7DQp6LWluZGV4Ojk5OTk7DQpiYWNrZ3JvdW5kOnRyYW5zcGFy ZW50IHVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kvcy5wbmcpIHJlcGVhdC14IHNj cm9sbCB0b3A7DQpoZWlnaHQ6MTJweDsNCmxlZnQ6MDsNCnBvc2l0aW9uOmZpeGVkOw0KYm90dG9tOjMy cHg7DQp9DQoqIGh0bWwgI2dlYnJ1aWtlcl9zaGFkb3cgew0KIGRpc3BsYXk6bm9uZTsNCn0NCiNtZW5z ZW53YXQgLmdlYnJ1aWtlciBhe2NvbG9yOiNmZmY7IF9mbG9hdDpsZWZ0O30NCiNtZW5zZW53YXQgLmdl YnJ1aWtlciBoMywgI21lbnNlbndhdCAuZ2VicnVpa2VyIHAsICNtZW5zZW53YXQgLmdlYnJ1aWtlciB1 bHttYXJnaW46MDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyB9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIg aDN7cGFkZGluZzowcHggMTBweCAwcHggMDsgKnBhZGRpbmc6MHB4IDEwcHggMHB4IDA7IGZvbnQtc2l6 ZToxMXB4OyBoZWlnaHQ6MzRweDsgbGluZS1oZWlnaHQ6MzRweDt9DQovKmJpZW52ZW5pZGEqLw0KI21l bnNlbndhdCAuZ2VicnVpa2VyIGgzLmluUXVlaWR7IGZsb2F0OmxlZnQ7fQ0KI2luUXVlaWRXZWxjb21l eyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MTFweDsgZm9udC13ZWlnaHQ6Ym9s ZDsgY29sb3I6I0ZGRjt9DQojaW5RdWVpZE5hbWV7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IG1h cmdpbjo4cHggNXB4IDAgNXB4OyBjb2xvcjojRkZGOyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6 MTJweDtwYWRkaW5nOjAgNXB4fQ0KI2luUXVlaWRQdWxzb3sgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVm dDt9DQoNCiNtZW5zZW53YXQgLmdlYnJ1aWtlciBoMyBpbWd7dmVydGljYWwtYWxpZ246IG1pZGRsZTt9 DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgcHtmbG9hdDpsZWZ0O30NCiNtZW5zZW53YXQgLmdlYnJ1aWtl ciBwLmF2YXRhcmVueyBoZWlnaHQ6MzZweDsgYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICM2OTZDNkY7IHBh ZGRpbmc6MHB4IDEwcHggMCA1cHg7IG1hcmdpbjowIDAgMCAxMHB4O30NCipodG1sICNtZW5zZW53YXQg LmdlYnJ1aWtlciBwLmF2YXRhcmVueyBoZWlnaHQ6MzRweDt9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIg cC5hdmF0YXJlbiBpbWd7Ym9yZGVyOm5vbmU7IG1hcmdpbjozcHggMCAwIDA7fQ0KI21lbnNlbndhdCAu Z2VicnVpa2VyIHAuc3RhdHVzLCAjbWVuc2Vud2F0IC5nZWJydWlrZXIgcC53ZWxrb21lbnt3aWR0aDoz NDBweDsgcGFkZGluZzowcHggNXB4IDAgMDsgaGVpZ2h0OjM0cHg7IGxpbmUtaGVpZ2h0OjM0cHg7IGZv bnQtc2l6ZToxM3B4OyBjb2xvcjojRkZGO30NCiNtZW5zZW53YXQgLmdlYnJ1aWtlciBwLnN0YXR1cyBz dHJvbmcsICNtZW5zZW53YXQgLmdlYnJ1aWtlciBwLndlbGtvbWVueyBmb250LXNpemU6MTZweDt9DQoj bWVuc2Vud2F0IC5nZWJydWlrZXIgcC5zdGF0dXMgYXt0ZXh0LWRlY29yYXRpb246bm9uZX0NCiNtZW5z ZW53YXQgLmdlYnJ1aWtlciBwLndlbGtvbWVueyBwYWRkaW5nOjdweCA1cHggMCAxMHB4O2JvcmRlcjow IDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICM5MkE0QzM7fQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHAu cmVjb3JkZW57cGFkZGluZzo3cHggNXB4IDAgMjVweDsgYmFja2dyb3VuZDp1cmwoaHR0cDovL3d3dy5u b3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2ljX2ZhY2Vib29rLmdpZikgbm8tcmVwZWF0IGxlZnQgNnB4OyBo ZWlnaHQ6MzRweDsgfQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHAucmVjb3JkZW4gYXtmbG9hdDpub25l OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHVse2xpc3Qt c3R5bGU6bm9uZTsgbWFyZ2luOjAgMDt9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwgbGl7ZmxvYXQ6 bGVmdDtwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjAgMnB4O30NCiNtZW5zZW53YXQgLmdlYnJ1aWtl ciB1bCBsaSBhe2Rpc3BsYXk6YmxvY2s7IHBhZGRpbmc6MCA0cHg7IGhlaWdodDozNHB4O30NCiNtZW5z ZW53YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluaWNpZW57IGZvbnQtc2l6ZToxMXB4OyBsaW5lLWhlaWdo dDozNHB4O30NCiNtZW5zZW53YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluaWNpZW5fc2Fsb257IGRpc3Bs YXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDoyN3B4O2JhY2tncm91bmQ6dXJsKGh0dHA6 Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvaS9wdWxzby5naWYpIG5vLXJlcGVhdCAwcHggNTAlO30N CiNtZW5zZW53YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluaWNpZW5fcGVyZmlseyBkaXNwbGF5OmJsb2Nr OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MjZweDtiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3Lm5v cnRlY2FzdGlsbGEuZXMvaW1nL2kvcGVyZmlsLmdpZikgbm8tcmVwZWF0IDAgNTAlO30NCiNtZW5zZW53 YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluaWNpZW5fZGVzY29uZWN0YXJ7IGRpc3BsYXk6YmxvY2s7IGZs b2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6MThweDtiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3Lm5vcnRl Y2FzdGlsbGEuZXMvaW1nL2kvZXhpdC5naWYpIG5vLXJlcGVhdCAxMDAlIDUwJTt9DQoNCiNtZW5zZW53 YXQgLmdlYnJ1aWtlciB1bCBsaSBhLmluZm97IGZvbnQtc2l6ZToxMXB4OyBsaW5lLWhlaWdodDozNHB4 O30NCiNtZW5zZW53YXQgLmdlYnJ1aWtlciB1bC5wbHVnbGluaywgI21lbnNlbndhdCAuZ2VicnVpa2Vy IHVsLnNlcnZpY2VzbGlua3tib3JkZXItbGVmdDoxcHggc29saWQgIzZCODRBRTsgdGV4dC1hbGlnbjps ZWZ0IDt9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwucGx1Z2xpbmt7cGFkZGluZy1sZWZ0OjEwcHh9 DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwuc2VydmljZXNsaW5re2JvcmRlcjpub25lO30NCiNtZW5z ZW53YXQgLmdlYnJ1aWtlciB1bC5zZXJ2aWNlc2xpbmsgbGl7bWFyZ2luLXJpZ2h0OjA7fQ0KI21lbnNl bndhdCAuZ2VicnVpa2VyIHVsIGxpIGEuZ2VicnVpa2Vyc25hYW17YmFja2dyb3VuZDp1cmwoaHR0cDov L3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2ljX2dlYnJ1aWtlcnNuYWFtLmdpZikgbm8tcmVwZWF0 IGxlZnQgN3B4O3RleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAyMHB4IDAgMjBweDt9DQoj bWVuc2Vud2F0IC5nZWJydWlrZXIgdWwgbGkgYS52YW5wdWxzZW57YmFja2dyb3VuZDp1cmwoaHR0cDov L3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2ljX3ZhbnB1bHNlbi5naWYpIG5vLXJlcGVhdCBsZWZ0 IDdweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDIwcHggMCAyMHB4fQ0KI21lbnNl bndhdCAuZ2VicnVpa2VyIHVsIGxpIGEuZGljaHRfZG9lbntiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3 Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kvaWNfc2Vzc2llLmdpZikgbm8tcmVwZWF0IGxlZnQgN3B4OyB0 ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzo3cHggMCAwIDIwcHh9DQphLmlmYWNlYm9vayxhLml3 aW5kb3dzLGEuaXlhaG9vSWQsYS5pb3Blbklke3dpZHRoOjE4cHghaW1wb3J0YW50OyBoZWlnaHQ6MThw eCFpbXBvcnRhbnQ7IHBhZGRpbmc6MHB4IWltcG9ydGFudDsgbWFyZ2luOjhweCAycHggMCAycHghaW1w b3J0YW50fQ0KYS5pZmFjZWJvb2s6aG92ZXIsYS5pd2luZG93czpob3ZlcixhLml5YWhvb0lkOmhvdmVy LGEuaW9wZW5JZDpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojNjk2QzZGO30NCmEuaWZhY2Vib29rIHNw YW4gLGEuaXdpbmRvd3Mgc3BhbixhLml5YWhvb0lkIHNwYW4sYS5pb3BlbklkIHNwYW57ZGlzcGxheTpu b25lO30NCmEuaWZhY2Vib29re2JhY2tncm91bmQ6dXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5l cy9pbWcvaS9pY19mYWNlYm9vay5naWYpIG5vLXJlcGVhdCBjZW50ZXI7fQ0KYS5pd2luZG93c3tiYWNr Z3JvdW5kOnVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kvaWNfd2luZG93c2xpdmUu Z2lmKSBuby1yZXBlYXQgY2VudGVyO30NCmEuaXlhaG9vSWR7YmFja2dyb3VuZDp1cmwoaHR0cDovL3d3 dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9pL2ljX3lhaG9vSWQuZ2lmKSBuby1yZXBlYXQgY2VudGVyO30N CmEuaW9wZW5JZHtiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kv aWNfb3BlbklkLmdpZikgbm8tcmVwZWF0IGNlbnRlcjt9DQojbWVuc2Vud2F0IGZvcm17bWFyZ2luOjA7 IHBhZGRpbmc6NHB4OyB0ZXh0LWFsaWduOnJpZ2h0fQ0KI21lbnNlbndhdCBmb3JtIGxhYmVseyB0ZXh0 LWFsaWduOmxlZnQ7IGRpc3BsYXk6YmxvY2t9DQojbWVuc2Vud2F0IGZvcm0gaW5wdXQudGV4dHtkaXNw bGF5OmlubGluZTsgZm9udC1zaXplOjEwcHg7IGJvcmRlcjoxcHggc29saWQgIzMyNTU4RjsgYmFja2dy b3VuZDojZmZmOyB3aWR0aDoxODBweDsgZm9udC1zaXplOjExcHg7IHBhZGRpbmc6M3B4IH0NCiNtZW5z ZW53YXQgZm9ybSBpbnB1dC5ib3RvbjMgew0KYmFja2dyb3VuZDojRTNFM0UzOw0KYm9yZGVyOjFweCBz b2xpZCAjRTNFM0UzOw0KYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOw0KY29sb3I6IzMyNTU4RjsNCmN1 cnNvcjpwb2ludGVyOw0KZm9udC1zaXplOjExcHg7DQpmb250LXdlaWdodDpub3JtYWw7DQpoZWlnaHQ6 MjJweDsNCm1hcmdpbjoycHggYXV0byA1cHggYXV0bzsNCnBhZGRpbmc6MDsNCnZlcnRpY2FsLWFsaWdu Om1pZGRsZTsNCn0NCi5tYXNJbmZvLCAuaW5vcGVuSWR7DQoJei1pbmRleDo5OTk7DQoJZGlzcGxheTpu b25lOw0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXRleHQtYWxpZ246IGxlZnQ7DQoJdGV4dC1kZWNvcmF0 aW9uOm5vbmUNCn0NCi5tYXNJbmZvew0KCWJvdHRvbTozNnB4OyBsZWZ0Oi0ycHg7IF9sZWZ0Oi00cHg7 IHdpZHRoOjMwMHB4Ow0KfQ0KLmlub3Blbklkew0KCWJvdHRvbToyOXB4OyBfYm90dG9tOjI4cHg7IGxl ZnQ6LTJweDsgX2xlZnQ6LTRweDsgd2lkdGg6MjAwcHg7DQp9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIg dWwuc2VydmljZXNsaW5rIGxpIGEuYmFyU2VsZWN0ZWR7DQoJYmFja2dyb3VuZC1jb2xvcjojRjlFRkNB OyANCgljb2xvcjojMzMzOw0KCWZvbnQtd2VpZ2h0OmJvbGQ7DQoJYm9yZGVyLWxlZnQ6MXB4IHNvbGlk ICNFMEM4OTY7DQoJYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjRTBDODk2Ow0KfQ0KI21lbnNlbndhdCAu Z2VicnVpa2VyIHVsLnNlcnZpY2VzbGluayBsaSBhLmJhclNlbGVjdGVkO2hvdmVyew0KCWNvbG9yOiMz MzMhaW1wb3J0YW50Ow0KfQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHVsLnNlcnZpY2VzbGluayBsaSBh OmhvdmVye2NvbG9yOiNDQ0M7fQ0KDQoubWFzSW5mbyBsaSwgLmlub3BlbklkIGxpew0KCS1tb3otYm9y ZGVyLXJhZGl1cy10b3BsZWZ0OiAzcHg7DQoJLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiAzcHg7 DQoJYm9yZGVyOjFweCBzb2xpZCAjRTBDODk2OyBib3JkZXItYm90dG9tOm5vbmU7DQoJYmFja2dyb3Vu ZC1jb2xvcjojRjlFRkNBOyBjb2xvcjojMzMzOyBmb250LXNpemU6MTJweCFpbXBvcnRhbnQ7IGZvbnQt ZmFtaWx5OkFyaWFsLCBWZXJkYW5hLCBzYW5zLXNlcmlmOw0KCWRpc3BsYXk6YmxvY2s7DQp9DQojbWVu c2Vud2F0IC5nZWJydWlrZXIgdWwgbGkgdWwgbGl7Zm9udC1zaXplOjExcHg7fQ0KI21lbnNlbndhdCAu Z2VicnVpa2VyIHVsIGxpIHVsIGxpIHB7cGFkZGluZzo0cHg7fQ0KI21lbnNlbndhdCAuZ2VicnVpa2Vy IHVsIGxpIHVsIGxpIHAudGl0e2Rpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQ6I0Y2MzEzMTsgZmxvYXQ6 bm9uZTsgcGFkZGluZzoycHg7IGNvbG9yOiNmZmY7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXdlaWdo dDpib2xkO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM0MDVDOTY7IGJvcmRlci10b3A6MXB4IHNvbGlk ICM5RUFCQzQ7fQ0KI21lbnNlbndhdCAuZ2VicnVpa2VyIHVsIGxpIHVsIGxpIHAudGl0IGF7cG9zaXRp b246YWJzb2x1dGU7IHJpZ2h0OjJweDsgdG9wOjJweDsgZm9udC1zaXplOjEwcHg7IGZvbnQtd2VpZ2h0 OmJvbGQ7IGZvbnQtZmFtaWx5OlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IHBh ZGRpbmc6MCAycHg7IGhlaWdodDphdXRvOyB3aWR0aDphdXRvOyB0ZXh0LWRlY29yYXRpb246bm9uZTsg Y29sb3I6IzQ0NDsgYmFja2dyb3VuZDojQzFCRkJGOyBib3JkZXI6MXB4IHNvbGlkICM0NDQ7fQ0KLmxv Z2luX3JlZ3sgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDo1cHg7fQ0KI21lbnNlbndhdCAu Z2VicnVpa2VyIHVsLmxvZ2luX3JlZyBhLCAjbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwubG9naW5fcmVn IGxpLnRvcDZ7IGZvbnQtc2l6ZToxMXB4IWltcG9ydGFudDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1o ZWlnaHQ6MzRweDt9DQojbWVuc2Vud2F0IC5nZWJydWlrZXIgdWwubG9naW5fcmVnIGE6aG92ZXJ7IGNv bG9yOiNDQ0M7fQ0KDQphLmluZm97cG9zaXRpb246cmVsYXRpdmU7IC8qdGhpcyBpcyB0aGUga2V5Ki8g ei1pbmRleDo5OTk5OTk7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6NXB4fQ0KYS5p bmZvIHNwYW57ZGlzcGxheTogbm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fQ0KYS5pbmZvOmhvdmVy IHNwYW57bGluZS1oZWlnaHQ6MTlweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRv bToyM3B4OyBsZWZ0Oi0yODhweDsgd2lkdGg6MzkwcHg7IHBhZGRpbmc6NXB4OyBib3JkZXI6MXB4IHNv bGlkICM0MDVDOTY7Ym9yZGVyLWJvdHRvbTpub25lO2JhY2tncm91bmQtY29sb3I6I0UzRTNFMzsgY29s b3I6IzJCMkIyQjsgZm9udC1zaXplOjEycHg7IGZvbnQtZmFtaWx5OkFyaWFsLCBWZXJkYW5hLCBzYW5z LXNlcmlmO3RleHQtYWxpZ246IGxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lO30NCiogaHRtbCBhLmlu Zm86aG92ZXIgc3Bhbntib3R0b206MHB4OyB0b3A6MjNweDsgbGVmdDotMjgzcHg7IHotaW5kZXg6MDsg dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci10b3A6MHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xp ZCAjNDA1Qzk2O30NCg0KDQoucXVlV2luZG93dG9vbHRpcCB7Zm9udDoxMnB4IEFyaWFsLCBzZXJpZjtw b3NpdGlvbjphYnNvbHV0ZTsgZGlzcGxheTpibG9jazsgcGFkZGluZzowIDsgei1pbmRleDo5OTk5OyBj b2xvcjojMkIyQjJCOyBsaW5lLWhlaWdodDoyMHB4O30NCiNxdWVUb29sdGlwe3dpZHRoOjQ2OXB4O2Jv dHRvbTotMnB4OyAqYm90dG9tOjMxcHg7bGVmdDoxMHB4O30NCgkucXVlV2luZG93dG9vbHRpcCAuY29u dGVudHF1ZVRvb2x0aXB7IHBhZGRpbmctYm90dG9tOjExcHg7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQg dXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvaS9sb2dpbmlfcHJldmlldy5naWYpIGJv dHRvbSByaWdodCByZXBlYXQteDt9DQoucXVlV2luZG93dG9vbHRpcCAuZm9ybWF0e3BhZGRpbmc6M3B4 IDdweCA3cHggN3B4OyBiYWNrZ3JvdW5kOiNGQ0Y5QjU7Ym9yZGVyOjFweCBzb2xpZCAjQzBCQjUzOyBi b3JkZXItYm90dG9tOm5vbmU7fQ0KLnF1ZVdpbmRvd3Rvb2x0aXAgLmZvcm1hdCBzdHJvbmd7Zm9udC1z aXplOjE0cHh9DQoucXVlV2luZG93dG9vbHRpcCAuZm9ybWF0IC5jbG9zZVF1ZVRvb2x0aXB7DQpiYWNr Z3JvdW5kOnVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL2kvY2xvc2VUb29sdGlwLmdp Zikgbm8tcmVwZWF0Ow0KZGlzcGxheTpibG9jazsNCnBvc2l0aW9uOmFic29sdXRlOw0KcmlnaHQ6NXB4 Ow0KdG9wOjVweDsNCndpZHRoOjE2cHg7DQpoZWlnaHQ6MTVweDsNCn0NCi5xdWVXaW5kb3d0b29sdGlw IC5mb3JtYXQgLmNsb3NlUXVlVG9vbHRpcCBzcGFueyBkaXNwbGF5Om5vbmV9DQo= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="comunidad.nortecastilla.es/js/vocid.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: Ly8gVk9DRU5UTy5JRCBqcyB2MzENCmV2YWwoZnVuY3Rpb24ocCxhLGMsayxlLGQpe2U9ZnVuY3Rpb24o Yyl7cmV0dXJuKGM8YT8iIjplKHBhcnNlSW50KGMvYSkpKSsoKGM9YyVhKT4zNT9TdHJpbmcuZnJvbUNo YXJDb2RlKGMrMjkpOmMudG9TdHJpbmcoMzYpKX07aWYoIScnLnJlcGxhY2UoL14vLFN0cmluZykpe3do aWxlKGMtLSlkW2UoYyldPWtbY118fGUoYyk7az1bZnVuY3Rpb24oZSl7cmV0dXJuIGRbZV19XTtlPWZ1 bmN0aW9uKCl7cmV0dXJuJ1xcdysnfTtjPTE7fTt3aGlsZShjLS0paWYoa1tjXSlwPXAucmVwbGFjZShu ZXcgUmVnRXhwKCdcXGInK2UoYykrJ1xcYicsJ2cnKSxrW2NdKTtyZXR1cm4gcDt9KCc5IEM9Ny5XLlk7 eShcJ3ogPSBcJytDKTs5IDJuPUQ7OSAzZT0ybSg3LjI5KTt5KFwnM2cgPSBcJys3LjI5KTs1KGggbSE9 XCdsXCcpezkgMVU9Mm0obSk7eShcJzQ1ID0gXCcrbSl9NShoIDJEPT1cJ2xcJ3x8ITJEKXtHKFwnM2xc Jyl9OCAxRyhVLEosMTgpezUoMTgpezkgUD0xMiAyaSgpO1AuMnkoUC4ydigpKygxOCoydyoyQSkpOzkg Vj0iOyBWPSIrUC4yRSgpfXF7OSBWPSIifTcuMmI9VSsiPSIrSitWKyI7IDJGPS8ifTs4IDJ4KFUsSiwx OCl7NSgxOCl7OSBQPTEyIDJpKCk7UC4yeShQLjJ2KCkrKDE4KjJ3KjJBKSk7OSBWPSI7IFY9IitQLjJF KCl9cXs5IFY9IiJ9Ny4yYj1VKyI9IitKK1YrIjsgMkY9LzsgMjk9IisxVX07OCAxZShVKXs5IDJoPVUr Ij0iOzkgMmc9Ny4yYi4yVChcJztcJyk7MVAoOSBpPTA7aTwyZy5UO2krKyl7OSBjPTJnW2ldOzFXKGMu MXAoMCk9PVwnIFwnKXtjPWMuMnIoMSxjLlQpfTUoYy4yWCgyaCk9PTApe2ogYy4ycigyaC5ULGMuVCl9 fWogMXp9OzggMzUoVSl7MUcoVSwiIiwtMSl9OzggTCh6LDJwKXs5IDFCPTcuNDgoXCcxQlwnKS4zWCgw KTs5IDJlPTcubigycCk7NSgyZSl7MUIuMjAoMmUpfTkgTT03LjFPKFwnTVwnKTs5IDNWPTEyIDJpKCk7 TS40MT16O00uNDI9XCczWi80MFwnO00uaz0ycDs0bSgxQi4xVihNKSl9OzggMXYoSSl7aiBJLjFLKC9e KFxcc3xcXCYydTspKnwoXFxzfFxcJjJ1OykqJC9nLFwnXCcpfTs4IHkoMnQpezUoaCA0bCE9XCdsXCcm JmggMnMhPVwnbFwnKXsycy40cSgydCl9fTs4IDJtKEkpezUoST09MXp8fEkuVD09MCl7alwnXCd9OSBp PUkuMlgoXCcvXCcpOzUoaT4tMSl7ST1JLjJyKDAsaSl9OSAxbz1JLjJUKFwnLlwnKTs5IDEzPTFvLlQ7 NSgxMzwzKXtqIEl9OSAyVT0xb1sxMy0xXTs5IDJWPTFvWzEzLTJdOzkgMUo9Mjs1KDJVPT0iNGQiJiYy Vj09IjRqIil7KysxSn01KDEzPj0wKXtqIDFvLjRnKDEzLTFKLDFKKS40aChcJy5cJyl9alwnXCd9Ozgg MlIoKXs5IFo9M0YuM0kuM0goKTs1KC8zQ3wzRS8uMTcoWikpe2ogQn01KC8zRHwzSi8uMTcoWikpe2og Qn01KC8zUi8uMTcoWikpe2ogQn01KC8zUSAzUy8uMTcoWikpe2ogQn01KC8zVS8uMTcoWikpe2ogQn01 KC8zVC8uMTcoWikpe2ogQn1qIER9OzggMzAoMWgpezkgMXE9XCdcJzs5IDFsPVwnM0srLz1cJzs5IDFI LDFkLDFqLDI4LDJsLDFzLDFmOzkgaT0wOzFXKGk8MWguVCl7MUg9MWguMmMoaSsrKTsxZD0xaC4yYyhp KyspOzFqPTFoLjJjKGkrKyk7Mjg9MUg+PjI7Mmw9KCgxSCYzKTw8NCl8KDFkPj40KTsxcz0oKDFkJjE1 KTw8Mil8KDFqPj42KTsxZj0xaiYzTzs1KDMyKDFkKSl7MXM9MWY9Mlp9cSA1KDMyKDFqKSl7MWY9Mlp9 MXE9MXErMWwuMXAoMjgpKzFsLjFwKDJsKSsxbC4xcCgxcykrMWwuMXAoMWYpfWogMXF9OzggMUMoMmop ezUoaCBtPT1cJ2xcJyl7aiBEfTNoKDJqKXtBXCcySFwnOjUoMXYoNy5uKFwnMlFcJykuSik9PVwnXCcp ezJOKFwnNShoIFwnKzFtK1wnID09IFxcXCc4XFxcJykge1wnKzFtK1wnKCk7fSA7XCcpfXF7Ny5XLlk9 XCd3Oi8vXCcrbStcJy8xWi54P3M9XCcrZShIKStcJyZ0PTJIJm89XCcrZSg3Lm4oXCcyUVwnKS5KKStc JyZyPVwnK2UoQyl9RTtBXCcxSVwnOkcoXCdGXCcpO0U7QVwnMUZcJzo3LlcuWT1cJ3c6Ly9cJyttK1wn LzUxLng/cz1cJytlKEgpK1wnJnI9XCcrZShDKTtFO0FcJzViXCc6QVwnNWNcJzo3LlcuWT1cJ3c6Ly9c JyttK1wnLzFaLng/cz1cJytlKEgpK1wnJnQ9XCcrMmorXCcmcj1cJytlKEMpO0U7QVwnMkxcJzo3Llcu WT1cJ3c6Ly9cJyttK1wnL0YuMjc/cz1cJytlKEgpK1wnJnI9XCcrZShDKTtFOzVhOjUoMXYoNy5uKFwn Mk9cJykuSik9PVwnXCd8fDF2KDcubihcJzJQXCcpLkopPT1cJ1wnKXsyTihcJzUoaCBcJysxbStcJyA9 PSBcXFwnOFxcXCcpIHtcJysxbStcJygpO30gO1wnKX05IDFyPVwnMFwnOzUoNy5uKFwnNWdcJykuNWQp ezFyPVwnMVwnfUwoXCd3Oi8vXCcrbStcJy9GLng/cz1cJytlKEgpK1wnJmY9XCcrZSgxbSkrXCcmdT1c JytlKDcubihcJzJPXCcpLkopK1wnJnA9XCcrZSg3Lm4oXCcyUFwnKS5KKStcJyZyPVwnK2UoQykrXCcm MXI9XCcrMXIsXCcya1wnKX19OzggMlMoMVEsMXQpezUoaCBtIT1cJ2xcJyl7OSAxMD1cJ1wnOzFQKDFT IDUyIDFRKXsxMD0xMCsxUytcJz1cJysxUVsxU10rXCcmXCd9NSgxdCE9XCdcJyl7MTA9MTArXCcxdD1c JysxdH01KDEwIT1cJ1wnKXtMKFwndzovL1wnK20rXCcvNTYueD9cJysxMCxcJzJTXCcpfX19OzggNW0o KXs1KGggbSE9XCdsXCcpe0coXCdYXCcpO0woXCd3Oi8vXCcrbStcJy9YLng/cz1cJytlKEgpK1wnJnI9 XCcrZShDKSxcJzVwXCcpfX07OCAzcygpezUoaCBtIT1cJ2xcJyYmMWUoXCcyelwnKT09MXomJiEyUigp KXs1KCE3Lm4oTikpezkgMU49Ny4xTyhcJzJKXCcpOzFOLms9XCcxNFwnOzcuMkkuMVYoMU4pOzkgMjI9 Ny4xTyhcJzJKXCcpOzIyLms9Tjs3LjJJLjFWKDIyKX05IDIzPVwnMFwnOzUoaCAyTSE9XCdsXCcpezIz PTJNfUwoXCd3Oi8vXCcrbStcJy8yTC54P3M9XCcrZShIKStcJyZyPVwnK2UoQykrXCcmZD1cJytlKE4p K1wnJmI9XCcrMjMsXCc0RVwnKX1xezUoaCBOIT1cJ2xcJyYmNy5uKE4pKXs5IDF4PTcubihOKS4ySzsx eC4yMCg3Lm4oTikpfTUoNy5uKFwnMTRcJykpezkgMXg9Ny5uKFwnMTRcJykuMks7MXguMjAoNy5uKFwn MTRcJykpfX19OzggNEQoMXUpezUoaCBtPT1cJ2xcJ3x8MXU9PVwnXCcpezUoaCAzMT09XCc4XCcpezMx KFwnNEpcJyl9O2p9TChcJ3c6Ly9cJyttK1wnLzRHLng/MXU9XCcrMzAoMXUpLFwnNHZcJyl9OzggNHco MjUsUSl7UT0oaCBRPT1cJ2xcJyk/MDpROzUoaCAzND09XCdsXCcpe2p9NShoICQuMTY9PVwnbFwnKXsz NC40dShcJ3c6Ly9cJyttK1wnL3gvMTYueFwnLDgoKXskLjE2LjMzLlE9UTskLjE2KCQoXCcjXCcrMjUp LjJZKCkuMUsoLzJXL2csXCdcJykpfSl9cXskLjE2LjMzLlE9UTskLjE2KCQoXCcjXCcrMjUpLjJZKCku MUsoLzJXL2csXCdcJykpfX07M3Q9KDgoKXs5IDFEPVtdLDJHLE0sMVQsMVgsMUUsMWk9OCgpezFUPUI7 NHgoMkcpOzFXKDFYPTFELjRXKCkpMVgoKTs1KE0pTS40VT1cJ1wnfTtqIDgoMVIpezUoMVQpaiAxUigp OzUoITFEWzBdKXs1KDcuMkMpNy4yQygiNFoiLDFpLEQpOzFFPTJmLjJCOzJmLjJCPTgoKXsxaSgpOzUo MUUpMUUoKX19MUQuNFkoMVIpfX0pKCk7OCA0TSgpezUoNy5uKE4pKXsxOShOKTs1KDcubihcJzE0XCcp KXsxOShcJzE0XCcpfTJ4KFwnMnpcJyxcJzRLXCcsMCl9fTs4IDRMKGspezFHKFwnNFFcJytrLFwnNFJc JywzbyozcCk7MTkoayl9OzggNE8oayl7NSgxZShrKSE9MXopezM1KGspfXF7MUcoayxcJzRQXCcraywz byozcCl9MTkoayl9OzggNE4oayl7M0EoKTszYihrKX07OCAzQSgpezkgMU09MTIgNFMoXCc0WFwnLFwn NTBcJyk7MVAoOSBpPTA7aTwxTS5UO2krKyl7MTkoMU1baV0pfX07OCAxOShrKXs1KDcubil7Ny5uKGsp LjFBLjFiPVwnMjFcJ31xezUoNy4zYSl7Ny5rLjFiPVwnMjFcJ31xezcuM2Muay4xQS4xYj1cJzIxXCd9 fX07OCAzYihrKXs1KDcubil7Ny5uKGspLjFBLjFiPVwnMjRcJ31xezUoNy4zYSl7Ny5rLjFiPVwnMjRc J31xezcuM2Muay4xQS4xYj1cJzI0XCd9fX07OCAxWShPLFIpe2ogTy4xTC40VCgxMiAzayhcJyhcXFxc c3xeKVwnK1IrXCcoXFxcXHN8JClcJykpfTs4IDRWKE8sUil7NSghNHkuMVkoTyxSKSl7Ty4xTCs9IiAi K1J9fTs4IDRBKE8sUil7NSgxWShPLFIpKXs5IDNmPTEyIDNrKFwnKFxcXFxzfF4pXCcrUitcJyhcXFxc c3wkKVwnKTtPLjFMPU8uMUwuMUsoM2YsXCcgXCcpfX07OCBHKDJkKXs1KDNlPT0xVSl7M2goMmQpe0Fc J0ZcJzo1KGggdiE9XCdsXCcmJjJuKXsxY3t2LjR6KDgoKXt2LjFhLjR0KDgoKXt2LjJhLjRCKCkuNEgo OCg0SSl7Ny5XLlk9XCd3Oi8vXCcrbStcJy8xWi54P3Q9MUkmcz1cJytlKEgpK1wnJnI9XCcrZShDKX0p fSl9KX0xZygxeSl7eShcJzJxIDFrIEYgdiAxYS4gM2kgYSBGIDNyIDNqXCcpOzFDKFwnMUZcJyl9fXF7 eShcJ3YgMW4gMjYgbyAxbiA0QyA0Ri4gM2kgYSBGIDNyIDNqXCcpOzFDKFwnMUZcJyl9RTtBXCdYXCc6 NShoIHYhPVwnbFwnKXsxY3t2LjFhLjNCKDgoKXt2LjFhLlgoKX0sOCgpe30pfTFnKDF5KXt9fXF7eShc J3YgMW4gMjYgMWsgWFwnKX1FO0FcJzNsXCc6TChcJ3c6Ly81ai41ay41bC4xSS4zOC94LzVoLzVpLjQv NW4ueC4yN1wnLFwnNTVcJyk7RTtBXCc1OFwnOjUoaCB2IT1cJ2xcJyl7MWN7NTcoWyI1byIsIjU0Il0s OCgpezFje3YuMzYuNTM9Qjt2LjM2LjVlPTY7di4xaSg1ZixcJy81OS40c1wnKTsybj1CfTFnKDNHKXt5 KFwnMnEgMm8gM24gMmFcJyl9fSl9MWcoMXkpe3koXCcycSAybyAzbiAyYVwnKX19cXt5KFwndiAxbiAy NiAxayAxaVwnKX1FO0FcJzNOXCc6OSB6PUtbMV07OSBTPUtbMl07OSAxdz1COzUoaCB2PT1cJ2xcJyl7 RyhcJzExXCcsRCx6LFMpO2ogRH1xezFje3YuMWEuM0IoOCgpezUoaCBtIT1cJ2xcJyl7NSgxZShcJzN6 XCcpPT0xKXtHKFwnMTFcJyxCLHosUyl9cXs1KDF3KXszdyhcJzN2IDN5IDN4IDNtIDFrIDNkLmsgMzcg MzlcJyk7MXc9RDtHKFwnRlwnKX19fXF7RyhcJzExXCcsQix6LFMpfX0sOCgpezN3KFwnM3YgM3kgM3gg M20gMWsgM2QuayAzNyAzOVwnKTsxdz1EO0coXCdGXCcpfSl9MWcoMXkpe0coXCcxMVwnLEQseixTKTtq IER9fUU7QVwnMTFcJzo1KChoIEtbMl09PVwnbFwnKXx8KGggS1szXT09XCdsXCcpfHxLWzJdPT1cJ1wn fHxLWzNdPT1cJ1wnKXt6PVcuWTtTPTcuM019cXt6PUtbMl07Uz1LWzNdfTUoIUtbMV0pezJmLjNMKFwn dzovLzNQLjFJLjM4LzExLjI3P3U9XCcrZSh6KStcJyZ0PVwnK2UoUyksXCcxMVwnLFwnNGk9MCw0Yz0w LDRmPTRlLDRwPTRvXCcpfXEgNShoIHYhPVwnbFwnKXt2LjFhLjRyKHosOCgpe30pfWogRDtFfX1xe3ko XCczZyA0ayAybyA0biA0YiwgMW4gM1cgM1kgNDcgdlwnKTs1KDJkPT1cJ0ZcJyl7MUMoXCcxRlwnKX19 fTs1KGggbSE9XCdsXCcpe3koXCc0YSA0OSA0NFwnKTs1KDFlKFwnM3pcJyk9PTEpe3koXCczdSBYXCcp O0woXCd3Oi8vXCcrbStcJy9YLng/cz1cJytlKEgpK1wnJnI9XCcrZShDKStcJyZjPTFcJyxcJzJrXCcp fXF7eShcJzN1IDQzXCcpO0woXCd3Oi8vXCcrbStcJy80Ni54P3M9XCcrZShIKStcJyZyPVwnK2UoQyks XCcya1wnKX19NShoIDNxPT1cJ2xcJ3x8M3EpezN0KDNzKX0nLDYyLDMzNiwnfHx8fHxpZnx8ZG9jdW1l bnR8ZnVuY3Rpb258dmFyfHx8fHxlbmNvZGVVUklDb21wb25lbnR8fHx0eXBlb2Z8fHJldHVybnxpZHx1 bmRlZmluZWR8cXVlaWRfbWFzdGVyfGdldEVsZW1lbnRCeUlkfHx8ZWxzZXx8fHx8RkJ8aHR0cHxqc3xx dWVpZF9lY2hvX2RlYnVnfHVybHxjYXNlfHRydWV8cXVlaWRfdXJsX2FjdHVhbHxmYWxzZXxicmVha3xs b2dpbnx2b2NpZF9mYWNlYm9va3xxdWVpZF9zZXJ2fHN0cnx2YWx1ZXxhcmd1bWVudHN8cXVlaWRfcmVs b2FkU2NyaXB0fHNjcmlwdHxxdWVpZF9iYXJyYV9kaXZ8ZWxlfGRhdGV8b3BhY2l0eXxjbHN8dGl0dWxv fGxlbmd0aHxuYW1lfGV4cGlyZXN8bG9jYXRpb258bG9nb3V0fGhyZWZ8bmF2ZWdhZG9yfHJlcXVlc3R8 c2hhcmVyfG5ld3xsZW58Z2VicnVpa2VyX3NoYWRvd3x8ZmFjZWJveHx0ZXN0fG1pbnxxdWVpZF9oaWRl ZGl2fENvbm5lY3R8ZGlzcGxheXx0cnl8Y2hyMnxxdWVpZF9yZWFkQ29va2llfGVuYzR8Y2F0Y2h8Y2Fk ZW5hfGluaXR8Y2hyM3xlbnxrZXlTdHJ8cXVlaWRfZXJyb3JfZnVuY3xub3xwYXJ0c3xjaGFyQXR8b3V0 cHV0fHJlY3xlbmMzfGNhbGxiYWNrfGVtYWlsfHF1ZWlkX3N0cnRyaW18cHVsc2Fkb1NoYXJlfHBhZHJl fGVyfG51bGx8c3R5bGV8aGVhZHxxdWVpZF9sb2dpbnxsb2FkX2V2ZW50c3xvbGRfb25sb2FkfGZhY2Vi b29rX2FsdGVybmF0aXZvfHF1ZWlkX2NyZWF0ZUNvb2tpZXxjaHIxfGZhY2Vib29rfHR3b3xyZXBsYWNl fGNsYXNzTmFtZXxpZHN8ZGl2X3NvbWJyYXxjcmVhdGVFbGVtZW50fGZvcnxkYXRvc191c3VhcmlvfGZ1 bmN8Y2FtcG98ZG9uZXx2b2NpZF9tYXN0ZXJfYmFzZXxhcHBlbmRDaGlsZHx3aGlsZXxleGVjfHF1ZWlk X2hhc0NsYXNzfGxvZ2luX2V4dHxyZW1vdmVDaGlsZHxub25lfGRpdl9iYXJyYXx0aXBvX2JhcnJhfGJs b2NrfGRpdl9vY3VsdG98ZGVmaW5pZG98cGhwfGVuYzF8ZG9tYWlufEZhY2Vib29rfGNvb2tpZXxjaGFy Q29kZUF0fGFjY2lvbnxvbGR8d2luZG93fGNhfG5hbWVFUXxEYXRlfHRpcG98dm9jaWRfbG9nfGVuYzJ8 dm9jaWRfZ2V0X2RvbWluaW98dm9jaWRfZmJjb25uZWN0X2luaXRlZHxhbHxpZF9zY3JpcHR8RXJyb3J8 c3Vic3RyaW5nfGNvbnNvbGV8bXNnfG5ic3B8Z2V0VGltZXw2MHxxdWVpZF9jcmVhdGVDb29raWVfZ2xv YmFsfHNldFRpbWV8dm9jaWRfbm9iYXJyYXwxMDAwfG9ubG9hZHxhZGRFdmVudExpc3RlbmVyfHZvY2lk X2ZiX2hlYWR8dG9HTVRTdHJpbmd8cGF0aHxsb2FkX3RpbWVyfG9wZW5pZHxib2R5fGRpdnxwYXJlbnRO b2RlfGJhcnJhfHF1ZWlkX2JhcnJhX3RpcG98ZXZhbHxxdWVpZF91fHF1ZWlkX3B8cXVlaWRfb3x2b2Np ZF9tb3ZpbHx2b2NpZF9yZWdpc3Ryb3xzcGxpdHxsYXN0UGFydHxzZWNvbmRQYXJ0fGZhY2Vib3hffGlu ZGV4T2Z8aHRtbHw2NHx2b2NpZF9iYXNlNjR8dm9jaWRfcmVlbnZpb19yZXNwfGlzTmFOfHNldHRpbmdz fGpRdWVyeXxxdWVpZF9lcmFzZUNvb2tpZXxGQkRlYnVnfHBhcmF8Y29tfGNvbXBhcnRpcnxsYXllcnN8 cXVlaWRfc2hvd2RpdnxhbGx8dm9jZW50b3x2b2NpZF9kb21pbmlvX2Jhc2V8cmVnfGRvbWluaW98c3dp dGNofFJlZGlyZWNjaW9uYW5kb3xhbHRlcm5hdGl2b3xSZWdFeHB8Y2FyZ2F8cmVnaXN0cmFkb3xpbmlj aWFsaXphcnw4NjQwMHwzNjV8cXVlaWRfYmFycmFfYXV0b3xGQkNvbm5lY3R8cXVlaWRfYmFycmF8cXVl aWRfYWRkRE9NTG9hZEV2ZW50fGNvbXByb2JhcnxFc3xhbGVydHxlc3RhcnxuZWNlc2FyaW98cXVlaWRf bG9nfHF1ZWlkX2hpZGVhbGxpZHN8aWZVc2VyQ29ubmVjdGVkfGlwaG9uZXxzZXJpZXM2MHxpcG9kfG5h dmlnYXRvcnxlcklubmVyfHRvTG93ZXJDYXNlfHVzZXJBZ2VudHxzeW1iaWFufEFCQ0RFRkdISUpLTE1O T1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5fG9wZW58dGl0bGV8 c2hhcmV8NjN8d3d3fHdpbmRvd3N8YW5kcm9pZHxjZXxwYWxtfGJsYWNrYmVycnl8bm93fGhhY2Vtb3N8 aXRlbXxuYWRhfHRleHR8amF2YXNjcmlwdHxzcmN8dHlwZXxzZXNpb258Y29tcHJvYmFjaW9uZXN8bWFz dGVyfGxvZ2luX2F1dHxkZXxnZXRFbGVtZW50c0J5VGFnTmFtZXxsYXN8ZW1wZXphbW9zfGNsb258c3Rh dHVzfHVrfDYyNnx3aWR0aHxzcGxpY2V8am9pbnx0b29sYmFyfGNvfGRpc3RpbnRvfHF1ZWlkX2RlYnVn fHZvaWR8ZGVsfDQzNnxoZWlnaHR8aW5mb3xzaG93U2hhcmVEaWFsb2d8aHRtfHJlcXVpcmVTZXNzaW9u fGdldFNjcmlwdHx2b2NpZF9yZWVudmlvfHZvY2lkX2ZhY2Vib3h8Y2xlYXJJbnRlcnZhbHx0aGlzfGVu c3VyZUluaXR8cXVlaWRfcmVtb3ZlQ2xhc3N8Z2V0X3Nlc3Npb25TdGF0ZXxpbmljaWFsaXphZG98dm9j aWRfcmVlbnZpb19jb25maXJtYWNpb258dm9jaWRfYmFycnxDb3JyZWN0YW1lbnRlfHJ2X2NvbmZpcm1h Y2lvbnx3YWl0VW50aWxSZWFkeXxzZXNzaW9ufHJlZW52aW9fZXJyb3J8bm9fY2FyZ2FyX2JhcnJhX3Zv Y2lkfGNlcnJhcl9hdmlzb3x2b2NpZF9jZXJyYXJfYmFycmF8cXVlaWRfc3dpdGNoaWR8dm9jaWRfY2Vy cmFyX3Rvb2x0aXB8Y2VycmFkb198cXVlaWRfdG9vbHRpcF98Y2VycmFkb19hdmlzb19nZW50ZXF1ZXxB cnJheXxtYXRjaHxvbnJlYWR5c3RhdGVjaGFuZ2V8cXVlaWRfYWRkQ2xhc3N8c2hpZnR8bWFzSW5mb1Fp ZHxwdXNofERPTUNvbnRlbnRMb2FkZWR8c2VuZE9JRHxsb2dpbl9mYnxpbnxpc0VuYWJsZWR8WGRDb21t fHZvY2lkX2ZifHJlZ2lzdHJvfEZCX1JlcXVpcmVGZWF0dXJlc3xpbmljaW98eGRfcmVjZWl2ZXJ8ZGVm YXVsdHx5YWhvb3x3aW5kb3dzbGl2ZXxjaGVja2VkfExvZ0xldmVsfHZvY2lkX2ZhY2Vib29rX2FwaV9r ZXl8cXVlaWRfcnxhcGlfbGlifHYwfHN0YXRpY3xha3xjb25uZWN0fHF1ZWlkX2xvZ291dHxGZWF0dXJl TG9hZGVyfFhGQk1MfHZvY2lkX2xvZ291Jy5zcGxpdCgnfCcpLDAse30pKQ0K ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/css/rd.articulos.css" Content-Type: text/css Content-Transfer-Encoding: base64 Content-ID: LmFydGljdWxveyBjbGVhcjpib3RoOyBwYWRkaW5nOjAgMnB4IDAgNnB4fQ0KLmFydF9oZWFkeyBjbGVh cjpib3RoO30vKnpvbmEgc3VwZXJpb3IgZGUgYXJ07WN1bG8qLw0KLmFydGljdWxvIC5vdmVyaGVhZHsg Y29sb3I6I0MwMDsgZm9udC1zaXplOjEwcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9DQouYXJ0 aWN1bG8gLm92ZXJoZWFkIGF7IGNvbG9yOiNDMDA7fQ0KLmFydGljdWxvIC5oZWFkbGluZXsgY29sb3I6 IzAzNjsgZm9udC1zaXplOjM2cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9DQouYXJ0aWN1bG8gLmhlYWRs aW5lIGEsLmFydGljdWxvIC5oZWFkbGluZSBhOmhvdmVyeyBjb2xvcjojMDM2OyBjdXJzb3I6ZGVmYXVs dDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fQ0KLmFydGljdWxvIC5zdWJoZWFkeyBjb2xvcjojNjg2ODY4 OyBmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBtYXJnaW46MCAwIDVweCAwfQ0KLmFy dGljdWxvIC5zdWJoZWFkIGF7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAzNn0vKnBl dGljaW9uIFJDKi8NCi5hcnRpY3VsbyAuZGF0ZSwuYXJ0aWN1bG8gLmJ5bGluZSwuYXJ0aWN1bG8gLmF1 dGhvciwuYXJ0aWN1bG8gLm5hbWUsLmFydGljdWxvIC5kZXNjcmlwdGlvbnsgZGlzcGxheTppbmxpbmU7 IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojOEU4RThFOyBmb250LXdlaWdodDpib2xkO30NCi5hcnRpY3Vs byAuYnlsaW5lIGF7IGNvbG9yOiM4RThFOEU7fQ0KLmFydGljdWxvIC5iYXJoZWFkeyBmb250LXNpemU6 MTRweDsgY29sb3I6IzY2NjsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjAgMCAxNXB4IDB9DQou YXJ0aWN1bG8gLmJhcmhlYWQgYXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjojMDM2fS8q cGV0aWNpb24gUkMqLw0KLmFydGljdWxvIC50ZXh0eyBmb250LXNpemU6MTRweDsgY29sb3I6IzY2Njsg Zm9udC13ZWlnaHQ6bm9ybWFsO30NCi5hcnRpY3VsbyAudGV4dCAucHsgbGluZS1oZWlnaHQ6MThweDsg cGFkZGluZzowIDAgMTVweCAwfQ0KDQouYXJ0aWN1bG8gLnRleHQgLnAgYXsgdGV4dC1kZWNvcmF0aW9u OnVuZGVybGluZTsgY29sb3I6IzAzNn0NCi5hcnRpY3VsbyAudGV4dCAucCBhOmhvdmVyeyB0ZXh0LWRl Y29yYXRpb246bm9uZTsgY29sb3I6I2NjMDAwMH0gDQoNCi5hcnRpY3VsbyAudGV4dCAubGluay1hcHAx eyBiYWNrZ3JvdW5kLWNvbG9yOiNGMkYyRjI7IHBhZGRpbmc6OHB4OyBtYXJnaW46MCAwIDEwcHggMH0N Ci5hcnRpY3VsbyAudGV4dCAubGluay1hcHAxIC5yZWxhdGVkLWxpbmt7IHBhZGRpbmc6MCAwIDdweCAy NXB4OyBoZWlnaHQ6YXV0bzsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5l cy9pbWcvcmQubWFyY2EucG5nKSBuby1yZXBlYXQgMTBweCA1cHg7IGZvbnQtc2l6ZToxNHB4OyBjb2xv cjojNjY2O30NCi5hcnRpY3VsbyAudGV4dCAubGluay1hcHAxIC5yZWxhdGVkLWxpbmsgYXsgY29sb3I6 IzY2Njt9DQoNCi5hcnRpY3VsbyAubGluay1hcHAzeyBjbGVhcjpib3RoOyBiYWNrZ3JvdW5kLWNvbG9y OiNGMkYyRjI7IG1hcmdpbjowIDAgMTBweCAwOyBwYWRkaW5nOjAgMCA1cHggMH0NCi5hcnRpY3VsbyAu bGluay1hcHAzIC5sbmtfZW5jYWJ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNDNkM4Q0E7IG1hcmdp bjowIDAgNXB4IDA7fQ0KLmFydGljdWxvIC5saW5rLWFwcDMgLnJlbGF0ZWQtbGlua3sgY2xlYXI6Ym90 aDsgcGFkZGluZzowcHggNXB4IDNweCA3cHg7ICBmb250LXNpemU6MTRweDsgY29sb3I6IzY2Njt9DQou YXJ0aWN1bG8gLmxpbmstYXBwMyAucmVsYXRlZC1saW5rLWVwaWdyYWZleyBtYXJnaW46NXB4IDAgMHB4 IDA7fQ0KLmFydGljdWxvIC5saW5rLWFwcDMgLnJlbGF0ZWQtbGluayBoMiwuYXJ0aWN1bG8gLmxpbmst YXBwMyAucmVsYXRlZC1saW5rIC5yZWxhdGVkLWxpbmstaHsgZm9udC1zaXplOjEycHg7IGNvbG9yOiM0 NzQ3NDc7IG1hcmdpbjowIDAgMCA1MHB4fQ0KLmFydGljdWxvIC5saW5rLWFwcDMgLnJlbGF0ZWQtbGlu ayAucmVsYXRlZC1saW5rLWggaW1neyBtYXJnaW46MCAwIDAgNXB4fQ0KLmFydGljdWxvIC5saW5rLWFw cDMgLnJlbGF0ZWQtbGluayBheyBjb2xvcjojNDc0NzQ3O30NCg0KLmFydGljdWxvIC5saW5rLWFwcDR7 IGNsZWFyOmJvdGg7IGJhY2tncm91bmQtY29sb3I6I0YyRjJGMjsgbWFyZ2luOjAgMCAxMHB4IDB9DQou YXJ0aWN1bG8gLmxpbmstYXBwNCAucmVsYXRlZC1saW5reyBjbGVhcjpib3RoOyBwYWRkaW5nOjVweCA1 cHggM3B4IDdweDsgYm9yZGVyLXRvcDoxcHggc29saWQgI0M2QzhDQTsgfQ0KLmFydGljdWxvIC5saW5r LWFwcDQgLnJlbGF0ZWQtbGluayBoM3sgZm9udC1zaXplOjEycHg7IGNvbG9yOiM0NzQ3NDc7IG1hcmdp bjowIDAgMCA1MHB4fQ0KLmFydGljdWxvIC5saW5rLWFwcDQgLnJlbGF0ZWQtbGluayBheyBjb2xvcjoj NDc0NzQ3O30NCi5hcnRpY3VsbyAubGluay1hcHA0IC5yZWxhdGVkLWxpbmsgLnBob3RvLWFsdDJ7IGZs b2F0OmxlZnQ7fQ0KLmFydGljdWxvIC5saW5rLWFwcDQgLnJlbGF0ZWQtbGluayAucGhvdG8tYWx0MiBp bWd7IGJvcmRlcjoxcHggc29saWQgI0NDQ30NCg0KLmFydGljdWxvIC5saW5rLWFwcDMgLmxua19lbmNh YiwuYXJ0aWN1bG8gLmxpbmstYXBwNCAubG5rX2VuY2FieyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7 IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojNDc0NzQ3OyBsaW5lLWhlaWdo dDoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkY7IGhlaWdodDoyMHB4OyBwYWRkaW5nOjAgNXB4fQ0K DQouYXJ0aWN1bG8gLnBob3RvLWFsdDEsLmNvbENfYXJ0aWN1bG8gLnBob3RveyBkaXNwbGF5OmJsb2Nr OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0bzsgYmFja2dyb3VuZC1jb2xvcjojRjJGMkYy O30NCi5hcnRpY3VsbyAucGhvdG8tYWx0MSBpbWcsLmNvbENfYXJ0aWN1bG8gLnBob3RvIGltZ3sgdGV4 dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87fQ0KDQouYXJ0aWN1bG8gLnBob3RvLWNhcHRpb257 IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjU7IGRpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQtY29s b3I6I0YyRjJGMjsgZm9udC1zaXplOjExcHg7IGNvbG9yOiM2NjY7IHBhZGRpbmc6MnB4IDVweDsgdGV4 dC1hbGlnbjpsZWZ0O30NCi5hcnRpY3VsbyAucGhvdG8tY2FwdGlvbiBheyBjb2xvcjojNjY2O30NCg0K LmFydGljdWxvIC5wYm94eyB3aWR0aDoyNjNweDsgZmxvYXQ6cmlnaHQ7IHRleHQtYWxpZ246Y2VudGVy OyBtYXJnaW46MCBhdXRvIDAgMTBweDsgdGV4dC1hbGlnbjpsZWZ0O30NCi5hcnRpY3VsbyAucGJveCAu bGluay1hcHAyeyBtYXJnaW46MCAwIDEwcHggMDsgYm9yZGVyOjFweCBzb2xpZCAjRTJFM0U0OyBiYWNr Z3JvdW5kLWNvbG9yOiNGMkYyRjI7IHBhZGRpbmc6NXB4fQ0KLmFydGljdWxvIC5wYm94IC5saW5rLWFw cDIgaDJ7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICMzMzM7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWln aHQ6Ym9sZDttYXJnaW4tYm90dG9tOjVweH0NCi5hcnRpY3VsbyAucGJveCAubGluay1hcHAyIC5sbmtf ZW5jYWJ7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxNHB4OyBib3JkZXItYm90dG9tOjFweCBk YXNoZWQgI0U3RTdFODsgY29sb3I6IzY2NjsgcGFkZGluZzowIDAgNnB4IDVweDsgbWFyZ2luOjAgMCA2 cHggMH0NCi5hcnRpY3VsbyAucGJveCAubGluay1hcHAyIC5yZWxhdGVkLWxpbmsge2NvbG9yOiM2NjY2 NjY7Zm9udC1zaXplOjEycHg7aGVpZ2h0OmF1dG87cGFkZGluZzoycHggNXB4fQ0KLyouYXJ0aWN1bG8g LnBib3ggLmxpbmstYXBwMiAucmVsYXRlZC1saW5reyBmb250LXNpemU6MTJweDsgY29sb3I6IzY2Njsg cGFkZGluZzowIDVweDsgaGVpZ2h0OmF1dG87fSovDQouYXJ0aWN1bG8gLnBib3ggLmxpbmstYXBwMiAu cmVsYXRlZC1saW5rIC5weyBwYWRkaW5nOjAgMCA4cHggMDt9DQoNCi5hcnRpY3VsbyAucGJveCAubGlu ay1kbGR7IG1hcmdpbjowIDAgMTBweCAwOyBib3JkZXI6MXB4IHNvbGlkICNFMkUzRTQ7IGJhY2tncm91 bmQ6ICNGMkYyRjIgdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvcmQubWFyY2FfY2l0 YV9pbmljaW8uZ2lmKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IDhweCA4cHg7IHBhZGRp bmc6MTBweCAwcHggOHB4IDM1cHg7fQ0KLmFydGljdWxvIC5wYm94IC5saW5rLWRsZCAucmVsYXRlZC1s aW5reyBmb250LXNpemU6MTRweDsgYmFja2dyb3VuZDogdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxs YS5lcy9pbWcvcmQubWFyY2FfY2l0YV9maW4uZ2lmKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRp b246IDk3JSA5OCU7IHBhZGRpbmc6MCAzM3B4IDEwcHggMDt9DQouYXJ0aWN1bG8gLnBib3ggLmxpbmst ZGxkIC5yZWxhdGVkLWxpbmsgYXsgY29sb3I6IzY2NjY2Njt9DQoNCi8qdGFibGEgZGUgZGF0b3MqLw0K LnRleHQgdGFibGV7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNENEQwQzg7IGJvcmRl ci1yaWdodDoxcHggc29saWQgI0Q0RDBDODsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO30NCi50ZXh0 IHRoLC50ZXh0IHRkeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRDREMEM4OyBib3JkZXItbGVmdDox cHggc29saWQgI0Q0RDBDODsgZm9udC1zaXplOjExcHg7IGNvbG9yOiM2NjY2NjY7IHBhZGRpbmc6M3B4 OyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7fQ0KLnRleHQgdGggYSwudGV4dCB0ZCBheyBjb2xvcjoj OTkwMDAwOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCi50ZXh0IHRoIHsgYmFja2dyb3VuZC1j b2xvcjojRjhGOEY4fQ0KLnRleHQgdGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9DQoNCi8qdGFi bGEgZGUgZGF0b3MqLw0KLnRhYmxhZGF0b3MgdGFibGV7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4 IHNvbGlkICNENEQwQzg7IGJvcmRlci1yaWdodDoxcHggc29saWQgI0Q0RDBDODsgYm9yZGVyLWNvbGxh cHNlOmNvbGxhcHNlO30NCi50YWJsYWRhdG9zIHRoLC50YWJsYWRhdG9zIHRkeyBib3JkZXItYm90dG9t OjFweCBzb2xpZCAjRDREMEM4OyBib3JkZXItbGVmdDoxcHggc29saWQgI0Q0RDBDODsgZm9udC1zaXpl OjExcHg7IGNvbG9yOiM2NjY2NjY7IHBhZGRpbmc6M3B4OyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7 fQ0KLnRhYmxhZGF0b3MgdGggYSwudGFibGFkYXRvcyB0ZCBheyBjb2xvcjojOTkwMDAwO30NCi50YWJs YWRhdG9zIHRoIHsgYmFja2dyb3VuZC1jb2xvcjojRjhGOEY4fQ0KLnRhYmxhZGF0b3MgdGQgeyBiYWNr Z3JvdW5kLWNvbG9yOiNGRkZGRkZ9DQoNCi5mb3RvZ2FsZXJpYXN7IGJhY2tncm91bmQtY29sb3I6I0Yy RjJGMjsgcGFkZGluZzo1cHggMDsgbWFyZ2luOjAgMCAxMHB4IDB9DQouZm90b2dhbGVyaWFzIC5uYXZl Z2FjaW9uX2dhbGVyaWF7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MHB4IDVweCAzcHggNXB4O30NCi5mb3Rv Z2FsZXJpYXNIeyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiNEQ0RDREM7IHBvc2l0aW9uOnJl bGF0aXZlOyBtYXJnaW46MCAwIDEwcHggMDsgb3ZlcmZsb3c6aGlkZGVuO30NCi5mb3RvZ2FsZXJpYXNI IC5waG90b3sgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IGJh Y2tncm91bmQtY29sb3I6I0RDRENEQzsgcGFkZGluZzo1cHggMCAwIDB9DQouZm90b2dhbGVyaWFzSCAu cGhvdG8gaW1neyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjAgYXV0bzsgZGlzcGxheTpibG9jazt9 DQoubmF2X2ZnSF9hbnQsLm5hdl9mZ0hfc2lneyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0 ZTsgdG9wOjVweDsgei1pbmRleDozOyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5ub3J0 ZWNhc3RpbGxhLmVzL2ltZy9yZC5uYXZfZmdILnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBl YXQ7IHdpZHRoOjIxcHg7IGZvbnQtc2l6ZToxcHg7IHRleHQtaW5kZW50Oi05OTk5cHg7IG92ZXJmbG93 OmhpZGRlbjt9DQoubmF2X2ZnSF9hbnR7IGJhY2tncm91bmQtcG9zaXRpb246MCA1MCU7IGxlZnQ6MHB4 O30NCi5uYXZfZmdIX3NpZ3sgYmFja2dyb3VuZC1wb3NpdGlvbjotMjFweCA1MCU7IHJpZ2h0OjBweDt9 DQphLm5hdl9mZ0hfYW50OmhvdmVyeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MnB4IDUwJTsgbGVmdDow cHg7fQ0KYS5uYXZfZmdIX3NpZzpob3ZlcnsgYmFja2dyb3VuZC1wb3NpdGlvbjotNjNweCA1MCU7IHJp Z2h0OjBweDt9DQoubmF2X2ZnSF9mb25kb3sgZGlzcGxheTpub25lO30NCi5mZ0hse2Rpc3BsYXk6Ymxv Y2s7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjVweDsgd2lkdGg6OHB4OyBiYWNrZ3Jv dW5kLWNvbG9yOiNEQ0RDREM7fQ0KLmZnSHJ7ZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7 IHJpZ2h0OjBweDsgdG9wOjVweDsgaGVpZ2h0OjE4MHB4OyB3aWR0aDo4cHg7IGJhY2tncm91bmQtY29s b3I6I0RDRENEQzt9DQoNCi5jb2xBQl9hcnRpY3Vsb3sgZmxvYXQ6bGVmdDsgd2lkdGg6NjYycHg7fQ0K LmNvbENfYXJ0aWN1bG97IGZsb2F0OnJpZ2h0OyB3aWR0aDozMTJweDt9DQouY29sQ19hcnRpY3VsbyAu Y29sQ3sgZmxvYXQ6bm9uZTsgd2lkdGg6YXV0bzt9DQouY29sQ19hcnRpY3Vsb19jb250ZW5pZG97IGJv cmRlci1ib3R0b206MXB4IHNvbGlkICNFREVERUQ7IHBhZGRpbmc6MCAwIDJweCAwOyBtYXJnaW46MCAw IDEwcHggMH0NCg0KLmFydGljdWxvMiAuY29sQUJfYXJ0aWN1bG97IGZsb2F0OnJpZ2h0O30NCi5hcnRp Y3VsbzIgLmNvbENfYXJ0aWN1bG97IGZsb2F0OmxlZnQ7fQ0KDQovKi0tLSBCQVJSQSBERSBBUlRJQ1VM TyAtLS0qLw0KLmFydF9iYXJyYXsgY2xlYXI6Ym90aDsgaGVpZ2h0OjMwcHg7IGJvcmRlcjoxcHggc29s aWQgI0U4RThFODsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTA7fQ0KDQovKmVzdHJlbGxhcyov DQouY29udGVuaWRvZXN0cmVsbGFzeyBmbG9hdDpsZWZ0OyBtYXJnaW46OHB4IDAgMCAwOyBwYWRkaW5n OjAgMCAwIDlweH0NCi5zdGFydm90b3Mge3Bvc2l0aW9uOnJlbGF0aXZlOyBiYWNrZ3JvdW5kOiB1cmwo aHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5zcHJfZXN0cmVsbGFzLnBuZykgcmVwZWF0 LXggMCAwOyB3aWR0aDo4N3B4OyBoZWlnaHQ6MTZweDsgZmxvYXQ6bGVmdDsgZGlzcGxheTppbmxpbmU7 IH0NCgkudnRkbyB7IGJhY2tncm91bmQ6ICNGRkYgdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5l cy9pbWcvcmQuc3ByX2VzdHJlbGxhcy5wbmcpIHJlcGVhdC14IDAgLTE2cHg7fS8qcmVzdWx0YWRvcyBh bnRlcmlvcmVzIGEgbGEgdm90YWNp824gZGVsIHVzdWFyaW8gYWN0dWFsKi8NCgkuc3RhcnZvdG9zIGEg eyBvdXRsaW5lLXN0eWxlOm5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyBoZWln aHQ6MTZweDsgdGV4dC1pbmRlbnQ6LTk5OTlweDt9DQoJLnN0YXJ2b3RvcyBhOmhvdmVyIHsgYmFja2dy b3VuZDogI0ZGRiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5zcHJfZXN0cmVs bGFzLnBuZykgcmVwZWF0LXggMHB4IC0xNnB4O30NCgkuc3RhcnZvdG9zIC52dDEge3dpZHRoOjE3cHg7 IHotaW5kZXg6Nzt9DQoJLnN0YXJ2b3RvcyAudnQyIHt3aWR0aDozNHB4OyB6LWluZGV4OjY7fQ0KCS5z dGFydm90b3MgLnZ0MyB7d2lkdGg6NTFweDsgei1pbmRleDo1O30NCgkuc3RhcnZvdG9zIC52dDQge3dp ZHRoOjY4cHg7IHotaW5kZXg6NDt9DQoJLnN0YXJ2b3RvcyAudnQ1IHt3aWR0aDo4NXB4OyB6LWluZGV4 OjM7fQ0KLm51bWVyb192b3Rvc3sgZmxvYXQ6bGVmdDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEx cHg7IGNvbG9yOiMzMzM7IGxpbmUtaGVpZ2h0OjE2cHg7IG1hcmdpbjowIDAgMCA2cHh9DQoNCi8qY29t cGFydGlyKi8NCi5hcnRfY29tcGFydGlyeyBmbG9hdDpyaWdodDt9DQouYXJ0X2NoNXsgZmxvYXQ6bGVm dDsgcGFkZGluZzowIDVweCAwIDA7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojNDc0NzQ3OyBsaW5lLWhl aWdodDozMHB4O30NCi5hcnRfY2g1X2NvbWVudGFyaW9zeyBmb250LXdlaWdodDpib2xkOyBjb2xvcjoj QzAwO30NCi5hcnRfY29tcGFydGlyIHVseyBmbG9hdDpsZWZ0O30NCi5hcnRfY29tcGFydGlyIGxpeyBm bG9hdDpsZWZ0OyBtYXJnaW46MCA0cHg7fQ0KLmFydF9jb21wYXJ0aXIgbGkgYXsgb3V0bGluZS1zdHls ZTpub25lOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNh c3RpbGxhLmVzL2ltZy9yZC5zcHJfY29tcGF0aXIucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl cGVhdDsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjMwcHg7IHRleHQtaW5kZW50Oi05OTk5cHg7IGZvbnQt c2l6ZToxcHg7IH0NCi5hcnRfY29tcGFydGlyIGxpIGE6aG92ZXJ7IGZpbHRlcjphbHBoYShvcGFjaXR5 PTc4KTstbW96LW9wYWNpdHk6Ljc4O29wYWNpdHk6Ljc4O30NCg0KLmFjX2J0bjEgYXsgYmFja2dyb3Vu ZC1wb3NpdGlvbjogMHB4IDUwJTsgd2lkdGg6MTVweDt9DQouYWNfYnRuMiBheyBiYWNrZ3JvdW5kLXBv c2l0aW9uOiAtMTVweCA1MCU7IHdpZHRoOjE0cHg7fQ0KLmFjX2J0bjMgYXsgYmFja2dyb3VuZC1wb3Np dGlvbjogLTI5cHggNTAlOyB3aWR0aDoxNXB4O30NCi5hY19idG40IGF7IGJhY2tncm91bmQtcG9zaXRp b246IC00NHB4IDUwJTsgd2lkdGg6MjBweDt9DQouYWNfYnRuNSBheyBiYWNrZ3JvdW5kLXBvc2l0aW9u OiAtNjRweCA1MCU7IHdpZHRoOjE2cHg7fQ0KLmFjX2J0bjYgYXsgYmFja2dyb3VuZC1wb3NpdGlvbjog LTgwcHggNTAlOyB3aWR0aDoxNnB4O30NCi5hY19idG43IGF7IGJhY2tncm91bmQtcG9zaXRpb246IC05 NnB4IDUwJTsgd2lkdGg6MTZweDt9DQoNCi8qaGVycmFtaWVudGFzKi8NCi5hcnRfaGVycmFtaWVudGFz eyBoZWlnaHQ6MzBweDsgbGluZS1oZWlnaHQ6MzBweDsgYmFja2dyb3VuZC1jb2xvcjojRjZGNkY2OyBm bG9hdDpyaWdodDsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNFOEU4RTh9DQouYXJ0X2hlcnJhbWllbnRh cyBsaXsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgNHB4O30NCi5hcnRfaGVycmFtaWVudGFzIGxpIGF7Zmxv YXQ6bGVmdDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9p bWcvcmQuc3ByX2hlcnJhbWllbnRhc19hcnRpY3Vsby5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8t cmVwZWF0OyB3aWR0aDoxNXB4OyBoZWlnaHQ6MzBweDsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmJs b2NrOyB0ZXh0LWluZGVudDotOTk5OXB4OyBmb250LXNpemU6MXB4OyB9DQouYXJ0X2hlcnJhbWllbnRh cyBsaSBhe2Zsb2F0OmxlZnQ7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwOi8vd3d3Lm5vcnRlY2Fz dGlsbGEuZXMvaW1nL3JkLnNwcl9oZXJyYW1pZW50YXNfYXJ0aWN1bG8ucG5nKTsgYmFja2dyb3VuZC1y ZXBlYXQ6IG5vLXJlcGVhdDsgd2lkdGg6MTVweDsgaGVpZ2h0OjMwcHg7IG92ZXJmbG93OmhpZGRlbjsg ZGlzcGxheTpibG9jazsgdGV4dC1pbmRlbnQ6LTk5OTlweDsgZm9udC1zaXplOjFweDsgfQ0KLmFydF9o ZXJyYW1pZW50YXMgbGkgYS5hY3Rpdm97fQ0KLmFoX2ltcHJpbWlyeyBiYWNrZ3JvdW5kLXBvc2l0aW9u OjBweCA1MCV9DQouYWhfZW52aWFyeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTVweCA1MCV9DQouYWhf cmVjdGlmaWNhcnsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMwcHggNTAlfQ0KDQouYW5jbGFvcGluYXsg Y29sb3I6IzQ3NDc0Nzt9DQoNCi8qZm9ybXVsYXJpb3MgZGUgZW52aWFyIHkgcmVjdGlmaWNhciovDQou Y29udGVuaWRvX2Zvcm1fYXJ0aWN1bG97IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmJsb2NrOyBt aW4taGVpZ2h0OjFweDsgaGVpZ2h0OmF1dG87IGNsZWFyOmJvdGg7IHRleHQtYWxpZ246bGVmdDsgbWFy Z2luOjEwcHggMDt9DQouY29udGVuaWRvX2Zvcm1fYXJ0aWN1bG8gLmZvcm1fYXJ0eyBwb3NpdGlvbjph YnNvbHV0ZTsgd2lkdGg6MTAwJTsgbGVmdDowcHg7fQ0KI2Zvcm0tYXJ0aWN1bG8tdG9wIC5mb3JtX2Fy dHsgdG9wOjMwcHg7fQ0KI2Zvcm0tYXJ0aWN1bG8tYm90dG9tIC5mb3JtX2FydHsgYm90dG9tOjMwcHg7 fQ0KDQovKmZvcm11bGFyaW9zIGFydO1jdWxvIGNvbWVudGFyaW9zKi8NCi5mb3JtX2FydHsgYm9yZGVy OjFweCBzb2xpZCAjQ0VDRUNFO30NCi5mcm1faGVhZGVyeyBwYWRkaW5nOjAgNXB4OyBmb250LXNpemU6 MThweDsgY29sb3I6IzMzMzsgbGluZS1oZWlnaHQ6MzZweDsgaGVpZ2h0OjM2cHg7IGJhY2tncm91bmQ6 IHVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL3JkLmJnX2ZybW9faGVhZGVyLmpwZykg cmVwZWF0LXggdG9wOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjQ0VDRUNFO30NCi5mcm1fY29udGVu dHsgcGFkZGluZzoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjQ7IGZvbnQtc2l6ZToxMXB4OyBj b2xvcjojNjY2O30NCi5mcm1fdHh0eyBwYWRkaW5nOjAgMCAxMHB4IDB9DQouZnJtX3R4dCBheyBmb250 LXdlaWdodDpib2xkOyBjb2xvcjojNjY2O30NCi5mcm1fY29udGVudCAuZW5sYWNleyBmb250LXdlaWdo dDpib2xkOyBjb2xvcjojNjY2O30NCi5mb3JtX2FydCB0ZXh0YXJlYXsgY29sb3I6IzMzMzsgYm9yZGVy OjFweCBzb2xpZCAjQ0VDRUNFO30NCi5mb3JtX2FydCAuY2FqYXsgd2lkdGg6OTklOyBib3JkZXI6MXB4 IHNvbGlkICNDRUNFQ0U7fQ0KLmZvcm1fYXJ0IC5hc3RlcmlzY28sLmZvcm1fYXJ0IC5vYmxpZ2F0b3Jp b3sgY29sb3I6IzkwMDsgZm9udC1zaXplOjEwcHg7fQ0KLmZvcm1fYXJ0IGEuY2VycmFyeyBkaXNwbGF5 OmJsb2NrOyBtYXJnaW46NHB4IDAgMCAwOyBwYWRkaW5nOjAgNHB4OyBmbG9hdDpyaWdodDsgaGVpZ2h0 OjIwcHghaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNHB4O30NCg0KLmZybV9penF7IGZsb2F0OmxlZnQ7 IHBhZGRpbmc6MCAxMHB4IDAgMH0NCi5mcm1faXpxIC5jYWpheyB3aWR0aDoyMDBweDt9DQouZnJtX2Rl cnsgZmxvYXQ6cmlnaHQ7fQ0KLmZybV9kZXIgdGV4dGFyZWF7IHdpZHRoOjE5MHB4OyBoZWlnaHQ6NzBw eDt9DQoNCi5mcm1fYXJ0X2VudmlheyBkaXNwbGF5Om5vbmU7fQ0KLmZybV9hcnRfcmVjdGlmaWNheyBk aXNwbGF5Om5vbmU7fQ0KLmZybV9hcnRfcmVjdGlmaWNhIC5mcm1faXpxIC5jYWphe3dpZHRoOjMwMHB4 O30NCi5mcm1fYXJ0X3JlY3RpZmljYSAuZnJtX2RlciB0ZXh0YXJlYXsgd2lkdGg6MjkwcHg7fQ0KDQou ZnJtb19penF7IGZsb2F0OmxlZnQ7IHdpZHRoOjM1JTt9DQouZnJtb19kZXJ7IGZsb2F0OnJpZ2h0OyB3 aWR0aDo2MiU7fQ0KLmZvcm1fb3BpbmF7IG1hcmdpbjowIDAgMTBweCAwfQ0KLmZvcm1fb3BpbmEgdGV4 dGFyZWF7IHdpZHRoOjM5MHB4OyBoZWlnaHQ6ODBweDt9DQouZm9ybV9vcGluYSAuY2FqYXsgd2lkdGg6 OTklO30NCi5mcm1vcF9ib3R0b217IGJvcmRlci10b3A6MXB4IHNvbGlkICNDRUNFQ0U7IGJhY2tncm91 bmQtY29sb3I6I0VFRTsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6MnB4 IDAgfQ0KLmZybW9wX2JvdHRvbSAuYm90b257IGxpbmUtaGVpZ2h0OjI0cHg7fQ0KDQovKmNvbWVudGFy aW9zKi8NCi5hcnRfY29tZW50YXJpb3N7IGNsZWFyOmJvdGg7fQ0KLmNvbWVudF9oZWFkZXJ7IGZvbnQt c2l6ZToyMHB4OyBwYWRkaW5nOjAgNXB4OyBoZWlnaHQ6MzZweDsgbGluZS1oZWlnaHQ6MzZweDsgZm9u dC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzMzsgYm9yZGVyLXRvcDoxcHggZG90dGVkICMzMzM7IGJvcmRl ci1ib3R0b206MXB4IGRvdHRlZCAjMzMzOyBtYXJnaW46MCAwIDZweCAwfQ0KLmJsb3F1ZV9jb21lbnRh cmlvc3t9DQouY29udGVuaWRvX2NvbWVudGFyaW9zeyBwYWRkaW5nOjVweH0NCi5udW1fb3BpbmlvbmVz eyBmb250LXNpemU6MTRweDsgY29sb3I6IzkwMDsgcGFkZGluZzowIDAgM3B4IDA7IGZvbnQtd2VpZ2h0 OmJvbGQ7fQ0KLnBlc3RhbmFzX2NvbWVudGFyaW9zeyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL3d3dy5u b3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5mX3Blc3RhbmEuanBnKSByZXBlYXQteCAwIDA7IGhlaWdodDoy NXB4O30NCi5wZXN0YW5hc19jb21lbnRhcmlvcyBsaXsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI1cHg7fQ0K LnBlc3RhbmFzX2NvbWVudGFyaW9zIGxpIGF7IGZsb2F0OmxlZnQ7IGhlaWdodDoyNXB4OyBsaW5lLWhl aWdodDozMHB4OyBjb2xvcjojMzMzOyBmb250LXNpemU6MTFweDsgcGFkZGluZzowIDVweDt9DQoucGVz dGFuYXNfY29tZW50YXJpb3MgbGkgYS5hY3Rpdm97ICBsaW5lLWhlaWdodDoyNXB4OyBoZWlnaHQ6MjVw eDsgZm9udC13ZWlnaHQ6Ym9sZDsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyBib3JkZXItbGVmdDoxcHgg c29saWQgI0NFQ0VDRTsgYm9yZGVyLXRvcDoxcHggc29saWQgI0NFQ0VDRTsgYm9yZGVyLXJpZ2h0OjFw eCBzb2xpZCAjQ0VDRUNFO30NCi5jb250ZW5pZG9fY29tZW50YXJpb3N7IGNsZWFyOmJvdGg7fQ0KLm9w aW5pb257ICBwYWRkaW5nOjExcHggMCAwIDA7IGZvbnQtc2l6ZToxMXB4OyBjb2xvcjojNkQ2RDZEOyAg YmFja2dyb3VuZDogdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0aWxsYS5lcy9pbWcvcmQuYnJkX3B1bnRv c0guZ2lmKSByZXBlYXQteCB0b3A7IH0NCi5vcGluaW9uIC5hdXRvcnsgZmxvYXQ6bGVmdDsgZm9udC1z aXplOjExcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsgY29sb3I6IzMzMzsgZm9udC13ZWlnaHQ6Ym9sZDsg IGJhY2tncm91bmQ6IHVybChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL3JkLm1hcmNhX29w aW5pb25fYXV0b3IuZ2lmKSBuby1yZXBlYXQgMHB4IDZweDsgbGluZS1oZWlnaHQ6MTRweDsgfQkJLm9w aW5pb24gLmZlY2hheyBmbG9hdDpyaWdodDsgZm9udC1zaXplOjEwcHg7IGxpbmUtaGVpZ2h0OjE0cHg7 fQ0KLm9waW5pb24gLmhvcmF7IGNvbG9yOiM5NDAwMDA7fQ0KLm9waW5pb24gLnRleHRveyBjbGVhcjpi b3RoOyBwYWRkaW5nOjNweCAwIDEwcHggMTBweDsgd29yZC13cmFwOiBicmVhay13b3JkO30NCi5kZXRh bGxlcy1vcGluaW9ueyBjbGVhcjpib3RoO30NCi5mYXZvcmNvbnRyYXsgZmxvYXQ6bGVmdDsgcGFkZGlu ZzowcHggMCA2cHggMDsgZm9udC1zaXplOjExcHg7IGNvbG9yOiM2RDZENkQ7fQ0KLmZvcm1kZW51bmNp YXJ7IGNsZWFyOmxlZnQ7IHBhZGRpbmc6NnB4IDAgNnB4IDB9DQpzcGFuLmFmYXZvcixhLmFmYXZvcjpo b3ZlcnsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzY2Q0MwMDsgZGlzcGxheTpibG9jazsgcGFkZGlu Zzo2cHggNnB4IDZweCAyMnB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxh LmVzL2ltZy9yZC5pY29fYWZhdm9yLmdpZikgbm8tcmVwZWF0IDBweCA0cHg7IGZsb2F0OmxlZnQ7fQ0K c3Bhbi5lbmNvbnRyYSxhLmVuY29udHJhOmhvdmVyeyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojQ0Mw MDAwOyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjZweCA2cHggNnB4IDIycHg7IGJhY2tncm91bmQ6IHVy bChodHRwOi8vd3d3Lm5vcnRlY2FzdGlsbGEuZXMvaW1nL3JkLmljb19lbmNvbnRyYS5naWYpIG5vLXJl cGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDRweDsgZmxvYXQ6bGVmdDt9DQphLmFmYXZvcnsg Y29sb3I6IzZENkQ2RDsgZGlzcGxheTpibG9jazsgcGFkZGluZzo2cHggNnB4IDZweCAyMnB4OyBiYWNr Z3JvdW5kOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5pY29fYWZhdm9yLmdp Zikgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggNHB4OyBmbG9hdDpsZWZ0O30NCmEu ZW5jb250cmF7Y29sb3I6IzZENkQ2RDsgZGlzcGxheTpibG9jazsgcGFkZGluZzo2cHggNnB4IDZweCAy MnB4OyBiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5pY29f ZW5jb250cmEuZ2lmKSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCA0cHg7IGZsb2F0 OmxlZnQ7fQ0KLmZhdm9yY29udHJhIC5tZW5zYWple2Rpc3BsYXk6YmxvY2s7IHBhZGRpbmc6NnB4OyBm bG9hdDpsZWZ0O30NCmEuaW5hZGVjdWFkb3sgZGlzcGxheTpibG9jazsgZmxvYXQ6cmlnaHQ7IHBhZGRp bmc6NHB4IDZweCA0cHggNnB4O30JDQphLmluYWRlY3VhZG8gaW1neyB2ZXJ0aWNhbC1hbGlnbjptaWRk bGU7IHBhZGRpbmc6MCA4cHggMCAwfQ0KDQoub3BpbmlvbiBhLm9waW5pb25fYWNjaW9ueyBmbG9hdDps ZWZ0OyBtYXJnaW46MCAwIDAgNXB4OyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxNnB4OyBoZWlnaHQ6MTVw eDsgb3ZlcmZsb3c6aGlkZGVuOyB0ZXh0LWluZGVudDotOTk5OXB4OyBmb250LXNpemU6MXB4OyBiYWNr Z3JvdW5kLWltYWdlOiB1cmwoaHR0cDovL3d3dy5ub3J0ZWNhc3RpbGxhLmVzL2ltZy9yZC5zcHJfYWNj aW9uX2NvbWVudGFyaW9zLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7fQ0KLm9waW5p b24gYS5kZXNhcHJvYmFyeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAwcHg7IH0ub3BpbmlvbiBh LmRlc2Fwcm9iYXI6aG92ZXJ7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNnB4OyB9Lm9waW5p b24gYS5lbGltaW5hcnsgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IDBweDsgfS5vcGluaW9uIGEuZWxp bWluYXI6aG92ZXJ7IGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTZweDsgfQ0KDQouYm90b25lc19s aXN0YWRveyBjbGVhcjpib3RoOyBwYWRkaW5nOjVweCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2lu OjAgYXV0bzt9DQouYm90b25lc19saXN0YWRvIC5saXN0YWRvX3NlZ3VpbWllbnRveyBoZWlnaHQ6MjVw eDsgYm9yZGVyOjFweCBzb2xpZCAjQ0VDRUNFOyBiYWNrZ3JvdW5kLWNvbG9yOiNGN0Y3Rjc7IGZvbnQt c2l6ZToxMHB4OyBjb2xvcjojMDAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHh9DQouYm90 b25lc19saXN0YWRvIC5saXN0YWRvX3NlZ3VpbWllbnRvIHN0cm9uZ3sgY29sb3I6IzkwMDt9DQoJCQkN Ci5mb3JtZGVudW5jaWFyeyBiYWNrZ3JvdW5kOiNGNkY2RjQgdXJsKGh0dHA6Ly93d3cubm9ydGVjYXN0 aWxsYS5lcy9pbWcvcmQuYnJkX3B1bnRvc0guZ2lmKSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlv bjogdG9wOyBwYWRkaW5nOjZweDt9DQouZm9ybWRlbnVuY2lhciBweyBjb2xvcjojMzMzMzMzOyBmb250 LXNpemU6MTBweDsgcGFkZGluZzowIDAgNnB4IDB9DQouZm9ybWRlbnVuY2lhciB0ZXh0YXJlYXsgd2lk dGg6NjYlOyBoZWlnaHQ6NTVweDsgbWFyZ2luOjAgNnB4IDAgMDsgZm9udC1mYW1pbHk6QXJpYWwsIEhl bHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOjExcHg7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5l fQ0KLmZvcm1kZW51bmNpYXIgLmdyYWNpYXN7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjhweCAw IDhweCAwfQ0KDQoNCi8qKi8NCi50YWdzX3JlbGFjaW9uYWRvc3sgY2xlYXI6Ym90aDsgcGFkZGluZzox NXB4IDAgMCAwO30NCi5hdHJfZW5jYWJ7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojNDc0NzQ3OyBsaW5l LWhlaWdodDoxOHB4OyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjAgMCAwIDVweH0NCi5hdHJfdGFn c3sgYm9yZGVyLXRvcDoxcHggc29saWQgI0M2QzhDQTsgYmFja2dyb3VuZC1jb2xvcjojRjdGN0Y3OyBw YWRkaW5nOjhweCAxMHB4OyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxNHB4OyBjb2xvcjojNDc0 NzQ3O30NCi5hdHJfdGFneyBkaXNwbGF5OmlubGluZTsgY29sb3I6IzQ3NDc0NzsgZm9udC13ZWlnaHQ6 bm9ybWFsOyB9DQo= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/css/rd.print.css" Content-Type: text/css Content-Transfer-Encoding: base64 Content-ID: ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.comentarios.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIENvbWVudGFyaW9zICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCgp2YXIgaWRzX25vdGljaWFzID0gJyc7CgpmdW5jdGlvbiBnZXROdW1D b21lbnRhcmlvc1BvcnRhZGEoaWQpIHsKCglpZHNfbm90aWNpYXMgPSAoaWRzX25vdGljaWFzICE9ICcn KSA/IGlkc19ub3RpY2lhcyArICd8JyArIGlkIDogaWQ7CgoJaWYgKHdpbmRvdy5kb2N1bWVudC5nZXRF bGVtZW50QnlJZCgnbnVtLWNvbWVudGFyaW9zLScgKyBpZCkpIHdpbmRvdy5kb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgnbnVtLWNvbWVudGFyaW9zLScgKyBpZCkuaW5uZXJIVE1MID0gJ0NvbWVudGEgZXN0YSBu b3RpY2lhJzsKCiB9CgogZnVuY3Rpb24gc2V0TnVtQ29tZW50YXJpb3NQb3J0YWRhKGlkLCB2KSB7Cgog CXYgPSB0eXBlb2YodikgIT0gJ3VuZGVmaW5lZCcgPyB2IDogJyc7CgogCXZhciBkaXI7CgogCWlmIChp ZCkgewogCQl2YXIgaHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKCiAJCWRpciA9ICcvYmFja2Vu ZC9jb21lbnRhcmlvcycgKyB2ICsgJy9nZXRDb21lbnRhcmlvc1BvcnRhZGEucGhwP2lkPScgKyBpZCAr ICcmYnk9ZGF0ZSc7CgogICAgICAgICAgICAgICAgICAgIGh0dHAub3BlbignZ2V0JywgZGlyKTsKICAg ICAgICAgICAgICAgICAgICBodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAg CQkJCSBpZihodHRwLnJlYWR5U3RhdGUgPT0gNCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAJ aWYgKGh0dHAucmVzcG9uc2VUZXh0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmFyIGNhbXBvcyA9IGh0dHAucmVzcG9uc2VUZXh0LnNwbGl0KCd8Jyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpbWl0ZSA9IGNhbXBvcy5sZW5n dGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSBsaW1p dGUgLSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJY2FtcG9zMiA9IGNhbXBvc1tp XS5zcGxpdCgnQCcpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCXZhciBudW0gPSBjYW1wb3MyWzFdOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobnVtKSB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJY2FzZSAnMCc6CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCWlmICh3aW5kb3cuZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoJ251bS1jb21lbnRhcmlvcy0nICsgY2FtcG9zMlswXSkpIHdpbmRvdy5kb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgnbnVtLWNvbWVudGFyaW9zLScgKyBjYW1wb3MyWzBdKS5pbm5lckhUTUwgPSAn Q29tZW50YSBlc3RhIG5vdGljaWEnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCQlicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAljYXNlICcxJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAkJaWYgKHdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVt LWNvbWVudGFyaW9zLScgKyBjYW1wb3MyWzBdKSkgd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCdudW0tY29tZW50YXJpb3MtJyArIGNhbXBvczJbMF0pLmlubmVySFRNTCA9ICc8c3Ryb25nPicgKyBu dW0gKyAnPC9zdHJvbmc+IENvbWVudGFyaW8nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCQlicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAlkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCQlpZiAod2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCdudW0tY29tZW50YXJpb3MtJyArIGNhbXBvczJbMF0pKSB3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoJ251bS1jb21lbnRhcmlvcy0nICsgY2FtcG9zMlswXSkuaW5uZXJIVE1MID0gJzxzdHJvbmc+ JyArIG51bSArICc8L3N0cm9uZz4gQ29tZW50YXJpb3MnOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCQlicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 aGlsZSAoaS0tKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAg ICAgIGh0dHAuc2VuZChudWxsKTsKIAl9CiB9CgogICAJZnVuY3Rpb24gZ2V0TnVtQ29tZW50YXJpb3Mo aWQpIHsKCWlmIChpZCkgewoJCXZhciBodHRwID0gY3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJCS8vaHR0 cC5vcGVuKCJnZXQiLCAiL2JhY2tlbmQvY29tZW50YXJpb3MvZ2V0Q29tZW50YXJpb3MucGhwP2lkPSIg KyBpZCArICImYnk9ZGF0ZSZyPSIgKyBNYXRoLnJhbmRvbSgpKTsKCQlodHRwLm9wZW4oImdldCIsICIv YmFja2VuZC9jb21lbnRhcmlvcy9nZXRDb21lbnRhcmlvcy5waHA/aWQ9IiArIGlkICsgIiZieT1kYXRl Iik7CgkJaHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CgoJCQlpZihodHRwLnJl YWR5U3RhdGUgPT0gNCl7CgkJCQlpZiAoaHR0cC5yZXNwb25zZVhNTCkgewoJCQkJCWlmIChodHRwLnJl c3BvbnNlVGV4dC5pbmRleE9mKCdjb21tZW50cycpICE9IC0xKSB7CgkJCQkJLy9pZiAoaHR0cC5yZXNw b25zZVhNTC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29tbWVudHMnKSkgewoJCQkJCQl2YXIgbnVtID0g aHR0cC5yZXNwb25zZVhNTC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndG90YWxfY29tbWVudHMnKVswXS5m aXJzdENoaWxkLmRhdGE7CgkJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVtLWNv bWVudGFyaW9zJykuaW5uZXJIVE1MID0gJygnICsgbnVtICsgJyknOwoJCQkJCX0KCgkJCQl9CgkJCX0K CQl9OwoJCWh0dHAuc2VuZChudWxsKTsKCX0KfQoKCmZ1bmN0aW9uIGdldENvbWVudGFyaW9zKGlkLCBi eSwgdiwgYSkgewoKCXYgPSB0eXBlb2YodikgIT0gJ3VuZGVmaW5lZCcgPyB2IDogJyc7CglhID0gdHlw ZW9mKGEpICE9ICd1bmRlZmluZWQnID8gYSA6IDE7CgoJdmFyIGRpcjsKCglpZiAoaWQpIHsKCQl2YXIg aHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKCgkJZGlyID0gJy9iYWNrZW5kL2NvbWVudGFyaW9z JyArIHYgKyAnL2dldENvbWVudGFyaW9zLnBocD9pZD0nICsgaWQgKyAnJmJ5PScgKyBieSArIChhID8g JycgOiAnJnI9JyArIE1hdGgucmFuZG9tKCkpOwoKCQlodHRwLm9wZW4oJ2dldCcsIGRpcik7CgkJaHR0 cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CgoJCQlpZihodHRwLnJlYWR5U3RhdGUg PT0gNCl7CgkJCQlpZiAoaHR0cC5yZXNwb25zZVhNTCkgewoJCQkJCWlmIChodHRwLnJlc3BvbnNlVGV4 dC5pbmRleE9mKCdjb21tZW50cycpICE9IC0xKSB7CgoJCQkJCQlldmFsKCdtdWVzdHJhQ29tZW50YXJp b3MnICsgdiArICcoaHR0cC5yZXNwb25zZVhNTCknKTsKCgkJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRF bGVtZW50QnlJZCgnbG9tYXNyZWNpZW50ZScpLmNsYXNzTmFtZSA9IChieSA9PSAnZGF0ZScpID8gJ2Fj dGl2bycgOiAnJzsKCQkJCQkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb21hc3ZhbG9y YWRvJykuY2xhc3NOYW1lID0gKGJ5ID09ICd2b3RlcycpID8gJ2FjdGl2bycgOiAnJzsKCQkJCQl9CgoJ CQkJfQoJCQl9CgkJfTsKCQlodHRwLnNlbmQobnVsbCk7Cgl9Cn0KCgoKZnVuY3Rpb24gbXVlc3RyYUNv bWVudGFyaW9zKHJlc3BvbnNlKSB7CgoJdmFyIGNvbnRlbmlkbzsKCXZhciBodG1sOwoJdmFyIGZlY2hh X2xvYWQgPSBuZXcgRGF0ZSgpOwoJdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsKCXZhciBw b3NpdGl2ZV92b3RlczsKCXZhciBuZWdhdGl2ZV92b3RlczsKCgl2YXIgbGltaXRlID0gcmVzcG9uc2Uu Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NvbW1lbnQnKS5sZW5ndGg7CglodG1sID0gJzxkaXYgY2xhc3M9 Im51bW9waW5pb25lcyI+PHNwYW4+JyArIHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0b3Rh bF9jb21tZW50cycpWzBdLmZpcnN0Q2hpbGQuZGF0YSArICcgT1BJTklPTkVTPC9zcGFuPjwvZGl2Pic7 CgoJbGltaXRlX2IgPSAobGltaXRlID4gNSkgPyA1IDogbGltaXRlOwoKCWZvciAoaSA9IDA7IGkgPCBs aW1pdGVfYjsgaSsrKSB7CgoJCWlkID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lkJylb aV0uZmlyc3RDaGlsZC5kYXRhOwoJCWZlY2hhID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUo J2RhdGUnKVtpXS5maXJzdENoaWxkLmRhdGE7CgkJY2FtcG9zID0gZmVjaGEuc3BsaXQoJyAnKTsKCQlo b3JhID0gY2FtcG9zWzNdOwoJCW5vbWJyZSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdu YW1lJylbaV0uZmlyc3RDaGlsZCA/IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCduYW1lJylb aV0uZmlyc3RDaGlsZC5kYXRhIDogJyc7CgkJaWYgKGJyb3dzZXIgPT0gJ01pY3Jvc29mdCBJbnRlcm5l dCBFeHBsb3JlcicpewoJCQl0ZXh0byA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjb250 ZW50JylbaV0uZmlyc3RDaGlsZC5kYXRhOwoJCX0KCQllbHNlIHsKCQkJdGV4dG8gPSByZXNwb25zZS5n ZXRFbGVtZW50c0J5VGFnTmFtZSgnY29udGVudCcpW2ldLmNoaWxkTm9kZXNbMV0uZGF0YTsKCQl9CgoJ CXBvc2l0aXZlX3ZvdGVzID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Bvc2l0aXZlX3Zv dGVzJylbaV0uZmlyc3RDaGlsZC5kYXRhOwoJCW5lZ2F0aXZlX3ZvdGVzID0gcmVzcG9uc2UuZ2V0RWxl bWVudHNCeVRhZ05hbWUoJ25lZ2F0aXZlX3ZvdGVzJylbaV0uZmlyc3RDaGlsZC5kYXRhOwoKCQlmZWNo YSA9IGNhbXBvc1syXSArICIvIiArIGNhbXBvc1sxXSArICIvIiArIGNhbXBvc1s1XTsKCgkJY29udGVu aWRvID0gJwk8ZGl2IGNsYXNzPSJvcGluaW9uIj4nOwogICAgICAgICAgICAgIAljb250ZW5pZG8gKz0g JzxkaXYgY2xhc3M9ImZlY2hhIj4nICsgZmVjaGEgKyAnIHwgPHNwYW4gY2xhc3M9ImhvcmEiPicgKyBo b3JhICsgJzwvc3Bhbj48L2Rpdj4nOwogICAJCWNvbnRlbmlkbyArPSAnPGgzPicgKyB1bmVzY2FwZShu b21icmUpICsgJzwvaDM+JzsKICAgICAgICAgICAgICAJY29udGVuaWRvICs9ICc8ZGl2IGNsYXNzPSJ0 ZXh0byI+JyArIHVuZXNjYXBlKHRleHRvKSArICc8L2Rpdj4nOwogICAgICAgICAgICAgIAljb250ZW5p ZG8gKz0gJzxkaXYgY2xhc3M9ImRldGFsbGVzLW9waW5pb24iPic7CiAgICAgICAgICAgICAgICBjb250 ZW5pZG8gKz0gJzxkaXYgY2xhc3M9ImZhdm9yY29udHJhIiBpZD0iZmF2b3Jjb250cmEtJyArIGlkICsg JyI+PGEgaHJlZj0iamF2YXNjcmlwdDp2b3RhckNvbWVudGFyaW8oJyArIGlkKyAnLCAxKTsiIGNsYXNz PSJhZmF2b3IiPkEnOwogICAgICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgZmF2b3IgKCcgKyBw b3NpdGl2ZV92b3RlcyArICcpPC9hPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm90YXJDb21lbnRhcmlvKCcg KyBpZCArICcsIDIpOyIgY2xhc3M9ImVuY29udHJhIj5Fbic7CiAgICAgICAgICAgICAgICBjb250ZW5p ZG8gKz0gJyAgICBjb250cmEgKCcgKyBuZWdhdGl2ZV92b3RlcyArICcpPC9hPjwvZGl2Pic7CiAgICAg ICAgICAgICAgICBjb250ZW5pZG8gKz0gJzxkaXYgY2xhc3M9ImluYWRlY3VhZG8iIGlkPSJpbmFkZWN1 YWRvYm90b24iPjxhIGhyZWY9ImphdmFzY3JpcHQ6bW9zdHJhckRlbnVuY2lhcignICsgaWQgKyAnKTsi IGNsYXNzPSJib3RvbiIgdGl0bGU9IkNvbWVudGFyaW8gaW5hZGVjdWFkbyI+PGltZyBzcmM9Ii9pbWcv aWNvX2luYWRlY3VhZG8uZ2lmIiBhbHQ9IkNvbWVudGFyaW8gaW5hZGVjdWFkbyIgLz5Db21lbnRhcmlv JzsKICAgICAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgIGluYWRlY3VhZG88L2E+PC9kaXY+JzsK ICAgICAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pic7CiAg ICAgICAgICAgICAgCWNvbnRlbmlkbyArPSAnPC9kaXY+JzsKICAgICAgICAgICAgICAJY29udGVuaWRv ICs9ICc8ZGl2IGNsYXNzPSJmb3JtZGVudW5jaWFyIiBpZD0iZm9ybWRlbnVuY2lhci0nICsgaWQgKyAn IiBzdHlsZT0iZGlzcGxheTpub25lOyI+JzsKICAgICAgICAgICAgICAJY29udGVuaWRvICs9ICc8Zm9y bSBuYW1lPSJmb3JtdWxhcmlvXycgKyBpZCArICciIGFjdGlvbj0iL2JhY2tlbmQvQ09NRU5UQVJJT1Mu ZGVudW5jaWFyQ29tZW50YXJpby5waHAiIG1ldGhvZD0icG9zdCI+JzsKICAgICAgICAgICAgICAgIGNv bnRlbmlkbyArPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibG9hZF90aW1lIiB2YWx1ZT0iJyAr IGZlY2hhX2xvYWQuZ2V0VGltZSgpICsgJyI+JzsKCQljb250ZW5pZG8gKz0gJzxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9InN1Ym1pdF90aW1lIiB2YWx1ZT0iMCI+JzsKCQljb250ZW5pZG8gKz0gJzxpbnB1 dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlkIiB2YWx1ZT0iJyArIGlkICsgJyI+JzsKCQljb250ZW5pZG8g Kz0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFuY2hvciIgdmFsdWU9ImNvbWVudGFyaW9zIj4n OwogICAgICAgICAgICAgICAgY29udGVuaWRvICs9ICc8cD5Qb3IgZmF2b3Igc2VsZWNjaW9uYSBlbCBt b3Rpdm8gcG9yIGVsIHF1ZSBjcmVlcyBxdWUgZXN0ZSBjb21lbnRhcmlvJzsKICAgICAgICAgICAgICAg IGNvbnRlbmlkbyArPSAnICBlcyBpbmFkZWN1YWRvIDwvcD4nOwogICAgICAgICAgICAgICAgY29udGVu aWRvICs9ICc8dGV4dGFyZWEgbmFtZT0iZGVudW5jaWFfJyArIGlkICsgJyI+RXNjcmliYSBhcXXDrSBl bCBtb3Rpdm8gZGUgbGEgZGVudW5jaWEuPC90ZXh0YXJlYT4nOwogICAgICAgICAgICAgICAgY29udGVu aWRvICs9ICc8YSBocmVmPSJqYXZhc2NyaXB0OmRlbnVuY2lhckNvbWVudGFyaW8oJyArIGlkICsgJyk7 IiBjbGFzcz0iYm90b24iPmRlbnVuY2lhciBjb21lbnRhcmlvPC9hPic7CiAgICAgICAgICAgICAgICBj b250ZW5pZG8gKz0gJzwvbGFiZWw+JzsKICAgICAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnPGRpdiBj bGFzcz0iY2xlYXIiPjwvZGl2Pic7CiAgICAgICAgICAgICAgCWNvbnRlbmlkbyArPSAnPC9kaXY+JzsK ICAgICAgICAgICAgICAJY29udGVuaWRvICs9ICc8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+JzsKICAg ICAgICAgICAgICAJY29udGVuaWRvICs9ICc8L2Zvcm0+JzsKICAgICAgICAgICAgCWNvbnRlbmlkbyAr PSAnPC9kaXY+JzsKCiAgICAgICAgICAgIAlodG1sICs9IGNvbnRlbmlkbzsKICAgICAgICAJfQoKICAg ICAgICAJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0YWRvLWNvbWVudGFyaW9zJyku aW5uZXJIVE1MID0gaHRtbDsKCiAgICAgICAgCXZlck1hcyhsaW1pdGUpOwoKfQoKZnVuY3Rpb24gbXVl c3RyYUNvbWVudGFyaW9zMihyZXNwb25zZSwgcGFnaW5hKSB7Cgl2YXIgY29udGVuaWRvOwoJdmFyIGh0 bWw7Cgl2YXIgZmVjaGFfbG9hZCA9IG5ldyBEYXRlKCk7Cgl2YXIgYnJvd3NlciA9IG5hdmlnYXRvci5h cHBOYW1lOwoJdmFyIHBvc2l0aXZlX3ZvdGVzOwoJdmFyIG5lZ2F0aXZlX3ZvdGVzOwoJdmFyIG1heF9j b21lbnRhcmlvcyA9IDU7CgoJcGFnaW5hID0gdHlwZW9mKHBhZ2luYSkgIT0gJ3VuZGVmaW5lZCcgPyBw YWdpbmEgOiAxOwoKCXZhciBsaW1pdGUgPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29t bWVudCcpLmxlbmd0aDsKCWh0bWwgPSAnPGRpdiBjbGFzcz0ibnVtb3BpbmlvbmVzIj48c3Bhbj4nICsg cmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RvdGFsX2NvbW1lbnRzJylbMF0uZmlyc3RDaGls ZC5kYXRhICsgJyBPUElOSU9ORVM8L3NwYW4+PC9kaXY+JzsKCglpZiAod2luZG93LmRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCdudW0tY29tZW50YXJpb3MnKSkgewoJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgnbnVtLWNvbWVudGFyaW9zJykuaW5uZXJIVE1MID0gJygnICsgcmVzcG9uc2UuZ2V0RWxl bWVudHNCeVRhZ05hbWUoJ3RvdGFsX2NvbW1lbnRzJylbMF0uZmlyc3RDaGlsZC5kYXRhICsgJyknOwoJ fQoKCXZhciBsaW1pdGVfYiA9ICgoKChwYWdpbmEgLSAxKSAqIG1heF9jb21lbnRhcmlvcykgKyBtYXhf Y29tZW50YXJpb3MpID4gbGltaXRlKSA/IGxpbWl0ZSA6ICgoKHBhZ2luYSAtIDEpICogbWF4X2NvbWVu dGFyaW9zKSArIG1heF9jb21lbnRhcmlvcyk7Cgl2YXIgaW5pY2lvID0gKHBhZ2luYSAtIDEpICogbWF4 X2NvbWVudGFyaW9zOwoJdmFyIHBhZ2luYXMgPSBNYXRoLmNlaWwobGltaXRlIC8gbWF4X2NvbWVudGFy aW9zKTsKCgl2YXIgcGFnaW5hX3ZlciA9IChwYWdpbmEgPCAxMCkgPyAnMCcgKyBwYWdpbmEgOiBwYWdp bmE7Cgl2YXIgcGFnaW5hc192ZXIgPSAocGFnaW5hcyA8IDEwKSA/ICcwJyArIHBhZ2luYXMgOiBwYWdp bmFzOwoKCWZvciAodmFyIGkgPSBpbmljaW87IGkgPCBsaW1pdGVfYjsgaSsrKSB7CgoJCXZhciBpZCA9 IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZCcpW2ldLmZpcnN0Q2hpbGQuZGF0YTsKCgkJ dmFyIGZlY2hhID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RhdGUnKVtpXS5maXJzdENo aWxkLmRhdGE7CgkJdmFyIGNhbXBvcyA9IGZlY2hhLnNwbGl0KCcgJyk7CgkJdmFyIGhvcmEgPSBjYW1w b3NbM107CgoJCWZlY2hhID0gY2FtcG9zWzJdICsgIi8iICsgY2FtcG9zWzFdICsgIi8iICsgY2FtcG9z WzVdOwoKCQkvKgoJCXZhciBmZWNoYSA9IHJlc3BvbnNlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkYXRl JylbaV0uZmlyc3RDaGlsZC5kYXRhOwoJCXZhciBob3JhID0gZmVjaGEuc3Vic3RyKDgsMikgKyAnOicg KyBmZWNoYS5zdWJzdHIoMTAsMikKCQkqLwoJCXZhciBub21icmUgPSByZXNwb25zZS5nZXRFbGVtZW50 c0J5VGFnTmFtZSgnbmFtZScpW2ldLmZpcnN0Q2hpbGQgPyByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFn TmFtZSgnbmFtZScpW2ldLmZpcnN0Q2hpbGQuZGF0YSA6ICcnOwoJCWlmIChicm93c2VyID09ICdNaWNy b3NvZnQgSW50ZXJuZXQgRXhwbG9yZXInKXsKCQkJdmFyIHRleHRvID0gcmVzcG9uc2UuZ2V0RWxlbWVu dHNCeVRhZ05hbWUoJ2NvbnRlbnQnKVtpXS5maXJzdENoaWxkLmRhdGE7CgkJfQoJCWVsc2UgewoJCQl2 YXIgdGV4dG8gPSByZXNwb25zZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29udGVudCcpW2ldLmNoaWxk Tm9kZXNbMV0uZGF0YTsKCQl9CgoJCXBvc2l0aXZlX3ZvdGVzID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNC eVRhZ05hbWUoJ3Bvc2l0aXZlX3ZvdGVzJylbaV0uZmlyc3RDaGlsZC5kYXRhOwoJCW5lZ2F0aXZlX3Zv dGVzID0gcmVzcG9uc2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ25lZ2F0aXZlX3ZvdGVzJylbaV0uZmly c3RDaGlsZC5kYXRhOwoJCS8vZmVjaGEgPSBmZWNoYS5zdWJzdHIoNiwyKSArICIvIiArIGZlY2hhLnN1 YnN0cig0LDIpICsgIi8iICsgZmVjaGEuc3Vic3RyKDAsNCk7CgkJY29udGVuaWRvID0gJwk8ZGl2IGNs YXNzPSJvcGluaW9uIj4nOwoJCWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iZmVjaGEiPicgKyBmZWNo YSArICcgfCA8c3BhbiBjbGFzcz0iaG9yYSI+JyArIGhvcmEgKyAnPC9zcGFuPjwvZGl2Pic7CiAgIAkJ Y29udGVuaWRvICs9ICc8aDM+JyArIHVuZXNjYXBlKG5vbWJyZSkgKyAnPC9oMz4nOwoJCWNvbnRlbmlk byArPSAnPGRpdiBjbGFzcz0idGV4dG8iPicgKyB1bmVzY2FwZSh0ZXh0bykgKyAnPC9kaXY+JzsKCQlj b250ZW5pZG8gKz0gJzxkaXYgY2xhc3M9ImRldGFsbGVzLW9waW5pb24iPic7CgkJY29udGVuaWRvICs9 ICc8ZGl2IGNsYXNzPSJmYXZvcmNvbnRyYSIgaWQ9ImZhdm9yY29udHJhLScgKyBpZCArICciPjxhIGhy ZWY9ImphdmFzY3JpcHQ6dm90YXJDb21lbnRhcmlvKCcgKyBpZCsgJywgMSwgMik7IiBjbGFzcz0iYWZh dm9yIj5BJzsKCQljb250ZW5pZG8gKz0gJyAgICBmYXZvciAoJyArIHBvc2l0aXZlX3ZvdGVzICsgJyk8 L2E+PGEgaHJlZj0iamF2YXNjcmlwdDp2b3RhckNvbWVudGFyaW8oJyArIGlkICsgJywgMiwgMik7IiBj bGFzcz0iZW5jb250cmEiPkVuJzsKCQljb250ZW5pZG8gKz0gJyAgICBjb250cmEgKCcgKyBuZWdhdGl2 ZV92b3RlcyArICcpPC9hPjwvZGl2Pic7CgkJY29udGVuaWRvICs9ICc8ZGl2IGNsYXNzPSJpbmFkZWN1 YWRvIiBpZD0iaW5hZGVjdWFkb2JvdG9uIj48YSBocmVmPSJqYXZhc2NyaXB0Om1vc3RyYXJEZW51bmNp YXIoJyArIGlkICsgJyk7IiBjbGFzcz0iYm90b24iIHRpdGxlPSJDb21lbnRhcmlvIGluYWRlY3VhZG8i PjxpbWcgc3JjPSIvaW1nL2ljb19pbmFkZWN1YWRvLmdpZiIgYWx0PSJDb21lbnRhcmlvIGluYWRlY3Vh ZG8iIC8+Q29tZW50YXJpbyc7CgkJY29udGVuaWRvICs9ICcgICAgaW5hZGVjdWFkbzwvYT48L2Rpdj4n OwoJCWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pic7CgkJY29udGVuaWRvICs9 ICc8L2Rpdj4nOwoJCWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iZm9ybWRlbnVuY2lhciIgaWQ9ImZv cm1kZW51bmNpYXItJyArIGlkICsgJyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPic7CgkJY29udGVuaWRv ICs9ICc8Zm9ybSBuYW1lPSJmb3JtdWxhcmlvXycgKyBpZCArICciIGFjdGlvbj0iL2JhY2tlbmQvY29t ZW50YXJpb3MyL2RlbnVuY2lhckNvbWVudGFyaW8ucGhwIiBtZXRob2Q9InBvc3QiPic7CgkJY29udGVu aWRvICs9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsb2FkX3RpbWUiIHZhbHVlPSInICsgZmVj aGFfbG9hZC5nZXRUaW1lKCkgKyAnIj4nOwoJCWNvbnRlbmlkbyArPSAnPGlucHV0IHR5cGU9ImhpZGRl biIgbmFtZT0ic3VibWl0X3RpbWUiIHZhbHVlPSIwIj4nOwoJCWNvbnRlbmlkbyArPSAnPGlucHV0IHR5 cGU9ImhpZGRlbiIgbmFtZT0iaWQiIHZhbHVlPSInICsgaWQgKyAnIj4nOwoJCWNvbnRlbmlkbyArPSAn PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYW5jaG9yIiB2YWx1ZT0iY29tZW50YXJpb3MiPic7CgkJ Y29udGVuaWRvICs9ICc8cD5Qb3IgZmF2b3Igc2VsZWNjaW9uYSBlbCBtb3Rpdm8gcG9yIGVsIHF1ZSBj cmVlcyBxdWUgZXN0ZSBjb21lbnRhcmlvJzsKCQljb250ZW5pZG8gKz0gJyAgZXMgaW5hZGVjdWFkbyA8 L3A+JzsKCQljb250ZW5pZG8gKz0gJzx0ZXh0YXJlYSBuYW1lPSJkZW51bmNpYSI+RXNjcmliYSBhcXXD rSBlbCBtb3Rpdm8gZGUgbGEgZGVudW5jaWEuPC90ZXh0YXJlYT4nOwoJCWNvbnRlbmlkbyArPSAnPGEg aHJlZj0iamF2YXNjcmlwdDpkZW51bmNpYXJDb21lbnRhcmlvKCcgKyBpZCArICcpOyIgY2xhc3M9ImJv dG9uIj5kZW51bmNpYXIgY29tZW50YXJpbzwvYT4nOwoJCWNvbnRlbmlkbyArPSAnPC9sYWJlbD4nOwoJ CWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pic7CgkJY29udGVuaWRvICs9ICc8 L2Rpdj4nOwoJCWNvbnRlbmlkbyArPSAnPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pic7CgkJY29udGVu aWRvICs9ICc8L2Zvcm0+JzsKCQljb250ZW5pZG8gKz0gJzwvZGl2Pic7CgoJCWh0bWwgKz0gY29udGVu aWRvOwoJfQoKCWlmIChsaW1pdGUgPiBtYXhfY29tZW50YXJpb3MpIHsKCQlodG1sICs9ICc8ZGl2IGNs YXNzPSJib3RvbmVzLWxpc3RhZG8iPjxhIGlkPSJhbnRlcmlvciIgaHJlZj0iamF2YXNjcmlwdDpuYWRh KCkiIGNsYXNzPSJib3RvbiBhbnRlcmlvciI+Jmx0OyZsdDsnOwogICAgICAgICAgICAgIAlodG1sICs9 ICdBbnRlcmlvcjwvYT4mbmJzcDsmbmJzcDs8c3Bhbj48c3Ryb25nPicgKyBwYWdpbmFfdmVyICsgJzwv c3Ryb25nPi8nICsgcGFnaW5hc192ZXIgKyAnPC9zcGFuPiZuYnNwOyZuYnNwOzxhIGlkPSJzaWd1aWVu dGUiIGhyZWY9ImphdmFzY3JpcHQ6bmFkYSgpIiBjbGFzcz0iYm90b24gc2lndWllbnRlIj5TaWd1aWVu dGUnOwogICAgICAgICAgICAgIAlodG1sICs9ICcmZ3Q7Jmd0OyA8L2E+PC9kaXY+JzsKCX0KCgl3aW5k b3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpc3RhZG8tY29tZW50YXJpb3MnKS5pbm5lckhUTUwg PSBodG1sOwoKCglpZiAobGltaXRlID4gbWF4X2NvbWVudGFyaW9zKSB7CgoJCXdpbmRvdy5kb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgnYW50ZXJpb3InKS5vbmNsaWNrID0gZnVuY3Rpb24gKCkgewoJCQlpZiAo cGFnaW5hICE9IDEpIHsKCQkJCW11ZXN0cmFDb21lbnRhcmlvczIocmVzcG9uc2UsIChwYWdpbmEgLSAx KSk7CgkJCX0KCQkJZWxzZSB7CgkJCQltdWVzdHJhQ29tZW50YXJpb3MyKHJlc3BvbnNlLCBwYWdpbmEp OwoJCQl9CgoJCX0KCgkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaWd1aWVudGUnKS5v bmNsaWNrID0gZnVuY3Rpb24gKCkgewoJCQlpZiAocGFnaW5hICE9IHBhZ2luYXMpIHsKCQkJCW11ZXN0 cmFDb21lbnRhcmlvczIocmVzcG9uc2UsIChwYWdpbmEgKyAxKSk7CgkJCX0KCQkJZWxzZSB7CgkJCQlt dWVzdHJhQ29tZW50YXJpb3MyKHJlc3BvbnNlLCBwYWdpbmEpOwoJCQl9CgoJCX0KCX0KCn0KCmZ1bmN0 aW9uIG5hZGEoKSB7CglyZXR1cm47Cn0KCgpmdW5jdGlvbiBkZXNjb25lY3RhcigpIHsKCXdpbmRvdy5s b2NhdGlvbiA9ICcvYmFja2VuZC9kZXNjb25lY3Rhci5waHA/dXJsPScgKyB3aW5kb3cubG9jYXRpb24u aHJlZjsKCn0KCmZ1bmN0aW9uIGNvbmVjdGFyKCkgewoKCXZhciBkaXJlY2Npb247CgoJaWYgKHdpbmRv dy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJz8nKSA+IDApIHsKCQl2YXIgY2FtcG9zID0g d2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTsKCQlkaXJlY2Npb24gPSBjYW1w b3NbMF07Cgl9CgllbHNlIHsKCQlkaXJlY2Npb24gPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJl ZjsKCX0KCgl2YXIgcXMgPSAndXJsPScgKyBkaXJlY2Npb247CglxcyArPSAnJmVtYWlsPScgKyB3aW5k b3cuZG9jdW1lbnQubG9ndWVvLmVtYWlsLnZhbHVlOwoJcXMgKz0gJyZjb250cmFzZW5hPScgKyB3aW5k b3cuZG9jdW1lbnQubG9ndWVvLmNvbnRyYXNlbmEudmFsdWU7CgoJd2luZG93LmxvY2F0aW9uID0gJy9i YWNrZW5kL2NvbmVjdGFyLnBocD8nICsgcXM7Cn0KCmZ1bmN0aW9uIGVudmlhQ29tZW50YXJpbygpIHsK ICB2YXIgZmVjaGFfc3VibWl0ID0gbmV3IERhdGUoKTsKICAgICAgdmFyIGZpbHRlcj0vXihbXHctXSso PzpcLltcdy1dKykqKUAoKD86W1x3LV0rXC4pKlx3W1x3LV17MCw2Nn0pXC4oW2Etel17Miw2fSg/Olwu W2Etel17Mn0pPykkL2k7CgogIGlmICh3aW5kb3cuZG9jdW1lbnQuZm9ybXVsYXJpby5hdXRob3JfbmFt ZS52YWx1ZSA9PSAnJykgewogIAlhbGVydCgnUG9yIGZhdm9yLCBpbnRyb2R1Y2UgdHUgbm9tYnJlJyk7 CiAgCXdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLmF1dGhvcl9uYW1lLmZvY3VzKCk7CiAgCXJldHVy bjsKICB9CgogIGlmICh3aW5kb3cuZG9jdW1lbnQuZm9ybXVsYXJpby5hdXRob3JfZW1haWwudmFsdWUg PT0gJycpIHsKICAJYWxlcnQoJ1BvciBmYXZvciwgaW50cm9kdWNlIHR1IGVtYWlsJyk7CiAgCXdpbmRv dy5kb2N1bWVudC5mb3JtdWxhcmlvLmF1dGhvcl9lbWFpbC5mb2N1cygpOwogIAlyZXR1cm47CiAgfQoK ICBpZiAoIWZpbHRlci50ZXN0KHdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLmF1dGhvcl9lbWFpbC52 YWx1ZSkpIHsKCWFsZXJ0KCdFbCBlbWFpbCBpbnRyb2R1Y2lkbyBubyBlcyB2w6FsaWRvJyk7Cgkgd2lu ZG93LmRvY3VtZW50LmZvcm11bGFyaW8uYXV0aG9yX2VtYWlsLmZvY3VzKCk7CiAgICAgICAgICAgIHJl dHVybjsKCiAgfQoKICBpZiAod2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS52YWx1ZSA9 PSAnJykgewogIAlhbGVydCgnUG9yIGZhdm9yLCBpbnRyb2R1Y2UgdHUgb3BpbmnDs24nKTsKICAJd2lu ZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS5mb2N1cygpOwogIAlyZXR1cm47CiAgfQoKICBp ZiAoIXdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLmFjZXB0by5jaGVja2VkKSB7CiAgCWFsZXJ0KCdU aWVuZXMgcXVlIGFjZXB0YXIgbGFzIGNvbmRpY2lvbmVzIGRlIHVzbycpOwogIAlyZXR1cm47CiAgfQoK ICB2YXIgcmVnaXN0cmFkbyA9IGdldENvb2tpZSgncmVnaXN0cmFkbycpID8gJyAoVXN1YXJpbyByZWdp c3RyYWRvKScgOiAnJzsKCiAgd2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS52YWx1ZSA9 IHdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLm1lc3NhZ2UudmFsdWU7CiAgd2luZG93LmRvY3VtZW50 LmZvcm11bGFyaW8uYXV0aG9yX25hbWUudmFsdWUgPSB3aW5kb3cuZG9jdW1lbnQuZm9ybXVsYXJpby5h dXRob3JfbmFtZS52YWx1ZSArIHJlZ2lzdHJhZG87CgogIHdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlv LnN1Ym1pdF90aW1lLnZhbHVlID0gZmVjaGFfc3VibWl0LmdldFRpbWUoKTsKICB3aW5kb3cuZG9jdW1l bnQuZm9ybXVsYXJpby5zdWJtaXQoKTsKICBhbGVydCgnR3JhY2lhcyBwb3IgZXNjcmliaXIgdW4gY29t ZW50YXJpbycpOwp9CgpmdW5jdGlvbiB2b3RhckNvbWVudGFyaW8oaWQsIHRpcG8sIHYpIHsKCgl2ID0g dHlwZW9mKHYpICE9ICd1bmRlZmluZWQnID8gdiA6ICcnOwoKCXZhciBkaXI7CgoJaWYgKGlkKSB7CgkJ dmFyIGh0dHAgPSBjcmVhdGVSZXF1ZXN0T2JqZWN0KCk7CgoJCWRpciA9ICcvYmFja2VuZC9jb21lbnRh cmlvcycgKyB2ICsgJy92b3RhckNvbWVudGFyaW8ucGhwP2lkPScgKyBpZCArICcmdGlwbz0nICsgdGlw byArICcmcj0nICsgTWF0aC5yYW5kb20oKTsKCgkJaHR0cC5vcGVuKCdnZXQnLCBkaXIpOwoKCQlodHRw Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKCQkJaWYoaHR0cC5yZWFkeVN0YXRlID09 IDQpewoJCQkJaWYgKGh0dHAucmVzcG9uc2VUZXh0KSB7CgkJCQkJdmFyIHJlc3BvbnNlID0gaHR0cC5y ZXNwb25zZVRleHQ7CgoJCQkJCWlmIChyZXNwb25zZS5pbmRleE9mKCdvaycpKSB7CgkJCQkJCWlmICh0 aXBvID09IDEpIHsKCQkJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmF2b3Jjb250 cmEtJyArIGlkKS5pbm5lckhUTUwgPSAnPHNwYW4gY2xhc3M9ImFmYXZvciI+QSBmYXZvcjwvc3Bhbj4g PHNwYW4gY2xhc3M9Im1lbnNhamUiPnwgR3JhY2lhcyBwb3Igdm90YXI8L3NwYW4+JzsKCQkJCQkJfQoJ CQkJCQllbHNlIHsKCQkJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmF2b3Jjb250 cmEtJyArIGlkKS5pbm5lckhUTUwgPSAnPHNwYW4gY2xhc3M9ImVuY29udHJhIj5FbiBjb250cmE8L3Nw YW4+IDxzcGFuIGNsYXNzPSJtZW5zYWplIj58IEdyYWNpYXMgcG9yIHZvdGFyPC9zcGFuPic7CgkJCQkJ CX0KCQkJCQl9CgoJCQkJfQoJCQl9CgkJfTsKCQlodHRwLnNlbmQobnVsbCk7Cgl9Cn0KCmZ1bmN0aW9u IG1vc3RyYXJEZW51bmNpYXIoaWQpIHsKCXZhciBkaXNwbGF5ID0gd2luZG93LmRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCdmb3JtZGVudW5jaWFyLScgKyBpZCkuc3R5bGUuZGlzcGxheTsKCS8qCglpZiAoZGlz cGxheSA9PSAnbm9uZScgJiYgIWdldENvb2tpZSgncmVnaXN0cmFkbycpKSB7CgkJYWxlcnQoJ1BhcmEg ZGVudW5jaWFyIHVuIGNvbWVudGFyaW8gUmVnw61zdHJhdGUnKTsKCQlyZXR1cm47Cgl9CgkqLwoJd2lu ZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JtZGVudW5jaWFyLScgKyBpZCkuc3R5bGUuZGlz cGxheSA9IChkaXNwbGF5ID09ICdub25lJykgPyAnYmxvY2snIDogJ25vbmUnOwp9CgpmdW5jdGlvbiBk ZW51bmNpYXJDb21lbnRhcmlvKGlkKSB7Cgl2YXIgZmVjaGFfc3VibWl0ID0gbmV3IERhdGUoKTsKCWV2 YWwoJ3ZhciBmb3JtdSA9IHdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvXycgKyBpZCk7Cglmb3JtdS5z dWJtaXRfdGltZS52YWx1ZSA9IGZlY2hhX3N1Ym1pdC5nZXRUaW1lKCk7Cglmb3JtdS5zdWJtaXQoKTsK CSBhbGVydCgnR3JhY2lhcyBwb3IgZGVudW5jaWFyIGVsIGNvbWVudGFyaW8nKTsKCn0KCmZ1bmN0aW9u IG11ZXN0cmFMb2d1ZW8oKSB7Cgl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FydGxvZ2Vv Jykuc3R5bGUuZGlzcGxheSA9ICcnOwp9CgpmdW5jdGlvbiBib3JyYXJUZXh0bygpIHsKCWlmICh3aW5k b3cuZG9jdW1lbnQuZm9ybXVsYXJpby5tZXNzYWdlLnZhbHVlID09ICdlc2NyaWJlIGFxdcOtIHR1IGNv bWVudGFyaW8nKSB7CgkJd2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS52YWx1ZSA9ICcn OwoJfQp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogRklOIENvbWVudGFyaW9zICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCg== ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.noticias.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: ZnVuY3Rpb24gY2hlY2tlbWFpbChlbWFpbCkgewoJdmFyIGZpbHRlcj0vXihbXHctXSsoPzpcLltcdy1d KykqKUAoKD86W1x3LV0rXC4pKlx3W1x3LV17MCw2Nn0pXC4oW2Etel17Miw2fSg/OlwuW2Etel17Mn0p PykkL2kKCWlmIChmaWx0ZXIudGVzdChlbWFpbCkpIHsKCQlyZXR1cm4gdHJ1ZQoJfQoJZWxzZXsKCQly ZXR1cm4gZmFsc2U7Cgl9Cn0KCmZ1bmN0aW9uIGVudmlhck5vdGljaWEoKXsKCXZhciBtYXhfbG9uZ2l0 dWQgPSAxMjA7Cgl2YXIgZm9ybXVsYXJpbyA9ICB3aW5kb3cuZG9jdW1lbnQuZW52aW9fbm90aWNpYTsK CQoJdmFyIG5vbWJyZSA9IGZvcm11bGFyaW8ubm9tYnJlLnZhbHVlOwoJdmFyIGVtYWlsX3JlbWl0ZW50 ZSA9IGZvcm11bGFyaW8uZW1haWxfcmVtaXRlbnRlLnZhbHVlOwoJdmFyIHBhcmEgPSBmb3JtdWxhcmlv LnBhcmEudmFsdWU7Cgl2YXIgZW1haWxfZGVzdGluYXRhcmlvID0gZm9ybXVsYXJpby5lbWFpbF9kZXN0 aW5hdGFyaW8udmFsdWU7Cgl2YXIgY29tZW50YXJpbyA9IGZvcm11bGFyaW8uY29tZW50YXJpby52YWx1 ZTsKCQoJaWYgKCFub21icmUgfHwgIWVtYWlsX3JlbWl0ZW50ZSB8fCAhcGFyYSB8fCAhZW1haWxfZGVz dGluYXRhcmlvKSAgewoJCWFsZXJ0KCdObyBoYSByZWxsZW5hZG8gdG9kb3MgbG9zIGNhbXBvcycpOwoJ CXJldHVybjsJCgl9CgkKCWlmICghY2hlY2tlbWFpbChlbWFpbF9yZW1pdGVudGUpKSB7CgkJYWxlcnQo J0VsIGVtYWlsIGRlbCByZW1pdGVudGUgbm8gZXMgY29ycmVjdG8nKTsKCQlmb3JtdWxhcmlvLmVtYWls X3JlbWl0ZW50ZS5mb2N1cygpOwoJCXJldHVybjsJCgl9CgkKCQoJCglpZiAoIWNoZWNrZW1haWwoZW1h aWxfZGVzdGluYXRhcmlvKSkgewoJCWFsZXJ0KCdFbCBlbWFpbCBkZWwgZGVzdGluYXRhcmlvIG5vIGVz IGNvcnJlY3RvJyk7CgkJZm9ybXVsYXJpby5lbWFpbF9kZXN0aW5hdGFyaW8uZm9jdXMoKTsKCQlyZXR1 cm47CQoJfQoJCgl2YXIgaHR0cCA9IGNyZWF0ZVJlcXVlc3RPYmplY3QoKTsKCXZhciBxcyA9ICJub21i cmU9IiArIG5vbWJyZSArICImZW1haWxfcmVtaXRlbnRlPSIgKyBlbWFpbF9yZW1pdGVudGUgKyAiJnBh cmE9IiArIHBhcmE7CglxcyArPSAiJmVtYWlsX2Rlc3RpbmF0YXJpbz0iICsgZW1haWxfZGVzdGluYXRh cmlvICsgIiZjb21lbnRhcmlvPSIgKyBjb21lbnRhcmlvOwoJcXMgKz0gIiZ1cmw9IiArIHdpbmRvdy5k b2N1bWVudC5sb2NhdGlvbi5ocmVmOwoJaHR0cC5vcGVuKCJnZXQiLCAiL2JhY2tlbmQvZW52aWFyX25v dGljaWEucGhwPyIgKyBxcyArIiZyPSIgKyBNYXRoLnJhbmRvbSgpKTsKCWh0dHAub25yZWFkeXN0YXRl Y2hhbmdlID0gZnVuY3Rpb24gKCkgewoJCWlmKGh0dHAucmVhZHlTdGF0ZSA9PSA0KXsKCQkJaWYgKGh0 dHAucmVzcG9uc2VUZXh0KSB7CgkJCQlpZiAoaHR0cC5yZXNwb25zZVRleHQuaW5kZXhPZignT0snKSA+ IC0xKSB7CgkJCQkJdmFyIHVybF9tb3N0cmFyID0gKHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVm Lmxlbmd0aCA+IG1heF9sb25naXR1ZCkgPyB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZi5zdWJz dHIoMCwgbWF4X2xvbmdpdHVkKSArICIuLi4iIDogd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWY7 CgkJCQkJZWxIVE1MID0gIjxmb3JtIGFjdGlvbj0+PGRpdiBjbGFzcz1lbnZpYW5vdGljaWE+PGRpdiBj bGFzcz1lbnZpYW5vdGljaWFPSz48cD5TdSBjb3JyZW8gaGEgc2lkbyBlbnZpYWRvIGNvcnJlY3RhbWVu dGUuPC9wPjxwPlDDoWdpbmEgZW52aWFkYTo8L3A+PHAgY2xhc3M9dXJsPjxhIGhyZWY9JyIgKyB3aW5k b3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZiArICInIHRpdGxlPSciICsgd2luZG93LmRvY3VtZW50Lmxv Y2F0aW9uLmhyZWYgKyAiJz4iICsgdXJsX21vc3RyYXIgKyAiPC9hPjwvcD48L2Rpdj48ZGl2IGNsYXNz PWNsZWFyPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J2Vudmlhbm90aWNpYS1ib3RvbmVzIGJvdG9uJz48 YSBocmVmPWphdmFzY3JpcHQ6Y2VycmFyRW52aWFyTm90aWNpYSgpOz5DZXJyYXI8L2E+PC9kaXY+PC9m b3JtPiI7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQllbEhUTUwgPSAiPGZvcm0gYWN0aW9uPT48ZGl2IGNs YXNzPWVudmlhbm90aWNpYT48ZGl2IGNsYXNzPWVudmlhbm90aWNpYU9LPjxwPkhhIG9jdXJyaWRvIHVu IEVSUk9SIGFsIGVudmlhciBsYSBww6FnaW5hLCBwb3IgZmF2b3IgaW50ZW50ZWxvIG3DoXMgdGFyZGUu PC9wPjwvZGl2PjxkaXYgY2xhc3M9Y2xlYXI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nZW52aWFub3Rp Y2lhLWJvdG9uZXMgYm90b24nPjxhIGhyZWY9amF2YXNjcmlwdDpjZXJyYXJFbnZpYXJOb3RpY2lhKCk7 PkNlcnJhcjwvYT48L2Rpdj48L2Zvcm0+IjsKCQkJCQoJCQkJfQoJCQkJCgkJCQlmb3JtdWxhcmlvLnJl c2V0KCk7CQkJCgkJCQoJCQkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZW5pZG9l bnZpYW5vdGljaWEnKS5pbm5lckhUTUwgPSBlbEhUTUw7CgoJCQkJCQoJCQl9CgkJCWVsc2UgewoJCQkJ YWxlcnQoIkhhIGhhYmlkbyB1biBwcm9ibGVtYSBhbCBlbnZpYXIgbGEgbm90aWNpYSwgcG9yIGZhdm9y LCBpbnRlbnRlbG8gbcOhcyB0YXJkZS4iKTsKCQkJfQoJCQkKCQl9CQoJfTsKCWh0dHAuc2VuZChudWxs KTsJCgkKCQp9CgpmdW5jdGlvbiBjZXJyYXJFbnZpYXJOb3RpY2lhKCkgewoJdmFyIGNvbnRlbmlkbzsK CQoJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbnZpYWxhbm90aWNpYScpLnN0eWxlLmRp c3BsYXkgPSAnbm9uZSc7CgkKCWNvbnRlbmlkbyA9ICc8Zm9ybSBuYW1lPSJlbnZpb19ub3RpY2lhIj4n OwoJY29udGVuaWRvICs9ICcJPGZpZWxkc2V0Pic7Cgljb250ZW5pZG8gKz0gJwkJPGRpdiBjbGFzcz0i ZW52aWFub3RpY2lhIj4nOwoJY29udGVuaWRvICs9ICcJCQk8cD5SZWxsZW5hIGxvcyBzaWd1aWVudGVz IGNhbXBvcyBwYXJhIGVudmlhciBlc3RhIGluZm9ybWFjacOzbiBhIG90cmFzIHBlcnNvbmFzLjwvcD4n OwoJY29udGVuaWRvICs9ICcJCQk8ZGl2IGNsYXNzPSJlbnZpYW5vdGljaWFJIj4nOwoJY29udGVuaWRv ICs9ICcJCQkJPHRhYmxlIHdpZHRoPSI5OSUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxw YWRkaW5nPSIwIj4nOwoJY29udGVuaWRvICs9ICcJCQkJCTx0cj4nOwoJY29udGVuaWRvICs9ICcJCQkJ CQk8dGg+Tm9tYnJlPC90aD4nOwoJY29udGVuaWRvICs9ICcJCQkJCQk8dGQ+PGlucHV0IG5hbWU9Im5v bWJyZSIgdHlwZT0idGV4dCIgdmFsdWU9IiIgLz48L3RkPic7Cgljb250ZW5pZG8gKz0gJwkJCQkJCTx0 aD5FbWFpbCByZW1pdGVudGU8L3RoPic7Cgljb250ZW5pZG8gKz0gJwkJCQkJCTx0ZD48aW5wdXQgbmFt ZT0iZW1haWxfcmVtaXRlbnRlIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iIiAvPjwvdGQ+JzsKCWNvbnRlbmlk byArPSAnCQkJCQk8L3RyPic7Cgljb250ZW5pZG8gKz0gJwkJCQkJPHRyPic7Cgljb250ZW5pZG8gKz0g JwkJCQkJCTx0aD5QYXJhPC90aD4nOwoJY29udGVuaWRvICs9ICcJCQkJCQk8dGQ+PGlucHV0IG5hbWU9 InBhcmEiIHR5cGU9InRleHQiIHZhbHVlPSIiIC8+PC90ZD4nOwoJY29udGVuaWRvICs9ICcJCQkJCQk8 dGg+RW1haWwgZGVzdGluYXRhcmlvIDwvdGg+JzsKCWNvbnRlbmlkbyArPSAnCQkJCQkJPHRkPjxpbnB1 dCBuYW1lPSJlbWFpbF9kZXN0aW5hdGFyaW8iIHR5cGU9InRleHQiIHZhbHVlPSIiIC8+PC90ZD4nOwoJ Y29udGVuaWRvICs9ICcJCQkJCTwvdHI+JzsKCWNvbnRlbmlkbyArPSAnCQkJCTwvdGFibGU+JzsKCWNv bnRlbmlkbyArPSAnCQkJPC9kaXY+JzsKCWNvbnRlbmlkbyArPSAnCQkJPGRpdiBjbGFzcz0iZW52aWFu b3RpY2lhRCI+JzsKCWNvbnRlbmlkbyArPSAnCQkJCTx0ZXh0YXJlYSBuYW1lPSJjb21lbnRhcmlvIiBj b2xzPSI1IiByb3dzPSI1Ij48L3RleHRhcmVhPic7Cgljb250ZW5pZG8gKz0gJwkJCTwvZGl2Pic7Cglj b250ZW5pZG8gKz0gJwkJCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4nOwoJY29udGVuaWRvICs9ICcJ CTwvZGl2Pic7Cgljb250ZW5pZG8gKz0gJwkJPGRpdiBjbGFzcz0iZW52aWFub3RpY2lhLWJvdG9uZXMg Ym90b24iPjxhIGhyZWY9IiMiIG9uY2xpY2s9IndpbmRvdy5kb2N1bWVudC5lbnZpb19ub3RpY2lhLnJl c2V0KCkiPkJvcnJhcjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8YSBocmVmPSJqYXZhc2NyaXB0 OmVudmlhck5vdGljaWEoKTsiPkVudmlhcjwvYT48L2Rpdj4nOwoJY29udGVuaWRvICs9ICcJPC9maWVs ZHNldD4nOwoJY29udGVuaWRvICs9ICc8L2Zvcm0+CSc7CgkKCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgnY29udGVuaWRvZW52aWFub3RpY2lhJykuaW5uZXJIVE1MID0gY29udGVuaWRvOwp9CgoK ZnVuY3Rpb24gcmVjdGlmaWNhck5vdGljaWEoKXsKCQoJdmFyIG1heF9sb25naXR1ZCA9IDEyMDsKCQoJ dmFyIGZvcm11bGFyaW8gPSAgd2luZG93LmRvY3VtZW50LnJlY3RpZmljYXJfbm90aWNpYTsKCQoJdmFy IG5vbWJyZSA9IGZvcm11bGFyaW8ubm9tYnJlLnZhbHVlOwoJdmFyIGVtYWlsID0gZm9ybXVsYXJpby5l bWFpbC52YWx1ZTsKCXZhciBjb21lbnRhcmlvID0gZm9ybXVsYXJpby5jb21lbnRhcmlvLnZhbHVlOwoJ CglpZiAoIW5vbWJyZSB8fCAhZW1haWwgfHwgIWNvbWVudGFyaW8pICB7CgkJYWxlcnQoJ05vIGhhIHJl bGxlbmFkbyB0b2RvcyBsb3MgY2FtcG9zJyk7CgkJcmV0dXJuOwkKCX0KCQoJaWYgKCFjaGVja2VtYWls KGVtYWlsKSkgewoJCWFsZXJ0KCdFbCBlbWFpbCBubyBlcyBjb3JyZWN0bycpOwoJCWZvcm11bGFyaW8u ZW1haWxfcmVtaXRlbnRlLmZvY3VzKCk7CgkJcmV0dXJuOwkKCX0KCQoJdmFyIGh0dHAgPSBjcmVhdGVS ZXF1ZXN0T2JqZWN0KCk7Cgl2YXIgcXMgPSAibm9tYnJlPSIgKyBlbmNvZGVVUklDb21wb25lbnQobm9t YnJlKSArICImZW1haWw9IiArIGVuY29kZVVSSUNvbXBvbmVudChlbWFpbCkgKyAiJmNvbWVudGFyaW89 IiArIGVuY29kZVVSSUNvbXBvbmVudChjb21lbnRhcmlvKTsKCXFzICs9ICImdXJsPSIgKyBlbmNvZGVV UklDb21wb25lbnQod2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYpOwovLwkJaHR0cC5vcGVuKCJn ZXQiLCAiL2JhY2tlbmQvcmVjdGlmaWNhcl9ub3RpY2lhLnBocD8iICsgcXMgKyImcj0iICsgTWF0aC5y YW5kb20oKSk7CiAgaHR0cC5vcGVuKCJwb3N0IiwgIi9iYWNrZW5kL3JlY3RpZmljYXJfbm90aWNpYS5w aHAiLCB0cnVlKTsKICBodHRwLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNh dGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTsKCWh0dHAub25yZWFkeXN0YXRlY2hhbmdlID0gZnVu Y3Rpb24gKCkgewoJCWlmKGh0dHAucmVhZHlTdGF0ZSA9PSA0KXsKCQkJaWYgKGh0dHAucmVzcG9uc2VU ZXh0KSB7CgkJCQlpZiAoaHR0cC5yZXNwb25zZVRleHQuaW5kZXhPZignT0snKSA+IC0xKSB7CgkJCQkJ dmFyIHVybF9tb3N0cmFyID0gKHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmLmxlbmd0aCA+IG1h eF9sb25naXR1ZCkgPyB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZi5zdWJzdHIoMCwgbWF4X2xv bmdpdHVkKSArICIuLi4iIDogd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWY7CgkJCQkJZWxIVE1M ID0gIjxmb3JtIGFjdGlvbj0+PGRpdiBjbGFzcz1lbnZpYW5vdGljaWE+PGRpdiBjbGFzcz1lbnZpYW5v dGljaWFPSz48cD5TdSByZWN0aWZpY2FjacOzbiBoYSBzaWRvIGVudmlhZGEgY29ycmVjdGFtZW50ZS48 L3A+PHA+UMOhZ2luYSBlbnZpYWRhOjwvcD48cCBjbGFzcz11cmw+PGEgaHJlZj0nIiArIHdpbmRvdy5k b2N1bWVudC5sb2NhdGlvbi5ocmVmICsgIicgdGl0bGU9JyIgKyB3aW5kb3cuZG9jdW1lbnQubG9jYXRp b24uaHJlZiArICInPiIgKyB1cmxfbW9zdHJhciArICI8L2E+PC9wPjwvZGl2PjxkaXYgY2xhc3M9Y2xl YXI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nZW52aWFub3RpY2lhLWJvdG9uZXMgYm90b24nPjxhIGhy ZWY9amF2YXNjcmlwdDpjZXJyYXJSZWN0aWZpY2FyTm90aWNpYSgpOz5DZXJyYXI8L2E+PC9kaXY+PC9m b3JtPiI7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQllbEhUTUwgPSAiPGZvcm0gYWN0aW9uPT48ZGl2IGNs YXNzPWVudmlhbm90aWNpYT48ZGl2IGNsYXNzPWVudmlhbm90aWNpYU9LPjxwPkhhIG9jdXJyaWRvIHVu IEVSUk9SIGFsIGVudmlhciBsYSByZWN0aWZpY2FjacOzbiwgcG9yIGZhdm9yIGludGVudGVsbyBtw6Fz IHRhcmRlLjwvcD48L2Rpdj48ZGl2IGNsYXNzPWNsZWFyPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J2Vu dmlhbm90aWNpYS1ib3RvbmVzIGJvdG9uJz48YSBocmVmPWphdmFzY3JpcHQ6Y2VycmFyUmVjdGlmaWNh ck5vdGljaWEoKTs+Q2VycmFyPC9hPjwvZGl2PjwvZm9ybT4iOwoJCQkJCgkJCQl9CgkJCQkKCQkJCWZv cm11bGFyaW8ucmVzZXQoKTsJCQkKCQkJCgkJCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo J2NvbnRlbmlkb3JlY3RpZmljYW5vdGljaWEnKS5pbm5lckhUTUwgPSBlbEhUTUw7CgoJCQkJCQoJCQl9 CgkJfQkKCX07Ci8vCQlodHRwLnNlbmQobnVsbCk7CQoJaHR0cC5zZW5kKHFzKTsgICAKfQoKZnVuY3Rp b24gY2VycmFyUmVjdGlmaWNhck5vdGljaWEoKSB7Cgl2YXIgY29udGVuaWRvOwoJCgl3aW5kb3cuZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlY3RpZmljYWxhbm90aWNpYScpLnN0eWxlLmRpc3BsYXkgPSAn bm9uZSc7CgkKCWNvbnRlbmlkbyA9ICc8Zm9ybSBuYW1lPSJyZWN0aWZpY2FyX25vdGljaWEiPic7CiAg ICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgICAgPGZpZWxkc2V0Pic7CiAgICAgICAgICAgIGNvbnRl bmlkbyArPSAnICAgICAgPGRpdiBjbGFzcz0icmVjdGlmaWNhbm90aWNpYSI+JzsKICAgICAgICAgICAg Y29udGVuaWRvICs9ICcgICAgICAgIDxwPlJlbGxlbmUgdG9kb3MgbG9zIGNhbXBvcyBjb24gc3VzIGRh dG9zLjwvcD4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAgPGRpdiBjbGFzcz0icmVj dGlmaWNhbm90aWNpYUkiPic7CiAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgICAgICAgIDx0YWJs ZSB3aWR0aD0iOTklIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+JzsK ICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICAgICAgICA8dHI+JzsKICAgICAgICAgICAgY29u dGVuaWRvICs9ICcgICAgICAgICAgICAgIDx0aCB3aWR0aD0iMTIlIj5Ob21icmU8c3BhbiBjbGFzcz0i b2JsaWdhdG9yaW8iPio8L3NwYW4+PC90aD4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAg ICAgICAgICAgPHRkIHdpZHRoPSIzOCUiPjxpbnB1dCBuYW1lPSJub21icmUiIHR5cGU9InRleHQiIHZh bHVlPSIiIC8+PC90ZD4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAgICAgICAgPHRo IHdpZHRoPSI5JSI+RW1haWw8c3BhbiBjbGFzcz0ib2JsaWdhdG9yaW8iPio8L3NwYW4+PC90aD4nOwog ICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAgICAgICAgPHRkIHdpZHRoPSI0MSUiPjxpbnB1 dCBuYW1lPSJlbWFpbCIgdHlwZT0idGV4dCIgdmFsdWU9IiIgLz48L3RkPic7CiAgICAgICAgICAgIGNv bnRlbmlkbyArPSAnICAgICAgICAgICAgPC90cj4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAg ICAgICAgICAgIDwhLS10cj4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgICAgICAgICAg PHRoIGNvbHNwYW49IjQiPlVSTCBkZSBsYSBub3RpY2lhPHNwYW4gY2xhc3M9Im9ibGlnYXRvcmlvIj4q JzsKICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9InRl eHQyIiBjbGFzcz0idXJsIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iaHR0cDovL3d3dy5lbGNvcnJlb2RpZ2l0 YWwuY29tL3ZpemNheWEvMjAwNzAzMTkvcG9saXRpY2FzZGFzIGRhcyBkYXMgZGFzIGRhcyBkYXMgZGFz IC4uLiAiIC8+JzsKCWNvbnRlbmlkbyArPSAnCQk8L3NwYW4+PC90aD4nOwogICAgICAgICAgICBjb250 ZW5pZG8gKz0gJyAgICAgICAgICAgIDwvdHItLT4nOwogICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAg ICAgICAgICA8L3RhYmxlPic7Cgljb250ZW5pZG8gKz0gJwkJCQkgIDwvZGl2Pic7CiAgICAgICAgICAg IGNvbnRlbmlkbyArPSAnICAgICAgICA8ZGl2IGNsYXNzPSJyZWN0aWZpY2Fub3RpY2lhRCI+JzsKICAg ICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICAgICAgPHRleHRhcmVhIGNvbHM9IjUiIHJvd3M9IjUi IG5hbWU9ImNvbWVudGFyaW8iPjwvdGV4dGFyZWE+JzsKICAgICAgICAgICAgY29udGVuaWRvICs9ICcg ICAgICAgIDwvZGl2Pic7CiAgICAgICAgICAgIGNvbnRlbmlkbyArPSAnICAgICAgICA8ZGl2IGNsYXNz PSJjbGVhciI+PC9kaXY+JzsKICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICA8L2Rpdj4nOwog ICAgICAgICAgICBjb250ZW5pZG8gKz0gJyAgICAgIDxkaXYgY2xhc3M9ImVudmlhbm90aWNpYS1ib3Rv bmVzIGJvdG9uIj48c3BhbiBjbGFzcz0ib2JsaWdhdG9yaW8iIHN0eWxlPSJmbG9hdDpsZWZ0OyI+KiBj YW1wbyBvYmxpZ2F0b3Jpbzwvc3Bhbj48YSBocmVmPSIjIiBvbmNsaWNrPSJ3aW5kb3cuZG9jdW1lbnQu cmVjdGlmaWNhcl9ub3RpY2lhLnJlc2V0KCkiPkJvcnJhcjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDs8YSBocmVmPSJqYXZhc2NyaXB0OnJlY3RpZmljYXJOb3RpY2lhKCk7Ij5FbnZpYXI8L2E+PC9kaXY+ JzsKICAgICAgICAgICAgY29udGVuaWRvICs9ICcgICAgICA8L2ZpZWxkc2V0Pic7CiAgICAgICAgICAg IGNvbnRlbmlkbyArPSAnICAgIDwvZm9ybT4JJzsKCQoJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCdjb250ZW5pZG9yZWN0aWZpY2Fub3RpY2lhJykuaW5uZXJIVE1MID0gY29udGVuaWRvOwp9Cgpm dW5jdGlvbiB2b3RhcnRpY3VsbyhwdW50b3MpIHsKCQoJdmFyIGRpcmVjY2lvbjsKCQoJaWYgKHdpbmRv dy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJz8nKSA+IDApIHsKCQl2YXIgY2FtcG9zID0g d2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKTsKCQlkaXJlY2Npb24gPSBjYW1w b3NbMF07Cgl9CgllbHNlIHsKCQlkaXJlY2Npb24gPSB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJl ZjsKCX0JCgkKCXZhciBodHRwID0gY3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJaHR0cC5vcGVuKCJnZXQi LCAiL2JhY2tlbmQvdm90YWNpb25lcy92b3Rhci5waHA/cHVudG9zPSIgKyBwdW50b3MgKyAiJnVybD0i ICsgZGlyZWNjaW9uICsgIiZyPSIgKyBNYXRoLnJhbmRvbSgpKTsKCWh0dHAub25yZWFkeXN0YXRlY2hh bmdlID0gZnVuY3Rpb24gKCkgewoJCWlmKGh0dHAucmVhZHlTdGF0ZSA9PSA0KXsKCQkJaWYgKGh0dHAu cmVzcG9uc2VUZXh0KSB7CgkJCQlncmFjaWFzID0gIjxkaXYgY2xhc3M9bGFiZWw+R3JhY2lhcyBwb3Ig dm90YXI8L2Rpdj4iOwoJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRlbmlkb2VzdHJlbGxh cycpLmlubmVySFRNTCA9IGdyYWNpYXM7CgkJCQlnZXRFc3RyZWxsYXMoKTsKCQkJCWdldFZvdG9zKCk7 CgkJCQkJCgkJCX0KCQl9CQoJfTsKCWh0dHAuc2VuZChudWxsKTsJCQp9CgpmdW5jdGlvbiBnZXRFc3Ry ZWxsYXMoKSB7CgkKCXZhciBkaXJlY2Npb247CgkKCWlmICh3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24u aHJlZi5pbmRleE9mKCc/JykgPiAwKSB7CgkJdmFyIGNhbXBvcyA9IHdpbmRvdy5kb2N1bWVudC5sb2Nh dGlvbi5ocmVmLnNwbGl0KCc/Jyk7CgkJZGlyZWNjaW9uID0gY2FtcG9zWzBdOwoJfQoJZWxzZSB7CgkJ ZGlyZWNjaW9uID0gd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWY7Cgl9CgkKCXZhciBodHRwID0g Y3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJaHR0cC5vcGVuKCJnZXQiLCAiL2JhY2tlbmQvdm90YWNpb25l cy9lc3RyZWxsYXMucGhwP3VybD0iICsgZGlyZWNjaW9uKTsKCWh0dHAub25yZWFkeXN0YXRlY2hhbmdl ID0gZnVuY3Rpb24gKCkgewoJCWlmKGh0dHAucmVhZHlTdGF0ZSA9PSA0KXsKCQkJaWYgKGh0dHAucmVz cG9uc2VUZXh0KSB7CgkJCQl2YXIgZXN0cmVsbGFzID0gaHR0cC5yZXNwb25zZVRleHQ7CgkJCQkKCQkJ CWlmIChlc3RyZWxsYXMuaW5kZXhPZigiLiIpKSB7CgkJCgkJCQkJY2FtcG9zID0gZXN0cmVsbGFzLnNw bGl0KCIuIik7CgkJCQkJZXN0cmVsbGFzID0gY2FtcG9zWzBdOwkKCQkJCQl2YXIgbWVkaWEgPSAoY2Ft cG9zWzFdID4gMCkgPyAxIDogMDsKCQkJCX0KCQkJCQoJCQkJdmFyIGNvbnRlbmlkbyA9ICcnOwoJCQkJ CgkJCQlmb3IgKGkgPSAwOyBpIDwgZXN0cmVsbGFzOyBpKyspIHsKCQkJCQljb250ZW5pZG8gKz0gJzxp bWcgc3JjPSIvaW1nL3N0YXJfb24uZ2lmIiBhbHQ9IicgKyBpICsnIHZvdG9zIiAvPic7CgkJCQl9CgkJ CQkKCQkJCWlmIChtZWRpYSA9PSAxKSB7CgkJCQkJY29udGVuaWRvICs9ICc8aW1nIHNyYz0iL2ltZy9z dGFyX29uX21kLmdpZiIgYWx0PSInICsgZXN0cmVsbGFzICsnIHZvdG9zIiAvPic7CgkJCQkJZXN0cmVs bGFzKys7CgkJCQl9CgkJCQkKCQkJCWZvciAoaSA9IGVzdHJlbGxhczsgaSA8IDU7IGkrKykgewoJCQkJ CWNvbnRlbmlkbyArPSAnPGltZyBzcmM9Ii9pbWcvc3Rhcl9vZmYuZ2lmIiBhbHQ9IicgKyBpICsnIHZv dG9zIiAvPic7CQoJCQkJfQoJCQkJCgkJCQl3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl c3VsdGFkb3Mtdm90b3MnKS5pbm5lckhUTUwgPSBjb250ZW5pZG87CgkJCQkJCgkJCX0KCQl9CQoJfTsK CWh0dHAuc2VuZChudWxsKTsKCQkKfQoKZnVuY3Rpb24gZ2V0Vm90b3MoKSB7CgkKCXZhciBkaXJlY2Np b247CgkKCWlmICh3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKCc/JykgPiAwKSB7 CgkJdmFyIGNhbXBvcyA9IHdpbmRvdy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmLnNwbGl0KCc/Jyk7CgkJ ZGlyZWNjaW9uID0gY2FtcG9zWzBdOwoJfQoJZWxzZSB7CgkJZGlyZWNjaW9uID0gd2luZG93LmRvY3Vt ZW50LmxvY2F0aW9uLmhyZWY7Cgl9CgkKCXZhciBodHRwID0gY3JlYXRlUmVxdWVzdE9iamVjdCgpOwoJ Ly9odHRwLm9wZW4oImdldCIsICIvYmFja2VuZC92b3RhY2lvbmVzL3ZvdG9zLnBocD91cmw9IiArIGRp cmVjY2lvbiArIiZyPSIgKyBNYXRoLnJhbmRvbSgpKTsKCWh0dHAub3BlbigiZ2V0IiwgIi9iYWNrZW5k L3ZvdGFjaW9uZXMvdm90b3MucGhwP3VybD0iICsgZGlyZWNjaW9uKTsKCWh0dHAub25yZWFkeXN0YXRl Y2hhbmdlID0gZnVuY3Rpb24gKCkgewoJCWlmKGh0dHAucmVhZHlTdGF0ZSA9PSA0KXsKCQkJaWYgKGh0 dHAucmVzcG9uc2VUZXh0KSB7CgkJCQl2YXIgdm90b3MgPSBodHRwLnJlc3BvbnNlVGV4dDsKCQkJCWlm ICh2b3RvcyA9PSAxKSB7CgkJCQkJd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW12b3Rv cy12b3RvcycpLmlubmVySFRNTCA9IHZvdG9zICsgJyB2b3RvJzsKCQkJCQl3aW5kb3cuZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoJ251bXZvdG9zLXZvdG9zMicpLmlubmVySFRNTCA9IHZvdG9zICsgJyB2b3Rv JzsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVt dm90b3Mtdm90b3MnKS5pbm5lckhUTUwgPSB2b3RvcyArICcgdm90b3MnOwoJCQkJCXdpbmRvdy5kb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgnbnVtdm90b3Mtdm90b3MyJykuaW5uZXJIVE1MID0gdm90b3MgKyAn IHZvdG9zJzsKCQkJCX0KCQkJfQoJCX0JCgl9OwoJaHR0cC5zZW5kKG51bGwpOwoJCQp9 ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/publicidad-conf-resto-de-paginas.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: CnBvc3RjYXJnYSA9IDE7CgkKCQ== ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/publicidad.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: CS8qKioqKioqKiBQVUJMSUNJREFEICoqKioqKioqLw0KCQ0KCUFycmF5LnByb3RvdHlwZS5pbl9hcnJh eSA9IGZ1bmN0aW9uKHNlYXJjaF90ZXJtKSB7DQoJICB2YXIgaSA9IHRoaXMubGVuZ3RoOw0KCSAgaWYg KGkgPiAwKSB7DQoJCSBkbyB7DQoJCQlpZiAodGhpc1tpXSA9PT0gc2VhcmNoX3Rlcm0pIHsNCgkJCSAg IHJldHVybiB0cnVlOw0KCQkJfQ0KCQkgfSB3aGlsZSAoaS0tKTsNCgkgIH0NCgkgIHJldHVybiBmYWxz ZTsNCgl9DQoNCgkvLyBQb3N0Y2FyZ2EgZGUgbGEgcHVibGljaWRhZA0KCXZhciBwb3N0Y2FyZ2EgPSAx Ow0KCWlmKHR5cGVvZihwb3N0Y2FyZ2EpID09ICJ1bmRlZmluZWQiKQ0KCQl2YXIgcG9zdGNhcmdhID0g MjsNCgkNCglmdW5jdGlvbiBwdWJsaU1KWChwb3NpdGlvbixkZXNkZSkgew0KCQlpZihwb3N0Y2FyZ2Eg PT0gZGVzZGUpIHsNCgkJCWlmIChwb3NpdGlvbiA9PSAnJykgcmV0dXJuOw0KCQkJdmFyIHBvc2l0aW9u X2RjID0gJyc7DQoJCQkvL3ZfdGlsZSsrOw0KCQkJc3dpdGNoIChwb3NpdGlvbikgew0KCQkJCWNhc2Ug J1Bvc2l0aW9uMSc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1tZWdhYmFubmVyO3RpbGU9JyArIHZf dGlsZSArICc7c3o9NzI4eDkwLDQ2OHg2MCw5ODJ4OTAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4 NjknOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25fc3VwZXJpb3I7dGlsZT0nICsgdl90aWxl ICsgJztzej0yMzR4NDUsMjM0eDkwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDk2JzoNCgkJCQkJ cG9zaXRpb25fZGMgPSAncG9zPWJvdG9uX2luZmVyaW9yO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MjM0 eDQ1JzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDQzJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9z PWNpbnRpbGxvX3N1cGVyaW9yO3RpbGU9JyArIHZfdGlsZSArICc7c3o9Njc1eDMwJzsNCgkJCQkJYnJl YWs7DQoJCQkJY2FzZSAnUG9zaXRpb24zJzoNCgkJCQljYXNlICd4MjYnOg0KCQkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9cm9iYXBhZ2luYXM7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwLDIwMHgyMDAn Ow0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4NTEnOg0KCQkJCWNhc2UgJ1Bvc2l0aW9uNCc6DQoJCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9kb2JsZV9sb2NhbDt0aWxlPScgKyB2X3RpbGUgKyAnO3N6 PTMwMHg5MCw1MDB4NzUnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4NTYnOg0KCQkJCQlwb3NpdGlv bl9kYyA9ICdwb3M9Ym90b25fbG9jYWwzO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1LDE0N3g4 MCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3g1Myc6DQoJCQkJY2FzZSAnVG9wMSc6DQoJCQkJY2Fz ZSAnVG9wMic6DQoJCQkJY2FzZSAnTWlkZGxlJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPWJvdG9u X2xvY2FsMTt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTMwMHg0NSwxNDd4ODAsMTIweDYwLDkweDE1MCwx NjB4NTAsMTIweDEyMCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3g1NCc6DQoJCQkJY2FzZSAnVG9w Myc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9uYWwyO3RpbGU9JyArIHZfdGlsZSArICc7 c3o9MzAweDQ1LDE0N3g4MCw5MHgxNTAsMzAweDkwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDQ0 JzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPWNpbnRpbGxvX2xvY2FsO3RpbGU9JyArIHZfdGlsZSAr ICc7c3o9Njc1eDMwLDY3MHgzMCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3gyNyc6DQoJCQkJCXBv c2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9sb2NhbDQ7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUn Ow0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4MjknOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90 b25fbG9jYWw1O3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1JzsNCgkJCQkJYnJlYWs7DQoJCQkJ Y2FzZSAneDQ5JzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPWNpbnRpbGxvX2luZmVyaW9yO3RpbGU9 JyArIHZfdGlsZSArICc7c3o9Njc1eDMwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDYwJzoNCgkJ CQkJcG9zaXRpb25fZGMgPSAncG9zPWNhamFfaW5mZXJpb3I7dGlsZT0nICsgdl90aWxlICsgJztzej0z MDB4NDUnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdSaWdodCc6DQoJCQkJCXBvc2l0aW9uX2RjID0g J3Bvcz1oYWxmYmFubmVyO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MjM0eDkwJzsNCgkJCQkJYnJlYWs7 DQoJCQkJY2FzZSAneDMyJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPXNreXNjcmFwZXI7dGlsZT0n ICsgdl90aWxlICsgJztzej1zej0xMjB4NjAwLDIwMHg2MDAsMTYweDYwMCwxMjB4MjQwJzsNCgkJCQkJ YnJlYWs7DQoJCQkJY2FzZSAnTGVmdCc6DQoJCQkJY2FzZSAnTWlkZGxlMic6DQoJCQkJCXBvc2l0aW9u X2RjID0gJ3Bvcz1ib3Rvbl9uYWwzO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDkwJzsNCgkJCQkJ YnJlYWs7DQoJCQkJY2FzZSAnTWlkZGxlMyc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0xYm90b24x MDV4NjA7dGlsZT0nICsgdl90aWxlICsgJztzej0xMDV4NjAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNl ICd4MTEnOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9MmJvdG9uMTA1eDYwO3RpbGU9JyArIHZfdGls ZSArICc7c3o9MTA1eDYwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnQm90dG9tUmlnaHQnOg0KCQkJ CQlwb3NpdGlvbl9kYyA9ICdwb3M9M2JvdG9uMTA1eDYwO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTA1 eDYwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnTWlkZGxlMSc6DQoJCQkJCXBvc2l0aW9uX2RjID0g J3Bvcz01Ym90b24xMDV4NjA7dGlsZT0nICsgdl90aWxlICsgJztzej0xMDV4NjAnOw0KCQkJCQlicmVh azsNCgkJCQljYXNlICd4NDgnOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9NGJvdG9uMTA1eDYwO3Rp bGU9JyArIHZfdGlsZSArICc7c3o9MTA1eDYwJzsNCgkJCQkJYnJlYWs7CQ0KCQkJCWNhc2UgJ3gxMCcg Og0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9MWJvdG9uMTgweDEyNTt0aWxlPScrIHZfdGlsZSArJztz ej0xODB4MTI1JzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDA1JyA6DQoJCQkJCXBvc2l0aW9uX2Rj ID0gJ3Bvcz0yYm90b24xODB4MTI1O3RpbGU9Jysgdl90aWxlICsnO3N6PTE4MHgxMjUnOyAgICAgICAg ICAgIA0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4MDcnIDoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9z PTFib3RvbjEyMHg1MDt0aWxlPScrIHZfdGlsZSArJztzej0xMjB4MTUwJzsgICAgICAgICAgICANCgkJ CQkJYnJlYWs7DQoJCQkJY2FzZSAneDA5JyA6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0yYm90b24x MjB4NTA7dGlsZT0nKyB2X3RpbGUgKyc7c3o9MTIweDE1MCw0Njh4NjAnOyAgDQoJCQkJCWJyZWFrOw0K CQkJCWNhc2UgJ3gxMicgOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9M2JvdG9uMTgweDEyNTt0aWxl PScrIHZfdGlsZSArJztzej0xODB4MTI1JzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAneDEzJyA6DQoJ CQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz00Ym90b24xODB4MTI1O3RpbGU9Jysgdl90aWxlICsnO3N6PTE4 MHgxMjUnOyAgICAgICAgICAgIA0KCQkJCQlicmVhazsNCgkJCQljYXNlICd4MjAnOg0KCQkJCQlwb3Np dGlvbl9kYyA9ICdwb3M9cm9iYXBhZ2luYXNfc21hbGw7dGlsZT0nICsgdl90aWxlICsgJztzej0yMDB4 MjAwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnbWVnYWJhbm5lcic6DQoJCQkJCXBvc2l0aW9uX2Rj ID0gJ3Bvcz0nICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9NzI4eDkwLDQ2OHg2 MCw5ODJ4OTAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdtZWdhYmFubmVyX2luZic6DQoJCQkJCXBv c2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9NzI4 eDkwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnYm90b25fc3VwZXJpb3InOg0KCQkJCWNhc2UgJ2Jv dG9uX2luZmVyaW9yJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7dGls ZT0nICsgdl90aWxlICsgJztzej0yMzR4NDUnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdjaW50aWxs b19zdXBlcmlvcic6DQoJCQkJY2FzZSAnY2ludGlsbG9fbG9jYWwnOg0KCQkJCWNhc2UgJ2NpbnRpbGxv X2luZmVyaW9yJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7dGlsZT0n ICsgdl90aWxlICsgJztzej02NzV4MzAsNjcweDMwLDcyOHg3NSc7DQoJCQkJCWJyZWFrOw0KCQkJCWNh c2UgJ3JvYmFwYWdpbmFzJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7 dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwLDIwMHgyMDAsMjgweDIzMyc7DQoJCQkJCWJyZWFr Ow0KCQkJCWNhc2UgJ3JvYmFwYWdpbmFzX3NtYWxsJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScg KyBwb3NpdGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0yMDB4MjAwJzsNCgkJCQkJYnJlYWs7 DQoJCQkJY2FzZSAncm9iYXBhZ2luYXNfZG9zJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBw b3NpdGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwJzsNCgkJCQkJYnJlYWs7DQoJ CQkJY2FzZSAnYm90b25fbG9jYWwxJzoJDQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zaXRp b24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1LDE0N3g4MCwxMjB4NjAsOTB4MTUwLDE2 MHg1MCwxMjB4MTIwJzsNCgkJCQkJYnJlYWs7CQkNCgkJCQljYXNlICdib3Rvbl9sb2NhbDMnOg0KCQkJ CQlwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6 PTMwMHg0NSwxNDd4ODAsOTB4MTUwLDMwMHg5MCwxNjB4NTAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNl ICdib3Rvbl9uYWwyJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7dGls ZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUsMTQ3eDgwLDkweDE1MCwzMDB4OTAnOw0KCQkJCQlicmVh azsNCgkJCQljYXNlICdyZWN1ZXJkb19jb3J0aV9sYXllcl9uYWwnOg0KCQkJCWNhc2UgJ2JvdG9uX2xv Y19zdXBlcmlvcic6DQoJCQkJY2FzZSAnYm90b25fbG9jYWwyJzoNCgkJCQljYXNlICdib3Rvbl9sb2Nh bDQnOg0KCQkJCWNhc2UgJ2JvdG9uX2xvY2FsNSc6DQoJCQkJY2FzZSAnYm90b25fbG9jYWw2JzoNCgkJ CQljYXNlICdib3Rvbl9sb2NhbDcnOg0KCQkJCWNhc2UgJ2JvdG9uX2xvY2FsOCc6DQoJCQkJY2FzZSAn Ym90b25fbG9jYWw5JzoNCgkJCQljYXNlICdib3Rvbl9sb2NhbDEwJzoNCgkJCQkJcG9zaXRpb25fZGMg PSAncG9zPScgKyBwb3NpdGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUnOw0KCQkJ CQlicmVhazsNCgkJCQljYXNlICdib3Rvbl9kb2JsZV9sb2NhbCc6DQoJCQkJY2FzZSAnYm90b25fZG9i bGVfbG9jYWwyJzoNCgkJCQljYXNlICdib3Rvbl9kb2JsZV9sb2NhbDMnOg0KCQkJCWNhc2UgJ2JvdG9u X2RvYmxlX25hY2lvbmFsJzoNCgkJCQljYXNlICdib3Rvbl9uYWxfYWJham8nOg0KCQkJCWNhc2UgJ2Jv dG9uX25hbDMnOg0KCQkJCWNhc2UgJ2JvdG9uX25hbDEnOg0KCQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9 JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTMwMHg5MCc7DQoJCQkJCWJyZWFr Ow0KCQkJCWNhc2UgJ2JvdG9uXzI1NHg5MCc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9z aXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MjU0eDkwJzsNCgkJCQkJYnJlYWs7CQ0KCQkJ CWNhc2UgJ2JvdG9uX2JvdG9uMURfMTcweDUwJzoNCgkJCQljYXNlICdib3Rvbl9ib3RvbjJEXzE3MHg1 MCc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGls ZSArICc7c3o9MTcweDUwJzsNCgkJCQkJYnJlYWs7CQ0KCQkJCWNhc2UgJ2hhbGZiYW5uZXInOg0KCQkJ CQlwb3NpdGlvbl9kYyA9ICdwb3M9aGFsZmJhbm5lcjt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTIzNHg5 MCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3NreXNjcmFwZXInOg0KCQkJCQlwb3NpdGlvbl9kYyA9 ICdwb3M9c2t5c2NyYXBlcjt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTEyMHg2MDAsMjAweDYwMCwxMjB4 MjQwLDE2MHg2MDAnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdza3lzY3JhcGVyX2Rlcic6DQoJCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz1za3lzY3JhcGVyX2Rlcjt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTEy MHg2MDAsMjAweDYwMCc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ3NreXNjcmFwZXJfaXpxJzoNCgkJ CQkJcG9zaXRpb25fZGMgPSAncG9zPXNreXNjcmFwZXJfaXpxO3RpbGU9JyArIHZfdGlsZSArICc7c3o9 MTIweDYwMCwyMDB4NjAwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnMWJvdG9uMTA1eDYwJzoNCgkJ CQljYXNlICcyYm90b24xMDV4NjAnOg0KCQkJCWNhc2UgJzNib3RvbjEwNXg2MCc6DQoJCQkJY2FzZSAn NWJvdG9uMTA1eDYwJzoNCgkJCQljYXNlICc0Ym90b24xMDV4NjAnOg0KCQkJCQlwb3NpdGlvbl9kYyA9 ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTEwNXg2MCc7DQoJCQkJ CWJyZWFrOw0KCQkJCWNhc2UgJzVib3RvbjE4MHgxMjUnOg0KCQkJCWNhc2UgJzZib3RvbjE4MHgxMjUn Og0KCQkJCWNhc2UgJzdib3RvbjE4MHgxMjUnOg0KCQkJCWNhc2UgJzhib3RvbjE4MHgxMjUnOg0KCQkJ CQlwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6 PTE4MHgxMjUnOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICcxYm90b24xMTV4NTQnOg0KCQkJCWNhc2Ug JzJib3RvbjExNXg1NCc6DQoJCQkJY2FzZSAnM2JvdG9uMTE1eDU0JzoNCgkJCQljYXNlICc0Ym90b24x MTV4NTQnOg0KCQkJCWNhc2UgJzVib3RvbjExNXg1NCc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0n ICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTE1eDU0JzsNCgkJCQkJYnJlYWs7 DQoJCQkJY2FzZSAnYmFubmVyJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiAr ICc7dGlsZT0nICsgdl90aWxlICsgJztzej00Njh4NjAsNDIweDgwJzsNCgkJCQkJYnJlYWs7DQoJCQkJ Y2FzZSAnbHZhX3JvYmFwYWdpbmFzLWxvY2FsJzoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3Rp bGUgKyAnO3N6PTMwMHgyNTAsMjAweDIwMCc7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2JvdG9u MWlfMTcweDUwJzogDQoJCQkJY2FzZSAnYm90b24yaV8xNzB4NTAnOiANCgkJCQljYXNlICdib3RvbjNp XzE3MHg1MCc6ICANCgkJCQljYXNlICdib3RvbjRpXzE3MHg1MCc6ICANCgkJCQljYXNlICdib3RvbjVp XzE3MHg1MCc6DQoJCQkJY2FzZSAnYm90b24zZF8xNzB4NTAnOg0KCQkJCWNhc2UgJ2JvdG9uNGRfMTcw eDUwJzoNCgkJCQljYXNlICdib3RvbjVkXzE3MHg1MCc6DQoJCQkJY2FzZSAnYm90b242ZF8xNzB4NTAn Og0KCQkJCWNhc2UgJ2JvdG9uN2RfMTcweDUwJzoNCgkJCQljYXNlICdib3RvbjhkXzE3MHg1MCc6DQoJ CQkJY2FzZSAnYm90b245ZF8xNzB4NTAnOg0KCQkJCWNhc2UgJ2JvdG9uMTBkXzE3MHg1MCc6DQoJCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9 MTcweDUwJzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCgkJ CQljYXNlICdib3Rvbl9jZW50cmFsJzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlv biArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0yNTR4MTIwJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2Fz ZSAnYm90b25fZXNwZWNpYWxfaHNwb3J0JzoNCgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3Np dGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MTIwJzsNCgkJCQkJYnJlYWs7CQ0KCQkJ CWNhc2UgJ2NpbnRpbGxvX3N1cGVyaW9yOTgweDI4JzoNCgkJCQljYXNlICdjaW50aWxsb19tZWRpbzk4 MHgyOCc6DQoJCQkJY2FzZSAnY2ludGlsbG9faW5mZXJpb3I5ODB4MjgnOg0KCQkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9JyArIHBvc2l0aW9uICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTk4MHgyOCc7DQoJ CQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2ludGVycyc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsg cG9zaXRpb24gKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MngyJzsNCgkJCQkJYnJlYWs7DQoJCQl9 DQoJCQkNCgkJCWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHVibGkxIikpIHsNCgkJCQlpZiAo KHBvc2l0aW9uID09ICdib3Rvbl9zdXBlcmlvcicgfHwgcG9zaXRpb24gPT0gJ2JvdG9uX2luZmVyaW9y JykgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInB1YmxpMSIpLm9mZnNldFdpZHRoID4gNzQ1KSB7 DQoJCQkJCWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHVibGkyIikpIHsNCgkJCQkJCWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCJwdWJsaTIiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KCQkJCQkJ JCgiYm9keSIpLmFkZENsYXNzKCdvcmVqYXMnKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQllbHNlIHsNCgkJ CQkJT0FTX0FEKHBvc2l0aW9uX2RjKTsNCgkJCQl9DQoJCQl9DQoJCQllbHNlIHsNCgkJCQlPQVNfQUQo cG9zaXRpb25fZGMpOw0KCQkJfQ0KCQl9DQoJfQ0KCQ0KCWZ1bmN0aW9uIGNhcmdhclB1YmxpTWV0aG9k ZShwb3NpY2lvbikgew0KCQlpZihwb3N0Y2FyZ2EgIT0gMikNCgkJCXJldHVybjsNCgkJaWYobmF2aWdh dG9yLnVzZXJBZ2VudC5pbmRleE9mKCJOZXRzY2FwZS83LjAiKSA+IC0xKSB7DQoJCQliSXNOUzcwID0g dHJ1ZTsNCgkJfQ0KCQllbHNlIHsNCgkJCWJJc05TNzAgPSBmYWxzZTsNCgkJfQ0KCQl2YXIgaWU0ID0g ZG9jdW1lbnQuYWxsOw0KCQl2YXIgbnM2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQ7DQoJCWlmIChp ZTQgfHwgbnM2KSB7DQoJCQl2YXIgb2JqT3JpZ2VuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInB1 YmxpMl8iICsgcG9zaWNpb24pOw0KCQkJdmFyIG9iakRlc3Rpbm8gPSBkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgicHVibGkxXyIgKyBwb3NpY2lvbik7DQoJCQlpZigob2JqRGVzdGlubyAhPSBudWxsKSAmJiAo IWJJc05TNzApKQ0KCQkJCW9iakRlc3Rpbm8uYXBwZW5kQ2hpbGQob2JqT3JpZ2VuKTsNCgkJCWVsc2UN CgkJCQlvYmpPcmlnZW4uc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCgkJfQ0KCX0NCgkNCgkvLyBEQw0K CQ0KCXZhciBjYW1wb3MgPSBPQVNfc2l0ZXBhZ2Uuc3BsaXQoJy8nKTsNCgkJDQoJdmFyIGNhbXBvczIg PSBjYW1wb3NbMF0uc3BsaXQoJy4nKTsNCgkNCglzd2l0Y2ggKGNhbXBvczJbMV0pIHsNCgkJY2FzZSAn ZWxjb21lcmNpby1zYSc6DQoJCQl2YXIgcGVyaW9kaWNvID0gJ2VsY29tZXJjaW9kaWdpdGFsJzsNCgkJ CWJyZWFrOw0KCQljYXNlICdkaWFyaW8tZWxjb3JyZW8nOg0KCQkJdmFyIHBlcmlvZGljbyA9ICdlbGNv cnJlb2RpZ2l0YWwnOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ2xhLXZlcmRhZCc6DQoJCQl2YXIgcGVyaW9k aWNvID0gJ2xhdmVyZGFkJzsNCgkJCWJyZWFrOw0KCQljYXNlICdsYXZvemRlY2FkaXonOg0KCQkJdmFy IHBlcmlvZGljbyA9ICdsYXZvemRpZ2l0YWwnOw0KCQkJYnJlYWs7DQoJCWRlZmF1bHQ6DQoJCQl2YXIg cGVyaW9kaWNvID0gY2FtcG9zMlsxXTsNCgkJCWJyZWFrOwkNCgl9DQoJDQoJdmFyIGVkaWNpb25lcyA9 IG5ldyBBcnJheSgnYWxhdmEnLCAndml6Y2F5YScsICdhdmlsZXMnLCAnZ2lqb24nLCAnb3ZpZWRvJywg J2FsbWVyaWEnLCAnZ3JhbmFkYScsICdqYWVuJywgJ2FsaWNhbnRlJywgJ3ZhbGVuY2lhJywgJ2FsYmFj ZXRlJywgJ211cmNpYScsICdjYWRpeicsICdqZXJleicsICdjYXN0ZWxsb24nKTsNCgkJDQoJLy92YXIg c2VwYXJhZG9yID0gZWRpY2lvbmVzLmluX2FycmF5KGNhbXBvc1sxXSkgPyAnLicgOiAnLyc7CQ0KCXZh ciBzZXBhcmFkb3IgPSAnLyc7DQoJDQoJdmFyIE9BU19zaXRlcGFnZV9kYyA9ICd2b2NlbnRvLicgKyBw ZXJpb2RpY28gKyBzZXBhcmFkb3IgKyBjYW1wb3NbMV07DQoJCQ0KCWZvciAodmFyIGkgPSAyOyBpIDwg Y2FtcG9zLmxlbmd0aDsgaSsrKSB7DQoJCU9BU19zaXRlcGFnZV9kYyArPSAnLycgKyBjYW1wb3NbaV07 CQ0KCX0NCgkNCgkvL2FsZXJ0KE9BU19zaXRlcGFnZV9kYyk7DQoJDQoJdmFyIHZfdGlsZSA9IDE7DQoJ DQoJLy9PQVNfc2l0ZXBhZ2VfZGMgPSAndm9jZW50by5wcnVlYmEvcG9ydGFkYSc7IC8vIDwtLS0gUHJ1 ZWJhcw0KCQ0KCWlmKHR5cGVvZih2X3JhbmRvbW51bWJlcik9PSJ1bmRlZmluZWQiKXt2YXIgdl9yYW5k b21udW1iZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjEwMDAwMDAwMDAwKX0NCgkNCglmdW5jdGlv biBPQVNfQUQocG9zKSB7DQoJCQ0KCQl2YXIgcG9zaXRpb25fZGMgPSAnJzsNCgkJdl90aWxlKys7DQoJ CXN3aXRjaCAocG9zKSB7DQoJCQljYXNlICdQb3NpdGlvbjEnOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bv cz1tZWdhYmFubmVyO3RpbGU9JyArIHZfdGlsZSArICc7c3o9NzI4eDkwLDQ2OHg2MCw5ODJ4OTAnOw0K CQkJCWJyZWFrOw0KCQkJY2FzZSAneDY5JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25fc3Vw ZXJpb3I7dGlsZT0nICsgdl90aWxlICsgJztzej0yMzR4NDUnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAn eDk2JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25faW5mZXJpb3I7dGlsZT0nICsgdl90aWxl ICsgJztzej0yMzR4NDUnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDQzJzoNCgkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9Y2ludGlsbG9fc3VwZXJpb3I7dGlsZT0nICsgdl90aWxlICsgJztzej02NzV4MzAsNjcw eDMwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ1Bvc2l0aW9uMyc6DQoJCQljYXNlICd4MjYnOg0KCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz1yb2JhcGFnaW5hczt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTMwMHgy NTAsMjAweDIwMCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICd4NTEnOg0KCQkJY2FzZSAnUG9zaXRpb240 JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25fZG9ibGVfbG9jYWw7dGlsZT0nICsgdl90aWxl ICsgJztzej0zMDB4OTAsNTAweDc1JzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3g1Nic6DQoJCQkJcG9z aXRpb25fZGMgPSAncG9zPWJvdG9uX2xvY2FsMzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTMwMHg0NSwx NDd4ODAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDUzJzoNCgkJCWNhc2UgJ1RvcDEnOg0KCQkJY2Fz ZSAnVG9wMic6DQoJCQljYXNlICdNaWRkbGUnOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9s b2NhbDE7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUsMTQ3eDgwLDEyMHg2MCw5MHgxNTAsMTYw eDUwLDEyMHgxMjAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDU0JzoNCgkJCWNhc2UgJ1RvcDMnOg0K CQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9uYWwyO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAw eDQ1LDE0N3g4MCw5MHgxNTAsMzAweDkwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3g0NCc6DQoJCQkJ cG9zaXRpb25fZGMgPSAncG9zPWNpbnRpbGxvX2xvY2FsO3RpbGU9JyArIHZfdGlsZSArICc7c3o9Njc1 eDMwLDY3MHgzMCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICd4MjcnOg0KCQkJCXBvc2l0aW9uX2RjID0g J3Bvcz1ib3Rvbl9sb2NhbDQ7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUnOw0KCQkJCWJyZWFr Ow0KCQkJY2FzZSAneDI5JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9Ym90b25fbG9jYWw1O3RpbGU9 JyArIHZfdGlsZSArICc7c3o9MzAweDQ1JzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3g0OSc6DQoJCQkJ cG9zaXRpb25fZGMgPSAncG9zPWNpbnRpbGxvX2luZmVyaW9yO3RpbGU9JyArIHZfdGlsZSArICc7c3o9 Njc1eDMwLDY3MHgzMCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICd4NjAnOg0KCQkJCXBvc2l0aW9uX2Rj ID0gJ3Bvcz1jYWphX2luZmVyaW9yO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1JzsNCgkJCQli cmVhazsNCgkJCWNhc2UgJ1JpZ2h0JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9aGFsZmJhbm5lcjt0 aWxlPScgKyB2X3RpbGUgKyAnO3N6PTIzNHg5MCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICd4MzInOg0K CQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1za3lzY3JhcGVyO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTIw eDYwMCwyMDB4NjAwLDE2MHg2MDAsMTIweDI0MCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdMZWZ0JzoN CgkJCWNhc2UgJ01pZGRsZTInOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz1ib3Rvbl9uYWwzO3RpbGU9 JyArIHZfdGlsZSArICc7c3o9MzAweDkwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ01pZGRsZTMnOg0K CQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0xYm90b24xMDV4NjA7dGlsZT0nICsgdl90aWxlICsgJztzej0x MDV4NjAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDExJzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9 MmJvdG9uMTA1eDYwO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTA1eDYwJzsNCgkJCQlicmVhazsNCgkJ CWNhc2UgJ0JvdHRvbVJpZ2h0JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9M2JvdG9uMTA1eDYwO3Rp bGU9JyArIHZfdGlsZSArICc7c3o9MTA1eDYwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ01pZGRsZTEn Og0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz01Ym90b24xMDV4NjA7dGlsZT0nICsgdl90aWxlICsgJztz ej0xMDV4NjAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDQ4JzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdw b3M9NGJvdG9uMTA1eDYwO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTA1eDYwJzsNCgkJCQlicmVhazsN CgkJCQlicmVhazsJDQoJCQljYXNlICd4MTAnIDoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9MWJvdG9u MTgweDEyNTt0aWxlPScrIHZfdGlsZSArJztzej0xODB4MTI1JzsNCgkJCQlicmVhazsNCgkJCWNhc2Ug J3gwNScgOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0yYm90b24xODB4MTI1O3RpbGU9Jysgdl90aWxl ICsnO3N6PTE4MHgxMjUnOyAgICAgICAgICAgIA0KCQkJCWJyZWFrOw0KCQkJY2FzZSAneDA3JyA6DQoJ CQkJcG9zaXRpb25fZGMgPSAncG9zPTFib3RvbjEyMHg1MDt0aWxlPScrIHZfdGlsZSArJztzej0xMjB4 MTUwJzsgICAgICAgICAgICANCgkJCQlicmVhazsNCgkJCWNhc2UgJ3gwOScgOg0KCQkJCXBvc2l0aW9u X2RjID0gJ3Bvcz0yYm90b24xMjB4NTA7dGlsZT0nKyB2X3RpbGUgKyc7c3o9MTIweDE1MCw0Njh4NjAn OyAgDQoJCQkJYnJlYWs7DQoJCQljYXNlICd4MTInIDoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9M2Jv dG9uMTgweDEyNTt0aWxlPScrIHZfdGlsZSArJztzej0xODB4MTI1JzsNCgkJCQlicmVhazsNCgkJCWNh c2UgJ3gxMycgOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz00Ym90b24xODB4MTI1O3RpbGU9Jysgdl90 aWxlICsnO3N6PTE4MHgxMjUnOyAgICAgICAgICAgIA0KCQkJCWJyZWFrOwkNCgkJCWNhc2UgJ3gyMCc6 DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPXJvYmFwYWdpbmFzX3NtYWxsO3RpbGU9JyArIHZfdGlsZSAr ICc7c3o9MjAweDIwMCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdtZWdhYmFubmVyJzoNCgkJCQlwb3Np dGlvbl9kYyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej03Mjh4OTAsNDY4 eDYwLDk4Mng5MCc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdtZWdhYmFubmVyX2luZic6DQoJCQkJcG9z aXRpb25fZGMgPSAncG9zPScgKyBwb3NpdGlvbiArICc7dGlsZT0nICsgdl90aWxlICsgJztzej03Mjh4 OTAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnYm90b25fc3VwZXJpb3InOg0KCQkJY2FzZSAnYm90b25f aW5mZXJpb3InOg0KCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxlPScgKyB2X3Rp bGUgKyAnO3N6PTIzNHg0NSc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdjaW50aWxsb19zdXBlcmlvcic6 DQoJCQljYXNlICdjaW50aWxsb19sb2NhbCc6DQoJCQljYXNlICdjaW50aWxsb19pbmZlcmlvcic6DQoJ CQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9Njc1 eDMwLDcyOHg3NSc7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdyb2JhcGFnaW5hcyc6DQoJCQkJcG9zaXRp b25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDI1MCwyMDB4 MjAwLDI4MHgyMzMnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAncm9iYXBhZ2luYXNfc21hbGwnOg0KCQkJ CXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTIwMHgy MDAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAncm9iYXBhZ2luYXNfZG9zJzoNCgkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwJzsNCgkJCQli cmVhazsJDQoJCQljYXNlICdib3Rvbl9sb2NhbDEnOgkNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9JyAr IHBvcyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4NDUsMTQ3eDgwLDEyMHg2MCw5MHgxNTAs MTYweDUwLDEyMHgxMjAnOw0KCQkJCWJyZWFrOwkNCgkJCWNhc2UgJ2JvdG9uX2xvY2FsMyc6DQoJCQlj YXNlICdib3Rvbl9uYWwyJzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0n ICsgdl90aWxlICsgJztzej0zMDB4NDUsMTQ3eDgwLDkweDE1MCwzMDB4OTAnOw0KCQkJCWJyZWFrOw0K CQkJY2FzZSAncmVjdWVyZG9fY29ydGlfbGF5ZXJfbmFsJzoNCgkJCWNhc2UgJ2JvdG9uX2xvY19zdXBl cmlvcic6DQoJCQljYXNlICdib3Rvbl9sb2NhbDInOg0KCQkJY2FzZSAnYm90b25fbG9jYWw0JzoNCgkJ CWNhc2UgJ2JvdG9uX2xvY2FsNSc6DQoJCQljYXNlICdib3Rvbl9sb2NhbDYnOg0KCQkJY2FzZSAnYm90 b25fbG9jYWw3JzoNCgkJCWNhc2UgJ2JvdG9uX2xvY2FsOCc6DQoJCQljYXNlICdib3Rvbl9sb2NhbDkn Og0KCQkJY2FzZSAnYm90b25fbG9jYWwxMCc6DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3Mg KyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MzAweDQ1JzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ2Jv dG9uX2RvYmxlX2xvY2FsJzoNCgkJCWNhc2UgJ2JvdG9uX2RvYmxlX2xvY2FsMic6DQoJCQljYXNlICdi b3Rvbl9kb2JsZV9sb2NhbDMnOg0KCQkJY2FzZSAnYm90b25fZG9ibGVfbmFjaW9uYWwnOg0KCQkJY2Fz ZSAnYm90b25fbmFsX2FiYWpvJzoNCgkJCWNhc2UgJ2JvdG9uX25hbDMnOg0KCQkJY2FzZSAnYm90b25f bmFsMSc6DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSAr ICc7c3o9MzAweDkwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ2JvdG9uXzI1NHg5MCc6DQoJCQkJcG9z aXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MjU0eDkwJzsN CgkJCQlicmVhazsJDQoJCQljYXNlICdib3Rvbl9ib3RvbjFEXzE3MHg1MCc6DQoJCQljYXNlICdib3Rv bl9ib3RvbjJEXzE3MHg1MCc6DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9 JyArIHZfdGlsZSArICc7c3o9MTcweDUwJzsNCgkJCQlicmVhazsJCQ0KCQkJY2FzZSAnaGFsZmJhbm5l cic6DQoJCQkJcG9zaXRpb25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7 c3o9MjM0eDkwJzsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3NreXNjcmFwZXInOg0KCQkJCXBvc2l0aW9u X2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTEyMHg2MDAsMjAweDYw MCwxMjB4MjQwLDE2MHg2MDAnOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnc2t5c2NyYXBlcl9kZXInOg0K CQkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9c2t5c2NyYXBlcl9kZXI7dGlsZT0nICsgdl90aWxlICsgJztz ej0xMjB4NjAwLDIwMHg2MDAnOw0KCQkJCQlicmVhazsNCgkJCWNhc2UgJ3NreXNjcmFwZXJfaXpxJzoN CgkJCQkJcG9zaXRpb25fZGMgPSAncG9zPXNreXNjcmFwZXJfaXpxO3RpbGU9JyArIHZfdGlsZSArICc7 c3o9MTIweDYwMCwyMDB4NjAwJzsNCgkJCQkJYnJlYWs7DQoJCQkJDQoJCQljYXNlICcxYm90b24xMDV4 NjAnOg0KCQkJY2FzZSAnMmJvdG9uMTA1eDYwJzoNCgkJCWNhc2UgJzNib3RvbjEwNXg2MCc6DQoJCQlj YXNlICc1Ym90b24xMDV4NjAnOg0KCQkJY2FzZSAnNGJvdG9uMTA1eDYwJzoNCgkJCQlwb3NpdGlvbl9k YyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej0xMDV4NjAnOw0KCQkJCWJy ZWFrOw0KCQkJY2FzZSAnNWJvdG9uMTgweDEyNSc6DQoJCQljYXNlICc2Ym90b24xODB4MTI1JzoNCgkJ CWNhc2UgJzdib3RvbjE4MHgxMjUnOg0KCQkJY2FzZSAnOGJvdG9uMTgweDEyNSc6DQoJCQkJcG9zaXRp b25fZGMgPSAncG9zPScgKyBwb3MgKyAnO3RpbGU9JyArIHZfdGlsZSArICc7c3o9MTgweDEyNSc7DQoJ CQkJYnJlYWs7DQoJCQljYXNlICcxYm90b24xMTV4NTQnOg0KCQkJCWNhc2UgJzJib3RvbjExNXg1NCc6 DQoJCQkJY2FzZSAnM2JvdG9uMTE1eDU0JzoNCgkJCQljYXNlICc0Ym90b24xMTV4NTQnOg0KCQkJCWNh c2UgJzVib3RvbjExNXg1NCc6DQoJCQkJCXBvc2l0aW9uX2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxl PScgKyB2X3RpbGUgKyAnO3N6PTExNXg1NCc7DQoJCQkJCWJyZWFrOwkJDQoJCQljYXNlICdiYW5uZXIn Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBv cyArICc7dGlsZT0nICsgdl90aWxlICsgJztzej00Njh4NjAsNDIweDgwJzsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQoJCQljYXNlICdsdmFfcm9iYXBhZ2luYXMtbG9jYWwnOg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvcyAr ICc7dGlsZT0nICsgdl90aWxlICsgJztzej0zMDB4MjUwLDIwMHgyMDAnOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhYmVj ZXJhJzoNCgkJCQlwb3NpdGlvbl9kYyA9ICdwb3M9JyArIHBvcyArICc7dGlsZT0nICsgdl90aWxlICsg Jztzej0xMDAyeDc1JzsNCgkJCQlicmVhazsJDQoJCQljYXNlICdpbnRlcnMnOg0KICAgICAgCXBvc2l0 aW9uX2RjID0gJ3Bvcz0nICsgcG9zICsgJzt0aWxlPScgKyB2X3RpbGUgKyAnO3N6PTJ4Mic7DQogICAg ICAgIGJyZWFrOw0KCQkJZGVmYXVsdDoNCgkJCQlwb3NpdGlvbl9kYyA9IHBvczsNCgkJCQlicmVhazsJ DQoJCX0NCgkJDQoJCXBvcyA9IHBvc2l0aW9uX2RjOw0KCQkvL2FsZXJ0KHBvcyArICctPicgKyB2X3Jh bmRvbW51bWJlcik7DQoJCWRvY3VtZW50LndyaXRlKCc8c2NyJysnaXB0IHNyYz0iaHR0cDovL2FkLmVz LmRvdWJsZWNsaWNrLm5ldC9hZGovJyArIE9BU19zaXRlcGFnZV9kYyArICc7JyArIHBvcyArICc7b3Jk PScrdl9yYW5kb21udW1iZXIrJz8iPjxcL3NjcicrJ2lwdD4nKTsNCgkJLy9kb2N1bWVudC53cml0ZSgn PHNjcicrJ2lwdCBzcmM9Imh0dHA6Ly9hZC51ay5kb3VibGVjbGljay5uZXQvYWRqLycgKyBPQVNfc2l0 ZXBhZ2VfZGMgKyAnOycgKyBwb3MgKyAnO29yZD0nK3ZfcmFuZG9tbnVtYmVyKyc/Ij48XC9zY3InKydp cHQ+Jyk7DQoJfQ0KDQoJLyoqKioqKioqIEZJTiBQVUJMSUNJREFEICoqKioqKioqLw0KCQ0KZnVuY3Rp b24gcHVibGlNSlhPQ3VsdGFEaXZQdWJsaShkaXZDb250ZW5lZG9yLHBvc2l0aW9uLGRlc2RlKXsNCnB1 YmxpTUpYKHBvc2l0aW9uLGRlc2RlKTsNCiQod2luZG93KS5sb2FkKGZ1bmN0aW9uICgpIHsNCnZhciBh bHRvRGl2ID0gJCgnIycrZGl2Q29udGVuZWRvcikuaGVpZ2h0KCk7DQppZiggbmF2aWdhdG9yLmFwcE5h bWU9PSdNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXInICYmIGFsdG9EaXYgPCAyMCApew0KZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoZGl2Q29udGVuZWRvcikuc3R5bGUuc2V0QXR0cmlidXRlKCJjc3NUZXh0 IiwgJ2Rpc3BsYXk6bm9uZTsnICk7DQp9IGVsc2UgaWYoIGFsdG9EaXYgPCA1ICkgew0KJCgnIycrZGl2 Q29udGVuZWRvcikuYXR0cignc3R5bGUnLCdkaXNwbGF5Om5vbmU7Jyk7DQp9DQp9KTsNCn0= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/ctv/swfobject_publi.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: Ly8gQ2FyZ2EgZGUgU1dGT2JqZWN0IChsaWJyZXJpYSBkZSBpbmNsdXNpb24gZGUgb2JqZXRvcyBmbGFz aCBlbiBodG1sKQppZiAoIVNXRk9iamVjdCkgewppZih0eXBlb2YgZGVjb25jZXB0PT0idW5kZWZpbmVk Iil7dmFyIGRlY29uY2VwdD1uZXcgT2JqZWN0KCk7fWlmKHR5cGVvZiBkZWNvbmNlcHQudXRpbD09InVu ZGVmaW5lZCIpe2RlY29uY2VwdC51dGlsPW5ldyBPYmplY3QoKTt9aWYodHlwZW9mIGRlY29uY2VwdC5T V0ZPYmplY3RVdGlsPT0idW5kZWZpbmVkIil7ZGVjb25jZXB0LlNXRk9iamVjdFV0aWw9bmV3IE9iamVj dCgpO31kZWNvbmNlcHQuU1dGT2JqZWN0PWZ1bmN0aW9uKF8xLGlkLHcsaCxfNSxjLF83LF84LF85LF9h KXtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpe3JldHVybjt9dGhpcy5ERVRFQ1RfS0VZPV9hP19h OiJkZXRlY3RmbGFzaCI7dGhpcy5za2lwRGV0ZWN0PWRlY29uY2VwdC51dGlsLmdldFJlcXVlc3RQYXJh bWV0ZXIodGhpcy5ERVRFQ1RfS0VZKTt0aGlzLnBhcmFtcz1uZXcgT2JqZWN0KCk7dGhpcy52YXJpYWJs ZXM9bmV3IE9iamVjdCgpO3RoaXMuYXR0cmlidXRlcz1uZXcgQXJyYXkoKTtpZihfMSl7dGhpcy5zZXRB dHRyaWJ1dGUoInN3ZiIsXzEpO31pZihpZCl7dGhpcy5zZXRBdHRyaWJ1dGUoImlkIixpZCk7fWlmKHcp e3RoaXMuc2V0QXR0cmlidXRlKCJ3aWR0aCIsdyk7fWlmKGgpe3RoaXMuc2V0QXR0cmlidXRlKCJoZWln aHQiLGgpO31pZihfNSl7dGhpcy5zZXRBdHRyaWJ1dGUoInZlcnNpb24iLG5ldyBkZWNvbmNlcHQuUGxh eWVyVmVyc2lvbihfNS50b1N0cmluZygpLnNwbGl0KCIuIikpKTt9dGhpcy5pbnN0YWxsZWRWZXI9ZGVj b25jZXB0LlNXRk9iamVjdFV0aWwuZ2V0UGxheWVyVmVyc2lvbigpO2lmKCF3aW5kb3cub3BlcmEmJmRv Y3VtZW50LmFsbCYmdGhpcy5pbnN0YWxsZWRWZXIubWFqb3I+Nyl7ZGVjb25jZXB0LlNXRk9iamVjdC5k b1ByZXBVbmxvYWQ9dHJ1ZTt9aWYoYyl7dGhpcy5hZGRQYXJhbSgiYmdjb2xvciIsYyk7fXZhciBxPV83 P183OiJoaWdoIjt0aGlzLmFkZFBhcmFtKCJxdWFsaXR5IixxKTt0aGlzLnNldEF0dHJpYnV0ZSgidXNl RXhwcmVzc0luc3RhbGwiLGZhbHNlKTt0aGlzLnNldEF0dHJpYnV0ZSgiZG9FeHByZXNzSW5zdGFsbCIs ZmFsc2UpO3ZhciBfYz0oXzgpP184OndpbmRvdy5sb2NhdGlvbjt0aGlzLnNldEF0dHJpYnV0ZSgieGlS ZWRpcmVjdFVybCIsX2MpO3RoaXMuc2V0QXR0cmlidXRlKCJyZWRpcmVjdFVybCIsIiIpO2lmKF85KXt0 aGlzLnNldEF0dHJpYnV0ZSgicmVkaXJlY3RVcmwiLF85KTt9fTtkZWNvbmNlcHQuU1dGT2JqZWN0LnBy b3RvdHlwZT17dXNlRXhwcmVzc0luc3RhbGw6ZnVuY3Rpb24oX2Qpe3RoaXMueGlTV0ZQYXRoPSFfZD8i ZXhwcmVzc2luc3RhbGwuc3dmIjpfZDt0aGlzLnNldEF0dHJpYnV0ZSgidXNlRXhwcmVzc0luc3RhbGwi LHRydWUpO30sc2V0QXR0cmlidXRlOmZ1bmN0aW9uKF9lLF9mKXt0aGlzLmF0dHJpYnV0ZXNbX2VdPV9m O30sZ2V0QXR0cmlidXRlOmZ1bmN0aW9uKF8xMCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc1tfMTBdO30s YWRkUGFyYW06ZnVuY3Rpb24oXzExLF8xMil7dGhpcy5wYXJhbXNbXzExXT1fMTI7fSxnZXRQYXJhbXM6 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJhbXM7fSxhZGRWYXJpYWJsZTpmdW5jdGlvbihfMTMsXzE0 KXt0aGlzLnZhcmlhYmxlc1tfMTNdPV8xNDt9LGdldFZhcmlhYmxlOmZ1bmN0aW9uKF8xNSl7cmV0dXJu IHRoaXMudmFyaWFibGVzW18xNV07fSxnZXRWYXJpYWJsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52 YXJpYWJsZXM7fSxnZXRWYXJpYWJsZVBhaXJzOmZ1bmN0aW9uKCl7dmFyIF8xNj1uZXcgQXJyYXkoKTt2 YXIga2V5O3ZhciBfMTg9dGhpcy5nZXRWYXJpYWJsZXMoKTtmb3Ioa2V5IGluIF8xOCl7XzE2W18xNi5s ZW5ndGhdPWtleSsiPSIrXzE4W2tleV07fXJldHVybiBfMTY7fSxnZXRTV0ZIVE1MOmZ1bmN0aW9uKCl7 dmFyIF8xOT0iIjtpZihuYXZpZ2F0b3IucGx1Z2lucyYmbmF2aWdhdG9yLm1pbWVUeXBlcyYmbmF2aWdh dG9yLm1pbWVUeXBlcy5sZW5ndGgpe2lmKHRoaXMuZ2V0QXR0cmlidXRlKCJkb0V4cHJlc3NJbnN0YWxs Iikpe3RoaXMuYWRkVmFyaWFibGUoIk1NcGxheWVyVHlwZSIsIlBsdWdJbiIpO3RoaXMuc2V0QXR0cmli dXRlKCJzd2YiLHRoaXMueGlTV0ZQYXRoKTt9XzE5PSI8ZW1iZWQgdHlwZT1cImFwcGxpY2F0aW9uL3gt c2hvY2t3YXZlLWZsYXNoXCIgc3JjPVwiIit0aGlzLmdldEF0dHJpYnV0ZSgic3dmIikrIlwiIHdpZHRo PVwiIit0aGlzLmdldEF0dHJpYnV0ZSgid2lkdGgiKSsiXCIgaGVpZ2h0PVwiIit0aGlzLmdldEF0dHJp YnV0ZSgiaGVpZ2h0IikrIlwiIHN0eWxlPVwiIit0aGlzLmdldEF0dHJpYnV0ZSgic3R5bGUiKSsiXCIi O18xOSs9IiBpZD1cIiIrdGhpcy5nZXRBdHRyaWJ1dGUoImlkIikrIlwiIG5hbWU9XCIiK3RoaXMuZ2V0 QXR0cmlidXRlKCJpZCIpKyJcIiAiO3ZhciBfMWE9dGhpcy5nZXRQYXJhbXMoKTtmb3IodmFyIGtleSBp biBfMWEpe18xOSs9W2tleV0rIj1cIiIrXzFhW2tleV0rIlwiICI7fXZhciBfMWM9dGhpcy5nZXRWYXJp YWJsZVBhaXJzKCkuam9pbigiJiIpO2lmKF8xYy5sZW5ndGg+MCl7XzE5Kz0iZmxhc2h2YXJzPVwiIitf MWMrIlwiIjt9XzE5Kz0iLz4iO31lbHNle2lmKHRoaXMuZ2V0QXR0cmlidXRlKCJkb0V4cHJlc3NJbnN0 YWxsIikpe3RoaXMuYWRkVmFyaWFibGUoIk1NcGxheWVyVHlwZSIsIkFjdGl2ZVgiKTt0aGlzLnNldEF0 dHJpYnV0ZSgic3dmIix0aGlzLnhpU1dGUGF0aCk7fV8xOT0iPG9iamVjdCBpZD1cIiIrdGhpcy5nZXRB dHRyaWJ1dGUoImlkIikrIlwiIGNsYXNzaWQ9XCJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00 NDQ1NTM1NDAwMDBcIiB3aWR0aD1cIiIrdGhpcy5nZXRBdHRyaWJ1dGUoIndpZHRoIikrIlwiIGhlaWdo dD1cIiIrdGhpcy5nZXRBdHRyaWJ1dGUoImhlaWdodCIpKyJcIiBzdHlsZT1cIiIrdGhpcy5nZXRBdHRy aWJ1dGUoInN0eWxlIikrIlwiPiI7XzE5Kz0iPHBhcmFtIG5hbWU9XCJtb3ZpZVwiIHZhbHVlPVwiIit0 aGlzLmdldEF0dHJpYnV0ZSgic3dmIikrIlwiIC8+Ijt2YXIgXzFkPXRoaXMuZ2V0UGFyYW1zKCk7Zm9y KHZhciBrZXkgaW4gXzFkKXtfMTkrPSI8cGFyYW0gbmFtZT1cIiIra2V5KyJcIiB2YWx1ZT1cIiIrXzFk W2tleV0rIlwiIC8+Ijt9dmFyIF8xZj10aGlzLmdldFZhcmlhYmxlUGFpcnMoKS5qb2luKCImIik7aWYo XzFmLmxlbmd0aD4wKXtfMTkrPSI8cGFyYW0gbmFtZT1cImZsYXNodmFyc1wiIHZhbHVlPVwiIitfMWYr IlwiIC8+Ijt9XzE5Kz0iPC9vYmplY3Q+Ijt9cmV0dXJuIF8xOTt9LHdyaXRlOmZ1bmN0aW9uKF8yMCl7 aWYodGhpcy5nZXRBdHRyaWJ1dGUoInVzZUV4cHJlc3NJbnN0YWxsIikpe3ZhciBfMjE9bmV3IGRlY29u Y2VwdC5QbGF5ZXJWZXJzaW9uKFs2LDAsNjVdKTtpZih0aGlzLmluc3RhbGxlZFZlci52ZXJzaW9uSXNW YWxpZChfMjEpJiYhdGhpcy5pbnN0YWxsZWRWZXIudmVyc2lvbklzVmFsaWQodGhpcy5nZXRBdHRyaWJ1 dGUoInZlcnNpb24iKSkpe3RoaXMuc2V0QXR0cmlidXRlKCJkb0V4cHJlc3NJbnN0YWxsIix0cnVlKTt0 aGlzLmFkZFZhcmlhYmxlKCJNTXJlZGlyZWN0VVJMIixlc2NhcGUodGhpcy5nZXRBdHRyaWJ1dGUoInhp UmVkaXJlY3RVcmwiKSkpO2RvY3VtZW50LnRpdGxlPWRvY3VtZW50LnRpdGxlLnNsaWNlKDAsNDcpKyIg LSBGbGFzaCBQbGF5ZXIgSW5zdGFsbGF0aW9uIjt0aGlzLmFkZFZhcmlhYmxlKCJNTWRvY3RpdGxlIixk b2N1bWVudC50aXRsZSk7fX1pZih0aGlzLnNraXBEZXRlY3R8fHRoaXMuZ2V0QXR0cmlidXRlKCJkb0V4 cHJlc3NJbnN0YWxsIil8fHRoaXMuaW5zdGFsbGVkVmVyLnZlcnNpb25Jc1ZhbGlkKHRoaXMuZ2V0QXR0 cmlidXRlKCJ2ZXJzaW9uIikpKXt2YXIgbj0odHlwZW9mIF8yMD09InN0cmluZyIpP2RvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKF8yMCk6XzIwO24uaW5uZXJIVE1MPXRoaXMuZ2V0U1dGSFRNTCgpO3JldHVybiB0 cnVlO31lbHNle2lmKHRoaXMuZ2V0QXR0cmlidXRlKCJyZWRpcmVjdFVybCIpIT0iIil7ZG9jdW1lbnQu bG9jYXRpb24ucmVwbGFjZSh0aGlzLmdldEF0dHJpYnV0ZSgicmVkaXJlY3RVcmwiKSk7fX1yZXR1cm4g ZmFsc2U7fX07ZGVjb25jZXB0LlNXRk9iamVjdFV0aWwuZ2V0UGxheWVyVmVyc2lvbj1mdW5jdGlvbigp e3ZhciBfMjM9bmV3IGRlY29uY2VwdC5QbGF5ZXJWZXJzaW9uKFswLDAsMF0pO2lmKG5hdmlnYXRvci5w bHVnaW5zJiZuYXZpZ2F0b3IubWltZVR5cGVzLmxlbmd0aCl7dmFyIHg9bmF2aWdhdG9yLnBsdWdpbnNb IlNob2Nrd2F2ZSBGbGFzaCJdO2lmKHgmJnguZGVzY3JpcHRpb24pe18yMz1uZXcgZGVjb25jZXB0LlBs YXllclZlcnNpb24oeC5kZXNjcmlwdGlvbi5yZXBsYWNlKC8oW2EtekEtWl18XHMpKy8sIiIpLnJlcGxh Y2UoLyhccytyfFxzK2JbMC05XSspLywiLiIpLnNwbGl0KCIuIikpO319ZWxzZXtpZihuYXZpZ2F0b3Iu dXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIldpbmRvd3MgQ0UiKT49MCl7dmFy IGF4bz0xO3ZhciBfMjY9Mzt3aGlsZShheG8pe3RyeXtfMjYrKztheG89bmV3IEFjdGl2ZVhPYmplY3Qo IlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLiIrXzI2KTtfMjM9bmV3IGRlY29uY2VwdC5QbGF5 ZXJWZXJzaW9uKFtfMjYsMCwwXSk7fWNhdGNoKGUpe2F4bz1udWxsO319fWVsc2V7dHJ5e3ZhciBheG89 bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoLjciKTt9Y2F0Y2go ZSl7dHJ5e3ZhciBheG89bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZs YXNoLjYiKTtfMjM9bmV3IGRlY29uY2VwdC5QbGF5ZXJWZXJzaW9uKFs2LDAsMjFdKTtheG8uQWxsb3dT Y3JpcHRBY2Nlc3M9ImFsd2F5cyI7fWNhdGNoKGUpe2lmKF8yMy5tYWpvcj09Nil7cmV0dXJuIF8yMzt9 fXRyeXtheG89bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIik7 fWNhdGNoKGUpe319aWYoYXhvIT1udWxsKXtfMjM9bmV3IGRlY29uY2VwdC5QbGF5ZXJWZXJzaW9uKGF4 by5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKS5zcGxpdCgiICIpWzFdLnNwbGl0KCIsIikpO319fXJldHVy biBfMjM7fTtkZWNvbmNlcHQuUGxheWVyVmVyc2lvbj1mdW5jdGlvbihfMjkpe3RoaXMubWFqb3I9XzI5 WzBdIT1udWxsP3BhcnNlSW50KF8yOVswXSk6MDt0aGlzLm1pbm9yPV8yOVsxXSE9bnVsbD9wYXJzZUlu dChfMjlbMV0pOjA7dGhpcy5yZXY9XzI5WzJdIT1udWxsP3BhcnNlSW50KF8yOVsyXSk6MDt9O2RlY29u Y2VwdC5QbGF5ZXJWZXJzaW9uLnByb3RvdHlwZS52ZXJzaW9uSXNWYWxpZD1mdW5jdGlvbihmdil7aWYo dGhpcy5tYWpvcjxmdi5tYWpvcil7cmV0dXJuIGZhbHNlO31pZih0aGlzLm1ham9yPmZ2Lm1ham9yKXty ZXR1cm4gdHJ1ZTt9aWYodGhpcy5taW5vcjxmdi5taW5vcil7cmV0dXJuIGZhbHNlO31pZih0aGlzLm1p bm9yPmZ2Lm1pbm9yKXtyZXR1cm4gdHJ1ZTt9aWYodGhpcy5yZXY8ZnYucmV2KXtyZXR1cm4gZmFsc2U7 fXJldHVybiB0cnVlO307ZGVjb25jZXB0LnV0aWw9e2dldFJlcXVlc3RQYXJhbWV0ZXI6ZnVuY3Rpb24o XzJiKXt2YXIgcT1kb2N1bWVudC5sb2NhdGlvbi5zZWFyY2h8fGRvY3VtZW50LmxvY2F0aW9uLmhhc2g7 aWYoXzJiPT1udWxsKXtyZXR1cm4gcTt9aWYocSl7dmFyIF8yZD1xLnN1YnN0cmluZygxKS5zcGxpdCgi JiIpO2Zvcih2YXIgaT0wO2k8XzJkLmxlbmd0aDtpKyspe2lmKF8yZFtpXS5zdWJzdHJpbmcoMCxfMmRb aV0uaW5kZXhPZigiPSIpKT09XzJiKXtyZXR1cm4gXzJkW2ldLnN1YnN0cmluZygoXzJkW2ldLmluZGV4 T2YoIj0iKSsxKSk7fX19cmV0dXJuICIiO319O2RlY29uY2VwdC5TV0ZPYmplY3RVdGlsLmNsZWFudXBT V0ZzPWZ1bmN0aW9uKCl7dmFyIF8yZj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiT0JKRUNU Iik7Zm9yKHZhciBpPV8yZi5sZW5ndGgtMTtpPj0wO2ktLSl7XzJmW2ldLnN0eWxlLmRpc3BsYXk9Im5v bmUiO2Zvcih2YXIgeCBpbiBfMmZbaV0pe2lmKHR5cGVvZiBfMmZbaV1beF09PSJmdW5jdGlvbiIpe18y ZltpXVt4XT1mdW5jdGlvbigpe307fX19fTtpZihkZWNvbmNlcHQuU1dGT2JqZWN0LmRvUHJlcFVubG9h ZCl7aWYoIWRlY29uY2VwdC51bmxvYWRTZXQpe2RlY29uY2VwdC5TV0ZPYmplY3RVdGlsLnByZXBVbmxv YWQ9ZnVuY3Rpb24oKXtfX2ZsYXNoX3VubG9hZEhhbmRsZXI9ZnVuY3Rpb24oKXt9O19fZmxhc2hfc2F2 ZWRVbmxvYWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixk ZWNvbmNlcHQuU1dGT2JqZWN0VXRpbC5jbGVhbnVwU1dGcyk7fTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9u YmVmb3JldW5sb2FkIixkZWNvbmNlcHQuU1dGT2JqZWN0VXRpbC5wcmVwVW5sb2FkKTtkZWNvbmNlcHQu dW5sb2FkU2V0PXRydWU7fX1pZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQmJmRvY3VtZW50LmFsbCl7 ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQ9ZnVuY3Rpb24oaWQpe3JldHVybiBkb2N1bWVudC5hbGxbaWRd O307fXZhciBnZXRRdWVyeVBhcmFtVmFsdWU9ZGVjb25jZXB0LnV0aWwuZ2V0UmVxdWVzdFBhcmFtZXRl cjt2YXIgRmxhc2hPYmplY3Q9ZGVjb25jZXB0LlNXRk9iamVjdDt2YXIgU1dGT2JqZWN0PWRlY29uY2Vw dC5TV0ZPYmplY3Q7Cn0KCnZhciBpQ29udCA9IDA7CnZhciBpV2lkdGgxID0gMDsKdmFyIGlIZWlnaHQx ID0gMDsKdmFyIHNEaXYxID0gIiI7CnZhciBzRmlsZTEgPSAiIjsKdmFyIHNQcmV2aWV3MSA9ICIiOwp2 YXIgZmxvYXRpbmcxID0gZmFsc2U7CnZhciBmdWxsc2NyZWVuID0gZmFsc2U7CnZhciBzWm9uYXMgPSAi IjsKZnVuY3Rpb24gZ2V0S2V5V29yZHModGl0bGUpIHsKCXRpdGxlID0gdGl0bGUudG9Mb3dlckNhc2Uo KTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW+Dh4uRdKy9nLCAiYSIpOwoJdGl0bGUgPSB0aXRsZS5y ZXBsYWNlKC9b6ejq610rL2csICJlIik7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vs7e7vXSsvZywg ImkiKTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW/Py9PZdKy9nLCAibyIpOwoJdGl0bGUgPSB0aXRs ZS5yZXBsYWNlKC9b+vn7/F0rL2csICJ1Iik7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vnXSsvZywg ImMiKTsKCXRpdGxlID0gdGl0bGUucmVwbGFjZSgvXGIvZywgIl8iKTsKCXRpdGxlID0gdGl0bGUucmVw bGFjZSgvXFcvZywgIiIpOwoJdmFyIHdvcmRzID0gdGl0bGUuc3BsaXQoIl8iKTsKCXZhciBrZXl3b3Jk cyA9ICIiOwoJZm9yICggdmFyIGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspIHsKCQlpZiAoMyA8 IHdvcmRzW2ldLmxlbmd0aCkKCQkJa2V5d29yZHMgKz0gIiwiICsgd29yZHNbaV07Cgl9CglpZiAoa2V5 d29yZHMgIT0gIiIpCgkJa2V5d29yZHMgPSBrZXl3b3Jkcy5zdWJzdHJpbmcoMSk7CgoJcmV0dXJuIGtl eXdvcmRzOwp9Ci8vUGxheWVyIGFudGlndW8KZnVuY3Rpb24gc2hvd1BsYXllcihzUGxheWVyLCBzVGFn cywgc1pvbmFzLCBiU3RyZXRjaCkgewoJdmFyIGZvID0gbmV3IFNXRk9iamVjdChzUGxheWVyLCAibW92 aWVfcGxheWVyIiwgaVdpZHRoMSwgaUhlaWdodDEsIDgsCgkJCSIjMDAwMDAwIik7Cglmby5hZGRQYXJh bSgiYWxsb3dmdWxsc2NyZWVuIiwgZnVsbHNjcmVlbjEpOwoJZm8uYWRkUGFyYW0oIndtb2RlIiwgInRy YW5zcGFyZW50Iik7Cglmby5hZGRWYXJpYWJsZSgiaW1hZ2UiLCBzUHJldmlldzEpOwoJZm8uYWRkVmFy aWFibGUoIndpZHRoIiwgaVdpZHRoMSk7CglpZiAodHlwZW9mIChiU3RyZXRjaCkgIT0gJ3VuZGVmaW5l ZCcpCgkJZm8uYWRkVmFyaWFibGUoIm92ZXJzdHJldGNoIiwgYlN0cmV0Y2gpOwoJZWxzZQoJCWZvLmFk ZFZhcmlhYmxlKCJvdmVyc3RyZXRjaCIsICJ0cnVlIik7Cglmby5hZGRWYXJpYWJsZSgiaGVpZ2h0Iiwg aUhlaWdodDEpOwoJZm8uYWRkVmFyaWFibGUoImZpbGUiLCBzRmlsZTEpOwoJaWYgKGZsb2F0aW5nMSkK CQlmby5hZGRWYXJpYWJsZSgiZGlzcGxheWhlaWdodCIsIGlIZWlnaHQxKTsKCWZvLmFkZFZhcmlhYmxl KCJzWm9uYXMiLCBzWm9uYXMpOwoJZm8uYWRkVmFyaWFibGUoInAxVSIsIHNab25hcyk7Cglmby5hZGRW YXJpYWJsZSgic1RhZ3MiLCBzVGFncyk7Cglmby53cml0ZShzRGl2MSk7Cn0KCmZ1bmN0aW9uIGxvYWRN ZXRob2RlVmlkZW8oZGl2LCB3LCBoLCBzRmlsZSwgc1ByZXZpZXcsIGZ1bGxzY3JlZW4sIGZsb2F0aW5n LAoJCXNQb3J0YWwsIHNab25hcywgc1RpdGxlLCBzQ2F0ZWdvcnksIGJTdHJldGNoKSB7CgkKCS8qdmFy IG9wY2lvbmVzID0gewoJCWNhdGVnb3JpYVB1YmxpOiBzQ2F0ZWdvcnksCgkJdGl0dWxvOiBzVGl0bGUs CgkJaW1nUHJldmlhOiBzUHJldmlldywKCQlzaXRlOiBzUG9ydGFsCgl9OwoJCglQbGF5ZXJXZWJUVi5j YXJnYVZpZGVvKGRpdiwgc0ZpbGUsIHcsIGgsIG9wY2lvbmVzKTsqLwoJbG9hZE11bHRpbWVkaWEoZGl2 LCB3LCBoLCBzRmlsZSwgc1ByZXZpZXcsIHNQb3J0YWwsIHNUaXRsZSwgc0NhdGVnb3J5KTsKfQoKZnVu Y3Rpb24gbG9hZE11bHRpbWVkaWEoZGl2LCB3LCBoLCBzRmlsZSwgc1ByZXZpZXcsIHNQb3J0YWwsIHNU aXRsZSwgc0NhdGVnb3J5KSB7CQoJdmFyIG9wY2lvbmVzID0gewoJCWNhdGVnb3JpYVB1YmxpOiBzQ2F0 ZWdvcnksCgkJdGl0dWxvOiBzVGl0bGUsCgkJaW1nUHJldmlhOiBzUHJldmlldywKCQlzaXRlOiBzUG9y dGFsCgl9OwoJCglQbGF5ZXJXZWJUVi5jYXJnYVZpZGVvKGRpdiwgc0ZpbGUsIHcsIGgsIG9wY2lvbmVz KTsKfQoKLyoqCiAgT2J0aWVuZSBlbCBPQVMgU2l0ZSBQYWdlIGNvcnJlY3RvIGVuIGZ1bmNp824gZGVs IHZhbG9yIGRlIGxhIHZhcmlhYmxlIHF1ZSB0aWVuZSBlc3RhIHBhZ2luYQoqLwpmdW5jdGlvbiBnZXRP QVNfc2l0ZXBhZ2Uoc09BU19zaXRlcGFnZSkgewoKCXZhciBjYW1wb3MgPSBzT0FTX3NpdGVwYWdlLnNw bGl0KCcvJyk7CQkKCXZhciBjYW1wb3MyID0gY2FtcG9zWzBdLnNwbGl0KCcuJyk7CgkKCXN3aXRjaCAo Y2FtcG9zMlsxXSkgewoJCWNhc2UgJ2VsY29tZXJjaW8tc2EnOgoJCQl2YXIgcGVyaW9kaWNvID0gJ2Vs Y29tZXJjaW9kaWdpdGFsJzsKCQkJYnJlYWs7CgkJY2FzZSAnZGlhcmlvLWVsY29ycmVvJzoKCQkJdmFy IHBlcmlvZGljbyA9ICdlbGNvcnJlb2RpZ2l0YWwnOwoJCQlicmVhazsKCQljYXNlICdsYS12ZXJkYWQn OgoJCQl2YXIgcGVyaW9kaWNvID0gJ2xhdmVyZGFkJzsKCQkJYnJlYWs7CgkJY2FzZSAnbGF2b3pkZWNh ZGl6JzoKCQkJdmFyIHBlcmlvZGljbyA9ICdsYXZvemRpZ2l0YWwnOwoJCQlicmVhazsKCQlkZWZhdWx0 OgoJCQl2YXIgcGVyaW9kaWNvID0gY2FtcG9zMlsxXTsKCQkJYnJlYWs7CQoJfQoJCgkvL3ZhciBlZGlj aW9uZXMgPSBuZXcgQXJyYXkoJ2FsYXZhJywgJ3ZpemNheWEnLCAnYXZpbGVzJywgJ2dpam9uJywgJ292 aWVkbycsICdhbG1lcmlhJywgJ2dyYW5hZGEnLCAnamFlbicsICdhbGljYW50ZScsICd2YWxlbmNpYScs ICdhbGJhY2V0ZScsICdtdXJjaWEnLCAnY2FkaXonLCAnamVyZXonLCAnY2FzdGVsbG9uJyk7CQkKCXZh ciBzZXBhcmFkb3IgPSAnLyc7CQoJcmV0dXJuICd2b2NlbnRvLicgKyBwZXJpb2RpY28gKyBzZXBhcmFk b3IgKyBjYW1wb3NbMV07Cgp9CgkKCi8qKgogKiBDb25zdHJ1Y3RvcgogKi8KZnVuY3Rpb24gUGxheWVy V2ViVFYoKSB7Cgl0aGlzLmluaXR0ZWQgPSBmYWxzZTsKCXRoaXMucG9ydGFsID0gbnVsbDsKCXRoaXMu bW9zY2EgID0gbnVsbDsKCXRoaXMucnV0YUNvbmZpZyAgPSBudWxsOwp9CgovLyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK Ly8gKioqKioqKioqKioqKioqKioqICBDT05TVEFOVEVTICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqClBsYXllcldlYlRWLk1JTl9BTkNIT19QTEFZRVIg PSAxODA7ClBsYXllcldlYlRWLk1JTl9BTFRPX1BMQVlFUiA9IDEwMDsKUGxheWVyV2ViVFYuQkFTRV9D T05GSUcgID0gIi9pbmNsdWRlcy9tYW51YWxlcy9zd2YvcGxheWVyV2ViVFYvIjsKUGxheWVyV2ViVFYu VkVSU0lPTl9GTEFTSCAgPSA4OwoKLyoqCiAqIENURVMgaWRlbnRpZmljYWRvcmFzIGRlIGxvcyBwb3J0 YWxlcwogKi8KUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTID0gewoJQUJDOiAiYWJjIiwKCUFCQ19TRVZJ TExBOiAiYWJjZGVzZXZpbGxhIiwKCU5PUlRFX0NBU1RJTExBOiAibm9ydGVjYXN0aWxsYSIsCglMQV9W T1o6ICJsYXZvemRpZ2l0YWwiLAoJRElBUklPX01PTlRBTkVTOiAiZWxkaWFyaW9tb250YW5lcyIsCglE SUFSSU9fU1VSOiAiZGlhcmlvc3VyIiwKCURJQVJJT19WQVNDTzogImRpYXJpb3Zhc2NvIiwKCUVMX0NP TUVSQ0lPOiAiZWxjb21lcmNpb2RpZ2l0YWwiLAoJRUxfQ09SUkVPOiAiZWxjb3JyZW8iLAoJRUxfQ09S UkVPRElHSVRBTDogImVsY29ycmVvZGlnaXRhbCIsCglIT1k6ICJob3kiLAoJSURFQUw6ICJpZGVhbCIs CglMQV9SSU9KQTogImxhcmlvamEiLAoJTEFfVkVSREFEOiAibGF2ZXJkYWQiLAoJTEFTX1BST1ZJTkNJ QVM6ICJsYXNwcm92aW5jaWFzIiwKCVNVUl9JTkdMRVM6CSJzdXJlbmciCn07CgovKioKICogQ29udGFk b3IgcGFyYSByZXRyYXNhciBsYSBjYXJnYSBkZSBtdWx0aXBsZXMgdmlkZW9zIGEgbGEgdmV6IGVuIElF eHBsb3JlcgogKi8KUGxheWVyV2ViVFYuaWVDb3VudGVyID0gMTsKCi8qKgogKiBlbnRvcm5vIGVuIGVs IHF1ZSBub3MgZW5jb250cmFtb3MKICovClBsYXllcldlYlRWLmVudG9ybm8gPSBnZXRFbnRvcm5vKCk7 CgovL1RPRE86IGZhbHRhbiBtYXMgY29uZmlndXJhY2lvbmVzIGRlIHBvcnRhbGVzCi8qKgogKiBJbmZv cm1hY2lvbiBkZSBsb3MgcG9ydGFsZXMKICovClBsYXllcldlYlRWLklORk9fUE9SVEFMRVMgPSB7fTsK UGxheWVyV2ViVFYuSU5GT19QT1JUQUxFU1tQbGF5ZXJXZWJUVi5JRFNfUE9SVEFMRVMuQUJDXSA9IHsK CSJyZXNpemVyIjogImFiYy5lcyIsCgkic2Vydmlkb3JlcyI6IFsiYWJjLmVzIiwgImh0dHA6Ly8yMTIu ODEuMTI5LjI1OjgyODAiLCAiaHR0cDovLzIxMi44MS4xMjkuMjUiXSwKCSJkb21pbmlvIjogUGxheWVy V2ViVFYuZW50b3JubywKCSJiYXNlQ29uZmlnIjogIi9zd2YvcGxheWVyV2ViVFYvIgp9OwpQbGF5ZXJX ZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldlYlRWLklEU19QT1JUQUxFUy5BQkNfU0VWSUxMQV0gPSB7 CgkicmVzaXplciI6ICJhYmMuZXMiLAoJInNlcnZpZG9yZXMiOiBbImFiY2Rlc2V2aWxsYS5lcyIsICJo dHRwOi8vMjEyLjgxLjEyOS4yNTo4MjgxIiwgImh0dHA6Ly8yMTIuODEuMTI5LjI1Il0sCgkiZG9taW5p byI6IFBsYXllcldlYlRWLmVudG9ybm8sCgkiYmFzZUNvbmZpZyI6ICIvc3dmL3BsYXllcldlYlRWLyIK fTsKUGxheWVyV2ViVFYuSU5GT19QT1JUQUxFU1tQbGF5ZXJXZWJUVi5JRFNfUE9SVEFMRVMuTk9SVEVf Q0FTVElMTEFdID0gewoJInJlc2l6ZXIiOiAibm9ydGVjYXN0aWxsYS5lcyIsCgkic2Vydmlkb3JlcyI6 IFtQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5ub3J0ZWNhc3RpbGxhLmVzIl0sCgkiZG9taW5pbyI6ICJo dHRwOi8vIiArIFBsYXllcldlYlRWLmVudG9ybm8gKyAiLm5vcnRlY2FzdGlsbGEuZXMiCn07ClBsYXll cldlYlRWLklORk9fUE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkxBX1ZPWl0gPSB7Cgki cmVzaXplciI6ICJsYXZvemRpZ2l0YWwuZXMiLAoJInNlcnZpZG9yZXMiOiBbUGxheWVyV2ViVFYuZW50 b3JubyArICIubGF2b3pkaWdpdGFsLmVzIl0sCgkiZG9taW5pbyI6ICJodHRwOi8vIiArIFBsYXllcldl YlRWLmVudG9ybm8gKyAiLmxhdm96ZGlnaXRhbC5lcyIKfTsKUGxheWVyV2ViVFYuSU5GT19QT1JUQUxF U1tQbGF5ZXJXZWJUVi5JRFNfUE9SVEFMRVMuRElBUklPX01PTlRBTkVTXSA9IHsKCSJyZXNpemVyIjog ImVsZGlhcmlvbW9udGFuZXMuZXMiLAoJInNlcnZpZG9yZXMiOiBbUGxheWVyV2ViVFYuZW50b3JubyAr ICIuZWxkaWFyaW9tb250YW5lcy5lcyJdLAoJImRvbWluaW8iOiAiaHR0cDovLyIgKyBQbGF5ZXJXZWJU Vi5lbnRvcm5vICsgIi5lbGRpYXJpb21vbnRhbmVzLmVzIgp9OwpQbGF5ZXJXZWJUVi5JTkZPX1BPUlRB TEVTW1BsYXllcldlYlRWLklEU19QT1JUQUxFUy5ESUFSSU9fU1VSXSA9IHsKCSJyZXNpemVyIjogImRp YXJpb3N1ci5lcyIsCgkic2Vydmlkb3JlcyI6IFtQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5kaWFyaW9z dXIuZXMiXSwKCSJkb21pbmlvIjogImh0dHA6Ly8iICsgUGxheWVyV2ViVFYuZW50b3JubyArICIuZGlh cmlvc3VyLmVzIgp9OwpQbGF5ZXJXZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldlYlRWLklEU19QT1JU QUxFUy5TVVJfSU5HTEVTXSA9IHsKCQkicmVzaXplciI6ICJzdXJpbmVuZ2xpc2guY29tIiwKCQkic2Vy dmlkb3JlcyI6IFtQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5zdXJpbmVuZ2xpc2guY29tIl0sCgkJImRv bWluaW8iOiAiaHR0cDovLyIgKyBQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5zdXJpbmVuZ2xpc2guY29t Igp9OwpQbGF5ZXJXZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldlYlRWLklEU19QT1JUQUxFUy5ESUFS SU9fVkFTQ09dID0gewoJInJlc2l6ZXIiOiAiZGlhcmlvdmFzY28uY29tIiwKCSJzZXJ2aWRvcmVzIjog W1BsYXllcldlYlRWLmVudG9ybm8gKyAiLmRpYXJpb3Zhc2NvLmNvbSJdLAoJImRvbWluaW8iOiAiaHR0 cDovLyIgKyBQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5kaWFyaW92YXNjby5jb20iCn07ClBsYXllcldl YlRWLklORk9fUE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkVMX0NPTUVSQ0lPXSA9IHsK CSJyZXNpemVyIjogImVsY29tZXJjaW9kaWdpdGFsLmNvbSIsCgkic2Vydmlkb3JlcyI6IFtQbGF5ZXJX ZWJUVi5lbnRvcm5vICsgIi5lbGNvbWVyY2lvZGlnaXRhbC5jb20iXSwKCSJkb21pbmlvIjogImh0dHA6 Ly8iICsgUGxheWVyV2ViVFYuZW50b3JubyArICIuZWxjb21lcmNpb2RpZ2l0YWwuY29tIgp9OwpQbGF5 ZXJXZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldlYlRWLklEU19QT1JUQUxFUy5FTF9DT1JSRU9dID0g ewoJInJlc2l6ZXIiOiAiZWxjb3JyZW8uY29tIiwKCSJzZXJ2aWRvcmVzIjogW1BsYXllcldlYlRWLmVu dG9ybm8gKyAiLmVsY29ycmVvLmNvbSJdLAoJImRvbWluaW8iOiAiaHR0cDovLyIgKyBQbGF5ZXJXZWJU Vi5lbnRvcm5vICsgIi5lbGNvcnJlby5jb20iCn07ClBsYXllcldlYlRWLklORk9fUE9SVEFMRVNbUGxh eWVyV2ViVFYuSURTX1BPUlRBTEVTLkVMX0NPUlJFT0RJR0lUQUxdID0gewoJInJlc2l6ZXIiOiAiZWxj b3JyZW8uY29tIiwKCSJzZXJ2aWRvcmVzIjogW1BsYXllcldlYlRWLmVudG9ybm8gKyAiLmVsY29ycmVv LmNvbSJdLAoJImRvbWluaW8iOiAiaHR0cDovLyIgKyBQbGF5ZXJXZWJUVi5lbnRvcm5vICsgIi5lbGNv cnJlby5jb20iCn07ClBsYXllcldlYlRWLklORk9fUE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRB TEVTLkhPWV0gPSB7CgkicmVzaXplciI6ICJob3kuZXMiLAoJInNlcnZpZG9yZXMiOiBbUGxheWVyV2Vi VFYuZW50b3JubyArICIuaG95LmVzIl0sCgkiZG9taW5pbyI6ICJodHRwOi8vIiArIFBsYXllcldlYlRW LmVudG9ybm8gKyAiLmhveS5lcyIKfTsKUGxheWVyV2ViVFYuSU5GT19QT1JUQUxFU1tQbGF5ZXJXZWJU Vi5JRFNfUE9SVEFMRVMuSURFQUxdID0gewoJInJlc2l6ZXIiOiAiaWRlYWwuZXMiLAoJInNlcnZpZG9y ZXMiOiBbUGxheWVyV2ViVFYuZW50b3JubyArICIuaWRlYWwuZXMiXSwKCSJkb21pbmlvIjogImh0dHA6 Ly8iICsgUGxheWVyV2ViVFYuZW50b3JubyArICIuaWRlYWwuZXMiCn07ClBsYXllcldlYlRWLklORk9f UE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkxBX1JJT0pBXSA9IHsKCSJyZXNpemVyIjog ImxhcmlvamEuY29tIiwKCSJzZXJ2aWRvcmVzIjogW1BsYXllcldlYlRWLmVudG9ybm8gKyAiLmxhcmlv amEuY29tIl0sCgkiZG9taW5pbyI6ICJodHRwOi8vIiArIFBsYXllcldlYlRWLmVudG9ybm8gKyAiLmxh cmlvamEuY29tIgp9OwpQbGF5ZXJXZWJUVi5JTkZPX1BPUlRBTEVTW1BsYXllcldlYlRWLklEU19QT1JU QUxFUy5MQV9WRVJEQURdID0gewoJInJlc2l6ZXIiOiAibGF2ZXJkYWQuZXMiLAoJInNlcnZpZG9yZXMi OiBbUGxheWVyV2ViVFYuZW50b3JubyArICIubGF2ZXJkYWQuZXMiXSwKCSJkb21pbmlvIjogImh0dHA6 Ly8iICsgUGxheWVyV2ViVFYuZW50b3JubyArICIubGF2ZXJkYWQuZXMiCn07ClBsYXllcldlYlRWLklO Rk9fUE9SVEFMRVNbUGxheWVyV2ViVFYuSURTX1BPUlRBTEVTLkxBU19QUk9WSU5DSUFTXSA9IHsKCSJy ZXNpemVyIjogImxhc3Byb3ZpbmNpYXMuZXMiLAoJInNlcnZpZG9yZXMiOiBbUGxheWVyV2ViVFYuZW50 b3JubyArICIubGFzcHJvdmluY2lhcy5lcyJdLAoJImRvbWluaW8iOiAiaHR0cDovLyIgKyBQbGF5ZXJX ZWJUVi5lbnRvcm5vICsgIi5sYXNwcm92aW5jaWFzLmVzIgp9OwoKLyoqCiAqIENhY2jpIGRlIGNvbnRy b2xhZG9yZXMgcGFyYSBlbCBwbGF5ZXIKICovClBsYXllcldlYlRWLmNhY2hlID0ge307CgovLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgovLyoqKioqKioqKioqKioqKioqKiAgTUVUT0RPUyBFU1RBVElDT1MgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKLyoqCiAqIE9idGllbmUgbGEgZXh0 ZW5zaW9uIGRlbCBmaWNoZXJvIG11bHRpbWVkaWEKICovClBsYXllcldlYlRWLmdldEV4dGVuc2lvbiA9 IGZ1bmN0aW9uKHZpZGVvKSB7Cgl2YXIgcmVzdWx0ID0gdmlkZW87CgkKCXdoaWxlIChyZXN1bHQuaW5k ZXhPZignLycpICE9IC0xKSB7CgkJcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZyhyZXN1bHQuaW5kZXhP ZignLycpKzEsIHJlc3VsdC5sZW5ndGgpOwoJfQoJCglpZiAocmVzdWx0LmluZGV4T2YoJy4nKSAhPSAt MSkgewoJCXJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcocmVzdWx0LmluZGV4T2YoJy4nKSsxLCByZXN1 bHQubGVuZ3RoKTsKCX0KCQoJcmV0dXJuIHJlc3VsdDsKfTsKCi8qKgogKiBPYnRpZW5lIGVsIGVudG9y bm8gZW4gZWwgcXVlIG5vcyBlbmNvbnRyYW1vcwogKi8KZnVuY3Rpb24gZ2V0RW50b3JubygpIHsKCXZh ciByZXN1bHQgPSAid3d3IjsKCglpZiAJCShsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly93d3cu YWJjLmVzJykgIT0gLTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIGlmIChsb2Nh dGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly93d3cuYWJjZGVzZXZpbGxhLmVzJykgIT0gLTEpIHJlc3Vs dCA9ICdodHRwOi8vd3d3LmFiY2Rlc2V2aWxsYS5lcyc7CgllbHNlIGlmIChsb2NhdGlvbi5ocmVmLmlu ZGV4T2YoJ2h0dHA6Ly8yMTIuODEuMTI5LjI1OjgyODAnKSAhPSAtMSkgcmVzdWx0ID0gJ2h0dHA6Ly8y MTIuODEuMTI5LjI1OjgyODAnOwoJZWxzZSBpZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdodHRwOi8v MjEyLjgxLjEyOS4yNTo4MjgxJykgIT0gLTEpIHJlc3VsdCA9ICdodHRwOi8vMjEyLjgxLjEyOS4yNTo4 MjgxJzsKCWVsc2UgaWYgKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignaHR0cDovL3NldmlsbGEtb3JpZ2lu LmFiYy5lcycpICE9IC0xKSByZXN1bHQgPSAnaHR0cDovL3d3dy5hYmNkZXNldmlsbGEuZXMnOwoJZWxz ZSBpZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdodHRwOi8vd3d3LW9yaWdpbi5hYmMuZXMvJykgIT0g LTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIGlmIChsb2NhdGlvbi5ocmVmLmlu ZGV4T2YoJ2h0dHA6Ly9uMWFiYzEwLmFiYy5lcycpICE9LTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFi Yy5lcyc7CgllbHNlIGlmIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly9uMmFiYzEwLmFiYy5l cycpICE9LTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIGlmIChsb2NhdGlvbi5o cmVmLmluZGV4T2YoJ2h0dHA6Ly9uM2FiYzEwLmFiYy5lcycpICE9LTEpIHJlc3VsdCA9ICdodHRwOi8v d3d3LmFiYy5lcyc7CgllbHNlIGlmIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly9uNGFiYzEw LmFiYy5lcycpICE9LTEpIHJlc3VsdCA9ICdodHRwOi8vd3d3LmFiYy5lcyc7CgllbHNlIHsJCQoJCXRy eSB7CgkJCXJlc3VsdCA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJy8nKVsyXS5zcGxpdCgnLicpWzBdOwoJ CQlpZiAoIChyZXN1bHQgIT0gJ3d3dycpICYmIChyZXN1bHQgIT0gJ2Rlc2Fycm9sbG8nKSAmJiAocmVz dWx0ICE9ICdyZWRpc2VubycpICYmIChyZXN1bHQgIT0gJ3JlZGlzZW5vZGV2JykgKSB7CgkJCQlyZXN1 bHQgPSAnd3d3JzsKCQkJfQoJCX0gY2F0Y2ggKGUpIHsKCQl9CQkKCX0KCQoJcmV0dXJuIHJlc3VsdDsK fQoKLyoqCiAqIENvbXBydWViYSBzaSBlcyBBQkMgRGVzYXJyb2xsbwogKi8KZnVuY3Rpb24gaXNEZXNh cnJvbGxvQUJDKCkgewoJdmFyIHJlc3VsdCA9IGZhbHNlOwoKCWlmICggKGxvY2F0aW9uLmhyZWYuaW5k ZXhPZignaHR0cDovLzIxMi44MS4xMjkuMjU6ODI4MCcpICE9IC0xKSAgfHwKCQkgKGxvY2F0aW9uLmhy ZWYuaW5kZXhPZignaHR0cDovLzIxMi44MS4xMjkuMjU6ODI4MScpICE9IC0xKSApIHsKCQkJcmVzdWx0 ID0gdHJ1ZTsKCX0KCQoJcmV0dXJuIHJlc3VsdDsKfQoKLyoqCiAqIENvbXBydWViYSBzaSBlcyBBQkMg ZW4gY3VhbHF1aWVyIGVudG9ybm8KICovCmZ1bmN0aW9uIGlzQUJDKCkgewoJdmFyIHJlc3VsdCA9IGZh bHNlOwoKCWlmICggKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignaHR0cDovL3d3dy5hYmMuZXMnKSAhPSAt MSkgIHx8CgkJIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly93d3cuYWJjZGVzZXZpbGxhLmVz JykgIT0gLTEpICB8fAoJCSAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdodHRwOi8vMjEyLjgxLjEyOS4y NTo4MjgwJykgIT0gLTEpICB8fAoJCSAobG9jYXRpb24uaHJlZi5pbmRleE9mKCdodHRwOi8vMjEyLjgx LjEyOS4yNTo4MjgxJykgIT0gLTEpIHx8CgkJIChsb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2h0dHA6Ly9z ZXZpbGxhLW9yaWdpbi5hYmMuZXMnKSAhPSAtMSkgIHx8CgkJIChsb2NhdGlvbi5ocmVmLmluZGV4T2Yo J2h0dHA6Ly93d3ctb3JpZ2luLmFiYy5lcy8nKSAhPSAtMSkgIHx8CgkJIChsb2NhdGlvbi5ocmVmLmlu ZGV4T2YoJ2h0dHA6Ly9uMWFiYzEwLmFiYy5lcycpICE9IC0xKSAgfHwKCQkgKGxvY2F0aW9uLmhyZWYu aW5kZXhPZignaHR0cDovL24yYWJjMTAuYWJjLmVzJykgIT0gLTEpICB8fAoJCSAobG9jYXRpb24uaHJl Zi5pbmRleE9mKCdodHRwOi8vbjNhYmMxMC5hYmMuZXMnKSAhPSAtMSkgIHx8CgkJIChsb2NhdGlvbi5o cmVmLmluZGV4T2YoJ2h0dHA6Ly9uNGFiYzEwLmFiYy5lcycpICE9IC0xKSApIHsKCQkJcmVzdWx0ID0g dHJ1ZTsKCX0KCQoJcmV0dXJuIHJlc3VsdDsKfQoKLyoqCiAqIE9idGllbmUgZWwgY29sb3IgZGUgZm9u ZG8KICovCmZ1bmN0aW9uIGdldENvbG9yRm9uZG8oKSB7Cgl2YXIgY29sb3JGb25kbyA9ICcjMDAwMDAw JzsKCglpZiAoaXNBQkMoKSkgY29sb3JGb25kbyA9ICcjZjFmMWYxJzsKCQoJcmV0dXJuIGNvbG9yRm9u ZG87Cn0KCi8qKgogKiBNdWVzdHJhIGVsIHBsYXllciBjYXJnYW5kb2xvIGVuIGxhIGNhY2hlIGRlIHBv cnRhbGVzCiAqLwpQbGF5ZXJXZWJUVi5jYXJnYVZpZGVvID0gZnVuY3Rpb24oZGl2LCBzRmlsZSwgdywg aCwgb3BjaW9uZXMpIHsKCXZhciBmdW5jaW9uID0gUGxheWVyV2ViVFYuY2FyZ2FWaWRlbzsgCglpZiAo YXJndW1lbnRzLmxlbmd0aCA8IDUpIHsKCQkvLyBTaSBubyBub3MgcGFzYW4gdW4gaWQgZGUgY2FwYSwg Y3JlYW1vcyAxIGVuIGxhIHBvc2ljaW9uIGFjdHVhbCB5IGxhIHVzYW1vcyBwYXJhIGVzY3JpYmlyIGVs IHZpZGVvCgkJLy8gKENVSURBRE8hICBTaSBsYSBwYWdpbmEgeWEgZXN0YSBjYXJnYWRhLCBzaWVtcHJl IGhheSBxdWUgaW5kaWNhciB1biBpZCwgc2lubyBib3JyYXJpYSBsYSBwYWdpbmEgYWN0dWFsKQoJCXZh ciB1aWQgPSB0aGlzLmdldFVJRCgidmlkZW8iKTsKCQlkb2N1bWVudC53cml0ZSgnPGRpdiBpZD0iJyAr IHVpZCArICciPjwvZGl2PicpOwoJCQoJCXZhciBhcmdzID0gbmV3IEFycmF5KDUpOwoJCWFyZ3NbMF0g PSB1aWQ7CgkJZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKCQkJYXJn c1tpICsgMV0gPSBhcmd1bWVudHNbaV07CgkJfQoJCQoJCWZ1bmNpb24uY2FsbCh0aGlzLCBhcmdzWzBd LCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdKTsKCQlyZXR1cm47Cgl9Cgl2YXIgcGxh eWVyID0gbnVsbDsKCXZhciBjb25maWcgPSBudWxsOwoJaWYgKCFvcGNpb25lcykgewoJCW9wY2lvbmVz ID0ge307Cgl9CgkKCWlmIChvcGNpb25lcykgewoJCWNvbmZpZyA9IG9wY2lvbmVzLmNvbmZpZyB8fCBv cGNpb25lcy5zaXRlOwoJfQoJaWYgKGNvbmZpZykgewoJCWNvbmZpZyA9IGNvbmZpZy50b0xvd2VyQ2Fz ZSgpOwoJfQoJaWYgKGNvbmZpZyA9PSB0aGlzLklEU19QT1JUQUxFUy5BQkMpIHsKCQl2YXIgZXhwID0g LyhzZXZpbGxhKXwoMjEyXC44MVwuMTI5XC4yNTo4MjgxKS9naTsKCQlpZiAoZXhwLnRlc3QobG9jYXRp b24uaG9zdCkpIHsKCQkJY29uZmlnID0gdGhpcy5JRFNfUE9SVEFMRVMuQUJDX1NFVklMTEE7CgkJfQoJ fSBlbHNlIGlmIChjb25maWcgPT0gImFiY3NldmlsbGEiKSB7CgkJY29uZmlnID0gdGhpcy5JRFNfUE9S VEFMRVMuQUJDX1NFVklMTEE7Cgl9IGVsc2UgaWYgKGNvbmZpZyA9PSAic3VyIikgewoJCWNvbmZpZyA9 IHRoaXMuSURTX1BPUlRBTEVTLkRJQVJJT19TVVI7Cgl9IGVsc2UgaWYgKGNvbmZpZyA9PSAiZGlhdmFz IikgewoJCWNvbmZpZyA9IHRoaXMuSURTX1BPUlRBTEVTLkRJQVJJT19WQVNDTzsKCX0gZWxzZSBpZiAo Y29uZmlnID09ICJjb21lcmMiKSB7CgkJY29uZmlnID0gdGhpcy5JRFNfUE9SVEFMRVMuRUxfQ09NRVJD SU87Cgl9IGVsc2UgaWYgKGNvbmZpZyA9PSAiY29ycmVvIikgewoJCWNvbmZpZyA9IHRoaXMuSURTX1BP UlRBTEVTLkVMX0NPUlJFTzsKCX0gZWxzZSBpZiAoY29uZmlnID09ICJkaWFtb24iKSB7CgkJY29uZmln ID0gdGhpcy5JRFNfUE9SVEFMRVMuRElBUklPX01PTlRBTkVTOwoJfSBlbHNlIGlmIChjb25maWcgPT0g ImlkZWFsbSIpIHsKCQljb25maWcgPSB0aGlzLklEU19QT1JUQUxFUy5JREVBTDsKCX0gZWxzZSBpZiAo Y29uZmlnID09ICJyaW9qYSIpIHsKCQljb25maWcgPSB0aGlzLklEU19QT1JUQUxFUy5MQV9SSU9KQTsK CX0gZWxzZSBpZiAoY29uZmlnID09ICJwcm92YWwiKSB7CgkJY29uZmlnID0gdGhpcy5JRFNfUE9SVEFM RVMuTEFTX1BST1ZJTkNJQVM7Cgl9IGVsc2UgaWYgKGNvbmZpZyA9PSAidmVybXVyIikgewoJCWNvbmZp ZyA9IHRoaXMuSURTX1BPUlRBTEVTLkxBX1ZFUkRBRDsKCX0gZWxzZSBpZiAoY29uZmlnID09ICJ2b3pj YWQiIHx8IGNvbmZpZyA9PSAiTGF2b3oiIHx8IGNvbmZpZyA9PSAibGF2b3oiKSB7CgkJY29uZmlnID0g dGhpcy5JRFNfUE9SVEFMRVMuTEFfVk9aOwoJfSBlbHNlIGlmIChjb25maWcgPT0gIm5vcmNhcyIpIHsK CQljb25maWcgPSB0aGlzLklEU19QT1JUQUxFUy5OT1JURV9DQVNUSUxMQTsKCX0KCQoJaWYgKCFjb25m aWcpIHsKCQlwbGF5ZXIgPSBuZXcgUGxheWVyV2ViVFYoKTsKCX0gZWxzZSB7CgkJb3BjaW9uZXMuc2l0 ZSA9IGNvbmZpZzsKCQlvcGNpb25lcy5jb25maWcgPSBjb25maWc7CgkJaWYgKCFQbGF5ZXJXZWJUVi5j YWNoZVtjb25maWddKSB7CgkJCVBsYXllcldlYlRWLmNhY2hlW2NvbmZpZ10gPSBuZXcgUGxheWVyV2Vi VFYoKTsKCQl9CgkJcGxheWVyID0gUGxheWVyV2ViVFYuY2FjaGVbY29uZmlnXTsKCX0KCQoJcGxheWVy LnNob3dWaWRlbyhkaXYsIHNGaWxlLCB3LCBoLCBvcGNpb25lcyk7Cn07CgovKioKICogRnVuY2lvbiB1 dGlsaWRhZCBwYXJhIGVsaW1pbmFyIGV2ZW50b3MKICovClBsYXllcldlYlRWLm5hZGEgPSBmdW5jdGlv bigpIHt9OwoKCi8qKgogKiBPYnRpZW5lIGVsIHBvcnRhbCBkZWwgcXVlIGNhcmdhciBzdSBjb25maWd1 cmFjaW9uCiAqIAogKiBTaSBzZSBpbmRpY2EgY29tbyBwYXJhbWV0cm8sIHNlIGRldnVlbHZlIGVzZSwg ZW4gb3RybyBjYXNvLCBzZSBjYWxjdWxhIGRlIGxhIFVSTAogKi8KUGxheWVyV2ViVFYuZ2V0UG9ydGFs ID0gZnVuY3Rpb24ob3BjaW9uZXMpIHsKCXZhciByZXN1bHQgPSBudWxsOwoJCglpZiAob3BjaW9uZXMg JiYgb3BjaW9uZXMuc2l0ZSkgewoJCXJlc3VsdCA9IG9wY2lvbmVzLnNpdGU7Cgl9IGVsc2UgewoJCS8v IElkZW50aWZpY2FjafNuIHBvciBVUkwKCQl2YXIgc2Vydmlkb3IgPSBsb2NhdGlvbi5ob3N0OwoKCQlm b3IgKHZhciBwb3J0YWwgaW4gdGhpcy5JTkZPX1BPUlRBTEVTKSB7CgkJCXZhciBzZXJ2aWRvcmVzID0g dGhpcy5JTkZPX1BPUlRBTEVTW3BvcnRhbF0uc2Vydmlkb3JlczsKCQkJCgkJCWZvciAodmFyIGkgPSAw OyBpIDwgc2Vydmlkb3Jlcy5sZW5ndGg7IGkrKykgewoJCQkJdmFyIGNhbmRpZGF0byA9IHNlcnZpZG9y ZXNbaV07CgkJCQlpZiAoc2Vydmlkb3IuaW5kZXhPZihjYW5kaWRhdG8pICE9IC0xKSB7CgkJCQkJcmVz dWx0ID0gcG9ydGFsOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoJfQoJCglyZXR1cm4gcmVzdWx0 Owp9OwoKCgoKCi8qKgogKiBFbGltaW5hIGNhcmFjdGVyZXMgZXh0cmHxb3MgZGVsIHRpdHVsbwogKi8K UGxheWVyV2ViVFYuZ2V0Q2xlYW5UaXRsZSA9IGZ1bmN0aW9uKHRpdGxlKSB7Cgl0aXRsZSA9IHRpdGxl LnRvTG93ZXJDYXNlKCk7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vg4eLkXSsvZywgImEiKTsKCXRp dGxlID0gdGl0bGUucmVwbGFjZSgvW+no6utdKy9nLCAiZSIpOwoJdGl0bGUgPSB0aXRsZS5yZXBsYWNl KC9b7O3u710rL2csICJpIik7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vz8vT2XSsvZywgIm8iKTsK CXRpdGxlID0gdGl0bGUucmVwbGFjZSgvW/r5+/xdKy9nLCAidSIpOwoJdGl0bGUgPSB0aXRsZS5yZXBs YWNlKC9b510rL2csICJjIik7Cgl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL/EvZywgIm4iKTsKCXRpdGxl ID0gdGl0bGUucmVwbGFjZSgvW14gXHddL2csICIiKTsKCXJldHVybiB0aXRsZTsKfTsKCgovKioKICog RXh0cmFlIGxhcyBwYWxhYnJhcyBjbGF2ZSBkZWwgdGl0dWxvCiAqLwpQbGF5ZXJXZWJUVi5nZXRLZXlX b3JkcyA9IGZ1bmN0aW9uKHRpdGxlKSB7Cgl2YXIga2V5d29yZHMgPSAiIjsKCWlmICh0aXRsZSkgewoJ CXRpdGxlID0gdGl0bGUudG9Mb3dlckNhc2UoKTsKCQl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vg4eLk XSsvZywgImEiKTsKCQl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vp6OrrXSsvZywgImUiKTsKCQl0aXRs ZSA9IHRpdGxlLnJlcGxhY2UoL1vs7e7vXSsvZywgImkiKTsKCQl0aXRsZSA9IHRpdGxlLnJlcGxhY2Uo L1vz8vT2XSsvZywgIm8iKTsKCQl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1v6+fv8XSsvZywgInUiKTsK CQl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1vnXSsvZywgImMiKTsKCQl0aXRsZSA9IHRpdGxlLnJlcGxh Y2UoL1vxXSsvZywgIm4iKTsKCQl0aXRsZSA9IHRpdGxlLnJlcGxhY2UoL1xiL2csICJfIik7CgkJdGl0 bGUgPSB0aXRsZS5yZXBsYWNlKC9cVy9nLCAiIik7CgkJdmFyIHdvcmRzID0gdGl0bGUuc3BsaXQoIl8i KTsKCQl2YXIga2V5d29yZHMgPSAiIjsKCQlmb3IgKCB2YXIgaSA9IDA7IGkgPCB3b3Jkcy5sZW5ndGg7 IGkrKykgewoJCQlpZiAoMyA8IHdvcmRzW2ldLmxlbmd0aCkKCQkJCWtleXdvcmRzICs9ICIsIiArIHdv cmRzW2ldOwoJCX0KCQlpZiAoa2V5d29yZHMgIT0gIiIpIHsKCQkJa2V5d29yZHMgPSBrZXl3b3Jkcy5z dWJzdHJpbmcoMSk7CgkJfQoJfQoJcmV0dXJuIGtleXdvcmRzOwp9CgovKioKICogRWxpbWluYSBjYXJh Y3RlcmVzIGV4dHJh8W9zIGRlIHVuYSBVUkwKICovClBsYXllcldlYlRWLmNsZWFuVVJMID0gZnVuY3Rp b24odXJsKSB7CglpZiAodXJsKSB7CgkJcmV0dXJuIHVybC5yZXBsYWNlKC9bXlx3LSBdLywgIiIpOwoJ fSBlbHNlIHsKCQlyZXR1cm4gdXJsOwoJfQp9CgovKioKICogR2VuZXJhIHVuIGlkZW50aWZpY2Fkb3Ig dW5pY28gKHNlIHVzYW4gMiBudW1lcm9zIGFsZWF0b3Jpb3MsIHlhIHF1ZSB2YXJpYXMgbGxhbWFkYXMg Y29uc2VjdXRpdmFzIHB1ZWRlbiBkYXIgbG9zCiAqIG1pc21vcyBuYW5vc2VndW5kb3MuCiAqIEBwYXJh bSBwcmVmaWpvIENhZGVuYSBxdWUgc2UgY29udGFuZXJhIGFsIHByaW5jaXBpbyBkZWwgaWRlbnRpZmlj YWRvcgogKiBAcmV0dXJuIHByZWZpam9fbnVtQWxlYXRfbnVtQWxlYXQKICovClBsYXllcldlYlRWLmdl dFVJRCA9IGZ1bmN0aW9uKHByZWZpam8pIHsKCXZhciByZXN1bHQgPSBbbmV3IERhdGUoKS5nZXRUaW1l KCksIE1hdGguY2VpbChNYXRoLnJhbmRvbSgpICogMTAwMCldOwoJaWYgKHByZWZpam8pIHsKCQlyZXN1 bHQuc3BsaWNlKDAsIDAsIHByZWZpam8pOwoJfQoJcmV0dXJuIHJlc3VsdC5qb2luKCJfIik7Cn0KCi8v KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCi8vKioqKioqKioqKioqKioqKioqICBNRVRPRE9TIERFIENMQVNFICAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqClBsYXllcldlYlRWLnByb3Rv dHlwZSA9IHsKCS8qKgoJICogSW5pY2lhbGl6YSBlbCBwbGF5ZXIgY24gbGEgY29uZmlndXJhY2nzbiBw YXNhZGEgY29tbyBwYXJhbWV0cm8KCSAqLwoJaW5pdDogZnVuY3Rpb24ob3BjaW9uZXMsIHZpZGVvKSB7 CgkJdmFyIHJ1dGFDb25maWcgPSBudWxsOwoJCQoJCS8vIEludGVudGFtb3MgY2FsY3VsYXIgZWwgcG9y dGFsIGRlc2RlIGVsIHF1ZSBzZSBjYXJnYSBsYSBsaWJyZXJpYQoJCXZhciBwb3J0YWwgPSB0aGlzLnBv cnRhbDsKCQlpZiAoIXRoaXMucG9ydGFsKSB7CgkJCXBvcnRhbCA9IHRoaXMucG9ydGFsID0gdGhpcy5n ZXRQb3J0YWwob3BjaW9uZXMpOwoJCX0KCQkKCQl2YXIgY29uZmlnID0gbnVsbDsKCQkKCQlpZiAob3Bj aW9uZXMpIHsKCQkJY29uZmlnID0gb3BjaW9uZXMuY29uZmlnIHx8IHBvcnRhbDsKCQl9CgkJCgkJaWYg KCF0aGlzLnJ1dGFDb25maWcpIHsKCQkJdmFyIGV4dGVuc2lvbiA9IFBsYXllcldlYlRWLmdldEV4dGVu c2lvbih2aWRlbyk7CgkJCXZhciBydXRhQ29uZmlnOwoJCQlpZiAoZXh0ZW5zaW9uID09ICdtcDMnKSB7 CgkJCQlydXRhQ29uZmlnID0gImNvbmZpZy1wb3ItZGVmZWN0by1hdWRpby54bWwiOwoJCQkJaWYgKGNv bmZpZykgewoJCQkJCXJ1dGFDb25maWcgPSAiY29uZmlnLSIgKyBjb25maWcgKyAiLWF1ZGlvLnhtbCI7 CgkJCQl9CgkJCX0KCQkJZWxzZSB7CgkJCQlydXRhQ29uZmlnID0gImNvbmZpZy1wb3ItZGVmZWN0by54 bWwiOwoJCQkJaWYgKGNvbmZpZykgewoJCQkJCXJ1dGFDb25maWcgPSAiY29uZmlnLSIgKyBjb25maWcg KyAiLnhtbCI7CgkJCQl9CgkJCX0JCQkKCQkJCgkJCXRoaXMucnV0YUNvbmZpZyA9IHRoaXMuZ2V0VVJM QmFzZSgiY29uZmlnLyIgKyBydXRhQ29uZmlnKTsKCQl9CgkJCgkJaWYgKCF0aGlzLm1vc2NhKSB7CgkJ CS8vIE1vc2NhCgkJCXRoaXMubW9zY2EgPSB7CgkJCQl1cmw6ICIiLAoJCQkJYW5jaG86IC0xLAoJCQkJ YWx0bzogLTEsCgkJCQlpbWc6IG51bGwKCQkJfTsKCQl9CgkKCQlpZiAoY29uZmlnKSB7CgkJCWlmICgh dGhpcy5tb3NjYS5pbWcpIHsKCQkJCXRoaXMubW9zY2EuaW1nID0gbmV3IEltYWdlKCk7CgkJCQl2YXIg dXJsTW9zY2EgPSB0aGlzLmdldFVSTEJhc2UoImltYWdlbmVzLyIgKyBjb25maWcgKyAiL21vc2NhLnBu ZyIpOwoJCQkJdGhpcy5tb3NjYS5pbWcuc3JjID0gdGhpcy5tb3NjYS51cmwgPSB1cmxNb3NjYTsKCQkJ CXZhciBtb3NjYUltZyA9IHRoaXMubW9zY2EuaW1nOwoJCQkJCgkJCQl2YXIgX3RoaXMgPSB0aGlzOwoJ CQkJaWYgKG1vc2NhSW1nLmNvbXBsZXRlKSB7CgkJCQkJX3RoaXMuY2FyZ2FyQ29uZmlnTW9zY2EobW9z Y2FJbWcpOwoJCQkJfSBlbHNlIHsKCQkJCQlpZiAoIW1vc2NhSW1nLm9ubG9hZCkgewoJCQkJCQltb3Nj YUltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKCQkJCQkJCV90aGlzLmNhcmdhckNvbmZpZ01vc2NhKG1v c2NhSW1nKTsKCQkJCQkJfQoJCQkJCQltb3NjYUltZy5vbmFib3J0ID0gbW9zY2FJbWcub25lcnJvciA9 IGZ1bmN0aW9uKCkgewoJCQkJCQkJX3RoaXMuaW5pdHRlZCA9IHRydWU7CgkJCQkJCX0KCQkJCQl9CgkJ CQl9CgkJCX0KCQl9IGVsc2UgewoJCQl0aGlzLmluaXR0ZWQgPSB0cnVlOwoJCX0KCQkKCQlyZXR1cm4g dGhpcy5pbml0dGVkOwoJfSwKCQoJY2FyZ2FyQ29uZmlnTW9zY2EgOiBmdW5jdGlvbihsb2dvKSB7CgkJ dGhpcy5tb3NjYS5hbmNobyA9IHBhcnNlSW50KGxvZ28ud2lkdGgsIDEwKTsKCQl0aGlzLm1vc2NhLmFs dG8gPSBwYXJzZUludChsb2dvLmhlaWdodCwgMTApOwoJCQoJCXRoaXMuaW5pdHRlZCA9IHRydWU7Cgl9 LAoJCgljYWxjdWxhTW9zY2E6IGZ1bmN0aW9uKGFuY2hvLCBhbHRvKSB7CgkJdHJ5IHsKCQkJdmFyIGNv bmZpZyA9IHRoaXMubW9zY2E7CgkJCXZhciBtb3NjYSA9ICJtb3NjYS5wbmciOwoJCQl2YXIgaUFuY2hv ID0gcGFyc2VJbnQoYW5jaG8sIDEwKTsKCQkJdmFyIGlBbHRvID0gcGFyc2VJbnQoYWx0bywgMTApOwoJ CQkKCQkJdmFyIGFsdG9Nb3NjYSA9IGNvbmZpZy5hbHRvOwoJCQl2YXIgYW5jaG9Nb3NjYSA9IGNvbmZp Zy5hbmNobzsKCQkJCgkJCWlmICgoaUFuY2hvICogMC41KSA8IGFuY2hvTW9zY2EgfHwgKGlBbHRvICog MC4zKSA8IGFsdG9Nb3NjYSkgewoJCQkJbW9zY2EgPSAibW9zY2Etc21hbGwucG5nIjsKCQkJfQoJCQkK CQkJaWYgKGlBbmNobyA8IHRoaXMuTUlOX0FOQ0hPX1BMQVlFUiB8fCBpQWx0byA8IHRoaXMuTUlOX0FM VE9fUExBWUVSKSB7CgkJCQltb3NjYSA9ICIiOwoJCQl9CgkJCQoJCQlpZiAobW9zY2EpIHsKCQkJCXJl dHVybiBjb25maWcudXJsLnN1YnN0cmluZygwLCBjb25maWcudXJsLmxhc3RJbmRleE9mKCIvIikgKyAx KSArIG1vc2NhOwoJCQl9IGVsc2UgewoJCQkJcmV0dXJuICIiOwoJCQl9CgkJfSBjYXRjaCAoZSkgewoJ CQlyZXR1cm4gIiI7CgkJfQoJfSwKCS8qCgl1dG1hYwlVQS02NzczODA2LTMKCXV0bWNjCV9fdXRtYT02 NTkyMjMwMi4yMDI1MzU1NTk3MDEyNTk3ODAwLjEyNTI0ODI0MTguMTI1Mzg3NTExNi4xMjU1MDE2NjIz LjE4OytfX3V0bXo9NjU5MjIzMDIuMTI1MzY5OTU0Mi4xMi4yLnV0bWNzcj0yMTIuODEuMTI5LjI1Ojgy ODF8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vaW5kZXguYXNwOwoJdXRt Y3MJVVRGLTgKCXV0bWR0CUFCQyBXRUIgVFYKCXV0bWUJNSh2aWRlbypWaWRlbyBzZXJ2aWRvKmFiY3R2 Ll9nZW50ZS5lbi1hYmN0di5JbmRpb3MgeSBWYXF1ZXJvczogQWxvbmRyYSBCZW50bGV5KQoJdXRtZmwJ MTAuMCByMzIKCXV0bWhpZAkxMjczNjIxNjU5Cgl1dG1obgl3d3cuYWJjdHYuZXMKCXV0bWplCTAKCXV0 bW4JMzQzMDczNzk2Cgl1dG1wCS8KCXV0bXIJLQoJdXRtc2MJMzItYml0Cgl1dG1zcgkxMjgweDgwMAoJ dXRtdAlldmVudAoJdXRtdWwJZXMtZXMKCXV0bXd2CTQuM2FzCgkgKi8KCXNldFZhbG9yZXNHb29nbGVB bmFseXRpY3MgOiBmdW5jdGlvbihmbywgb3BjaW9uZXMpIHsKCQl2YXIgY2F0ZWdvcmlhcyA9IHRoaXMu Z2V0Q2F0ZWdvcmlhc0dvb2dsZUFuYWx5dGljcyhvcGNpb25lcyk7CgkJdmFyIHJlc3VsdCA9IFtdOwoJ CXJlc3VsdC5wdXNoKCJjaGFubmVsOjoiICsgY2F0ZWdvcmlhc1swXSk7CgkJcmVzdWx0LnB1c2goInN1 YkNoYW5uZWw6OiIgKyBjYXRlZ29yaWFzWzFdKTsKCQlmby5hZGRWYXJpYWJsZSgiZ29vZ2xlQW5hbHl0 aWNzIiwgcmVzdWx0LmpvaW4oIiwiKSk7Cgl9LAoJCQoJZ2V0Q2F0ZWdvcmlhc0dvb2dsZUFuYWx5dGlj cyA6IGZ1bmN0aW9uKG9wY2lvbmVzKSB7CgkJdmFyIGNhdGVnb3JpYSA9ICIiOwoJCXZhciBzdWJjYXRl Z29yaWEgPSAiIjsKCQkKCQl0cnkgewoJCQlpZiAodGhpcy5lc0RvbWluaW9Db25vY2lkbygpKSB7CgkJ CQl2YXIgdXJsID0gbG9jYXRpb24ucGF0aG5hbWU7CgkJCQl2YXIgcGFydGVzID0gdXJsLnNwbGl0KCIv Iik7CgkJCQkKCQkJCS8vIGVsaW1pbmFtb3MgbGEgMaogcHEgc2llbXByZSBsbGVnYSB2YWNpYQoJCQkJ cGFydGVzLnNwbGljZSgwLCAxKTsKCQkJCQoJCQkJaWYgKHBhcnRlc1twYXJ0ZXMubGVuZ3RoIC0gMV0g PT0gIiIpIHsKCQkJCQkvLyBjb21wcm9iYW1vcyBzaSBsYSB1bHRpbWEgcGFydGVzIGVzIHZhY2lhCgkJ CQkJcGFydGVzLnNwbGljZShwYXJ0ZXMubGVuZ3RoIC0gMSwgMSk7CgkJCQl9CgkJCQkKCQkJCWlmIChw YXJ0ZXMubGVuZ3RoID4gMCkgewoJCQkJCWlmICgvXlxkezh9Ly50ZXN0KHBhcnRlc1swXSkpIHsKCQkJ CQkJLy8gbGEgMaogY29tcG9uZW50ZSBlcyAxIGZlY2hhLCBsdWVnbyBlcyB1biBkZXRhbGxlIGRlIG5v dGljaWEKCQkJCQkJLy8gbGEgZWxpbWluYW1vcwoJCQkJCQlwYXJ0ZXMuc3BsaWNlKDAsIDEpOwoJCQkJ CX0KCQkJCX0KCQkJCWlmIChwYXJ0ZXMubGVuZ3RoID4gMCkgewoJCQkJCWlmIChwYXJ0ZXNbcGFydGVz Lmxlbmd0aCAtIDFdLmluZGV4T2YoIi4iKSAhPSAtMSkgewoJCQkJCQlpZiAocGFydGVzW3BhcnRlcy5s ZW5ndGggLSAxXS5pbmRleE9mKCIuYXNwIikgIT0gLTEpIHsKCQkJCQkJCS8vIHNpIGFjYWJhIGVuIGFz cCBlcyB1bmEgcG9ydGFkYSBkZSBBQkMsIGxhIHByZXBhcmFtb3MgcGFyYSBpbnRlbnRhciBzYWNhciBs dWVnbyBsYSBzdWJjYXRlZ29yaWEKCQkJCQkJCXZhciBwYWdpbmFUZW1wID0gcGFydGVzW3BhcnRlcy5s ZW5ndGggLSAxXTsKCQkJCQkJCXBhcnRlc1twYXJ0ZXMubGVuZ3RoIC0gMV0gPSBwYWdpbmFUZW1wLnJl cGxhY2UoL1wuYXNwL2dpLCAiIik7CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQkvLyBlcyB1bmEgcOFnaW5h IGh0bWwsIGFzcC4uLgoJCQkJCQkJLy8gbG8gZWxpbWluYW1vcwoJCQkJCQkJcGFydGVzLnNwbGljZShw YXJ0ZXMubGVuZ3RoIC0gMSwgMSk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQkKCQkJCWlmIChwYXJ0 ZXMubGVuZ3RoID09IDApIHsKCQkJCQljYXRlZ29yaWEgPSAicG9ydGFkYSI7CgkJCQl9IGVsc2UgaWYg KHBhcnRlcy5sZW5ndGggPT0gMSkgewoJCQkJCWlmKHRoaXMuY2xlYW5VUkwocGFydGVzWzBdKT09ImFs YXZhIiB8fCB0aGlzLmNsZWFuVVJMKHBhcnRlc1swXSk9PSJhbG1lcmlhIiB8fCB0aGlzLmNsZWFuVVJM KHBhcnRlc1swXSk9PSJqYWVuIiB8fCB0aGlzLmNsZWFuVVJMKHBhcnRlc1swXSk9PSJhbGJhY2V0ZSIg fHwgdGhpcy5jbGVhblVSTChwYXJ0ZXNbMF0pPT0iYWxpY2FudGUiIHx8IHRoaXMuY2xlYW5VUkwocGFy dGVzWzBdKT09ImplcmV6IikKCQkJCQkJY2F0ZWdvcmlhID0gInBvcnRhZGEiOwoJCQkJCWVsc2UKCQkJ CQkJY2F0ZWdvcmlhID0gdGhpcy5jbGVhblVSTChwYXJ0ZXNbMF0pOwoJCQkJfSBlbHNlIHsKCQkJCQkv LyB0ZW5lbW9zIG1hcyBkZSAyIHBvcmNpb25lcyBkZSB1cmwsIGxhcyBjb2dlbW9zIGNvbW8gY2F0ZWdv cmlhIHkgc3ViY2F0ZWdvcmlhCgkJCQkJY2F0ZWdvcmlhID0gdGhpcy5jbGVhblVSTChwYXJ0ZXNbMF0p OwoJCQkJCWlmKC9eXGR7OH0vLnRlc3QocGFydGVzWzFdKSl7CgkJCQkJCXN1YmNhdGVnb3JpYSA9IHRo aXMuY2xlYW5VUkwocGFydGVzWzJdKTsKCQkJCQl9CgkJCQkJZWxzZXsKCQkJCQkJc3ViY2F0ZWdvcmlh ID0gdGhpcy5jbGVhblVSTChwYXJ0ZXNbMV0pOwoJCQkJCQlpZiAodGhpcy5jbGVhblVSTChwYXJ0ZXNb Ml0pKQoJCQkJCQkJc3ViY2F0ZWdvcmlhKz0gIi8iICt0aGlzLmNsZWFuVVJMKHBhcnRlc1syXSk7CgkJ CQkJfQoJCQkJfQoJCQl9IGVsc2UgewoJCQkJdmFyIHVybCA9IGxvY2F0aW9uLmhyZWY7CgkJCQl2YXIg cGFydGVzVVJMID0gdXJsLnNwbGl0KCIvIik7CgkJCQl2YXIgcGFnaW5hID0gcGFydGVzVVJMW3BhcnRl c1VSTC5sZW5ndGggLSAxXTsKCQkJCWlmICgvXC4oLikrJC8udGVzdChwYWdpbmEpKSB7CgkJCQkJc3Vi Y2F0ZWdvcmlhID0gcGFydGVzVVJMLnNwbGljZShwYXJ0ZXNVUkwubGVuZ3RoIC0gMSwgMSk7CgkJCQkJ Y2F0ZWdvcmlhID0gcGFydGVzVVJMLmpvaW4oIi8iKTsKCQkJCX0gZWxzZSB7CgkJCQkJY2F0ZWdvcmlh ID0gdXJsOwoJCQkJfQoJCQl9CgkJfSBjYXRjaCAoZSkgewoJCX0KCQkKCQlyZXR1cm4gW2NhdGVnb3Jp YSwgc3ViY2F0ZWdvcmlhXTsKCX0sCgkKCWVzRG9taW5pb0Nvbm9jaWRvOiBmdW5jdGlvbigpIHsKICAg ICAgICB2YXIgZG9taW5pbyA9IGxvY2F0aW9uLmhvc3RuYW1lOwogICAgICAgIGZvciAodmFyIHBvcnRh bCBpbiB0aGlzLklORk9fUE9SVEFMRVMpIHsKICAgICAgICAJdmFyIHNlcnZpZG9yZXMgPSB0aGlzLklO Rk9fUE9SVEFMRVNbcG9ydGFsXS5zZXJ2aWRvcmVzOwogICAgICAgIAlmb3IgKHZhciBpID0gMDsgaSA8 IHNlcnZpZG9yZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAJCXZhciBjYW5kaWRhdG8gPSBzZXJ2aWRv cmVzW2ldOwogICAgICAgIAkJaWYgKGNhbmRpZGF0byA9PSBkb21pbmlvKSB7CiAgICAgICAgCQkJcmV0 dXJuIHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAg cmV0dXJuIGZhbHNlOwoJfSwKCgkvLyB6b25laWQ6MTI2LENBVF9nZW50ZSxTQ0FUZW4tYWJjdHYsUE9S YWJjdHYsaW5kaW9zLXZhcXVlcm9zLWFsb25kcmEtYmVudGxleS01NDQ0MQoJLyoqCgkgKiBMYXMgem9u YXMgc2UgY2FyZ2FyYW4gZGUgbGEgY29uZmlndXJhY2lvbiwgYXNpIGNvbW8gZWwgcG9ydGFsIG8gc2l0 ZQoJICovCgkvKnNldFZhbG9yZXNBZHZlcm5ldDogZnVuY3Rpb24oZm8sIG9wY2lvbmVzKSB7CgkJdmFy IHJlc3VsdCA9IFtdOwoJCQoJCXZhciB0YWdzID0gbnVsbDsKCQlpZiAob3BjaW9uZXMpIHsKCQkJdGFn cyA9IG9wY2lvbmVzLnRhZ3MgfHwgdGhpcy5nZXRLZXlXb3JkcyhvcGNpb25lcy50aXR1bG8pIHx8ICIi OwoJCX0KCQlpZiAodGFncykgewoJCQl0YWdzID0gdGFncy5yZXBsYWNlKC9bLCBdL2csICItIik7CgkJ CXJlc3VsdC5wdXNoKCJ0YWdzOjoiICsgdGFncyk7CgkJfQoJCXZhciBjYXRlZ29yaWEgPSB1bmRlZmlu ZWQ7CgkJdmFyIHN1YmNhdGVnb3JpYSA9IHVuZGVmaW5lZDsKCQlpZiAob3BjaW9uZXMpIHsKCQkJY2F0 ZWdvcmlhID0gb3BjaW9uZXMuY2F0ZWdvcmlhUHVibGkgfHwgdW5kZWZpbmVkOwoJCQlzdWJjYXRlZ29y aWEgPSBvcGNpb25lcy5zdWJjYXRlZ29yaWFQdWJsaSB8fCB1bmRlZmluZWQ7CgkJfQoJCXJlc3VsdC5w dXNoKCJjaGFubmVsOjoiICsgY2F0ZWdvcmlhKTsKCQlyZXN1bHQucHVzaCgic3ViQ2hhbm5lbDo6IiAr IHN1YmNhdGVnb3JpYSk7CgkJCgkJZm8uYWRkVmFyaWFibGUoImFkdmVybmV0IiwgcmVzdWx0LmpvaW4o IiwiKSk7Cgl9LCovCgkKCV9zaG93VmlkZW8gOiBmdW5jdGlvbihpZCwgdmlkZW8sIHcsIGgsIG9wY2lv bmVzKSB7CgkJdmFyIGZ1bmNpb24gPSB0aGlzLl9zaG93VmlkZW87CgkJCgkJaWYgKGFyZ3VtZW50cy5s ZW5ndGggPCA1KSB7CgkJCS8vIFNpIG5vIG5vcyBwYXNhbiB1biBpZCBkZSBjYXBhLCBjcmVhbW9zIDEg ZW4gbGEgcG9zaWNpb24gYWN0dWFsIHkgbGEgdXNhbW9zIHBhcmEgZXNjcmliaXIgZWwgdmlkZW8KCQkJ Ly8gKENVSURBRE8hICBTaSBsYSBwYWdpbmEgeWEgZXN0YSBjYXJnYWRhLCBzaWVtcHJlIGhheSBxdWUg aW5kaWNhciB1biBpZCwgc2lubyBib3JyYXJpYSBsYSBwYWdpbmEgYWN0dWFsKQoJCQl2YXIgdWlkID0g dGhpcy5nZXRVSUQoInZpZGVvIik7CgkJCWRvY3VtZW50LndyaXRlKCc8ZGl2IGlkPSInICsgdWlkICsg JyI+PC9kaXY+Jyk7CgkJCQoJCQl2YXIgYXJncyA9IG5ldyBBcnJheSg1KTsKCQkJYXJnc1swXSA9IHVp ZDsKCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKCQkJCWFyZ3Nb aSArIDFdID0gYXJndW1lbnRzW2ldOwoJCQl9CgkJCQoJCQlmdW5jaW9uLmNhbGwodGhpcywgYXJnc1sw XSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSk7CgkJCXJldHVybjsKCQl9CgkJCgkJ CgkJaWYgKCFvcGNpb25lcykgewoJCQlvcGNpb25lcyA9IHt9OwoJCX0KCQkKCQkvLyBFc3BlcmFtb3Mg cXVlIHNlIGNhcmd1ZSBsYSBpbWFnZW4gZGUgbW9zY2EgcGFyYSBwb2RlciBjYWxjdWxhciBjdWFsIGRl IGxhcyBkb3MgbW9zdHJhcgoJCS8vIHNpIGxhIHBlcXVl8WEgbyBsYSBub3JtYWwgbyBuaW5ndW5hCgkJ aWYgKCF0aGlzLmluaXQob3BjaW9uZXMsIHZpZGVvKSkgewoJCQl2YXIgX3RoaXMgPSB0aGlzOwoJCQlz ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJZnVuY2lvbi5jYWxsKF90aGlzLCBpZCwgdmlkZW8sIHcs IGgsIG9wY2lvbmVzKTsKCQkJfSwgNTAwKTsKCQkJcmV0dXJuOwoJCX0KCQkKCQkvLyBjb24gZXN0byBj b25zZWd1aW1vcyBpZHMgdW5pY29zCgkJdmFyIGlkUGxheWVyID0gdGhpcy5nZXRVSUQoIm1vdmllX3Bs YXllciIpOwoJCgkJdmFyIGZvID0gbmV3IFNXRk9iamVjdCh0aGlzLmdldFVSTEJhc2UoIkZMVlBsYXll ci5zd2YiKSwgaWRQbGF5ZXIsIHcsIGgsIHRoaXMuVkVSU0lPTl9GTEFTSCwgZ2V0Q29sb3JGb25kbygp KTsKCQoJCS8vIHRyYW5zcGFyZW5jaWEKCQlmby5hZGRQYXJhbSgid21vZGUiLCAidHJhbnNwYXJlbnQi KTsKCQkKCQlmby5hZGRQYXJhbSgic3dMaXZlQ29ubmVjdCIsICJ0cnVlIik7CgkJZm8uYWRkUGFyYW0o ImFsbG93U2NyaXB0QWNjZXNzIiwgImFsd2F5cyIpOwoJCgkJLy8gcnV0YSBkZWwgZmljaGVybyBkZSBj b25maWd1cmFjaW9uCgkJaWYgKHRoaXMucnV0YUNvbmZpZykgewoJCQlmby5hZGRWYXJpYWJsZSgiY29u ZmlnIiwgdGhpcy5ydXRhQ29uZmlnKTsKCQl9CgkJCgkJLy8gVVJMIGRlbCB2aWRlbwoJCWlmICh2aWRl by5pbmRleE9mKCd5b3V0dWJlLmNvbScpICE9IC0xKSB7CgkJCXZhciBpZFlvdXR1YmUgPSB2aWRlby5z dWJzdHJpbmcodmlkZW8uaW5kZXhPZignPScpKzEsIHZpZGVvLmxlbmd0aCk7CgkJCWZvLmFkZFZhcmlh YmxlKCJmaWxlIiwgaWRZb3V0dWJlKTsKCQkJZm8uYWRkVmFyaWFibGUoImNkbiIsICJ5b3V0dWJlIik7 CgkJfQoJCWVsc2UgewoJCQlmby5hZGRWYXJpYWJsZSgiZmlsZSIsIHZpZGVvKTsKCQl9CgkJCgkJLy9j b21wcnVlYmEgc2kgZXMgbGl2ZQoJCWlmICggKHZpZGVvLmluZGV4T2YoJ3J0bXA6Ly8nKSAhPSAtMSkg fHwgKHZpZGVvLmluZGV4T2YoJ3J0bXB0Oi8vJykgIT0gLTEpICkgewoJCQlmby5hZGRWYXJpYWJsZSgi aXNMaXZlIiwgInRydWUiKTsKCQl9CgkJCgkJLy8gYWx0byB5IGFuY2hvCgkJZm8uYWRkVmFyaWFibGUo IndpZHRoIiwgcGFyc2VJbnQodywgMTApKTsKCQlmby5hZGRWYXJpYWJsZSgiaGVpZ2h0IiwgcGFyc2VJ bnQoaCwgMTApKTsKCQkKCQkvLyBnb29nbGUgYW5hbHl0aWNzCgkJdGhpcy5zZXRWYWxvcmVzR29vZ2xl QW5hbHl0aWNzKGZvLCBvcGNpb25lcyk7CgkJCgkJLy8gYWR2ZXJuZXQKCQkvL3RoaXMuc2V0VmFsb3Jl c0FkdmVybmV0KGZvLCBvcGNpb25lcyk7CgkJCgkJLy9EQVJUCgkJaWYgKHR5cGVvZiAoT0FTX3NpdGVw YWdlKSAhPSAndW5kZWZpbmVkJyl7CgkJCWZvLmFkZFZhcmlhYmxlKCJhZHZlcnRpc2VtZW50IiwiT0FT X3NpdGVwYWdlOjoiICsgZ2V0T0FTX3NpdGVwYWdlKE9BU19zaXRlcGFnZSkpOwoJCX1lbHNlewoJCQlm by5hZGRWYXJpYWJsZSgiYWR2ZXJ0aXNlbWVudCIsIk9BU19zaXRlcGFnZTo6Iik7CgkJfQoJCQoJCWlm IChvcGNpb25lcykgewoJCQlpZiAoIW9wY2lvbmVzLnRpdHVsbykgewoJCQkJb3BjaW9uZXMudGl0dWxv ID0gIkRlc2Nvbm9jaWRvIjsKCQkJfQoJCQlvcGNpb25lcy50aXR1bG8gPSB0aGlzLmdldENsZWFuVGl0 bGUob3BjaW9uZXMudGl0dWxvKTsKCQkJCgkJCS8vIHBhbnRhbGxhIGNvbXBsZXRhCgkJCWlmIChvcGNp b25lcy5mdWxsc2NyZWVuICE9PSBmYWxzZSkgewoJCQkJZm8uYWRkUGFyYW0oImFsbG93ZnVsbHNjcmVl biIsICJ0cnVlIik7CgkJCX0KCQkJCgkJCS8vIGltYWdlbiBkZSBwcmV2aWEKCQkJaWYgKG9wY2lvbmVz LmltZ1ByZXZpYSkgewoJCQkJdmFyIGltYWdlbiA9IHRoaXMuZ2V0VVJMUmVzaXplcihvcGNpb25lcy5p bWdQcmV2aWEsIHcsIGgpOwoJCQkJaW1hZ2VuID0gaW1hZ2VuLnJlcGxhY2UoLyYvZywiJTI2Iik7CgkJ CQlmby5hZGRWYXJpYWJsZSgiaW1hZ2UiLCBpbWFnZW4pOwoJCQl9CQkJCgkJCWlmIChvcGNpb25lcy5h dXRvcGxheSkgewoJCQkJZm8uYWRkVmFyaWFibGUoImF1dG9zdGFydCIsICJ0cnVlIik7CgkJCX0KCQkJ CgkJCS8vIG1vc2NhCgkJCXZhciBtb3NjYSA9IHRoaXMuY2FsY3VsYU1vc2NhKHcsIGgpOwoJCQlpZiAo bW9zY2EpIHsKCQkJCWZvLmFkZFZhcmlhYmxlKCJsb2dvIiwgImltYWdlOjoiICsgbW9zY2EpOwoJCQl9 CgkJCQoJCQkvLyBhanVzdGFyCgkJCWlmIChvcGNpb25lcy5hanVzdGFyID09PSB0cnVlKSB7CgkJCQlm by5hZGRWYXJpYWJsZSgib3ZlcnN0cmV0Y2giLCAib3ZlcnN0cmV0Y2giKTsKCQkJfSBlbHNlIGlmIChv cGNpb25lcy5hanVzdGFyID09PSBmYWxzZSkgewoJCQkJZm8uYWRkVmFyaWFibGUoIm92ZXJzdHJldGNo IiwgIm1haW50YWluIik7CgkJCX0gZWxzZSBpZiAob3BjaW9uZXMuYWp1c3RhcikgewoJCQkJZm8uYWRk VmFyaWFibGUoIm92ZXJzdHJldGNoIiwgb3BjaW9uZXMuYWp1c3Rhcik7CgkJCX0gZWxzZSB7CgkJCQlm by5hZGRWYXJpYWJsZSgib3ZlcnN0cmV0Y2giLCAibWFpbnRhaW4iKTsKCQkJfQoJCQkKCQkJLy8gdGl0 dWxvIGRlbCB2aWRlbwoJCQlpZiAob3BjaW9uZXMudGl0dWxvKSB7CgkJCQlmby5hZGRWYXJpYWJsZSgi dGl0bGUiLCBvcGNpb25lcy50aXR1bG8pOwoJCQl9CgkJfSBlbHNlIHsKCQkJLy8gU2kgbm8gbm9zIGxs ZWdhIGNvbmZpZ3VyYWNpb24KCQkJZm8uYWRkUGFyYW0oImFsbG93ZnVsbHNjcmVlbiIsICJ0cnVlIik7 CgkJCWZvLmFkZFZhcmlhYmxlKCJhdXRvc3RhcnQiLCAiZmFsc2UiKTsKCQkJZm8uYWRkVmFyaWFibGUo Im92ZXJzdHJldGNoIiwgIm1haW50YWluIik7CgkJfQoJCgkJaWYgKG5hdmlnYXRvciAmJiBuYXZpZ2F0 b3IuYXBwTmFtZSAmJiBuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0IEludGVybmV0IEV4cGxv cmVyIikgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJdmFyIGNvbnRlbmVkb3IgPSBkb2N1 bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CgkJCQlpZiAoY29udGVuZWRvcikgewoJCQkJCWNvbnRlbmVk b3IuaW5uZXJIVE1MID0gJzxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luOjAgYXV0 byI+PC9kaXY+JzsKCQkJCQlmby53cml0ZShjb250ZW5lZG9yLmZpcnN0Q2hpbGQpOwoJCQkJfQoJCQkJ UGxheWVyV2ViVFYuaWVDb3VudGVyLS07CgkJCX0sIDUwMCAqIFBsYXllcldlYlRWLmllQ291bnRlcisr KTsKCQl9IGVsc2UgewoJCQl2YXIgY29udGVuZWRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk KTsKCQkJaWYgKGNvbnRlbmVkb3IpIHsKCQkJCWNvbnRlbmVkb3IuaW5uZXJIVE1MID0gJzxkaXYgc3R5 bGU9InRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luOjAgYXV0byI+PC9kaXY+JzsKCQkJCWZvLndyaXRl KGNvbnRlbmVkb3IuZmlyc3RDaGlsZCk7CgkJCX0KCQl9Cgl9LAoJCglfc2hvd0F1ZGlvIDogZnVuY3Rp b24oaWQsIHZpZGVvLCB3LCBoLCBvcGNpb25lcykgewoJCXZhciBmdW5jaW9uID0gdGhpcy5fc2hvd0F1 ZGlvOwoJCQoJCWlmIChhcmd1bWVudHMubGVuZ3RoIDwgNSkgewoJCQkvLyBTaSBubyBub3MgcGFzYW4g dW4gaWQgZGUgY2FwYSwgY3JlYW1vcyAxIGVuIGxhIHBvc2ljaW9uIGFjdHVhbCB5IGxhIHVzYW1vcyBw YXJhIGVzY3JpYmlyIGVsIHZpZGVvCgkJCS8vIChDVUlEQURPISAgU2kgbGEgcGFnaW5hIHlhIGVzdGEg Y2FyZ2FkYSwgc2llbXByZSBoYXkgcXVlIGluZGljYXIgdW4gaWQsIHNpbm8gYm9ycmFyaWEgbGEgcGFn aW5hIGFjdHVhbCkKCQkJdmFyIHVpZCA9IHRoaXMuZ2V0VUlEKCJ2aWRlbyIpOwoJCQlkb2N1bWVudC53 cml0ZSgnPGRpdiBpZD0iJyArIHVpZCArICciPjwvZGl2PicpOwoJCQkKCQkJdmFyIGFyZ3MgPSBuZXcg QXJyYXkoNSk7CgkJCWFyZ3NbMF0gPSB1aWQ7CgkJCWZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRz Lmxlbmd0aDsgaSsrKSB7CgkJCQlhcmdzW2kgKyAxXSA9IGFyZ3VtZW50c1tpXTsKCQkJfQoJCQkKCQkJ ZnVuY2lvbi5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3Nb NF0pOwoJCQlyZXR1cm47CgkJfQoJCQoJCQoJCWlmICghb3BjaW9uZXMpIHsKCQkJb3BjaW9uZXMgPSB7 fTsKCQl9CgkJCgkJLy8gRXNwZXJhbW9zIHF1ZSBzZSBjYXJndWUgbGEgaW1hZ2VuIGRlIG1vc2NhIHBh cmEgcG9kZXIgY2FsY3VsYXIgY3VhbCBkZSBsYXMgZG9zIG1vc3RyYXIKCQkvLyBzaSBsYSBwZXF1ZfFh IG8gbGEgbm9ybWFsIG8gbmluZ3VuYQoJCWlmICghdGhpcy5pbml0KG9wY2lvbmVzLCB2aWRlbykpIHsK CQkJdmFyIF90aGlzID0gdGhpczsKCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsKCQkJCWZ1bmNpb24u Y2FsbChfdGhpcywgaWQsIHZpZGVvLCB3LCBoLCBvcGNpb25lcyk7CgkJCX0sIDUwMCk7CgkJCXJldHVy bjsKCQl9CgkJCgkJLy8gY29uIGVzdG8gY29uc2VndWltb3MgaWRzIHVuaWNvcwoJCXZhciBpZFBsYXll ciA9IHRoaXMuZ2V0VUlEKCJtb3ZpZV9wbGF5ZXIiKTsKCQoJCXZhciBmbyA9IG5ldyBTV0ZPYmplY3Qo dGhpcy5nZXRVUkxCYXNlKCJGTFZQbGF5ZXIuc3dmIiksIGlkUGxheWVyLCB3LCBoLHRoaXMuVkVSU0lP Tl9GTEFTSCwgZ2V0Q29sb3JGb25kbygpKTsKCQoJCS8vIHRyYW5zcGFyZW5jaWEKCQlmby5hZGRQYXJh bSgid21vZGUiLCAidHJhbnNwYXJlbnQiKTsKCQkKCQlmby5hZGRQYXJhbSgic3dMaXZlQ29ubmVjdCIs ICJ0cnVlIik7CgkJZm8uYWRkUGFyYW0oImFsbG93U2NyaXB0QWNjZXNzIiwgImFsd2F5cyIpOwoJCgkJ Ly8gcnV0YSBkZWwgZmljaGVybyBkZSBjb25maWd1cmFjaW9uCgkJaWYgKHRoaXMucnV0YUNvbmZpZykg ewoJCQlmby5hZGRWYXJpYWJsZSgiY29uZmlnIiwgdGhpcy5ydXRhQ29uZmlnKTsKCQl9CgkJCgkJLy8g VVJMIGRlbCBhdWRpbwoJCWZvLmFkZFZhcmlhYmxlKCJmaWxlIiwgdmlkZW8pOwoJCQoJCS8vIGFsdG8g eSBhbmNobwoJCWZvLmFkZFZhcmlhYmxlKCJ3aWR0aCIsIHBhcnNlSW50KHcsIDEwKSk7CgkJZm8uYWRk VmFyaWFibGUoImhlaWdodCIsIHBhcnNlSW50KGgsIDEwKSk7CgkJCgkJLy8gZ29vZ2xlIGFuYWx5dGlj cwoJCS8vdGhpcy5zZXRWYWxvcmVzR29vZ2xlQW5hbHl0aWNzKGZvLCBvcGNpb25lcyk7CgkJCgkJLy8g YWR2ZXJuZXQKCQkvL3RoaXMuc2V0VmFsb3Jlc0FkdmVybmV0KGZvLCBvcGNpb25lcyk7CgkJCgkJaWYg KG9wY2lvbmVzKSB7CgkJCWlmICghb3BjaW9uZXMudGl0dWxvKSB7CgkJCQlvcGNpb25lcy50aXR1bG8g PSAiRGVzY29ub2NpZG8iOwoJCQl9CgkJCW9wY2lvbmVzLnRpdHVsbyA9IHRoaXMuZ2V0Q2xlYW5UaXRs ZShvcGNpb25lcy50aXR1bG8pOwoJCQkKCQkJLy8gcGFudGFsbGEgY29tcGxldGEKCQkJaWYgKG9wY2lv bmVzLmZ1bGxzY3JlZW4gIT09IGZhbHNlKSB7CgkJCQlmby5hZGRQYXJhbSgiYWxsb3dmdWxsc2NyZWVu IiwgInRydWUiKTsKCQkJfQoJCQkKCQkJLy8gaW1hZ2VuIGRlIHByZXZpYQoJCQlpZiAob3BjaW9uZXMu aW1nUHJldmlhKSB7CgkJCQkvL2ZvLmFkZFZhcmlhYmxlKCJpbWFnZSIsIHRoaXMuZ2V0VVJMUmVzaXpl cihvcGNpb25lcy5pbWdQcmV2aWEsIHcsIGgpKTsKCQkJCWlmICh3IDw9IDI1MykgdmFyIGFuY2hvID0g IDI1MzsKCQkJCWVsc2UgaWYgKHcgPiAyNTMgJiYgdyA8PSAzMDApIHZhciBhbmNobyA9ICAzMDA7CgkJ CQllbHNlIGlmICh3ID4gMzAwICYmIHcgPD0gMzg0KSB2YXIgYW5jaG8gPSAgMzg0OwoJCQkJZWxzZSBp ZiAodyA+IDM4NCAmJiB3IDw9IDM5MCkgdmFyIGFuY2hvID0gIDM5MDsKCQkJCWVsc2UgaWYgKHcgPiAz OTAgJiYgdyA8PSA2NjUpIHZhciBhbmNobyA9ICA2NjU7CgkJCQl2YXIgaW1hZ2VuID0gdGhpcy5nZXRV UkxSZXNpemVyKG9wY2lvbmVzLmltZ1ByZXZpYSwgdywgaCwgJ2F1ZGlvLW9uZGFfJyArIGFuY2hvICsg Jy5wbmcnKTsKCQkJCWltYWdlbiA9IGltYWdlbi5yZXBsYWNlKC8mL2csIiUyNiIpOwoJCQkJZm8uYWRk VmFyaWFibGUoImltYWdlIiwgaW1hZ2VuKTsKCQkJfQoJCQkKCQkJaWYgKG9wY2lvbmVzLmF1dG9wbGF5 KSB7CgkJCQlmby5hZGRWYXJpYWJsZSgiYXV0b3N0YXJ0IiwgInRydWUiKTsKCQkJfQoJCQkKCQkJLy8g bW9zY2EKCQkJLy92YXIgbW9zY2EgPSB0aGlzLmNhbGN1bGFNb3NjYSh3LCBoKTsKCQkJLy9pZiAobW9z Y2EpIHsKCQkJLy8JZm8uYWRkVmFyaWFibGUoImxvZ28iLCAiaW1hZ2U6OiIgKyBtb3NjYSk7CgkJCS8v fQoJCQkKCQkJLy8gYWp1c3RhcgoJCQlpZiAob3BjaW9uZXMuYWp1c3RhciA9PT0gdHJ1ZSkgewoJCQkJ Zm8uYWRkVmFyaWFibGUoIm92ZXJzdHJldGNoIiwgIm92ZXJzdHJldGNoIik7CgkJCX0gZWxzZSBpZiAo b3BjaW9uZXMuYWp1c3RhciA9PT0gZmFsc2UpIHsKCQkJCWZvLmFkZFZhcmlhYmxlKCJvdmVyc3RyZXRj aCIsICJtYWludGFpbiIpOwoJCQl9IGVsc2UgaWYgKG9wY2lvbmVzLmFqdXN0YXIpIHsKCQkJCWZvLmFk ZFZhcmlhYmxlKCJvdmVyc3RyZXRjaCIsIG9wY2lvbmVzLmFqdXN0YXIpOwoJCQl9IGVsc2UgewoJCQkJ Zm8uYWRkVmFyaWFibGUoIm92ZXJzdHJldGNoIiwgIm1haW50YWluIik7CgkJCX0KCQkJCgkJCS8vIHRp dHVsbyBkZWwgdmlkZW8KCQkJaWYgKG9wY2lvbmVzLnRpdHVsbykgewoJCQkJZm8uYWRkVmFyaWFibGUo InRpdGxlIiwgb3BjaW9uZXMudGl0dWxvKTsKCQkJfQoJCX0gZWxzZSB7CgkJCS8vIFNpIG5vIG5vcyBs bGVnYSBjb25maWd1cmFjaW9uCgkJCWZvLmFkZFBhcmFtKCJhbGxvd2Z1bGxzY3JlZW4iLCAidHJ1ZSIp OwoJCQlmby5hZGRWYXJpYWJsZSgiYXV0b3N0YXJ0IiwgImZhbHNlIik7CgkJCWZvLmFkZFZhcmlhYmxl KCJvdmVyc3RyZXRjaCIsICJtYWludGFpbiIpOwoJCX0KCQoJCWlmIChuYXZpZ2F0b3IgJiYgbmF2aWdh dG9yLmFwcE5hbWUgJiYgbmF2aWdhdG9yLmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBs b3JlciIpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsKCQkJCXZhciBjb250ZW5lZG9yID0gZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwoJCQkJaWYgKGNvbnRlbmVkb3IpIHsKCQkJCQljb250ZW5l ZG9yLmlubmVySFRNTCA9ICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij48L2Rpdj4nOwoJ CQkJCWZvLndyaXRlKGNvbnRlbmVkb3IuZmlyc3RDaGlsZCk7CgkJCQl9CgkJCQlQbGF5ZXJXZWJUVi5p ZUNvdW50ZXItLTsKCQkJfSwgNTAwICogUGxheWVyV2ViVFYuaWVDb3VudGVyKyspOwoJCX0gZWxzZSB7 CgkJCXZhciBjb250ZW5lZG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwoJCQlpZiAoY29u dGVuZWRvcikgewoJCQkJY29udGVuZWRvci5pbm5lckhUTUwgPSAnPGRpdiBzdHlsZT0idGV4dC1hbGln bjogY2VudGVyOyI+PC9kaXY+JzsKCQkJCWZvLndyaXRlKGNvbnRlbmVkb3IuZmlyc3RDaGlsZCk7CgkJ CX0KCQl9Cgl9LAkKCQoJc2hvd1ZpZGVvOiBmdW5jdGlvbihpZCwgdmlkZW8sIHcsIGgsIG9wY2lvbmVz KSB7CgkJdmFyIGV4dGVuc2lvbiA9IFBsYXllcldlYlRWLmdldEV4dGVuc2lvbih2aWRlbyk7CgkJCgkJ dmFyIGZ1bmNpb24gPSB0aGlzLnNob3dWaWRlbzsKCQlpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDUpIHsK CQkJLy8gU2kgbm8gbm9zIHBhc2FuIHVuIGlkIGRlIGNhcGEsIGNyZWFtb3MgMSBlbiBsYSBwb3NpY2lv biBhY3R1YWwgeSBsYSB1c2Ftb3MgcGFyYSBlc2NyaWJpciBlbCB2aWRlbwoJCQkvLyAoQ1VJREFETyEg IFNpIGxhIHBhZ2luYSB5YSBlc3RhIGNhcmdhZGEsIHNpZW1wcmUgaGF5IHF1ZSBpbmRpY2FyIHVuIGlk LCBzaW5vIGJvcnJhcmlhIGxhIHBhZ2luYSBhY3R1YWwpCgkJCXZhciB1aWQgPSB0aGlzLmdldFVJRCgi dmlkZW8iKTsKCQkJZG9jdW1lbnQud3JpdGUoJzxkaXYgaWQ9IicgKyB1aWQgKyAnIj48L2Rpdj4nKTsK CQkJCgkJCXZhciBhcmdzID0gbmV3IEFycmF5KDUpOwoJCQlhcmdzWzBdID0gdWlkOwoJCQlmb3IgKHZh ciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewoJCQkJYXJnc1tpICsgMV0gPSBhcmd1 bWVudHNbaV07CgkJCX0KCQkJCgkJCWZ1bmNpb24uY2FsbCh0aGlzLCBhcmdzWzBdLCBhcmdzWzFdLCBh cmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdKTsKCQkJcmV0dXJuOwoJCX0KCQlpZiAoIW9wY2lvbmVzKSB7 CgkJCW9wY2lvbmVzID0ge307CgkJfQoJCQoJCXZhciBfdGhpcyA9IHRoaXM7CgkJaWYgKCF0aGlzLmlu aXQob3BjaW9uZXMsIHZpZGVvKSkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJZnVuY2lv bi5jYWxsKF90aGlzLCBpZCwgdmlkZW8sIHcsIGgsIG9wY2lvbmVzKTsKCQkJfSwgNTAwKTsKCQkJcmV0 dXJuOwoJCX0KCQkKCQl2YXIgY29udGVuZWRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsK CQkKCQlpZiAoY29udGVuZWRvcikgewoJCQlpZiAob3BjaW9uZXMgJiYgb3BjaW9uZXMuaW1nUHJldmlh KSB7CgkJCQlpZiAoZXh0ZW5zaW9uID09ICdtcDMnKSB7CgkJCQkJdmFyIG1hcmNhQWd1YSA9ICdhdWRp by1wbGF5LnBuZyc7CgkJCQl9CgkJCQllbHNlIHsKCQkJCQl2YXIgbWFyY2FBZ3VhID0gJ3BsYXkucG5n JzsKCQkJCX0KCQkJCQoJCQkJdmFyIHVybFByZXZpYVJlZGltZW5zaW9uYWRhID0gdGhpcy5nZXRVUkxS ZXNpemVyKG9wY2lvbmVzLmltZ1ByZXZpYSwgdywgaCwgbWFyY2FBZ3VhKTsKCQkJCXRoaXMucGludGFy SW1hZ2VuKGlkLCB2aWRlbywgdywgaCwgb3BjaW9uZXMsIHVybFByZXZpYVJlZGltZW5zaW9uYWRhKTsK CQkJfSBlbHNlIHsKCQkJCXRoaXMucGludGFySW1hZ2VuKGlkLCB2aWRlbywgdywgaCwgb3BjaW9uZXMs IG51bGwpOwoJCQl9CgkJfQoJfSwKCQoJcGludGFySW1hZ2VuOiBmdW5jdGlvbihpZCwgdmlkZW8sIHcs IGgsIG9wY2lvbmVzLCB1cmxJbWdQcmV2aWEsIGltZ1ByZXZpYSkgewoJCXZhciBleHRlbnNpb24gPSBQ bGF5ZXJXZWJUVi5nZXRFeHRlbnNpb24odmlkZW8pOwoJCQoJCXZhciBfdGhpcyA9IHRoaXM7CgkJdmFy IGZ1bmNpb24gPSB0aGlzLnBpbnRhckltYWdlbjsKCQkKCQlpZiAodXJsSW1nUHJldmlhICYmICFpbWdQ cmV2aWEpIHsKCQkJdmFyIGltZ1ByZXZpYSA9IG5ldyBJbWFnZSgpOwoJCQlpbWdQcmV2aWEuc3JjID0g dXJsSW1nUHJldmlhOwoJCQlpZiAoaW1nUHJldmlhLmNvbXBsZXRlKSB7CgkJCQlmdW5jaW9uLmNhbGwo X3RoaXMsIGlkLCB2aWRlbywgdywgaCwgb3BjaW9uZXMsIHVybEltZ1ByZXZpYSwgaW1nUHJldmlhKTsK CQkJfSBlbHNlIHsKCQkJCWltZ1ByZXZpYS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKCQkJCQlmdW5jaW9u LmNhbGwoX3RoaXMsIGlkLCB2aWRlbywgdywgaCwgb3BjaW9uZXMsIHVybEltZ1ByZXZpYSwgaW1nUHJl dmlhKTsKCQkJCX07CgkJCQlpbWdQcmV2aWEub25lcnJvciA9IGltZ1ByZXZpYS5vbmFib3J0ID0gZnVu Y3Rpb24oKSB7CgkJCQkJZnVuY2lvbi5jYWxsKF90aGlzLCBpZCwgdmlkZW8sIHcsIGgsIG9wY2lvbmVz LCB1cmxJbWdQcmV2aWEsIG5ldyBJbWFnZSgpKTsKCQkJCX07CgkJCX0KCQl9IGVsc2UgaWYgKCF1cmxJ bWdQcmV2aWEgfHwgKHVybEltZ1ByZXZpYSAmJiBpbWdQcmV2aWEpKSB7CgkJCWlmICghdXJsSW1nUHJl dmlhKSB7CgkJCQlpbWdQcmV2aWEgPSBuZXcgSW1hZ2UoKTsKCQkJfQoJCQkKCQkJdmFyIGNvbnRlbmVk b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CgkJCXZhciBhbHRvID0gcGFyc2VJbnQoaCwg MTApOwoJCQl2YXIgYW5jaG8gPSBwYXJzZUludCh3LCAxMCk7CgkJCXZhciB0YW1JY29ubyA9IFs2NCwg NjFdOwoJCQkKCQkJb3BjaW9uZXMuYXV0b3BsYXkgPSB0cnVlOwoJCQkKCQkJdmFyIGFjY2lvbiA9IGZ1 bmN0aW9uKCkgewoJCQkJaWYgKGV4dGVuc2lvbiA9PSAnbXAzJykgewoJCQkJCV90aGlzLl9zaG93QXVk aW8oaWQsIHZpZGVvLCB3LCBoLCBvcGNpb25lcyk7CgkJCQkJdGhpcy5vbmNsaWNrID0gX3RoaXMubmFk YTsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCV90aGlzLl9zaG93VmlkZW8oaWQsIHZpZGVvLCB3LCBoLCBv cGNpb25lcyk7CgkJCQkJdGhpcy5vbmNsaWNrID0gX3RoaXMubmFkYTsKCQkJCX0KCQkJfTsKCQkJCgkJ CXZhciBlc3RyYXRlZ2lhID0gIk1hcmNhQWd1YUVuY2FqYXIiOwoJCQlzd2l0Y2ggKGVzdHJhdGVnaWEp IHsKCQkJCWNhc2UgIlNpbk1hcmNhQWd1YVBvc2ljaW9uYWRvIjoKCQkJCQkvLyBWZXJzaW9uIGNvbiBw bGF5IHBvc2ljaW9uYWRvIChwcm9ibGVtYXMgY29uIElFNikKCQkJCQl0aGlzLmdldEhUTUxJbWFnZW5Q b3NpY2lvbihhbmNobywgYWx0bywgdGFtSWNvbm8sIGltZ1ByZXZpYSwgY29udGVuZWRvciwgYWNjaW9u LCBleHRlbnNpb24pOwoJCQkJYnJlYWs7CgkJCQljYXNlICJNYXJjYUFndWFBbmNobzEwMEFsdG9Qcm9w b3JjaW9uYWwiOgoJCQkJCS8vIFZlcnNpb24gY29uIGFuY2hvIDEwMCUgeSBhbHRvIHByb3BvcmNpb25h bAoJCQkJCXRoaXMuZ2V0SFRNTEltYWdlbk1hcmNhQWd1YUFsdG9Qcm9wb3JjaW9uYWwoYW5jaG8sIGFs dG8sIHRhbUljb25vLCBpbWdQcmV2aWEsIGNvbnRlbmVkb3IsIGFjY2lvbiwgZXh0ZW5zaW9uKTsKCQkJ CWJyZWFrOwoJCQkJY2FzZSAiTWFyY2FBZ3VhRW5jYWphciI6CgkJCQlkZWZhdWx0OgoJCQkJCS8vIFZl cnNpb24gY29uIG1hcmNhIGRlIGFndWEgZSBpbWFnZW4gY2VudHJhZGEgaG9yaXpvbnRhbCB5IHZlcnRp Y2FsbWVudGUKCQkJCQl0aGlzLmdldEhUTUxJbWFnZW5NYXJjYUFndWEoYW5jaG8sIGFsdG8sIHRhbUlj b25vLCBpbWdQcmV2aWEsIGNvbnRlbmVkb3IsIGFjY2lvbiwgZXh0ZW5zaW9uKTsKCQkJCWJyZWFrOwoJ CQl9CgkJfQoJfSwKCQoJLy8gVmVyc2lvbiBjb24gcGxheSBwb3NpY2lvbmFkbyAocHJvYmxlbWFzIGNv biBJRTYpCglnZXRIVE1MSW1hZ2VuUG9zaWNpb246IGZ1bmN0aW9uKGFuY2hvLCBhbHRvLCB0YW1JY29u bywgaW1nUHJldmlhLCBjb250ZW5lZG9yLCBhY2Npb24sIGV4dGVuc2lvbikgewoJCWlmIChleHRlbnNp b24gPT0gJ21wMycpIHsKCQkJdmFyIHRleHRvQWx0ID0gJ1B1bHNlIHBhcmEgZXNjdWNoYXIgZWwgYXVk aW8nOwoJCQl2YXIgaW1hZ2VuUGxheSA9ICdpbWFnZW5lcy9hdWRpby1wbGF5LnBuZyc7CgkJfQoJCWVs c2UgewoJCQl2YXIgdGV4dG9BbHQgPSAnUHVsc2UgcGFyYSB2ZXIgZWwgdmlkZW8nOwoJCQl2YXIgaW1h Z2VuUGxheSA9ICdpbWFnZW5lcy9wbGF5LnBuZyc7CgkJfQoJCQoJCXZhciBzdHlsZUljb25vID0gIm1h cmdpbi1sZWZ0OiAiICsgKGFuY2hvLzIgLSB0YW1JY29ub1swXS8yKSArICJweDsgdG9wOiAiICsgKGFs dG8vMiAtIHRhbUljb25vWzFdLzIpICsgInB4OyI7CgkJdmFyIGh0bWwgPSAnPGRpdiBzdHlsZT0idGV4 dC1hbGlnbjogY2VudGVyOyBtYXJnaW46MCBhdXRvIj48ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRp dmU7IG1hcmdpbjowIGF1dG87Y3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kLWNvbG9yOiAnICsgZ2V0 Q29sb3JGb25kbygpICsgJzsgd2lkdGg6ICcgKyBhbmNobyArICdweDsgaGVpZ2h0OiAnICsgYWx0byAr ICdweDsiPic7CgkJaHRtbCArPSAnPGltZyBzcmM9IicgKyB0aGlzLmdldFVSTEJhc2UoaW1hZ2VuUGxh eSkgKyAnIiBhbHQ9IicgKyB0ZXh0b0FsdCArICciIHRpdGxlPSInICsgdGV4dG9BbHQgKyAnIiBzdHls ZT0ibWFyZ2luOjAgYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlcjogMDsgcG9zaXRpb246IGFi c29sdXRlOyB6LWluZGV4OiAxMDE7ICcgKyBzdHlsZUljb25vICsgJyIgLz4nOwoJCWlmIChpbWdQcmV2 aWEgJiYgKGltZ1ByZXZpYS53aWR0aCArIGltZ1ByZXZpYS5oZWlnaHQpID4gMCkgewoJCQl2YXIgc3R5 bGUgPSAiIjsKCQkJdmFyIHByb3BvcmNpb25QbGF5ZXIgPSBhbmNobyAvIGFsdG87CgkJCXZhciBwcm9w b3JjaW9uSW1hZ2VuID0gaW1nUHJldmlhLndpZHRoIC8gaW1nUHJldmlhLmhlaWdodDsKCQkJCgkJCXZh ciBhbHRvRmluYWwgPSBpbWdQcmV2aWEuaGVpZ2h0OwoJCQl2YXIgYW5jaG9GaW5hbCA9IGltZ1ByZXZp YS53aWR0aDsKCQkJCgkJCWlmIChwcm9wb3JjaW9uUGxheWVyID4gcHJvcG9yY2lvbkltYWdlbikgewoJ CQkJYW5jaG9GaW5hbCA9IGFuY2hvRmluYWwgKiBhbHRvIC8gYWx0b0ZpbmFsOwoJCQkJYWx0b0ZpbmFs ID0gYWx0bzsKCQkJfSBlbHNlIHsKCQkJCWFsdG9GaW5hbCA9IGFsdG9GaW5hbCAqIGFuY2hvIC8gYW5j aG9GaW5hbDsKCQkJCWFuY2hvRmluYWwgPSBhbmNobzsKCQkJfQoJCQkvLyBjZW50cmFtb3MgbGEgaW1h Z2VuCgkJCXZhciBjb29yZHMgPSBbKGFuY2hvIC0gYW5jaG9GaW5hbCkgLyAyLCAoYWx0byAtIGFsdG9G aW5hbCkgLyAyXTsKCQkJdmFyIHN0eWxlID0gImhlaWdodDogIiArIGFsdG9GaW5hbCArICJweDsgd2lk dGg6ICIgKyBhbmNob0ZpbmFsICsgInB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDEwMDsg dG9wOiAiICsgY29vcmRzWzFdICsgInB4OyBsZWZ0OiAiICsgY29vcmRzWzBdICsgInB4OyI7CgkJCQoJ CQlodG1sICs9ICc8aW1nIHNyYz0iJyArIGltZ1ByZXZpYS5zcmMgKyAnIiBhbHQ9IicgKyB0ZXh0b0Fs dCArICciIHRpdGxlPSInICsgdGV4dG9BbHQgKyAnIiBzdHlsZT0iYm9yZGVyOiAwOyBtYXJnaW46MCBh dXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsnICsgc3R5bGUgKyAnIiAvPic7CgkJfSBlbHNlIHsKCQkJaHRt bCArPSAnPGltZyBzcmM9IicgKyB0aGlzLmdldFVSTEJhc2UoaW1hZ2VuUGxheSkgKyAnIiBhbHQ9Iicg KyB0ZXh0b0FsdCArICciIHRpdGxlPSInICsgdGV4dG9BbHQgKyAnIiBzdHlsZT0ibWFyZ2luOjAgYXV0 bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlcjogMDsgbWFyZ2luLXRvcDogJyArICgoYWx0byAtIHRh bUljb25vWzFdKSAvIDIpICsgJ3B4OyIgLz4nOwoJCX0KCQlodG1sICs9ICc8L2Rpdj48L2Rpdj4nOwoJ CQoJCWNvbnRlbmVkb3IuaW5uZXJIVE1MID0gaHRtbDsKCQljb250ZW5lZG9yLmZpcnN0Q2hpbGQuZmly c3RDaGlsZC5vbmNsaWNrID0gYWNjaW9uOwoJfSwKCQoJLy8gVmVyc2lvbiBjb24gbWFyY2EgZGUgYWd1 YSBlIGltYWdlbiBjZW50cmFkYSBob3Jpem9udGFsIHkgdmVydGljYWxtZW50ZQoJZ2V0SFRNTEltYWdl bk1hcmNhQWd1YTogZnVuY3Rpb24oYW5jaG8sIGFsdG8sIHRhbUljb25vLCBpbWdQcmV2aWEsIGNvbnRl bmVkb3IsIGFjY2lvbiwgZXh0ZW5zaW9uKSB7CgkJaWYgKGV4dGVuc2lvbiA9PSAnbXAzJykgewoJCQl2 YXIgdGV4dG9BbHQgPSAnUHVsc2UgcGFyYSBlc2N1Y2hhciBlbCBhdWRpbyc7CgkJCXZhciBpbWFnZW5Q bGF5ID0gJ2ltYWdlbmVzL2F1ZGlvLXBsYXkucG5nJzsKCQl9CgkJZWxzZSB7CgkJCXZhciB0ZXh0b0Fs dCA9ICdQdWxzZSBwYXJhIHZlciBlbCB2aWRlbyc7CgkJCXZhciBpbWFnZW5QbGF5ID0gJ2ltYWdlbmVz L3BsYXkucG5nJzsKCQl9CgkJCgkJdmFyIGh0bWwgPSAnPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2Vu dGVyOyBtYXJnaW46MCBhdXRvIj48ZGl2IHN0eWxlPSJtYXJnaW46MCBhdXRvO2N1cnNvcjogcG9pbnRl cjsgYmFja2dyb3VuZC1jb2xvcjogJyArIGdldENvbG9yRm9uZG8oKSArICc7IHdpZHRoOiAnICsgYW5j aG8gKyAncHg7IGhlaWdodDogJyArIGFsdG8gKyAncHg7Ij4nOwoJCWlmIChpbWdQcmV2aWEgJiYgKGlt Z1ByZXZpYS53aWR0aCArIGltZ1ByZXZpYS5oZWlnaHQpID4gMCkgewoJCQl2YXIgc3R5bGUgPSAiIjsK CQkJdmFyIHByb3BvcmNpb25QbGF5ZXIgPSBhbmNobyAvIGFsdG87CgkJCXZhciBwcm9wb3JjaW9uSW1h Z2VuID0gaW1nUHJldmlhLndpZHRoIC8gaW1nUHJldmlhLmhlaWdodDsKCQkJCgkJCXZhciBhbHRvRmlu YWwgPSBpbWdQcmV2aWEuaGVpZ2h0OwoJCQl2YXIgYW5jaG9GaW5hbCA9IGltZ1ByZXZpYS53aWR0aDsK CQkJCgkJCWlmIChwcm9wb3JjaW9uUGxheWVyID4gcHJvcG9yY2lvbkltYWdlbikgewoJCQkJYW5jaG9G aW5hbCA9IGFuY2hvRmluYWwgKiBhbHRvIC8gYWx0b0ZpbmFsOwoJCQkJYWx0b0ZpbmFsID0gYWx0bzsK CQkJfSBlbHNlIHsKCQkJCWFsdG9GaW5hbCA9IGFsdG9GaW5hbCAqIGFuY2hvIC8gYW5jaG9GaW5hbDsK CQkJCWFuY2hvRmluYWwgPSBhbmNobzsKCQkJfQoJCQkvLyBjZW50cmFtb3MgbGEgaW1hZ2VuCgkJCXZh ciBjb29yZHMgPSBbKGFuY2hvIC0gYW5jaG9GaW5hbCkgLyAyLCAoYWx0byAtIGFsdG9GaW5hbCkgLyAy XTsKCQkJdmFyIHN0eWxlID0gImhlaWdodDogIiArIGFsdG9GaW5hbCArICJweDsgd2lkdGg6ICIgKyBh bmNob0ZpbmFsICsgInB4OyBtYXJnaW4tdG9wOiAiICsgY29vcmRzWzFdICsgInB4OyI7CgkJCQoJCQlo dG1sICs9ICc8aW1nIHNyYz0iJyArIGltZ1ByZXZpYS5zcmMgKyAnIiBhbHQ9IicgKyB0ZXh0b0FsdCAr ICciIHRpdGxlPSInICsgdGV4dG9BbHQgKyAnIiBzdHlsZT0ibWFyZ2luOjAgYXV0bzsgdGV4dC1hbGln bjpjZW50ZXI7IGJvcmRlcjogMDsgJyArIHN0eWxlICsgJyIgLz4nOwoJCX0gZWxzZSB7CgkJCWh0bWwg Kz0gJzxpbWcgc3JjPSInICsgdGhpcy5nZXRVUkxCYXNlKGltYWdlblBsYXkpICsgJyIgYWx0PSInICsg dGV4dG9BbHQgKyAnIiB0aXRsZT0iJyArIHRleHRvQWx0ICsgJyIgc3R5bGU9Im1hcmdpbjowIGF1dG87 IHRleHQtYWxpZ246Y2VudGVyOyBib3JkZXI6IDA7IG1hcmdpbi10b3A6ICcgKyAoKGFsdG8gLSB0YW1J Y29ub1sxXSkgLyAyKSArICdweDsiIC8+JzsKCQl9CgkJaHRtbCArPSAnPC9kaXY+PC9kaXY+JzsKCQkK CQljb250ZW5lZG9yLmlubmVySFRNTCA9IGh0bWw7CgkJY29udGVuZWRvci5maXJzdENoaWxkLmZpcnN0 Q2hpbGQub25jbGljayA9IGFjY2lvbjsKCX0sCgkKCS8vIFZlcnNpb24gY29uIGFuY2hvIDEwMCUgeSBh bHRvIHByb3BvcmNpb25hbAoJZ2V0SFRNTEltYWdlbk1hcmNhQWd1YUFsdG9Qcm9wb3JjaW9uYWw6IGZ1 bmN0aW9uKGFuY2hvLCBhbHRvLCB0YW1JY29ubywgaW1nUHJldmlhLCBjb250ZW5lZG9yLCBhY2Npb24s IGV4dGVuc2lvbikgewoJCWlmIChleHRlbnNpb24gPT0gJ21wMycpIHsKCQkJdmFyIHRleHRvQWx0ID0g J1B1bHNlIHBhcmEgZXNjdWNoYXIgZWwgYXVkaW8nOwoJCQl2YXIgaW1hZ2VuUGxheSA9ICdpbWFnZW5l cy9hdWRpby1wbGF5LnBuZyc7CgkJfQoJCWVsc2UgewoJCQl2YXIgdGV4dG9BbHQgPSAnUHVsc2UgcGFy YSB2ZXIgZWwgdmlkZW8nOwoJCQl2YXIgaW1hZ2VuUGxheSA9ICdpbWFnZW5lcy9wbGF5LnBuZyc7CgkJ fQoJCQoJCS8vIFZlcnNpb24gY29uIG1hcmNhIGRlIGFndWEgZSBpbWFnZW4gb2N1cGEgdG9kbyBlbCBh bmNobyB5IGFsdG8gcHJvcG9yY2lvbmFsCgkJdmFyIGh0bWwgPSAnPGRpdiBzdHlsZT0idGV4dC1hbGln bjogY2VudGVyOyBtYXJnaW46MCBhdXRvIj48ZGl2IHN0eWxlPSJtYXJnaW46MCBhdXRvOyBiYWNrZ3Jv dW5kLWNvbG9yOiAnICsgZ2V0Q29sb3JGb25kbygpICsgJzsgY3Vyc29yOiBwb2ludGVyOyB3aWR0aDog JyArIGFuY2hvICsgJ3B4OyI+JzsKCQlpZiAoaW1nUHJldmlhICYmIChpbWdQcmV2aWEud2lkdGggKyBp bWdQcmV2aWEuaGVpZ2h0KSA+IDApIHsKCQkJaHRtbCArPSAnPGltZyBzcmM9IicgKyBpbWdQcmV2aWEu c3JjICsgJyIgYWx0PSInICsgdGV4dG9BbHQgKyAnIiB0aXRsZT0iJyArIHRleHRvQWx0ICsgJyIgc3R5 bGU9Im1hcmdpbjowIGF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBib3JkZXI6IDAgIiAvPic7CgkJfSBl bHNlIHsKCQkJaHRtbCArPSAnPGltZyBzcmM9IicgKyB0aGlzLmdldFVSTEJhc2UoaW1hZ2VuUGxheSkg KyAnIiBhbHQ9IicgKyB0ZXh0b0FsdCArICciIHRpdGxlPSInICsgdGV4dG9BbHQgKyAnIiBzdHlsZT0i bWFyZ2luOjAgYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlcjogMDsgbWFyZ2luLXRvcDogJyAr ICgoYWx0byAtIHRhbUljb25vWzFdKSAvIDIpICsgJ3B4OyIgLz4nOwoJCX0KCQlodG1sICs9ICc8L2Rp dj48L2Rpdj4nOwoJCQoJCWNvbnRlbmVkb3IuaW5uZXJIVE1MID0gaHRtbDsKCQljb250ZW5lZG9yLmZp cnN0Q2hpbGQuZmlyc3RDaGlsZC5vbmNsaWNrID0gYWNjaW9uOwoJfSwKCQoJLyoqCgkgKiBPYnRpZW5l IGxhIFVSTCBjb21wbGV0YSBwYXJhIHVuIHJlY3Vyc28sIHNlZ/puIGVsIHBvcnRhbCBlc3BlY2lmaWNh ZG8KCSAqLwoJZ2V0VVJMQmFzZTogZnVuY3Rpb24odXJsKSB7CgkJaWYgKHRoaXMucG9ydGFsICYmIHRo aXMuSU5GT19QT1JUQUxFU1t0aGlzLnBvcnRhbF0pIHsKCQkJaWYgKHRoaXMuSU5GT19QT1JUQUxFU1t0 aGlzLnBvcnRhbF0uYmFzZUNvbmZpZykgewoJCQkJLy8gc2kgZWwgcG9ydGFsIHRpZW5lIHVuIGJhc2VD b25maWcgZXNwZWNpZmljbywgbG8gdXNvCgkJCQlyZXR1cm4gdGhpcy5JTkZPX1BPUlRBTEVTW3RoaXMu cG9ydGFsXS5kb21pbmlvICsgdGhpcy5JTkZPX1BPUlRBTEVTW3RoaXMucG9ydGFsXS5iYXNlQ29uZmln ICsgdXJsOwoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIHRoaXMuSU5GT19QT1JUQUxFU1t0aGlzLnBvcnRh bF0uZG9taW5pbyArIHRoaXMuQkFTRV9DT05GSUcgKyB1cmw7CgkJCX0KCQl9IGVsc2UgewoJCQlyZXR1 cm4gdGhpcy5CQVNFX0NPTkZJRyArIHVybDsKCQl9Cgl9LAoJCgkvKioKCSAqIENvbWJpZXJ0ZSBVUkwn cyByZWxhdGl2YXMgYWwgc2Vydmlkb3IgZW4gVVJMJ3MgYWJzb2x1dGFzLiAgVXRpbGl6YWRvIHBhcmEg ZWwgcmVzaXplcgoJICovCglnZXRGdWxsVVJMOiBmdW5jdGlvbihzcmMpIHsKCQlpZiAoc3JjLmluZGV4 T2YoIi8vIikgPT0gLTEgJiYgIShzcmMuY2hhckF0KDApID09ICIvIikpIHsKCQkJLy8gbGEgcnV0YSBl cyByZWxhdGl2YSBhIGxhIHBhZ2luYQoJCQkvLyBzcmMgPSAibml2ZWwyL2ltYWdlbi5wbmciCgkJCXZh ciBydXRhID0gbG9jYXRpb24uaHJlZi5zdWJzdHJpbmcoMCwgbG9jYXRpb24uaHJlZi5sYXN0SW5kZXhP ZigiLyIpICsgMSk7CgkJCXNyYyA9IHJ1dGEgKyBzcmM7CgkJfSBlbHNlIGlmIChzcmMuY2hhckF0KDAp ID09ICIvIikgewoJCQkvLyBsYSBydXRhIGRlIGxhIGltYWdlbiBlcyByZWxhdGl2YSBhbCBzZXJ2aWRv ciwgY29uY2F0ZW5hbW9zIGVsIHNlcnZpZG9yIGFjdHVhbAoJCQkvLyBzcmMgPSAiL2NhcnBldGEvaW1h Z2VuLnBuZyIKCQkJc3JjID0gbG9jYXRpb24ucHJvdG9jb2wgKyAiLy8iICsgbG9jYXRpb24uaG9zdCAr IHNyYzsKCQl9CgkJcmV0dXJuIHNyYzsKCX0sCgkKCS8qKgoJICogRGV2dWVsdmUgbGEgVVJMIHBhcmEg cGVkaXIgYWwgcmVzaXplciBsYSBudWV2YSBpbWFnZW4KCSAqLwoJZ2V0VVJMUmVzaXplcjogZnVuY3Rp b24oc3JjLCBhbmNobywgYWx0bywgbWFyY2FBZ3VhKSB7CgkJdmFyIHJlc3VsdCA9IHRoaXMuZ2V0RnVs bFVSTChzcmMpOwoJCQoJCWlmICh0aGlzLnBvcnRhbCkgewoJCQl2YXIgbWVkaW8gPSAiIjsKCQkJdmFy IG1lZGlvID0gdGhpcy5JTkZPX1BPUlRBTEVTW3RoaXMucG9ydGFsXS5yZXNpemVyOwoJCQkKCQkJaWYg KCFtZWRpbykgewoJCQkJbWVkaW8gPSB0aGlzLnBvcnRhbCArICIuZXMiOwoJCQl9CgkJCQoJCQlpZiAo IWlzRGVzYXJyb2xsb0FCQygpKSB7CgkJCQlpZiAobWFyY2FBZ3VhKSB7CgkJCQkJcmVzdWx0ID0gImh0 dHA6Ly9mb3RvLWNhY2hlLiIgKyBtZWRpbyArICIvcmVzaXplci9yZXNpemVyLnBocD9pbWFnZW49IiAr IHJlc3VsdCArICImbnVldm9hbmNobz0iICsgYW5jaG8gKyAiJm51ZXZvYWx0bz0iICsgYWx0byArICIm Y29weXJpZ2h0PWZhbHNlJmVuY3J5cHQ9ZmFsc2UmbWFyY2FhZ3VhPW1hcmNhc2FndWEvIiArIG1hcmNh QWd1YSArICImcG9zbWFyY2E9QyZ0cmFuc3BhcmVuY2lhPTg1IjsKCQkJCX0gZWxzZSB7CgkJCQkJcmVz dWx0ID0gImh0dHA6Ly9mb3RvLWNhY2hlLiIgKyBtZWRpbyArICIvcmVzaXplci9yZXNpemVyLnBocD9p bWFnZW49IiArIHJlc3VsdCArICImbnVldm9hbmNobz0iICsgYW5jaG8gKyAiJm51ZXZvYWx0bz0iICsg YWx0byArICImY29weXJpZ2h0PWNvbkNvcHlyaWdodCZlbmNyeXB0PWZhbHNlIjsKCQkJCX0KCQkJfQoJ CX0KCQkKCQlyZXR1cm4gcmVzdWx0OwoJfQp9OwoKLyoqCiAqIEluY2x1aW1vcyBsYXMgcHJvcGllZGFk ZXMgZXN0YXRpY2FzIGVuIGVsIHByb3RvdGlwbwogKi8KKGZ1bmN0aW9uKCkgewoJdmFyIHByb3RvdGlw byA9IFBsYXllcldlYlRWLnByb3RvdHlwZTsKCWZvciAodmFyIHByb3AgaW4gUGxheWVyV2ViVFYpIHsK CQlpZiAocHJvcCAhPSAicHJvdG90eXBlIikgewoJCQlwcm90b3RpcG9bcHJvcF0gPSBQbGF5ZXJXZWJU Vltwcm9wXTsKCQl9Cgl9Cn0pKCk7Cg== ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="secure-uk.imrworldwide.com/v53.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: Ly8gTmV0cmF0aW5ncyBTaXRlQ2Vuc3VzIHY1My5qcwovLyBDT1BZUklHSFQgMjAwNyBOaWVsc2VuLy9O ZXRyYXRpbmdzCgpmdW5jdGlvbiByYW5kb20oKQp7CiAgICByYW5kb20uc2VlZCA9IChyYW5kb20uc2Vl ZCpyYW5kb20uYSArIHJhbmRvbS5jKSAlIHJhbmRvbS5tOwogICAgcmV0dXJuIHJhbmRvbS5zZWVkIC8g cmFuZG9tLm07Cn0KcmFuZG9tLm09NzE0MDI1OwpyYW5kb20uYT00MDk2OwpyYW5kb20uYz0xNTA4ODk7 CnJhbmRvbS5zZWVkID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSVyYW5kb20ubTsKCmZ1bmN0aW9uIF9y c0VIKCl7fQp3aW5kb3cub25lcnJvcj1fcnNFSDsKCnZhciBfcnNMUD1sb2NhdGlvbi5wcm90b2NvbC5p bmRleE9mKCdodHRwcycpPi0xPydodHRwczonOidodHRwOic7CnZhciBfcnNORD1fcnNMUCtfcnNETjsK dmFyIF9yc1JEPShuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7CmlmICh0eXBlb2YoX3JzQ0MpPT0idW5kZWZp bmVkIikge3ZhciBfcnNDQz0xO30KaWYgKHR5cGVvZihfcnNEVCk9PSJ1bmRlZmluZWQiKSB7dmFyIF9y c0RUPTA7fQppZiAodHlwZW9mKF9yc1NFKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzU0U9MDt9CmlmICh0 eXBlb2YoX3JzU1YpPT0idW5kZWZpbmVkIikge3ZhciBfcnNTVj0iIjt9CmlmICh0eXBlb2YoX3JzU00p PT0idW5kZWZpbmVkIikge3ZhciBfcnNTTT0wO30KaWYgKHR5cGVvZihfcnNTUyk9PSJ1bmRlZmluZWQi KSB7dmFyIF9yc1NTPTE7fQppZiAodHlwZW9mKF9yc1VUKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzVVQ9 MDt9CmlmICh0eXBlb2YoX3JzTVApPT0idW5kZWZpbmVkIikge3ZhciBfcnNNUD0xO30KaWYgKHR5cGVv ZihfcnNJUCk9PSJ1bmRlZmluZWQiKSB7dmFyIF9yc0lQPTA7fQppZiAodHlwZW9mKF9yc0NHKT09InVu ZGVmaW5lZCIpIHt2YXIgX3JzQ0c9MDt9CmlmICh0eXBlb2YoX3JzVEMpPT0idW5kZWZpbmVkIikge3Zh ciBfcnNUQz01MDA7fQppZiAodHlwZW9mKF9yc1NJKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzU0k9ZXNj YXBlKHdpbmRvdy5sb2NhdGlvbik7fQppZiAodHlwZW9mKF9yc0NMKT09InVuZGVmaW5lZCIpIHt2YXIg X3JzQ0w9MDt9CmlmICh0eXBlb2YoX3JzQ1UpPT0idW5kZWZpbmVkIikge3ZhciBfcnNDVT13aW5kb3cu bG9jYXRpb247fQppZiAodHlwZW9mKF9yc1BMZmwpPT0idW5kZWZpbmVkIikge3ZhciBfcnNQTGZsPTE7 IH0KaWYgKHR5cGVvZihfcnNQTHF0KT09InVuZGVmaW5lZCIpIHt2YXIgX3JzUExxdD0wOyB9CmlmICh0 eXBlb2YoX3JzUExyZSk9PSJ1bmRlZmluZWQiKSB7dmFyIF9yc1BMcmU9MDsgfQppZiAodHlwZW9mKF9y c1BMd20pPT0idW5kZWZpbmVkIikge3ZhciBfcnNQTHdtPTA7IH0KaWYgKHR5cGVvZihfcnNQTGpqKT09 InVuZGVmaW5lZCIpIHt2YXIgX3JzUExqaj0wOyB9CmlmICh0eXBlb2YoX3JzUExhYyk9PSJ1bmRlZmlu ZWQiKSB7dmFyIF9yc1BMYWM9MDsgfQppZiAodHlwZW9mKF9yc0MwKT09InVuZGVmaW5lZCIpIHt2YXIg X3JzQzA7fQppZiAodHlwZW9mKF9yc0MxKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzE7fQppZiAodHlw ZW9mKF9yc0MyKT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzI7fQppZiAodHlwZW9mKF9yc0MzKT09InVu ZGVmaW5lZCIpIHt2YXIgX3JzQzM7fQppZiAodHlwZW9mKF9yc0M0KT09InVuZGVmaW5lZCIpIHt2YXIg X3JzQzQ7fQppZiAodHlwZW9mKF9yc0M1KT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzU7fQppZiAodHlw ZW9mKF9yc0M2KT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzY7fQppZiAodHlwZW9mKF9yc0M3KT09InVu ZGVmaW5lZCIpIHt2YXIgX3JzQzc7fQppZiAodHlwZW9mKF9yc0M4KT09InVuZGVmaW5lZCIpIHt2YXIg X3JzQzg7fQppZiAodHlwZW9mKF9yc0M5KT09InVuZGVmaW5lZCIpIHt2YXIgX3JzQzk7fQoKZnVuY3Rp b24gX3JzUGF1c2UoX3JzTWlsbGlzKSB7Cgl2YXIgX3JzRGF0ZSA9IG5ldyBEYXRlKCk7Cgl2YXIgX3Jz Q3VyckRhdGU7CgkKCWRvIHsgCgkJX3JzQ3VyckRhdGUgPSBuZXcgRGF0ZSgpOyAKCX0gd2hpbGUoX3Jz Q3VyckRhdGUgLSBfcnNEYXRlIDwgX3JzTWlsbGlzKTsKfSAKCmZ1bmN0aW9uIF9yc1JlY29yZEZhY3Rv cnkoX3JzQ2xpY2tVcmwsIF9yc05ld0NHKSB7Cgl2YXIgX3JzU3JjID0gX3JzTkQgKyAnY2dpLWJpbi9t P3JuZD0nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCV9yc1NyYyArPSAnJmNpPScgKyBfcnNDSTsK CV9yc1NyYyArPSAnJmNnPScgKyBlc2NhcGUoX3JzTmV3Q0cpOwoJX3JzU3JjICs9ICcmY2M9MCc7Cglf cnNTcmMgKz0gJyZzaT0nICsgX3JzQ0kgKyAnLWN0Z3ctJyArIGVzY2FwZShfcnNDbGlja1VybCk7Cglf cnNTcmMgKz0gJyZycD0nICsgZXNjYXBlKHdpbmRvdy5sb2NhdGlvbik7CglpZihfcnNTcmMubGVuZ3Ro ID4gMjA0OCkJewoJCV9yc1NyYyA9IF9yc1NyYy5zdWJzdHJpbmcoMCwgMjA0OCk7Cgl9CglyZXR1cm4g X3JzU3JjOwp9CgpmdW5jdGlvbiBfcnNFdmVudChfcnNDbGlja1VybCkgewoJdmFyIF9yc05ld0NHID0g X3JzRXZlbnQuYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBfcnNFdmVudC5hcmd1bWVudHNbMV0gOiBfcnND RzsKCShuZXcgSW1hZ2UoMSwxKSkuc3JjID0gX3JzUmVjb3JkRmFjdG9yeShfcnNDbGlja1VybCwgX3Jz TmV3Q0cpOwp9CgpmdW5jdGlvbiBfcnNMaW5rVHJhY2soX3JzQ2xpY2tVcmwpIHsKCiAgICAgICAgdmFy IF9yc05ld0NHID0gX3JzTGlua1RyYWNrLmFyZ3VtZW50cy5sZW5ndGggPiAxID8gX3JzTGlua1RyYWNr LmFyZ3VtZW50c1sxXSA6IF9yc0NHOwogICAgICAgIHZhciBfcnNDbGlja0ltZyA9IG5ldyBJbWFnZSgx LDEpOwogICAgICAgIF9yc0NsaWNrSW1nLnNyYyA9IF9yc1JlY29yZEZhY3RvcnkoX3JzQ2xpY2tVcmws IF9yc05ld0NHKTsKICAgICAgICBfcnNQYXVzZShfcnNUQyk7Cn0KCnZhciBfcnNDbGlja0RzdDsKZnVu Y3Rpb24gX3JzQ2xpY2soX3JzQ2xpY2tVcmwpIHsKICAgICAgICB2YXIgX3JzTmV3Q0cgPSBfcnNDbGlj ay5hcmd1bWVudHMubGVuZ3RoID4gMSA/IF9yc0NsaWNrLmFyZ3VtZW50c1sxXSA6IF9yc0NHOwogICAg ICAgIHZhciBfcnNDbGlja0ltZyA9IG5ldyBJbWFnZSgxLDEpOwogICAgICAgIF9yc0NsaWNrSW1nLnNy YyA9IF9yc1JlY29yZEZhY3RvcnkoX3JzQ2xpY2tVcmwsIF9yc05ld0NHKTsKICAgICAgICBfcnNDbGlj a0RzdCA9IF9yc0NsaWNrVXJsOwogICAgICAgIHNldFRpbWVvdXQoIndpbmRvdy5sb2NhdGlvbiA9IF9y c0NsaWNrRHN0IiwgX3JzVEMpOwp9CgpmdW5jdGlvbiBfcnNWZXJJbmZvKHN0ciwgY3QpIHsKCXZhciBw ID0gMDsKICAgICAgICB2YXIgc3AgPSAwOwoJZm9yKHZhciBpPTA7aTxjdCYmcD49MDtpKyspIHsgc3A9 cCsxOyBwID0gc3RyLmluZGV4T2YoJy4nLCBzcCk7IH0KCWlmKHA+MCkgewogICAgICAgICAgICAgICAg dmFyIHYgPSBzdHIuc3Vic3RyaW5nKHNwLCBwKS5tYXRjaCgvXGQrJC8pOwogICAgICAgICAgICAgICAg cmV0dXJuIHYgPyB2IDogMDsKCX0gZWxzZSB7CgkJcmV0dXJuIDA7Cgl9Cn0KCmZ1bmN0aW9uIF9yc1Bs dWdpbkRldGVjdCgpIHsKICAgICAgICB2YXIgX3JzUGx1Z2lucyA9IFtdOwoJdmFyIF9yc01UID0gbmF2 aWdhdG9yLm1pbWVUeXBlczsgLy8gLTEgaW5kaWNhdGVzIHVua25vd24KCWlmKF9yc01UICYmIF9yc01U Lmxlbmd0aCA+IDApIHsKCQl2YXIgazsKCQlpZihfcnNQTGZsPT0xKSB7CgkJICAgICAgICBfcnNQbHVn aW5zWydGTCddPS0xOwoJCQlrID0gJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJzsKCQkJaWYo X3JzTVRba10gJiYgX3JzTVRba10uZW5hYmxlZFBsdWdpbikgewoJCQkJX3JzUGx1Z2luc1snRkwnXSA9 IF9yc1ZlckluZm8oX3JzTVRba10uZW5hYmxlZFBsdWdpbi5kZXNjcmlwdGlvbiwgMSk7CgkJCX0KCQl9 CgkJaWYoX3JzUExxdD09MSkgewoJCQlfcnNQbHVnaW5zWydRVCddPS0xOwoJCQlrID0gJ3ZpZGVvL3F1 aWNrdGltZSc7CgkJCWlmKF9yc01UW2tdICYmIF9yc01UW2tdLmVuYWJsZWRQbHVnaW4pIHsKCQkJCV9y c1BsdWdpbnNbJ1FUJ10gPSBfcnNWZXJJbmZvKF9yc01UW2tdLmVuYWJsZWRQbHVnaW4ubmFtZSwgMSk7 CgkJCX0KCQl9CgkJaWYoX3JzUExyZT09MSkgewoJCQlfcnNQbHVnaW5zWydSRSddPS0xOwoJCQlrID0g J2F1ZGlvL3gtcG4tcmVhbGF1ZGlvLXBsdWdpbic7CgkJCWlmKF9yc01UW2tdICYmIF9yc01UW2tdLmVu YWJsZWRQbHVnaW4pIHsKCQkJCV9yc1BsdWdpbnNbJ1JFJ10gPSAwOwoJCQl9CgkJfQoJCWlmKF9yc1BM d209PTEpIHsKCQkJX3JzUGx1Z2luc1snUVQnXT0tMTsKCQkJdmFyIHJ0ID0gdHJ1ZTsKCQkJaWYod2lu ZG93LkdlY2tvQWN0aXZlWE9iamVjdCkgewoJCQkJdHJ5IHsKCQkJCQl2YXIgcCA9IG5ldyBHZWNrb0Fj dGl2ZVhPYmplY3QoIldNUGxheWVyLk9DWC43Iik7CgkJCQkJX3JzUGx1Z2luc1snV00nXSA9IF9yc1Zl ckluZm8ocC52ZXJzaW9uSW5mbywgMSk7CgkJCQkJcnQgPSBmYWxzZTsKCQkJCX0gY2F0Y2goZSkge30K CQkJfSAKCQkJaWYocnQpIHsKCQkJCWsgPSAnYXBwbGljYXRpb24veC1tcGxheWVyMic7CgkJCQlpZihf cnNNVFtrXSAmJiBfcnNNVFtrXS5lbmFibGVkUGx1Z2luKSB7CgkJCQkJX3JzUGx1Z2luc1snV00nXSA9 IDA7CgkJCQl9CgkJCX0KCQkJCgkJfQoJCWlmKF9yc1BMamo9PTEpIHsKCQkJX3JzUGx1Z2luc1snSkon XT0tMTsKCQkJayA9ICdhcHBsaWNhdGlvbi94LWphdmEtYXBwbGV0JzsKCQkJaWYoX3JzTVRba10gJiYg X3JzTVRba10uZW5hYmxlZFBsdWdpbikgewoJCQkJdmFyIHYgPSBfcnNWZXJJbmZvKF9yc01UW2tdLmVu YWJsZWRQbHVnaW4uZGVzY3JpcHRpb24sIDIpOwoJCQkJX3JzUGx1Z2luc1snSkonXSA9ICh2ID09IDAg PyB2IDogJzEuJyt2KTsKCQkJfQoJCX0KCQlpZihfcnNQTGFjPT0xKSB7CgkJCV9yc1BsdWdpbnNbJ0FD J109LTE7CgkJCWsgPSAnYXBwbGljYXRpb24vcGRmJzsKCQkJaWYoX3JzTVRba10gJiYgX3JzTVRba10u ZW5hYmxlZFBsdWdpbikgewoJCQkJX3JzUGx1Z2luc1snQUMnXSA9IDA7CgkJCX0KCQl9Cgl9IGVsc2Ug aWYod2luZG93LkFjdGl2ZVhPYmplY3QpIHsKCQl2YXIgX3JzUDsKCgkJaWYoX3JzUExmbD09MSkgewoJ CQlfcnNQbHVnaW5zWydGTCddPS0xOwoJCQlmb3IodmFyIGk9MTQ7aT4wO2ktLSkgewoJCQkJdHJ5IHsK CQkJCQlfcnNQID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1Nob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNo LicraSk7CgkJCQkJaWYoX3JzUCAhPSBudWxsKSB7IF9yc1BsdWdpbnNbJ0ZMJ10gPSBpOyBicmVhazsg fQoJCQkJfSBjYXRjaChlKSB7fQoJCQl9CgkJfQoJCWlmKF9yc1BMcXQ9PTEpIHsKCQkJX3JzUGx1Z2lu c1snUVQnXT0tMTsKCQkJdHJ5IHsKCQkJCV9yc1AgPSBuZXcgQWN0aXZlWE9iamVjdCgnUXVpY2tUaW1l Q2hlY2tPYmplY3QuUXVpY2tUaW1lQ2hlY2suMScpOwoJCQkJaWYoX3JzUCAhPSBudWxsKSB7IF9yc1Bs dWdpbnNbJ1FUJ10gPSBwYXJzZUludChfcnNQLlF1aWNrVGltZVZlcnNpb24udG9TdHJpbmcoMTYpLnN1 YnN0cmluZygwLDEpKTsgfQoJCQl9IGNhdGNoKGUpIHt9CgkJfQoJCWlmKF9yc1BMcmU9PTEpIHsKCQkJ X3JzUGx1Z2luc1snUkUnXT0tMTsKCQkJdHJ5IHsKCQkJCV9yc1AgPSBuZXcgQWN0aXZlWE9iamVjdCgn cm1vY3guUmVhbFBsYXllciBHMiBDb250cm9sLjEnKTsKCQkJCWlmKF9yc1AgIT0gbnVsbCkgeyBfcnNQ bHVnaW5zWydSRSddID0gMDsgfQoJCQl9IGNhdGNoKGUpIHt9CgkJfQoJCWlmKF9yc1BMd209PTEpIHsK CQkJX3JzUGx1Z2luc1snV00nXT0tMTsKCQkJdHJ5IHsKCQkJCV9yc1AgPSBuZXcgQWN0aXZlWE9iamVj dCgnV01QbGF5ZXIuT0NYLjcnKTsKCQkJCWlmKF9yc1AgIT0gbnVsbCkgeyBfcnNQbHVnaW5zWydXTSdd ID0gX3JzVmVySW5mbyhfcnNQLnZlcnNpb25JbmZvLCAxKTsgfQoJCQl9IGNhdGNoKGUpIHt9CgkJfQoJ CWlmKF9yc1BMamo9PTEpIHsKCQkJX3JzUGx1Z2luc1snSkonXT0tMTsKCQkJdHJ5IHsKCQkJCV9yc1Ag PSBuZXcgQWN0aXZlWE9iamVjdCgnSmF2YVBsdWdpbicpOwoJCQkJaWYoX3JzUCAhPSBudWxsKSB7IF9y c1BsdWdpbnNbJ0pKJ10gPSAwOyB9CgkJCX0gY2F0Y2goZSkge30KCQl9CgkJaWYoX3JzUExhYz09MSkg ewoJCQlfcnNQbHVnaW5zWydBQyddPS0xOwoJCQl2YXIgcnQgPSB0cnVlOwoJCQl0cnkgewoJCQkJX3Jz UCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdBY3JvUERGLlBERi4xJyk7CgkJCQlpZihfcnNQICE9IG51bGwp IHsgX3JzUGx1Z2luc1snQUMnXSA9IF9yc1ZlckluZm8oX3JzUC5HZXRWZXJzaW9ucygpLCAxKTsgcnQg PSBmYWxzZTsgfQoJCQl9IGNhdGNoKGUpIHt9CgkJCWlmKHJ0KSB7CgkJCQlmb3IodmFyIGk9NjtpPjI7 aS0tKSB7CgkJCQkJdHJ5IHsKCQkJCQkJX3JzUCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdQREYuUGRmQ3Ry bC4nK2kpOwoJCQkJCQlpZihfcnNQICE9IG51bGwpIHsgX3JzUGx1Z2luc1snQUMnXSA9IGk7IGJyZWFr OyB9CgkJCQkJfSBjYXRjaChlKSB7fQoJCQkJfQoJCQl9CgkJfQoJfQoJcmV0dXJuIF9yc1BsdWdpbnM7 Cn0KCmZ1bmN0aW9uIHJzQ2koKQp7Cgl2YXIgX3JzVUE9bmF2aWdhdG9yLmFwcE5hbWUrIiAiK25hdmln YXRvci5hcHBWZXJzaW9uOwoJdmFyIF9yc1JVQT1uYXZpZ2F0b3IudXNlckFnZW50OwoJdmFyIF9yc1dT PXdpbmRvdy5zY3JlZW47Cgl2YXIgX3JzQlY9bmF2aWdhdG9yLmFwcFZlcnNpb24uc3Vic3RyaW5nKDAs IDEpOwoJdmFyIF9yc05OPShfcnNVQS5pbmRleE9mKCdOZXRzY2FwZScpKTsKCXZhciBfcnNNQz0oX3Jz VUEuaW5kZXhPZignTWFjJykpOwoJdmFyIF9yc0lFPShfcnNVQS5pbmRleE9mKCdNU0lFJykpOwoJdmFy IF9yc09QPShfcnNSVUEuaW5kZXhPZignT3BlcmEnKSk7Cgl2YXIgX3JzSUVWPShwYXJzZUludChfcnNV QS5zdWJzdHIoX3JzSUUrNSkpKTsKCXZhciBfcnNSUD1lc2NhcGUoZG9jdW1lbnQucmVmZXJyZXIpOwoJ dmFyIF9yc1NSOwoJdmFyIF9yc0NEOwoJdmFyIF9yc0xHOwoJdmFyIF9yc0pFOwoJdmFyIF9yc0NLOwoJ dmFyIF9yc1RaOwoJdmFyIF9yc0NUOwoJdmFyIF9yc0hQOwoJdmFyIF9yc1RMOwoJdmFyIF9yc1NXOwoJ dmFyIF9yc1NIOwoJdmFyIF9yc0ZMOwoJdmFyIF9yc1FUOwoJdmFyIF9yc1JFOwoJdmFyIF9yc1dNOwoJ dmFyIF9yc0pKOwoJdmFyIF9yc0FDOwoJaWYgKF9yc01QPT0wKSB7cmV0dXJuO30KICAgICAgICBfcnNK RT0obmF2aWdhdG9yLmphdmFFbmFibGVkKCk9PXRydWUpPyJ5IjoibiI7CiAgICAgICAgaWYgKF9yc0RU PT0xKSB7CgkJX3JzVEw9ZXNjYXBlKGRvY3VtZW50LnRpdGxlKTsKCX0KCWlmKChfcnNJRT4wKXx8KChf cnNOTiE9LTEpJiYoX3JzQlYgPj01KSkpIHsKCQlfcnNDSz0obmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQ9 PXRydWUpPyJ5IjoibiI7Cgl9CglpZigoX3JzSUU+PTApJiYoX3JzSUVWPj01KSYmKF9yc01DPT0tMSkm JihfcnNPUD09LTEpKSB7CgkJZG9jdW1lbnQuYm9keS5hZGRCZWhhdmlvcigiI2RlZmF1bHQjY2xpZW50 Q2FwcyIpOwoJCV9yc0NUPWRvY3VtZW50LmJvZHkuY29ubmVjdGlvblR5cGU7CgkJZG9jdW1lbnQuYm9k eS5hZGRCZWhhdmlvcigiI2RlZmF1bHQjaG9tZVBhZ2UiKTsKCQlfcnNIUD0oZG9jdW1lbnQuYm9keS5p c0hvbWVQYWdlKGxvY2F0aW9uLmhyZWYpKT8ieSI6Im4iOwoJfQoJdmFyIF9yc0QgPSBuZXcgRGF0ZSgp OwoJX3JzVFogPSBfcnNELmdldFRpbWV6b25lT2Zmc2V0KCkvLTYwOwoJaWYoKHR5cGVvZihfcnNXUykh PSJ1bmRlZmluZWQiKSYmKF9yc1dTIT1udWxsKSkgewoJCV9yc1NXPV9yc1dTLndpZHRoOwoJCV9yc1NI PV9yc1dTLmhlaWdodDsKCQlfcnNDRD1fcnNXUy5jb2xvckRlcHRoOwoJCV9yc1NSPV9yc1NXKyd4Jytf cnNTSDsKCQlpZigoX3JzTk4hPS0xKSYmKF9yc0JWID49NCkpIHsKCQkJX3JzQ0Q9X3JzV1MucGl4ZWxE ZXB0aDsKCQl9Cgl9CglpZigoX3JzTk4hPS0xKSYmKF9yc0JWID49NCl8fChfcnNPUD49MCkpIHsKCQlf cnNMRz1uYXZpZ2F0b3IubGFuZ3VhZ2U7Cgl9CglpZigoX3JzSUUhPS0xKSYmKF9yc0JWID49NCkmJihf cnNPUD09LTEpKSB7CgkJX3JzTEc9bmF2aWdhdG9yLnVzZXJMYW5ndWFnZTsKCX0KCXZhciBfcnNQbHVn aW5zID0gX3JzUGx1Z2luRGV0ZWN0KCk7Cgl2YXIgX3JzUFI9IiI7CglfcnNQUj0nPGltZyBzcmM9Iic7 CglfcnNQUj1fcnNQUitfcnNORCsnY2dpLWJpbi9tP3JuZD0nKyhuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7 CglfcnNQUj1fcnNQUisnJmNpPScrX3JzQ0k7CglfcnNQUj1fcnNQUisnJmNnPScrZXNjYXBlKF9yc0NH KTsKCV9yc1BSPV9yc1BSKycmY2M9JytfcnNDQzsKCWlmIChfcnNTUiE9bnVsbCkge19yc1BSPV9yc1BS Kycmc3I9JytfcnNTUjt9CglpZiAoX3JzQ0QhPW51bGwpIHtfcnNQUj1fcnNQUisnJmNkPScrX3JzQ0Q7 fQoJaWYgKF9yc0xHIT1udWxsKSB7X3JzUFI9X3JzUFIrJyZsZz0nK19yc0xHO30KCWlmIChfcnNKRSE9 bnVsbCkge19yc1BSPV9yc1BSKycmamU9JytfcnNKRTt9CglpZiAoX3JzQ0shPW51bGwpIHtfcnNQUj1f cnNQUisnJmNrPScrX3JzQ0s7fQoJaWYgKF9yc1RaIT1udWxsKSB7X3JzUFI9X3JzUFIrJyZ0ej0nK19y c1RaO30KCWlmIChfcnNDVCE9bnVsbCkge19yc1BSPV9yc1BSKycmY3Q9JytfcnNDVDt9CglpZiAoX3Jz SFAhPW51bGwpIHtfcnNQUj1fcnNQUisnJmhwPScrX3JzSFA7fQoJaWYgKF9yc1RMIT1udWxsKSB7X3Jz UFI9X3JzUFIrJyZ0bD0nK19yc1RMO30KCWlmIChfcnNVVD09MSkgewoJICAgaWYgKF9yc0MwIT1udWxs KSB7X3JzUFI9X3JzUFIrJyZjMD0nK2VzY2FwZShfcnNDMCk7fQoJICAgaWYgKF9yc0MxIT1udWxsKSB7 X3JzUFI9X3JzUFIrJyZjMT0nK2VzY2FwZShfcnNDMSk7fQoJICAgaWYgKF9yc0MyIT1udWxsKSB7X3Jz UFI9X3JzUFIrJyZjMj0nK2VzY2FwZShfcnNDMik7fQoJICAgaWYgKF9yc0MzIT1udWxsKSB7X3JzUFI9 X3JzUFIrJyZjMz0nK2VzY2FwZShfcnNDMyk7fQoJICAgaWYgKF9yc0M0IT1udWxsKSB7X3JzUFI9X3Jz UFIrJyZjND0nK2VzY2FwZShfcnNDNCk7fQoJICAgaWYgKF9yc0M1IT1udWxsKSB7X3JzUFI9X3JzUFIr JyZjNT0nK2VzY2FwZShfcnNDNSk7fQoJICAgaWYgKF9yc0M2IT1udWxsKSB7X3JzUFI9X3JzUFIrJyZj Nj0nK2VzY2FwZShfcnNDNik7fQoJICAgaWYgKF9yc0M3IT1udWxsKSB7X3JzUFI9X3JzUFIrJyZjNz0n K2VzY2FwZShfcnNDNyk7fQoJICAgaWYgKF9yc0M4IT1udWxsKSB7X3JzUFI9X3JzUFIrJyZjOD0nK2Vz Y2FwZShfcnNDOCk7fQoJICAgaWYgKF9yc0M5IT1udWxsKSB7X3JzUFI9X3JzUFIrJyZjOT0nK2VzY2Fw ZShfcnNDOSk7fQoJfQoJaWYgKF9yc1BsdWdpbnNbJ0ZMJ10hPW51bGwpIHtfcnNQUj1fcnNQUisnJmZs PScrX3JzUGx1Z2luc1snRkwnXTt9CglpZiAoX3JzUGx1Z2luc1snUVQnXSE9bnVsbCkge19yc1BSPV9y c1BSKycmcXQ9JytfcnNQbHVnaW5zWydRVCddO30KCWlmIChfcnNQbHVnaW5zWydSRSddIT1udWxsKSB7 X3JzUFI9X3JzUFIrJyZyZT0nK19yc1BsdWdpbnNbJ1JFJ107fQoJaWYgKF9yc1BsdWdpbnNbJ1dNJ10h PW51bGwpIHtfcnNQUj1fcnNQUisnJndtPScrX3JzUGx1Z2luc1snV00nXTt9CglpZiAoX3JzUGx1Z2lu c1snSkonXSE9bnVsbCkge19yc1BSPV9yc1BSKycmamo9JytfcnNQbHVnaW5zWydKSiddO30KCWlmIChf cnNQbHVnaW5zWydBQyddIT1udWxsKSB7X3JzUFI9X3JzUFIrJyZhYz0nK19yc1BsdWdpbnNbJ0FDJ107 fQoJX3JzUFI9X3JzUFIrJyZzaT0nK19yc1NJOwoJX3JzUFI9X3JzUFIrJyZycD0nK19yc1JQOwoJaWYg KF9yc0lQPT0xKSB7X3JzUFI9X3JzUFIrJyIgc3R5bGU9InZpc2liaWxpdHk6aGlkZGVuO3Bvc2l0aW9u OmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7ei1pbmRleDotMSc7fQoJX3JzUFI9X3JzUFIrJyIgd2lk dGg9IjEiIGhlaWdodD0iMSIgYWx0PSIiLz4nOwoJZG9jdW1lbnQud3JpdGUoX3JzUFIpOwp9CgpmdW5j dGlvbiBfcnNDTFNlbmRJdChfcnNTcmMsIF9yc0Rlc3QsIF9yc1RhcmdldFR5cGUsIF9yc0NsaWNrTmFt ZSwgX3JzQ2xpY2tWYWx1ZSkgewoJdmFyIF9yc0NMRGF0YSA9IF9yc05EKydjZ2ktYmluL20/cm5kPScr KG5ldyBEYXRlKCkpLmdldFRpbWUoKTsKCV9yc0NMRGF0YSAgPSBfcnNDTERhdGErJyZjaT0nK19yc0NJ OwoJX3JzQ0xEYXRhICA9IF9yc0NMRGF0YSsnJmNnPScrZXNjYXBlKF9yc0NHKTsKCV9yc0NMRGF0YSAg PSBfcnNDTERhdGErJyZjYz0wJzsKCV9yc0NMRGF0YSA9IF9yc0NMRGF0YSsnJnNpPScrX3JzQ0krJy1j dHBvLScrZXNjYXBlKF9yc0Rlc3QpOwoJX3JzQ0xEYXRhID0gX3JzQ0xEYXRhKycmcnA9Jytlc2NhcGUo X3JzU3JjKTsKCV9yc0NMRGF0YSA9IF9yc0NMRGF0YSsnJnR0PScrZXNjYXBlKF9yc1RhcmdldFR5cGUp OwoJX3JzQ0xEYXRhID0gX3JzQ0xEYXRhKycmY249Jytlc2NhcGUoX3JzQ2xpY2tOYW1lKTsKCV9yc0NM RGF0YSA9IF9yc0NMRGF0YSsnJmN2PScrZXNjYXBlKF9yc0NsaWNrVmFsdWUpOwoJaWYoX3JzQ0xEYXRh Lmxlbmd0aCA+IDIwNDgpCXsKCQlfcnNDTERhdGEgPSBfcnNDTERhdGEuc3Vic3RyaW5nKDAsIDIwNDgp OwoJfQoJdmFyIF9yc1B4ID0gbmV3IEltYWdlKDEsMSk7CglfcnNQeC5zcmMgPSBfcnNDTERhdGE7Cglf cnNQYXVzZShfcnNUQyk7Cn0KZnVuY3Rpb24gX3JzQ0xTZW5kQUxpbmsoX3JzQUxpbmspIHsKCXZhciBf cnNOYW1lID0gX3JzQUxpbmsuaW5uZXJIVE1MLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignaW1nJykgPiAt MSA/ICdpbWFnZScgOiAndGV4dCc7CglfcnNDTFNlbmRJdChfcnNDVSwgX3JzQUxpbmsuaHJlZiwgX3Jz QUxpbmsudGFnTmFtZS50b0xvd2VyQ2FzZSgpLCBfcnNOYW1lLCBfcnNBTGluay5pbm5lckhUTUwpOwp9 CmZ1bmN0aW9uIF9yc0NMU2VuZEZvcm0oX3JzSW5wdXQpIHsKCWlmKF9yc0lucHV0LmZvcm0gPT0gdW5k ZWZpbmVkIHx8IF9yc0lucHV0LmZvcm0uYWN0aW9uID09IHVuZGVmaW5lZCkgewoJCXJldHVybjsKCX0K CiAgICAgICAgaWYgKF9yc0lucHV0LnR5cGUgPT0gJ2ltYWdlJykgewogICAgICAgICAgICAgICAgdmFy IF9yc1ZhbHVlID0gX3JzSW5wdXQuc3JjOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChfcnNJbnB1 dC50YWdOYW1lID09ICdCVVRUT04nKSB7CiAgICAgICAgICAgICAgICB2YXIgX3JzVmFsdWUgPSBfcnNJ bnB1dC5pbm5lckhUTUwucmVwbGFjZSgvXlxzK3xccyskL2csICcnKS5yZXBsYWNlKC9ccysvZywgJyAn KTsKICAgICAgICAgICAgICAgIGlmIChfcnNWYWx1ZSA9PSAiIikgX3JzVmFsdWUgPSBfcnNJbnB1dC52 YWx1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBfcnNWYWx1ZSA9IF9y c0lucHV0LnZhbHVlOwogICAgICAgIH0KCglfcnNDTFNlbmRJdChfcnNDVSwgX3JzSW5wdXQuZm9ybS5h Y3Rpb24sIF9yc0lucHV0LmZvcm0udGFnTmFtZS50b0xvd2VyQ2FzZSgpLCBfcnNJbnB1dC50eXBlLnRv TG93ZXJDYXNlKCksIF9yc1ZhbHVlKTsKfQpmdW5jdGlvbiBfcnNDTENhdGNoSXQoZSkgewoJdmFyIF9y c0N1cnIgPSBlID8gZS50YXJnZXQgOiB3aW5kb3cuZXZlbnQuc3JjRWxlbWVudDsKCWlmICgoX3JzQ3Vy ci50YWdOYW1lID09ICdJTlBVVCcgfHwgX3JzQ3Vyci50YWdOYW1lID09ICdCVVRUT04nKQoJCSYmIChf cnNDdXJyLnR5cGUgPT0gJ2ltYWdlJyB8fCBfcnNDdXJyLnR5cGUgPT0gJ3N1Ym1pdCcgfHwgX3JzQ3Vy ci50eXBlID09ICdidXR0b24nKSkgewoJCV9yc0NMU2VuZEZvcm0oX3JzQ3Vycik7Cgl9CgllbHNlCgl7 CgkJZG8gewoJCQlpZiAoKF9yc0N1cnIudGFnTmFtZSA9PSAnQScpICYmIChfcnNDdXJyLmhyZWYubGVu Z3RoID4gMCkpIHsKCQkJCV9yc0NMU2VuZEFMaW5rKF9yc0N1cnIpOwoJCQkJYnJlYWs7CgkJCX0KCQkJ X3JzQ3VyciA9IF9yc0N1cnIucGFyZW50Tm9kZTsKCQl9IHdoaWxlIChfcnNDdXJyICE9IG51bGwgJiYg X3JzQ3Vyci50YWdOYW1lICE9ICdCT0RZJykKCX0KfQoKZnVuY3Rpb24gX3JzQ0xSZWdpc3Rlckl0KCkg ewoJaWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKSB7CgkJcmV0dXJuOwoJfQoJdmFyIF9yc09sZCA9 IGRvY3VtZW50LmJvZHkub25jbGljazsKCWlmKF9yc09sZCkgewoJCWRvY3VtZW50LmJvZHkub25jbGlj ayA9IGZ1bmN0aW9uIChlKSB7CgkJCV9yc0NMQ2F0Y2hJdChlKTsKCQkJX3JzT2xkKGUpOwoJCX0KCX0K CWVsc2UgewoJCWRvY3VtZW50LmJvZHkub25jbGljayA9IF9yc0NMQ2F0Y2hJdDsKCX0KfQoKLy8gbWFp bgppZigoX3JzU0UpJiYocmFuZG9tKCkgPD0gX3JzU00pKSB7CiAgICAgICAgdmFyIF9yc0lNPSc8c2Ny JysnaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJytf cnNORCsnY2dpLWJpbi9qP2NpPScrX3JzQ0krJyZzcz0nK19yc1NTKycmY2M9JytfcnNDQysnJnJkPScr X3JzUkQrJyZzZT0nK19yc1NFKycmc3Y9JytfcnNTVisnIj48XC9zY3InKydpcHQ+JzsKICAgIGRvY3Vt ZW50LndyaXRlKF9yc0lNKTsKfQplbHNlIHsKICAgIHJzQ2koKTsKfQppZihfcnNDTD09MSkgewoJX3Jz Q0xSZWdpc3Rlckl0KCk7Cn0K ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/portada/zona-CAB/imagenes/videochat-cab.jpg" Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-ID: /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAALwAA/+4ADkFkb2JlAGTAAAAAAf/bAIQA CQYGBgcGCQcHCQ0JBwkNDwsJCQsPEg4ODw4OEhEODw4ODw4RERQVFxUUERsbHR0bGycmJiYnLCwsLCws LCwsLAEKCQkKCwoMCgoMDw0ODQ8TDg4ODhMVDg4QDg4VGxQRERERFBsYGhcXFxoYHh4bGx4eJiYkJiYs LCwsLCwsLCws/8AAEQgARgBQAwEiAAIRAQMRAf/EAHUAAAEEAwEAAAAAAAAAAAAAAAUAAwYHAQQIAgEB AAAAAAAAAAAAAAAAAAAAABAAAQMDAwEGBAMHBQAAAAAAAQIDBAARBSESBjFBUWEiEwdxkTJCgdEUsXKS 0iNDFaHBUmKiEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwC8aVKhubzMPEwHpsx0NRmElbji tAAKDakS22UkqIFqBy+RC5DIvbtNQPjvuUnl+Tlw0w3WWWgXI7wO5JaGg9YfYpXZ1o+UG9BtuZea6FJ9 Qt3Gik2Kh4jS1AxI9zI5K2JMDIoBJDS0qjuEd247k3omyjaoBWtzorvPj40UioGlACge46o8pMHkMN3E TVaJ9bVpX7jo8pqbwsqzISkpUFBQuCDcEVoyYMSZHS1LYbkNJWlSUOoC0g37lV7GAiMNH/HNiMoapaQS Gye7b9v4UBtKgoXFZoRjcgVEtOaLSbKB6gjsosDcXoPLq9iCaoP355W49JY45HXZtIEiXY9T/bQf2/Kr yyTxbZUR1AJqmJ3tfJ5BzHJ5XMPGPiy9sjtt2LzzaEhIseiE0G/7W8fTi+JtSXU2lZM/qXCeobHlaT8t alTje009FZQyyiGhO1MdCW2k97aRtSfzpuSoJFlEC3fQMypkSBAkzphtFjNKeePbZI0CfEnQVUUn305W SRCYixUfafT9RdvErNSD3jzD0Xj8XGshYTPdKn3QCEbGvpb3d5Ub2qmQCTYUFmYX3q5smey/kH0TISFg vRPTSjcnt2qSAQR2V0NhsnCy+Nj5KCv1IslAW2rtF+qVdxB0NchQGSLVensPKyCo2UhqO7HsqbcaBv5X Vg7wnwIF6Cc5xkxZjc1GiXfK5+8Oh/EUVgPh1oGmc816mKeuNUALT8Umh2Al7kBJNBvZm/oqt3Gg51Uo +N6PZRvcyTUdSbad3lP4dP8ASg8ywClux2rDiQFDQgHr86YkIbSryjt69TTspQDe9RAQhSVKUogAa9pN NP8AW3bQDc1g4WfxL+KnD+i8LtuWuWnR9Dqfh294qhp/HJuHyb+NnN7JMdW1XcoHVLiD2pUNRXRLWiqZ yHF8ByCQy/k4vrLjpLTTiVFCim97KKeoB6UFCMMpbFzpXRntbx5WD4sz66dsucf1T4PUbx5En4JrOJ4V xCCpKmMSxvHRbgLh/wDd6k0c7LtH7dUnvT2fKgbzKgnFyienpkfPSgHHUXN6YzXK2J70jGY8pdjtWbfk pN0l29y2g9CEgamiHHmSEA0B99G9siotkGlR3yf7autS2h+RgpfQdNaDnL3ayXI/8+vGyn1JxCkpdhMt +VtaD9y7fWoGtHj3uFybEIQx6wmw0aCPKuqw7kODzCrZ5nxGLmYX6SYClTRKoslIutpR67b9UntTVSZH hGexizdgymR0fjgquP8As39SaCyOK89iZ+Z+gVGVDlFBWkKWFpXt+pKDob2qbxSBYVQmCw2ffnsrxkd1 MplYWh4pKEtqB6qUq2nfV5RFvpbQZBQHdo9Qovt3W822/ZQSCOrQVWHujyzI5LOx+IcefWks3OVcZUQC pf8AYWpPYkaq+VSzM5F5WKkxsfL/AE+QcTtZkIG4tkkbj3X29KjfHuLxsY2URkFb7p3SJLh3OOKOpKlH xoN3jmGREjsQ2tUtixV/yUfqUfjVh42MGWhQrCYz0wFKGtSJKQkWFBmsG1taVKgDZdEIpPqLCfwP+wqN us4u5s+P4Vfy0qVAx6UW39N7y+AVb9lYLTFvM8beIV+VKlQPxmsZuG58fwq/lo/AbxYttdBPwP5UqVAb ZDNvIQRTtKlQf//Z ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/portada/zona-CAB/imagenes/logo_nortetv.png" Content-Type: image/png Content-Transfer-Encoding: base64 Content-ID: iVBORw0KGgoAAAANSUhEUgAAAFIAAAASCAYAAADIdIn3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFn ZVJlYWR5ccllPAAABb9JREFUeNrsmGlsVFUUx8+brTOdTmk7ldpOYVhFQUQQZLFsigVSYhRcgLAY16B+ cAEMBBdQdgEtRiOgkbggKB+QqKgYI6gIIoulBC22tWlR6GKX6UxnOu89/9f+J3k2YGIkfDBzk1/um3fv u/e8c/7n3NdqpmlKsv33Zku6IOnIpCP/j80xdOjQi7leV1AIfgNfAuMSvksKmGhomrm0rGxvTixW7DKM McXB4OaDGRlTPbpej/ED4E6wAWy1PhzRNFnc0CKF4TZpttk+0ET6/Iu9w46L/DK9wevgG/DFJRaFmw6y uQ1jcKquO+HILLtp+nGcjsT9c0A5cxDo1vlhJ3gzPVXy2+MSjMWHxTWtu+AgNmMxrKiJ5nT9syKBn30T CIAeoA78CBJHencQZCn4BVTzOhu0gXbQTzoMVjteDm6iApQqBwIv+BVUdFLRAJDBlywFcY6p+Vezj4Kf aJdqvegMCEcqaU8uSNNM0/5GIJCbYpqrbab5SoXH408xjIUYa1bK4fNtlj3U/mkO0wyXuxxl+9zO+gci kZZGKFRLcYn7uuvFaAlJtBSmOS6ou5Aa+RxcA47QcA8HF4OV4EmwRG3G+8qg+WAv+B40MNo3WBa+iuPL 6dARvK8cvgI8C/LBu2C05blPwN0MxDbQ3zJWybRUpWMpsPN+lBlwo9CzJ3y+k4YKiKZFocqNykmdPvJi DPz7DHKHVw2z+rTLMfWsTVpdkYiIL03ytm6RyKHDUl40Weyp6WLzwD2aTYxwGJ1NNLf7r03teXl5DzGa XcAicBZcSxUqBbxKByiH7uGLFIFyMBz0BJl0XB2VUs+Xm02VK8e/zEBNB9+CBWAK2A2eAjlgAtU5BhSA F7mGl45SNt0KfOzXc243zlXrx+C4RU7TzAfdbB1ZMUyphjYP43vcDCaDteAeJSCoalyFy6WNaAkF/Lqe m7Nxg6QOGSz2rCzxDh8h3rFjJXzkqMQbGyV31UpJmzBeQge+EyMajVm1ug5spFNmgXT2qhXT0ESaPw6m qRrNezPAR1Tl1+AoWE1j67iWCk4L5z9Nlarf80ANn7kLVPF6D+cWUuEJ9cV4/SjrsLLtU1BLNauSswWM Zaadr6mS+BI4zN8qSFco1bpM0yGG7ozrcYlWV8NJMYnXN4g9kCddpk2Vhp07RcvKlOxH5knD9h0ShVNt TqdYHXmGvUFsLOCqlVnmVbPP4JwWvriwPgpra19eq5LwMFNR1eEfOK72bqUTVTvNUqBRrQ8yqGeowMTe zzE7RoFxtPUr7pGw22NJ/fO1KJ23mJl4jqoX3TD09nDYiIWa5cyqNeKfOUPCx49LzdJlMrC0RNInTZT2 uo5SXb99u+jRiJhO+9++IzVLr3GzRt4baZk3hH0VnRFnb11DrXuS1zVURpAptJefHiEGI1GjpjAgm1iT 1YFyL9N1PecoVd9B9fej4pUTxoNJzBBrMC/UAnRib9qkDpwVuq5L1+xsb07RZGd60RSxZfspD6c0nzwh 4ZIS8c+dI/7Zs6StvFya9u8XEweSes5h2djeSfoqqjsY9fuZnmrO7TT+HY65LA5MnLijmNp/0Ni3wM/g NtZjVf9eA0+w4O8Dt7BOvs0a62Op6EsFJr4y5jNQPbh+Fyq7hDZfRkdfaXkmhXY6LE5OnNwFnLswHo9L j/z8vEHFxT4P0rW0sFB0HDrunr3EV1Agtdvek+CK5eLIzJSaF9ZJtK5W7F4knKmnqIWPcZPfubAODjG6 n4GZYBmVIEyjJSzcxyzqFf7eRGf3Yf1Tzp7L07uSClAH0SmWjjngPip3PmuxsmUNa3EDP+6D3FvV8sfA M9xTBeh5Kn0zS8IAlgqTex5kcMpZppTy99PWBfwD4mNN0/pF29pqdU3L11yuUHtT0+loVZUnffToQP9d u+Knpk+v1Ftbg3av116/+8MKLN5umIYSV6uW/O9P8m/tpCOTjky2C7Y/BRgA5ubdR1jJO3YAAAAASUVO RK5CYII= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/img/rd.titu_publiroba.png" Content-Type: image/png Content-Transfer-Encoding: base64 Content-ID: iVBORw0KGgoAAAANSUhEUgAAADgAAAAHBAMAAACvhJNVAAAAA3NCSVQICAjb4U/gAAAAJ1BMVEX////3 9/fr6+vj4+PX19fKysrCwsK2traurq6ioqKampqOjo6GhoZlajFFAAAADXRSTlMA//////////////// LQRBrQAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMi8xNi8wOeiVOIEA AAAfdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAAAsElEQVQImTXLsQqCQBzH 8Z+HHVkNPkBDRDTdIzRIaw0+gINIGBwOjQUOPUK0tR1EzS5BNP1Rkch7qO7C1u+HL9IEMQt4GiIGC9wN ZjydwI1hAE0+Ja5E+mQErl7ZToptjVHFmjwADRKLOFi8khNIgTVWe0Yu/U9dWrwrwKDAY8zIhCZhvzOy eCs6fGdLiwRU3rFDVfYLg5deI8/knSxGrS90zbSeq0XrS6HVMHQq/cEX5dBBP2fDvxYAAAAASUVORK5C YII= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/rd.articulo.herramientas.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIEhFUlJBTUlFTlRBUyA9IHt9OwoKSEVSUkFNSUVOVEFTLmNsaWNrX2RlbnVuY2lhID0gMDsKSEVS UkFNSUVOVEFTLmNsaWNrX2VudmlhID0gMDsKCkhFUlJBTUlFTlRBUy52b3RhckFydGljdWxvID0gZnVu Y3Rpb24obnVtKSB7CgkKLy8JdmFyIGlkID0gJCgnW25hbWU9InVybCJdJykudmFsKCk7Cgl2YXIgaWQg PSAiaHR0cDovLyIgK2xvY2F0aW9uLmhvc3RuYW1lICsgbG9jYXRpb24ucGF0aG5hbWU7CgkKCSQuZ2V0 KCcvYmFja2VuZC9IRVJSQU1JRU5UQVMudm90YXIucGhwJywgCgkJewoJCQl1cmw6IGlkLCAKCQkJcHVu dG9zOiBudW0sCgkJCXI6IE1hdGgucmFuZG9tKCkKCQl9LCAKCQlmdW5jdGlvbihkYXRhKSB7CgkJCUhF UlJBTUlFTlRBUy5nZXRFc3RyZWxsYXNQdW50b3MoaWQpOwoJCX0KCSk7Cn07CgpIRVJSQU1JRU5UQVMu Z2V0RXN0cmVsbGFzUHVudG9zID0gZnVuY3Rpb24oaWQpIHsKCQoJJC5nZXRKU09OKCcvYmFja2VuZC9I RVJSQU1JRU5UQVMuZXN0cmVsbGFzUHVudG9zLnBocCcsIAoJCXsKCQkJdXJsIDogaWQKCQkJLHI6IE1h dGgucmFuZG9tKCkKCQl9LCAKCQlmdW5jdGlvbihkYXRhKSB7CgkJCQoJCQl2YXIgZXN0cmVsbGFzID0g ZGF0YS5wdW50b3M7CgkJCQoJCQlmb3IgKHZhciBpID0gMTsgaSA8PSBlc3RyZWxsYXM7IGkrKykgeyAK CQkJCSQoJy52dCcgKyBpKS5hZGRDbGFzcygndnRkbycpOwoJCQl9CgkJCQoJCQkkKCcubnVtZXJvX3Zv dG9zJykuZWFjaChmdW5jdGlvbigpIHsKCQkJCQkkKHRoaXMpLmh0bWwoZGF0YS5udW12b3RvcyArICcg dm90b3MnKTsKCQkJCX0KCQkJKTsKCQl9CgkpOwp9OwoKSEVSUkFNSUVOVEFTLmVudmlhclJlY3RpZmlj YWNpb24gPSBmdW5jdGlvbigpIHsKCQoJdmFyIGZpbHRlciA9IC9eW0EtWmEtel1bQS1aYS16MC05Xy5d KkBbQS1aYS16MC05X10rXC5bQS1aYS16MC05Xy5dK1tBLXphLXpdJC87CgkKCWlmICgkKCdbbmFtZT0i YXV0aG9yX25hbWVfciJdJykudmFsKCkgPT0gJycpIHsKCQlhbGVydCgnUG9yIGZhdm9yLCBpbnRyb2R1 Y2UgdHUgbm9tYnJlJyk7CgkJcmV0dXJuOwoJfQoJCglpZiAoJCgnW25hbWU9ImF1dGhvcl9lbWFpbF9y Il0nKS52YWwoKSA9PSAnJykgewoJCWFsZXJ0KCdQb3IgZmF2b3IsIGludHJvZHVjZSB0dSBlbWFpbCcp OwoJCXJldHVybjsKCX0KCQoJaWYgKCFmaWx0ZXIudGVzdCgkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX3Ii XScpLnZhbCgpKSkgewogICAgICAgIGFsZXJ0KCdFbCBlbWFpbCBpbnRyb2R1Y2lkbyBubyBlcyB24Wxp ZG8nKTsKICAgICAgICByZXR1cm47CiAgICB9CgoJaWYgKCQoJ1tuYW1lPSJtZXNzYWdlX3IiXScpLnZh bCgpID09ICcnKSB7CgkJYWxlcnQoJ1BvciBmYXZvciwgaW50cm9kdWNlIGVsIHRleHRvIGRlIGxhIGRl bnVuY2lhJyk7CgkJcmV0dXJuOwoJfQoJCgkkLnBvc3QoJy9iYWNrZW5kL0hFUlJBTUlFTlRBUy5lbnZp YXJSZWN0aWZpY2FjaW9uLnBocCcsIAoJCXsKCQkJbm9tYnJlOiAkKCdbbmFtZT0iYXV0aG9yX25hbWVf ciJdJykudmFsKCksCgkJCWVtYWlsOiAkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX3IiXScpLnZhbCgpLAoJ CQlkZW51bmNpYTogJCgnW25hbWU9Im1lc3NhZ2VfciJdJykudmFsKCksCgkJCXVybDogZG9jdW1lbnQu bG9jYXRpb24uaHJlZiAKCQl9LAoJCWZ1bmN0aW9uKGRhdGEpIHsKCQkJCQoJCQkJYWxlcnQoZGF0YSk7 CgkJCQkKCQkJCSQoIi5mcm1fYXJ0X2VudmlhIikuc2xpZGVVcCgic2xvdyIpOwoJCQkJJCgiLmFydF9o ZXJyYW1pZW50YXMgYSIpLnJlbW92ZUNsYXNzKCJhY3Rpdm8iKTsKCQkJCSQoIi5mcm1fYXJ0X3JlY3Rp ZmljYSIpLnNsaWRlVXAoInNsb3ciKTsKCQkJCQoJCQkJJCgnW25hbWU9ImF1dGhvcl9uYW1lX3IiXScp LnZhbCgnJyk7CgkJCQkkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX3IiXScpLnZhbCgnJyk7CgkJCQkkKCdb bmFtZT0ibWVzc2FnZV9yIl0nKS52YWwoJycpOwoJCX0KCSk7Cn07CgpIRVJSQU1JRU5UQVMuZW52aWFy Tm90aWNpYSA9IGZ1bmN0aW9uKCkgewoJCgl2YXIgZmlsdGVyID0gL15bQS1aYS16XVtBLVphLXowLTlf XC0uXSpAW0EtWmEtejAtOV9dK1wuW0EtWmEtejAtOV8uXStbQS16YS16XSQvOwoJCglpZiAoJCgnW25h bWU9ImF1dGhvcl9uYW1lX2VyIl0nKS52YWwoKSA9PSAnJykgewoJCWFsZXJ0KCdQb3IgZmF2b3IsIGlu dHJvZHVjZSB0dSBub21icmUnKTsKCQlyZXR1cm47Cgl9CgkKCWlmICgkKCdbbmFtZT0iYXV0aG9yX2Vt YWlsX2VyIl0nKS52YWwoKSA9PSAnJykgewoJCWFsZXJ0KCdQb3IgZmF2b3IsIGludHJvZHVjZSB0dSBl bWFpbCcpOwoJCXJldHVybjsKCX0KCQoJaWYgKCFmaWx0ZXIudGVzdCgkKCdbbmFtZT0iYXV0aG9yX2Vt YWlsX2VyIl0nKS52YWwoKSkpIHsKICAgICAgICBhbGVydCgnRWwgZW1haWwgaW50cm9kdWNpZG8gbm8g ZXMgduFsaWRvJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKCWlmICgkKCdbbmFtZT0iYXV0aG9yX25h bWVfZWQiXScpLnZhbCgpID09ICcnKSB7CgkJYWxlcnQoJ1BvciBmYXZvciwgaW50cm9kdWNlIGVsIG5v bWJyZSBkZWwgZGVzdGluYXRhcmlvJyk7CgkJcmV0dXJuOwoJfQoJCglpZiAoJCgnW25hbWU9ImF1dGhv cl9lbWFpbF9lZCJdJykudmFsKCkgPT0gJycpIHsKCQlhbGVydCgnUG9yIGZhdm9yLCBpbnRyb2R1Y2Ug ZWwgZW1haWwgZGVsIGRlc3RpbmF0YXJpbycpOwoJCXJldHVybjsKCX0KCQoJaWYgKCFmaWx0ZXIudGVz dCgkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX2VkIl0nKS52YWwoKSkpIHsKICAgICAgICBhbGVydCgnRWwg ZW1haWwgaW50cm9kdWNpZG8gbm8gZXMgduFsaWRvJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoJCgkk LnBvc3QoJy9iYWNrZW5kL0hFUlJBTUlFTlRBUy5lbnZpYXJOb3RpY2lhLnBocCcsIAoJCXsKCQkJbm9t YnJlX3I6ICQoJ1tuYW1lPSJhdXRob3JfbmFtZV9lciJdJykudmFsKCksCgkJCWVtYWlsX3I6ICQoJ1tu YW1lPSJhdXRob3JfZW1haWxfZXIiXScpLnZhbCgpLAoJCQlub21icmVfZDogJCgnW25hbWU9ImF1dGhv cl9uYW1lX2VkIl0nKS52YWwoKSwKCQkJZW1haWxfZDogJCgnW25hbWU9ImF1dGhvcl9lbWFpbF9lZCJd JykudmFsKCksCgkJCW1lbnNhamU6ICQoJ1tuYW1lPSJtZXNzYWdlX2UiXScpLnZhbCgpLAoJCQl1cmw6 IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgCgkJfSwKCQlmdW5jdGlvbihkYXRhKSB7CgkJCQkKCQkJCWFs ZXJ0KGRhdGEpOwoJCQkJCgkJCQkkKCIuYXJ0X2hlcnJhbWllbnRhcyBhIikucmVtb3ZlQ2xhc3MoImFj dGl2byIpOwoJCQkJJCgiLmZybV9hcnRfZW52aWEiKS5zbGlkZVVwKCJzbG93Iik7CgkJCQkKCQkJCSQo J1tuYW1lPSJhdXRob3JfbmFtZV9lciJdJykudmFsKCcnKTsKCQkJCSQoJ1tuYW1lPSJhdXRob3JfZW1h aWxfZXIiXScpLnZhbCgnJyk7CgkJCQkkKCdbbmFtZT0iYXV0aG9yX25hbWVfZWQiXScpLnZhbCgnJyk7 CgkJCQkkKCdbbmFtZT0iYXV0aG9yX2VtYWlsX2VkIl0nKS52YWwoJycpOwoJCQkJJCgnW25hbWU9Im1l c3NhZ2VfZSJdJykudmFsKCcnKTsKCQl9CgkpOwp9OwoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24o KSB7CgkJCi8vCQlIRVJSQU1JRU5UQVMuZ2V0RXN0cmVsbGFzUHVudG9zKCQoJ1tuYW1lPSJ1cmwiXScp LnZhbCgpKTsKCQlIRVJSQU1JRU5UQVMuZ2V0RXN0cmVsbGFzUHVudG9zKCJodHRwOi8vIiArbG9jYXRp b24uaG9zdG5hbWUgKyBsb2NhdGlvbi5wYXRobmFtZSk7CgkJCgkJJCgnI3ZvdGFjaW9uJykuZmluZCgn YScpLmVhY2goZnVuY3Rpb24oaSkgewoJCQkJJCh0aGlzKS5jbGljayhmdW5jdGlvbigpewoJCQkJCQlI RVJSQU1JRU5UQVMudm90YXJBcnRpY3VsbyhpICsgMSk7CgkJCQkJfQoJCQkJKTsKCQkJfQoJCSk7CgkJ JCgnI3ZvdGFjaW9uMicpLmZpbmQoJ2EnKS5lYWNoKGZ1bmN0aW9uKGkpIHsKCQkJCSQodGhpcykuY2xp Y2soZnVuY3Rpb24oKXsKCQkJCQkJSEVSUkFNSUVOVEFTLnZvdGFyQXJ0aWN1bG8oaSArIDEpOwoJCQkJ CX0KCQkJCSk7CgkJCX0KCQkpOwoJCQoJfQopOwo= ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="www.nortecastilla.es/js/comentarios.registro.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: dmFyIENPTUVOVEFSSU9TID0ge307CgpDT01FTlRBUklPUy5nZXRDb21lbnRhcmlvcyA9IGZ1bmN0aW9u KGlkLCBieSwgcGFnaW5hKSB7CgoJaWYgKHR5cGVvZiBpZCA9PSAndW5kZWZpbmVkJykgewoJCXJldHVy bjsKCX0KCQogICAgJC5nZXQoJy9iYWNrZW5kL0NPTUVOVEFSSU9TLmdldENvbWVudGFyaW9zLnBocCcs CiAgICB7CiAgICAgICAgaWQ6IGlkLAogICAgICAgIGJ5OiBieSwKICAgICAgICByOiBNYXRoLnJhbmRv bSgpCiAgICB9LAogICAgZnVuY3Rpb24oeG1sKSB7CgogICAgICAgIHZhciBpID0gMDsKICAgICAgICB2 YXIgaHRtbCA9ICcnOwogICAgICAgIHZhciB2YXJpYWJsZXNfcGxhbnRpbGxhID0gQXJyYXkoKTsKICAg ICAgICB2YXIgZmVjaGFfbG9hZCA9IG5ldyBEYXRlKCk7CgogICAgICAgIHZhciBsaW1pdGUgPSAkKHht bCkuZmluZCgnY29tbWVudCcpLmxlbmd0aDsKCiAgICAgICAgJCh4bWwpLmZpbmQoJ2NvbW1lbnQnKS5l YWNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgdmFyICRjb21tZW50ID0gJCh0aGlzKTsKCiAgICAg ICAgICAgIHZhciBjYW1wb3MgPSAkY29tbWVudC5maW5kKCdkYXRlJykudGV4dCgpLnNwbGl0KCcgJyk7 CgogICAgICAgICAgICB2YXJpYWJsZXNfcGxhbnRpbGxhW2ldID0gewoKICAgICAgICAgICAgICAgIGZl Y2hhOiBjYW1wb3NbMl0gKyAnLycgKyBjYW1wb3NbMV0gKyAnLycgKyBjYW1wb3NbNV0sCiAgICAgICAg ICAgICAgICBob3JhOiBjYW1wb3NbM10sCiAgICAgICAgICAgICAgICBhdXRob3I6ICRjb21tZW50LmZp bmQoJ2F1dGhvcicpLmZpbmQoJ25hbWUnKS50ZXh0KCksCiAgICAgICAgICAgICAgICBjb250ZW50OiAk Y29tbWVudC5maW5kKCdjb250ZW50JykudGV4dCgpLAogICAgICAgICAgICAgICAgaWQ6ICRjb21tZW50 LmZpbmQoJ2lkJykudGV4dCgpLAogICAgICAgICAgICAgICAgcG9zaXRpdmVfdm90ZXM6ICRjb21tZW50 LmZpbmQoJ3Bvc2l0aXZlX3ZvdGVzJykudGV4dCgpLAogICAgICAgICAgICAgICAgbmVnYXRpdmVfdm90 ZXM6ICRjb21tZW50LmZpbmQoJ25lZ2F0aXZlX3ZvdGVzJykudGV4dCgpLAogICAgICAgICAgICAgICAg bG9hZF90aW1lOiBmZWNoYV9sb2FkLmdldFRpbWUoKQoKICAgICAgICAgICAgfTsKCiAgICAgICAgICAg IGkrKzsKICAgICAgICB9CiAgICAgICAgKTsKCiAgICAgICAgJC5hamF4KHsKICAgICAgICAgICAgdHlw ZTogJ0dFVCcsCiAgICAgICAgICAgIHVybDogJy9iYWNrZW5kL3BsYW50aWxsYXMvY29tZW50YXJpb3Mu aHRtbCcsCiAgICAgICAgICAgIGFzeW5jOiBmYWxzZSwKICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rp b24oZGF0YSkgewogICAgICAgICAgICAgICAgaHRtbCA9IGRhdGE7CiAgICAgICAgICAgIH0KICAgICAg ICB9KTsKCiAgICAgICAgQ09NRU5UQVJJT1MubXVlc3RyYUNvbWVudGFyaW9zKHZhcmlhYmxlc19wbGFu dGlsbGEsIGh0bWwsIHBhZ2luYSwgbGltaXRlKTsKCiAgICAgICAgaWYgKGJ5ID09ICdkYXRlJykgewog ICAgICAgICAgICAkKCcjbG9tYXNyZWNpZW50ZScpLmFkZENsYXNzKCdhY3Rpdm8nKTsKICAgICAgICAg ICAgJCgnI2xvbWFzdmFsb3JhZG8nKS5yZW1vdmVDbGFzcygnYWN0aXZvJyk7CiAgICAgICAgfQogICAg ICAgIGVsc2UgewogICAgICAgICAgICAkKCcjbG9tYXN2YWxvcmFkbycpLmFkZENsYXNzKCdhY3Rpdm8n KTsKICAgICAgICAgICAgJCgnI2xvbWFzcmVjaWVudGUnKS5yZW1vdmVDbGFzcygnYWN0aXZvJyk7CiAg ICAgICAgfQoKICAgIH0KICAgICk7Cn07CgpDT01FTlRBUklPUy5tdWVzdHJhQ29tZW50YXJpb3MgPSBm dW5jdGlvbih2YXJpYWJsZXNfcGxhbnRpbGxhLCBodG1sLCBwYWdpbmEsIGxpbWl0ZSkgewoKICAgIHZh ciBtYXhfY29tZW50YXJpb3MgPSA1OwoKICAgIHZhciBsaW1pdGVfYiA9ICgoKChwYWdpbmEgLSAxKSAq IG1heF9jb21lbnRhcmlvcykgKyBtYXhfY29tZW50YXJpb3MpID4gbGltaXRlKSA/IGxpbWl0ZTogKCgo cGFnaW5hIC0gMSkgKiBtYXhfY29tZW50YXJpb3MpICsgbWF4X2NvbWVudGFyaW9zKTsKICAgIHZhciBp bmljaW8gPSAocGFnaW5hIC0gMSkgKiBtYXhfY29tZW50YXJpb3M7CiAgICB2YXIgcGFnaW5hcyA9IE1h dGguY2VpbChsaW1pdGUgLyBtYXhfY29tZW50YXJpb3MpOwoKICAgIHZhciAkY29udGVuaWRvID0gJCgn PGRpdj48L2Rpdj4nKTsKCiAgICBmb3IgKGkgPSBpbmljaW87IGkgPCBsaW1pdGVfYjsgaSsrKSB7Cgog ICAgICAgIHZhciB0ID0gJC50ZW1wbGF0ZShodG1sKTsKCiAgICAgICAgaWYgKGkgPT0gaW5pY2lvKSB7 CiAgICAgICAgICAgICRjb250ZW5pZG8uaHRtbCh0LCB7CiAgICAgICAgICAgICAgICBmZWNoYTogdmFy aWFibGVzX3BsYW50aWxsYVtpXS5mZWNoYSwKICAgICAgICAgICAgICAgIGhvcmE6IHZhcmlhYmxlc19w bGFudGlsbGFbaV0uaG9yYSwKICAgICAgICAgICAgICAgIGF1dGhvcjogdmFyaWFibGVzX3BsYW50aWxs YVtpXS5hdXRob3IsCiAgICAgICAgICAgICAgICBjb250ZW50OiB2YXJpYWJsZXNfcGxhbnRpbGxhW2ld LmNvbnRlbnQsCiAgICAgICAgICAgICAgICBpZDogdmFyaWFibGVzX3BsYW50aWxsYVtpXS5pZCwKICAg ICAgICAgICAgICAgIHBvc2l0aXZlX3ZvdGVzOiB2YXJpYWJsZXNfcGxhbnRpbGxhW2ldLnBvc2l0aXZl X3ZvdGVzLAogICAgICAgICAgICAgICAgbmVnYXRpdmVfdm90ZXM6IHZhcmlhYmxlc19wbGFudGlsbGFb aV0ubmVnYXRpdmVfdm90ZXMsCiAgICAgICAgICAgICAgICBsb2FkX3RpbWU6IHZhcmlhYmxlc19wbGFu dGlsbGFbaV0ubG9hZF90aW1lCiAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKICAgICAgICB9CiAg ICAgICAgZWxzZSB7CiAgICAgICAgICAgICRjb250ZW5pZG8uYXBwZW5kKHQsIHsKICAgICAgICAgICAg ICAgIGZlY2hhOiB2YXJpYWJsZXNfcGxhbnRpbGxhW2ldLmZlY2hhLAogICAgICAgICAgICAgICAgaG9y YTogdmFyaWFibGVzX3BsYW50aWxsYVtpXS5ob3JhLAogICAgICAgICAgICAgICAgYXV0aG9yOiB2YXJp YWJsZXNfcGxhbnRpbGxhW2ldLmF1dGhvciwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHZhcmlhYmxl c19wbGFudGlsbGFbaV0uY29udGVudCwKICAgICAgICAgICAgICAgIGlkOiB2YXJpYWJsZXNfcGxhbnRp bGxhW2ldLmlkLAogICAgICAgICAgICAgICAgcG9zaXRpdmVfdm90ZXM6IHZhcmlhYmxlc19wbGFudGls bGFbaV0ucG9zaXRpdmVfdm90ZXMsCiAgICAgICAgICAgICAgICBuZWdhdGl2ZV92b3RlczogdmFyaWFi bGVzX3BsYW50aWxsYVtpXS5uZWdhdGl2ZV92b3RlcywKICAgICAgICAgICAgICAgIGxvYWRfdGltZTog dmFyaWFibGVzX3BsYW50aWxsYVtpXS5sb2FkX3RpbWUKICAgICAgICAgICAgfQogICAgICAgICAgICAp OwogICAgICAgIH0KCiAgICAgICAgaWYgKCQuY29va2llKCdhZG1pbicpID09IDEpIHsKICAgICAgICAg ICAgJGNvbnRlbmlkby5maW5kKCcjbW9kZXJhY2lvbi0nICsgdmFyaWFibGVzX3BsYW50aWxsYVtpXS5p ZCkuc2hvdygpOwogICAgICAgIH0KCiAgICB9CgogICAgd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCdibG9xdWUtb3BpbmlvbmVzJykuaW5uZXJIVE1MID0gJGNvbnRlbmlkby5odG1sKCk7CgkvKgog ICAgdmFyIG9waW5pb25lcyA9ICQoJy5udW1fb3BpbmlvbmVzJykudGV4dCgpLnNwbGl0KCcgJyk7CiAg ICAKCWlmICgkKCcubnVtX29waW5pb25lcycpLnRleHQoKS5pbmRleE9mKCcgJykgIT0gLTEpIHsKCQkk KCcubnVtX29waW5pb25lcycpLnRleHQobGltaXRlICsgJyAnICsgb3BpbmlvbmVzWzFdKTsKCX0KCWVs c2UgewoJCSQoJy5udW1fb3BpbmlvbmVzJykudGV4dChsaW1pdGUgKyAnICcgKyAkKCcubnVtX29waW5p b25lcycpLnRleHQoKSk7Cgl9CgkqLwoJCgkkKCcuYXJ0X2NoNV9jb21lbnRhcmlvcycpLnRleHQobGlt aXRlKTsKCQogICAgdmFyICRsaXN0YWRvX3NlZ3VpbWllbnRvID0gJCgnLmxpc3RhZG9fc2VndWltaWVu dG8nKTsKCiAgICAkbGlzdGFkb19zZWd1aW1pZW50by5maW5kKCdzdHJvbmcnKS50ZXh0KChwYWdpbmEg PCAxMCkgPyAnMCcgKyBwYWdpbmE6IHBhZ2luYSk7CiAgICAkbGlzdGFkb19zZWd1aW1pZW50by5odG1s KCRsaXN0YWRvX3NlZ3VpbWllbnRvLmZpbmQoJ3N0cm9uZycpKTsKICAgICRsaXN0YWRvX3NlZ3VpbWll bnRvLmFwcGVuZCgnLycgKyAoKHBhZ2luYXMgPCAxMCkgPyAnMCcgKyBwYWdpbmFzOiBwYWdpbmFzKSk7 CgogICAgdmFyICRhbnRlcmlvciA9ICQoJyNhbnRlcmlvcicpOwogICAgdmFyICRzaWd1aWVudGUgPSAk KCcjc2lndWllbnRlJyk7CgogICAgJGFudGVyaW9yLmF0dHIoJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lk KDApJyk7CiAgICAkc2lndWllbnRlLmF0dHIoJ2hyZWYnLCAnamF2YXNjcmlwdDp2b2lkKDApJyk7Cgog ICAgaWYgKHBhZ2luYSA+IDEpIHsKICAgICAgICAkYW50ZXJpb3IudW5iaW5kKCdjbGljaycpOwogICAg ICAgICRhbnRlcmlvci5iaW5kKCdjbGljaycsCiAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg IENPTUVOVEFSSU9TLm11ZXN0cmFDb21lbnRhcmlvcyh2YXJpYWJsZXNfcGxhbnRpbGxhLCBodG1sLCAo cGFnaW5hIC0gMSksIGxpbWl0ZSk7CiAgICAgICAgfQogICAgICAgICk7CiAgICB9CgogICAgaWYgKHBh Z2luYSAhPSBwYWdpbmFzKSB7CiAgICAgICAgJHNpZ3VpZW50ZS51bmJpbmQoJ2NsaWNrJyk7CiAgICAg ICAgJHNpZ3VpZW50ZS5iaW5kKCdjbGljaycsCiAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg IENPTUVOVEFSSU9TLm11ZXN0cmFDb21lbnRhcmlvcyh2YXJpYWJsZXNfcGxhbnRpbGxhLCBodG1sLCAo cGFnaW5hICsgMSksIGxpbWl0ZSk7CiAgICAgICAgfQogICAgICAgICk7CiAgICB9Cn07CgpDT01FTlRB UklPUy5tb3N0cmFyRGVudW5jaWFyID0gZnVuY3Rpb24oaWQpIHsKICAgICQoJyNmb3JtZGVudW5jaWFy LScgKyBpZCkuc2xpZGVEb3duKCJzbG93Iik7Cn07CgpDT01FTlRBUklPUy52b3RhckNvbWVudGFyaW8g PSBmdW5jdGlvbihpZCwgdGlwbykgewoKICAgICQucG9zdCgnL2JhY2tlbmQvQ09NRU5UQVJJT1Mudm90 YXJDb21lbnRhcmlvLnBocCcsCiAgICB7CiAgICAgICAgaWQ6IGlkLAogICAgICAgIHRpcG86IHRpcG8K ICAgIH0sCiAgICBmdW5jdGlvbihkYXRhKSB7CgogICAgICAgIGlmIChkYXRhID09ICdvaycpIHsKICAg ICAgICAgICAgJCgnI2Zhdm9yY29udHJhLScgKyBpZCkucGFyZW50KCkuaHRtbCgnR3JhY2lhcyBwb3Ig dm90YXInKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGFsZXJ0KGRhdGEpOwog ICAgICAgIH0KICAgIH0KICAgICk7Cn07CgpDT01FTlRBUklPUy5kZW51bmNpYXJDb21lbnRhcmlvID0g ZnVuY3Rpb24oaWQpIHsKCiAgICB2YXIgZmVjaGFfc3VibWl0ID0gbmV3IERhdGUoKTsKICAgIHZhciBm aWx0ZXIgPSAvXltBLVphLXpdW0EtWmEtejAtOV8uXSpAW0EtWmEtejAtOV9dK1wuW0EtWmEtejAtOV8u XStbQS16YS16XSQvOwogICAgCiAgICAvL2V2YWwoInZhciBmb3JtdSA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCdmb3JtdWxhcmlvXyIgKyBpZCArICInKSIpOwogICAgZXZhbCgndmFyIGZvcm11ID0gd2lu ZG93LmRvY3VtZW50LmZvcm11bGFyaW9fJyArIGlkKTsKICAgIC8qCiAgICBpZiAoZm9ybXUubm9tYnJl LnZhbHVlID09ICcnKSB7CiAgICAgICAgYWxlcnQoJ1BvciBmYXZvciwgaW50cm9kdXpjYSBzdSBub21i cmUnKTsKICAgICAgICBmb3JtdS5ub21icmUuZm9jdXMoKTsKICAgICAgICByZXR1cm47CiAgICB9Cgog ICAgaWYgKGZvcm11LmVtYWlsLnZhbHVlID09ICcnKSB7CiAgICAgICAgYWxlcnQoJ1BvciBmYXZvciwg aW50cm9kdXpjYSBzdSBlbWFpbCcpOwogICAgICAgIGZvcm11LmVtYWlsLmZvY3VzKCk7CiAgICAgICAg cmV0dXJuOwogICAgfQoKICAgIGlmICghZmlsdGVyLnRlc3QoZm9ybXUuZW1haWwudmFsdWUpKSB7CiAg ICAgICAgYWxlcnQoJ0VsIGVtYWlsIGludHJvZHVjaWRvIG5vIGVzIHaHbGlkbycpOwogICAgICAgIGZv cm11LmVtYWlsLnZhbHVlLmZvY3VzKCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgKi8KICAgIGlm IChmb3JtdS5kZW51bmNpYS52YWx1ZSA9PSAnJykgewogICAgICAgIGFsZXJ0KCdQb3IgZmF2b3IsIGlu dHJvZHV6Y2Egc3UgZGVudW5jaWEnKTsKICAgICAgICBmb3JtdS5kZW51bmNpYS5mb2N1cygpOwogICAg ICAgIHJldHVybjsKICAgIH0KICAgIGZvcm11LnN1Ym1pdF90aW1lLnZhbHVlID0gZmVjaGFfc3VibWl0 LmdldFRpbWUoKTsKICAgIGZvcm11LnN1Ym1pdCgpOwoKICAgIGFsZXJ0KCdHcmFjaWFzIHBvciBkZW51 bmNpYXIgZWwgY29tZW50YXJpbycpOwoKfTsKCkNPTUVOVEFSSU9TLmVudmlhckNvbWVudGFyaW8gPSBm dW5jdGlvbigpIHsKICAgIAoJdmFyIGZlY2hhX3N1Ym1pdCA9IG5ldyBEYXRlKCk7CiAgICAKCglpZiAo d2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8ubWVzc2FnZS52YWx1ZSA9PSAnJykgewoJCWFsZXJ0KCdQ b3IgZmF2b3IsIGludHJvZHVjZSB0dSBvcGluaZduJyk7CgkgICAgd2luZG93LmRvY3VtZW50LmZvcm11 bGFyaW8ubWVzc2FnZS5mb2N1cygpOwoJICAgIHJldHVybjsKCX0KCQoJaWYgKCF3aW5kb3cuZG9jdW1l bnQuZm9ybXVsYXJpby5hY2VwdG8uY2hlY2tlZCkgewoJICAJYWxlcnQoJ1RpZW5lcyBxdWUgYWNlcHRh ciBsYXMgY29uZGljaW9uZXMgZGUgdXNvJyk7CgkgIAlyZXR1cm47Cgl9CgkJCgl3aW5kb3cuZG9jdW1l bnQuZm9ybXVsYXJpby5zdWJtaXRfdGltZS52YWx1ZSA9IGZlY2hhX3N1Ym1pdC5nZXRUaW1lKCk7CgoJ d2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8uc3VibWl0KCk7CglpZiAoJC5icm93c2VyLm1zaWUgJiYg JC5icm93c2VyLnZlcnNpb24gPD0gNiApIHNldFRpbWVvdXQoIndpbmRvdy5sb2NhdGlvbi5yZWxvYWQo KSIsNTAwKTsKCQoJICAKfTsKCkNPTUVOVEFSSU9TLnNldE51bUNvbWVudGFyaW9zUG9ydGFkYSA9IGZ1 bmN0aW9uKCkgewoKICAgIHZhciBpZCA9ICcnOwoKICAgICQoJy5udW1fY29tZW50YXJpb3MnKS5lYWNo KGZ1bmN0aW9uKCkgewogICAgICAgIAl2YXIgY2FtcG9zID0gJCh0aGlzKS5hdHRyKCdpZCcpLnNwbGl0 KCctJyk7CgkJCWlmICh0eXBlb2YgY2FtcG9zWzJdICE9ICd1bmRlZmluZWQnKSB7CgkgICAgICAgIAlp ZCA9IGlkID8gaWQgKyAnfCcgKyBjYW1wb3NbMl0gOiBjYW1wb3NbMl07CgkJCX0KICAgIAl9CiAgICAp OwoKCSQoJy5udW0tY29tZW50YXJpb3MnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAgIAl2YXIgY2Ft cG9zID0gJCh0aGlzKS5hdHRyKCdpZCcpLnNwbGl0KCctJyk7CgkgICAgICAgIGlmICh0eXBlb2YgY2Ft cG9zWzJdICE9ICd1bmRlZmluZWQnKSB7CgkgICAgICAgIAlpZCA9IGlkID8gaWQgKyAnfCcgKyBjYW1w b3NbMl0gOiBjYW1wb3NbMl07CgkJCX0KICAgIAl9CiAgICApOwoKICAgIGlmIChpZCAhPSAnJykgewog ICAgICAgICQuZ2V0KCIvYmFja2VuZC9DT01FTlRBUklPUy5nZXRDb21lbnRhcmlvc1BvcnRhZGEucGhw IiwKICAgICAgICB7CiAgICAgICAgICAgIGlkOiBpZCwKICAgICAgICAgICAgYnk6ICdkYXRlJwogICAg ICAgIH0sCiAgICAgICAgZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICAKCQkJdmFyIGNhbXBvcyA9 IGRhdGEuc3BsaXQoJ3wnKTsKICAgICAgICAgICAgdmFyIGxpbWl0ZSA9IGNhbXBvcy5sZW5ndGg7CiAg ICAgICAgICAgIHZhciBpID0gbGltaXRlIC0gMTsKICAgICAgICAgICAgZG8gewoJCQkJCiAgICAgICAg ICAgICAgICB2YXIgY2FtcG9zMiA9IGNhbXBvc1tpXS5zcGxpdCgnQCcpOwogICAgICAgICAgICAgICAg dmFyIG51bSA9IGNhbXBvczJbMV07CgkJCQkKICAgICAgICAgICAgICAgIHZhciB0ZXh0byA9ICcnOwoK ICAgICAgICAgICAgICAgIHN3aXRjaCAodHJ1ZSkgewogICAgICAgICAgICAgICAgY2FzZShudW0gPT0g MCB8fCBudW0gPT0gJycpIDoKICAgICAgICAgICAgICAgICAgICB0ZXh0byA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCdudW0tY29tZW50YXJpb3MtJyArIGNhbXBvczJbMF0pLmlubmVySFRNTDsKICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgKG51bSA9PSAxKSA6CiAgICAg ICAgICAgICAgICAgICAgdGV4dG8gPSAnMSBDb21lbnRhcmlvJzsKICAgICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdGV4dG8gPSBu dW0gKyAnICBDb21lbnRhcmlvcyc7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICB9CgkJCQkKCQkJCWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVtLWNvbWVudGFyaW9z LScgKyBjYW1wb3MyWzBdKSkgewoJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW0tY29tZW50 YXJpb3MtJyArIGNhbXBvczJbMF0pLmlubmVySFRNTCA9IHRleHRvOwoJCQkJfQogICAgICAgICAgICAg ICAgCiAgICAgICAgICAgIH0KICAgICAgICAgICAgd2hpbGUgKGktLSk7CiAgICAgICAgfQogICAgICAg ICk7CiAgICB9Cn07CgpDT01FTlRBUklPUy5kZXNhcHJvYmFyID0gZnVuY3Rpb24oaWQpIHsKCiAgICBp ZiAoY29uZmlybSgnUXVpZXJlIGRlc2Fwcm9iYXIgZXN0ZSBjb21lbmFyaW8/JykpIHsKCiAgICAgICAg JC5wb3N0KCcvYmFja2VuZC9DT01FTlRBUklPUy5kZXNhcHJvYmFyLnBocCcsCiAgICAgICAgewogICAg ICAgICAgICBpZDogaWQKICAgICAgICB9LAogICAgICAgIGZ1bmN0aW9uKHhtbCkgewoKICAgICAgICAg ICAgdmFyIGVzdGFkbyA9ICQoeG1sKS5maW5kKCdlc3RhZG8nKS50ZXh0KCk7CgogICAgICAgICAgICBp ZiAoZXN0YWRvID09ICdPSycpIHsKCiAgICAgICAgICAgICAgICAkKCcjb3Bpbmlvbi0nICsgaWQpLnJl bW92ZSgpOwoKICAgICAgICAgICAgICAgIHZhciBvcGluaW9uZXMgPSAkKCcubnVtX29waW5pb25lcycp LnRleHQoKS5zcGxpdCgnICcpOwogICAgICAgICAgICAgICAgJCgnLm51bV9vcGluaW9uZXMnKS50ZXh0 KChwYXJzZUludChvcGluaW9uZXNbMF0pIC0gMSkgKyAnICcgKyBvcGluaW9uZXNbMV0pOwogICAgICAg ICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoJCh4bWwpLmZpbmQo J2Rlc2MnKS50ZXh0KCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICk7CiAgICB9Cn07 CgpDT01FTlRBUklPUy5lbGltaW5hciA9IGZ1bmN0aW9uKGlkKSB7CgogICAgaWYgKGNvbmZpcm0oJ1F1 aWVyZSBlbGltaW5hciBlc3RlIGNvbWVuYXJpbz8nKSkgewoKICAgICAgICAkLnBvc3QoJy9iYWNrZW5k L0NPTUVOVEFSSU9TLmVsaW1pbmFyLnBocCcsCiAgICAgICAgewogICAgICAgICAgICBpZDogaWQKICAg ICAgICB9LAogICAgICAgIGZ1bmN0aW9uKHhtbCkgewoKICAgICAgICAgICAgdmFyIGVzdGFkbyA9ICQo eG1sKS5maW5kKCdlc3RhZG8nKS50ZXh0KCk7CgogICAgICAgICAgICBpZiAoZXN0YWRvID09ICdPSycp IHsKCiAgICAgICAgICAgICAgICAkKCcjb3Bpbmlvbi0nICsgaWQpLnJlbW92ZSgpOwoKICAgICAgICAg ICAgICAgIHZhciBvcGluaW9uZXMgPSAkKCcubnVtX29waW5pb25lcycpLnRleHQoKS5zcGxpdCgnICcp OwogICAgICAgICAgICAgICAgJCgnLm51bV9vcGluaW9uZXMnKS50ZXh0KChwYXJzZUludChvcGluaW9u ZXNbMF0pIC0gMSkgKyAnICcgKyBvcGluaW9uZXNbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAg IGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoJCh4bWwpLmZpbmQoJ2Rlc2MnKS50ZXh0KCkpOwog ICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICk7CiAgICB9Cn07CgpDT01FTlRBUklPUy5zdHJf cmVwbGFjZSA9IGZ1bmN0aW9uKHNlYXJjaCwgcmVwbGFjZSwgc3ViamVjdCkgewoKICAgIHZhciBmID0g c2VhcmNoLAogICAgciA9IHJlcGxhY2UsCiAgICBzID0gc3ViamVjdDsKICAgIHZhciByYSA9IHIgaW5z dGFuY2VvZiBBcnJheSwKICAgIHNhID0gcyBpbnN0YW5jZW9mIEFycmF5LAogICAgZiA9IFtdLmNvbmNh dChmKSwKICAgIHIgPSBbXS5jb25jYXQociksCiAgICBpID0gKHMgPSBbXS5jb25jYXQocykpLmxlbmd0 aDsKCiAgICB3aGlsZSAoaiA9IDAsIGktLSkgewogICAgICAgIGlmIChzW2ldKSB7CiAgICAgICAgICAg IHdoaWxlIChzW2ldID0gKHNbaV0gKyAnJykuc3BsaXQoZltqXSkuam9pbihyYSA/IHJbal0gfHwgIiI6 IHJbMF0pLCArK2ogaW4gZikge307CiAgICAgICAgfQogICAgfTsKCiAgICByZXR1cm4gc2EgPyBzOiBz WzBdOwp9OwoKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkKCWlmICgkLmNvb2tpZSgncmVn aXN0cm8nKSAhPSAnJyAmJiAkLmNvb2tpZSgncmVnaXN0cm8nKSAhPSBudWxsKSB7CgoJCXZhciB4bWw7 CgkJdmFyIHhtbHN0ciA9ICQuY29va2llKCdyZWdpc3RybycpOwoJCXhtbHN0ciA9IENPTUVOVEFSSU9T LnN0cl9yZXBsYWNlKCcrJywgJyAnLCB4bWxzdHIpOwoKCQkvLyBQYXJjaGUgcGFyYSBJRQoJCWlmICh3 aW5kb3cuQWN0aXZlWE9iamVjdCkgewoJCSAgICB2YXIgeG1sRG9jID0gbmV3IEFjdGl2ZVhPYmplY3Qo Ik1pY3Jvc29mdC5YTUxET00iKTsKCQkgCXhtbERvYy5hc3luYyA9IGZhbHNlOwoJCQl4bWxEb2Mub25y ZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CgkJCQlpZiAoeG1sRG9jLnJlYWR5U3RhdGUgIT0g NCkgewoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfTsKCQkJeG1sRG9jLmxvYWRYTUwoeG1sc3Ry KTsKCQkJeG1sID0geG1sRG9jOwogICAgICAgIH0KCQllbHNlIHsKCQkJeG1sID0geG1sc3RyOwoJCX0K CQkKCQkkKCdbbmFtZT0iYXV0aG9yX25hbWUiXScpLnZhbCgkKHhtbCkuZmluZCgndXNlcicpLnRleHQo KSk7CgkJJCgnW25hbWU9ImF1dGhvcl9lbWFpbCJdJykudmFsKCQoeG1sKS5maW5kKCd1c2VyX2VtYWls JykudGV4dCgpKTsKCQkKCX0KCWVsc2UgewoJCXdpbmRvdy5kb2N1bWVudC5mb3JtdWxhcmlvLmF1dGhv cl9uYW1lLnZhbHVlID0gJyc7CgkJd2luZG93LmRvY3VtZW50LmZvcm11bGFyaW8uYXV0aG9yX2VtYWls LnZhbHVlID0gJyc7Cgl9CgoJCglpZiAoJCgnW25hbWU9aWRfaXRlbV0nKS5sZW5ndGgpIHsKICAgIAlD T01FTlRBUklPUy5nZXRDb21lbnRhcmlvcygkKCdbbmFtZT1pZF9pdGVtXScpLnZhbCgpLCAnZGF0ZScs IDEpOwoJfQoJCgkvL0NPTUVOVEFSSU9TLnNldE51bUNvbWVudGFyaW9zUG9ydGFkYSgpOwp9Cik7Cg== ------=_MIMEPart_1268641243_481199691_=---- Content-disposition: attachment; filename="pagead2.googlesyndication.com/pagead/show_ads.js" Content-Type: application/x-javascript Content-Transfer-Encoding: base64 Content-ID: KGZ1bmN0aW9uKCl7dmFyIGc9dHJ1ZSxoPW51bGwsaj1mYWxzZSxhYT0obmV3IERhdGUpLmdldFRpbWUo KSxrPWZ1bmN0aW9uKGEpe3ZhciBiPShuZXcgRGF0ZSkuZ2V0VGltZSgpLWFhO2I9IiZkdGQ9IisoYjwx RTM/YjoiTSIpO3JldHVybiBhK2J9O3ZhciBsPXRoaXMsYmE9ZnVuY3Rpb24oYSxiLGMpe2E9YS5zcGxp dCgiLiIpO2M9Y3x8bDshKGFbMF1pbiBjKSYmYy5leGVjU2NyaXB0JiZjLmV4ZWNTY3JpcHQoInZhciAi K2FbMF0pO2Zvcih2YXIgZDthLmxlbmd0aCYmKGQ9YS5zaGlmdCgpKTspaWYoIWEubGVuZ3RoJiZiIT09 dW5kZWZpbmVkKWNbZF09YjtlbHNlIGM9Y1tkXT9jW2RdOihjW2RdPXt9KX0sbT1mdW5jdGlvbihhKXt2 YXIgYj10eXBlb2YgYTtpZihiPT0ib2JqZWN0IilpZihhKXtpZihhIGluc3RhbmNlb2YgQXJyYXl8fCEo YSBpbnN0YW5jZW9mIE9iamVjdCkmJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09Iltv YmplY3QgQXJyYXldInx8dHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIiYmdHlwZW9mIGEuc3BsaWNlIT0i dW5kZWZpbmVkIiYmdHlwZW9mIGEucHJvcGVydHlJc0VudW1lcmFibGUhPSJ1bmRlZmluZWQiJiYhYS5w cm9wZXJ0eUlzRW51bWVyYWJsZSgic3BsaWNlIikpcmV0dXJuImFycmF5IjsKaWYoIShhIGluc3RhbmNl b2YgT2JqZWN0KSYmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09IltvYmplY3QgRnVu Y3Rpb25dInx8dHlwZW9mIGEuY2FsbCE9InVuZGVmaW5lZCImJnR5cGVvZiBhLnByb3BlcnR5SXNFbnVt ZXJhYmxlIT0idW5kZWZpbmVkIiYmIWEucHJvcGVydHlJc0VudW1lcmFibGUoImNhbGwiKSkpcmV0dXJu ImZ1bmN0aW9uIn1lbHNlIHJldHVybiJudWxsIjtlbHNlIGlmKGI9PSJmdW5jdGlvbiImJnR5cGVvZiBh LmNhbGw9PSJ1bmRlZmluZWQiKXJldHVybiJvYmplY3QiO3JldHVybiBifSxvPWZ1bmN0aW9uKGEpe3Jl dHVybiBtKGEpPT0iYXJyYXkifSxjYT1mdW5jdGlvbihhKXt2YXIgYj1tKGEpO3JldHVybiBiPT0iYXJy YXkifHxiPT0ib2JqZWN0IiYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIn0scD1mdW5jdGlvbihhKXty ZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmcifSxkYT1mdW5jdGlvbihhKXthPW0oYSk7cmV0dXJuIGE9PSJv YmplY3QifHwKYT09ImFycmF5Inx8YT09ImZ1bmN0aW9uIn0sZWE9ZnVuY3Rpb24oYSl7dmFyIGI9bShh KTtpZihiPT0ib2JqZWN0Inx8Yj09ImFycmF5Iil7aWYoYS5jbG9uZSlyZXR1cm4gYS5jbG9uZS5jYWxs KGEpO2I9Yj09ImFycmF5Ij9bXTp7fTtmb3IodmFyIGMgaW4gYSliW2NdPWVhKGFbY10pO3JldHVybiBi fXJldHVybiBhfSxmYT1mdW5jdGlvbihhLGIpe3ZhciBjPWJ8fGw7aWYoYXJndW1lbnRzLmxlbmd0aD4y KXt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0 aW9uKCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtBcnJheS5wcm90 b3R5cGUudW5zaGlmdC5hcHBseShlLGQpO3JldHVybiBhLmFwcGx5KGMsZSl9fWVsc2UgcmV0dXJuIGZ1 bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYyxhcmd1bWVudHMpfX0sZ2E9RGF0ZS5ub3d8fGZ1bmN0aW9u KCl7cmV0dXJuK25ldyBEYXRlfSxxPWZ1bmN0aW9uKGEsCmIsYyl7YmEoYSxiLGMpfTt2YXIgcj1mdW5j dGlvbihhLGIpe2E9cGFyc2VGbG9hdChhKTtyZXR1cm4gaXNOYU4oYSl8fGE+MXx8YTwwP2I6YX0scz1m dW5jdGlvbihhLGIpe2lmKGE9PSJ0cnVlIilyZXR1cm4gZztpZihhPT0iZmFsc2UiKXJldHVybiBqO3Jl dHVybiBifSxoYT0vXihbXHctXStcLikqKFtcdy1dezIsfSkoXDpbMC05XSspPyQvLHQ9ZnVuY3Rpb24o YSxiKXtpZighYSlyZXR1cm4gYjtyZXR1cm4oYT1hLm1hdGNoKGhhKSk/YVswXTpifTt2YXIgaWE9ZnVu Y3Rpb24oKXtyZXR1cm4gdCgiIiwiZ29vZ2xlYWRzLmcuZG91YmxlY2xpY2submV0Iil9LGphPWZ1bmN0 aW9uKCl7cmV0dXJuIHQoIiIsInBhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tIil9LHU9ZnVuY3Rp b24oKXtyZXR1cm4gdCgiIiwicGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20iKX07dmFyIHY9QXJy YXkucHJvdG90eXBlLGthPXYuZm9yRWFjaD9mdW5jdGlvbihhLGIsYyl7di5mb3JFYWNoLmNhbGwoYSxi LGMpfTpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWEubGVuZ3RoLGU9cChhKT9hLnNwbGl0KCIiKTph LGY9MDtmPGQ7ZisrKWYgaW4gZSYmYi5jYWxsKGMsZVtmXSxmLGEpfSxsYT1mdW5jdGlvbigpe3JldHVy biB2LmNvbmNhdC5hcHBseSh2LGFyZ3VtZW50cyl9LG1hPWZ1bmN0aW9uKGEpe2lmKG8oYSkpcmV0dXJu IGxhKGEpO2Vsc2V7Zm9yKHZhciBiPVtdLGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspYltjXT1hW2NdO3Jl dHVybiBifX07dmFyIHc9ZnVuY3Rpb24oYSxiKXt0aGlzLndpZHRoPWE7dGhpcy5oZWlnaHQ9Yn07dy5w cm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHcodGhpcy53aWR0aCx0aGlzLmhlaWdo dCl9O3cucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIigiK3RoaXMud2lkdGgrIiB4 ICIrdGhpcy5oZWlnaHQrIikifTt3LnByb3RvdHlwZS5jZWlsPWZ1bmN0aW9uKCl7dGhpcy53aWR0aD1N YXRoLmNlaWwodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5jZWlsKHRoaXMuaGVpZ2h0KTtyZXR1 cm4gdGhpc307dy5wcm90b3R5cGUuZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguZmxvb3Io dGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5mbG9vcih0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9 Owp3LnByb3RvdHlwZS5yb3VuZD1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndp ZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307dy5wcm90 b3R5cGUuc2NhbGU9ZnVuY3Rpb24oYSl7dGhpcy53aWR0aCo9YTt0aGlzLmhlaWdodCo9YTtyZXR1cm4g dGhpc307dmFyIG5hPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQgaW4gYSliLmNhbGwoYyxhW2RdLGQs YSl9O3ZhciB0YT1mdW5jdGlvbihhLGIpe2lmKGIpcmV0dXJuIGEucmVwbGFjZShvYSwiJmFtcDsiKS5y ZXBsYWNlKHBhLCImbHQ7IikucmVwbGFjZShxYSwiJmd0OyIpLnJlcGxhY2UocmEsIiZxdW90OyIpO2Vs c2V7aWYoIXNhLnRlc3QoYSkpcmV0dXJuIGE7aWYoYS5pbmRleE9mKCImIikhPS0xKWE9YS5yZXBsYWNl KG9hLCImYW1wOyIpO2lmKGEuaW5kZXhPZigiPCIpIT0tMSlhPWEucmVwbGFjZShwYSwiJmx0OyIpO2lm KGEuaW5kZXhPZigiPiIpIT0tMSlhPWEucmVwbGFjZShxYSwiJmd0OyIpO2lmKGEuaW5kZXhPZignIicp IT0tMSlhPWEucmVwbGFjZShyYSwiJnF1b3Q7Iik7cmV0dXJuIGF9fSxvYT0vJi9nLHBhPS88L2cscWE9 Lz4vZyxyYT0vXCIvZyxzYT0vWyY8PlwiXS8sd2E9ZnVuY3Rpb24oYSl7aWYoYS5pbmRleE9mKCImIikh PS0xKXJldHVybiJkb2N1bWVudCJpbiBsJiZhLmluZGV4T2YoIjwiKT09LTE/dWEoYSk6dmEoYSk7cmV0 dXJuIGF9LHVhPWZ1bmN0aW9uKGEpe3ZhciBiPQpsLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTti LmlubmVySFRNTD1hO2Iubm9ybWFsaXplJiZiLm5vcm1hbGl6ZSgpO2E9Yi5maXJzdENoaWxkLm5vZGVW YWx1ZTtiLmlubmVySFRNTD0iIjtyZXR1cm4gYX0sdmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFj ZSgvJihbXjtdKyk7L2csZnVuY3Rpb24oYixjKXtzd2l0Y2goYyl7Y2FzZSAiYW1wIjpyZXR1cm4iJiI7 Y2FzZSAibHQiOnJldHVybiI8IjtjYXNlICJndCI6cmV0dXJuIj4iO2Nhc2UgInF1b3QiOnJldHVybici JztkZWZhdWx0OmlmKGMuY2hhckF0KDApPT0iIyIpe2M9TnVtYmVyKCIwIitjLnN1YnN0cigxKSk7aWYo IWlzTmFOKGMpKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpfXJldHVybiBifX0pfSx4YT1mdW5j dGlvbihhLGIpe2Zvcih2YXIgYz1iLmxlbmd0aCxkPTA7ZDxjO2QrKyl7dmFyIGU9Yz09MT9iOmIuY2hh ckF0KGQpO2lmKGEuY2hhckF0KDApPT1lJiZhLmNoYXJBdChhLmxlbmd0aC0xKT09ZSlyZXR1cm4gYS5z dWJzdHJpbmcoMSwKYS5sZW5ndGgtMSl9cmV0dXJuIGF9LHlhPWZ1bmN0aW9uKGEsYil7dmFyIGM9MDth PVN0cmluZyhhKS5yZXBsYWNlKC9eW1xzXHhhMF0rfFtcc1x4YTBdKyQvZywiIikuc3BsaXQoIi4iKTti PVN0cmluZyhiKS5yZXBsYWNlKC9eW1xzXHhhMF0rfFtcc1x4YTBdKyQvZywiIikuc3BsaXQoIi4iKTtm b3IodmFyIGQ9TWF0aC5tYXgoYS5sZW5ndGgsYi5sZW5ndGgpLGU9MDtjPT0wJiZlPGQ7ZSsrKXt2YXIg Zj1hW2VdfHwiIixpPWJbZV18fCIiLG49bmV3IFJlZ0V4cCgiKFxcZCopKFxcRCopIiwiZyIpLHk9bmV3 IFJlZ0V4cCgiKFxcZCopKFxcRCopIiwiZyIpO2Rve3ZhciBGPW4uZXhlYyhmKXx8WyIiLCIiLCIiXSxH PXkuZXhlYyhpKXx8WyIiLCIiLCIiXTtpZihGWzBdLmxlbmd0aD09MCYmR1swXS5sZW5ndGg9PTApYnJl YWs7Yz1GWzFdLmxlbmd0aD09MD8wOnBhcnNlSW50KEZbMV0sMTApO3ZhciBvYj1HWzFdLmxlbmd0aD09 MD8wOnBhcnNlSW50KEdbMV0sMTApO2M9eChjLG9iKXx8CngoRlsyXS5sZW5ndGg9PTAsR1syXS5sZW5n dGg9PTApfHx4KEZbMl0sR1syXSl9d2hpbGUoYz09MCl9cmV0dXJuIGN9LHg9ZnVuY3Rpb24oYSxiKXtp ZihhPGIpcmV0dXJuLTE7ZWxzZSBpZihhPmIpcmV0dXJuIDE7cmV0dXJuIDB9O2dhKCk7dmFyIHosQSxC LEMsRCx6YSxBYSxCYSxDYSxEYT1mdW5jdGlvbigpe3JldHVybiBsLm5hdmlnYXRvcj9sLm5hdmlnYXRv ci51c2VyQWdlbnQ6aH0sRT1mdW5jdGlvbigpe3JldHVybiBsLm5hdmlnYXRvcn0sRWE9ZnVuY3Rpb24o KXtEPUM9Qj1BPXo9ajt2YXIgYTtpZihhPURhKCkpe3ZhciBiPUUoKTt6PWEuaW5kZXhPZigiT3BlcmEi KT09MDtBPSF6JiZhLmluZGV4T2YoIk1TSUUiKSE9LTE7Qz0oQj0heiYmYS5pbmRleE9mKCJXZWJLaXQi KSE9LTEpJiZhLmluZGV4T2YoIk1vYmlsZSIpIT0tMTtEPSF6JiYhQiYmYi5wcm9kdWN0PT0iR2Vja28i fX07RWEoKTsKdmFyIEg9eixJPUEsRmE9RCxHYT1CLEhhPUMsSWE9ZnVuY3Rpb24oKXt2YXIgYT1FKCk7 cmV0dXJuIGEmJmEucGxhdGZvcm18fCIifSxKYT1JYSgpLEthPWZ1bmN0aW9uKCl7emE9SmEuaW5kZXhP ZigiTWFjIikhPS0xO0FhPUphLmluZGV4T2YoIldpbiIpIT0tMTtCYT1KYS5pbmRleE9mKCJMaW51eCIp IT0tMTtDYT0hIUUoKSYmKEUoKS5hcHBWZXJzaW9ufHwiIikuaW5kZXhPZigiWDExIikhPS0xfTtLYSgp Owp2YXIgTGE9emEsTWE9QWEsTmE9QmEsT2E9ZnVuY3Rpb24oKXt2YXIgYT0iIixiO2lmKEgmJmwub3Bl cmEpe2E9bC5vcGVyYS52ZXJzaW9uO2E9dHlwZW9mIGE9PSJmdW5jdGlvbiI/YSgpOmF9ZWxzZXtpZihG YSliPS9ydlw6KFteXCk7XSspKFwpfDspLztlbHNlIGlmKEkpYj0vTVNJRVxzKyhbXlwpO10rKShcKXw7 KS87ZWxzZSBpZihHYSliPS9XZWJLaXRcLyhcUyspLztpZihiKWE9KGE9Yi5leGVjKERhKCkpKT9hWzFd OiIifXJldHVybiBhfSxQYT1PYSgpLFFhPXt9LEo9ZnVuY3Rpb24oYSl7cmV0dXJuIFFhW2FdfHwoUWFb YV09eWEoUGEsYSk+PTApfTt2YXIgUmE9ZnVuY3Rpb24oYSl7cmV0dXJuIHAoYSk/ZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoYSk6YX0sU2E9UmEsVWE9ZnVuY3Rpb24oYSxiKXtuYShiLGZ1bmN0aW9uKGMsZCl7 aWYoZD09InN0eWxlIilhLnN0eWxlLmNzc1RleHQ9YztlbHNlIGlmKGQ9PSJjbGFzcyIpYS5jbGFzc05h bWU9YztlbHNlIGlmKGQ9PSJmb3IiKWEuaHRtbEZvcj1jO2Vsc2UgaWYoZCBpbiBUYSlhLnNldEF0dHJp YnV0ZShUYVtkXSxjKTtlbHNlIGFbZF09Y30pfSxUYT17Y2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixj ZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNvbHNwYW46ImNvbFNwYW4iLHJvd3NwYW46InJvd1NwYW4i LHZhbGlnbjoidkFsaWduIixoZWlnaHQ6ImhlaWdodCIsd2lkdGg6IndpZHRoIix1c2VtYXA6InVzZU1h cCIsZnJhbWVib3JkZXI6ImZyYW1lQm9yZGVyIix0eXBlOiJ0eXBlIn0sVmE9ZnVuY3Rpb24oYSl7dmFy IGI9YS5kb2N1bWVudDtpZihHYSYmIUooIjUwMCIpJiYhSGEpe2lmKHR5cGVvZiBhLmlubmVySGVpZ2h0 PT0KInVuZGVmaW5lZCIpYT13aW5kb3c7Yj1hLmlubmVySGVpZ2h0O3ZhciBjPWEuZG9jdW1lbnQuZG9j dW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodDtpZihhPT1hLnRvcClpZihjPGIpYi09MTU7cmV0dXJuIG5l dyB3KGEuaW5uZXJXaWR0aCxiKX1hPWIuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiYoIUh8fEgmJkoo IjkuNTAiKSk/Yi5kb2N1bWVudEVsZW1lbnQ6Yi5ib2R5O3JldHVybiBuZXcgdyhhLmNsaWVudFdpZHRo LGEuY2xpZW50SGVpZ2h0KX0sWGE9ZnVuY3Rpb24oKXtyZXR1cm4gV2EoZG9jdW1lbnQsYXJndW1lbnRz KX0sV2E9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iWzBdLGQ9YlsxXTtpZihJJiZkJiYoZC5uYW1lfHxkLnR5 cGUpKXtjPVsiPCIsY107ZC5uYW1lJiZjLnB1c2goJyBuYW1lPSInLHRhKGQubmFtZSksJyInKTtpZihk LnR5cGUpe2MucHVzaCgnIHR5cGU9IicsdGEoZC50eXBlKSwnIicpO2Q9ZWEoZCk7ZGVsZXRlIGQudHlw ZX1jLnB1c2goIj4iKTtjPWMuam9pbigiIil9dmFyIGU9CmEuY3JlYXRlRWxlbWVudChjKTtpZihkKWlm KHAoZCkpZS5jbGFzc05hbWU9ZDtlbHNlIFVhKGUsZCk7aWYoYi5sZW5ndGg+Mil7ZD1mdW5jdGlvbihp KXtpZihpKWUuYXBwZW5kQ2hpbGQocChpKT9hLmNyZWF0ZVRleHROb2RlKGkpOmkpfTtmb3IoYz0yO2M8 Yi5sZW5ndGg7YysrKXt2YXIgZj1iW2NdO2NhKGYpJiYhKGRhKGYpJiZmLm5vZGVUeXBlPjApP2thKFlh KGYpP21hKGYpOmYsZCk6ZChmKX19cmV0dXJuIGV9LFphPWZ1bmN0aW9uKGEsYil7YS5hcHBlbmRDaGls ZChiKX0sWWE9ZnVuY3Rpb24oYSl7aWYoYSYmdHlwZW9mIGEubGVuZ3RoPT0ibnVtYmVyIilpZihkYShh KSlyZXR1cm4gdHlwZW9mIGEuaXRlbT09ImZ1bmN0aW9uInx8dHlwZW9mIGEuaXRlbT09InN0cmluZyI7 ZWxzZSBpZihtKGEpPT0iZnVuY3Rpb24iKXJldHVybiB0eXBlb2YgYS5pdGVtPT0iZnVuY3Rpb24iO3Jl dHVybiBqfTt2YXIgJGE9ZG9jdW1lbnQsSz13aW5kb3c7dSgpO3ZhciBMPWZ1bmN0aW9uKGEsYil7Zm9y KHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJmIuY2Fs bChoLGFbY10sYyxhKX0sYWI9ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybiBh Lmxlbmd0aDtmb3IodmFyIGI9MSxjPWFyZ3VtZW50cy5sZW5ndGg7YjxjOysrYilhLnB1c2goYXJndW1l bnRzW2JdKTtyZXR1cm4gYS5sZW5ndGh9O2Z1bmN0aW9uIE0oYSl7cmV0dXJuIHR5cGVvZiBlbmNvZGVV UklDb21wb25lbnQ9PSJmdW5jdGlvbiI/ZW5jb2RlVVJJQ29tcG9uZW50KGEpOmVzY2FwZShhKX0KZnVu Y3Rpb24gYmIoYSxiLGMpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2QudHlw ZT0idGV4dC9qYXZhc2NyaXB0IjtpZihiKWQub25sb2FkPWI7aWYoYylkLmlkPWM7ZC5zcmM9YTt2YXIg ZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdO2lmKCFlKXJldHVybiBqO3dp bmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5hcHBlbmRDaGlsZChkKX0sMCk7cmV0dXJuIGd9ZnVu Y3Rpb24gY2IoYSxiKXthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0c3x8KGEuZ29vZ2xlX2ltYWdlX3JlcXVl c3RzPVtdKTt2YXIgYz1uZXcgSW1hZ2U7Yy5zcmM9YjthLmdvb2dsZV9pbWFnZV9yZXF1ZXN0cy5wdXNo KGMpfWZ1bmN0aW9uIGRiKGEpe2lmKGEgaW4gZWIpcmV0dXJuIGViW2FdO3JldHVybiBlYlthXT1uYXZp Z2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhKSE9LTF9dmFyIGViPXt9OwpmdW5j dGlvbiBmYigpe2lmKG5hdmlnYXRvci5wbHVnaW5zJiZuYXZpZ2F0b3IubWltZVR5cGVzLmxlbmd0aCl7 dmFyIGE9bmF2aWdhdG9yLnBsdWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCJdO2lmKGEmJmEuZGVzY3JpcHRp b24pcmV0dXJuIGEuZGVzY3JpcHRpb24ucmVwbGFjZSgvKFthLXpBLVpdfFxzKSsvLCIiKS5yZXBsYWNl KC8oXHMpK3IvLCIuIil9ZWxzZSBpZihuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFn ZW50LmluZGV4T2YoIldpbmRvd3MgQ0UiKT49MCl7YT0zO2Zvcih2YXIgYj0xO2I7KXRyeXtiPW5ldyBB Y3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaC4iKyhhKzEpKTthKyt9Y2F0 Y2goYyl7Yj1ofXJldHVybiBhLnRvU3RyaW5nKCl9ZWxzZSBpZihkYigibXNpZSIpJiYhd2luZG93Lm9w ZXJhKXtiPWg7dHJ5e2I9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZs YXNoLjciKX1jYXRjaChkKXthPQowO3RyeXtiPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFz aC5TaG9ja3dhdmVGbGFzaC42Iik7YT02O2IuQWxsb3dTY3JpcHRBY2Nlc3M9ImFsd2F5cyJ9Y2F0Y2go ZSl7aWYoYT09NilyZXR1cm4gYS50b1N0cmluZygpfXRyeXtiPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9j a3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpfWNhdGNoKGYpe319aWYoYil7YT1iLkdldFZhcmlhYmxl KCIkdmVyc2lvbiIpLnNwbGl0KCIgIilbMV07cmV0dXJuIGEucmVwbGFjZSgvLC9nLCIuIil9fXJldHVy biIwIn1mdW5jdGlvbiBOKGEpe3ZhciBiPWEuZ29vZ2xlX2FkX2Zvcm1hdDtpZihiKXJldHVybiBiLmlu ZGV4T2YoIl8wYWRzIik+MDtyZXR1cm4gYS5nb29nbGVfYWRfb3V0cHV0IT0iaHRtbCImJmEuZ29vZ2xl X251bV9yYWRsaW5rcz4wfWZ1bmN0aW9uIE8oYSl7cmV0dXJuISFhJiZhLmluZGV4T2YoIl9zZG8iKSE9 LTF9CmZ1bmN0aW9uIFAoYSxiKXtpZighKE1hdGgucmFuZG9tKCk8MS4wRS00KSl7dmFyIGM9TWF0aC5y YW5kb20oKTtpZihjPGIpe2I9TWF0aC5mbG9vcihjL2IqYS5sZW5ndGgpO3JldHVybiBhW2JdfX1yZXR1 cm4iIn0KdmFyIGdiPWZ1bmN0aW9uKGEpe2EudV90ej0tKG5ldyBEYXRlKS5nZXRUaW1lem9uZU9mZnNl dCgpO2EudV9oaXM9d2luZG93Lmhpc3RvcnkubGVuZ3RoO2EudV9qYXZhPW5hdmlnYXRvci5qYXZhRW5h YmxlZCgpO2lmKHdpbmRvdy5zY3JlZW4pe2EudV9oPXdpbmRvdy5zY3JlZW4uaGVpZ2h0O2EudV93PXdp bmRvdy5zY3JlZW4ud2lkdGg7YS51X2FoPXdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHQ7YS51X2F3PXdp bmRvdy5zY3JlZW4uYXZhaWxXaWR0aDthLnVfY2Q9d2luZG93LnNjcmVlbi5jb2xvckRlcHRofWlmKG5h dmlnYXRvci5wbHVnaW5zKWEudV9ucGx1Zz1uYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGg7aWYobmF2aWdh dG9yLm1pbWVUeXBlcylhLnVfbm1pbWU9bmF2aWdhdG9yLm1pbWVUeXBlcy5sZW5ndGh9LGhiPWZ1bmN0 aW9uKGEpe3ZhciBiPUs7aWYoYSYmYi50b3AhPWIpYj1iLnRvcDt0cnl7cmV0dXJuIGIuZG9jdW1lbnQm JiFiLmRvY3VtZW50LmJvZHk/bmV3IHcoLTEsCi0xKTpWYShifHx3aW5kb3cpfWNhdGNoKGMpe3JldHVy biBuZXcgdygtMTIyNDU5MzMsLTEyMjQ1OTMzKX19LGliPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5n dGg7aWYoYz09MClyZXR1cm4gMDtiPWJ8fDMwNTQxOTg5Njtmb3IodmFyIGQ9MDtkPGM7ZCsrKXt2YXIg ZT1hLmNoYXJDb2RlQXQoZCk7Yl49KGI8PDUpKyhiPj4yKStlJjQyOTQ5NjcyOTV9cmV0dXJuIGJ9LGpi PWZ1bmN0aW9uKGEpe2lmKGE9PWEudG9wKXJldHVybiAwO3ZhciBiPVtdO2IucHVzaChkb2N1bWVudC5V UkwpO2EubmFtZSYmYi5wdXNoKGEubmFtZSk7YT1nO2E9aGIoIWEpO2IucHVzaChhLndpZHRoLnRvU3Ry aW5nKCkpO2IucHVzaChhLmhlaWdodC50b1N0cmluZygpKTtiPWliKGIuam9pbigiIikpO3JldHVybiBi PjA/Yjo0Mjk0OTY3Mjk2K2J9O3ZhciBrYj17Z29vZ2xlX2FkX2NoYW5uZWw6ImNoYW5uZWwiLGdvb2ds ZV9hZF9ob3N0OiJob3N0Iixnb29nbGVfYWRfaG9zdF9jaGFubmVsOiJoX2NoIixnb29nbGVfYWRfaG9z dF90aWVyX2lkOiJodF9pZCIsZ29vZ2xlX2FkX3NlY3Rpb246InJlZ2lvbiIsZ29vZ2xlX2FkX3R5cGU6 ImFkX3R5cGUiLGdvb2dsZV9hZHRlc3Q6ImFkdGVzdCIsZ29vZ2xlX2FsbG93X2V4cGFuZGFibGVfYWRz OiJlYSIsZ29vZ2xlX2FsdGVybmF0ZV9hZF91cmw6ImFsdGVybmF0ZV9hZF91cmwiLGdvb2dsZV9hbHRl cm5hdGVfY29sb3I6ImFsdF9jb2xvciIsZ29vZ2xlX2JpZDoiYmlkIixnb29nbGVfY2l0eToiZ2NzIixn b29nbGVfY29sb3JfYmc6ImNvbG9yX2JnIixnb29nbGVfY29sb3JfYm9yZGVyOiJjb2xvcl9ib3JkZXIi LGdvb2dsZV9jb2xvcl9saW5lOiJjb2xvcl9saW5lIixnb29nbGVfY29sb3JfbGluazoiY29sb3JfbGlu ayIsZ29vZ2xlX2NvbG9yX3RleHQ6ImNvbG9yX3RleHQiLGdvb2dsZV9jb2xvcl91cmw6ImNvbG9yX3Vy bCIsCmdvb2dsZV9jb250ZW50czoiY29udGVudHMiLGdvb2dsZV9jb3VudHJ5OiJnbCIsZ29vZ2xlX2N1 c3RfYWdlOiJjdXN0X2FnZSIsZ29vZ2xlX2N1c3RfY2g6ImN1c3RfY2giLGdvb2dsZV9jdXN0X2dlbmRl cjoiY3VzdF9nZW5kZXIiLGdvb2dsZV9jdXN0X2lkOiJjdXN0X2lkIixnb29nbGVfY3VzdF9pbnRlcmVz dHM6ImN1c3RfaW50ZXJlc3RzIixnb29nbGVfY3VzdF9qb2I6ImN1c3Rfam9iIixnb29nbGVfY3VzdF9s OiJjdXN0X2wiLGdvb2dsZV9jdXN0X2xoOiJjdXN0X2xoIixnb29nbGVfY3VzdF91X3VybDoiY3VzdF91 X3VybCIsZ29vZ2xlX2Rpc2FibGVfdmlkZW9fYXV0b3BsYXk6ImRpc2FibGVfdmlkZW9fYXV0b3BsYXki LGdvb2dsZV9lZDoiZWQiLGdvb2dsZV9lbmNvZGluZzoib2UiLGdvb2dsZV9mZWVkYmFjazoiZmVlZGJh Y2tfbGluayIsZ29vZ2xlX2ZsYXNoX3ZlcnNpb246ImZsYXNoIixnb29nbGVfZm9udF9mYWNlOiJmIixn b29nbGVfZm9udF9zaXplOiJmcyIsZ29vZ2xlX2hpbnRzOiJoaW50cyIsCmdvb2dsZV9rdzoia3ciLGdv b2dsZV9rd190eXBlOiJrd190eXBlIixnb29nbGVfbGFuZ3VhZ2U6ImhsIixnb29nbGVfcGFnZV91cmw6 InVybCIsZ29vZ2xlX3JlZ2lvbjoiZ3IiLGdvb2dsZV9yZXVzZV9jb2xvcnM6InJldXNlX2NvbG9ycyIs Z29vZ2xlX3NhZmU6ImFkc2FmZSIsZ29vZ2xlX3RhZ19pbmZvOiJndXQiLGdvb2dsZV90YXJnZXRpbmc6 InRhcmdldGluZyIsZ29vZ2xlX3VpX2ZlYXR1cmVzOiJ1aSIsZ29vZ2xlX3VpX3ZlcnNpb246InVpdiIs Z29vZ2xlX3ZpZGVvX2RvY19pZDoidmlkZW9fZG9jX2lkIixnb29nbGVfdmlkZW9fcHJvZHVjdF90eXBl OiJ2aWRlb19wcm9kdWN0X3R5cGUifSxsYj17Z29vZ2xlX2FkX2NsaWVudDoiY2xpZW50Iixnb29nbGVf YWRfZm9ybWF0OiJmb3JtYXQiLGdvb2dsZV9hZF9vdXRwdXQ6Im91dHB1dCIsZ29vZ2xlX2FkX2NhbGxi YWNrOiJjYWxsYmFjayIsZ29vZ2xlX2FkX2hlaWdodDoiaCIsZ29vZ2xlX2FkX292ZXJyaWRlOiJnb29n bGVfYWRfb3ZlcnJpZGUiLApnb29nbGVfYWRfc2xvdDoic2xvdG5hbWUiLGdvb2dsZV9hZF93aWR0aDoi dyIsZ29vZ2xlX2N0cl90aHJlc2hvbGQ6ImN0cl90Iixnb29nbGVfaW1hZ2Vfc2l6ZToiaW1hZ2Vfc2l6 ZSIsZ29vZ2xlX2xhc3RfbW9kaWZpZWRfdGltZToibG10Iixnb29nbGVfbWF4X251bV9hZHM6Im51bV9h ZHMiLGdvb2dsZV9tYXhfcmFkbGlua19sZW46Im1heF9yYWRsaW5rX2xlbiIsZ29vZ2xlX251bV9yYWRs aW5rczoibnVtX3JhZGxpbmtzIixnb29nbGVfbnVtX3JhZGxpbmtzX3Blcl91bml0OiJudW1fcmFkbGlu a3NfcGVyX3VuaXQiLGdvb2dsZV9vbmx5X2Fkc193aXRoX3ZpZGVvOiJvbmx5X2Fkc193aXRoX3ZpZGVv Iixnb29nbGVfcmxfZGVzdF91cmw6InJsX2Rlc3RfdXJsIixnb29nbGVfcmxfZmlsdGVyaW5nOiJybF9m aWx0ZXJpbmciLGdvb2dsZV9ybF9tb2RlOiJybF9tb2RlIixnb29nbGVfcnQ6InJ0Iixnb29nbGVfc2tp cDoic2tpcCJ9LG1iPXtnb29nbGVfb25seV9weXZfYWRzOiJweXYiLApnb29nbGVfd2l0aF9weXZfYWRz OiJ3aXRocHl2In07ZnVuY3Rpb24gbmIoYSxiKXt0cnl7cmV0dXJuIGEudG9wLmRvY3VtZW50LlVSTD09 Yi5VUkx9Y2F0Y2goYyl7fXJldHVybiBqfWZ1bmN0aW9uIHBiKGEsYixjLGQpe2M9Y3x8YS5nb29nbGVf YWRfd2lkdGg7ZD1kfHxhLmdvb2dsZV9hZF9oZWlnaHQ7aWYobmIoYSxiKSlyZXR1cm4gajt2YXIgZT1i LmRvY3VtZW50RWxlbWVudDtpZihjJiZkKXt2YXIgZj0xLGk9MTtpZihhLmlubmVySGVpZ2h0KXtmPWEu aW5uZXJXaWR0aDtpPWEuaW5uZXJIZWlnaHR9ZWxzZSBpZihlJiZlLmNsaWVudEhlaWdodCl7Zj1lLmNs aWVudFdpZHRoO2k9ZS5jbGllbnRIZWlnaHR9ZWxzZSBpZihiLmJvZHkpe2Y9Yi5ib2R5LmNsaWVudFdp ZHRoO2k9Yi5ib2R5LmNsaWVudEhlaWdodH1pZihpPjIqZHx8Zj4yKmMpcmV0dXJuIGp9cmV0dXJuIGd9 ZnVuY3Rpb24gcWIoYSxiKXtMKGIsZnVuY3Rpb24oYyxkKXthWyJnb29nbGVfIitkXT1jfSl9CmZ1bmN0 aW9uIHJiKGEsYil7aWYoIWIpcmV0dXJuIGEuVVJMO3JldHVybiBhLnJlZmVycmVyfWZ1bmN0aW9uIHNi KGEsYil7aWYoIWImJmEuZ29vZ2xlX3JlZmVycmVyX3VybD09aClyZXR1cm4iMCI7ZWxzZSBpZihiJiZh Lmdvb2dsZV9yZWZlcnJlcl91cmw9PWgpcmV0dXJuIjEiO2Vsc2UgaWYoIWImJmEuZ29vZ2xlX3JlZmVy cmVyX3VybCE9aClyZXR1cm4iMiI7ZWxzZSBpZihiJiZhLmdvb2dsZV9yZWZlcnJlcl91cmwhPWgpcmV0 dXJuIjMiO3JldHVybiI0In1mdW5jdGlvbiB0YihhLGIsYyxkKXthLnBhZ2VfdXJsPXJiKGMsZCk7YS5w YWdlX2xvY2F0aW9uPWh9ZnVuY3Rpb24gdWIoYSxiLGMsZCl7YS5wYWdlX3VybD1iLmdvb2dsZV9wYWdl X3VybDthLnBhZ2VfbG9jYXRpb249cmIoYyxkKXx8IkVNUFRZIn0KZnVuY3Rpb24gdmIoYSxiKXt2YXIg Yz17fSxkPXBiKGEsYixhLmdvb2dsZV9hZF93aWR0aCxhLmdvb2dsZV9hZF9oZWlnaHQpO2MuaWZyYW1p bmc9c2IoYSxkKTthLmdvb2dsZV9wYWdlX3VybD91YihjLGEsYixkKTp0YihjLGEsYixkKTtjLmxhc3Rf bW9kaWZpZWRfdGltZT1iLlVSTD09Yy5wYWdlX3VybD9EYXRlLnBhcnNlKGIubGFzdE1vZGlmaWVkKS8x RTM6aDtjLnJlZmVycmVyX3VybD1kP2EuZ29vZ2xlX3JlZmVycmVyX3VybDphLmdvb2dsZV9wYWdlX3Vy bCYmYS5nb29nbGVfcmVmZXJyZXJfdXJsP2EuZ29vZ2xlX3JlZmVycmVyX3VybDpiLnJlZmVycmVyO3Jl dHVybiBjfWZ1bmN0aW9uIHdiKGEpe3ZhciBiPXt9LGM9YS5VUkwuc3Vic3RyaW5nKGEuVVJMLmxhc3RJ bmRleE9mKCJodHRwIikpO2IuaWZyYW1pbmc9aDtiLnBhZ2VfdXJsPWM7Yi5wYWdlX2xvY2F0aW9uPWEu VVJMO2IubGFzdF9tb2RpZmllZF90aW1lPWg7Yi5yZWZlcnJlcl91cmw9YztyZXR1cm4gYn0KZnVuY3Rp b24geGIoYSxiKXtiPXliKGEsYik7cWIoYSxiKX1mdW5jdGlvbiB5YihhLGIpe3JldHVybiBhPWEuZ29v Z2xlX3BhZ2VfdXJsPT1oJiZ6YltiLmRvbWFpbl0/d2IoYik6dmIoYSxiKX12YXIgemI9e307emJbImFk LnlpZWxkbWFuYWdlci5jb20iXT1nO3ZhciBBYj1yKCIwLjAwMDEiLDApLEJiPXIoIjEiLDAuMDEpLENi PXIoIjAuMDEiLDApLERiPXIoIjAuMDEiLDApLEViPXIoIjAuMDA4IiwwKSxGYj1yKCIwLjAxIiwwKSxH Yj1yKCIwIiwwKTt2YXIgSGI9cygiZmFsc2UiLGopLEliPXMoImZhbHNlIixqKSxKYj1zKCJmYWxzZSIs aik7dmFyIEtiPWZ1bmN0aW9uKGEsYixjKXtiPWZhKGIsbCxhKTthPXdpbmRvdy5vbmVycm9yO3dpbmRv dy5vbmVycm9yPWI7dHJ5e2MoKX1jYXRjaChkKXtjPWQudG9TdHJpbmcoKTt2YXIgZT0iIjtpZihkLmZp bGVOYW1lKWU9ZC5maWxlTmFtZTt2YXIgZj0tMTtpZihkLmxpbmVOdW1iZXIpZj1kLmxpbmVOdW1iZXI7 Yj1iKGMsZSxmKTtpZighYil0aHJvdyBkO313aW5kb3cub25lcnJvcj1hfTtxKCJnb29nbGVfcHJvdGVj dEFuZFJ1biIsS2IpOwp2YXIgTWI9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoTWF0aC5yYW5kb20oKTwwLjAx KXt2YXIgZT0kYTthPVsiaHR0cDovLyIsamEoKSwiL3BhZ2VhZC9nZW5fMjA0IiwiP2lkPWpzZXJyb3Ii LCImanNjYj0iLEhiPzE6MCwiJmpzY2Q9IixJYj8xOjAsIiZjb250ZXh0PSIsTShhKSwiJm1zZz0iLE0o YiksIiZmaWxlPSIsTShjKSwiJmxpbmU9IixNKGQudG9TdHJpbmcoKSksIiZ1cmw9IixNKGUuVVJMLnN1 YnN0cmluZygwLDUxMikpLCImcmVmPSIsTShlLnJlZmVycmVyLnN1YnN0cmluZygwLDUxMikpXTthLnB1 c2goTGIoKSk7Y2IoSyxhLmpvaW4oIiIpKX1yZXR1cm4hSmJ9O3EoImdvb2dsZV9oYW5kbGVFcnJvciIs TWIpOwp2YXIgT2I9ZnVuY3Rpb24oYSl7TmJ8PWF9LE5iPTAsTGI9ZnVuY3Rpb24oKXt2YXIgYT1bIiZj bGllbnQ9IixNKEsuZ29vZ2xlX2FkX2NsaWVudCksIiZmb3JtYXQ9IixNKEsuZ29vZ2xlX2FkX2Zvcm1h dCksIiZzbG90bmFtZT0iLE0oSy5nb29nbGVfYWRfc2xvdCksIiZvdXRwdXQ9IixNKEsuZ29vZ2xlX2Fk X291dHB1dCksIiZhZF90eXBlPSIsTShLLmdvb2dsZV9hZF90eXBlKV07cmV0dXJuIGEuam9pbigiIil9 O3ZhciBRPSIiLFJiPWZ1bmN0aW9uKCl7aWYod2luZG93Lmdvb2dsZV9hZF9mcmFtZWJvcmRlcj09aCl3 aW5kb3cuZ29vZ2xlX2FkX2ZyYW1lYm9yZGVyPTA7aWYod2luZG93Lmdvb2dsZV9hZF9vdXRwdXQ9PWgp d2luZG93Lmdvb2dsZV9hZF9vdXRwdXQ9Imh0bWwiO2lmKE8od2luZG93Lmdvb2dsZV9hZF9mb3JtYXQp KXt2YXIgYT13aW5kb3cuZ29vZ2xlX2FkX2Zvcm1hdC5tYXRjaCgvXihcZCspeChcZCspXy4qLyk7aWYo YSl7d2luZG93Lmdvb2dsZV9hZF93aWR0aD1wYXJzZUludChhWzFdLDEwKTt3aW5kb3cuZ29vZ2xlX2Fk X2hlaWdodD1wYXJzZUludChhWzJdLDEwKTt3aW5kb3cuZ29vZ2xlX2FkX291dHB1dD0iaHRtbCJ9fXdp bmRvdy5nb29nbGVfYWRfZm9ybWF0PVBiKHdpbmRvdy5nb29nbGVfYWRfZm9ybWF0LHdpbmRvdy5nb29n bGVfYWRfb3V0cHV0LHdpbmRvdy5nb29nbGVfYWRfd2lkdGgsd2luZG93Lmdvb2dsZV9hZF9oZWlnaHQs d2luZG93Lmdvb2dsZV9hZF9zbG90LAohIXdpbmRvdy5nb29nbGVfb3ZlcnJpZGVfZm9ybWF0KTtRPXdp bmRvdy5nb29nbGVfYWRfY2xpZW50fHwiIjt3aW5kb3cuZ29vZ2xlX2FkX2NsaWVudD1RYih3aW5kb3cu Z29vZ2xlX2FkX2Zvcm1hdCx3aW5kb3cuZ29vZ2xlX2FkX2NsaWVudCk7eGIod2luZG93LGRvY3VtZW50 KTtpZih3aW5kb3cuZ29vZ2xlX251bV9zbG90c19ieV9jaGFubmVsPT1oKXdpbmRvdy5nb29nbGVfbnVt X3Nsb3RzX2J5X2NoYW5uZWw9e307aWYod2luZG93Lmdvb2dsZV92aWV3ZWRfaG9zdF9jaGFubmVscz09 aCl3aW5kb3cuZ29vZ2xlX3ZpZXdlZF9ob3N0X2NoYW5uZWxzPXt9O2lmKHdpbmRvdy5nb29nbGVfbnVt X3Nsb3RzX2J5X2NsaWVudD09aCl3aW5kb3cuZ29vZ2xlX251bV9zbG90c19ieV9jbGllbnQ9e307aWYo d2luZG93Lmdvb2dsZV9wcmV2X2FkX2Zvcm1hdHNfYnlfcmVnaW9uPT1oKXdpbmRvdy5nb29nbGVfcHJl dl9hZF9mb3JtYXRzX2J5X3JlZ2lvbj17fTtpZih3aW5kb3cuZ29vZ2xlX3ByZXZfYWRfc2xvdG5hbWVz X2J5X3JlZ2lvbj09Cmgpd2luZG93Lmdvb2dsZV9wcmV2X2FkX3Nsb3RuYW1lc19ieV9yZWdpb249e307 aWYod2luZG93Lmdvb2dsZV9jb3JyZWxhdG9yPT1oKXdpbmRvdy5nb29nbGVfY29ycmVsYXRvcj0obmV3 IERhdGUpLmdldFRpbWUoKTtpZih3aW5kb3cuZ29vZ2xlX2Fkc2xvdF9sb2FkZWQ9PWgpd2luZG93Lmdv b2dsZV9hZHNsb3RfbG9hZGVkPXt9O2lmKHdpbmRvdy5nb29nbGVfYWRDb250ZW50c0J5U2xvdD09aCl3 aW5kb3cuZ29vZ2xlX2FkQ29udGVudHNCeVNsb3Q9e307aWYod2luZG93Lmdvb2dsZV9mbGFzaF92ZXJz aW9uPT1oKXdpbmRvdy5nb29nbGVfZmxhc2hfdmVyc2lvbj1mYigpO2lmKHdpbmRvdy5nb29nbGVfbmV3 X2RvbWFpbl9jaGVja2VkPT1oKXdpbmRvdy5nb29nbGVfbmV3X2RvbWFpbl9jaGVja2VkPTA7aWYod2lu ZG93Lmdvb2dsZV9uZXdfZG9tYWluX2VuYWJsZWQ9PWgpd2luZG93Lmdvb2dsZV9uZXdfZG9tYWluX2Vu YWJsZWQ9MDtpZighd2luZG93Lmdvb2dsZV9udW1fYWRfc2xvdHMpd2luZG93Lmdvb2dsZV9udW1fYWRf c2xvdHM9CjA7aWYoIXdpbmRvdy5nb29nbGVfbnVtXzBhZF9zbG90cyl3aW5kb3cuZ29vZ2xlX251bV8w YWRfc2xvdHM9MDtpZighd2luZG93Lmdvb2dsZV9udW1fc2RvX3Nsb3RzKXdpbmRvdy5nb29nbGVfbnVt X3Nkb19zbG90cz0wO3dpbmRvdy5nb29nbGVfYWRfc2VjdGlvbj13aW5kb3cuZ29vZ2xlX2FkX3NlY3Rp b258fHdpbmRvdy5nb29nbGVfYWRfcmVnaW9ufHwiIjt3aW5kb3cuZ29vZ2xlX2NvdW50cnk9d2luZG93 Lmdvb2dsZV9jb3VudHJ5fHx3aW5kb3cuZ29vZ2xlX2dsfHwiIjthPShuZXcgRGF0ZSkuZ2V0VGltZSgp O2lmKG8od2luZG93Lmdvb2dsZV9jb2xvcl9iZykpd2luZG93Lmdvb2dsZV9jb2xvcl9iZz1SKHdpbmRv dy5nb29nbGVfY29sb3JfYmcsYSk7aWYobyh3aW5kb3cuZ29vZ2xlX2NvbG9yX3RleHQpKXdpbmRvdy5n b29nbGVfY29sb3JfdGV4dD1SKHdpbmRvdy5nb29nbGVfY29sb3JfdGV4dCxhKTtpZihvKHdpbmRvdy5n b29nbGVfY29sb3JfbGluaykpd2luZG93Lmdvb2dsZV9jb2xvcl9saW5rPQpSKHdpbmRvdy5nb29nbGVf Y29sb3JfbGluayxhKTtpZihvKHdpbmRvdy5nb29nbGVfY29sb3JfdXJsKSl3aW5kb3cuZ29vZ2xlX2Nv bG9yX3VybD1SKHdpbmRvdy5nb29nbGVfY29sb3JfdXJsLGEpO2lmKG8od2luZG93Lmdvb2dsZV9jb2xv cl9ib3JkZXIpKXdpbmRvdy5nb29nbGVfY29sb3JfYm9yZGVyPVIod2luZG93Lmdvb2dsZV9jb2xvcl9i b3JkZXIsYSk7aWYobyh3aW5kb3cuZ29vZ2xlX2NvbG9yX2xpbmUpKXdpbmRvdy5nb29nbGVfY29sb3Jf bGluZT1SKHdpbmRvdy5nb29nbGVfY29sb3JfbGluZSxhKX0sU2I9ZnVuY3Rpb24oYSl7TChrYixmdW5j dGlvbihiLGMpe2FbY109aH0pO0wobGIsZnVuY3Rpb24oYixjKXthW2NdPWh9KTtMKG1iLGZ1bmN0aW9u KGIsYyl7YVtjXT1ofSk7YS5nb29nbGVfY29udGFpbmVyX2lkPWg7YS5nb29nbGVfZWlkcz1oO2EuZ29v Z2xlX3BhZ2VfbG9jYXRpb249aDthLmdvb2dsZV9yZWZlcnJlcl91cmw9aDthLmdvb2dsZV9hZF9yZWdp b249aDsKYS5nb29nbGVfZ2w9aH0sUj1mdW5jdGlvbihhLGIpe09iKDIpO3JldHVybiBhW2IlYS5sZW5n dGhdfSxRYj1mdW5jdGlvbihhLGIpe2lmKCFiKXJldHVybiIiO2I9Yi50b0xvd2VyQ2FzZSgpO3JldHVy biBiPU8oYSk/VGIoYik6VWIoYil9LFViPWZ1bmN0aW9uKGEpe2lmKGEmJmEuc3Vic3RyaW5nKDAsMykh PSJjYS0iKWE9ImNhLSIrYTtyZXR1cm4gYX0sVGI9ZnVuY3Rpb24oYSl7aWYoYSYmYS5zdWJzdHJpbmco MCw3KSE9ImNhLWFmZi0iKWE9ImNhLWFmZi0iK2E7cmV0dXJuIGF9LFBiPWZ1bmN0aW9uKGEsYixjLGQs ZSxmKXtpZighYSYmYj09Imh0bWwiKWE9YysieCIrZDtyZXR1cm4gYT1WYihhLGUsZik/YS50b0xvd2Vy Q2FzZSgpOiIifSxWYj1mdW5jdGlvbihhLGIsYyl7aWYoIWEpcmV0dXJuIGo7aWYoIWIpcmV0dXJuIGc7 cmV0dXJuIGN9O3ZhciBTPWRvY3VtZW50LFQ9bmF2aWdhdG9yLFU9d2luZG93OwpmdW5jdGlvbiBXYigp e3ZhciBhPVMuY29va2llLGI9TWF0aC5yb3VuZCgobmV3IERhdGUpLmdldFRpbWUoKS8xRTMpLGM9VS5n b29nbGVfYW5hbHl0aWNzX2RvbWFpbl9uYW1lO2M9dHlwZW9mIGM9PSJ1bmRlZmluZWQiP1hiKCJhdXRv Iik6WGIoYyk7dmFyIGQ9YS5pbmRleE9mKCJfX3V0bWE9IitjKyIuIik+LTEsZT1hLmluZGV4T2YoIl9f dXRtYj0iK2MpPi0xLGY9YS5pbmRleE9mKCJfX3V0bWM9IitjKT4tMSxpPXt9LG49ISFVJiYhIVUuZ2FH bG9iYWw7aWYoZCl7YT1hLnNwbGl0KCJfX3V0bWE9IitjKyIuIilbMV0uc3BsaXQoIjsiKVswXS5zcGxp dCgiLiIpO2kuc2lkPWUmJmY/YVszXSsiIjpuJiZVLmdhR2xvYmFsLnNpZD9VLmdhR2xvYmFsLnNpZDpi KyIiO2kudmlkPWFbMF0rIi4iK2FbMV07aS5mcm9tX2Nvb2tpZT1nfWVsc2V7aS5zaWQ9biYmVS5nYUds b2JhbC5zaWQ/VS5nYUdsb2JhbC5zaWQ6YisiIjtpLnZpZD1uJiZVLmdhR2xvYmFsLnZpZD9VLmdhR2xv YmFsLnZpZDoKKE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoyMTQ3NDgzNjQ3KV5ZYigpJjIxNDc0ODM2 NDcpKyIuIitiO2kuZnJvbV9jb29raWU9an1pLmRoPWM7aS5oaWQ9biYmVS5nYUdsb2JhbC5oaWQ/VS5n YUdsb2JhbC5oaWQ6TWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjIxNDc0ODM2NDcpO3JldHVybiBVLmdh R2xvYmFsPWl9CmZ1bmN0aW9uIFliKCl7dmFyIGE9Uy5jb29raWU/Uy5jb29raWU6IiIsYj1VLmhpc3Rv cnkubGVuZ3RoLGMsZD1bVC5hcHBOYW1lLFQudmVyc2lvbixULmxhbmd1YWdlP1QubGFuZ3VhZ2U6VC5i cm93c2VyTGFuZ3VhZ2UsVC5wbGF0Zm9ybSxULnVzZXJBZ2VudCxULmphdmFFbmFibGVkKCk/MTowXS5q b2luKCIiKTtpZihVLnNjcmVlbilkKz1VLnNjcmVlbi53aWR0aCsieCIrVS5zY3JlZW4uaGVpZ2h0K1Uu c2NyZWVuLmNvbG9yRGVwdGg7ZWxzZSBpZihVLmphdmEpe2M9amF2YS5hd3QuVG9vbGtpdC5nZXREZWZh dWx0VG9vbGtpdCgpLmdldFNjcmVlblNpemUoKTtkKz1jLnNjcmVlbi53aWR0aCsieCIrYy5zY3JlZW4u aGVpZ2h0fWQrPWE7ZCs9Uy5yZWZlcnJlcj9TLnJlZmVycmVyOiIiO2ZvcihhPWQubGVuZ3RoO2I+MDsp ZCs9Yi0tXmErKztyZXR1cm4gWmIoZCl9CmZ1bmN0aW9uIFpiKGEpe3ZhciBiPTEsYz0wLGQ7aWYoIShh PT11bmRlZmluZWR8fGE9PSIiKSl7Yj0wO2ZvcihkPWEubGVuZ3RoLTE7ZD49MDtkLS0pe2M9YS5jaGFy Q29kZUF0KGQpO2I9KGI8PDYmMjY4NDM1NDU1KStjKyhjPDwxNCk7Yz1iJjI2NjMzODMwNDtiPWMhPTA/ Yl5jPj4yMTpifX1yZXR1cm4gYn1mdW5jdGlvbiBYYihhKXtpZighYXx8YT09IiJ8fGE9PSJub25lIily ZXR1cm4gMTtpZigiYXV0byI9PWEpe2E9Uy5kb21haW47aWYoInd3dy4iPT1hLnN1YnN0cmluZygwLDQp KWE9YS5zdWJzdHJpbmcoNCxhLmxlbmd0aCl9cmV0dXJuIFpiKGEudG9Mb3dlckNhc2UoKSl9O3ZhciBW PWZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0QnVja2V0PVtdO3RoaXMubGF5ZXJzPXt9O2Zvcih2YXIgYT0w LGI9YXJndW1lbnRzLmxlbmd0aDthPGI7KythKXRoaXMubGF5ZXJzW2FyZ3VtZW50c1thXV09IiJ9LCRi PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1uZXcgVixjPTAsZD1hLmRlZmF1bHRCdWNrZXQubGVuZ3RoO2M8 ZDsrK2MpYi5kZWZhdWx0QnVja2V0LnB1c2goYS5kZWZhdWx0QnVja2V0W2NdKTtMKGEubGF5ZXJzLGZh KFYucHJvdG90eXBlLmYsYikpO3JldHVybiBifSxhYz1mdW5jdGlvbihhKXtpZighKGEmJmEuZGVmYXVs dEJ1Y2tldCYmYS5kZWZhdWx0QnVja2V0LnB1c2gmJmEubGF5ZXJzKSlyZXR1cm4gajt2YXIgYj1nLGM9 ZnVuY3Rpb24oZCxlKXtpZighKGUgaW4gYSl8fHR5cGVvZiBkIT10eXBlb2YgYVtlXSliPWp9O0woVi5w cm90b3R5cGUsYyk7cmV0dXJuIGJ9O1YucHJvdG90eXBlLmY9ZnVuY3Rpb24oYSxiKXt0aGlzLmxheWVy c1tiXT1hfTsKVi5wcm90b3R5cGUuej1mdW5jdGlvbihhLGIpe2lmKGE9PSIiKXJldHVybiIiO2lmKCFi KXt0aGlzLmRlZmF1bHRCdWNrZXQucHVzaChhKTtyZXR1cm4gYX1pZih0aGlzLmxheWVycy5oYXNPd25Q cm9wZXJ0eShiKSlyZXR1cm4gdGhpcy5sYXllcnNbYl09YTtyZXR1cm4iIn07Vi5wcm90b3R5cGUuZD1m dW5jdGlvbihhLGIsYyl7aWYoIShNYXRoLnJhbmRvbSgpPDEuMEUtNCkmJnRoaXMucChjKSl7dmFyIGQ9 TWF0aC5yYW5kb20oKTtpZihkPGIpe2I9TWF0aC5mbG9vcihhLmxlbmd0aCpkL2IpO2lmKGE9YVtiXSly ZXR1cm4gdGhpcy56KGEsYyl9fXJldHVybiIifTtWLnByb3RvdHlwZS5wPWZ1bmN0aW9uKGEpe2lmKCFh KXJldHVybiBnO3JldHVybiB0aGlzLmxheWVycy5oYXNPd25Qcm9wZXJ0eShhKSYmdGhpcy5sYXllcnNb YV09PSIifTtWLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe2lmKHRoaXMubGF5ZXJzLmhhc093blByb3Bl cnR5KGEpKXJldHVybiB0aGlzLmxheWVyc1thXTtyZXR1cm4iIn07ClYucHJvdG90eXBlLm89ZnVuY3Rp b24oKXt2YXIgYT1bXSxiPWZ1bmN0aW9uKGMpe2MhPSIiJiZhLnB1c2goYyl9O0wodGhpcy5sYXllcnMs Yik7aWYodGhpcy5kZWZhdWx0QnVja2V0Lmxlbmd0aD4wJiZhLmxlbmd0aD4wKXJldHVybiB0aGlzLmRl ZmF1bHRCdWNrZXQuam9pbigiLCIpKyIsIithLmpvaW4oIiwiKTtyZXR1cm4gdGhpcy5kZWZhdWx0QnVj a2V0LmpvaW4oIiwiKSthLmpvaW4oIiwiKX07dmFyIGJjPXtnb29nbGU6MSxnb29nbGVncm91cHM6MSxn bWFpbDoxLGdvb2dsZW1haWw6MSxnb29nbGVpbWFnZXM6MSxnb29nbGVwcmludDoxfTtmdW5jdGlvbiBj YyhhKXthPWEuZ29vZ2xlX3BhZ2VfbG9jYXRpb258fGEuZ29vZ2xlX3BhZ2VfdXJsO2lmKCFhKXJldHVy biBqO2E9YS50b1N0cmluZygpO2lmKGEuaW5kZXhPZigiaHR0cDovLyIpPT0wKWE9YS5zdWJzdHJpbmco NyxhLmxlbmd0aCk7ZWxzZSBpZihhLmluZGV4T2YoImh0dHBzOi8vIik9PTApYT1hLnN1YnN0cmluZyg4 LGEubGVuZ3RoKTt2YXIgYj1hLmluZGV4T2YoIi8iKTtpZihiPT0tMSliPWEubGVuZ3RoO2E9YS5zdWJz dHJpbmcoMCxiKTthPWEuc3BsaXQoIi4iKTtiPWo7aWYoYS5sZW5ndGg+PTMpYj1hW2EubGVuZ3RoLTNd aW4gYmM7aWYoYS5sZW5ndGg+PTIpYj1ifHxhW2EubGVuZ3RoLTJdaW4gYmM7cmV0dXJuIGJ9CmZ1bmN0 aW9uIGRjKGEsYixjKXtpZihjYyhhKSl7YS5nb29nbGVfbmV3X2RvbWFpbl9jaGVja2VkPTE7cmV0dXJu IGp9aWYoYS5nb29nbGVfbmV3X2RvbWFpbl9jaGVja2VkPT0wKXt2YXIgZD1NYXRoLnJhbmRvbSgpO2lm KGQ8PWMpe2M9Imh0dHA6Ly8iK2lhKCkrIi9wYWdlYWQvdGVzdF9kb21haW4uanMiO2Q9InNjcmlwdCI7 Yi53cml0ZSgiPCIrZCsnIHNyYz0iJytjKyciPjwvJytkKyI+Iik7YS5nb29nbGVfbmV3X2RvbWFpbl9j aGVja2VkPTE7cmV0dXJuIGd9fXJldHVybiBqfXZhciBlYz1mdW5jdGlvbihhLGIpe2lmKCFiKXJldHVy biBqO2lmKGIuYSgiMSIpPT0iNDQ5MDEyMTEiKXJldHVybiAwPT1hJTI7aWYoYi5hKCIxIik9PSI0NDkw MTIxNSIpcmV0dXJuIDA9PU1hdGguZmxvb3IoYS8yKSUyO2lmKGIuYSgiMSIpPT0iNDQ5MDEyMTYiKXJl dHVybiAxPT1NYXRoLmZsb29yKGEvMiklMjtyZXR1cm4gan07CmZ1bmN0aW9uIGZjKGEsYixjKXtpZigh Y2MoYSkmJmEuZ29vZ2xlX25ld19kb21haW5fZW5hYmxlZD09MSlyZXR1cm4gZWMoYixjKT8iaHR0cDov LyIrdCgiIiwiZ29vZ2xlYWRzMi5nLmRvdWJsZWNsaWNrLm5ldCIpOiJodHRwOi8vIitpYSgpO3JldHVy biJodHRwOi8vIitqYSgpfTt2YXIgVz1mdW5jdGlvbihhKXt0aGlzLkE9YTt0aGlzLmk9W107dGhpcy5o PTA7dGhpcy5iPVtdO3RoaXMudD0wO3RoaXMuYz1bXTt0aGlzLnI9ajt0aGlzLmo9dGhpcy5rPSIiO3Ro aXMucT1qfTtXLnByb3RvdHlwZS52PWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5BW2JdLGQ9dGhpcy5p O3RoaXMuQVtiXT1mdW5jdGlvbihlKXtpZihlJiZlLmxlbmd0aD4wKXt2YXIgZj1lLmxlbmd0aD4xP2Vb MV0udXJsOmg7ZC5wdXNoKFthLHdhKGVbMF0udXJsKSxmXSl9YyhlKX19O1cucHJvdG90eXBlLnU9ZnVu Y3Rpb24oKXt0aGlzLmgrK307Vy5wcm90b3R5cGUudz1mdW5jdGlvbihhKXt0aGlzLmIucHVzaChhKX07 dmFyIGdjPSJodHRwOi8vIit1KCkrIi9wYWdlYWQvb3NkLmpzIjtXLnByb3RvdHlwZS5zPWZ1bmN0aW9u KCl7aWYoIXRoaXMucil7YmIoZ2MpO3RoaXMucj1nfX07ClcucHJvdG90eXBlLmw9ZnVuY3Rpb24oYSl7 aWYodGhpcy5oPjApZm9yKHZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUi KSxjPXRoaXMucT8iZ29vZ2xlX2Fkc19pZnJhbWVfIjoiZ29vZ2xlX2Fkc19mcmFtZSIsZD0wO2Q8Yi5s ZW5ndGg7ZCsrKXt2YXIgZT1iLml0ZW0oZCk7ZS5zcmMmJmUubmFtZSYmZS5uYW1lLmluZGV4T2YoYyk9 PTAmJmEoZSxlLnNyYyl9fTsKVy5wcm90b3R5cGUubT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmk7aWYo Yi5sZW5ndGg+MClmb3IodmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKSxkPTA7 ZDxjLmxlbmd0aDtkKyspZm9yKHZhciBlPTA7ZTxiLmxlbmd0aDtlKyspaWYoYy5pdGVtKGQpLmhyZWY9 PWJbZV1bMV0pe3ZhciBmPWMuaXRlbShkKS5wYXJlbnROb2RlO2lmKGJbZV1bMl0pZm9yKHZhciBpPWYs bj0wO248NDtuKyspe2lmKGkuaW5uZXJIVE1MLmluZGV4T2YoYltlXVsyXSk+MCl7Zj1pO2JyZWFrfWk9 aS5wYXJlbnROb2RlfWEoZixiW2VdWzBdKTtiLnNwbGljZShlLDEpO2JyZWFrfX07Vy5wcm90b3R5cGUu bj1mdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPHRoaXMuYi5sZW5ndGg7YisrKXt2YXIgYz10aGlzLmJb Yl0sZD1oYyhjKTtpZihkKShkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJnb29nbGVfYWRzX2Rpdl8i K2QpKSYmYShkLGMpfX07ClcucHJvdG90eXBlLmU9ZnVuY3Rpb24oYSl7dGhpcy5tKGEpO3RoaXMubihh KTt0aGlzLmwoYSl9O1cucHJvdG90eXBlLnNldHVwT3NkPWZ1bmN0aW9uKGEsYixjKXt0aGlzLnQ9YTt0 aGlzLms9Yjt0aGlzLmo9Y307Vy5wcm90b3R5cGUuZ2V0T3NkTW9kZT1mdW5jdGlvbigpe3JldHVybiB0 aGlzLnR9O1cucHJvdG90eXBlLmdldEVpZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmt9O1cucHJvdG90 eXBlLmdldENvcnJlbGF0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfTtXLnByb3RvdHlwZS5nPWZ1 bmN0aW9uKCl7cmV0dXJuIHRoaXMuaS5sZW5ndGgrdGhpcy5oK3RoaXMuYi5sZW5ndGh9O1cucHJvdG90 eXBlLnNldFZhbGlkT3V0cHV0VHlwZXM9ZnVuY3Rpb24oYSl7dGhpcy5jPWF9OwpXLnByb3RvdHlwZS5y ZWdpc3RlckFkQmxvY2tCeVR5cGU9ZnVuY3Rpb24oYSxiLGMpe2lmKHRoaXMuYy5sZW5ndGg+MCl7Zm9y KHZhciBkPTA7ZDx0aGlzLmMubGVuZ3RoO2QrKylpZih0aGlzLmNbZF09PWEpe3RoaXMucT1jO2lmKGE9 PSJqcyIpdGhpcy52KGIsImdvb2dsZV9hZF9yZXF1ZXN0X2RvbmUiKTtlbHNlIGlmKGE9PSJodG1sIil0 aGlzLnUoKTtlbHNlIGE9PSJqc29uX2h0bWwiJiZ0aGlzLncoYil9dGhpcy5zKCl9fTt2YXIgaGM9ZnVu Y3Rpb24oYSl7aWYoKGE9YS5tYXRjaCgvWyZcP10oPzpzbG90bmFtZSk9KFteJl0rKS8pKSYmYS5sZW5n dGg9PTIpcmV0dXJuIGFbMV07cmV0dXJuIiJ9LGljPWZ1bmN0aW9uKCl7d2luZG93Ll9fZ29vZ2xlX2Fk X3VybHN8fCh3aW5kb3cuX19nb29nbGVfYWRfdXJscz1uZXcgVyh3aW5kb3cpKTtyZXR1cm4gd2luZG93 Ll9fZ29vZ2xlX2FkX3VybHN9O3EoIkdvb2dfQWRTZW5zZV9nZXRBZEFkYXB0ZXJJbnN0YW5jZSIsaWMp OwpxKCJHb29nX0FkU2Vuc2VfT3NkQWRhcHRlciIsVyk7cSgiR29vZ19BZFNlbnNlX09zZEFkYXB0ZXIu cHJvdG90eXBlLm51bUJsb2NrcyIsVy5wcm90b3R5cGUuZyk7cSgiR29vZ19BZFNlbnNlX09zZEFkYXB0 ZXIucHJvdG90eXBlLmZpbmRCbG9ja3MiLFcucHJvdG90eXBlLmUpO3EoIkdvb2dfQWRTZW5zZV9Pc2RB ZGFwdGVyLnByb3RvdHlwZS5nZXRPc2RNb2RlIixXLnByb3RvdHlwZS5nZXRPc2RNb2RlKTtxKCJHb29n X0FkU2Vuc2VfT3NkQWRhcHRlci5wcm90b3R5cGUuZ2V0RWlkIixXLnByb3RvdHlwZS5nZXRFaWQpO3Eo Ikdvb2dfQWRTZW5zZV9Pc2RBZGFwdGVyLnByb3RvdHlwZS5nZXRDb3JyZWxhdG9yIixXLnByb3RvdHlw ZS5nZXRDb3JyZWxhdG9yKTtxKCJHb29nX0FkU2Vuc2VfT3NkQWRhcHRlci5wcm90b3R5cGUuc2V0VmFs aWRPdXRwdXRUeXBlcyIsVy5wcm90b3R5cGUuc2V0VmFsaWRPdXRwdXRUeXBlcyk7CnEoIkdvb2dfQWRT ZW5zZV9Pc2RBZGFwdGVyLnByb3RvdHlwZS5zZXR1cE9zZCIsVy5wcm90b3R5cGUuc2V0dXBPc2QpO3Eo Ikdvb2dfQWRTZW5zZV9Pc2RBZGFwdGVyLnByb3RvdHlwZS5yZWdpc3RlckFkQmxvY2tCeVR5cGUiLFcu cHJvdG90eXBlLnJlZ2lzdGVyQWRCbG9ja0J5VHlwZSk7dmFyIGpjPWZ1bmN0aW9uKGEsYil7dmFyIGM9 YS5ub2RlVHlwZT09OT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudDtpZihjLmRlZmF1bHRWaWV3 JiZjLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpaWYoYT1jLmRlZmF1bHRWaWV3LmdldENvbXB1 dGVkU3R5bGUoYSwiIikpcmV0dXJuIGFbYl07cmV0dXJuIGh9LGtjPWZ1bmN0aW9uKGEsYil7cmV0dXJu IGpjKGEsYil8fChhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZVtiXTpoKXx8YS5zdHlsZVtiXX0s bGM9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoL15cZCtweD8kLy50ZXN0KGIpKXJldHVybiBwYXJzZUludChi LDEwKTtlbHNle3ZhciBlPWEuc3R5bGVbY10sZj1hLnJ1bnRpbWVTdHlsZVtjXTthLnJ1bnRpbWVTdHls ZVtjXT1hLmN1cnJlbnRTdHlsZVtjXTthLnN0eWxlW2NdPWI7Yj1hLnN0eWxlW2RdO2Euc3R5bGVbY109 ZTthLnJ1bnRpbWVTdHlsZVtjXT1mO3JldHVybiBifX0sbWM9ZnVuY3Rpb24oYSl7dmFyIGI9CmEubm9k ZVR5cGU9PTk/YTphLm93bmVyRG9jdW1lbnR8fGEuZG9jdW1lbnQsYz0iIjtpZihiLmNyZWF0ZVRleHRS YW5nZSl7Yz1iLmJvZHkuY3JlYXRlVGV4dFJhbmdlKCk7Yy5tb3ZlVG9FbGVtZW50VGV4dChhKTtjPWMu cXVlcnlDb21tYW5kVmFsdWUoIkZvbnROYW1lIil9aWYoIWMpe2M9a2MoYSwiZm9udEZhbWlseSIpO2lm KEgmJk5hKWM9Yy5yZXBsYWNlKC8gXFtbXlxdXSpcXS8sIiIpfWE9Yy5zcGxpdCgiLCIpO2lmKGEubGVu Z3RoPjEpYz1hWzBdO3JldHVybiB4YShjLCJcIiciKX0sbmM9L1teXGRdKyQvLG9jPWZ1bmN0aW9uKGEp e3JldHVybihhPWEubWF0Y2gobmMpKSYmYVswXXx8aH0scGM9e2NtOjEsImluIjoxLG1tOjEscGM6MSxw dDoxfSxxYz17ZW06MSxleDoxfSxyYz1mdW5jdGlvbihhKXt2YXIgYj1rYyhhLCJmb250U2l6ZSIpLGM9 b2MoYik7aWYoYiYmInB4Ij09YylyZXR1cm4gcGFyc2VJbnQoYiwxMCk7aWYoSSlpZihjIGluIHBjKXJl dHVybiBsYyhhLGIsImxlZnQiLAoicGl4ZWxMZWZ0Iik7ZWxzZSBpZihhLnBhcmVudE5vZGUmJmEucGFy ZW50Tm9kZS5ub2RlVHlwZT09MSYmYyBpbiBxYyl7YT1hLnBhcmVudE5vZGU7Yz1rYyhhLCJmb250U2l6 ZSIpO3JldHVybiBsYyhhLGI9PWM/IjFlbSI6YiwibGVmdCIsInBpeGVsTGVmdCIpfWM9WGEoInNwYW4i LHtzdHlsZToidmlzaWJpbGl0eTpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7bGluZS1oZWlnaHQ6MDtw YWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjA7aGVpZ2h0OjFlbTsifSk7WmEoYSxjKTtiPWMub2Zmc2V0 SGVpZ2h0O2MmJmMucGFyZW50Tm9kZSYmYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpO3JldHVybiBi fTt2YXIgc2MsWD17fTtmdW5jdGlvbiB0YyhhKXtpZihhPT0xKXJldHVybiBnO3JldHVybiFYW2FdfWZ1 bmN0aW9uIHVjKGEsYil7aWYoISghYXx8YT09IiIpKWlmKGI9PTEpaWYoWFtiXSlYW2JdKz0iLCIrYTtl bHNlIFhbYl09YTtlbHNlIFhbYl09YX1mdW5jdGlvbiB2Yygpe3ZhciBhPVtdO0woWCxmdW5jdGlvbihi KXthLnB1c2goYil9KTtyZXR1cm4gYS5qb2luKCIsIil9ZnVuY3Rpb24gd2MoYSxiKXtpZihvKGEpKWZv cih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXAoYVtjXSkmJnVjKGFbY10sYil9dmFyIFk9ajsKZnVuY3Rp b24geGMoYSxiKXt2YXIgYz0ic2NyaXB0IjtZPXljKGEsYik7aWYoIVkpYS5nb29nbGVfYWxsb3dfZXhw YW5kYWJsZV9hZHM9ajt2YXIgZD0hemMoKTtZJiZkJiZiLndyaXRlKCI8IitjKycgc3JjPSJodHRwOi8v Jyt1KCkrJy9wYWdlYWQvZXhwYW5zaW9uX2VtYmVkLmpzIj48LycrYysiPiIpO2E9ZGMoYSxiLEJiKTso ZD1kfHxhKSYmZGIoIm1zaWUiKSYmIXdpbmRvdy5vcGVyYT9iLndyaXRlKCI8IitjKycgc3JjPSJodHRw Oi8vJyt1KCkrJy9wYWdlYWQvcmVuZGVyX2Fkcy5qcyI+PC8nK2MrIj4iKTpiLndyaXRlKCI8IitjKyc+ Z29vZ2xlX3Byb3RlY3RBbmRSdW4oImFkc19jb3JlLmdvb2dsZV9yZW5kZXJfYWQiLCBnb29nbGVfaGFu ZGxlRXJyb3IsIGdvb2dsZV9yZW5kZXJfYWQpOzwvJytjKyI+Iil9ZnVuY3Rpb24gWihhKXtyZXR1cm4g YSE9aD8nIicrYSsnIic6JyIiJ30KZnVuY3Rpb24gQWMoYSl7dmFyIGI9Imdvb2dsZV91bmlxdWVfaWQi O2lmKGFbYl0pKythW2JdO2Vsc2UgYVtiXT0xO3JldHVybiBhW2JdfXZhciBCYz1mdW5jdGlvbihhLGIp e3ZhciBjPWIuc2xpY2UoLTEpLGQ9Yz09Ij8ifHxjPT0iIyI/IiI6IiYiLGU9W2JdO2I9ZnVuY3Rpb24o ZixpKXtpZihmfHxmPT09MHx8Zj09PWope2lmKHR5cGVvZiBmPT0iYm9vbGVhbiIpZj1mPzE6MDthYihl LGQsaSwiPSIsTShmKSk7ZD0iJiJ9fTtMKGEsYik7cmV0dXJuIGUuam9pbigiIil9O2Z1bmN0aW9uIENj KCl7dmFyIGE9SSYmSigiNiIpLGI9RmEmJkooIjEuOC4xIiksYz1HYSYmSigiNTI1Iik7aWYoTWEmJihh fHxifHxjKSlyZXR1cm4gZztlbHNlIGlmKExhJiYoY3x8YikpcmV0dXJuIGc7ZWxzZSBpZihOYSYmYily ZXR1cm4gZztyZXR1cm4gan0KZnVuY3Rpb24gemMoKXtyZXR1cm4odHlwZW9mIEV4cGFuZGFibGVBZFNs b3RGYWN0b3J5PT0iZnVuY3Rpb24ifHx0eXBlb2YgRXhwYW5kYWJsZUFkU2xvdEZhY3Rvcnk9PSJvYmpl Y3QiKSYmdHlwZW9mIEV4cGFuZGFibGVBZFNsb3RGYWN0b3J5LmNyZWF0ZUlmcmFtZT09ImZ1bmN0aW9u In1mdW5jdGlvbiB5YyhhLGIpe2lmKGEuZ29vZ2xlX2FsbG93X2V4cGFuZGFibGVfYWRzPT09anx8IWIu Ym9keXx8YS5nb29nbGVfYWRfb3V0cHV0IT0iaHRtbCJ8fHBiKGEsYil8fCFEYyhhKXx8aXNOYU4oYS5n b29nbGVfYWRfaGVpZ2h0KXx8aXNOYU4oYS5nb29nbGVfYWRfd2lkdGgpfHwhQ2MoKSlyZXR1cm4gajty ZXR1cm4gZ31mdW5jdGlvbiBEYyhhKXt2YXIgYj1hLmdvb2dsZV9hZF9mb3JtYXQ7aWYoTyhiKSlyZXR1 cm4gajtpZihOKGEpJiZiIT0iNDY4eDE1XzBhZHNfYWwiKXJldHVybiBqO3JldHVybiBnfQpmdW5jdGlv biBFYygpe3ZhciBhO2lmKEsuZ29vZ2xlX2FkX291dHB1dD09Imh0bWwiJiYhKE4oSyl8fE8oSy5nb29n bGVfYWRfZm9ybWF0KSkmJnRjKDApKXthPVsiNjA4MzAzNSIsIjYwODMwMzQiXTthPVAoYSxHYik7dWMo YSwwKX1yZXR1cm4gYT09IjYwODMwMzUifWZ1bmN0aW9uIEZjKGEsYil7aWYoKGEuZ29vZ2xlX3VuaXF1 ZV9pZHx8MCkhPTB8fE8oYS5nb29nbGVfYWRfZm9ybWF0KSlyZXR1cm4iIjt2YXIgYz0iIjthPU4oYSk7 aWYoYj09Imh0bWwifHxhKWM9UChbIjM2ODE1MDAxIiwiMzY4MTUwMDIiXSxDYik7aWYoYz09IiImJihi PT0ianMifHxhKSljPVAoWyIzNjgxNTAwMyIsIjM2ODE1MDA0Il0sRGIpO2lmKGM9PSIiJiYoYj09Imh0 bWwifHxiPT0ianMiKSljPVAoWyIzNjgxMzAwNSIsIjM2ODEzMDA2Il0sRWIpO3JldHVybiBjfQpmdW5j dGlvbiBHYygpe3ZhciBhPWljKCksYj13aW5kb3cuZ29vZ2xlX2VuYWJsZV9vc2QsYztpZihiPT09Zyl7 Yz0iMzY4MTMwMDYiO0hjKGMsYSl9ZWxzZSBpZihiIT09aiYmdGMoMCkpe2M9YS5nZXRFaWQoKTtpZihj PT0iIikoYz1GYyh3aW5kb3csd2luZG93Lmdvb2dsZV9hZF9vdXRwdXQpKSYmSGMoYyxhKTtlbHNlIGlm KGMhPSIzNjgxNTAwMSImJmMhPSIzNjgxNTAwMiImJmMhPSIzNjgxNTAwMyImJmMhPSIzNjgxNTAwNCIm JmMhPSIzNjgxMzAwNSImJmMhPSIzNjgxMzAwNiIpYz0iIn1pZihjKXt1YyhjLDApO3JldHVybiBjfXJl dHVybiIifQpmdW5jdGlvbiBIYyhhLGIpe3ZhciBjPWIuZ2V0T3NkTW9kZSgpLGQ9W107c3dpdGNoKGEp e2Nhc2UgIjM2ODE1MDA0IjpjPTE7ZD1bImpzIl07YnJlYWs7Y2FzZSAiMzY4MTUwMDIiOmM9MTtkPVsi aHRtbCJdO2JyZWFrO2Nhc2UgIjM2ODEzMDA2IjpjPTA7ZD1bImh0bWwiLCJqcyJdO2JyZWFrfWQubGVu Z3RoPjAmJmIuc2V0VmFsaWRPdXRwdXRUeXBlcyhkKTtiLnNldHVwT3NkKGMsYSx3aW5kb3cuZ29vZ2xl X2NvcnJlbGF0b3IpfQpmdW5jdGlvbiBJYyhhLGIsYyxkKXt2YXIgZT1BYyhhKTtjPUJjKHtpZmk6ZX0s Yyk7Yz1jLnN1YnN0cmluZygwLDE5OTIpO2M9Yy5yZXBsYWNlKC8lXHc/JC8sIiIpO3ZhciBmPSJzY3Jp cHQiO2lmKChhLmdvb2dsZV9hZF9vdXRwdXQ9PSJqcyJ8fGEuZ29vZ2xlX2FkX291dHB1dD09Impzb25f aHRtbCIpJiYoYS5nb29nbGVfYWRfcmVxdWVzdF9kb25lfHxhLmdvb2dsZV9yYWRsaW5rX3JlcXVlc3Rf ZG9uZSkpYi53cml0ZSgiPCIrZisnIGxhbmd1YWdlPSJKYXZhU2NyaXB0MS4xIiBzcmM9JytaKGsoYykp KyI+PC8iK2YrIj4iKTtlbHNlIGlmKGEuZ29vZ2xlX2FkX291dHB1dD09Imh0bWwiKWlmKFkmJnpjKCkp e2I9YS5nb29nbGVfY29udGFpbmVyX2lkfHxkfHxoO2FbImdvb2dsZV9leHBhbmRhYmxlX2FkX3Nsb3Qi K2VdPUV4cGFuZGFibGVBZFNsb3RGYWN0b3J5LmNyZWF0ZUlmcmFtZSgiZ29vZ2xlX2Fkc19mcmFtZSIr ZSxrKGMpLGEuZ29vZ2xlX2FkX3dpZHRoLGEuZ29vZ2xlX2FkX2hlaWdodCwKYil9ZWxzZXtlPSc8aWZy YW1lIG5hbWU9Imdvb2dsZV9hZHNfZnJhbWUiIHdpZHRoPScrWihhLmdvb2dsZV9hZF93aWR0aCkrIiBo ZWlnaHQ9IitaKGEuZ29vZ2xlX2FkX2hlaWdodCkrIiBmcmFtZWJvcmRlcj0iK1ooYS5nb29nbGVfYWRf ZnJhbWVib3JkZXIpKyIgc3JjPSIrWihrKGMpKSsnIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9 IjAiIHZzcGFjZT0iMCIgaHNwYWNlPSIwIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgc2Nyb2xsaW5n PSJubyI+PC9pZnJhbWU+JzthLmdvb2dsZV9jb250YWluZXJfaWQ/SmMoYS5nb29nbGVfY29udGFpbmVy X2lkLGIsZSk6Yi53cml0ZShlKX1yZXR1cm4gY31mdW5jdGlvbiBLYyhhKXtTYihhKX0KZnVuY3Rpb24g TGMoYSl7dmFyIGI9TWMoKS5hKCJhYzEiKT09IjQ0OTAxMjE3IjtpZighTmMoYikpcmV0dXJuIGo7Yj1F YygpO3ZhciBjPWZjKHdpbmRvdyx3aW5kb3cuZ29vZ2xlX3VuaXF1ZV9pZHx8MCxNYygpKTthPU9jKGEp O2I9YytQYyhhLmdvb2dsZV9hZF9mb3JtYXQsYik7d2luZG93Lmdvb2dsZV9hZF91cmw9QmMoYSxiKTty ZXR1cm4gZ30KdmFyIFNjPWZ1bmN0aW9uKGEpe2EuZHQ9YWE7dmFyIGI9d2luZG93Lmdvb2dsZV9wcmV2 X2FkX2Zvcm1hdHNfYnlfcmVnaW9uLGM9d2luZG93Lmdvb2dsZV9hZF9zZWN0aW9uLGQ9d2luZG93Lmdv b2dsZV9hZF9mb3JtYXQsZT13aW5kb3cuZ29vZ2xlX2FkX3Nsb3Q7aWYoYltjXSlpZighTyhkKSl7YS5w cmV2X2ZtdHM9YltjXTtpZih3aW5kb3cuZ29vZ2xlX251bV9zbG90c19ieV9jbGllbnQubGVuZ3RoPjEp YS5zbG90PXdpbmRvdy5nb29nbGVfbnVtX3Nsb3RzX2J5X2NsaWVudFtRXX12YXIgZj13aW5kb3cuZ29v Z2xlX3ByZXZfYWRfc2xvdG5hbWVzX2J5X3JlZ2lvbjtpZihmW2NdKWEucHJldl9zbG90bmFtZXM9Zltj XS50b0xvd2VyQ2FzZSgpO2lmKGQpe2lmKCFPKGQpKWlmKGJbY10pYltjXSs9IiwiK2Q7ZWxzZSBiW2Nd PWR9ZWxzZSBpZihlKWlmKGZbY10pZltjXSs9IiwiK2U7ZWxzZSBmW2NdPWU7YS5jb3JyZWxhdG9yPXdp bmRvdy5nb29nbGVfY29ycmVsYXRvcjtpZih3aW5kb3cuZ29vZ2xlX25ld19kb21haW5fY2hlY2tlZD09 CjEmJndpbmRvdy5nb29nbGVfbmV3X2RvbWFpbl9lbmFibGVkPT0wKWEuZGJsaz0xO2lmKHdpbmRvdy5n b29nbGVfYWRfY2hhbm5lbCl7Yj13aW5kb3cuZ29vZ2xlX251bV9zbG90c19ieV9jaGFubmVsO2M9IiI7 ZD13aW5kb3cuZ29vZ2xlX2FkX2NoYW5uZWwuc3BsaXQoUWMpO2ZvcihlPTA7ZTxkLmxlbmd0aDtlKysp e2Y9ZFtlXTtpZihiW2ZdKWMrPWYrIisiO2Vsc2UgYltmXT0xfWEucHZfY2g9Y31pZih3aW5kb3cuZ29v Z2xlX2FkX2hvc3RfY2hhbm5lbCl7Yj1SYyh3aW5kb3cuZ29vZ2xlX2FkX2hvc3RfY2hhbm5lbCx3aW5k b3cuZ29vZ2xlX3ZpZXdlZF9ob3N0X2NoYW5uZWxzKTthLnB2X2hfY2g9Yn1pZihIYilhLmpzY2I9MTtp ZihJYilhLmpzY2Q9MTthLmZybT13aW5kb3cuZ29vZ2xlX2lmcmFtaW5nO2I9V2IoKTthLmdhX3ZpZD1i LnZpZDthLmdhX3NpZD1iLnNpZDthLmdhX2hpZD1iLmhpZDthLmdhX2ZjPWIuZnJvbV9jb29raWU7YS5n YV93cGlkcz13aW5kb3cuZ29vZ2xlX2FuYWx5dGljc191YWNjdH0sClRjPWZ1bmN0aW9uKGEpe3ZhciBi PWc7aWYoYj1oYihiKSl7YS5iaXc9Yi53aWR0aDthLmJpaD1iLmhlaWdodH19LFVjPWZ1bmN0aW9uKGEp e3ZhciBiPWpiKHdpbmRvdyk7aWYoYiE9MClhLmlmaz1iLnRvU3RyaW5nKCl9O2Z1bmN0aW9uIFJjKGEs Yil7dmFyIGM9YS5zcGxpdCgifCIpO2E9LTE7Zm9yKHZhciBkPVtdLGU9MDtlPGMubGVuZ3RoO2UrKyl7 dmFyIGY9Y1tlXS5zcGxpdChRYyk7YltlXXx8KGJbZV09e30pO2Zvcih2YXIgaT0iIixuPTA7bjxmLmxl bmd0aDtuKyspe3ZhciB5PWZbbl07aWYoeSE9IiIpaWYoYltlXVt5XSlpKz0iKyIreTtlbHNlIGJbZV1b eV09MX1pPWkuc2xpY2UoMSk7ZFtlXT1pO2lmKGkhPSIiKWE9ZX1iPSIiO2lmKGE+LTEpe2ZvcihlPTA7 ZTxhO2UrKyliKz1kW2VdKyJ8IjtiKz1kW2FdfXJldHVybiBifQp2YXIgJD1mdW5jdGlvbigpe2lmKHdp bmRvdy5nb29nbGVfZXhwX3BlcnNpc3RlbnQmJmFjKHdpbmRvdy5nb29nbGVfZXhwX3BlcnNpc3RlbnQp KXJldHVybiB3aW5kb3cuZ29vZ2xlX2V4cF9wZXJzaXN0ZW50O3JldHVybiBuZXcgVigiMSIsImFjMSIp fTtxKCJnb29nbGVfZXhwX3BlcnNpc3RlbnQiLCQoKSk7dmFyIE1jPWZ1bmN0aW9uKCl7c2N8fChzYz0k YigkKCkpKTtyZXR1cm4gc2N9O2Z1bmN0aW9uIFZjKCl7dmFyIGE9WyI0NDkwMTIxMSIsIjQ0OTAxMjE1 IiwiNDQ5MDEyMTYiLCI0NDkwMTIxMiJdOyQoKS5kKGEsQWIsIjEiKTthPVsiNDQ5MDEyMTciLCI0NDkw MTIxOCJdOyQoKS5kKGEsRmIsImFjMSIpfQpmdW5jdGlvbiBXYygpezA9PSh3aW5kb3cuZ29vZ2xlX3Vu aXF1ZV9pZHx8MCkmJlZjKCk7dmFyIGE9R2MoKSxiPU1hdGgucmFuZG9tKCk8MC4wMSxjPWgsZD0iIjtp ZihiKXtkPSJnb29nbGVfdGVtcF9zcGFuIjtjPVhjKGQpfWI9TGMoYyk7YyYmYy5pZD09ZCYmKGMmJmMu cGFyZW50Tm9kZT9jLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyk6aCk7aWYoYil7Yz1JYyh3aW5kb3cs ZG9jdW1lbnQsd2luZG93Lmdvb2dsZV9hZF91cmwpO2EmJmljKCkucmVnaXN0ZXJBZEJsb2NrQnlUeXBl KHdpbmRvdy5nb29nbGVfYWRfb3V0cHV0LGMsaik7S2Mod2luZG93KX19CnZhciBZYz1mdW5jdGlvbihh KXtMKGxiLGZ1bmN0aW9uKGIsYyl7YVtiXT13aW5kb3dbY119KTtMKGtiLGZ1bmN0aW9uKGIsYyl7YVti XT13aW5kb3dbY119KTtMKG1i