Año académico en Canadá

https://www.imercat.com/wp-content/uploads/2023/03/ano-academico-canada.jpg

      El programa de año académico en Canadá o semestre incluye:

  • Reunión informativa con padres y estudiante.
  • Validación: notas, inglés y entrevista.
  • Selección de Distrito Escolar y recomendación de colegio, acorde a los requerimientos específicos académicos, deportivos, tipo de localidad, actividades extraescolares y presupuesto definidos por el estudiante.
  • Procesamiento del expediente y solicitud de plaza. Inscripción y matricula en el Distrito Escolar escogido.
  • Tasa Registro y selección de familia de acogida en Canadá. Hospedaje y manutención.
  • Seguro de Salud, accidente, y responsabilidad civil del estudiante.
  • Gestión de la solicitud y pago de tasas del Study Permit o Visado de Estudios canadiense.
  • Seminarios de orientación al estudiante, en España y a la llegada a Canadá.
  • Supervisión y apoyo al estudiante en Canadá, durante todo el programa.
  • Informes periódicos de progreso del estudiante.
  • Traslados aeropuerto/ familia ida y vuelta.
  • Gestión de la convalidación de estudios en España.
  • Validación de notas en Canadá.
  • Libros de texto y Actividades para estudiantes internacionales.
  • Apoyo y ayuda de las oficinas de ICES en España y Massachusetts.
  • Asistencia telefónica y Call Center.
  • Más información…

Año Académico en Canadá

Semestre escolar en Canadá

¡Abierto Plazo Matriculación curso 2024-25!

¿Cómo te podemos ayudar?

PCEtLSBOb3RlIDoKICAgLSBZb3UgY2FuIG1vZGlmeSB0aGUgZm9udCBzdHlsZSBhbmQgZm9ybSBzdHlsZSB0byBzdWl0IHlvdXIgd2Vic2l0ZS4gCiAgIC0gQ29kZSBsaW5lcyB3aXRoIGNvbW1lbnRzIERvIG5vdCByZW1vdmUgdGhpcyBjb2RlIGFyZSByZXF1aXJlZCBmb3IgdGhlIGZvcm0gdG8gd29yayBwcm9wZXJseSwgbWFrZSBzdXJlIHRoYXQgeW91IGRvIG5vdCByZW1vdmUgdGhlc2UgbGluZXMgb2YgY29kZS4gCiAgIC0gVGhlIE1hbmRhdG9yeSBjaGVjayBzY3JpcHQgY2FuIG1vZGlmaWVkIGFzIHRvIHN1aXQgeW91ciBidXNpbmVzcyBuZWVkcy4gCiAgIC0gSXQgaXMgaW1wb3J0YW50IHRoYXQgeW91IHRlc3QgdGhlIG1vZGlmaWVkIGZvcm0gYmVmb3JlIGdvaW5nIGxpdmUuLS0+CjxkaXYgaWQ9J2NybVdlYlRvRW50aXR5Rm9ybScgY2xhc3M9J3pjd2ZfbGJsVG9wQm90dG9tIGNybVdlYlRvRW50aXR5Rm9ybScgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7Y29sb3I6ICMxODNEOEU7bWF4LXdpZHRoOiA0MDRweDsnPgogIDxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSd3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wJz4KICAgPE1FVEEgSFRUUC1FUVVJViA9J2NvbnRlbnQtdHlwZScgQ09OVEVOVD0ndGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgnPgogICA8Zm9ybSBhY3Rpb249J2h0dHBzOi8vY3JtLnpvaG8uY29tL2NybS9XZWJUb0xlYWRGb3JtJyBuYW1lPVdlYlRvTGVhZHM0OTE4NDMwMDAwNDA2NzE1MDUgbWV0aG9kPSdQT1NUJyBvblN1Ym1pdD0namF2YXNjcmlwdDpkb2N1bWVudC5jaGFyc2V0PSJVVEYtOCI7IHJldHVybiBjaGVja01hbmRhdG9yeTQ5MTg0MzAwMDA0MDY3MTUwNSgpJyBhY2NlcHQtY2hhcnNldD0nVVRGLTgnPgogPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBuYW1lPSd4blFzanNkcCcgdmFsdWU9JzczYzFjODA2YzhhYjMxMGM2ZWViMzFjNjI0YmIzMWNhZDkxMzYzYTBhNWFmYmY4ZjkzNGMwNWUwYmI4MDNhODYnPjwvaW5wdXQ+IAogPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nemNfZ2FkJyBpZD0nemNfZ2FkJyB2YWx1ZT0nJz48L2lucHV0PgogPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBuYW1lPSd4bUl3dExEJyB2YWx1ZT0nMTc2NzJiOTU1N2NhZDdjMTgzODIxMWY5MDRkMTQzODhmMjg3ZTFhNzcyZWMzNWNmMDFkNzY1NWJjMDg0NmM4NCc+PC9pbnB1dD4gCiA8aW5wdXQgdHlwZT0ndGV4dCcgIHN0eWxlPSdkaXNwbGF5Om5vbmU7JyBuYW1lPSdhY3Rpb25UeXBlJyB2YWx1ZT0nVEdWaFpITT0nPjwvaW5wdXQ+CiA8aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnIG5hbWU9J3JldHVyblVSTCcgdmFsdWU9J2h0dHBzJiN4M2E7JiN4MmY7JiN4MmY7d3d3LmljZXMtc3BhaW4uY29tJiN4MmY7Z3JhY2lhcy1wb3ItY29udGFjdGFyJiN4MmY7JyA+IDwvaW5wdXQ+CgkgPCEtLSBEbyBub3QgcmVtb3ZlIHRoaXMgY29kZS4gLS0+CjxzdHlsZT4KaHRtbCxib2R5ewoJbWFyZ2luOiAwcHg7Cn0KI2NybVdlYlRvRW50aXR5Rm9ybS56Y3dmX2xibFRvcEJvdHRvbSB7Cgl3aWR0aDoxMDAlOwoJcGFkZGluZzogMjVweDsKCW1hcmdpbjogMCBhdXRvOwoJYm94LXNpemluZzogYm9yZGVyLWJveDsKCWJvcmRlci1yYWRpdXM6IDMwcHg7Cn0KI2NybVdlYlRvRW50aXR5Rm9ybS56Y3dmX2xibFRvcEJvdHRvbSAqIHsKCWJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KI2NybVdlYlRvRW50aXR5Rm9ybXt0ZXh0LWFsaWduOiBsZWZ0O30KI2NybVdlYlRvRW50aXR5Rm9ybSAqIHsKCWRpcmVjdGlvbjogbHRyOwp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl90aXRsZSB7Cgl3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CglwYWRkaW5nOiAwcHggNnB4IDEwcHg7Cglmb250LXdlaWdodDogYm9sZDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2ZsZCBpbnB1dFt0eXBlPXRleHRdLCAuemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2ZsZCB0ZXh0YXJlYSB7Cgl3aWR0aDogMTAwJTsKCWJvcmRlcjogMXB4IHNvbGlkICNjMGM2Y2MgIWltcG9ydGFudDsKCXJlc2l6ZTogdmVydGljYWw7Cglib3JkZXItcmFkaXVzOiAycHg7CglmbG9hdDogbGVmdDsKYmFja2dyb3VuZC1jb2xvcjogI0ZDRTY3RjsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2xhYiB7Cgl3aWR0aDogMzAlOwoJd29yZC1icmVhazogYnJlYWstd29yZDsKCXBhZGRpbmc6IDBweCA2cHggMHB4OwoJbWFyZ2luLXJpZ2h0OiAxMHB4OwoJbWFyZ2luLXRvcDogNXB4OwoJcGFkZGluZy1ib3R0b206IDRweDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2ZsZCB7Cgl3aWR0aDogMTAwJTsKCXBhZGRpbmc6IDBweCA2cHggMHB4OwoJcG9zaXRpb246IHJlbGF0aXZlOwoJbWFyZ2luLXRvcDogNXB4Owp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9wcml2YWN5e3BhZGRpbmc6IDZweDt9Ci56Y3dmX2xibFRvcEJvdHRvbSAud2ZybV9mbGRfZHBObntkaXNwbGF5OiBub25lO30KLmRJQntkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2ZsZF9zbHQgewoJd2lkdGg6IDEwMCU7Cglib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJYmFja2dyb3VuZDogI2ZmZjsKCWJvcmRlci1yYWRpdXM6IDRweDsKCWZvbnQtc2l6ZTogMTVweDsKCWZsb2F0OiBsZWZ0OwoJcmVzaXplOiB2ZXJ0aWNhbDsKCXBhZGRpbmc6IDJweCA1cHg7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX3JvdzphZnRlciwgLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2NvbF9mbGQ6YWZ0ZXIgewoJY29udGVudDogJyc7CglkaXNwbGF5OiB0YWJsZTsKCWNsZWFyOiBib3RoOwp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9jb2xfaGVscCB7CglmbG9hdDogbGVmdDsKCW1hcmdpbi1sZWZ0OiA3cHg7Cglmb250LXNpemU6IDE1cHg7CgltYXgtd2lkdGg6IDM1JTsKCXdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX2hlbHBfaWNvbiB7CgljdXJzb3I6IHBvaW50ZXI7Cgl3aWR0aDogMTZweDsKCWhlaWdodDogMTZweDsKCWRpc3BsYXk6IGlubGluZS1ibG9jazsKCWJhY2tncm91bmQ6ICNmZmY7Cglib3JkZXI6IDFweCBzb2xpZCAjYzBjNmNjOwoJY29sb3I6ICNjMWMxYzE7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cglmb250LXNpemU6IDExcHg7CglsaW5lLWhlaWdodDogMTZweDsKCWZvbnQtd2VpZ2h0OiBib2xkOwoJYm9yZGVyLXJhZGl1czogNTAlOwp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9yb3cge21hcmdpbjogMTVweCAwcHg7fQouemN3Zl9sYmxUb3BCb3R0b20gLmZvcm1zdWJtaXQgewoJbWFyZ2luLXJpZ2h0OiA1cHg7CgljdXJzb3I6IHBvaW50ZXI7Cgljb2xvcjogdmFyKC0tYmFzZUNvbG9yKTsKCWZvbnQtc2l6ZTogMTVweDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfcHJpdmFjeV90eHQgewoJd2lkdGg6IDkwJTsKCWNvbG9yOiByZ2IoMCwgMCwgMCk7Cglmb250LXNpemU6IDE1cHg7Cglmb250LWZhbWlseTogVmVyZGFuYTsKCWRpc3BsYXk6IGlubGluZS1ibG9jazsKCXZlcnRpY2FsLWFsaWduOiB0b3A7Cgljb2xvcjogdmFyKC0tYmFzZUNvbG9yKTsKCXBhZGRpbmctdG9wOiAycHg7CgltYXJnaW4tbGVmdDogNnB4Owp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9idXR0b24gewoJZm9udC1zaXplOiAxNXB4OwoJY29sb3I6ICMzMDVCOUE7Cglib3JkZXI6IDFweCBzb2xpZCAjYzBjNmNjOwoJcGFkZGluZzogM3B4IDlweDsKCWJvcmRlci1yYWRpdXM6IDRweDsKCWN1cnNvcjogcG9pbnRlcjsKCW1heC13aWR0aDogMTIwcHg7CglvdmVyZmxvdzogaGlkZGVuOwoJdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cgl3aGl0ZS1zcGFjZTogbm93cmFwOwp9Ci56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl90b29sdGlwX292ZXJ7Cglwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLnpjd2ZfbGJsVG9wQm90dG9tIC56Y3dmX3Rvb2x0aXBfY3RuewoJcG9zaXRpb246IGFic29sdXRlOwoJYmFja2dyb3VuZDogI2RlZGVkZTsKCXBhZGRpbmc6IDNweCA2cHg7Cgl0b3A6IDNweDsKCWJvcmRlci1yYWRpdXM6IDRweDt3b3JkLWJyZWFrOiBicmVhay13b3JkOwoJbWluLXdpZHRoOiAxMDBweDsKCW1heC13aWR0aDogMTUwcHg7Cgljb2xvcjogdmFyKC0tYmFzZUNvbG9yKTsKCXotaW5kZXg6IDEwMDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY2tib3h7CglmbG9hdDogbGVmdDsKfQouemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfZmlsZXsKCXdpZHRoOiAzNSU7Cglib3gtc2l6aW5nOiBib3JkZXItYm94OwoJZmxvYXQ6IGxlZnQ7Cn0KLmNsZWFyQjphZnRlcnsKCWNvbnRlbnQ6Jyc7CglkaXNwbGF5OiBibG9jazsKCWNsZWFyOiBib3RoOwp9CkBtZWRpYSBhbGwgIHsKCS56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9jb2xfbGFiLCAuemN3Zl9sYmxUb3BCb3R0b20gLnpjd2ZfY29sX2ZsZCB7CgkJd2lkdGg6IGF1dG87CgkJZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsKCX0KCS56Y3dmX2xibFRvcEJvdHRvbSAuemN3Zl9jb2xfaGVscCB7d2lkdGg6IDQwJTt9Cn0KPC9zdHlsZT4KPGRpdiBjbGFzcz0nemN3Zl90aXRsZScgc3R5bGU9J21heC13aWR0aDogNDA0cHg7Y29sb3I6ICMxODNEOEU7IGZvbnQtZmFtaWx5OlZlcmRhbmE7Jz5BJm50aWxkZTtvIGFjYWQmZWFjdXRlO21pY28gQ2FuYWQmYWFjdXRlOzwvZGl2PjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9sYWInIHN0eWxlPSdmb250LXNpemU6MTVweDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Jz48bGFiZWwgZm9yPSdDb21wYW55Jz5Ob21icmUgeSBhcGVsbGlkb3MgZGVsIHByb2dlbml0b3IvYTxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J0NvbXBhbnknIG5hbWU9J0NvbXBhbnknIG1heGxlbmd0aD0nMjAwJz48L2lucHV0PjxkaXYgY2xhc3M9J3pjd2ZfY29sX2hlbHAnPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9sYWInIHN0eWxlPSdmb250LXNpemU6MTVweDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Jz48bGFiZWwgZm9yPSdMYXN0X05hbWUnPk5vbWJyZSB5IGFwZWxsaWRvcyBkZWwgZXN0dWRpYW50ZTxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J0xhc3RfTmFtZScgbmFtZT0nTGFzdCBOYW1lJyBtYXhsZW5ndGg9JzgwJz48L2lucHV0PjxkaXYgY2xhc3M9J3pjd2ZfY29sX2hlbHAnPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9sYWInIHN0eWxlPSdmb250LXNpemU6MTVweDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Jz48bGFiZWwgZm9yPSdMRUFEQ0Y4Mic+RmVjaGEgZGUgbmFjaW1pZW50byBkZWwgZXN0dWRpYW50ZTxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J0xFQURDRjgyJyBuYW1lPSdMRUFEQ0Y4MicgbWF4bGVuZ3RoPScyMCcgZnR5cGU9J2RhdGUnIHBsYWNlaG9sZGVyPSdERC9NTS9ZWVlZJyB0cGxpZD0nNDkxODQzMDAwMDQwNjcxNTA1TEVBRENGODInIG9uZm9jdXM9J2Zvcm1DYWxlbmRlci5zdEV2KGV2ZW50KTtmb3JtQ2FsZW5kZXIuY3JlYXRlQ2FsZW5kYXIodGhpcyk7JyBhdXRvY29tcGxldGU9J29mZic+PC9pbnB1dD48ZGl2IGlkPSd0ZW1wbGF0ZTQ5MTg0MzAwMDA0MDY3MTUwNUxFQURDRjgyJyAgb25jbGljaz0nZm9ybUNhbGVuZGVyLnN0RXYoZXZlbnQpOycgIGNsYXNzPSd0ZW1wQ2FsRGl2Jz48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9oZWxwJz48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX3Jvdyc+PGRpdiBjbGFzcz0nemN3Zl9jb2xfbGFiJyBzdHlsZT0nZm9udC1zaXplOjE1cHg7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyc+PGxhYmVsIGZvcj0nTEVBRENGNic+RS1tYWlsPHNwYW4gc3R5bGU9J2NvbG9yOnJlZDsnPio8L3NwYW4+PC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9mbGQnPjxpbnB1dCB0eXBlPSd0ZXh0JyBmdHlwZT0nZW1haWwnIGF1dG9jb21wbGV0ZT0nZmFsc2UnIGlkPSdMRUFEQ0Y2JyBuYW1lPSdMRUFEQ0Y2JyBtYXhsZW5ndGg9JzEwMCc+PC9pbnB1dD48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9oZWxwJz48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX3Jvdyc+PGRpdiBjbGFzcz0nemN3Zl9jb2xfbGFiJyBzdHlsZT0nZm9udC1zaXplOjE1cHg7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyc+PGxhYmVsIGZvcj0nTEVBRENGNTQnPlRlbMOpZm9ubzxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J0xFQURDRjU0JyBuYW1lPSdMRUFEQ0Y1NCcgbWF4bGVuZ3RoPSc5Jz48L2lucHV0PjxkaXYgY2xhc3M9J3pjd2ZfY29sX2hlbHAnPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9sYWInIHN0eWxlPSdmb250LXNpemU6MTVweDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Jz48bGFiZWwgZm9yPSdMRUFEQ0YxMjEnPlByb3ZpbmNpYTxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+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+CgkJCTxvcHRpb24gdmFsdWU9J090cm9zJz5PdHJvczwvb3B0aW9uPgoJCTwvc2VsZWN0PjxkaXYgY2xhc3M9J3pjd2ZfY29sX2hlbHAnPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9sYWInIHN0eWxlPSdmb250LXNpemU6MTVweDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Jz48bGFiZWwgZm9yPSdMRUFEQ0YyNic+RXN0b3kgaW50ZXJlc2FkbyBlbjxzcGFuIHN0eWxlPSdjb2xvcjpyZWQ7Jz4qPC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48c2VsZWN0IGNsYXNzPSd6Y3dmX2NvbF9mbGRfc2x0JyBpZD0nTEVBRENGMjYnIG5hbWU9J0xFQURDRjI2JyBtdWx0aXBsZSA+CgkJCTxvcHRpb24gdmFsdWU9J0FudWFsJz5BbnVhbDwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPScxJm9yZG07JiN4MjA7U2VtZXN0cmUnPjEmb3JkbTsgU2VtZXN0cmU8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nMiZvcmRtO1NlbWVzdHJlJz4yJm9yZG07U2VtZXN0cmU8L29wdGlvbj4KCQkJPG9wdGlvbiB2YWx1ZT0nMTImI3gyMDtTZW1hbmFzJiN4MjA7JiN4Mjg7VHJpbWVzdHJlJiN4Mjk7Jz4xMiBTZW1hbmFzICYjeDI4O1RyaW1lc3RyZSYjeDI5Ozwvb3B0aW9uPgoJCQk8b3B0aW9uIHZhbHVlPScxNiYjeDIwO1NlbWFuYXMmI3gyMDsmI3gyODtDdWF0cmltZXN0cmUmI3gyOTsnPjE2IFNlbWFuYXMgJiN4Mjg7Q3VhdHJpbWVzdHJlJiN4Mjk7PC9vcHRpb24+CgkJCTxvcHRpb24gdmFsdWU9J05pbmd1bm8nPk5pbmd1bm88L29wdGlvbj4KCQk8L3NlbGVjdD48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9oZWxwJz48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX3Jvdyc+PGRpdiBjbGFzcz0nemN3Zl9jb2xfbGFiJyBzdHlsZT0nZm9udC1zaXplOjE1cHg7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyc+PGxhYmVsIGZvcj0nRGVzY3JpcHRpb24nPkNvbnN1bHRhPC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSd6Y3dmX2NvbF9mbGQnPjx0ZXh0YXJlYSBpZD0nRGVzY3JpcHRpb24nIG5hbWU9J0Rlc2NyaXB0aW9uJz48L3RleHRhcmVhPjxkaXYgY2xhc3M9J3pjd2ZfY29sX2hlbHAnPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J3pjd2Zfcm93Jz48ZGl2IGNsYXNzPSd6Y3dmX3ByaXZhY3knPjxkaXYgY2xhc3M9J2RJQiB2YXQnIGFsaWduPSdsZWZ0Jz48ZGl2IGNsYXNzPSdkaXNwbGF5UHVycG9zZSAgZjEzJz48bGFiZWwgY2xhc3M9J25ld0N1c3RvbWNoa2JveC1tZCBkSUIgdzEwMHBlcic+PGlucHV0IGF1dG9jb21wbGV0ZT0nb2ZmJyBpZD0ncHJpdmFjeVRvb2w0OTE4NDMwMDAwNDA2NzE1MDUnIHR5cGU9J2NoZWNrYm94JyBuYW1lPSdwcml2YWN5VG9vbCcgb25jbGljaz0nZGlzYWJsZUVycjQ5MTg0MzAwMDA0MDY3MTUwNSgpJz48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J2RJQiB6Y3dmX3ByaXZhY3lfdHh0JyBzdHlsZT0nZm9udC1zaXplOiAxNXB4O2ZvbnQtZmFtaWx5OlZlcmRhbmE7Y29sb3I6ICMxODNEOEU7Jz5BY2VwdG8gbGEgPGEgaHJlZj0naHR0cHM6Ly93d3cuaWNlcy1zcGFpbi5jb20vcG9saXRpY2EtZGUtcHJpdmFjaWRhZC8nIHRpdGxlPSdodHRwczovL3d3dy5pY2VzLXNwYWluLmNvbS9wb2xpdGljYS1kZS1wcml2YWNpZGFkLycgdGFyZ2V0PSdfYmxhbmsnPlBvbMOtdGljYSBkZSBwcml2YWNpZGFkPC9hPi48L2Rpdj4gPGRpdiAgaWQ9J3ByaXZhY3lFcnI0OTE4NDMwMDAwNDA2NzE1MDUnIHN0eWxlPSdmb250LXNpemU6MTJweDtjb2xvcjpyZWQ7cGFkZGluZy1sZWZ0OiA1cHg7dmlzaWJpbGl0eTpoaWRkZW47Jz5BY2VwdGUgcG9yIGZhdm9yPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9yb3cnPjxkaXYgY2xhc3M9J3pjd2ZfY29sX2xhYic+PC9kaXY+PGRpdiBjbGFzcz0nemN3Zl9jb2xfZmxkJz48aW5wdXQgdHlwZT0nc3VibWl0JyBpZD0nZm9ybXN1Ym1pdCcgY2xhc3M9J2Zvcm1zdWJtaXQgemN3Zl9idXR0b24nIHZhbHVlPSdFbnZpYXInIHRpdGxlPSdFbnZpYXInPjxpbnB1dCB0eXBlPSdyZXNldCcgY2xhc3M9J3pjd2ZfYnV0dG9uJyBuYW1lPSdyZXNldCcgdmFsdWU9J1Jlc3RhYmxlY2VyJyB0aXRsZT0nUmVzdGFibGVjZXInPjwvZGl2PjwvZGl2Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+dmFyIGZvcm1DYWxlbmRlcj17dXNlclBhdHRlcm46J1lZWVktTU0tREQnLGN1cnJEYXRlT2JqOnZvaWQgMCxjdXJyTW9udGg6dm9pZCAwLGN1cnJZZWFyOnZvaWQgMCxjdXJyRGF0ZTp2b2lkIDAsY3Vyck1vbnRoRW5kOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sbW9udGhOYW1lOnZvaWQgMCxkYXlzOnZvaWQgMCxkaXNwbGF5UGFuZWw6dm9pZCAwLGlzSGlkZVRvZGF5OnZvaWQgMCxjYWxEZWZDb2xvcjonIzUxNUNDQicsd2Vla2RheXM6ezE6J1N1bmRheScsMjonTW9uZGF5JywzOidUdWVzZGF5Jyw0OidXZWRuZXNkYXknLDU6J1RodXJzZGF5Jyw2OidGcmlkYXknLDc6J1NhdHVyZGF5J30sbW9udGhzOnsxOidKYW51YXJ5JywyOidGZWJydWFyeScsMzonTWFyY2gnLDQ6J0FwcmlsJyw1OidNYXknLDY6J0p1bmUnLDc6J0p1bHknLDg6J0F1Z3VzdCcsOTonU2VwdGVtYmVyJywxMDonT2N0b2JlcicsMTE6J05vdmVtYmVyJywxMjonRGVjZW1iZXInfSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5tb250aE5hbWU9W3todG1sOidKYW51YXJ5Jyx2YWx1ZTowfSx7aHRtbDonRmVicnVhcnknLHZhbHVlOjF9LHtodG1sOidNYXJjaCcsdmFsdWU6Mn0se2h0bWw6J0FwcmlsJyx2YWx1ZTozfSx7aHRtbDonTWF5Jyx2YWx1ZTo0fSx7aHRtbDonSnVuZScsdmFsdWU6NX0se2h0bWw6J0p1bHknLHZhbHVlOjZ9LHtodG1sOidBdWd1c3QnLHZhbHVlOjd9LHtodG1sOidTZXB0ZW1iZXInLHZhbHVlOjh9LHtodG1sOidPY3RvYmVyJyx2YWx1ZTo5fSx7aHRtbDonTm92ZW1iZXInLHZhbHVlOjEwfSx7aHRtbDonRGVjZW1iZXInLHZhbHVlOjExfV0sdGhpcy5kYXlzPVsnc3N1bmRheScsJ3Ntb25kYXknLCdzdHVlc2RheScsJ3N3ZWRuZXNkYXknLCdzdGh1cnNkYXknLCdzZnJpZGF5Jywnc3NhdHVyZGF5J10sdGhpcy5kYXlOYW1lc1Nob3J0PVsnU3VuJywnTW9uJywnVHVlJywnV2VkJywnVGh1JywnRnJpJywnU2F0J10sdGhpcy5kYXlzQmFzZWRPblByZWZlcm5jZT1bJ3NzdW5kYXknLCdzbW9uZGF5Jywnc3R1ZXNkYXknLCdzd2VkbmVzZGF5Jywnc3RodXJzZGF5Jywnc2ZyaWRheScsJ3NzYXR1cmRheSddO3ZhciBlPXRoaXMuZGF5c0Jhc2VkT25QcmVmZXJuY2VbMF07dGhpcy5kYXlzQmFzZWRPblByZWZlcm5jZS5zaGlmdCgxKSx0aGlzLmRheXNCYXNlZE9uUHJlZmVybmNlLnB1c2goZSk7dmFyIHQ9dGhpcy5kYXlOYW1lc1Nob3J0WzBdO3RoaXMuZGF5TmFtZXNTaG9ydC5zaGlmdCgxKSx0aGlzLmRheU5hbWVzU2hvcnQucHVzaCh0KSx0aGlzLmN1cnJEYXRlT2JqPW5ldyBEYXRlLHRoaXMuY3Vyck1vbnRoPXRoaXMuY3VyckRhdGVPYmouZ2V0TW9udGgoKSx0aGlzLmN1cnJZZWFyPXRoaXMuY3VyckRhdGVPYmouZ2V0RnVsbFllYXIoKSx0aGlzLmN1cnJZZWFyPDFlMyYmKHRoaXMuY3VyclllYXIrPTE5MDApLHRoaXMuY3VyckRhdGU9dGhpcy5jdXJyRGF0ZU9iai5nZXREYXRlKCl9LGdldFRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9udGhOYW1lW3RoaXMuY3Vyck1vbnRoXS5odG1sKycgJyt0aGlzLmN1cnJZZWFyfSxjcmVhdGVDYWxlbmRhcjpmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgndGVtcENhbERpdicpLGE9dC5sZW5ndGgscj0wO3I8YTtyKyspe3ZhciBuPXRbcl0uc3R5bGU7J2Jsb2NrJz09PW4uZGlzcGxheSYmKG4uZGlzcGxheT0nbm9uZScpfXRoaXMuY2FsZW5kYXJOb2RlPWUsdGhpcy51c2VyUGF0dGVybj10aGlzLmNhbGVuZGFyTm9kZS5wbGFjZWhvbGRlcjt2YXIgcz10aGlzLmNhbGVuZGFyTm9kZS52YWx1ZSxpPSExO2lmKHMpe3ZhciBsPWRhdGVGb3JtYXRDb252ZXJ0LnZhbGlkYXRlKHMsdGhpcy51c2VyUGF0dGVybik7bCYmKHRoaXMuY3VyckRhdGU9bC5nZXREYXRlKCksdGhpcy5jdXJyTW9udGg9bC5nZXRNb250aCgpLHRoaXMuY3VyclllYXI9bC5nZXRGdWxsWWVhcigpLHRoaXMuY3VyclllYXI8MWUzJiYodGhpcy5jdXJyWWVhcj1OdW1iZXIodGhpcy5jdXJyWWVhcikrMTkwMCkpfWVsc2UgaT0hMCxmb3JtQ2FsZW5kZXIuaW5pdCgpO3RoaXMubW9udGhOYW1lfHxmb3JtQ2FsZW5kZXIuaW5pdCgpLHRoaXMuY3JlYXRlRGF0ZVBpY2tlcih0aGlzLmN1cnJEYXRlLHRoaXMuY3Vyck1vbnRoLHRoaXMuY3VyclllYXIsaSwhMSl9LGNyZWF0ZURhdGVQaWNrZXI6ZnVuY3Rpb24oZSx0LGEscixuKXsxPT09dGhpcy5jdXJyTW9udGgmJih0aGlzLmN1cnJNb250aEVuZFsxXT10aGlzLmN1cnJZZWFyJTQwMD09MHx8dGhpcy5jdXJyWWVhciU0PT0wJiZ0aGlzLmN1cnJZZWFyJTEwMCE9MD8yOToyOCk7dmFyIHM9bmV3IERhdGUoYSx0LDEpLGk9NixsPXRoaXMuZGF5c0Jhc2VkT25QcmVmZXJuY2UuaW5kZXhPZih0aGlzLmRheXNbcy5nZXREYXkoKV0pKzE7aT0zMT09PXRoaXMuY3Vyck1vbnRoRW5kW3RdJiZsPj02fHwzMD09PXRoaXMuY3Vyck1vbnRoRW5kW3RdJiY3PT09bD83OjI4PT09dGhpcy5jdXJyTW9udGhFbmRbdF0mJjE9PT1sPzU6Njt2YXIgZD10aGlzLmdldFRpdGxlKGUsYSx0KSxvPXRoaXMuZGF5TmFtZXNTaG9ydCxoPSc8ZGl2IGlkPVwnY2FsZW5EaXZcJz48aSBpZD1cJ2NhbEFycm93XCcgc3R5bGU9XCdkaXNwbGF5Om5vbmU7XCcgY2xhc3M9XCdkSUIgU29jaWFsQXJyb3dcJz48L2k+PGRpdj48ZGl2Pic7aCs9JzxkaXYgY2xhc3M9XCd0eHQtY3RyXCc+PHNwYW4gY2xhc3M9XCdjYWxOYXYgZElCIHZhbSB5ZWFyTmF2TGZ0XCcgb25jbGljaz1cJ2Zvcm1DYWxlbmRlci51cGRhdGVEYXRlUGlja2VyKGV2ZW50LHVuZGVmaW5lZCwgLTEpXCc+PGkgY2xhc3M9XCdhcnJvdyBsZWZ0IG1STWludXMyXCc+PC9pPjxpIGNsYXNzPVwnYXJyb3cgbGVmdFwnPjwvaT48L3NwYW4+PHNwYW4gY2xhc3M9XCdjYWxOYXYgZExmdCBkSUIgdmFtXCcgb25DbGljaz1cJ2Zvcm1DYWxlbmRlci51cGRhdGVEYXRlUGlja2VyKGV2ZW50LC0xKVwnIGlkPVwncG1cJz48aSBjbGFzcz1cJ2Fycm93IGxlZnRcJz48L2k+PC9zcGFuPjxzcGFuIGNsYXNzPVwnc0NhbE1vblwnPicrZCsnPC9zcGFuPjxzcGFuIGNsYXNzPVwnY2FsTmF2IGRSZ3QgdmFtXCcgb25DbGljayA9XCdmb3JtQ2FsZW5kZXIudXBkYXRlRGF0ZVBpY2tlcihldmVudCwxKVwnIGlkPVwnbm1cJz48aSBjbGFzcz1cJ2Fycm93IHJpZ2h0XCc+PC9pPjwvc3Bhbj48c3BhbiBjbGFzcz1cJ2NhbE5hdiBkSUIgdmFtIHllYXJOYXZSZ3RcJyBvbmNsaWNrPVwnZm9ybUNhbGVuZGVyLnVwZGF0ZURhdGVQaWNrZXIoZXZlbnQsdW5kZWZpbmVkLCAxKVwnPjxpIGNsYXNzPVwnYXJyb3cgcmlnaHRcJz48L2k+PGkgY2xhc3M9XCdhcnJvdyByaWdodCBtTE1pbnVzMlwnPjwvaT48L3NwYW4+PC9kaXY+JyxoKz0nPHRhYmxlICBjbGFzcz1cJ2NhbERheVwnICBpZCA9XCd3ZWVrRGF5c1wnIHN0eWxlPVwnY29sb3I6IzhiOWFiOTsgZm9udC1zaXplOjhweDsgbWFyZ2luLWxlZnQ6MFwnPjx0cj4gPHRoPicrb1swXSsnPC90aD4gPHRoPicrb1sxXSsnPC90aD48dGg+JytvWzJdKyc8L3RoPjx0aD4nK29bM10rJzwvdGg+IDx0aD4nK29bNF0rJzwvdGg+IDx0aD4nK29bNV0rJzwvdGg+IDx0aD4nK29bNl0rJzwvdGg+PC90cj48L3RhYmxlPicsaCs9JzwvZGl2PicsaCs9Jzx0YWJsZSBpZD1cJ2NhbEhlYWRlclwnIGNsYXNzPVwnY2FsRGF5XCcgc3R5bGU9XCdtYXJnaW4tbGVmdDowOyBtYXJnaW4tdG9wOi01cHg7XCcgd2lkdGg9XCcxMDAlXCcgY2VsbHNwYWNpbmc9XCcwXCcgY2VsbHBhZGRpbmc9XCcwXCcgYm9yZGVyPVwnMFwnID4nO3ZhciBjPScnLHU9bmV3IERhdGUseT1hfHx1LmdldEZ1bGxZZWFyKCksdj1lfHx1LmdldERhdGUoKSxnPXZvaWQgMD09PXQ/dS5nZXRNb250aCgpOnQsbT11LmdldE1vbnRoKCkscD11LmdldEZ1bGxZZWFyKCk7dS5nZXREYXRlKCk7bT09PXQmJmE9PT1wJiYoYz0nIHN0eWxlPVwnZGlzcGxheTpub25lXCcnKTtmb3IodmFyIGYsRCxNLGI9cy5nZXREYXkoKTsxIT09Yjspcy5zZXREYXRlKHMuZ2V0RGF0ZSgpLTEpLGI9cy5nZXREYXkoKTtmb3IodmFyIHg9MTt4PD1pO3grKyl7aCs9Jzx0cj4nO2Zvcih2YXIgWT0xO1k8ODtZKyspe2Y9cy5nZXRNb250aCgpLEQ9cy5nZXRGdWxsWWVhcigpLE09cy5nZXREYXRlKCksRCsnLScrKHBhcnNlSW50KGYpKzEpKyctJytNO3ZhciBGPSdjZGF0ZSBsdC1ncmF5JztpZihNPT09diYmRD09PXkmJmY9PT1nJiYoRj0nY2RhdGUgbHQtZ3JheScpLGY9PT1nJiYoRj0nY2RhdGUnKSwociYmTT09PXYmJm09PT1nJiZwPT09eXx8IW4mJk09PT12JiZmPT09ZyYmRD09PXkpJiYoRj0nc2VsJyksbil7dmFyIGs9ZGF0ZUZvcm1hdENvbnZlcnQudmFsaWRhdGUodGhpcy5jYWxlbmRhck5vZGUudmFsdWUsZm9ybUNhbGVuZGVyLnVzZXJQYXR0ZXJuKTtrJiZNPT09ay5nZXREYXRlKCkmJmY9PT1rLmdldE1vbnRoKCkmJkQ9PT1rLmdldEZ1bGxZZWFyKCkmJihGPSdzZWwnKX1oKz0nPHRkIGNsYXNzPVwnJytGKydcJyBvbkNsaWNrPVwnZm9ybUNhbGVuZGVyLmRpc3BsYXlTZWxlY3RlZERhdGUoXCInK00rJyAnK2YrJyAnK0QrJ1wiKVwnPicrTSsnPC90ZD4nLHMuc2V0RGF0ZShzLmdldERhdGUoKSsxKX1oKz0nPC90cj4nfWgrPSc8L3RhYmxlPicsaCs9JzxkaXY+Jyx0aGlzLmlzSGlkZVRvZGF5fHwoaCs9JzxkaXYgaWQ9XCdjYWxCdG5zXCcgY2xhc3M9XCdwVDE1IHBCMTUgZkxcJz48YScrYysnIGNsYXNzPVwnY1AgZkxcJyBocmVmPVwnamF2YXNjcmlwdDo7XCcgaWQ9XCd0b2RheUJ0blwnIG9uY2xpY2s9XCdmb3JtQ2FsZW5kZXIuZGlzcGxheVNlbGVjdGVkRGF0ZShcInRvZGF5XCIpXCc+VG9kYXk8L2E+JyksaCs9JzwvZGl2PicsaCs9JzwvZGl2PicsaCs9JzwvZGl2PjwvZGl2Pic7dmFyIEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJyt0aGlzLmNhbGVuZGFyTm9kZS5nZXRBdHRyaWJ1dGUoJ3RwbGlkJykpO0MuaW5uZXJIVE1MPWgsQy5zdHlsZS5kaXNwbGF5PSdibG9jayd9LGRpc3BsYXlTZWxlY3RlZERhdGU6ZnVuY3Rpb24oZSx0KXtpZighdCl0PXRoaXMuY2FsZW5kYXJOb2RlO2lmKCd0b2RheSc9PT1lKXt2YXIgYT1uZXcgRGF0ZTtlPWEuZ2V0RGF0ZSgpKycgJythLmdldE1vbnRoKCkrJyAnK2EuZ2V0RnVsbFllYXIoKX1lPWUuc3BsaXQoJyAnKTt2YXIgcj1kYXRlRm9ybWF0Q29udmVydC5jb252ZXJ0Rm9ybWF0KG5ldyBEYXRlKGVbMl0sZVsxXSxlWzBdKSx0aGlzLnVzZXJQYXR0ZXJuKTt0LnZhbHVlPXIsdC5mb2N1cygpLHQucGxhY2Vob2xkZXI9dGhpcy51c2VyUGF0dGVybixmb3JtQ2FsZW5kZXIuY2xvc2VEYXRlUGlja2VyKCksdC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsZnVuY3Rpb24oZSl7Zm9ybUNhbGVuZGVyLmNhbGVuZGFyTm9kZT10aGlzO3ZhciB0PXRoaXMudmFsdWUsYT1kYXRlRm9ybWF0Q29udmVydC52YWxpZGF0ZSh0LGZvcm1DYWxlbmRlci51c2VyUGF0dGVybik7aWYoYSl7dmFyIHI9e307ci5kYXRlPWEuZ2V0RGF0ZSgpLHIubW9udGg9YS5nZXRNb250aCgpLHIueWVhcj1hLmdldEZ1bGxZZWFyKCksZm9ybUNhbGVuZGVyLnVwZGF0ZURhdGVQaWNrZXIoZSx2b2lkIDAsdm9pZCAwLHIpfX0pLHQuYmx1cigpfSxjbG9zZURhdGVQaWNrZXI6ZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVtcGxhdGUnK3RoaXMuY2FsZW5kYXJOb2RlLmdldEF0dHJpYnV0ZSgndHBsaWQnKSkuc3R5bGUuZGlzcGxheT0nbm9uZSd9LHVwZGF0ZURhdGVQaWNrZXI6ZnVuY3Rpb24oZSx0LGEscil7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RlbXBsYXRlJyt0aGlzLmNhbGVuZGFyTm9kZS5nZXRBdHRyaWJ1dGUoJ3RwbGlkJykpO3ImJih0aGlzLmN1cnJEYXRlPXIuZGF0ZSx0aGlzLmN1cnJNb250aD1yLm1vbnRoLHRoaXMuY3VyclllYXI9ci55ZWFyKSx2b2lkIDAhPT10PzE9PT10PzExPT09dGhpcy5jdXJyTW9udGg/KHRoaXMuY3Vyck1vbnRoPTAsdGhpcy5jdXJyWWVhcisrKTp0aGlzLmN1cnJNb250aCsrOjA9PT10aGlzLmN1cnJNb250aD8odGhpcy5jdXJyTW9udGg9MTEsdGhpcy5jdXJyWWVhci0tKTp0aGlzLmN1cnJNb250aC0tOnZvaWQgMCE9PWEmJih0aGlzLmN1cnJZZWFyPXBhcnNlSW50KHRoaXMuY3VyclllYXIpK2EpLHRoaXMuY3JlYXRlRGF0ZVBpY2tlcih0aGlzLmN1cnJEYXRlLHRoaXMuY3Vyck1vbnRoLHRoaXMuY3VyclllYXIsITEsITApLG4uc3R5bGUuZGlzcGxheT0nYmxvY2snfSxzdEV2OmZ1bmN0aW9uKGUpe2V8fChlPXdpbmRvdy5ldmVudCksZSYmKGUuY2FuY2VsQnViYmxlPSEwLGUuc3RvcFByb3BhZ2F0aW9uJiZlLnN0b3BQcm9wYWdhdGlvbigpKX19O3dpbmRvdy5vbmNsaWNrPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3RlbXBDYWxEaXYnKSx0PWUubGVuZ3RoLGE9MDthPHQ7YSsrKXt2YXIgcj1lW2FdO2lmKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0cGxpZD1cJycrci5pZC5yZXBsYWNlKCd0ZW1wbGF0ZScsJycpKydcJ10nKSlyZXR1cm47dmFyIG49ZVthXS5zdHlsZTsnYmxvY2snPT09bi5kaXNwbGF5JiYobi5kaXNwbGF5PSdub25lJyl9fTt2YXIgZGF0ZUZvcm1hdENvbnZlcnQ9e3Nob3J0TW9uOlsnSmFuJywnRmViJywnTWFyJywnQXByJywnTWF5JywnSnVuJywnSnVsJywnQXVnJywnU2VwJywnT2N0JywnTm92JywnRGVjJ10sbG9uZ01vbjpbJ0phbnVhcnknLCdGZWJydWFyeScsJ01hcmNoJywnQXByaWwnLCdNYXknLCdKdW5lJywnSnVseScsJ0F1Z3VzdCcsJ1NlcHRlbWJlcicsJ09jdG9iZXInLCdOb3ZlbWJlcicsJ0RlY2VtYmVyJ10sZGF5QXJyOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sd29kOjEsbG06J3VzZXJkYXRlJyxfZGF0ZU9iajp2b2lkIDAsbExpbWl0OjgwLGZvcm1hdHM6W3t2YWw6J1lZWVknLHR5cGU6J3llYXInLHJlZ2V4Oi9cZHs0fS8sbGVuOjR9LHt2YWw6J0dHR0cnLHR5cGU6J3llYXInLHJlZ2V4Oi9cZHs0fS8sbGVuOjQsaXNXRUc6ITB9LHt2YWw6J2dnZ2cnLHR5cGU6J3llYXInLHJlZ2V4Oi9cZHs0fS8sbGVuOjQsaXNXRUc6ITB9LHt2YWw6J1lZJyx0eXBlOid5ZWFyJyxyZWdleDovXGR7Mn0vLGxlbjoyfSx7dmFsOidHRycsdHlwZToneWVhcicscmVnZXg6L1xkezJ9LyxsZW46Mixpc1dFRzohMH0se3ZhbDonZ2cnLHR5cGU6J3llYXInLHJlZ2V4Oi9cZHsyfS8sbGVuOjIsaXNXRUc6ITB9LHt2YWw6J01NTU0nLHR5cGU6J21vbnRoJyxyZWdleDovW0Etel17Myx9Lyxsb25nOiEwLHN0cjohMCxhcnJheTpbJ0phbnVhcnknLCdGZWJydWFyeScsJ01hcmNoJywnQXByaWwnLCdNYXknLCdKdW5lJywnSnVseScsJ0F1Z3VzdCcsJ1NlcHRlbWJlcicsJ09jdG9iZXInLCdOb3ZlbWJlcicsJ0RlY2VtYmVyJ119LHt2YWw6J01NTScsc3RyOiEwLHR5cGU6J21vbnRoJyxyZWdleDovW0Etel17Myx9LyxhcnJheTpbJ0phbicsJ0ZlYicsJ01hcicsJ0FwcicsJ01heScsJ0p1bicsJ0p1bCcsJ0F1ZycsJ1NlcCcsJ09jdCcsJ05vdicsJ0RlYyddfSx7dmFsOidNbycsc3VmZjohMCx0eXBlOidtb250aCcscmVnZXg6L1xkezEsMn0oPz1zdHxuZHxyZHx0aCkvLG1heDoxMn0se3ZhbDonTU0nLHR5cGU6J21vbnRoJyxyZWdleDovXGR7Mn0vLGxlbjoyLG1heDoxMixhbHQ6ITB9LHt2YWw6J00nLHR5cGU6J21vbnRoJyxyZWdleDovXGR7MSwyfS8sbWF4OjEyfSx7dmFsOidEREREJyx0eXBlOidkYXRlJyxyZWdleDovXGR7M30vLGxlbjozLHllYXI6ITB9LHt2YWw6J0RERG8nLHR5cGU6J2RhdGUnLHN1ZmY6ITAscmVnZXg6L1xkezEsM30oPz1zdHxuZHxyZHx0aCkvLGxlbjozLHllYXI6ITAsaWdub3JlOi9cZHszfSg/PXN0fG5kfHJkfHRoKS99LHt2YWw6J0RERCcsdHlwZTonZGF0ZScscmVnZXg6L1xkezEsM30vLHllYXI6ITAsaWdub3JlOi9cZHszfS99LHt2YWw6J0RvJyx0eXBlOidkYXRlJyxzdWZmOiEwLHJlZ2V4Oi9cZHsxLDJ9KD89c3R8bmR8cmR8dGgpL30se3ZhbDonREQnLHR5cGU6J2RhdGUnLHJlZ2V4Oi9cZHsyfS8sbGVuOjIsYWx0OiEwfSx7dmFsOidEJyx0eXBlOidkYXRlJyxyZWdleDovXGR7MSwyfS99LHt2YWw6J2RkZGQnLHR5cGU6J2xvbmdkYXRlJyxyZWdleDovW0Etel17Myx9Lyxsb25nOiEwLHN0cjohMCxhcnJheTpbJ1N1bmRheScsJ01vbmRheScsJ1R1ZXNkYXknLCdXZWRuZXNkYXknLCdUaHVyc2RheScsJ0ZyaWRheScsJ1NhdHVyZGF5J119LHt2YWw6J2RkZCcsdHlwZTonbG9uZ2RhdGUnLHJlZ2V4Oi9bQS16XXszfS8sc3RyOiEwLGFycmF5OlsnU3VuJywnTW9uJywnVHVlJywnV2VkJywnVGh1JywnRnJpJywnU2F0J119LHt2YWw6J2RkJyx0eXBlOidsb25nZGF0ZScscmVnZXg6L1tBLXpdezJ9LyxzdHI6ITAsYXJyYXk6WydTdScsJ01vJywnVHUnLCdXZScsJ1RoJywnRnInLCdTYSddfSx7dmFsOidkbycsdHlwZTonbG9uZ2RhdGUnLHJlZ2V4Oi9cZHsxfSg/PXN0fG5kfHJkfHRoKS8sc3VmZjohMH0se3ZhbDonZCcsdHlwZTonbG9uZ2RhdGUnLHJlZ2V4Oi9cZHsxfS99XSxwYXJzZUZvcm1hdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgYSxyPXRoaXMuZm9ybWF0cyxuPVtdLHM9ci5sZW5ndGgsaT0wO2k8cztpKyspe3ZhciBsPXJbaV07aWYoIWUubGVuZ3RoKWJyZWFrO2lmKGUuaW5kZXhPZihsLnZhbCk+LTEpe2lmKHQmJmwuYWx0KXthPSEwO2NvbnRpbnVlfWEmJihsLnZhbD1yW2ktMV0udmFsLGw9cltpLTFdKSxhPSExLG4ucHVzaCh7Zm9ybWF0OmwsaW5kZXg6ZS5pbmRleE9mKGwudmFsKX0pLGU9ZS5yZXBsYWNlKGwudmFsLE1hdGgucG93KDEwLGwudmFsLmxlbmd0aC0xKSksaS0tfWVsc2U7fXJldHVybiBuLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5pbmRleC10LmluZGV4fSl9LGNvbnZlcnRGb3JtYXQ6ZnVuY3Rpb24oZSx0KXt0aGlzLl9kYXRlT2JqPWU7dmFyIGE9dGhpcy5fZGF0ZU9iaixyPXRoaXMucGFyc2VGb3JtYXQodCwhMCksbj17fSxzPXtkYXRlOmEuZ2V0RGF0ZSgpLG1vbnRoOmEuZ2V0TW9udGgoKSx5ZWFyOmEuZ2V0RnVsbFllYXIoKSxkYXk6YS5nZXREYXkoKX07dD10aGlzLmZtUmVwbGFjZSh0LnJlcGxhY2UoL3t7fH19L2csJycpLHIpO2Zvcih2YXIgaT1yLmxlbmd0aCxsPTA7bDxpO2wrKyl7dmFyIGQ9cltsXS5mb3JtYXQ7c3dpdGNoKGQudHlwZSl7Y2FzZSdkYXRlJzp0PXQucmVwbGFjZShkLnZhbCt0aGlzLmxtLHRoaXMuY3JjdExlbmd0aChkLnllYXI/dGhpcy50b3RkYXRlKHMubW9udGgsdGhpcy5pc0xlYXAocy55ZWFyKSxzLmRhdGUpOnMuZGF0ZSxkLmxlbixkLnN1ZmYpKTticmVhaztjYXNlJ21vbnRoJzp0PWQuc3RyP3QucmVwbGFjZShkLnZhbCt0aGlzLmxtLGQuYXJyYXlbcy5tb250aF0pOnQucmVwbGFjZShkLnZhbCt0aGlzLmxtLHRoaXMuY3JjdExlbmd0aChzLm1vbnRoKzEsZC5sZW4sZC5zdWZmKSk7YnJlYWs7Y2FzZSd5ZWFyJzp0PXQucmVwbGFjZShkLnZhbCt0aGlzLmxtLDI9PT1kLmxlbj90aGlzLmNyY3RMZW5ndGgocy55ZWFyJTEwMCwyKTo0PT09KHMueWVhcisnJykubGVuZ3RoP3MueWVhcjp0aGlzLmNyY3RMZW5ndGgocy55ZWFyLDQpKSxuLnllYXI9bi55ZWFyfHxbXSxuLnllYXIucHVzaChkKTticmVhaztjYXNlJ2RheSc6Y2FzZSd3ZWVrJzpuLmZsYWc9ITAsbltkLnR5cGVdPW5bZC50eXBlXXx8W10sbltkLnR5cGVdLnB1c2goZCk7YnJlYWs7Y2FzZSdsb25nZGF0ZSc6dD1kLnN0cj90LnJlcGxhY2UoZC52YWwrdGhpcy5sbSxkLmFycmF5W3MuZGF5XSk6dC5yZXBsYWNlKGQudmFsK3RoaXMubG0sdGhpcy5jcmN0TGVuZ3RoKHMuZGF5LG51bGwsZC5zdWZmKSl9fXJldHVybiB0LnJlcGxhY2UoL3t7fH19L2csJycpfSxmbVJlcGxhY2U6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGE9MCxyPXQubGVuZ3RoLG49MDtuPHI7bisrKWU9ZS5zbGljZSgwLHRbbl0uaW5kZXgrYSkrdFtuXS5mb3JtYXQudmFsK3RoaXMubG0rZS5zbGljZSh0W25dLmluZGV4K2ErdFtuXS5mb3JtYXQudmFsLmxlbmd0aCksYSs9ODtyZXR1cm4gZX0sdG90ZGF0ZTpmdW5jdGlvbihlLHQsYSl7Zm9yKHZhciByPTAsbj0wO248ZTtuKyspcis9dGhpcy5kYXlBcnJbbl0sdCYmMT09PW4mJihyKz0xKTtyZXR1cm4gcisoYXx8MCl9LGNyY3RMZW5ndGg6ZnVuY3Rpb24oZSx0LGEpe3ZhciByPScnO2lmKGEmJihyPXRoaXMubnRoY29udihlKSksdCl7ZT1lLnRvU3RyaW5nKCk7Zm9yKHZhciBuPTE7bjx0O24rKyllLmxlbmd0aDw9biYmKGU9JzAnK2UpfXJldHVybiBlK3J9LG50aGNvbnY6ZnVuY3Rpb24oZSl7aWYoZT4zJiZlPDIxKXJldHVybid0aCc7c3dpdGNoKGUlMTApe2Nhc2UgMTpyZXR1cm4nc3QnO2Nhc2UgMjpyZXR1cm4nbmQnO2Nhc2UgMzpyZXR1cm4ncmQnO2RlZmF1bHQ6cmV0dXJuJ3RoJ319LGlzTGVhcDpmdW5jdGlvbihlKXtyZXR1cm4gMj09PShlKz0nJykubGVuZ3RoJiYoZT10aGlzLmdldENvcnJlY3RZZWFyKHBhcnNlSW50KGUpKSksKGU9cGFyc2VJbnQoZSkpJTQ9PTAmJmUlMTAwIT0wfHxlJTQwMD09MH0sZ2V0Q29ycmVjdFllYXI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZSsnJztpZihlPXBhcnNlSW50KGUpLDI9PT10Lmxlbmd0aCl7dmFyIGE9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLHI9cGFyc2VJbnQoYS8xMDApLG49YSUxMDAscz0obi10aGlzLmxMaW1pdCsxMDApJTEwMDtlPW4+cz9lPHM/cisxKycnK3RoaXMuY3JjdExlbmd0aChlLDIpOnIrJycrdGhpcy5jcmN0TGVuZ3RoKGUsMik6ZTxzP3IrJycrdGhpcy5jcmN0TGVuZ3RoKGUsMik6ci0xKycnK3RoaXMuY3JjdExlbmd0aChlLDIpfXJldHVybiBlfSx2YWxGb3JtYXQ6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGE9e30scj1uZXcgRGF0ZSgobmV3IERhdGUpLmdldEZ1bGxZZWFyKCksMCksbj10aGlzLnBhcnNlRm9ybWF0KHQsITApLHM9ZSxpPXQ9dC5yZXBsYWNlKC97e3x9fS9nLCcnKSxsPW4ubGVuZ3RoLGQ9MDtkPGw7ZCsrKXt2YXIgbyxoPW5bZF0uZm9ybWF0O3N3aXRjaChoLnR5cGUpe2Nhc2UnZGF0ZSc6Y2FzZSd5ZWFyJzpjYXNlJ3dlZWsnOmNhc2UnZGF5JzpoLnJlZ2V4LnRlc3QoZSk/KG89J3llYXInPT09aC50eXBlP2UubWF0Y2goaC5yZWdleClbaC5tYXRjaHx8MF06cGFyc2VJbnQoZS5tYXRjaChoLnJlZ2V4KVtoLm1hdGNofHwwXSksYVtoLnR5cGVdPW8sZT10aGlzLnJlcGxhY2VWYWwoZSxoLnJlZ2V4LGguc3VmZikscz10aGlzLnJlcGxhY2VWYWwocyxoLnJlZ2V4LGguc3VmZixoLnZhbCksaC55ZWFyJiYoYS5kYXRlPWdldERheShhLmRhdGUpLmRheSkpOmEueWVhciYmYS53ZWVrPyhhW2gudHlwZV09dGhpcy53b2QsdD10LnJlcGxhY2UoaC52YWwsJycpLGk9aS5yZXBsYWNlKGgudmFsLCcnKSk6YVtoLnR5cGVdPSdJbnZhbGlkJywvZGF0ZS9pLnRlc3QoaC50eXBlKSYmMD09PWFbaC50eXBlXSYmKGFbaC50eXBlXT0nSW52YWxpZCcpO2JyZWFrO2Nhc2UnbW9udGgnOmgucmVnZXgudGVzdChlKT8obz10aGlzLmdldE1vbnRoKGUubWF0Y2goaC5yZWdleClbMF0saC5zdWZmLGguc3RyLGgubG9uZyksYS5tb250aD1vLnZhbCxlPXRoaXMucmVwbGFjZVZhbChlLG8ubW9ufHxoLnJlZ2V4LGguc3VmZikscz10aGlzLnJlcGxhY2VWYWwocyxvLm1vbnx8aC5yZWdleCxoLnN1ZmYsaC52YWwpKTphLm1vbnRoPSdJbnZhbGlkJyxhLm1vbnRoPDAmJihhLm1vbnRoPSdJbnZhbGlkJyk7YnJlYWs7Y2FzZSdsb25nZGF0ZSc6aC5yZWdleC50ZXN0KGUpJiYobz1oLnN0cj90aGlzLmZpbmRWYWwoaC5hcnJheSxlLm1hdGNoKGgucmVnZXgpWzBdKTpwYXJzZUludChlLm1hdGNoKGgucmVnZXgpWzBdKSxhLmxvbmdkYXRlPXRoaXMuaXNEZWYoby5pbmRleCk/by5pbmRleDpvLGU9dGhpcy5yZXBsYWNlVmFsKGUsby5tb258fG8saC5zdWZmKSxzPXRoaXMucmVwbGFjZVZhbChzLG8ubW9ufHxvLGguc3VmZixoLnZhbCkpfXQ9dC5yZXBsYWNlKGgudmFsRm9ybXx8aC52YWwsJycpfWlmKHRoaXMuaXNEZWYoYS5sb25nZGF0ZSkmJmEuZGF5JiZhLmRheSE9PWEubG9uZ2RhdGU/ci5zZXRGdWxsWWVhcignSW52YWxpZCcpOnRoaXMuaXNEZWYoYS55ZWFyKSYmci5zZXRGdWxsWWVhcih0aGlzLmdldENvcnJlY3RZZWFyKGEueWVhcikpLHRoaXMuaXNEZWYoYS5tb250aCkmJnIuc2V0TW9udGgoYS5tb250aCksdGhpcy5pc0RlZihhLmRhdGUpJiZyLnNldERhdGUoYS5kYXRlPD10aGlzLmRheUFycltyLmdldE1vbnRoKCldKygxPT09ci5nZXRNb250aCgpJiZ0aGlzLmlzTGVhcChyLmdldEZ1bGxZZWFyKCkpPzE6MCk/YS5kYXRlOidJbnZhbGlkJyksdGhpcy5faXNDb3JyZWN0Rm9ybWF0PWUubGVuZ3RoPT09dC5sZW5ndGgmJmk9PT1zJiZ0aGlzLnZhbGlkYXRlKHIpKXJldHVybiByfSx2YWxpZGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBhPWUuY29uc3RydWN0b3I7aWYoYT09PURhdGUpcmV0dXJuIHRoaXMuX2RhdGVPYmo9ZSwnSW52YWxpZCBEYXRlJyE9PWUudG9TdHJpbmcoKTtpZihhPT09U3RyaW5nJiZ0KXt2YXIgcj10aGlzLnZhbEZvcm1hdChlLHQpO3JldHVybiByJiZ0aGlzLl9pc0NvcnJlY3RGb3JtYXQmJih0aGlzLl9mb3JtYXQ9dCkscn19LHJlcGxhY2VWYWw6ZnVuY3Rpb24oZSx0LGEscil7cmV0dXJuIGU9ZS5yZXBsYWNlKHQscnx8JycpLGEmJihlPWUucmVwbGFjZSgvc3R8bmR8cmR8dGgvLCcnKSksZX0sZ2V0TW9udGg6ZnVuY3Rpb24oZSx0LGEscil7dmFyIG47aWYoYSl7dmFyIHM9dGhpcy5maW5kVmFsKHI/dGhpcy5sb25nTW9uOnRoaXMuc2hvcnRNb24sZSk7bj1zLm1vbixlPXMuaW5kZXgsKCFufHxlPjExKSYmKGU9J0ludmFsaWQnKX1lbHNlKGU9cGFyc2VJbnQoZSktMSk+MTEmJihlPSdJbnZhbGlkJyk7cmV0dXJue3ZhbDplLG1vbjpufX0sZmluZFZhbDpmdW5jdGlvbihlLHQpe3ZhciBhLHIsbj1lLmxlbmd0aDtmb3Iocj0wO3I8bjtyKyspaWYobmV3IFJlZ0V4cChlW3JdKS50ZXN0KHQpKXthPWVbcl07YnJlYWt9cmV0dXJue21vbjphLGluZGV4OnJ9fSxpc0RlZjpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09ZX19Ozwvc2NyaXB0Pgo8c3R5bGU+CiNjYWxlbkRpdntwYWRkaW5nOjEwcHg7ZGlzcGxheTp0YWJsZTsgd2lkdGg6IDE5NXB4O2ZvbnQtZmFtaWx5OiBoZWx2ZXRpY2Esc2Fucy1zZXJpZiAhaW1wb3J0YW50O30KLmNhbE5hdnt3aWR0aDoyMHB4OyBoZWlnaHQ6MTVweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7IHRvcDo0cHg7IGN1cnNvcjpwb2ludGVyfQojY2FsZW5EaXYgLmNhbE5hdiB7d2lkdGg6MTVweDt9CiNjYWxlbkRpdiAueWVhck5hdkxmdCB7cmlnaHQ6MTBweDt9CiNjYWxlbkRpdiAueWVhck5hdlJndCB7bGVmdDoxMHB4O30KI2NhbGVuRGl2IC5kTGZ0IHtyaWdodDo1cHg7IH0KI2NhbGVuRGl2IC5kUmd0IHtsZWZ0OjVweDt9Ci5kTGZ0e3JpZ2h0OjEwcHg7b3BhY2l0eTowLjg7IH0KLmRSZ3R7bGVmdDoxMHB4O29wYWNpdHk6MC44O30KLnllYXJOYXZMZnR7cmlnaHQ6MTVweDsgfQoueWVhck5hdlJndHtsZWZ0OjE1cHg7b3BhY2l0eTowLjY7fQojY2FsZW5EaXYgdGFibGUuY2FsRGF5IHtib3JkZXItc3BhY2luZzo2cHg7IG1hcmdpbi10b3A6MH0KI2NhbGVuRGl2IHRhYmxlLmNhbERheSB0ZHsgcGFkZGluZzozcHggNHB4OyBmb250LXNpemU6MTFweH0KI2NhbGVuRGl2IHRhYmxlLmNhbERheSB0aCB7cGFkZGluZzogMCAzcHg7Zm9udC1zaXplOiAxMXB4O3BhZGRpbmctcmlnaHQ6IDA7cGFkZGluZy1sZWZ0OiAxcHg7Y29sb3I6ICM4ODg7d2lkdGg6IDIycHg7Y3Vyc29yOiBkZWZhdWx0O2JvcmRlci1yYWRpdXM6IDNweDt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC13ZWlnaHQ6IG5vcm1hbDt9CiNjYWxlbkRpdiAjd2Vla0RheXN7bWFyZ2luLXRvcDogMTBweDttYXJnaW4tYm90dG9tOiA1cHg7Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNjMGM2Y2M7Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjMGM2Y2M7Ym9yZGVyLXNwYWNpbmc6IDVweDttYXJnaW4tbGVmdDogMDtjb2xvcjogIzhiOWFiOTt9CiNjYWxlbkRpdiAuc0NhbE1vbiB7Y3Vyc29yOiBkZWZhdWx0O2Rpc3BsYXk6IGlubGluZS1ibG9jaztjb2xvcjogIzg4ODt3aWR0aDogMTEwcHg7Zm9udC1zaXplOiAxMnB4O30KdGFibGUuY2FsRGF5IHRkOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U4ZThlODt9CnRhYmxlLmNhbERheXsgY29sb3I6IzIyMjsgbWFyZ2luLWxlZnQ6LTEwcHg7IGJvcmRlci1zcGFjaW5nOjEycHg7fQp0YWJsZS5jYWxEYXkgdGQsIHRhYmxlLmNhbERheSB0aHsgZm9udC1zaXplOiB2YXIoLS1jcm0tZXh0cmEtbWVkaXVtLWZvbnQtc2l6ZSk7IGN1cnNvcjpkZWZhdWx0O2JvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgIHBhZGRpbmc6M3B4IDVweDsgZm9udC1mYW1pbHk6IGhlbHZldGljYSxzYW5zLXNlcmlmICFpbXBvcnRhbnQ7IH0KdGFibGUuY2FsRGF5IHRkLnNlbCx0YWJsZS5jYWxEYXkgdGQuc2VsOmhvdmVye2NvbG9yOiNmZmY7IGJhY2tncm91bmQ6I2IzYjNiMzsgYm9yZGVyLXJhZGl1czozcHg7fQp0YWJsZS5jYWxEYXkgdGQubm9OdW0sdGFibGUuY2FsRGF5IHRkLmx0LWdyYXl7Y29sb3I6I2MxYzFjMTt9Ci52cHZsLCAudHh0LWN0ciB7dGV4dC1hbGlnbjogY2VudGVyO30KI2NhbEJ0bnMgYSwgLmx5dGVDYWxCdG5zIC5seXRlQ2FsQ3VycmVudERhdGUgYSB7Y29sb3I6IHZhcigtLWxpbmtDb2xvcik7Zm9udC1zaXplOiAxNHB4O3RleHQtZGVjb3JhdGlvbjogbm9uZTt9CiNjYWxlbkRpdiAjY2FsQnRucyB7d2lkdGg6IDE4M3B4O21hcmdpbi1sZWZ0OiAxMHB4O2JvcmRlci10b3A6IDA7Zm9udC1zaXplOiAxMXB4O3BhZGRpbmc6IDNweCAwIDEycHghaW1wb3J0YW50O30KLmFycm93IHtib3JkZXI6IHNvbGlkICM2NjY7Ym9yZGVyLXdpZHRoOiAwIDFweCAxcHggMDtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7aGVpZ2h0OiA2cHg7d2lkdGg6IDZweDt9CiNjYWxlbkRpdiAucmlnaHQge3RyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO30KI2NhbGVuRGl2IC5sZWZ0IHt0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7fQoubUxNaW51czJ7bWFyZ2luLWxlZnQ6IC0ycHg7fQoubVJNaW51czJ7bWFyZ2luLXJpZ2h0OiAtMnB4O30KLnZhbXt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO30KLnRlbXBDYWxEaXZ7ZGlzcGxheTogbm9uZTttYXJnaW46IDA7cG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IDEwMDA7YmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyOiAxcHggc29saWQgI2MwYzZjYzsgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwwLDAsMC4zKTtib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwwLDAsMC4zKTsgYm9yZGVyLXRvcDogMDt0b3A6IDIwcHg7fTwvc3R5bGU+Cgk8c2NyaXB0PgoJCWZ1bmN0aW9uIHByaXZhY3lBbGVydDQ5MTg0MzAwMDA0MDY3MTUwNSgpCgkJewoJCQl2YXIgcHJpdmFjeVRvb2wgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpdmFjeVRvb2w0OTE4NDMwMDAwNDA2NzE1MDUnKTsKCQkJdmFyIHByaXZhY3lFcnIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpdmFjeUVycjQ5MTg0MzAwMDA0MDY3MTUwNScpOwoJCQlpZihwcml2YWN5VG9vbCAhPXVuZGVmaW5lZCAmJiAhcHJpdmFjeVRvb2wuY2hlY2tlZCApCgkJCXsKCQkJCXByaXZhY3lFcnIuc3R5bGUudmlzaWJpbGl0eT0ndmlzaWJsZSc7CgkJCQlwcml2YWN5VG9vbC5mb2N1cygpOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJCXJldHVybiB0cnVlOwoJCX0KCQlmdW5jdGlvbiBkaXNhYmxlRXJyNDkxODQzMDAwMDQwNjcxNTA1KCkKCQl7CgkJCXZhciBwcml2YWN5VG9vbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml2YWN5VG9vbDQ5MTg0MzAwMDA0MDY3MTUwNScpOwoJCQl2YXIgcHJpdmFjeUVyciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml2YWN5RXJyNDkxODQzMDAwMDQwNjcxNTA1Jyk7CgkJCWlmKHByaXZhY3lUb29sICE9dW5kZWZpbmVkICYmIHByaXZhY3lUb29sLmNoZWNrZWQgJiYgcHJpdmFjeUVyciAhPXVuZGVmaW5lZCApCgkJCXsKCQkJCXByaXZhY3lFcnIuc3R5bGUudmlzaWJpbGl0eT0naGlkZGVuJzsKCQkJfQoJCX0KCWZ1bmN0aW9uIHZhbGlkYXRlRW1haWw0OTE4NDMwMDAwNDA2NzE1MDUoKQoJewoJCXZhciBmb3JtID0gZG9jdW1lbnQuZm9ybXNbJ1dlYlRvTGVhZHM0OTE4NDMwMDAwNDA2NzE1MDUnXTsKCQl2YXIgZW1haWxGbGQgPSBmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tmdHlwZT1lbWFpbF0nKTsKCQl2YXIgaTsKCQlmb3IgKGkgPSAwOyBpIDwgZW1haWxGbGQubGVuZ3RoOyBpKyspCgkJewoJCQl2YXIgZW1haWxWYWwgPSBlbWFpbEZsZFtpXS52YWx1ZTsKCQkJaWYoKGVtYWlsVmFsLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykpLmxlbmd0aCE9MCApCgkJCXsKCQkJCXZhciBhdHBvcz1lbWFpbFZhbC5pbmRleE9mKCdAJyk7CgkJCQl2YXIgZG90cG9zPWVtYWlsVmFsLmxhc3RJbmRleE9mKCcuJyk7CgkJCQlpZiAoYXRwb3M8MSB8fCBkb3Rwb3M8YXRwb3MrMiB8fCBkb3Rwb3MrMj49ZW1haWxWYWwubGVuZ3RoKQoJCQkJewoJCQkJCWFsZXJ0KCdJbnRyb2R1emNhIHVuYSBkaXJlY2Npw7NuIGRlIGNvcnJlbyBlbGVjdHLDs25pY28gdsOhbGlkYS4gJyk7CgkJCQkJZW1haWxGbGRbaV0uZm9jdXMoKTsKCQkJCQlyZXR1cm4gZmFsc2U7CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CglmdW5jdGlvbiB2YWxpZGF0ZURhdGVGb3JtYXQ0OTE4NDMwMDAwNDA2NzE1MDUoKQoJewoJCXZhciBmb3JtID0gZG9jdW1lbnQuZm9ybXNbJ1dlYlRvTGVhZHM0OTE4NDMwMDAwNDA2NzE1MDUnXTsKCQl2YXIgZGF0ZUZsZHMgPSBmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tmdHlwZT1kYXRlXScpOwoJCXZhciBpOwoJCWZvciAoaSA9IDA7IGkgPCBkYXRlRmxkcy5sZW5ndGg7IGkrKykKCQl7CgkJCXZhciBkYXRlRmxkID0gZGF0ZUZsZHNbaV07CgkJCXZhciB1c3JQdHJuID0gZGF0ZUZsZC5wbGFjZWhvbGRlcjsKCQkJdmFyIGRhdGVWYWwgPSBkYXRlRmxkLnZhbHVlOwoJCQlpZihkYXRlVmFsLnRyaW0oKSAhPSAnJyl7CgkJCQl2YXIgdmFsZCA9IGRhdGVGb3JtYXRDb252ZXJ0LnZhbGlkYXRlKGRhdGVWYWwsdXNyUHRybik7CgkJCQlpZighdmFsZCl7CgkJCQkJYWxlcnQoJ0VzY3JpYmEgdW5hIGZlY2hhIHbDoWxpZGEgJyk7CgkJCQkJZGF0ZUZsZC5mb2N1cygpOwoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KIAkgIGZ1bmN0aW9uIGNoZWNrTWFuZGF0b3J5NDkxODQzMDAwMDQwNjcxNTA1KCkgewoJCXZhciBtbmRGaWxlZHMgPSBuZXcgQXJyYXkoJ0NvbXBhbnknLCdMYXN0IE5hbWUnLCdMRUFEQ0Y2JywnTEVBRENGNTQnLCdMRUFEQ0YyNicsJ0xFQURDRjgyJywnTEVBRENGMTIxJyk7CgkJdmFyIGZsZExhbmdWYWwgPSBuZXcgQXJyYXkoJ05vbWJyZVx4MjB5XHgyMGFwZWxsaWRvc1x4MjBkZWxceDIwcHJvZ2VuaXRvclx4MkZhJywnTm9tYnJlXHgyMHlceDIwYXBlbGxpZG9zXHgyMGRlbFx4MjBlc3R1ZGlhbnRlJywnRVx4MkRtYWlsJywnVGVsXHhFOWZvbm8nLCdFc3RveVx4MjBpbnRlcmVzYWRvXHgyMGVuJywnRmVjaGFceDIwZGVceDIwbmFjaW1pZW50b1x4MjBkZWxceDIwZXN0dWRpYW50ZScsJ1Byb3ZpbmNpYScpOwoJCWZvcihpPTA7aTxtbmRGaWxlZHMubGVuZ3RoO2krKykgewoJCSAgdmFyIGZpZWxkT2JqPWRvY3VtZW50LmZvcm1zWydXZWJUb0xlYWRzNDkxODQzMDAwMDQwNjcxNTA1J11bbW5kRmlsZWRzW2ldXTsKCQkgIGlmKGZpZWxkT2JqKSB7CgkJCWlmICgoKGZpZWxkT2JqLnZhbHVlKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpKS5sZW5ndGg9PTApIHsKCQkJIGlmKGZpZWxkT2JqLnR5cGUgPT0nZmlsZScpCgkJCQl7IAoJCQkJIGFsZXJ0KCdTZWxlY2Npb25lIHVuIGFyY2hpdm8gcGFyYSBjYXJnYXIuJyk7IAoJCQkJIGZpZWxkT2JqLmZvY3VzKCk7IAoJCQkJIHJldHVybiBmYWxzZTsKCQkJCX0gCgkJCWFsZXJ0KGZsZExhbmdWYWxbaV0gKycgbm8gcHVlZGUgZXN0YXIgdmFjw61vLicpOyAKICAgCSAgIAkgIAkgIGZpZWxkT2JqLmZvY3VzKCk7CiAgIAkgICAJICAJICByZXR1cm4gZmFsc2U7CgkJCX0gIGVsc2UgaWYoZmllbGRPYmoubm9kZU5hbWU9PSdTRUxFQ1QnKSB7CiAgCSAgIAkgICAJIGlmKGZpZWxkT2JqLm9wdGlvbnNbZmllbGRPYmouc2VsZWN0ZWRJbmRleF0udmFsdWU9PSctTm9uZS0nKSB7CgkJCQlhbGVydChmbGRMYW5nVmFsW2ldICsnIG5vIHB1ZWRlIHNlciBudWxvLicpOyAKCQkJCWZpZWxkT2JqLmZvY3VzKCk7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCSAgIH0KCQkJfSBlbHNlIGlmKGZpZWxkT2JqLnR5cGUgPT0nY2hlY2tib3gnKXsKIAkgCSAJIGlmKGZpZWxkT2JqLmNoZWNrZWQgPT0gZmFsc2UpewoJCQkJYWxlcnQoJ1BsZWFzZSBhY2NlcHQgICcrZmxkTGFuZ1ZhbFtpXSk7CgkJCQlmaWVsZE9iai5mb2N1cygpOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQkgICB9IAoJCQkgfSAKCQkJIHRyeSB7CgkJCSAgICAgaWYoZmllbGRPYmoubmFtZSA9PSAnTGFzdCBOYW1lJykgewoJCQkJbmFtZSA9IGZpZWxkT2JqLnZhbHVlOwogCSAJIAkgICAgfQoJCQl9IGNhdGNoIChlKSB7fQoJCSAgICB9CgkJfQoJCWlmKCF2YWxpZGF0ZUVtYWlsNDkxODQzMDAwMDQwNjcxNTA1KCkpe3JldHVybiBmYWxzZTt9CgkJCgkJaWYoIXByaXZhY3lBbGVydDQ5MTg0MzAwMDA0MDY3MTUwNSgpKXtyZXR1cm4gZmFsc2U7fQoJCQoJCWlmKCF2YWxpZGF0ZURhdGVGb3JtYXQ0OTE4NDMwMDAwNDA2NzE1MDUoKSl7cmV0dXJuIGZhbHNlO30KCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY3JtV2ViVG9FbnRpdHlGb3JtIC5mb3Jtc3VibWl0Jykuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpOwoJfQpmdW5jdGlvbiB0b29sdGlwU2hvdzQ5MTg0MzAwMDA0MDY3MTUwNShlbCl7Cgl2YXIgdG9vbHRpcCA9IGVsLm5leHRFbGVtZW50U2libGluZzsKCXZhciB0b29sdGlwRGlzcGxheSA9IHRvb2x0aXAuc3R5bGUuZGlzcGxheTsKCWlmKHRvb2x0aXBEaXNwbGF5ID09ICdub25lJyl7CgkJdmFyIGFsbFRvb2x0aXAgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd6Y3dmX3Rvb2x0aXBfb3ZlcicpOwoJCWZvcihpPTA7IGk8YWxsVG9vbHRpcC5sZW5ndGg7IGkrKyl7CgkJCWFsbFRvb2x0aXBbaV0uc3R5bGUuZGlzcGxheT0nbm9uZSc7CgkJfQoJCXRvb2x0aXAuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7Cgl9ZWxzZXsKCQl0b29sdGlwLnN0eWxlLmRpc3BsYXk9J25vbmUnOwoJfQp9Cjwvc2NyaXB0PgoJPCEtLSBEbyBub3QgcmVtb3ZlIHRoaXMgLS0tIEFuYWx5dGljcyBUcmFja2luZyBjb2RlIHN0YXJ0cyAtLT48c2NyaXB0IGlkPSd3Zl9hbmFsJyBzcmM9J2h0dHBzOi8vY3JtLnpvaG9wdWJsaWMuY29tL2NybS9XZWJGb3JtQW5hbHl0aWNzU2VydmVTZXJ2bGV0P3JpZD0xNzY3MmI5NTU3Y2FkN2MxODM4MjExZjkwNGQxNDM4OGYyODdlMWE3NzJlYzM1Y2YwMWQ3NjU1YmMwODQ2Yzg0Z2lkNzNjMWM4MDZjOGFiMzEwYzZlZWIzMWM2MjRiYjMxY2FkOTEzNjNhMGE1YWZiZjhmOTM0YzA1ZTBiYjgwM2E4NmdpZDg4NWUzYzEwNDViZDliZGNjOTFiZGYzMGY4MmI1Njk2Z2lkMTRmNGVjMTY0MzFlMDY4NjE1MGRhYTQzZjMyMTA1MTMmdHc9NjE2OTBiOTZjMWQwNDcxYjYzOGYzMTQyNmYzOGU2OGFhNjdmYjdlZDZkYTg2ZjMyZGMxMGFkODE3ZmU1NWEwYSc+PC9zY3JpcHQ+PCEtLSBEbyBub3QgcmVtb3ZlIHRoaXMgLS0tIEFuYWx5dGljcyBUcmFja2luZyBjb2RlIGVuZHMuIC0tPjwvZm9ybT4KPC9kaXY+