Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR
El propósito de esta monografía es presentar un sistema de monitoreo basado en microcontroladores para proteger los datos sensibles mediante comunicaciones seguras. Enun contexto donde las amenazas cibernéticas son cada vez más frecuentes y sofisticadas, es fundamental contar con soluciones que gara...
- Autores:
-
Ruiz Vega, Nicolas Enrique
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2024
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- spa
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/93576
- Acceso en línea:
- http://hdl.handle.net/11349/93576
- Palabra clave:
- Websocket
Microcontroladores
Cifrado AES-CTR
MicroPython
Angular
Spring Boot
Ingeniería en Control -- Tesis y disertaciones académicas
WebSocket
Microcontrollers
AES-CTR Encryption
MicroPython
Angular
Spring Boot
- Rights
- License
- Abierto (Texto Completo)
id |
UDISTRITA2_7dfd3fcfd5b59b1089b7d0dfe8e43dda |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/93576 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.none.fl_str_mv |
Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR |
dc.title.titleenglish.none.fl_str_mv |
Secure data transmission system: integration of Micropython and AES-CTR Cryptography |
title |
Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR |
spellingShingle |
Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR Websocket Microcontroladores Cifrado AES-CTR MicroPython Angular Spring Boot Ingeniería en Control -- Tesis y disertaciones académicas WebSocket Microcontrollers AES-CTR Encryption MicroPython Angular Spring Boot |
title_short |
Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR |
title_full |
Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR |
title_fullStr |
Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR |
title_full_unstemmed |
Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR |
title_sort |
Sistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTR |
dc.creator.fl_str_mv |
Ruiz Vega, Nicolas Enrique |
dc.contributor.advisor.none.fl_str_mv |
Giraldo Ramos, Frank Nixon |
dc.contributor.author.none.fl_str_mv |
Ruiz Vega, Nicolas Enrique |
dc.contributor.orcid.none.fl_str_mv |
Giraldo Ramos, Frank Nixon [0000-0001-8407-1831] |
dc.subject.none.fl_str_mv |
Websocket Microcontroladores Cifrado AES-CTR MicroPython Angular Spring Boot |
topic |
Websocket Microcontroladores Cifrado AES-CTR MicroPython Angular Spring Boot Ingeniería en Control -- Tesis y disertaciones académicas WebSocket Microcontrollers AES-CTR Encryption MicroPython Angular Spring Boot |
dc.subject.lemb.none.fl_str_mv |
Ingeniería en Control -- Tesis y disertaciones académicas |
dc.subject.keyword.none.fl_str_mv |
WebSocket Microcontrollers AES-CTR Encryption MicroPython Angular Spring Boot |
description |
El propósito de esta monografía es presentar un sistema de monitoreo basado en microcontroladores para proteger los datos sensibles mediante comunicaciones seguras. Enun contexto donde las amenazas cibernéticas son cada vez más frecuentes y sofisticadas, es fundamental contar con soluciones que garanticen la integridad y confidencialidad de la información, el método a presentar integra tecnologías como MicroPython y Java, junto con los framework Spring Boot y Angular, para desarrollar un entorno seguro que previeneaccesos no autorizados y ataques. El diseño del sistema se centra en la creación de un marco eficiente que no solo monitoriza los datos, sino que también facilita su gestión, permitiendo una respuesta rápida ante incidentes de seguridad al implementar algoritmos de cifrado y protocolos de comunicación seguros, se busca ofrecer una solución integral que minimice los riesgos de filtraciones y garantice la seguridad de los datos. Se incluye un sistema de monitoreo que se basa en microcontroladores, específicamente usando MicroPython, para adquisición de datos y transmisión de estos. Como estrategia se importó el algoritmo de codificación “AES-CTR” para codificar los datos y garantizar la confidencialidad de los datos durante la transmisión. También, se hace uso de WebSockets para garantizar una comunicación en tiempo real entre microcontrolador y servidor que provea seguridad a nivel del sistema. Este tipo de sistema no es solamente una manera eficiente de manejar los datos, sino un entorno robusto para prevenir accesos no autorizados y ataques cibernéticos. Los resultados obtenidos tras la implementación del sistema han sido motivadores. Las pruebas realizadas indican que la combinación de MicroPython y Spring Boot ha permitido una transmisión eficiente y segura de los datos. Se registró una reducción notable en la latencia de comunicación, lo que mejora la experiencia del usuario al monitorear datos en tiempo real. Además, el análisis de seguridad realizado con herramientas como Wireshark demostró que los datos cifrados son difícilmente inaccesibles para posibles atacantes. En conclusión, este trabajo no solo aborda las vulnerabilidades existentes en los sistemas embebidos, sino que también establece un modelo para futuras aplicaciones en entornos donde la seguridad de los datos es de gran importancia. |
publishDate |
2024 |
dc.date.created.none.fl_str_mv |
2024-11-18 |
dc.date.accessioned.none.fl_str_mv |
2025-03-12T15:43:01Z |
dc.date.available.none.fl_str_mv |
2025-03-12T15:43:01Z |
dc.type.none.fl_str_mv |
bachelorThesis |
dc.type.degree.none.fl_str_mv |
Monografía |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
format |
http://purl.org/coar/resource_type/c_7a1f |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/11349/93576 |
url |
http://hdl.handle.net/11349/93576 |
dc.language.iso.none.fl_str_mv |
spa |
language |
spa |
dc.relation.references.none.fl_str_mv |
“¿Qué es el cifrado AES? - Panda Security.” Accessed: Oct. 30, 2024. [Online]. Available: https://www.pandasecurity.com/es/mediacenter/cifrado-aes-guia/ “El 61% de las empresas ya usan plataformas IoT a pesar de los riesgos de seguridad.” Accessed: Oct. 30, 2024. [Online]. Available: https://latam.kaspersky.com/about/press-releases/el-61-de-las-empresas-ya-usan-plataformas-iot-a-pesar-de-los-riesgos-de-seguridad?srsltid=AfmBOop5IeY- “MicroPython - Python for microcontrollers.” Accessed: Aug. 22, 2024. [Online]. Available: https://micropython.org/ C. Capera Cuellar, “Análisis de rendimiendo de la función criptográfica Hash sobre sistemas embebidos de 32 bits,” 2024. Accessed: Oct. 30, 2024. [Online]. Available: http://hdl.handle.net/11349/39155 “TLS de MBed.” Accessed: Oct. 30, 2024. [Online]. Available: https://www.trustedfirmware.org/projects/mbed-tls/ Y. Díaz Gutiérrez and J. M. Cueva Lovelle, “Analysis of the Cryptographic Hash function in block chains and its impact on the security of data transactions,” Redes de Ingeniería, vol. 9, no. 2, pp. 82–87, Dec. 2019, doi: 10.14483/2248762X.14383. “Definición del algoritmo SHA-256 - Ayuda de Google Ads.” Accessed: Oct. 30, 2024. [Online]. Available: https://support.google.com/google-ads/answer/9004655?hl=es-419 A. Brayan et al., “Diseño e implementación de una herramienta para el procesamiento, almacenamiento y visualización de datos de telemetría de la aeronave Calima T-90 de la Fuerza Aérea Colombiana.,” 2022. Accessed: Oct. 30, 2024. [Online]. Available: http://hdl.handle.net/11349/30113 “Sistema de información basado en la tecnología blockchain aplicado a la gestión de la información de la historia clínica de usuarios.” Accessed: Oct. 30, 2024. [Online]. Available: https://repository.udistrital.edu.co/items/804c6927-74f3-4710-a946-e53b3abc139c “Repositorio Institucional de la Universidad Politécnica Salesiana: Diseño de un guante con sensores de flexibilidad que traducen letras del abecedario del lenguaje sordo mudo utilizando Micropython.” Accessed: Oct. 30, 2024. [Online]. Available: https://dspace.ups.edu.ec/handle/123456789/21759 R. L. Rivest, A. Shamir, and L. Adleman, “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems,” Commun ACM, vol. 21, no. 2, pp. 120–126, Feb. 1978, doi: 10.1145/359340.359342 R. Steven et al., “Sistema de información en línea para la gestión de usuarios del parqueadero de la Universidad Distrital Francisco José de Caldas sede tecnológica,” 2024. Accessed: Oct. 30, 2024. [Online]. Available: http://hdl.handle.net/11349/39318 “What Is Java Spring Boot?. Java Spring Boot is a widely used… | by Dávid Lakatos | Medium.” Accessed: Apr. 27, 2024. [Online]. Available: https://medium.com/@lktsdvd/what-is-java-spring-boot-812dad38e574 “Qué es una API REST (RESTful): cuáles son sus principios - Platzi.” Accessed: Oct. 30, 2024. [Online]. Available: https://platzi.com/clases/1638-api-rest/21611-que-significa-rest-y-que-es-una-api-restful/ L. A. Manrique Arias, “Prototipo de IoT para el monitoreo del cultivo de tomate en un huerto urbano mediante una aplicación móvil usando Ionic,” Jun. 2024, Accessed: Oct. 30, 2024. [Online]. Available: http://dspace.unach.edu.ec/handle/51000/13215 “Ionic Framework: el líder en desarrollo de aplicaciones multiplataforma.” Accessed: Oct. 30, 2024. [Online]. Available: https://ionicframework.com/ “¿Qué es la criptografía? | IBM.” Accessed: Oct. 29, 2024. [Online]. Available: https://www.ibm.com/mx-es/topics/cryptography A. Mauricio, C. Mejía, A. Jhon, and T. Chacón, “Prototipo de cifrado híbrido combinando los métodos de encriptación AES y RSA, implementado sobre una red Grid.,” 2019. Accessed: Aug. 22, 2024. [Online]. Available: http://hdl.handle.net/11349/22405 “The WebSocket API (WebSockets) - Web APIs | MDN.” Accessed: Oct. 29, 2024. [Online]. Available: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API “Home • Angular.” Accessed: Aug. 22, 2024. [Online]. Available: https://angular.dev/ “TypeScript: JavaScript With Syntax For Types.” Accessed: Oct. 29, 2024. [Online]. Available: https://www.typescriptlang.org/ “Top 10 (Free) Angular Resources.” Accessed: Aug. 22, 2024. [Online]. Available: https://www.telerik.com/blogs/top-10-free-angular-resources “Estudio cuantitativo: definición, métodos, diseño y análisis.” Accessed: Oct. 31, 2024. [Online]. Available: https://www.compilatio.net/es/noticias/investigacion-cuantitativa “Java Persistence API (JPA) - Documentación de IBM.” Accessed: Oct. 31, 2024. [Online]. Available: https://www.ibm.com/docs/es/was-liberty/nd?topic=liberty-java-persistence-api-jpa “¿Qué es handshake en informática? | KeepCoding Bootcamps.” Accessed: Oct. 31, 2024. [Online]. Available: https://keepcoding.io/blog/que-es-handshake-en-informatica/ |
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/869d54a1-0e8d-4b85-9d1e-bd434a66218e/download https://repository.udistrital.edu.co/bitstreams/09bdde53-24d6-4bc7-b605-8081a93eb005/download https://repository.udistrital.edu.co/bitstreams/a1cb0676-59c7-4df8-83b2-9bb69b4b4863/download |
bitstream.checksum.fl_str_mv |
997daf6c648c962d566d7b082dac908d 5db0f6dcc37b92f1d1e0c666cd183900 337f5bc6806993dd4e8ba14883879aa1 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Universidad Distrital |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1837007132836233216 |
spelling |
Giraldo Ramos, Frank NixonRuiz Vega, Nicolas EnriqueGiraldo Ramos, Frank Nixon [0000-0001-8407-1831]2025-03-12T15:43:01Z2025-03-12T15:43:01Z2024-11-18http://hdl.handle.net/11349/93576El propósito de esta monografía es presentar un sistema de monitoreo basado en microcontroladores para proteger los datos sensibles mediante comunicaciones seguras. Enun contexto donde las amenazas cibernéticas son cada vez más frecuentes y sofisticadas, es fundamental contar con soluciones que garanticen la integridad y confidencialidad de la información, el método a presentar integra tecnologías como MicroPython y Java, junto con los framework Spring Boot y Angular, para desarrollar un entorno seguro que previeneaccesos no autorizados y ataques. El diseño del sistema se centra en la creación de un marco eficiente que no solo monitoriza los datos, sino que también facilita su gestión, permitiendo una respuesta rápida ante incidentes de seguridad al implementar algoritmos de cifrado y protocolos de comunicación seguros, se busca ofrecer una solución integral que minimice los riesgos de filtraciones y garantice la seguridad de los datos. Se incluye un sistema de monitoreo que se basa en microcontroladores, específicamente usando MicroPython, para adquisición de datos y transmisión de estos. Como estrategia se importó el algoritmo de codificación “AES-CTR” para codificar los datos y garantizar la confidencialidad de los datos durante la transmisión. También, se hace uso de WebSockets para garantizar una comunicación en tiempo real entre microcontrolador y servidor que provea seguridad a nivel del sistema. Este tipo de sistema no es solamente una manera eficiente de manejar los datos, sino un entorno robusto para prevenir accesos no autorizados y ataques cibernéticos. Los resultados obtenidos tras la implementación del sistema han sido motivadores. Las pruebas realizadas indican que la combinación de MicroPython y Spring Boot ha permitido una transmisión eficiente y segura de los datos. Se registró una reducción notable en la latencia de comunicación, lo que mejora la experiencia del usuario al monitorear datos en tiempo real. Además, el análisis de seguridad realizado con herramientas como Wireshark demostró que los datos cifrados son difícilmente inaccesibles para posibles atacantes. En conclusión, este trabajo no solo aborda las vulnerabilidades existentes en los sistemas embebidos, sino que también establece un modelo para futuras aplicaciones en entornos donde la seguridad de los datos es de gran importancia.The purpose of this monograph is to present a monitoring system based on microcontrollers to protect sensitive data through secure communications. In a context where cyber threats are increasingly frequent and sophisticated, it is essential to have solutions that ensure the integrity and confidentiality of information. The method to be presented integrates technologies such as MicroPython and Java, along with the Spring Boot and Angular frameworks, to develop a secure environment that prevents unauthorized access and attacks. The system design focuses on creating an efficient framework that not only monitors data but also facilitates its management, allowing for a quick response to security incidents by implementing encryption algorithms and secure communication protocols. The goal is to offer a comprehensive solution that minimizes the risks of data leaks and ensures data security. A monitoring system based on microcontrollers is included, specifically using MicroPython for data acquisition and transmission. As a strategy, the “AES-CTR” encoding algorithm was imported to encrypt the data and ensure confidentiality during transmission. Additionally, WebSockets are utilized to guarantee real-time communication between the microcontroller and server, providing system-level security. This type of system is not only an efficient way to handle data but also a robust environment to prevent unauthorized access and cyberattacks. The results obtained after implementing the system have been encouraging. Tests conducted indicate that the combination of MicroPython and Spring Boot has enabled efficient and secure data transmission. A notable reduction in communication latency was recorded, improving user experience when monitoring data in real-time. Furthermore, the security analysis performed with tools such as Wireshark demonstrated that encrypted data is hardly accessible to potential attackers. In conclusion, this work not only addresses existing vulnerabilities in embedded systems but also establishes a model for future applications in environments where data security is of great importance.pdfspaWebsocketMicrocontroladoresCifrado AES-CTRMicroPythonAngularSpring BootIngeniería en Control -- Tesis y disertaciones académicasWebSocketMicrocontrollersAES-CTR EncryptionMicroPythonAngularSpring BootSistema de transmisión de datos segura: integración de Micropython y Criptografía AES-CTRSecure data transmission system: integration of Micropython and AES-CTR CryptographybachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2“¿Qué es el cifrado AES? - Panda Security.” Accessed: Oct. 30, 2024. [Online]. Available: https://www.pandasecurity.com/es/mediacenter/cifrado-aes-guia/“El 61% de las empresas ya usan plataformas IoT a pesar de los riesgos de seguridad.” Accessed: Oct. 30, 2024. [Online]. Available: https://latam.kaspersky.com/about/press-releases/el-61-de-las-empresas-ya-usan-plataformas-iot-a-pesar-de-los-riesgos-de-seguridad?srsltid=AfmBOop5IeY-“MicroPython - Python for microcontrollers.” Accessed: Aug. 22, 2024. [Online]. Available: https://micropython.org/C. Capera Cuellar, “Análisis de rendimiendo de la función criptográfica Hash sobre sistemas embebidos de 32 bits,” 2024. Accessed: Oct. 30, 2024. [Online]. Available: http://hdl.handle.net/11349/39155“TLS de MBed.” Accessed: Oct. 30, 2024. [Online]. Available: https://www.trustedfirmware.org/projects/mbed-tls/Y. Díaz Gutiérrez and J. M. Cueva Lovelle, “Analysis of the Cryptographic Hash function in block chains and its impact on the security of data transactions,” Redes de Ingeniería, vol. 9, no. 2, pp. 82–87, Dec. 2019, doi: 10.14483/2248762X.14383.“Definición del algoritmo SHA-256 - Ayuda de Google Ads.” Accessed: Oct. 30, 2024. [Online]. Available: https://support.google.com/google-ads/answer/9004655?hl=es-419A. Brayan et al., “Diseño e implementación de una herramienta para el procesamiento, almacenamiento y visualización de datos de telemetría de la aeronave Calima T-90 de la Fuerza Aérea Colombiana.,” 2022. Accessed: Oct. 30, 2024. [Online]. Available: http://hdl.handle.net/11349/30113“Sistema de información basado en la tecnología blockchain aplicado a la gestión de la información de la historia clínica de usuarios.” Accessed: Oct. 30, 2024. [Online]. Available: https://repository.udistrital.edu.co/items/804c6927-74f3-4710-a946-e53b3abc139c“Repositorio Institucional de la Universidad Politécnica Salesiana: Diseño de un guante con sensores de flexibilidad que traducen letras del abecedario del lenguaje sordo mudo utilizando Micropython.” Accessed: Oct. 30, 2024. [Online]. Available: https://dspace.ups.edu.ec/handle/123456789/21759R. L. Rivest, A. Shamir, and L. Adleman, “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems,” Commun ACM, vol. 21, no. 2, pp. 120–126, Feb. 1978, doi: 10.1145/359340.359342R. Steven et al., “Sistema de información en línea para la gestión de usuarios del parqueadero de la Universidad Distrital Francisco José de Caldas sede tecnológica,” 2024. Accessed: Oct. 30, 2024. [Online]. Available: http://hdl.handle.net/11349/39318“What Is Java Spring Boot?. Java Spring Boot is a widely used… | by Dávid Lakatos | Medium.” Accessed: Apr. 27, 2024. [Online]. Available: https://medium.com/@lktsdvd/what-is-java-spring-boot-812dad38e574“Qué es una API REST (RESTful): cuáles son sus principios - Platzi.” Accessed: Oct. 30, 2024. [Online]. Available: https://platzi.com/clases/1638-api-rest/21611-que-significa-rest-y-que-es-una-api-restful/L. A. Manrique Arias, “Prototipo de IoT para el monitoreo del cultivo de tomate en un huerto urbano mediante una aplicación móvil usando Ionic,” Jun. 2024, Accessed: Oct. 30, 2024. [Online]. Available: http://dspace.unach.edu.ec/handle/51000/13215“Ionic Framework: el líder en desarrollo de aplicaciones multiplataforma.” Accessed: Oct. 30, 2024. [Online]. Available: https://ionicframework.com/“¿Qué es la criptografía? | IBM.” Accessed: Oct. 29, 2024. [Online]. Available: https://www.ibm.com/mx-es/topics/cryptographyA. Mauricio, C. Mejía, A. Jhon, and T. Chacón, “Prototipo de cifrado híbrido combinando los métodos de encriptación AES y RSA, implementado sobre una red Grid.,” 2019. Accessed: Aug. 22, 2024. [Online]. Available: http://hdl.handle.net/11349/22405“The WebSocket API (WebSockets) - Web APIs | MDN.” Accessed: Oct. 29, 2024. [Online]. Available: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API“Home • Angular.” Accessed: Aug. 22, 2024. [Online]. Available: https://angular.dev/“TypeScript: JavaScript With Syntax For Types.” Accessed: Oct. 29, 2024. [Online]. Available: https://www.typescriptlang.org/“Top 10 (Free) Angular Resources.” Accessed: Aug. 22, 2024. [Online]. Available: https://www.telerik.com/blogs/top-10-free-angular-resources“Estudio cuantitativo: definición, métodos, diseño y análisis.” Accessed: Oct. 31, 2024. [Online]. Available: https://www.compilatio.net/es/noticias/investigacion-cuantitativa“Java Persistence API (JPA) - Documentación de IBM.” Accessed: Oct. 31, 2024. [Online]. Available: https://www.ibm.com/docs/es/was-liberty/nd?topic=liberty-java-persistence-api-jpa“¿Qué es handshake en informática? | KeepCoding Bootcamps.” Accessed: Oct. 31, 2024. [Online]. Available: https://keepcoding.io/blog/que-es-handshake-en-informatica/LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/869d54a1-0e8d-4b85-9d1e-bd434a66218e/download997daf6c648c962d566d7b082dac908dMD52ORIGINALLicencia de Uso y Publicación.pdfLicencia de Uso y Publicación.pdfapplication/pdf236231https://repository.udistrital.edu.co/bitstreams/09bdde53-24d6-4bc7-b605-8081a93eb005/download5db0f6dcc37b92f1d1e0c666cd183900MD53RuizVegaNicolasEnrique2024.pdfRuizVegaNicolasEnrique2024.pdfapplication/pdf3735497https://repository.udistrital.edu.co/bitstreams/a1cb0676-59c7-4df8-83b2-9bb69b4b4863/download337f5bc6806993dd4e8ba14883879aa1MD5411349/93576oai:repository.udistrital.edu.co:11349/935762025-03-12 10:44:54.643open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK |