PROGRAMA USA J1 Matrícula Abierta.

Q

Cómo inscribirse en el programa Año escolar en USA

https://www.imercat.com/wp-content/uploads/2018/09/inscribirse-programa-ano-escolar-usa.jpg

Cómo inscribirse en el Programa Año Escolar en USA

Guardar

Guardar

Te explicamos cómo inscribirse en el Programa Año Escolar en USA y los trámites previos que deberás realizar. En ICES Programas USA te damos desde el inicio una atención personal y directa. Te guiamos y asesoramos en cada paso. Tú y tu familia os sentiréis acompañados por nuestro equipo de especialistas en todo el proceso.

Guardar

Guardar

inscribirse en el programa año escolar en usa, entrevista personal1. Entrevista personal

Os invitamos a ti y a tus padres a realizar una entrevista personal con un asesor de familia de  ICES Programas USA.

El objetivo de la entrevista es conocer tu actitud y motivación e informar ampliamente a la familia sobre todos los detalles del programa.

Guardar

Guardar

estudiar en USA, examen de ingles

2. Prueba de inglés

ICES Programas USA realiza una prueba de inglés para verificar si el nivel es adecuado para acceder a nuestro programa Año escolar en USA y Año académico USA. Recomendamos realizar el examen lo antes posible, así el estudiante conocerá con antelación su nivel. En caso de ser insuficiente podría mejorarlo durante unos meses y repetir la prueba posteriormente.

Guardar

inscribirse en el programa año escolar en usa, reserva de plaza

3. Reserva de plaza

Una vez que te comunicamos que has superado la prueba de inglés ¡ya estás dentro, se inicia la aventura!. Se realiza la reserva de plaza con la cumplimentación de la hoja de inscripción y el abono del importe de la reserva.

Guardar

documentación estudiar en USA

4. Entrega de documentación

Te mandaremos un dosier que deberás rellenar cuidadosamente adjuntando toda la información que se solicita como por ejemplo: carta de presentación, notas de los tres últimos cursos, informes médicos, etc… A lo largo de este proceso un asesor de familia ICES Programas USA te ayudará y resolverá todas las dudas que puedan plantearse.

Guardar

estudiar en USA, familia de acogida americana

5. Confirmación de destino

Una vez enviada tu documentación a Estados Unidos, se inicia el proceso de selección de colegio y familia. El destino y la familia anfitriona se confirman unas semanas antes de la salida. ICES envía toda la información sobre la familia americana y sus datos para que contactes con ellos antes del inicio del programa.

Guardar

seminario de orientación para estudiar en USA

6. Reunión «Pre-departure» y visado

A principios de verano te convocaremos a una reunión con todos los estudiantes de tu zona para darte consejos prácticos, ayudarte en la planificación del viaje, informarte de nuevo de temas importantes como el seguro médico, la elección de asignaturas, etc. Estudiantes de ediciones anteriores asistirán para compartir sus experiencias.

Guardar

900.649.351

¡Inscríbete o consulta tus dudas!

Déjanos tus datos y nos pondremos en contacto contigo.

PCEtLSBOb3RlIDoKICAgLSBZb3UgY2FuIG1vZGlmeSB0aGUgZm9udCBzdHlsZSBhbmQgZm9ybSBzdHlsZSB0byBzdWl0IHlvdXIgd2Vic2l0ZS4gCiAgIC0gQ29kZSBsaW5lcyB3aXRoIGNvbW1lbnRzIERvIG5vdCByZW1vdmUgdGhpcyBjb2RlIGFyZSByZXF1aXJlZCBmb3IgdGhlIGZvcm0gdG8gd29yayBwcm9wZXJseSwgbWFrZSBzdXJlIHRoYXQgeW91IGRvIG5vdCByZW1vdmUgdGhlc2UgbGluZXMgb2YgY29kZS4gCiAgIC0gVGhlIE1hbmRhdG9yeSBjaGVjayBzY3JpcHQgY2FuIG1vZGlmaWVkIGFzIHRvIHN1aXQgeW91ciBidXNpbmVzcyBuZWVkcy4gCiAgIC0gSXQgaXMgaW1wb3J0YW50IHRoYXQgeW91IHRlc3QgdGhlIG1vZGlmaWVkIGZvcm0gYmVmb3JlIGdvaW5nIGxpdmUuLS0+CjxkaXYgaWQ9J2NybVdlYlRvRW50aXR5Rm9ybScgY2xhc3M9J3pjd2ZfbGJsVG9wQm90dG9tIGNybVdlYlRvRW50aXR5Rm9ybScgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6ICM2NjdCOUE7Y29sb3I6ICNGRkZGRkY7bWF4LXdpZHRoOiA0MDRweDsnPgogIDxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSd3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wJz4KICAgPE1FVEEgSFRUUC1FUVVJViA9J2NvbnRlbnQtdHlwZScgQ09OVEVOVD0ndGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgnPgogICA8Zm9ybSBhY3Rpb249J2h0dHBzOi8vY3JtLnpvaG8uY29tL2NybS9XZWJUb0xlYWRGb3JtJyBuYW1lPVdlYlRvTGVhZHM0OTE4NDMwMDAwNDAwNTAxNjcgbWV0aG9kPSdQT1NUJyBvblN1Ym1pdD0namF2YXNjcmlwdDpkb2N1bWVudC5jaGFyc2V0PSJVVEYtOCI7IHJldHVybiBjaGVja01hbmRhdG9yeTQ5MTg0MzAwMDA0MDA1MDE2NygpJyBhY2NlcHQtY2hhcnNldD0nVVRGLTgnPgogPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBuYW1lPSd4blFzanNkcCcgdmFsdWU9JzczYzFjODA2YzhhYjMxMGM2ZWViMzFjNjI0YmIzMWNhZDkxMzYzYTBhNWFmYmY4ZjkzNGMwNWUwYmI4MDNhODYnPjwvaW5wdXQ+IAogPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nemNfZ2FkJyBpZD0nemNfZ2FkJyB2YWx1ZT0nJz48L2lucHV0PiAKIDxpbnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nZGlzcGxheTpub25lOycgbmFtZT0neG1Jd3RMRCcgdmFsdWU9JzE3NjcyYjk1NTdjYWQ3YzE4MzgyMTFmOTA0ZDE0Mzg4Y2QzZDc4NjYzYjc1ZWUyODFlNjdjMjE4MTQ0ZDYzNzknPjwvaW5wdXQ+IAogPGlucHV0IHR5cGU9J3RleHQnICBzdHlsZT0nZGlzcGxheTpub25lOycgbmFtZT0nYWN0aW9uVHlwZScgdmFsdWU9J1RHVmhaSE09Jz48L2lucHV0PgogPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBuYW1lPSdyZXR1cm5VUkwnIHZhbHVlPSdodHRwcyYjeDNhOyYjeDJmOyYjeDJmO3d3dy5pY2VzLXNwYWluLmNvbSYjeDJmO2dyYWNpYXMtcG9yLWNvbnRhY3RhciYjeDJmOycgPiA8L2lucHV0PgoJIDwhLS0gRG8gbm90IHJlbW92ZSB0aGlzIGNvZGUuIC0tPgo8c3R5bGU+Cmh0bWwsYm9keXsKCW1hcmdpbjogMHB4Owp9CiNjcm1XZWJUb0VudGl0eUZvcm0uemN3Zl9sYmxUb3BCb3R0b20gewoJd2lkdGg6MTAwJTsKCXBhZGRpbmc6IDI1cHg7CgltYXJnaW46IDAgYXV0bzsKCWJveC1zaXppbmc6IGJvcmRlci1ib3g7Cglib3JkZXItcmFkaXVzOiAzMHB4Owp9CiNjcm1XZWJUb0VudGl0eUZvcm0uemN3Zl9sYmxUb3BCb3R0b20gKiB7Cglib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CiNjcm1XZWJUb0VudGl0eUZvcm17dGV4dC1hbGlnbjogbGVmdDt9CiNjcm1XZWJUb0VudGl0eUZvcm0gKiB7CglkaXJlY3Rpb246IGx0cjsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfdGl0bGUgewoJd29yZC13cmFwOiBicmVhay13b3JkOwoJcGFkZGluZzogMHB4IDZweCAxMHB4OwoJZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2NvbF9mbGQgaW5wdXRbdHlwZT10ZXh0XSwgLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2NvbF9mbGQgdGV4dGFyZWEgewoJd2lkdGg6IDEwMCU7Cglib3JkZXI6IDFweCBzb2xpZCAjYzBjNmNjICFpbXBvcnRhbnQ7CglyZXNpemU6IHZlcnRpY2FsOwoJYm9yZGVyLXJhZGl1czogMnB4OwoJZmxvYXQ6IGxlZnQ7CmJhY2tncm91bmQtY29sb3I6ICNGQ0U2N0Y7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2NvbF9sYWIgewoJd2lkdGg6IDMwJTsKCXdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CglwYWRkaW5nOiAwcHggNnB4IDBweDsKCW1hcmdpbi1yaWdodDogMTBweDsKCW1hcmdpbi10b3A6IDVweDsKCXBhZGRpbmctYm90dG9tOiA0cHg7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2NvbF9mbGQgewoJd2lkdGg6IDEwMCU7CglwYWRkaW5nOiAwcHggNnB4IDBweDsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCW1hcmdpbi10b3A6IDVweDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfcHJpdmFjeXtwYWRkaW5nOiA2cHg7fQouemN3Zl9sYmxUb3BCb3R0b20gLndmcm1fZmxkX2RwTm57ZGlzcGxheTogbm9uZTt9Ci5kSUJ7ZGlzcGxheTogaW5saW5lLWJsb2NrO30KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2NvbF9mbGRfc2x0IHsKCXdpZHRoOiAxMDAlOwoJYm9yZGVyOiAxcHggc29saWQgI2NjYzsKCWJhY2tncm91bmQ6ICNmZmY7Cglib3JkZXItcmFkaXVzOiA0cHg7Cglmb250LXNpemU6IDE1cHg7CglmbG9hdDogbGVmdDsKCXJlc2l6ZTogdmVydGljYWw7CglwYWRkaW5nOiAycHggNXB4Owp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9yb3c6YWZ0ZXIsIC56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9jb2xfZmxkOmFmdGVyIHsKCWNvbnRlbnQ6ICcnOwoJZGlzcGxheTogdGFibGU7CgljbGVhcjogYm90aDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2hlbHAgewoJZmxvYXQ6IGxlZnQ7CgltYXJnaW4tbGVmdDogN3B4OwoJZm9udC1zaXplOiAxNXB4OwoJbWF4LXdpZHRoOiAzNSU7Cgl3b3JkLWJyZWFrOiBicmVhay13b3JkOwp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9oZWxwX2ljb24gewoJY3Vyc29yOiBwb2ludGVyOwoJd2lkdGg6IDE2cHg7CgloZWlnaHQ6IDE2cHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CgliYWNrZ3JvdW5kOiAjZmZmOwoJYm9yZGVyOiAxcHggc29saWQgI2MwYzZjYzsKCWNvbG9yOiAjYzFjMWMxOwoJdGV4dC1hbGlnbjogY2VudGVyOwoJZm9udC1zaXplOiAxMXB4OwoJbGluZS1oZWlnaHQ6IDE2cHg7Cglmb250LXdlaWdodDogYm9sZDsKCWJvcmRlci1yYWRpdXM6IDUwJTsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2Zfcm93IHttYXJnaW46IDE1cHggMHB4O30KLnpjd2ZfbGJsVG9wQm90dG9tIC5mb3Jtc3VibWl0IHsKCW1hcmdpbi1yaWdodDogNXB4OwoJY3Vyc29yOiBwb2ludGVyOwoJY29sb3I6IHZhcigtLWJhc2VDb2xvcik7Cglmb250LXNpemU6IDE1cHg7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX3ByaXZhY3lfdHh0IHsKCXdpZHRoOiA5MCU7Cgljb2xvcjogcmdiKDAsIDAsIDApOwoJZm9udC1zaXplOiAxNXB4OwoJZm9udC1mYW1pbHk6IFZlcmRhbmE7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cgl2ZXJ0aWNhbC1hbGlnbjogdG9wOwoJY29sb3I6IHZhcigtLWJhc2VDb2xvcik7CglwYWRkaW5nLXRvcDogMnB4OwoJbWFyZ2luLWxlZnQ6IDZweDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfYnV0dG9uIHsKCWZvbnQtc2l6ZTogMTVweDsKCWNvbG9yOiAjMzA1QjlBOwoJYm9yZGVyOiAxcHggc29saWQgI2MwYzZjYzsKCXBhZGRpbmc6IDNweCA5cHg7Cglib3JkZXItcmFkaXVzOiA0cHg7CgljdXJzb3I6IHBvaW50ZXI7CgltYXgtd2lkdGg6IDEyMHB4OwoJb3ZlcmZsb3c6IGhpZGRlbjsKCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfdG9vbHRpcF9vdmVyewoJcG9zaXRpb246IHJlbGF0aXZlOwp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl90b29sdGlwX2N0bnsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCWJhY2tncm91bmQ6ICNkZWRlZGU7CglwYWRkaW5nOiAzcHggNnB4OwoJdG9wOiAzcHg7Cglib3JkZXItcmFkaXVzOiA0cHg7d29yZC1icmVhazogYnJlYWstd29yZDsKCW1pbi13aWR0aDogMTAwcHg7CgltYXgtd2lkdGg6IDE1MHB4OwoJY29sb3I6IHZhcigtLWJhc2VDb2xvcik7Cgl6LWluZGV4OiAxMDA7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2NrYm94ewoJZmxvYXQ6IGxlZnQ7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2ZpbGV7Cgl3aWR0aDogMzUlOwoJYm94LXNpemluZzogYm9yZGVyLWJveDsKCWZsb2F0OiBsZWZ0Owp9Ci5jbGVhckI6YWZ0ZXJ7Cgljb250ZW50OicnOwoJZGlzcGxheTogYmxvY2s7CgljbGVhcjogYm90aDsKfQpAbWVkaWEgYWxsICB7CgkuemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2xhYiwgLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2NvbF9mbGQgewoJCXdpZHRoOiBhdXRvOwoJCWZsb2F0OiBub25lICFpbXBvcnRhbnQ7Cgl9CgkuemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2hlbHAge3dpZHRoOiA0MCU7fQp9Cjwvc3R5bGU+Cgo8ZGl2IGNsYXNzPSd6Y3dmX3Jvdyc+PGRpdiBjbGFzcz0nemN3Zl9jb2xfbGFiJyBzdHlsZT0nZm9udC1zaXplOjE1cHg7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyc+PGxhYmVsIGZvcj0nQ29tcGFueSc+Tm9tYnJlIHkgYXBlbGxpZG9zIGRlbCBwcm9nZW5pdG9yL2E8c3BhbiBzdHlsZT0nY29sb3I6cmVkOyc+Kjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9J3pjd2ZfY29sX2ZsZCc+PGlucHV0IHR5cGU9J3RleHQnIGlkPSdDb21wYW55JyBuYW1lPSdDb21wYW55JyBtYXhsZW5ndGg9JzIwMCc+PC9pbnB1dD48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9oZWxwJz48L2Rpdj48L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nemN3Zl9yb3cnPjxkaXYgY2xhc3M9J3pjd2ZfY29sX2xhYicgc3R5bGU9J2ZvbnQtc2l6ZToxNXB4OyBmb250LWZhbWlseTogVmVyZGFuYTsnPjxsYWJlbCBmb3I9J0xhc3RfTmFtZSc+Tm9tYnJlIHkgYXBlbGxpZG9zIGRlbCBlc3R1ZGlhbnRlPHNwYW4gc3R5bGU9J2NvbG9yOnJlZDsnPio8L3NwYW4+PC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9mbGQnPjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nTGFzdF9OYW1lJyBuYW1lPSdMYXN0IE5hbWUnIG1heGxlbmd0aD0nODAnPjwvaW5wdXQ+PGRpdiBjbGFzcz0nemN3Zl9jb2xfaGVscCc+PC9kaXY+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9sYWInIHN0eWxlPSdmb250LXNpemU6MTVweDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Jz48bGFiZWwgZm9yPSdMRUFEQ0Y4Mic+RmVjaGEgZGUgbmFjaW1pZW50byBkZWwgZXN0dWRpYW50ZTxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J0xFQURDRjgyJyBuYW1lPSdMRUFEQ0Y4MicgbWF4bGVuZ3RoPScyMCcgZnR5cGU9J2RhdGUnIHBsYWNlaG9sZGVyPSdERC9NTS9ZWVlZJyB0cGxpZD0nNDkxODQzMDAwMDQwMDUwMTY3TEVBRENGODInIG9uZm9jdXM9J2Zvcm1DYWxlbmRlci5zdEV2KGV2ZW50KTtmb3JtQ2FsZW5kZXIuY3JlYXRlQ2FsZW5kYXIodGhpcyk7JyBhdXRvY29tcGxldGU9J29mZic+PC9pbnB1dD48ZGl2IGlkPSd0ZW1wbGF0ZTQ5MTg0MzAwMDA0MDA1MDE2N0xFQURDRjgyJyAgb25jbGljaz0nZm9ybUNhbGVuZGVyLnN0RXYoZXZlbnQpOycgIGNsYXNzPSd0ZW1wQ2FsRGl2Jz48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9oZWxwJz48L2Rpdj48L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nemN3Zl9yb3cnPjxkaXYgY2xhc3M9J3pjd2ZfY29sX2xhYicgc3R5bGU9J2ZvbnQtc2l6ZToxNXB4OyBmb250LWZhbWlseTogVmVyZGFuYTsnPjxsYWJlbCBmb3I9J0xFQURDRjYnPkUtbWFpbDxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48aW5wdXQgdHlwZT0ndGV4dCcgZnR5cGU9J2VtYWlsJyBpZD0nTEVBRENGNicgbmFtZT0nTEVBRENGNicgbWF4bGVuZ3RoPScxMDAnPjwvaW5wdXQ+PGRpdiBjbGFzcz0nemN3Zl9jb2xfaGVscCc+PC9kaXY+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9sYWInIHN0eWxlPSdmb250LXNpemU6MTVweDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Jz48bGFiZWwgZm9yPSdMRUFEQ0Y1NCc+VGVsw6lmb25vPHNwYW4gc3R5bGU9J2NvbG9yOnJlZDsnPio8L3NwYW4+PC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9mbGQnPjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nTEVBRENGNTQnIG5hbWU9J0xFQURDRjU0JyBtYXhsZW5ndGg9JzknPjwvaW5wdXQ+PGRpdiBjbGFzcz0nemN3Zl9jb2xfaGVscCc+PC9kaXY+PC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9sYWInIHN0eWxlPSdmb250LXNpemU6MTVweDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Jz48bGFiZWwgZm9yPSdMRUFEQ0YxMjEnPlByb3ZpbmNpYTxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48c2VsZWN0IGNsYXNzPSd6Y3dmX2NvbF9mbGRfc2x0JyBpZD0nTEVBRENGMTIxJyBuYW1lPSdMRUFEQ0YxMjEnICA+CgkJCTxvcHRpb24gdmFsdWU9Jy1Ob25lLSc+LU5vbmUtPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J0FsYXZhJz5BbGF2YTwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdBbGJhY2V0ZSc+QWxiYWNldGU8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQWxpY2FudGUnPkFsaWNhbnRlPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J0FsbWVyJmlhY3V0ZTthJz5BbG1lciZpYWN1dGU7YTwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdBc3R1cmlhcyc+QXN0dXJpYXM8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQXZpbGEnPkF2aWxhPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J0JhZGFqb3onPkJhZGFqb3o8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQmFyY2Vsb25hJz5CYXJjZWxvbmE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQnVyZ29zJz5CdXJnb3M8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQ2FjZXJlcyc+Q2FjZXJlczwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdDYWRpeic+Q2FkaXo8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQ2FudGFicmlhJz5DYW50YWJyaWE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQ2FzdGVsbG9uJz5DYXN0ZWxsb248L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQ2V1dGEnPkNldXRhPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J0NpdWRhZCYjeDIwO1JlYWwnPkNpdWRhZCBSZWFsPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J0NvcmRvYmEnPkNvcmRvYmE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nQ3VlbmNhJz5DdWVuY2E8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nR2Vyb25hJz5HZXJvbmE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nR3JhbmFkYSc+R3JhbmFkYTwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdHdWFkYWxhamFyYSc+R3VhZGFsYWphcmE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nR3VpcHV6Y29hJz5HdWlwdXpjb2E8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nSHVlbHZhJz5IdWVsdmE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nSHVlc2NhJz5IdWVzY2E8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nSXNsYXMmI3gyMDtCYWxlYXJlcyc+SXNsYXMgQmFsZWFyZXM8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nSmFlbic+SmFlbjwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdMYSYjeDIwO0NvcnUmbnRpbGRlO2EnPkxhIENvcnUmbnRpbGRlO2E8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nTGEmI3gyMDtSaW9qYSc+TGEgUmlvamE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nTGFzJiN4MjA7UGFsbWFzJz5MYXMgUGFsbWFzPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J0xlb24nPkxlb248L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nTGxlaWRhJz5MbGVpZGE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nTHVnbyc+THVnbzwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdNYWRyaWQnPk1hZHJpZDwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdNYWxhZ2EnPk1hbGFnYTwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdNZWxpbGxhJz5NZWxpbGxhPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J011cmNpYSc+TXVyY2lhPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J05hdmFycmEnPk5hdmFycmE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nT3JlbnNlJz5PcmVuc2U8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nUGFsZW5jaWEnPlBhbGVuY2lhPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J1BvbnRldmVkcmEnPlBvbnRldmVkcmE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nU2FsYW1hbmNhJz5TYWxhbWFuY2E8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nU2FudGEmI3gyMDtDcnV6JiN4MjA7ZGUmI3gyMDtUZW5lcmlmZSc+U2FudGEgQ3J1eiBkZSBUZW5lcmlmZTwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdTZWdvdmlhJz5TZWdvdmlhPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J1NldmlsbGEnPlNldmlsbGE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nU29yaWEnPlNvcmlhPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J1RhcnJhZ29uYSc+VGFycmFnb25hPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J1RlcnVlbCc+VGVydWVsPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J1RvbGVkbyc+VG9sZWRvPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J1ZhbGVuY2lhJz5WYWxlbmNpYTwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPSdWYWxsYWRvbGlkJz5WYWxsYWRvbGlkPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J1ZpemNheWEnPlZpemNheWE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nWmFtb3JhJz5aYW1vcmE8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nWmFyYWdvemEnPlphcmFnb3phPC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J090cm9zJz5PdHJvczwvb3B0aW9uPgoJCTwvc2VsZWN0PjxkaXYgY2xhc3M9J3pjd2ZfY29sX2hlbHAnPjwvZGl2PjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSd6Y3dmX3Jvdyc+PGRpdiBjbGFzcz0nemN3Zl9jb2xfbGFiJyBzdHlsZT0nZm9udC1zaXplOjE1cHg7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyc+PGxhYmVsIGZvcj0nRGVzY3JpcHRpb24nPkNvbWVudGFyaW88L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9J3pjd2ZfY29sX2ZsZCc+PHRleHRhcmVhIGlkPSdEZXNjcmlwdGlvbicgbmFtZT0nRGVzY3JpcHRpb24nPjwvdGV4dGFyZWE+PGRpdiBjbGFzcz0nemN3Zl9jb2xfaGVscCc+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9yb3cnPjxkaXYgY2xhc3M9J3pjd2ZfcHJpdmFjeSc+PGRpdiBjbGFzcz0nZElCIHZhdCcgYWxpZ249J2xlZnQnPjxkaXYgY2xhc3M9J2Rpc3BsYXlQdXJwb3NlICBmMTMnPjxsYWJlbCBjbGFzcz0nbmV3Q3VzdG9tY2hrYm94LW1kIGRJQiB3MTAwcGVyJz48aW5wdXQgYXV0b2NvbXBsZXRlPSdvZmYnIGlkPSdwcml2YWN5VG9vbDQ5MTg0MzAwMDA0MDA1MDE2NycgdHlwZT0nY2hlY2tib3gnIG5hbWU9J3ByaXZhY3lUb29sJyBvbmNsaWNrPSdkaXNhYmxlRXJyNDkxODQzMDAwMDQwMDUwMTY3KCknPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nZElCIHpjd2ZfcHJpdmFjeV90eHQnIHN0eWxlPSdmb250LXNpemU6IDE1cHg7Zm9udC1mYW1pbHk6VmVyZGFuYTtjb2xvcjogI0ZGRkZGRjsnPkFjZXB0byBsYSA8YSBocmVmPSdodHRwczovL3d3dy5pY2VzLXNwYWluLmNvbS9wb2xpdGljYS1kZS1wcml2YWNpZGFkLycgdGl0bGU9J2h0dHBzOi8vd3d3LmljZXMtc3BhaW4uY29tL3BvbGl0aWNhLWRlLXByaXZhY2lkYWQvJyB0YXJnZXQ9J19ibGFuayc+UG9sw610aWNhIGRlIHByaXZhY2lkYWQ8L2E+LjwvZGl2PiA8ZGl2ICBpZD0ncHJpdmFjeUVycjQ5MTg0MzAwMDA0MDA1MDE2Nycgc3R5bGU9J2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnJlZDtwYWRkaW5nLWxlZnQ6IDVweDt2aXNpYmlsaXR5OmhpZGRlbjsnPkFjZXB0ZSBwb3IgZmF2b3I8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX3Jvdyc+PGRpdiBjbGFzcz0nemN3Zl9jb2xfbGFiJz48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9mbGQnPjxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdmb3Jtc3VibWl0JyBjbGFzcz0nZm9ybXN1Ym1pdCB6Y3dmX2J1dHRvbicgdmFsdWU9J0VudmlhcicgdGl0bGU9J0Vudmlhcic+PGlucHV0IHR5cGU9J3Jlc2V0JyBjbGFzcz0nemN3Zl9idXR0b24nIG5hbWU9J3Jlc2V0JyB2YWx1ZT0nUmVzdGFibGVjZXInIHRpdGxlPSdSZXN0YWJsZWNlcic+PC9kaXY+PC9kaXY+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz52YXIgZm9ybUNhbGVuZGVyPXt1c2VyUGF0dGVybjonWVlZWS1NTS1ERCcsY3VyckRhdGVPYmo6dm9pZCAwLGN1cnJNb250aDp2b2lkIDAsY3VyclllYXI6dm9pZCAwLGN1cnJEYXRlOnZvaWQgMCxjdXJyTW9udGhFbmQ6WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxtb250aE5hbWU6dm9pZCAwLGRheXM6dm9pZCAwLGRpc3BsYXlQYW5lbDp2b2lkIDAsaXNIaWRlVG9kYXk6dm9pZCAwLGNhbERlZkNvbG9yOicjNTE1Q0NCJyx3ZWVrZGF5czp7MTonU3VuZGF5JywyOidNb25kYXknLDM6J1R1ZXNkYXknLDQ6J1dlZG5lc2RheScsNTonVGh1cnNkYXknLDY6J0ZyaWRheScsNzonU2F0dXJkYXknfSxtb250aHM6ezE6J0phbnVhcnknLDI6J0ZlYnJ1YXJ5JywzOidNYXJjaCcsNDonQXByaWwnLDU6J01heScsNjonSnVuZScsNzonSnVseScsODonQXVndXN0Jyw5OidTZXB0ZW1iZXInLDEwOidPY3RvYmVyJywxMTonTm92ZW1iZXInLDEyOidEZWNlbWJlcid9LGluaXQ6ZnVuY3Rpb24oKXt0aGlzLm1vbnRoTmFtZT1be2h0bWw6J0phbnVhcnknLHZhbHVlOjB9LHtodG1sOidGZWJydWFyeScsdmFsdWU6MX0se2h0bWw6J01hcmNoJyx2YWx1ZToyfSx7aHRtbDonQXByaWwnLHZhbHVlOjN9LHtodG1sOidNYXknLHZhbHVlOjR9LHtodG1sOidKdW5lJyx2YWx1ZTo1fSx7aHRtbDonSnVseScsdmFsdWU6Nn0se2h0bWw6J0F1Z3VzdCcsdmFsdWU6N30se2h0bWw6J1NlcHRlbWJlcicsdmFsdWU6OH0se2h0bWw6J09jdG9iZXInLHZhbHVlOjl9LHtodG1sOidOb3ZlbWJlcicsdmFsdWU6MTB9LHtodG1sOidEZWNlbWJlcicsdmFsdWU6MTF9XSx0aGlzLmRheXM9Wydzc3VuZGF5Jywnc21vbmRheScsJ3N0dWVzZGF5Jywnc3dlZG5lc2RheScsJ3N0aHVyc2RheScsJ3NmcmlkYXknLCdzc2F0dXJkYXknXSx0aGlzLmRheU5hbWVzU2hvcnQ9WydTdW4nLCdNb24nLCdUdWUnLCdXZWQnLCdUaHUnLCdGcmknLCdTYXQnXSx0aGlzLmRheXNCYXNlZE9uUHJlZmVybmNlPVsnc3N1bmRheScsJ3Ntb25kYXknLCdzdHVlc2RheScsJ3N3ZWRuZXNkYXknLCdzdGh1cnNkYXknLCdzZnJpZGF5Jywnc3NhdHVyZGF5J107dmFyIGU9dGhpcy5kYXlzQmFzZWRPblByZWZlcm5jZVswXTt0aGlzLmRheXNCYXNlZE9uUHJlZmVybmNlLnNoaWZ0KDEpLHRoaXMuZGF5c0Jhc2VkT25QcmVmZXJuY2UucHVzaChlKTt2YXIgdD10aGlzLmRheU5hbWVzU2hvcnRbMF07dGhpcy5kYXlOYW1lc1Nob3J0LnNoaWZ0KDEpLHRoaXMuZGF5TmFtZXNTaG9ydC5wdXNoKHQpLHRoaXMuY3VyckRhdGVPYmo9bmV3IERhdGUsdGhpcy5jdXJyTW9udGg9dGhpcy5jdXJyRGF0ZU9iai5nZXRNb250aCgpLHRoaXMuY3VyclllYXI9dGhpcy5jdXJyRGF0ZU9iai5nZXRGdWxsWWVhcigpLHRoaXMuY3VyclllYXI8MWUzJiYodGhpcy5jdXJyWWVhcis9MTkwMCksdGhpcy5jdXJyRGF0ZT10aGlzLmN1cnJEYXRlT2JqLmdldERhdGUoKX0sZ2V0VGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb250aE5hbWVbdGhpcy5jdXJyTW9udGhdLmh0bWwrJyAnK3RoaXMuY3VyclllYXJ9LGNyZWF0ZUNhbGVuZGFyOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0ZW1wQ2FsRGl2JyksYT10Lmxlbmd0aCxyPTA7cjxhO3IrKyl7dmFyIG49dFtyXS5zdHlsZTsnYmxvY2snPT09bi5kaXNwbGF5JiYobi5kaXNwbGF5PSdub25lJyl9dGhpcy5jYWxlbmRhck5vZGU9ZSx0aGlzLnVzZXJQYXR0ZXJuPXRoaXMuY2FsZW5kYXJOb2RlLnBsYWNlaG9sZGVyO3ZhciBzPXRoaXMuY2FsZW5kYXJOb2RlLnZhbHVlLGk9ITE7aWYocyl7dmFyIGw9ZGF0ZUZvcm1hdENvbnZlcnQudmFsaWRhdGUocyx0aGlzLnVzZXJQYXR0ZXJuKTtsJiYodGhpcy5jdXJyRGF0ZT1sLmdldERhdGUoKSx0aGlzLmN1cnJNb250aD1sLmdldE1vbnRoKCksdGhpcy5jdXJyWWVhcj1sLmdldEZ1bGxZZWFyKCksdGhpcy5jdXJyWWVhcjwxZTMmJih0aGlzLmN1cnJZZWFyPU51bWJlcih0aGlzLmN1cnJZZWFyKSsxOTAwKSl9ZWxzZSBpPSEwLGZvcm1DYWxlbmRlci5pbml0KCk7dGhpcy5tb250aE5hbWV8fGZvcm1DYWxlbmRlci5pbml0KCksdGhpcy5jcmVhdGVEYXRlUGlja2VyKHRoaXMuY3VyckRhdGUsdGhpcy5jdXJyTW9udGgsdGhpcy5jdXJyWWVhcixpLCExKX0sY3JlYXRlRGF0ZVBpY2tlcjpmdW5jdGlvbihlLHQsYSxyLG4pezE9PT10aGlzLmN1cnJNb250aCYmKHRoaXMuY3Vyck1vbnRoRW5kWzFdPXRoaXMuY3VyclllYXIlNDAwPT0wfHx0aGlzLmN1cnJZZWFyJTQ9PTAmJnRoaXMuY3VyclllYXIlMTAwIT0wPzI5OjI4KTt2YXIgcz1uZXcgRGF0ZShhLHQsMSksaT02LGw9dGhpcy5kYXlzQmFzZWRPblByZWZlcm5jZS5pbmRleE9mKHRoaXMuZGF5c1tzLmdldERheSgpXSkrMTtpPTMxPT09dGhpcy5jdXJyTW9udGhFbmRbdF0mJmw+PTZ8fDMwPT09dGhpcy5jdXJyTW9udGhFbmRbdF0mJjc9PT1sPzc6Mjg9PT10aGlzLmN1cnJNb250aEVuZFt0XSYmMT09PWw/NTo2O3ZhciBkPXRoaXMuZ2V0VGl0bGUoZSxhLHQpLG89dGhpcy5kYXlOYW1lc1Nob3J0LGg9JzxkaXYgaWQ9XCdjYWxlbkRpdlwnPjxpIGlkPVwnY2FsQXJyb3dcJyBzdHlsZT1cJ2Rpc3BsYXk6bm9uZTtcJyBjbGFzcz1cJ2RJQiBTb2NpYWxBcnJvd1wnPjwvaT48ZGl2PjxkaXY+JztoKz0nPGRpdiBjbGFzcz1cJ3R4dC1jdHJcJz48c3BhbiBjbGFzcz1cJ2NhbE5hdiBkSUIgdmFtIHllYXJOYXZMZnRcJyBvbmNsaWNrPVwnZm9ybUNhbGVuZGVyLnVwZGF0ZURhdGVQaWNrZXIoZXZlbnQsdW5kZWZpbmVkLCAtMSlcJz48aSBjbGFzcz1cJ2Fycm93IGxlZnQgbVJNaW51czJcJz48L2k+PGkgY2xhc3M9XCdhcnJvdyBsZWZ0XCc+PC9pPjwvc3Bhbj48c3BhbiBjbGFzcz1cJ2NhbE5hdiBkTGZ0IGRJQiB2YW1cJyBvbkNsaWNrPVwnZm9ybUNhbGVuZGVyLnVwZGF0ZURhdGVQaWNrZXIoZXZlbnQsLTEpXCcgaWQ9XCdwbVwnPjxpIGNsYXNzPVwnYXJyb3cgbGVmdFwnPjwvaT48L3NwYW4+PHNwYW4gY2xhc3M9XCdzQ2FsTW9uXCc+JytkKyc8L3NwYW4+PHNwYW4gY2xhc3M9XCdjYWxOYXYgZFJndCB2YW1cJyBvbkNsaWNrID1cJ2Zvcm1DYWxlbmRlci51cGRhdGVEYXRlUGlja2VyKGV2ZW50LDEpXCcgaWQ9XCdubVwnPjxpIGNsYXNzPVwnYXJyb3cgcmlnaHRcJz48L2k+PC9zcGFuPjxzcGFuIGNsYXNzPVwnY2FsTmF2IGRJQiB2YW0geWVhck5hdlJndFwnIG9uY2xpY2s9XCdmb3JtQ2FsZW5kZXIudXBkYXRlRGF0ZVBpY2tlcihldmVudCx1bmRlZmluZWQsIDEpXCc+PGkgY2xhc3M9XCdhcnJvdyByaWdodFwnPjwvaT48aSBjbGFzcz1cJ2Fycm93IHJpZ2h0IG1MTWludXMyXCc+PC9pPjwvc3Bhbj48L2Rpdj4nLGgrPSc8dGFibGUgIGNsYXNzPVwnY2FsRGF5XCcgIGlkID1cJ3dlZWtEYXlzXCcgc3R5bGU9XCdjb2xvcjojOGI5YWI5OyBmb250LXNpemU6OHB4OyBtYXJnaW4tbGVmdDowXCc+PHRyPiA8dGg+JytvWzBdKyc8L3RoPiA8dGg+JytvWzFdKyc8L3RoPjx0aD4nK29bMl0rJzwvdGg+PHRoPicrb1szXSsnPC90aD4gPHRoPicrb1s0XSsnPC90aD4gPHRoPicrb1s1XSsnPC90aD4gPHRoPicrb1s2XSsnPC90aD48L3RyPjwvdGFibGU+JyxoKz0nPC9kaXY+JyxoKz0nPHRhYmxlIGlkPVwnY2FsSGVhZGVyXCcgY2xhc3M9XCdjYWxEYXlcJyBzdHlsZT1cJ21hcmdpbi1sZWZ0OjA7IG1hcmdpbi10b3A6LTVweDtcJyB3aWR0aD1cJzEwMCVcJyBjZWxsc3BhY2luZz1cJzBcJyBjZWxscGFkZGluZz1cJzBcJyBib3JkZXI9XCcwXCcgPic7dmFyIGM9JycsdT1uZXcgRGF0ZSx5PWF8fHUuZ2V0RnVsbFllYXIoKSx2PWV8fHUuZ2V0RGF0ZSgpLGc9dm9pZCAwPT09dD91LmdldE1vbnRoKCk6dCxtPXUuZ2V0TW9udGgoKSxwPXUuZ2V0RnVsbFllYXIoKTt1LmdldERhdGUoKTttPT09dCYmYT09PXAmJihjPScgc3R5bGU9XCdkaXNwbGF5Om5vbmVcJycpO2Zvcih2YXIgZixELE0sYj1zLmdldERheSgpOzEhPT1iOylzLnNldERhdGUocy5nZXREYXRlKCktMSksYj1zLmdldERheSgpO2Zvcih2YXIgeD0xO3g8PWk7eCsrKXtoKz0nPHRyPic7Zm9yKHZhciBZPTE7WTw4O1krKyl7Zj1zLmdldE1vbnRoKCksRD1zLmdldEZ1bGxZZWFyKCksTT1zLmdldERhdGUoKSxEKyctJysocGFyc2VJbnQoZikrMSkrJy0nK007dmFyIEY9J2NkYXRlIGx0LWdyYXknO2lmKE09PT12JiZEPT09eSYmZj09PWcmJihGPSdjZGF0ZSBsdC1ncmF5JyksZj09PWcmJihGPSdjZGF0ZScpLChyJiZNPT09diYmbT09PWcmJnA9PT15fHwhbiYmTT09PXYmJmY9PT1nJiZEPT09eSkmJihGPSdzZWwnKSxuKXt2YXIgaz1kYXRlRm9ybWF0Q29udmVydC52YWxpZGF0ZSh0aGlzLmNhbGVuZGFyTm9kZS52YWx1ZSxmb3JtQ2FsZW5kZXIudXNlclBhdHRlcm4pO2smJk09PT1rLmdldERhdGUoKSYmZj09PWsuZ2V0TW9udGgoKSYmRD09PWsuZ2V0RnVsbFllYXIoKSYmKEY9J3NlbCcpfWgrPSc8dGQgY2xhc3M9XCcnK0YrJ1wnIG9uQ2xpY2s9XCdmb3JtQ2FsZW5kZXIuZGlzcGxheVNlbGVjdGVkRGF0ZShcIicrTSsnICcrZisnICcrRCsnXCIpXCc+JytNKyc8L3RkPicscy5zZXREYXRlKHMuZ2V0RGF0ZSgpKzEpfWgrPSc8L3RyPid9aCs9JzwvdGFibGU+JyxoKz0nPGRpdj4nLHRoaXMuaXNIaWRlVG9kYXl8fChoKz0nPGRpdiBpZD1cJ2NhbEJ0bnNcJyBjbGFzcz1cJ3BUMTUgcEIxNSBmTFwnPjxhJytjKycgY2xhc3M9XCdjUCBmTFwnIGhyZWY9XCdqYXZhc2NyaXB0OjtcJyBpZD1cJ3RvZGF5QnRuXCcgb25jbGljaz1cJ2Zvcm1DYWxlbmRlci5kaXNwbGF5U2VsZWN0ZWREYXRlKFwidG9kYXlcIilcJz5Ub2RheTwvYT4nKSxoKz0nPC9kaXY+JyxoKz0nPC9kaXY+JyxoKz0nPC9kaXY+PC9kaXY+Jzt2YXIgQz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnK3RoaXMuY2FsZW5kYXJOb2RlLmdldEF0dHJpYnV0ZSgndHBsaWQnKSk7Qy5pbm5lckhUTUw9aCxDLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJ30sZGlzcGxheVNlbGVjdGVkRGF0ZTpmdW5jdGlvbihlLHQpe2lmKCF0KXQ9dGhpcy5jYWxlbmRhck5vZGU7aWYoJ3RvZGF5Jz09PWUpe3ZhciBhPW5ldyBEYXRlO2U9YS5nZXREYXRlKCkrJyAnK2EuZ2V0TW9udGgoKSsnICcrYS5nZXRGdWxsWWVhcigpfWU9ZS5zcGxpdCgnICcpO3ZhciByPWRhdGVGb3JtYXRDb252ZXJ0LmNvbnZlcnRGb3JtYXQobmV3IERhdGUoZVsyXSxlWzFdLGVbMF0pLHRoaXMudXNlclBhdHRlcm4pO3QudmFsdWU9cix0LmZvY3VzKCksdC5wbGFjZWhvbGRlcj10aGlzLnVzZXJQYXR0ZXJuLGZvcm1DYWxlbmRlci5jbG9zZURhdGVQaWNrZXIoKSx0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJyxmdW5jdGlvbihlKXtmb3JtQ2FsZW5kZXIuY2FsZW5kYXJOb2RlPXRoaXM7dmFyIHQ9dGhpcy52YWx1ZSxhPWRhdGVGb3JtYXRDb252ZXJ0LnZhbGlkYXRlKHQsZm9ybUNhbGVuZGVyLnVzZXJQYXR0ZXJuKTtpZihhKXt2YXIgcj17fTtyLmRhdGU9YS5nZXREYXRlKCksci5tb250aD1hLmdldE1vbnRoKCksci55ZWFyPWEuZ2V0RnVsbFllYXIoKSxmb3JtQ2FsZW5kZXIudXBkYXRlRGF0ZVBpY2tlcihlLHZvaWQgMCx2b2lkIDAscil9fSksdC5ibHVyKCl9LGNsb3NlRGF0ZVBpY2tlcjpmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZW1wbGF0ZScrdGhpcy5jYWxlbmRhck5vZGUuZ2V0QXR0cmlidXRlKCd0cGxpZCcpKS5zdHlsZS5kaXNwbGF5PSdub25lJ30sdXBkYXRlRGF0ZVBpY2tlcjpmdW5jdGlvbihlLHQsYSxyKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnK3RoaXMuY2FsZW5kYXJOb2RlLmdldEF0dHJpYnV0ZSgndHBsaWQnKSk7ciYmKHRoaXMuY3VyckRhdGU9ci5kYXRlLHRoaXMuY3Vyck1vbnRoPXIubW9udGgsdGhpcy5jdXJyWWVhcj1yLnllYXIpLHZvaWQgMCE9PXQ/MT09PXQ/MTE9PT10aGlzLmN1cnJNb250aD8odGhpcy5jdXJyTW9udGg9MCx0aGlzLmN1cnJZZWFyKyspOnRoaXMuY3Vyck1vbnRoKys6MD09PXRoaXMuY3Vyck1vbnRoPyh0aGlzLmN1cnJNb250aD0xMSx0aGlzLmN1cnJZZWFyLS0pOnRoaXMuY3Vyck1vbnRoLS06dm9pZCAwIT09YSYmKHRoaXMuY3VyclllYXI9cGFyc2VJbnQodGhpcy5jdXJyWWVhcikrYSksdGhpcy5jcmVhdGVEYXRlUGlja2VyKHRoaXMuY3VyckRhdGUsdGhpcy5jdXJyTW9udGgsdGhpcy5jdXJyWWVhciwhMSwhMCksbi5zdHlsZS5kaXNwbGF5PSdibG9jayd9LHN0RXY6ZnVuY3Rpb24oZSl7ZXx8KGU9d2luZG93LmV2ZW50KSxlJiYoZS5jYW5jZWxCdWJibGU9ITAsZS5zdG9wUHJvcGFnYXRpb24mJmUuc3RvcFByb3BhZ2F0aW9uKCkpfX07d2luZG93Lm9uY2xpY2s9ZnVuY3Rpb24oKXtmb3IodmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndGVtcENhbERpdicpLHQ9ZS5sZW5ndGgsYT0wO2E8dDthKyspe3ZhciByPWVbYV07aWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RwbGlkPVwnJytyLmlkLnJlcGxhY2UoJ3RlbXBsYXRlJywnJykrJ1wnXScpKXJldHVybjt2YXIgbj1lW2FdLnN0eWxlOydibG9jayc9PT1uLmRpc3BsYXkmJihuLmRpc3BsYXk9J25vbmUnKX19O3ZhciBkYXRlRm9ybWF0Q29udmVydD17c2hvcnRNb246WydKYW4nLCdGZWInLCdNYXInLCdBcHInLCdNYXknLCdKdW4nLCdKdWwnLCdBdWcnLCdTZXAnLCdPY3QnLCdOb3YnLCdEZWMnXSxsb25nTW9uOlsnSmFudWFyeScsJ0ZlYnJ1YXJ5JywnTWFyY2gnLCdBcHJpbCcsJ01heScsJ0p1bmUnLCdKdWx5JywnQXVndXN0JywnU2VwdGVtYmVyJywnT2N0b2JlcicsJ05vdmVtYmVyJywnRGVjZW1iZXInXSxkYXlBcnI6WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSx3b2Q6MSxsbTondXNlcmRhdGUnLF9kYXRlT2JqOnZvaWQgMCxsTGltaXQ6ODAsZm9ybWF0czpbe3ZhbDonWVlZWScsdHlwZToneWVhcicscmVnZXg6L1xkezR9LyxsZW46NH0se3ZhbDonR0dHRycsdHlwZToneWVhcicscmVnZXg6L1xkezR9LyxsZW46NCxpc1dFRzohMH0se3ZhbDonZ2dnZycsdHlwZToneWVhcicscmVnZXg6L1xkezR9LyxsZW46NCxpc1dFRzohMH0se3ZhbDonWVknLHR5cGU6J3llYXInLHJlZ2V4Oi9cZHsyfS8sbGVuOjJ9LHt2YWw6J0dHJyx0eXBlOid5ZWFyJyxyZWdleDovXGR7Mn0vLGxlbjoyLGlzV0VHOiEwfSx7dmFsOidnZycsdHlwZToneWVhcicscmVnZXg6L1xkezJ9LyxsZW46Mixpc1dFRzohMH0se3ZhbDonTU1NTScsdHlwZTonbW9udGgnLHJlZ2V4Oi9bQS16XXszLH0vLGxvbmc6ITAsc3RyOiEwLGFycmF5OlsnSmFudWFyeScsJ0ZlYnJ1YXJ5JywnTWFyY2gnLCdBcHJpbCcsJ01heScsJ0p1bmUnLCdKdWx5JywnQXVndXN0JywnU2VwdGVtYmVyJywnT2N0b2JlcicsJ05vdmVtYmVyJywnRGVjZW1iZXInXX0se3ZhbDonTU1NJyxzdHI6ITAsdHlwZTonbW9udGgnLHJlZ2V4Oi9bQS16XXszLH0vLGFycmF5OlsnSmFuJywnRmViJywnTWFyJywnQXByJywnTWF5JywnSnVuJywnSnVsJywnQXVnJywnU2VwJywnT2N0JywnTm92JywnRGVjJ119LHt2YWw6J01vJyxzdWZmOiEwLHR5cGU6J21vbnRoJyxyZWdleDovXGR7MSwyfSg/PXN0fG5kfHJkfHRoKS8sbWF4OjEyfSx7dmFsOidNTScsdHlwZTonbW9udGgnLHJlZ2V4Oi9cZHsyfS8sbGVuOjIsbWF4OjEyLGFsdDohMH0se3ZhbDonTScsdHlwZTonbW9udGgnLHJlZ2V4Oi9cZHsxLDJ9LyxtYXg6MTJ9LHt2YWw6J0REREQnLHR5cGU6J2RhdGUnLHJlZ2V4Oi9cZHszfS8sbGVuOjMseWVhcjohMH0se3ZhbDonREREbycsdHlwZTonZGF0ZScsc3VmZjohMCxyZWdleDovXGR7MSwzfSg/PXN0fG5kfHJkfHRoKS8sbGVuOjMseWVhcjohMCxpZ25vcmU6L1xkezN9KD89c3R8bmR8cmR8dGgpL30se3ZhbDonREREJyx0eXBlOidkYXRlJyxyZWdleDovXGR7MSwzfS8seWVhcjohMCxpZ25vcmU6L1xkezN9L30se3ZhbDonRG8nLHR5cGU6J2RhdGUnLHN1ZmY6ITAscmVnZXg6L1xkezEsMn0oPz1zdHxuZHxyZHx0aCkvfSx7dmFsOidERCcsdHlwZTonZGF0ZScscmVnZXg6L1xkezJ9LyxsZW46MixhbHQ6ITB9LHt2YWw6J0QnLHR5cGU6J2RhdGUnLHJlZ2V4Oi9cZHsxLDJ9L30se3ZhbDonZGRkZCcsdHlwZTonbG9uZ2RhdGUnLHJlZ2V4Oi9bQS16XXszLH0vLGxvbmc6ITAsc3RyOiEwLGFycmF5OlsnU3VuZGF5JywnTW9uZGF5JywnVHVlc2RheScsJ1dlZG5lc2RheScsJ1RodXJzZGF5JywnRnJpZGF5JywnU2F0dXJkYXknXX0se3ZhbDonZGRkJyx0eXBlOidsb25nZGF0ZScscmVnZXg6L1tBLXpdezN9LyxzdHI6ITAsYXJyYXk6WydTdW4nLCdNb24nLCdUdWUnLCdXZWQnLCdUaHUnLCdGcmknLCdTYXQnXX0se3ZhbDonZGQnLHR5cGU6J2xvbmdkYXRlJyxyZWdleDovW0Etel17Mn0vLHN0cjohMCxhcnJheTpbJ1N1JywnTW8nLCdUdScsJ1dlJywnVGgnLCdGcicsJ1NhJ119LHt2YWw6J2RvJyx0eXBlOidsb25nZGF0ZScscmVnZXg6L1xkezF9KD89c3R8bmR8cmR8dGgpLyxzdWZmOiEwfSx7dmFsOidkJyx0eXBlOidsb25nZGF0ZScscmVnZXg6L1xkezF9L31dLHBhcnNlRm9ybWF0OmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBhLHI9dGhpcy5mb3JtYXRzLG49W10scz1yLmxlbmd0aCxpPTA7aTxzO2krKyl7dmFyIGw9cltpXTtpZighZS5sZW5ndGgpYnJlYWs7aWYoZS5pbmRleE9mKGwudmFsKT4tMSl7aWYodCYmbC5hbHQpe2E9ITA7Y29udGludWV9YSYmKGwudmFsPXJbaS0xXS52YWwsbD1yW2ktMV0pLGE9ITEsbi5wdXNoKHtmb3JtYXQ6bCxpbmRleDplLmluZGV4T2YobC52YWwpfSksZT1lLnJlcGxhY2UobC52YWwsTWF0aC5wb3coMTAsbC52YWwubGVuZ3RoLTEpKSxpLS19ZWxzZTt9cmV0dXJuIG4uc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLmluZGV4LXQuaW5kZXh9KX0sY29udmVydEZvcm1hdDpmdW5jdGlvbihlLHQpe3RoaXMuX2RhdGVPYmo9ZTt2YXIgYT10aGlzLl9kYXRlT2JqLHI9dGhpcy5wYXJzZUZvcm1hdCh0LCEwKSxuPXt9LHM9e2RhdGU6YS5nZXREYXRlKCksbW9udGg6YS5nZXRNb250aCgpLHllYXI6YS5nZXRGdWxsWWVhcigpLGRheTphLmdldERheSgpfTt0PXRoaXMuZm1SZXBsYWNlKHQucmVwbGFjZSgve3t8fX0vZywnJykscik7Zm9yKHZhciBpPXIubGVuZ3RoLGw9MDtsPGk7bCsrKXt2YXIgZD1yW2xdLmZvcm1hdDtzd2l0Y2goZC50eXBlKXtjYXNlJ2RhdGUnOnQ9dC5yZXBsYWNlKGQudmFsK3RoaXMubG0sdGhpcy5jcmN0TGVuZ3RoKGQueWVhcj90aGlzLnRvdGRhdGUocy5tb250aCx0aGlzLmlzTGVhcChzLnllYXIpLHMuZGF0ZSk6cy5kYXRlLGQubGVuLGQuc3VmZikpO2JyZWFrO2Nhc2UnbW9udGgnOnQ9ZC5zdHI/dC5yZXBsYWNlKGQudmFsK3RoaXMubG0sZC5hcnJheVtzLm1vbnRoXSk6dC5yZXBsYWNlKGQudmFsK3RoaXMubG0sdGhpcy5jcmN0TGVuZ3RoKHMubW9udGgrMSxkLmxlbixkLnN1ZmYpKTticmVhaztjYXNlJ3llYXInOnQ9dC5yZXBsYWNlKGQudmFsK3RoaXMubG0sMj09PWQubGVuP3RoaXMuY3JjdExlbmd0aChzLnllYXIlMTAwLDIpOjQ9PT0ocy55ZWFyKycnKS5sZW5ndGg/cy55ZWFyOnRoaXMuY3JjdExlbmd0aChzLnllYXIsNCkpLG4ueWVhcj1uLnllYXJ8fFtdLG4ueWVhci5wdXNoKGQpO2JyZWFrO2Nhc2UnZGF5JzpjYXNlJ3dlZWsnOm4uZmxhZz0hMCxuW2QudHlwZV09bltkLnR5cGVdfHxbXSxuW2QudHlwZV0ucHVzaChkKTticmVhaztjYXNlJ2xvbmdkYXRlJzp0PWQuc3RyP3QucmVwbGFjZShkLnZhbCt0aGlzLmxtLGQuYXJyYXlbcy5kYXldKTp0LnJlcGxhY2UoZC52YWwrdGhpcy5sbSx0aGlzLmNyY3RMZW5ndGgocy5kYXksbnVsbCxkLnN1ZmYpKX19cmV0dXJuIHQucmVwbGFjZSgve3t8fX0vZywnJyl9LGZtUmVwbGFjZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgYT0wLHI9dC5sZW5ndGgsbj0wO248cjtuKyspZT1lLnNsaWNlKDAsdFtuXS5pbmRleCthKSt0W25dLmZvcm1hdC52YWwrdGhpcy5sbStlLnNsaWNlKHRbbl0uaW5kZXgrYSt0W25dLmZvcm1hdC52YWwubGVuZ3RoKSxhKz04O3JldHVybiBlfSx0b3RkYXRlOmZ1bmN0aW9uKGUsdCxhKXtmb3IodmFyIHI9MCxuPTA7bjxlO24rKylyKz10aGlzLmRheUFycltuXSx0JiYxPT09biYmKHIrPTEpO3JldHVybiByKyhhfHwwKX0sY3JjdExlbmd0aDpmdW5jdGlvbihlLHQsYSl7dmFyIHI9Jyc7aWYoYSYmKHI9dGhpcy5udGhjb252KGUpKSx0KXtlPWUudG9TdHJpbmcoKTtmb3IodmFyIG49MTtuPHQ7bisrKWUubGVuZ3RoPD1uJiYoZT0nMCcrZSl9cmV0dXJuIGUrcn0sbnRoY29udjpmdW5jdGlvbihlKXtpZihlPjMmJmU8MjEpcmV0dXJuJ3RoJztzd2l0Y2goZSUxMCl7Y2FzZSAxOnJldHVybidzdCc7Y2FzZSAyOnJldHVybiduZCc7Y2FzZSAzOnJldHVybidyZCc7ZGVmYXVsdDpyZXR1cm4ndGgnfX0saXNMZWFwOmZ1bmN0aW9uKGUpe3JldHVybiAyPT09KGUrPScnKS5sZW5ndGgmJihlPXRoaXMuZ2V0Q29ycmVjdFllYXIocGFyc2VJbnQoZSkpKSwoZT1wYXJzZUludChlKSklND09MCYmZSUxMDAhPTB8fGUlNDAwPT0wfSxnZXRDb3JyZWN0WWVhcjpmdW5jdGlvbihlKXt2YXIgdD1lKycnO2lmKGU9cGFyc2VJbnQoZSksMj09PXQubGVuZ3RoKXt2YXIgYT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCkscj1wYXJzZUludChhLzEwMCksbj1hJTEwMCxzPShuLXRoaXMubExpbWl0KzEwMCklMTAwO2U9bj5zP2U8cz9yKzErJycrdGhpcy5jcmN0TGVuZ3RoKGUsMik6cisnJyt0aGlzLmNyY3RMZW5ndGgoZSwyKTplPHM/cisnJyt0aGlzLmNyY3RMZW5ndGgoZSwyKTpyLTErJycrdGhpcy5jcmN0TGVuZ3RoKGUsMil9cmV0dXJuIGV9LHZhbEZvcm1hdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgYT17fSxyPW5ldyBEYXRlKChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSwwKSxuPXRoaXMucGFyc2VGb3JtYXQodCwhMCkscz1lLGk9dD10LnJlcGxhY2UoL3t7fH19L2csJycpLGw9bi5sZW5ndGgsZD0wO2Q8bDtkKyspe3ZhciBvLGg9bltkXS5mb3JtYXQ7c3dpdGNoKGgudHlwZSl7Y2FzZSdkYXRlJzpjYXNlJ3llYXInOmNhc2Und2Vlayc6Y2FzZSdkYXknOmgucmVnZXgudGVzdChlKT8obz0neWVhcic9PT1oLnR5cGU/ZS5tYXRjaChoLnJlZ2V4KVtoLm1hdGNofHwwXTpwYXJzZUludChlLm1hdGNoKGgucmVnZXgpW2gubWF0Y2h8fDBdKSxhW2gudHlwZV09byxlPXRoaXMucmVwbGFjZVZhbChlLGgucmVnZXgsaC5zdWZmKSxzPXRoaXMucmVwbGFjZVZhbChzLGgucmVnZXgsaC5zdWZmLGgudmFsKSxoLnllYXImJihhLmRhdGU9Z2V0RGF5KGEuZGF0ZSkuZGF5KSk6YS55ZWFyJiZhLndlZWs/KGFbaC50eXBlXT10aGlzLndvZCx0PXQucmVwbGFjZShoLnZhbCwnJyksaT1pLnJlcGxhY2UoaC52YWwsJycpKTphW2gudHlwZV09J0ludmFsaWQnLC9kYXRlL2kudGVzdChoLnR5cGUpJiYwPT09YVtoLnR5cGVdJiYoYVtoLnR5cGVdPSdJbnZhbGlkJyk7YnJlYWs7Y2FzZSdtb250aCc6aC5yZWdleC50ZXN0KGUpPyhvPXRoaXMuZ2V0TW9udGgoZS5tYXRjaChoLnJlZ2V4KVswXSxoLnN1ZmYsaC5zdHIsaC5sb25nKSxhLm1vbnRoPW8udmFsLGU9dGhpcy5yZXBsYWNlVmFsKGUsby5tb258fGgucmVnZXgsaC5zdWZmKSxzPXRoaXMucmVwbGFjZVZhbChzLG8ubW9ufHxoLnJlZ2V4LGguc3VmZixoLnZhbCkpOmEubW9udGg9J0ludmFsaWQnLGEubW9udGg8MCYmKGEubW9udGg9J0ludmFsaWQnKTticmVhaztjYXNlJ2xvbmdkYXRlJzpoLnJlZ2V4LnRlc3QoZSkmJihvPWguc3RyP3RoaXMuZmluZFZhbChoLmFycmF5LGUubWF0Y2goaC5yZWdleClbMF0pOnBhcnNlSW50KGUubWF0Y2goaC5yZWdleClbMF0pLGEubG9uZ2RhdGU9dGhpcy5pc0RlZihvLmluZGV4KT9vLmluZGV4Om8sZT10aGlzLnJlcGxhY2VWYWwoZSxvLm1vbnx8byxoLnN1ZmYpLHM9dGhpcy5yZXBsYWNlVmFsKHMsby5tb258fG8saC5zdWZmLGgudmFsKSl9dD10LnJlcGxhY2UoaC52YWxGb3JtfHxoLnZhbCwnJyl9aWYodGhpcy5pc0RlZihhLmxvbmdkYXRlKSYmYS5kYXkmJmEuZGF5IT09YS5sb25nZGF0ZT9yLnNldEZ1bGxZZWFyKCdJbnZhbGlkJyk6dGhpcy5pc0RlZihhLnllYXIpJiZyLnNldEZ1bGxZZWFyKHRoaXMuZ2V0Q29ycmVjdFllYXIoYS55ZWFyKSksdGhpcy5pc0RlZihhLm1vbnRoKSYmci5zZXRNb250aChhLm1vbnRoKSx0aGlzLmlzRGVmKGEuZGF0ZSkmJnIuc2V0RGF0ZShhLmRhdGU8PXRoaXMuZGF5QXJyW3IuZ2V0TW9udGgoKV0rKDE9PT1yLmdldE1vbnRoKCkmJnRoaXMuaXNMZWFwKHIuZ2V0RnVsbFllYXIoKSk/MTowKT9hLmRhdGU6J0ludmFsaWQnKSx0aGlzLl9pc0NvcnJlY3RGb3JtYXQ9ZS5sZW5ndGg9PT10Lmxlbmd0aCYmaT09PXMmJnRoaXMudmFsaWRhdGUocikpcmV0dXJuIHJ9LHZhbGlkYXRlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9ZS5jb25zdHJ1Y3RvcjtpZihhPT09RGF0ZSlyZXR1cm4gdGhpcy5fZGF0ZU9iaj1lLCdJbnZhbGlkIERhdGUnIT09ZS50b1N0cmluZygpO2lmKGE9PT1TdHJpbmcmJnQpe3ZhciByPXRoaXMudmFsRm9ybWF0KGUsdCk7cmV0dXJuIHImJnRoaXMuX2lzQ29ycmVjdEZvcm1hdCYmKHRoaXMuX2Zvcm1hdD10KSxyfX0scmVwbGFjZVZhbDpmdW5jdGlvbihlLHQsYSxyKXtyZXR1cm4gZT1lLnJlcGxhY2UodCxyfHwnJyksYSYmKGU9ZS5yZXBsYWNlKC9zdHxuZHxyZHx0aC8sJycpKSxlfSxnZXRNb250aDpmdW5jdGlvbihlLHQsYSxyKXt2YXIgbjtpZihhKXt2YXIgcz10aGlzLmZpbmRWYWwocj90aGlzLmxvbmdNb246dGhpcy5zaG9ydE1vbixlKTtuPXMubW9uLGU9cy5pbmRleCwoIW58fGU+MTEpJiYoZT0nSW52YWxpZCcpfWVsc2UoZT1wYXJzZUludChlKS0xKT4xMSYmKGU9J0ludmFsaWQnKTtyZXR1cm57dmFsOmUsbW9uOm59fSxmaW5kVmFsOmZ1bmN0aW9uKGUsdCl7dmFyIGEscixuPWUubGVuZ3RoO2ZvcihyPTA7cjxuO3IrKylpZihuZXcgUmVnRXhwKGVbcl0pLnRlc3QodCkpe2E9ZVtyXTticmVha31yZXR1cm57bW9uOmEsaW5kZXg6cn19LGlzRGVmOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lfX07PC9zY3JpcHQ+CjxzdHlsZT4KI2NhbGVuRGl2e3BhZGRpbmc6MTBweDtkaXNwbGF5OnRhYmxlOyB3aWR0aDogMTk1cHg7Zm9udC1mYW1pbHk6IGhlbHZldGljYSxzYW5zLXNlcmlmICFpbXBvcnRhbnQ7fQouY2FsTmF2e3dpZHRoOjIwcHg7IGhlaWdodDoxNXB4OyBkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjRweDsgY3Vyc29yOnBvaW50ZXJ9CiNjYWxlbkRpdiAuY2FsTmF2IHt3aWR0aDoxNXB4O30KI2NhbGVuRGl2IC55ZWFyTmF2TGZ0IHtyaWdodDoxMHB4O30KI2NhbGVuRGl2IC55ZWFyTmF2Umd0IHtsZWZ0OjEwcHg7fQojY2FsZW5EaXYgLmRMZnQge3JpZ2h0OjVweDsgfQojY2FsZW5EaXYgLmRSZ3Qge2xlZnQ6NXB4O30KLmRMZnR7cmlnaHQ6MTBweDtvcGFjaXR5OjAuODsgfQouZFJndHtsZWZ0OjEwcHg7b3BhY2l0eTowLjg7fQoueWVhck5hdkxmdHtyaWdodDoxNXB4OyB9Ci55ZWFyTmF2Umd0e2xlZnQ6MTVweDtvcGFjaXR5OjAuNjt9CiNjYWxlbkRpdiB0YWJsZS5jYWxEYXkge2JvcmRlci1zcGFjaW5nOjZweDsgbWFyZ2luLXRvcDowfQojY2FsZW5EaXYgdGFibGUuY2FsRGF5IHRkeyBwYWRkaW5nOjNweCA0cHg7IGZvbnQtc2l6ZToxMXB4fQojY2FsZW5EaXYgdGFibGUuY2FsRGF5IHRoIHtwYWRkaW5nOiAwIDNweDtmb250LXNpemU6IDExcHg7cGFkZGluZy1yaWdodDogMDtwYWRkaW5nLWxlZnQ6IDFweDtjb2xvcjogIzg4ODt3aWR0aDogMjJweDtjdXJzb3I6IGRlZmF1bHQ7Ym9yZGVyLXJhZGl1czogM3B4O3RleHQtYWxpZ246IGNlbnRlcjtmb250LXdlaWdodDogbm9ybWFsO30KI2NhbGVuRGl2ICN3ZWVrRGF5c3ttYXJnaW4tdG9wOiAxMHB4O21hcmdpbi1ib3R0b206IDVweDtib3JkZXItdG9wOiAxcHggc29saWQgI2MwYzZjYztib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MwYzZjYztib3JkZXItc3BhY2luZzogNXB4O21hcmdpbi1sZWZ0OiAwO2NvbG9yOiAjOGI5YWI5O30KI2NhbGVuRGl2IC5zQ2FsTW9uIHtjdXJzb3I6IGRlZmF1bHQ7ZGlzcGxheTogaW5saW5lLWJsb2NrO2NvbG9yOiAjODg4O3dpZHRoOiAxMTBweDtmb250LXNpemU6IDEycHg7fQp0YWJsZS5jYWxEYXkgdGQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O30KdGFibGUuY2FsRGF5eyBjb2xvcjojMjIyOyBtYXJnaW4tbGVmdDotMTBweDsgYm9yZGVyLXNwYWNpbmc6MTJweDt9CnRhYmxlLmNhbERheSB0ZCwgdGFibGUuY2FsRGF5IHRoeyBmb250LXNpemU6IHZhcigtLWNybS1leHRyYS1tZWRpdW0tZm9udC1zaXplKTsgY3Vyc29yOmRlZmF1bHQ7Ym9yZGVyLXJhZGl1czozcHg7IHRleHQtYWxpZ246Y2VudGVyOyAgcGFkZGluZzozcHggNXB4OyBmb250LWZhbWlseTogaGVsdmV0aWNhLHNhbnMtc2VyaWYgIWltcG9ydGFudDsgfQp0YWJsZS5jYWxEYXkgdGQuc2VsLHRhYmxlLmNhbERheSB0ZC5zZWw6aG92ZXJ7Y29sb3I6I2ZmZjsgYmFja2dyb3VuZDojYjNiM2IzOyBib3JkZXItcmFkaXVzOjNweDt9CnRhYmxlLmNhbERheSB0ZC5ub051bSx0YWJsZS5jYWxEYXkgdGQubHQtZ3JheXtjb2xvcjojYzFjMWMxO30KLnZwdmwsIC50eHQtY3RyIHt0ZXh0LWFsaWduOiBjZW50ZXI7fQojY2FsQnRucyBhLCAubHl0ZUNhbEJ0bnMgLmx5dGVDYWxDdXJyZW50RGF0ZSBhIHtjb2xvcjogdmFyKC0tbGlua0NvbG9yKTtmb250LXNpemU6IDE0cHg7dGV4dC1kZWNvcmF0aW9uOiBub25lO30KI2NhbGVuRGl2ICNjYWxCdG5zIHt3aWR0aDogMTgzcHg7bWFyZ2luLWxlZnQ6IDEwcHg7Ym9yZGVyLXRvcDogMDtmb250LXNpemU6IDExcHg7cGFkZGluZzogM3B4IDAgMTJweCFpbXBvcnRhbnQ7fQouYXJyb3cge2JvcmRlcjogc29saWQgIzY2Njtib3JkZXItd2lkdGg6IDAgMXB4IDFweCAwO2Rpc3BsYXk6IGlubGluZS1ibG9jaztoZWlnaHQ6IDZweDt3aWR0aDogNnB4O30KI2NhbGVuRGl2IC5yaWdodCB7dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTstd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7fQojY2FsZW5EaXYgLmxlZnQge3RyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTt9Ci5tTE1pbnVzMnttYXJnaW4tbGVmdDogLTJweDt9Ci5tUk1pbnVzMnttYXJnaW4tcmlnaHQ6IC0ycHg7fQoudmFte3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7fQoudGVtcENhbERpdntkaXNwbGF5OiBub25lO21hcmdpbjogMDtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogMTAwMDtiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXI6IDFweCBzb2xpZCAjYzBjNmNjOyAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLDAsMCwwLjMpO2JveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLDAsMCwwLjMpOyBib3JkZXItdG9wOiAwO3RvcDogMjBweDt9PC9zdHlsZT4KCTxzY3JpcHQ+CgkJZnVuY3Rpb24gcHJpdmFjeUFsZXJ0NDkxODQzMDAwMDQwMDUwMTY3KCkKCQl7CgkJCXZhciBwcml2YWN5VG9vbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml2YWN5VG9vbDQ5MTg0MzAwMDA0MDA1MDE2NycpOwoJCQl2YXIgcHJpdmFjeUVyciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml2YWN5RXJyNDkxODQzMDAwMDQwMDUwMTY3Jyk7CgkJCWlmKHByaXZhY3lUb29sICE9dW5kZWZpbmVkICYmICFwcml2YWN5VG9vbC5jaGVja2VkICkKCQkJewoJCQkJcHJpdmFjeUVyci5zdHlsZS52aXNpYmlsaXR5PSd2aXNpYmxlJzsKCQkJCXByaXZhY3lUb29sLmZvY3VzKCk7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkJcmV0dXJuIHRydWU7CgkJfQoJCWZ1bmN0aW9uIGRpc2FibGVFcnI0OTE4NDMwMDAwNDAwNTAxNjcoKQoJCXsKCQkJdmFyIHByaXZhY3lUb29sID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXZhY3lUb29sNDkxODQzMDAwMDQwMDUwMTY3Jyk7CgkJCXZhciBwcml2YWN5RXJyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXZhY3lFcnI0OTE4NDMwMDAwNDAwNTAxNjcnKTsKCQkJaWYocHJpdmFjeVRvb2wgIT11bmRlZmluZWQgJiYgcHJpdmFjeVRvb2wuY2hlY2tlZCAmJiBwcml2YWN5RXJyICE9dW5kZWZpbmVkICkKCQkJewoJCQkJcHJpdmFjeUVyci5zdHlsZS52aXNpYmlsaXR5PSdoaWRkZW4nOwoJCQl9CgkJfQoJZnVuY3Rpb24gdmFsaWRhdGVFbWFpbDQ5MTg0MzAwMDA0MDA1MDE2NygpCgl7CgkJdmFyIGZvcm0gPSBkb2N1bWVudC5mb3Jtc1snV2ViVG9MZWFkczQ5MTg0MzAwMDA0MDA1MDE2NyddOwoJCXZhciBlbWFpbEZsZCA9IGZvcm0ucXVlcnlTZWxlY3RvckFsbCgnW2Z0eXBlPWVtYWlsXScpOwoJCXZhciBpOwoJCWZvciAoaSA9IDA7IGkgPCBlbWFpbEZsZC5sZW5ndGg7IGkrKykKCQl7CgkJCXZhciBlbWFpbFZhbCA9IGVtYWlsRmxkW2ldLnZhbHVlOwoJCQlpZigoZW1haWxWYWwucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSkubGVuZ3RoIT0wICkKCQkJewoJCQkJdmFyIGF0cG9zPWVtYWlsVmFsLmluZGV4T2YoJ0AnKTsKCQkJCXZhciBkb3Rwb3M9ZW1haWxWYWwubGFzdEluZGV4T2YoJy4nKTsKCQkJCWlmIChhdHBvczwxIHx8IGRvdHBvczxhdHBvcysyIHx8IGRvdHBvcysyPj1lbWFpbFZhbC5sZW5ndGgpCgkJCQl7CgkJCQkJYWxlcnQoJ0ludHJvZHV6Y2EgdW5hIGRpcmVjY2nDs24gZGUgY29ycmVvIGVsZWN0csOzbmljbyB2w6FsaWRhLiAnKTsKCQkJCQllbWFpbEZsZFtpXS5mb2N1cygpOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCWZ1bmN0aW9uIHZhbGlkYXRlRGF0ZUZvcm1hdDQ5MTg0MzAwMDA0MDA1MDE2NygpCgl7CgkJdmFyIGZvcm0gPSBkb2N1bWVudC5mb3Jtc1snV2ViVG9MZWFkczQ5MTg0MzAwMDA0MDA1MDE2NyddOwoJCXZhciBkYXRlRmxkcyA9IGZvcm0ucXVlcnlTZWxlY3RvckFsbCgnW2Z0eXBlPWRhdGVdJyk7CgkJdmFyIGk7CgkJZm9yIChpID0gMDsgaSA8IGRhdGVGbGRzLmxlbmd0aDsgaSsrKQoJCXsKCQkJdmFyIGRhdGVGbGQgPSBkYXRlRmxkc1tpXTsKCQkJdmFyIHVzclB0cm4gPSBkYXRlRmxkLnBsYWNlaG9sZGVyOwoJCQl2YXIgZGF0ZVZhbCA9IGRhdGVGbGQudmFsdWU7CgkJCWlmKGRhdGVWYWwudHJpbSgpICE9ICcnKXsKCQkJCXZhciB2YWxkID0gZGF0ZUZvcm1hdENvbnZlcnQudmFsaWRhdGUoZGF0ZVZhbCx1c3JQdHJuKTsKCQkJCWlmKCF2YWxkKXsKCQkJCQlhbGVydCgnRXNjcmliYSB1bmEgZmVjaGEgdsOhbGlkYSAnKTsKCQkJCQlkYXRlRmxkLmZvY3VzKCk7CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoJCQl9CgkJfQoJCXJldHVybiB0cnVlOwoJfQoKIAkgIGZ1bmN0aW9uIGNoZWNrTWFuZGF0b3J5NDkxODQzMDAwMDQwMDUwMTY3KCkgewoJCXZhciBtbmRGaWxlZHMgPSBuZXcgQXJyYXkoJ0NvbXBhbnknLCdMYXN0IE5hbWUnLCdMRUFEQ0Y2JywnTEVBRENGNTQnLCdMRUFEQ0Y4MicsJ0xFQURDRjEyMScpOwoJCXZhciBmbGRMYW5nVmFsID0gbmV3IEFycmF5KCdOb21icmVceDIweVx4MjBhcGVsbGlkb3NceDIwZGVsXHgyMHByb2dlbml0b3JceDJGYScsJ05vbWJyZVx4MjB5XHgyMGFwZWxsaWRvc1x4MjBkZWxceDIwZXN0dWRpYW50ZScsJ0VceDJEbWFpbCcsJ1RlbFx4RTlmb25vJywnRmVjaGFceDIwZGVceDIwbmFjaW1pZW50b1x4MjBkZWxceDIwZXN0dWRpYW50ZScsJ1Byb3ZpbmNpYScpOwoJCWZvcihpPTA7aTxtbmRGaWxlZHMubGVuZ3RoO2krKykgewoJCSAgdmFyIGZpZWxkT2JqPWRvY3VtZW50LmZvcm1zWydXZWJUb0xlYWRzNDkxODQzMDAwMDQwMDUwMTY3J11bbW5kRmlsZWRzW2ldXTsKCQkgIGlmKGZpZWxkT2JqKSB7CgkJCWlmICgoKGZpZWxkT2JqLnZhbHVlKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpKS5sZW5ndGg9PTApIHsKCQkJIGlmKGZpZWxkT2JqLnR5cGUgPT0nZmlsZScpCgkJCQl7IAoJCQkJIGFsZXJ0KCdTZWxlY2Npb25lIHVuIGFyY2hpdm8gcGFyYSBjYXJnYXIuJyk7IAoJCQkJIGZpZWxkT2JqLmZvY3VzKCk7IAoJCQkJIHJldHVybiBmYWxzZTsKCQkJCX0gCgkJCWFsZXJ0KGZsZExhbmdWYWxbaV0gKycgbm8gcHVlZGUgZXN0YXIgdmFjw61vLicpOyAKICAgCSAgIAkgIAkgIGZpZWxkT2JqLmZvY3VzKCk7CiAgIAkgICAJICAJICByZXR1cm4gZmFsc2U7CgkJCX0gIGVsc2UgaWYoZmllbGRPYmoubm9kZU5hbWU9PSdTRUxFQ1QnKSB7CiAgCSAgIAkgICAJIGlmKGZpZWxkT2JqLm9wdGlvbnNbZmllbGRPYmouc2VsZWN0ZWRJbmRleF0udmFsdWU9PSctTm9uZS0nKSB7CgkJCQlhbGVydChmbGRMYW5nVmFsW2ldICsnIG5vIHB1ZWRlIHNlciBudWxvLicpOyAKCQkJCWZpZWxkT2JqLmZvY3VzKCk7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCSAgIH0KCQkJfSBlbHNlIGlmKGZpZWxkT2JqLnR5cGUgPT0nY2hlY2tib3gnKXsKIAkgCSAJIGlmKGZpZWxkT2JqLmNoZWNrZWQgPT0gZmFsc2UpewoJCQkJYWxlcnQoJ1BsZWFzZSBhY2NlcHQgICcrZmxkTGFuZ1ZhbFtpXSk7CgkJCQlmaWVsZE9iai5mb2N1cygpOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQkgICB9IAoJCQkgfSAKCQkJIHRyeSB7CgkJCSAgICAgaWYoZmllbGRPYmoubmFtZSA9PSAnTGFzdCBOYW1lJykgewoJCQkJbmFtZSA9IGZpZWxkT2JqLnZhbHVlOwogCSAJIAkgICAgfQoJCQl9IGNhdGNoIChlKSB7fQoJCSAgICB9CgkJfQoJCWlmKCF2YWxpZGF0ZUVtYWlsNDkxODQzMDAwMDQwMDUwMTY3KCkpe3JldHVybiBmYWxzZTt9CgkJCgkJaWYoIXByaXZhY3lBbGVydDQ5MTg0MzAwMDA0MDA1MDE2NygpKXtyZXR1cm4gZmFsc2U7fQoJCQoJCWlmKCF2YWxpZGF0ZURhdGVGb3JtYXQ0OTE4NDMwMDAwNDAwNTAxNjcoKSl7cmV0dXJuIGZhbHNlO30KCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY3JtV2ViVG9FbnRpdHlGb3JtIC5mb3Jtc3VibWl0Jykuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwoJfQoKZnVuY3Rpb24gdG9vbHRpcFNob3c0OTE4NDMwMDAwNDAwNTAxNjcoZWwpewoJdmFyIHRvb2x0aXAgPSBlbC5uZXh0RWxlbWVudFNpYmxpbmc7Cgl2YXIgdG9vbHRpcERpc3BsYXkgPSB0b29sdGlwLnN0eWxlLmRpc3BsYXk7CglpZih0b29sdGlwRGlzcGxheSA9PSAnbm9uZScpewoJCXZhciBhbGxUb29sdGlwID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnemN3Zl90b29sdGlwX292ZXInKTsKCQlmb3IoaT0wOyBpPGFsbFRvb2x0aXAubGVuZ3RoOyBpKyspewoJCQlhbGxUb29sdGlwW2ldLnN0eWxlLmRpc3BsYXk9J25vbmUnOwoJCX0KCQl0b29sdGlwLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwoJfWVsc2V7CgkJdG9vbHRpcC5zdHlsZS5kaXNwbGF5PSdub25lJzsKCX0KfQo8L3NjcmlwdD4KCTwhLS0gRG8gbm90IHJlbW92ZSB0aGlzIC0tLSBBbmFseXRpY3MgVHJhY2tpbmcgY29kZSBzdGFydHMgLS0+PHNjcmlwdCBpZD0nd2ZfYW5hbCcgc3JjPSdodHRwczovL2NybS56b2hvcHVibGljLmNvbS9jcm0vV2ViRm9ybUFuYWx5dGljc1NlcnZlU2VydmxldD9yaWQ9MTc2NzJiOTU1N2NhZDdjMTgzODIxMWY5MDRkMTQzODhjZDNkNzg2NjNiNzVlZTI4MWU2N2MyMTgxNDRkNjM3OWdpZDczYzFjODA2YzhhYjMxMGM2ZWViMzFjNjI0YmIzMWNhZDkxMzYzYTBhNWFmYmY4ZjkzNGMwNWUwYmI4MDNhODZnaWQ4ODVlM2MxMDQ1YmQ5YmRjYzkxYmRmMzBmODJiNTY5NmdpZDE0ZjRlYzE2NDMxZTA2ODYxNTBkYWE0M2YzMjEwNTEzJnR3PTYxNjkwYjk2YzFkMDQ3MWI2MzhmMzE0MjZmMzhlNjhhYTY3ZmI3ZWQ2ZGE4NmYzMmRjMTBhZDgxN2ZlNTVhMGEnPjwvc2NyaXB0PjwhLS0gRG8gbm90IHJlbW92ZSB0aGlzIC0tLSBBbmFseXRpY3MgVHJhY2tpbmcgY29kZSBlbmRzLiAtLT48L2Zvcm0+CjwvZGl2Pg==

Últimas noticias

Guardar

Guardar