Brailleeasy - una solución de iomt para aprender braille de manera autónoma
Con el objetivo de apoyar al usuario en el aprendizaje autónomo del Sistema Braille (SB), el proyecto BrailleEasy integra una Aplicación Web (AW) como interfaz para el usuario y un Dispositivo Electromecánico (DE), que forman parte de una solución basada en Internet de las Cosas Médicas (IoMT). La i...
- Autores:
-
Moreno León, Wilmer Andrés
Moreno León, Fausto Leonardo
- Tipo de recurso:
- Fecha de publicación:
- 2024
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/93388
- Acceso en línea:
- http://hdl.handle.net/11349/93388
- Palabra clave:
- Sistema Braille
Aplicación web
Comandos de voz
Servicios en la nube
Dispositivo electromecánico
Tecnología en Electrónica -- Tesis y disertaciones académicas
Esctitura para ciegos
Adaptación de tecnología
Internet de las cosas médicas (IoMT)
Aplicaciones web accesibles
Braille system
Web application
Voice commands
Cloud services
Electromechanical device
- Rights
- License
- Abierto (Texto Completo)
id |
UDISTRITA2_05f03a8ddfb7f21b8f7790b3e143d212 |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/93388 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.none.fl_str_mv |
Brailleeasy - una solución de iomt para aprender braille de manera autónoma |
dc.title.titleenglish.none.fl_str_mv |
Brailleeasy - an iomt solution for autonomous braille learning |
title |
Brailleeasy - una solución de iomt para aprender braille de manera autónoma |
spellingShingle |
Brailleeasy - una solución de iomt para aprender braille de manera autónoma Sistema Braille Aplicación web Comandos de voz Servicios en la nube Dispositivo electromecánico Tecnología en Electrónica -- Tesis y disertaciones académicas Esctitura para ciegos Adaptación de tecnología Internet de las cosas médicas (IoMT) Aplicaciones web accesibles Braille system Web application Voice commands Cloud services Electromechanical device |
title_short |
Brailleeasy - una solución de iomt para aprender braille de manera autónoma |
title_full |
Brailleeasy - una solución de iomt para aprender braille de manera autónoma |
title_fullStr |
Brailleeasy - una solución de iomt para aprender braille de manera autónoma |
title_full_unstemmed |
Brailleeasy - una solución de iomt para aprender braille de manera autónoma |
title_sort |
Brailleeasy - una solución de iomt para aprender braille de manera autónoma |
dc.creator.fl_str_mv |
Moreno León, Wilmer Andrés Moreno León, Fausto Leonardo |
dc.contributor.advisor.none.fl_str_mv |
Hernández Martínez , Henry Alberto |
dc.contributor.author.none.fl_str_mv |
Moreno León, Wilmer Andrés Moreno León, Fausto Leonardo |
dc.subject.none.fl_str_mv |
Sistema Braille Aplicación web Comandos de voz Servicios en la nube Dispositivo electromecánico |
topic |
Sistema Braille Aplicación web Comandos de voz Servicios en la nube Dispositivo electromecánico Tecnología en Electrónica -- Tesis y disertaciones académicas Esctitura para ciegos Adaptación de tecnología Internet de las cosas médicas (IoMT) Aplicaciones web accesibles Braille system Web application Voice commands Cloud services Electromechanical device |
dc.subject.lemb.none.fl_str_mv |
Tecnología en Electrónica -- Tesis y disertaciones académicas Esctitura para ciegos Adaptación de tecnología Internet de las cosas médicas (IoMT) Aplicaciones web accesibles |
dc.subject.keyword.none.fl_str_mv |
Braille system Web application Voice commands Cloud services Electromechanical device |
description |
Con el objetivo de apoyar al usuario en el aprendizaje autónomo del Sistema Braille (SB), el proyecto BrailleEasy integra una Aplicación Web (AW) como interfaz para el usuario y un Dispositivo Electromecánico (DE), que forman parte de una solución basada en Internet de las Cosas Médicas (IoMT). La implementación del proyecto se realizó mediante el desarrollo de una AW accesible desde cualquier navegador, construida con NextJS y diseñada para integrarse con los servicios de Azure. Esta AW se comunica con Azure IoT Hub, el cual gestiona la interacción con el microcontrolador AZ3166, que ejecuta un Sistema Operativo en Tiempo Real (RTOS) basado en Eclipse ThreadX. El acceso a la AW es posible a través de una URL, un código QR o tecnología NFC, todos ellos integrados en el DE, facilitando así la interacción del usuario con el proyecto. Una vez dentro de la AW, el usuario puede interactuar mediante comandos de voz en idioma español, la interfaz captura el audio generado por el usuario, extrae el texto del audio capturado, procesa la intención del usuario a partir del texto, genera una respuesta conforme a las instrucciones recibidas, sintetiza el audio acorde a la respuesta generada y envía los caracteres correspondientes al DE para que este accione un conjunto de servomotores que suben y bajan un mecanismo de palancas para formar una superficie de contacto en función del carácter del SB seleccionado, De esta manera, el dispositivo forma carácter por carácter, palabras o frases en SB. |
publishDate |
2024 |
dc.date.created.none.fl_str_mv |
2024-10-08 |
dc.date.accessioned.none.fl_str_mv |
2025-03-07T16:10:22Z |
dc.date.available.none.fl_str_mv |
2025-03-07T16:10:22Z |
dc.type.none.fl_str_mv |
bachelorThesis |
dc.type.coar.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.degree.none.fl_str_mv |
Monografía |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/11349/93388 |
url |
http://hdl.handle.net/11349/93388 |
dc.relation.references.none.fl_str_mv |
“Geoportal del DANE - Geovisor CNPV 2018". Geoportal DANE - Inicio. https://geoportal.dane.gov.co/geovisores/sociedad/cnpv-2018/ (accedido el 25 de abril de 2023) Equipo de Expertos en Educación. "Principales dificultades en el aprendizaje del sistema braile". VIU. https://www.universidadviu.com/es/actualidad/nuestros-expertos/principales-dificultades-en-el-aprendizaje-del-sistema-braile (accedido el 25 de abril de 2023) Equipo de Expertos en Educación. "Las tecnologías como complemento del Braille, no como sustituto". VIU. https://www.universidadviu.com/es/actualidad/nuestros-expertos/el-uso-del-braille-aplicado-las-nuevas-tecnologiase (accedido el 25 de abril de 2023) P. Cantón Romero. "APLICACIONES MÓVILES (APPs) | ALBOR: Tic y Nee | EducaMadrid". EducaMadrid. https://www.educa2.madrid.org/web/albor/aplicaciones-moviles/-/visor/braille-tutor (accedido el 25 de abril de 2023) Index Braille. "BrailleBox V5". https://www.indexbraille.com/en-us/braille-embossers/braillebox-v5 (accedido el 6 de abril de 2023) Braillio - A fun and fully accessible typing tutor for blind and visually impaired students". Accessibyte. https://www.accessibyte.com/braillio-online-page/ (accedido el 25 de abril de 2023). Western Governors University. "What is tactile learning?" Western Governors University. https://www.wgu.edu/blog/what-tactilelearning2008. html#openSubscriberModal (accedido el 25 de abril de 2023). Ruíz. A. (s/f). 4 cursos para aprender Lengua de Señas Colombiana, Braille y más ¡Inscríbete!, de https://bogota.gov.co/servicios/oportunidades-y-apoyos/4-cursos-paraaprender- lengua-de-senas-colombiana-braille-y-mas-inscribete (accedido el 01 de septiembre de 2024). Suscripciones y cuentas de AWS y Azure - Azure Architecture Center | Microsoft Learn. (n.d.) https://learn.microsoft.com/es-es/azure/architecture/awsprofessional/ accounts (accedido el 02 de abril de 2024). Eclipse ThreadX · GitHub. (n.d.). https://github.com/eclipse-threadx (accedido el 02 de abril de 2024). Control access with shared access signatures - Azure IoT Hub | Microsoft Learn. (n.d.), https://learn.microsoft.com/en-us/azure/iot-hub/authenticate-authorize-sas?tabs=node (accedido el 02 de abril de 2024). The Principles of Standardization. (2012). www.ipc.org. Conversión de ancho de traza de PCB | DigiKey. (n.d.). https://www.digikey.com/es/resources/conversion-calculators/conversion-calculatorpcb- trace-width (accedido el 02 de abril de 2024). Docs | Next.js. (n.d.). from https://nextjs.org/docs (accedido el 02 de abril de 2024). 3.13: Porcentaje de Error - LibreTexts Español. (n.d.). https://espanol.libretexts.org/Quimica/Qu%C3%ADmica_Introductoria%2C_Conceptual _y_GOB/Qu%C3%ADmica_Introductoria_(CK- 12)/03%3A_Mediciones/3.13%3A_Porcentaje_de_Error (accedido el 02 de abril de 2024). |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.acceso.none.fl_str_mv |
Abierto (Texto Completo) |
rights_invalid_str_mv |
Abierto (Texto Completo) http://purl.org/coar/access_right/c_abf2 |
dc.format.mimetype.none.fl_str_mv |
pdf |
institution |
Universidad Distrital Francisco José de Caldas |
bitstream.url.fl_str_mv |
https://repository.udistrital.edu.co/bitstreams/6ac56c7c-4080-462c-bff1-5ef496510158/download https://repository.udistrital.edu.co/bitstreams/3fb2b778-8245-4887-9408-e12df1e625e8/download https://repository.udistrital.edu.co/bitstreams/ba9f877b-0afe-4f7e-a541-c94fb41e10b1/download https://repository.udistrital.edu.co/bitstreams/86ddf411-1ab6-4603-9713-22df65a97afa/download https://repository.udistrital.edu.co/bitstreams/5fdf9df4-d69d-4149-8719-7b3762025240/download |
bitstream.checksum.fl_str_mv |
997daf6c648c962d566d7b082dac908d 76e3f5e83ac7c65b6a75ae911de91b63 0992234b48aedc3621a0f388792610c9 84eadd7cac9f3236b4a05f2ee7945faa 4188e104fa21fa782956f566b79c42f0 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Universidad Distrital |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1828165893961547776 |
spelling |
Hernández Martínez , Henry AlbertoMoreno León, Wilmer AndrésMoreno León, Fausto Leonardo2025-03-07T16:10:22Z2025-03-07T16:10:22Z2024-10-08http://hdl.handle.net/11349/93388Con el objetivo de apoyar al usuario en el aprendizaje autónomo del Sistema Braille (SB), el proyecto BrailleEasy integra una Aplicación Web (AW) como interfaz para el usuario y un Dispositivo Electromecánico (DE), que forman parte de una solución basada en Internet de las Cosas Médicas (IoMT). La implementación del proyecto se realizó mediante el desarrollo de una AW accesible desde cualquier navegador, construida con NextJS y diseñada para integrarse con los servicios de Azure. Esta AW se comunica con Azure IoT Hub, el cual gestiona la interacción con el microcontrolador AZ3166, que ejecuta un Sistema Operativo en Tiempo Real (RTOS) basado en Eclipse ThreadX. El acceso a la AW es posible a través de una URL, un código QR o tecnología NFC, todos ellos integrados en el DE, facilitando así la interacción del usuario con el proyecto. Una vez dentro de la AW, el usuario puede interactuar mediante comandos de voz en idioma español, la interfaz captura el audio generado por el usuario, extrae el texto del audio capturado, procesa la intención del usuario a partir del texto, genera una respuesta conforme a las instrucciones recibidas, sintetiza el audio acorde a la respuesta generada y envía los caracteres correspondientes al DE para que este accione un conjunto de servomotores que suben y bajan un mecanismo de palancas para formar una superficie de contacto en función del carácter del SB seleccionado, De esta manera, el dispositivo forma carácter por carácter, palabras o frases en SB.With the objective of supporting the user in autonomous learning of the Braille System (SB), the BrailleEasy project integrates a Web Application (WA) as a user interface and an Electromechanical Device (ED), which are part of a solution based on the Internet of Medical Things (IoMT). The project implementation was done by developing an AW accessible from any browser, built with NextJS and designed to integrate with Azure services. This AW communicates with Azure IoT Hub, which manages the interaction with the AZ3166 microcontroller, running a Real-Time Operating System (RTOS) based on Eclipse ThreadX. Access to the AW is possible through a URL, a QR code or NFC technology, all of them integrated in the DE, thus facilitating the user's interaction with the project. Once inside the AW, the user can interact through voice commands in Spanish language, the interface captures the audio generated by the user, extracts the text from the captured audio, processes the user's intention from the text, generates a response according to the instructions received, synthesizes the audio according to the instructions received, and synthesizes the audio according to the instructions received, synthesizes the audio according to the generated response and sends the corresponding characters to the DE so that it drives a set of servomotors that raise and lower a lever mechanism to form a contact surface depending on the character of the selected SB. In this way, the device forms character by character, words or sentences in SB.pdfSistema BrailleAplicación webComandos de vozServicios en la nubeDispositivo electromecánicoTecnología en Electrónica -- Tesis y disertaciones académicasEsctitura para ciegosAdaptación de tecnologíaInternet de las cosas médicas (IoMT)Aplicaciones web accesiblesBraille systemWeb applicationVoice commandsCloud servicesElectromechanical deviceBrailleeasy - una solución de iomt para aprender braille de manera autónomaBrailleeasy - an iomt solution for autonomous braille learningbachelorThesisMonografíahttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2“Geoportal del DANE - Geovisor CNPV 2018". Geoportal DANE - Inicio. https://geoportal.dane.gov.co/geovisores/sociedad/cnpv-2018/ (accedido el 25 de abril de 2023)Equipo de Expertos en Educación. "Principales dificultades en el aprendizaje del sistema braile". VIU. https://www.universidadviu.com/es/actualidad/nuestros-expertos/principales-dificultades-en-el-aprendizaje-del-sistema-braile (accedido el 25 de abril de 2023)Equipo de Expertos en Educación. "Las tecnologías como complemento del Braille, no como sustituto". VIU. https://www.universidadviu.com/es/actualidad/nuestros-expertos/el-uso-del-braille-aplicado-las-nuevas-tecnologiase (accedido el 25 de abril de 2023)P. Cantón Romero. "APLICACIONES MÓVILES (APPs) | ALBOR: Tic y Nee | EducaMadrid". EducaMadrid. https://www.educa2.madrid.org/web/albor/aplicaciones-moviles/-/visor/braille-tutor (accedido el 25 de abril de 2023)Index Braille. "BrailleBox V5". https://www.indexbraille.com/en-us/braille-embossers/braillebox-v5 (accedido el 6 de abril de 2023)Braillio - A fun and fully accessible typing tutor for blind and visually impaired students". Accessibyte. https://www.accessibyte.com/braillio-online-page/ (accedido el 25 de abril de 2023).Western Governors University. "What is tactile learning?" Western Governors University. https://www.wgu.edu/blog/what-tactilelearning2008. html#openSubscriberModal (accedido el 25 de abril de 2023).Ruíz. A. (s/f). 4 cursos para aprender Lengua de Señas Colombiana, Braille y más ¡Inscríbete!, de https://bogota.gov.co/servicios/oportunidades-y-apoyos/4-cursos-paraaprender- lengua-de-senas-colombiana-braille-y-mas-inscribete (accedido el 01 de septiembre de 2024).Suscripciones y cuentas de AWS y Azure - Azure Architecture Center | Microsoft Learn. (n.d.) https://learn.microsoft.com/es-es/azure/architecture/awsprofessional/ accounts (accedido el 02 de abril de 2024).Eclipse ThreadX · GitHub. (n.d.). https://github.com/eclipse-threadx (accedido el 02 de abril de 2024).Control access with shared access signatures - Azure IoT Hub | Microsoft Learn. (n.d.), https://learn.microsoft.com/en-us/azure/iot-hub/authenticate-authorize-sas?tabs=node (accedido el 02 de abril de 2024).The Principles of Standardization. (2012). www.ipc.org.Conversión de ancho de traza de PCB | DigiKey. (n.d.). https://www.digikey.com/es/resources/conversion-calculators/conversion-calculatorpcb- trace-width (accedido el 02 de abril de 2024).Docs | Next.js. (n.d.). from https://nextjs.org/docs (accedido el 02 de abril de 2024).3.13: Porcentaje de Error - LibreTexts Español. (n.d.). https://espanol.libretexts.org/Quimica/Qu%C3%ADmica_Introductoria%2C_Conceptual _y_GOB/Qu%C3%ADmica_Introductoria_(CK- 12)/03%3A_Mediciones/3.13%3A_Porcentaje_de_Error (accedido el 02 de abril de 2024).LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/6ac56c7c-4080-462c-bff1-5ef496510158/download997daf6c648c962d566d7b082dac908dMD51ORIGINALMorenoLeónWilmerAndrés2024.pdfMorenoLeónWilmerAndrés2024.pdfapplication/pdf1307505https://repository.udistrital.edu.co/bitstreams/3fb2b778-8245-4887-9408-e12df1e625e8/download76e3f5e83ac7c65b6a75ae911de91b63MD52Licencia de uso y autorizaciónLicencia de uso y autorizaciónapplication/pdf2933455https://repository.udistrital.edu.co/bitstreams/ba9f877b-0afe-4f7e-a541-c94fb41e10b1/download0992234b48aedc3621a0f388792610c9MD53THUMBNAILMorenoLeónWilmerAndrés2024.pdf.jpgMorenoLeónWilmerAndrés2024.pdf.jpgIM Thumbnailimage/jpeg7281https://repository.udistrital.edu.co/bitstreams/86ddf411-1ab6-4603-9713-22df65a97afa/download84eadd7cac9f3236b4a05f2ee7945faaMD54Licencia de uso y autorización.jpgLicencia de uso y autorización.jpgIM Thumbnailimage/jpeg9871https://repository.udistrital.edu.co/bitstreams/5fdf9df4-d69d-4149-8719-7b3762025240/download4188e104fa21fa782956f566b79c42f0MD5511349/93388oai:repository.udistrital.edu.co:11349/933882025-03-08 01:10:24.384open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK |