Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3
: tablas, figuras
- Autores:
-
Medina Aguirre, Francisco Alejandro
Cortés Osorio, Jimy Alexander
Quintero Vallejo, Hernán Alberto
- Tipo de recurso:
- Book
- Fecha de publicación:
- 2025
- Institución:
- Universidad Tecnológica de Pereira
- Repositorio:
- Repositorio Institucional UTP
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.utp.edu.co:11059/16478
- Acceso en línea:
- https://hdl.handle.net/11059/16478
https://repositorio.utp.edu.co/home
- Palabra clave:
- 620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería
2. Ingeniería y Tecnología::2K. Otras Ingenierías y Tecnologías
Robots programación
Python – Lenguaje de programación
Robótica
ODS 9: Industria, innovación e infraestructura. Construir infraestructuras resilientes, promover la industrialización inclusiva y sostenible y fomentar la innovación
- Rights
- openAccess
- License
- Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
| id |
UTP2_2005fb101d81023fea48dcc8427d52c9 |
|---|---|
| oai_identifier_str |
oai:repositorio.utp.edu.co:11059/16478 |
| network_acronym_str |
UTP2 |
| network_name_str |
Repositorio Institucional UTP |
| repository_id_str |
|
| dc.title.spa.fl_str_mv |
Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3 |
| title |
Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3 |
| spellingShingle |
Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3 620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería 2. Ingeniería y Tecnología::2K. Otras Ingenierías y Tecnologías Robots programación Python – Lenguaje de programación Robótica ODS 9: Industria, innovación e infraestructura. Construir infraestructuras resilientes, promover la industrialización inclusiva y sostenible y fomentar la innovación |
| title_short |
Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3 |
| title_full |
Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3 |
| title_fullStr |
Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3 |
| title_full_unstemmed |
Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3 |
| title_sort |
Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3 |
| dc.creator.fl_str_mv |
Medina Aguirre, Francisco Alejandro Cortés Osorio, Jimy Alexander Quintero Vallejo, Hernán Alberto |
| dc.contributor.author.none.fl_str_mv |
Medina Aguirre, Francisco Alejandro Cortés Osorio, Jimy Alexander Quintero Vallejo, Hernán Alberto |
| dc.subject.ddc.none.fl_str_mv |
620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería |
| topic |
620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería 2. Ingeniería y Tecnología::2K. Otras Ingenierías y Tecnologías Robots programación Python – Lenguaje de programación Robótica ODS 9: Industria, innovación e infraestructura. Construir infraestructuras resilientes, promover la industrialización inclusiva y sostenible y fomentar la innovación |
| dc.subject.ocde.none.fl_str_mv |
2. Ingeniería y Tecnología::2K. Otras Ingenierías y Tecnologías |
| dc.subject.proposal.spa.fl_str_mv |
Robots programación Python – Lenguaje de programación Robótica |
| dc.subject.ods.none.fl_str_mv |
ODS 9: Industria, innovación e infraestructura. Construir infraestructuras resilientes, promover la industrialización inclusiva y sostenible y fomentar la innovación |
| description |
: tablas, figuras |
| publishDate |
2025 |
| dc.date.accessioned.none.fl_str_mv |
2025-11-25T19:21:02Z |
| dc.date.available.none.fl_str_mv |
2025-11-25T19:21:02Z |
| dc.date.issued.none.fl_str_mv |
2025 |
| dc.type.none.fl_str_mv |
Libro |
| dc.type.version.none.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
| dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_2f33 |
| dc.type.content.none.fl_str_mv |
Text |
| dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/book |
| format |
http://purl.org/coar/resource_type/c_2f33 |
| status_str |
acceptedVersion |
| dc.identifier.citation.spa.fl_str_mv |
Medina Aguirre, F, Cortés Osorio, J y Quintero Vallejo, H. (2025). Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3. Universidad Tecnológica de Pereira. Disponible en: https://hdl.handle.net/11059/16478 |
| dc.identifier.uri.none.fl_str_mv |
https://hdl.handle.net/11059/16478 |
| dc.identifier.eisbn.none.fl_str_mv |
978-628-501-054-5 |
| dc.identifier.instname.none.fl_str_mv |
Universidad Tecnológica de Pereira |
| dc.identifier.reponame.none.fl_str_mv |
Repositorio Universidad Tecnológica de Pereira |
| dc.identifier.repourl.none.fl_str_mv |
https://repositorio.utp.edu.co/home |
| identifier_str_mv |
Medina Aguirre, F, Cortés Osorio, J y Quintero Vallejo, H. (2025). Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3. Universidad Tecnológica de Pereira. Disponible en: https://hdl.handle.net/11059/16478 978-628-501-054-5 Universidad Tecnológica de Pereira Repositorio Universidad Tecnológica de Pereira |
| url |
https://hdl.handle.net/11059/16478 https://repositorio.utp.edu.co/home |
| dc.language.iso.none.fl_str_mv |
spa |
| language |
spa |
| dc.relation.ispartofseries.spa.fl_str_mv |
Colección Textos Académicos |
| dc.relation.references.none.fl_str_mv |
Aliane, N., & Bemposta, S. (2008). Una experiencia de aprendizaje basado en proyectos en una asignatura de robótica. IEEE-RITA, 3(2), 71–76. Botelho, S. S. C., Braz, L. G., & Rodrigues, R. N. (2012). Exploring creativity and sociability with an accessible educational robotic kit. RiE, 55–60. http://www.silviacb.c3.furg.br Bradski, G., & Kaehler, A. (2008). Learning OpenCV: Computer vision with the OpenCV library. O’Reilly Media. https://books.google. com.co/books?hl=es&lr=&id=seAgiOfu2EIC Bueno, P. M., Victoria, Y., & Fitzgerald, L. (2004). Aprendizaje basado en problemas. Theoria, 13, 145–157. Chavarría, M., & Saldaño, A. (2010). La robótica educativa como una innovativa interfaz educativa entre el alumno y una situación- problema. Didasc@lia: Didáctica y Educación, 2, 1–12. Coria Arreola, J. M. (2010). Aprendizaje por proyectos: Una metodología diferente. Revista e-FORMADORES. Cruz, J. A. G., Isusqui, J. C. P., Alvarez, V. M., Inga, C. V., Silva, M. O. C., & Villavicencio, I. E. S. (2023). Desafíos del aula invertida para la educación universitaria en América Latina. Editorial Mar Caribe de Josefrank. https://doi.org/10.31219/osf.io/teqkh da Silva Filgueira, M. G., & González González, C. S. (2017). PequeBot: Propuesta de un sistema ludificado de robótica educativa para la educación infantil. http://riull.ull.es/xmlui/handle/915/6677 Downey, A. B. (2012). Think Python (Vol. 1). O’Reilly Media. https://books.google.com.co/books?hl=es&lr=&id=1mZtP9H6OMQC Echeverría, V. L. (2022). Motivados por la robótica. Campo de Prácticas, 1(2), 69–81. Espejo Leupin, R. M. (2016). ¿Pedagogía activa o métodos activos? El caso del aprendizaje activo en la universidad. Revista Digital de Investigación en Docencia Universitaria, 16–27. https://doi. org/10.19083/ridu.10.456 Estruch, V., & Silva, J. (2006). Aprendizaje basado en proyectos en la carrera de Ingeniería Informática. Closas-Orcoyen. Fernández Martínez, M., García Sánchez, J.-N., Fuertes, A. de C., Redondo Fidalgo, R., & Arias Gundín, O. (2006). El aprendizaje basado en problemas: Revisión de estudios empíricos internacionales. Revista de Educación, 341, 397–418. García, J. M. (2015). Robótica educativa: La programación como parte de un proceso educativo. RED. Revista de Educación a Distancia, 46. http://www.um.es/ead/red/46 García, R., Traver, J. A., & Candela, I. (2019). Aprendizaje cooperativo: Fundamentos, características y técnicas (Vol. 2). Publicaciones ICCE. Gouaillier, D., Hugel, V., Blazevic, P., Kilner, C., Monceaux, J., Lafourcade, P., Marnier, B., Serre, J., & Maisonnier, B. (2009). Mechatronic design of NAO humanoid. In 2009 IEEE International Conference on Robotics and Automation (pp. 769–774). https:// doi.org/10.1109/ROBOT.2009.5152516 Gouws, L. A., Bradshaw, K., & Wentworth, P. (2013). Computational thinking in educational activities. In Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education (pp. 10–15). https://doi.org/10.1145/2462476.2466518 Karim, M. E., Lemaignan, S., & Mondada, F. (2015). A review: Can robots reshape K-12 STEM education? In 2015 IEEE International Workshop on Advanced Robotics and Its Social Impacts (ARSO) (pp. 1–8). https://doi.org/10.1109/ARSO.2015.7428217 Keyser, M. W. (2000). Active learning and cooperative learning: Understanding the difference and using both styles effectively. Research Strategies, 17(1), 35–44. https://doi.org/10.1016/S0734- 3310(00)00022-7 Kolmos, A., Rodríguez, F. J., & Guerra, A. (2017). Aprendizaje basado en problemas en ingeniería: Teoría y práctica (F. Rodríguez-Mesa, Trad.). Aalborg University Press. Ledo, M. V., Rivera Michelena, N., Cao, N. N., Morales Suárez, R., Niurka, M., & Vidal, V. (2016). Aula invertida, nueva estrategia didáctica. Educación Médica Superior, 30(3). LEGO Education. (2016). Guía de uso: Lego Mindstorms Education EV3 (Versión 1.2.2, Vol. 3). The LEGO Group. LEGO Education. (2021a). LEGO® MINDSTORMS® EV3 31313. https:// www.lego.com/es-es/product/lego-mindstorms-ev3-31313 LEGO Education. (2021b, 5 de febrero). MINDSTORMS Education EV3 Retirement FAQs. https://community.legoeducation.com/ blogs/36/95 Liu, M., & Pedersen, S. (1998). The effect of being hypermedia designers on elementary school students’ motivation and learning of design. López, G., & Acuña, S. (2011). Aprendizaje cooperativo en el aula. Inventio, 7(14), 29–38. https://inventio.uaem.mx/index.php/ inventio/article/view/422 Lott, S., & Banffy, R. (2022). Functional Python programming. https:// books.google.com.co/books?hl=es&lr=&id=iWWkEAAAQBAJ Raspberry Pi Ltd. (2012). Raspberry Pi. https://www.raspberrypi.com/ Lutz, M. (2013). Learning Python. O’Reilly Media. Martí, J. A., Heydrich, M., Rojas, M., & Hernández, A. (2010). Aprendizaje basado en proyectos: Una experiencia de innovación docente. Revista Universidad EAFIT, 46, 11–21. Microsoft. (2020). Visual Studio Code. https://code.visualstudio.com/ Moscaiza Torres, V. A. (2022). Robótica educativa en el aprendizaje cooperativo del área de Matemática en niños y niñas del sexto grado de educación primaria (Tesis de Maestría). Universidad Nacional de Huancavelica. Oliver, J., Toledo, R., Pujol, J., Sorribes, J., & Valderrama, E. (2009). Un ABP basado en la robótica para las ingenierías informáticas. JENUI 2009, 331–338. OpenCV Team. (2008). OpenCV. https://opencv.org/ Python, P. (2025, enero 2). PEP 8 – Style Guide for Python Code. https://peps.python.org/pep-0008/ Python Software Foundation. (2021, enero 30). Python Brochure Vol. 1. https://brochure.getpython.info/ Quigley, M., Gerkey, B., Conley, K., Faust, J., Foote, T., Leibs, J., Berger, E., Wheeler, R., & Ng, A. (2009). ROS: An open-source robot operating system. ICRA Workshop on Open Source Software, 3(3.2), 5–11. Quintero Vallejo, H. A., & Prado Martínez, W. A. (2020). Evaluación de la pertinencia del aprendizaje basado en proyectos (ABP)... (Tesis de Maestría). Universidad Tecnológica de Pereira. Richardson, M., Donat, W., & Wallace, S. (2021). Getting started with Raspberry Pi (4.a ed.). Make Community. Robot Framework Foundation. (2025). Robot Framework. https:// robotframework.org/ Robotics, O. (2021). ROS - Robot Operating System. https://www.ros. org/ Rollins, M. (2014). Beginning LEGO MINDSTORMS EV3. Apress. Ruiz Vicente, F. (2017). Diseño de proyectos STEAM a partir del currículum actual de Educación Primaria.... Universidad CEU Cardenal Herrera. Seshan, S., & EV3Lessons. (2020). Robot designs. https://ev3lessons. com/en/robotdesigns.html SoftBank Robotics America. (2025). NAO: Personal Robot Teaching Assistant. https://us.softbankrobotics.com/nao Stellman, A., & Greene, J. (2024). Head First C# (5.a ed.). O’Reilly Media. Sweigart, A. (2020). Automate the boring stuff with Python. No Starch Press. Trujillo, F. (2016). Aprendizaje basado en proyectos: Infantil, primaria y secundaria (1.a ed.). Ministerio de Educación. Valk, L. (2021). Pybricks. https://pybricks.com/ Valk, L., & Pybricks. (2022). Pybricks. https://pybricks.com/ Vergara Ramírez, J. J. (2015). El aprendizaje basado en proyectos (ABP), paso a paso (Vol. 10). E. M. Ediciones. |
| dc.rights.license.none.fl_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0) |
| dc.rights.uri.none.fl_str_mv |
https://creativecommons.org/licenses/by-nc-nd/4.0/ |
| dc.rights.coar.none.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
| dc.rights.accessrights.none.fl_str_mv |
info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0) https://creativecommons.org/licenses/by-nc-nd/4.0/ http://purl.org/coar/access_right/c_abf2 |
| eu_rights_str_mv |
openAccess |
| dc.format.extent.none.fl_str_mv |
193 páginas |
| dc.format.mimetype.none.fl_str_mv |
application/pdf |
| dc.coverage.region.none.fl_str_mv |
Pereira, Risaralda, Colombia |
| dc.publisher.none.fl_str_mv |
Universidad Tecnológica de Pereira |
| dc.publisher.place.none.fl_str_mv |
Pereira |
| publisher.none.fl_str_mv |
Universidad Tecnológica de Pereira |
| institution |
Universidad Tecnológica de Pereira |
| bitstream.url.fl_str_mv |
https://repositorio.utp.edu.co/bitstreams/452239ed-0595-47d8-b821-80d4535b5e0c/download https://repositorio.utp.edu.co/bitstreams/a742586b-7820-49f6-8779-505521e72414/download https://repositorio.utp.edu.co/bitstreams/52e43e16-faea-4970-9f1f-af8a771de5d6/download https://repositorio.utp.edu.co/bitstreams/a7342b52-96c8-431e-b3a0-ee7c053df4a8/download https://repositorio.utp.edu.co/bitstreams/e160ce36-5559-454e-9b7f-f2e4130d9c65/download |
| bitstream.checksum.fl_str_mv |
7bee140bc04a11cf52696d1b54b5fe02 73a5432e0b76442b22b026844140d683 a316f2305cc4a9b29a286020434af8e7 87047859c3255739c478e01f193e557a 19f670910115acd55da3327173a66247 |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
| repository.name.fl_str_mv |
Repositorio de la Universidad Tecnológica de Pereira |
| repository.mail.fl_str_mv |
bdigital@metabiblioteca.com |
| _version_ |
1851051521648623616 |
| spelling |
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)Manifiesto (Manifestamos) en este documento la voluntad de autorizar a la Biblioteca Jorge Roa Martínez de la Universidad Tecnológica de Pereira la publicación en el Repositorio institucional (http://biblioteca.utp.edu.co), la versión electrónica de la OBRA titulada: La Universidad Tecnológica de Pereira, entidad académica sin ánimo de lucro, queda por lo tanto facultada para ejercer plenamente la autorización anteriormente descrita en su actividad ordinaria de investigación, docencia y publicación. La autorización otorgada se ajusta a lo que establece la Ley 23 de 1982. Con todo, en mi (nuestra) condición de autor (es) me (nos) reservo (reservamos) los derechos morales de la OBRA antes citada con arreglo al artículo 30 de la Ley 23 de 1982. En concordancia suscribo (suscribimos) este documento en el momento mismo que hago (hacemos) entrega de mi (nuestra) OBRA a la Biblioteca “Jorge Roa Martínez” de la Universidad Tecnológica de Pereira. Manifiesto (manifestamos) que la OBRA objeto de la presente autorizaciónhttps://creativecommons.org/licenses/by-nc-nd/4.0/http://purl.org/coar/access_right/c_abf2info:eu-repo/semantics/openAccessMedina Aguirre, Francisco AlejandroCortés Osorio, Jimy AlexanderQuintero Vallejo, Hernán Alberto2025-11-25T19:21:02Z2025-11-25T19:21:02Z2025Medina Aguirre, F, Cortés Osorio, J y Quintero Vallejo, H. (2025). Programación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3. Universidad Tecnológica de Pereira. Disponible en: https://hdl.handle.net/11059/16478https://hdl.handle.net/11059/16478978-628-501-054-5Universidad Tecnológica de PereiraRepositorio Universidad Tecnológica de Pereirahttps://repositorio.utp.edu.co/home: tablas, figurasProgramación en Python para Robótica: de la teoría a la práctica con LEGO MINDSTORMS® EV3 invita a descubrir el mundo de la robótica educativa. Con un estilo accesible y ejemplos paso a paso, guía al lector desde los fundamentos de Python hasta la programación de robots capaces de percibir y responder a su entorno mediante sensores y actuadores. Cada capítulo propone retos progresivos que estimulan la experimentación y el diseño de soluciones prácticas, consolidando conceptos de programación, control y automatización. Al mismo tiempo, fomenta la creatividad, la innovación y el pensamiento crítico, elementos esenciales en la formación de estudiantes y profesionales en la era digital. Más que un manual técnico, este libro es una herramienta didáctica y motivadora, ideal para estudiantes, docentes y entusiastas que buscan fortalecer sus habilidades en programación y pensamiento computacional. Su enfoque práctico convierte el aprendizaje en una experiencia dinámica, donde teoría y práctica se encuentran para dar vida a proyectos robóticos.Introducción 13 Capítulo1: Programación del Robot LEGO ® MIDSTORN ® EV3 17 ¿Qué es la Programación? -- 19 ¿Qué es Python? -- 20 ¿Qué es LEGO® MINDSTORMS EV3? -- 22 Aplicaciones de Python en robótica 26 Capítulo 2: Configuración del Ambiente del Desarrollo 33 Software requerido -- 35 Configuración e instalación del LEGO® MINDSTORMS EV3 con PyBricks -- 37 ¿Qué es PyBricks? 37 Preparación del entorno de desarrollo -- 38 Configurando comunicación EV3 y PC -- 39 Conexión USB -- 39 Conexión Bluetooth -- 40 Conexión Wifi 40 El firmware del EV3 -- 41 Firmware oficial LEGO® MINDSTORMS® EV3 (versión 1.10E o superior) -- 41 EV3 MicroPython (versión 1.2 o superior) 41 Pasos para configurar y ejecutar un programa usando Pybricks -- 42 Recursos de aprendizaje PyBricks -- 44 Capítulo 3: Fundamentos del Python -- 47 Sintaxis Básica 50 Variables y Tipos de Datos -- 51 Operadores y Expresiones de Asignación -- 52 Estructuras de Control -- 56 Condicional if. 56 Ciclo for. 57 Ciclo while -- 58 Instrucciones break, continue, pass -- 58 Funciones 59 ¿Qué es una función? -- 59 Sintaxis de funciones 60 Parametrizando funciones -- 60 Valores por defecto -- 61 Devolviendo valores -- 61 Tipos de funciones Python -- 62 Clases y Objetos -- 65 ¿Qué es una clase? -- 65 Creando objetos -- 66 Atributos 66 Métodos 66 Bibliotecas en Python 68 Tipos de bibliotecas en Python 69 Bibliotecas estándar de Python -- 69 Bibliotecas de terceros en Python 70 Cómo instalar bibliotecas de terceros en Python 70 Ventajas de las bibliotecas en Python 70 Capítulo 4: Programación del LEGO® MINDSTORMS® EV3 Usando la Biblioteca 73 El ladrillo del LEGO® MINDSTORMS® EV3 -- 75 Componentes del EV3 -- 76 Motores del LEGO® MINDSTORMS® EV3 -- 78 Tipos de motores EV3 79 Control de motores usando la biblioteca Pybricks 80 Consideraciones de diseño 81 La clase Motor de la biblioteca PyBricks -- 83 Sensores EV3 85 Sensor de color 86 Especificaciones -- 87 Programación con PyBricks 88 Sensor de ultrasonido 90 Especificaciones -- 91 Programación con PyBricks 91 Sensor Giroscópico del LEGO® MINDSTORMS® EV3 94 Especificaciones -- 96 Programación en PyBricks 97 Sensor Táctil del LEGO® MINDSTORMS® EV3 97 Especificaciones -- 98 Programación en PyBricks 99 Sensor infrarrojo -- 100 Especificaciones Técnicas 101 Programación en PyBricks 102 Pantalla LCD del LEGO® MINDSTORMS® EV3 104 Especificaciones -- 104 Programación con PyBricks 104 Bocina e Indicadores Sonoros del LEGO® MINDSTORMS® EV3 107 Especificaciones -- 107 Programación con PyBricks 108 Leds del Lego Mindstorms EV3 -- 110 Especificaciones -- 110 Programación en PyBricks 110 Capítulo 5: Proyectos Prácticos -- 115 Programa para Recorrido de 10 Cuadros 118 Programa para Recorrido en Espiral 120 Programa de Recorrido Aleatorio 122 Programa con Sensor de Tacto 124 Programa con Sensor Ultrasónico -- 126 Programa con El Sensor Infrarrojo -- 128 Programa Seguidor de Línea 129 Capítulo 6: Testing y Depuración de Programas con Pybricks 135 Probando Programas -- 137 Errores comunes y soluciones -- 139 Conclusiones 142 Glosario -- 143 Capítulo 7: Una Referencia Pedagógica para la Enseñanza de la Robótica -- 147 Algunas técnicas de aprendizaje activo -- 151 Aprendizaje Basado en Problemas (ABP) -- 152 Aprendizaje cooperativo 153 Flipped Classroom o Aula Invertida 156 Aprendizaje basado en proyectos (ABP) 157 Una propuesta de ABP usando el robot LEGO® MINDSTORMS® EV3 -- 164 Propuesta ABP en su fase de planificación 166 Propuesta de evaluación 170 Anexos 173 Bibliografía -- 202 Autores -- 209193 páginasapplication/pdfspaUniversidad Tecnológica de PereiraPereiraColección Textos AcadémicosAliane, N., & Bemposta, S. (2008). Una experiencia de aprendizaje basado en proyectos en una asignatura de robótica. IEEE-RITA, 3(2), 71–76.Botelho, S. S. C., Braz, L. G., & Rodrigues, R. N. (2012). Exploring creativity and sociability with an accessible educational robotic kit. RiE, 55–60. http://www.silviacb.c3.furg.brBradski, G., & Kaehler, A. (2008). Learning OpenCV: Computer vision with the OpenCV library. O’Reilly Media. https://books.google. com.co/books?hl=es&lr=&id=seAgiOfu2EICBueno, P. M., Victoria, Y., & Fitzgerald, L. (2004). Aprendizaje basado en problemas. Theoria, 13, 145–157.Chavarría, M., & Saldaño, A. (2010). La robótica educativa como una innovativa interfaz educativa entre el alumno y una situación- problema. Didasc@lia: Didáctica y Educación, 2, 1–12.Coria Arreola, J. M. (2010). Aprendizaje por proyectos: Una metodología diferente. Revista e-FORMADORES.Cruz, J. A. G., Isusqui, J. C. P., Alvarez, V. M., Inga, C. V., Silva, M. O. C., & Villavicencio, I. E. S. (2023). Desafíos del aula invertida para la educación universitaria en América Latina. Editorial Mar Caribe de Josefrank. https://doi.org/10.31219/osf.io/teqkhda Silva Filgueira, M. G., & González González, C. S. (2017). PequeBot: Propuesta de un sistema ludificado de robótica educativa para la educación infantil. http://riull.ull.es/xmlui/handle/915/6677Downey, A. B. (2012). Think Python (Vol. 1). O’Reilly Media. https://books.google.com.co/books?hl=es&lr=&id=1mZtP9H6OMQCEcheverría, V. L. (2022). Motivados por la robótica. Campo de Prácticas, 1(2), 69–81.Espejo Leupin, R. M. (2016). ¿Pedagogía activa o métodos activos? El caso del aprendizaje activo en la universidad. Revista Digital de Investigación en Docencia Universitaria, 16–27. https://doi. org/10.19083/ridu.10.456Estruch, V., & Silva, J. (2006). Aprendizaje basado en proyectos en la carrera de Ingeniería Informática. Closas-Orcoyen.Fernández Martínez, M., García Sánchez, J.-N., Fuertes, A. de C., Redondo Fidalgo, R., & Arias Gundín, O. (2006). El aprendizaje basado en problemas: Revisión de estudios empíricos internacionales. Revista de Educación, 341, 397–418.García, J. M. (2015). Robótica educativa: La programación como parte de un proceso educativo. RED. Revista de Educación a Distancia, 46. http://www.um.es/ead/red/46García, R., Traver, J. A., & Candela, I. (2019). Aprendizaje cooperativo: Fundamentos, características y técnicas (Vol. 2). Publicaciones ICCE.Gouaillier, D., Hugel, V., Blazevic, P., Kilner, C., Monceaux, J., Lafourcade, P., Marnier, B., Serre, J., & Maisonnier, B. (2009). Mechatronic design of NAO humanoid. In 2009 IEEE International Conference on Robotics and Automation (pp. 769–774). https:// doi.org/10.1109/ROBOT.2009.5152516Gouws, L. A., Bradshaw, K., & Wentworth, P. (2013). Computational thinking in educational activities. In Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education (pp. 10–15). https://doi.org/10.1145/2462476.2466518Karim, M. E., Lemaignan, S., & Mondada, F. (2015). A review: Can robots reshape K-12 STEM education? In 2015 IEEE International Workshop on Advanced Robotics and Its Social Impacts (ARSO) (pp. 1–8). https://doi.org/10.1109/ARSO.2015.7428217Keyser, M. W. (2000). Active learning and cooperative learning: Understanding the difference and using both styles effectively. Research Strategies, 17(1), 35–44. https://doi.org/10.1016/S0734- 3310(00)00022-7Kolmos, A., Rodríguez, F. J., & Guerra, A. (2017). Aprendizaje basado en problemas en ingeniería: Teoría y práctica (F. Rodríguez-Mesa, Trad.). Aalborg University Press.Ledo, M. V., Rivera Michelena, N., Cao, N. N., Morales Suárez, R., Niurka, M., & Vidal, V. (2016). Aula invertida, nueva estrategia didáctica. Educación Médica Superior, 30(3).LEGO Education. (2016). Guía de uso: Lego Mindstorms Education EV3 (Versión 1.2.2, Vol. 3). The LEGO Group.LEGO Education. (2021a). LEGO® MINDSTORMS® EV3 31313. https:// www.lego.com/es-es/product/lego-mindstorms-ev3-31313LEGO Education. (2021b, 5 de febrero). MINDSTORMS Education EV3 Retirement FAQs. https://community.legoeducation.com/ blogs/36/95Liu, M., & Pedersen, S. (1998). The effect of being hypermedia designers on elementary school students’ motivation and learning of design.López, G., & Acuña, S. (2011). Aprendizaje cooperativo en el aula. Inventio, 7(14), 29–38. https://inventio.uaem.mx/index.php/ inventio/article/view/422Lott, S., & Banffy, R. (2022). Functional Python programming. https:// books.google.com.co/books?hl=es&lr=&id=iWWkEAAAQBAJRaspberry Pi Ltd. (2012). Raspberry Pi. https://www.raspberrypi.com/Lutz, M. (2013). Learning Python. O’Reilly Media.Martí, J. A., Heydrich, M., Rojas, M., & Hernández, A. (2010). Aprendizaje basado en proyectos: Una experiencia de innovación docente. Revista Universidad EAFIT, 46, 11–21.Microsoft. (2020). Visual Studio Code. https://code.visualstudio.com/Moscaiza Torres, V. A. (2022). Robótica educativa en el aprendizaje cooperativo del área de Matemática en niños y niñas del sexto grado de educación primaria (Tesis de Maestría). Universidad Nacional de Huancavelica.Oliver, J., Toledo, R., Pujol, J., Sorribes, J., & Valderrama, E. (2009). Un ABP basado en la robótica para las ingenierías informáticas. JENUI 2009, 331–338.OpenCV Team. (2008). OpenCV. https://opencv.org/Python, P. (2025, enero 2). PEP 8 – Style Guide for Python Code. https://peps.python.org/pep-0008/Python Software Foundation. (2021, enero 30). Python Brochure Vol. 1. https://brochure.getpython.info/Quigley, M., Gerkey, B., Conley, K., Faust, J., Foote, T., Leibs, J., Berger,E., Wheeler, R., & Ng, A. (2009). ROS: An open-source robot operating system. ICRA Workshop on Open Source Software, 3(3.2), 5–11.Quintero Vallejo, H. A., & Prado Martínez, W. A. (2020). Evaluación de la pertinencia del aprendizaje basado en proyectos (ABP)... (Tesis de Maestría). Universidad Tecnológica de Pereira.Richardson, M., Donat, W., & Wallace, S. (2021). Getting started with Raspberry Pi (4.a ed.). Make Community.Robot Framework Foundation. (2025). Robot Framework. https:// robotframework.org/Robotics, O. (2021). ROS - Robot Operating System. https://www.ros. org/Rollins, M. (2014). Beginning LEGO MINDSTORMS EV3. Apress.Ruiz Vicente, F. (2017). Diseño de proyectos STEAM a partir del currículum actual de Educación Primaria.... Universidad CEU Cardenal Herrera.Seshan, S., & EV3Lessons. (2020). Robot designs. https://ev3lessons. com/en/robotdesigns.htmlSoftBank Robotics America. (2025). NAO: Personal Robot Teaching Assistant. https://us.softbankrobotics.com/naoStellman, A., & Greene, J. (2024). Head First C# (5.a ed.). O’Reilly Media.Sweigart, A. (2020). Automate the boring stuff with Python. No Starch Press.Trujillo, F. (2016). Aprendizaje basado en proyectos: Infantil, primaria y secundaria (1.a ed.). Ministerio de Educación.Valk, L. (2021). Pybricks. https://pybricks.com/Valk, L., & Pybricks. (2022). Pybricks. https://pybricks.com/Vergara Ramírez, J. J. (2015). El aprendizaje basado en proyectos (ABP), paso a paso (Vol. 10). E. M. Ediciones.620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería2. Ingeniería y Tecnología::2K. Otras Ingenierías y TecnologíasRobots programaciónPython – Lenguaje de programaciónRobóticaODS 9: Industria, innovación e infraestructura. Construir infraestructuras resilientes, promover la industrialización inclusiva y sostenible y fomentar la innovaciónProgramación en Python para robótica: de la Teoría a la Práctica con LEGO MINDSTORMS EV3Libroinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_2f33Textinfo:eu-repo/semantics/bookPereira, Risaralda, ColombiaComunidad académica y científica, Estudiantes, Docentes, InvestigadoresPublicationORIGINALProgramacion_en_Python_para_Robotica_De_la_Teoria_a_la_Practica_con_LEGO_EV3.pdfProgramacion_en_Python_para_Robotica_De_la_Teoria_a_la_Practica_con_LEGO_EV3.pdfapplication/pdf20712450https://repositorio.utp.edu.co/bitstreams/452239ed-0595-47d8-b821-80d4535b5e0c/download7bee140bc04a11cf52696d1b54b5fe02MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-815543https://repositorio.utp.edu.co/bitstreams/a742586b-7820-49f6-8779-505521e72414/download73a5432e0b76442b22b026844140d683MD52THUMBNAILImagen1.pngimage/png672497https://repositorio.utp.edu.co/bitstreams/52e43e16-faea-4970-9f1f-af8a771de5d6/downloada316f2305cc4a9b29a286020434af8e7MD53Programacion_en_Python_para_Robotica_De_la_Teoria_a_la_Practica_con_LEGO_EV3.pdf.jpgProgramacion_en_Python_para_Robotica_De_la_Teoria_a_la_Practica_con_LEGO_EV3.pdf.jpgGenerated Thumbnailimage/jpeg6757https://repositorio.utp.edu.co/bitstreams/a7342b52-96c8-431e-b3a0-ee7c053df4a8/download87047859c3255739c478e01f193e557aMD55TEXTProgramacion_en_Python_para_Robotica_De_la_Teoria_a_la_Practica_con_LEGO_EV3.pdf.txtProgramacion_en_Python_para_Robotica_De_la_Teoria_a_la_Practica_con_LEGO_EV3.pdf.txtExtracted texttext/plain102211https://repositorio.utp.edu.co/bitstreams/e160ce36-5559-454e-9b7f-f2e4130d9c65/download19f670910115acd55da3327173a66247MD5411059/16478oai:repositorio.utp.edu.co:11059/164782025-11-26 05:01:23.302https://creativecommons.org/licenses/by-nc-nd/4.0/Manifiesto (Manifestamos) en este documento la voluntad de autorizar a la Biblioteca Jorge Roa Martínez de la Universidad Tecnológica de Pereira la publicación en el Repositorio institucional (http://biblioteca.utp.edu.co), la versión electrónica de la OBRA titulada: La Universidad Tecnológica de Pereira, entidad académica sin ánimo de lucro, queda por lo tanto facultada para ejercer plenamente la autorización anteriormente descrita en su actividad ordinaria de investigación, docencia y publicación. La autorización otorgada se ajusta a lo que establece la Ley 23 de 1982. Con todo, en mi (nuestra) condición de autor (es) me (nos) reservo (reservamos) los derechos morales de la OBRA antes citada con arreglo al artículo 30 de la Ley 23 de 1982. En concordancia suscribo (suscribimos) este documento en el momento mismo que hago (hacemos) entrega de mi (nuestra) OBRA a la Biblioteca “Jorge Roa Martínez” de la Universidad Tecnológica de Pereira. Manifiesto (manifestamos) que la OBRA objeto de la presente autorizaciónopen.accesshttps://repositorio.utp.edu.coRepositorio de la Universidad Tecnológica de Pereirabdigital@metabiblioteca.comPHA+TEEgT0JSQSAoVEFMIFkgQ09NTyBTRSBERUZJTkUgTcOBUyBBREVMQU5URSkgU0UgT1RPUkdBIEJBSk8gTE9TIFRFUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgUMOaQkxJQ0EgREUgQ1JFQVRJVkUgQ09NTU9OUyAo4oCcTFBDQ+KAnSBPIOKAnExJQ0VOQ0lB4oCdKS4gTEEgT0JSQSBFU1TDgSBQUk9URUdJREEgUE9SIERFUkVDSE9TIERFIEFVVE9SIFkvVSBPVFJBUyBMRVlFUyBBUExJQ0FCTEVTLiBRVUVEQSBQUk9ISUJJRE8gQ1VBTFFVSUVSIFVTTyBRVUUgU0UgSEFHQSBERSBMQSBPQlJBIFFVRSBOTyBDVUVOVEUgQ09OIExBIEFVVE9SSVpBQ0nDk04gUEVSVElORU5URSBERSBDT05GT1JNSURBRCBDT04gTE9TIFTDiVJNSU5PUyBERSBFU1RBIExJQ0VOQ0lBIFkgREUgTEEgTEVZIERFIERFUkVDSE8gREUgQVVUT1IuPC9wPgo8cD5NRURJQU5URSBFTCBFSkVSQ0lDSU8gREUgQ1VBTFFVSUVSQSBERSBMT1MgREVSRUNIT1MgUVVFIFNFIE9UT1JHQU4gRU4gRVNUQSBMSUNFTkNJQSwgVVNURUQgQUNFUFRBIFkgQUNVRVJEQSBRVUVEQVIgT0JMSUdBRE8gRU4gTE9TIFRFUk1JTk9TIFFVRSBTRSBTRcORQUxBTiBFTiBFTExBLiBFTCBMSUNFTkNJQU5URSBDT05DRURFIEEgVVNURUQgTE9TIERFUkVDSE9TIENPTlRFTklET1MgRU4gRVNUQSBMSUNFTkNJQSBDT05ESUNJT05BRE9TIEEgTEEgQUNFUFRBQ0nDk04gREUgU1VTIFRFUk1JTk9TIFkgQ09ORElDSU9ORVMuPC9wPgo8b2wgdHlwZT0iMSI+CiAgPGxpPgogICAgRGVmaW5pY2lvbmVzCiAgICA8b2wgdHlwZT1hPgogICAgICA8bGk+T2JyYSBDb2xlY3RpdmEgZXMgdW5hIG9icmEsIHRhbCBjb21vIHVuYSBwdWJsaWNhY2nDs24gcGVyacOzZGljYSwgdW5hIGFudG9sb2fDrWEsIG8gdW5hIGVuY2ljbG9wZWRpYSwgZW4gbGEgcXVlIGxhIG9icmEgZW4gc3UgdG90YWxpZGFkLCBzaW4gbW9kaWZpY2FjacOzbiBhbGd1bmEsIGp1bnRvIGNvbiB1biBncnVwbyBkZSBvdHJhcyBjb250cmlidWNpb25lcyBxdWUgY29uc3RpdHV5ZW4gb2JyYXMgc2VwYXJhZGFzIGUgaW5kZXBlbmRpZW50ZXMgZW4gc8OtIG1pc21hcywgc2UgaW50ZWdyYW4gZW4gdW4gdG9kbyBjb2xlY3Rpdm8uIFVuYSBPYnJhIHF1ZSBjb25zdGl0dXllIHVuYSBvYnJhIGNvbGVjdGl2YSBubyBzZSBjb25zaWRlcmFyw6EgdW5hIE9icmEgRGVyaXZhZGEgKGNvbW8gc2UgZGVmaW5lIGFiYWpvKSBwYXJhIGxvcyBwcm9ww7NzaXRvcyBkZSBlc3RhIGxpY2VuY2lhLiBhcXVlbGxhIHByb2R1Y2lkYSBwb3IgdW4gZ3J1cG8gZGUgYXV0b3JlcywgZW4gcXVlIGxhIE9icmEgc2UgZW5jdWVudHJhIHNpbiBtb2RpZmljYWNpb25lcywganVudG8gY29uIHVuYSBjaWVydGEgY2FudGlkYWQgZGUgb3RyYXMgY29udHJpYnVjaW9uZXMsIHF1ZSBjb25zdGl0dXllbiBlbiBzw60gbWlzbW9zIHRyYWJham9zIHNlcGFyYWRvcyBlIGluZGVwZW5kaWVudGVzLCBxdWUgc29uIGludGVncmFkb3MgYWwgdG9kbyBjb2xlY3Rpdm8sIHRhbGVzIGNvbW8gcHVibGljYWNpb25lcyBwZXJpw7NkaWNhcywgYW50b2xvZ8OtYXMgbyBlbmNpY2xvcGVkaWFzLjwvbGk+CiAgICAgIDxsaT5PYnJhIERlcml2YWRhIHNpZ25pZmljYSB1bmEgb2JyYSBiYXNhZGEgZW4gbGEgb2JyYSBvYmpldG8gZGUgZXN0YSBsaWNlbmNpYSBvIGVuIMOpc3RhIHkgb3RyYXMgb2JyYXMgcHJlZXhpc3RlbnRlcywgdGFsZXMgY29tbyB0cmFkdWNjaW9uZXMsIGFycmVnbG9zIG11c2ljYWxlcywgZHJhbWF0aXphY2lvbmVzLCDigJxmaWNjaW9uYWxpemFjaW9uZXPigJ0sIHZlcnNpb25lcyBwYXJhIGNpbmUsIOKAnGdyYWJhY2lvbmVzIGRlIHNvbmlkb+KAnSwgcmVwcm9kdWNjaW9uZXMgZGUgYXJ0ZSwgcmVzw7ptZW5lcywgY29uZGVuc2FjaW9uZXMsIG8gY3VhbHF1aWVyIG90cmEgZW4gbGEgcXVlIGxhIG9icmEgcHVlZGEgc2VyIHRyYW5zZm9ybWFkYSwgY2FtYmlhZGEgbyBhZGFwdGFkYSwgZXhjZXB0byBhcXVlbGxhcyBxdWUgY29uc3RpdHV5YW4gdW5hIG9icmEgY29sZWN0aXZhLCBsYXMgcXVlIG5vIHNlcsOhbiBjb25zaWRlcmFkYXMgdW5hIG9icmEgZGVyaXZhZGEgcGFyYSBlZmVjdG9zIGRlIGVzdGEgbGljZW5jaWEuIChQYXJhIGV2aXRhciBkdWRhcywgZW4gZWwgY2FzbyBkZSBxdWUgbGEgT2JyYSBzZWEgdW5hIGNvbXBvc2ljacOzbiBtdXNpY2FsIG8gdW5hIGdyYWJhY2nDs24gc29ub3JhLCBwYXJhIGxvcyBlZmVjdG9zIGRlIGVzdGEgTGljZW5jaWEgbGEgc2luY3Jvbml6YWNpw7NuIHRlbXBvcmFsIGRlIGxhIE9icmEgY29uIHVuYSBpbWFnZW4gZW4gbW92aW1pZW50byBzZSBjb25zaWRlcmFyw6EgdW5hIE9icmEgRGVyaXZhZGEgcGFyYSBsb3MgZmluZXMgZGUgZXN0YSBsaWNlbmNpYSkuPC9saT4KICAgICAgPGxpPkxpY2VuY2lhbnRlLCBlcyBlbCBpbmRpdmlkdW8gbyBsYSBlbnRpZGFkIHRpdHVsYXIgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIHF1ZSBvZnJlY2UgbGEgT2JyYSBlbiBjb25mb3JtaWRhZCBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuPC9saT4KICAgICAgPGxpPkF1dG9yIG9yaWdpbmFsLCBlcyBlbCBpbmRpdmlkdW8gcXVlIGNyZcOzIGxhIE9icmEuPC9saT4KICAgICAgPGxpPk9icmEsIGVzIGFxdWVsbGEgb2JyYSBzdXNjZXB0aWJsZSBkZSBwcm90ZWNjacOzbiBwb3IgZWwgcsOpZ2ltZW4gZGUgRGVyZWNobyBkZSBBdXRvciB5IHF1ZSBlcyBvZnJlY2lkYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgbGljZW5jaWE8L2xpPgogICAgICA8bGk+VXN0ZWQsIGVzIGVsIGluZGl2aWR1byBvIGxhIGVudGlkYWQgcXVlIGVqZXJjaXRhIGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgYWwgYW1wYXJvIGRlIGVzdGEgTGljZW5jaWEgeSBxdWUgY29uIGFudGVyaW9yaWRhZCBubyBoYSB2aW9sYWRvIGxhcyBjb25kaWNpb25lcyBkZSBsYSBtaXNtYSByZXNwZWN0byBhIGxhIE9icmEsIG8gcXVlIGhheWEgb2J0ZW5pZG8gYXV0b3JpemFjacOzbiBleHByZXNhIHBvciBwYXJ0ZSBkZWwgTGljZW5jaWFudGUgcGFyYSBlamVyY2VyIGxvcyBkZXJlY2hvcyBhbCBhbXBhcm8gZGUgZXN0YSBMaWNlbmNpYSBwZXNlIGEgdW5hIHZpb2xhY2nDs24gYW50ZXJpb3IuPC9saT4KICAgIDwvb2w+CiAgPC9saT4KICA8YnIvPgogIDxsaT4KICAgIERlcmVjaG9zIGRlIFVzb3MgSG9ucmFkb3MgeSBleGNlcGNpb25lcyBMZWdhbGVzLgogICAgPHA+TmFkYSBlbiBlc3RhIExpY2VuY2lhIHBvZHLDoSBzZXIgaW50ZXJwcmV0YWRvIGNvbW8gdW5hIGRpc21pbnVjacOzbiwgbGltaXRhY2nDs24gbyByZXN0cmljY2nDs24gZGUgbG9zIGRlcmVjaG9zIGRlcml2YWRvcyBkZWwgdXNvIGhvbnJhZG8geSBvdHJhcyBsaW1pdGFjaW9uZXMgbyBleGNlcGNpb25lcyBhIGxvcyBkZXJlY2hvcyBkZWwgYXV0b3IgYmFqbyBlbCByw6lnaW1lbiBsZWdhbCB2aWdlbnRlIG8gZGVyaXZhZG8gZGUgY3VhbHF1aWVyIG90cmEgbm9ybWEgcXVlIHNlIGxlIGFwbGlxdWUuPC9wPgogIDwvbGk+CiAgPGxpPgogICAgQ29uY2VzacOzbiBkZSBsYSBMaWNlbmNpYS4KICAgIDxwPkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246PC9wPgogICAgPG9sIHR5cGU9ImEiPgogICAgICA8bGk+UmVwcm9kdWNpciBsYSBPYnJhLCBpbmNvcnBvcmFyIGxhIE9icmEgZW4gdW5hIG8gbcOhcyBPYnJhcyBDb2xlY3RpdmFzLCB5IHJlcHJvZHVjaXIgbGEgT2JyYSBpbmNvcnBvcmFkYSBlbiBsYXMgT2JyYXMgQ29sZWN0aXZhcy48L2xpPgogICAgICA8bGk+RGlzdHJpYnVpciBjb3BpYXMgbyBmb25vZ3JhbWFzIGRlIGxhcyBPYnJhcywgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYSwgaW5jbHV5w6luZG9sYXMgY29tbyBpbmNvcnBvcmFkYXMgZW4gT2JyYXMgQ29sZWN0aXZhcywgc2Vnw7puIGNvcnJlc3BvbmRhLjwvbGk+CiAgICAgIDxsaT5EaXN0cmlidWlyIGNvcGlhcyBkZSBsYXMgT2JyYXMgRGVyaXZhZGFzIHF1ZSBzZSBnZW5lcmVuLCBleGhpYmlybGFzIHDDumJsaWNhbWVudGUsIGVqZWN1dGFybGFzIHDDumJsaWNhbWVudGUgeS9vIHBvbmVybGFzIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhLjwvbGk+CiAgICA8L29sPgogICAgPHA+TG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyBubyBvdG9yZ2Fkb3MgZXhwcmVzYW1lbnRlIHBvciBlbCBMaWNlbmNpYW50ZSBxdWVkYW4gcG9yIGVzdGUgbWVkaW8gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbyBwZXJvIHNpbiBsaW1pdGFyc2UgYSBhcXVlbGxvcyBxdWUgc2UgbWVuY2lvbmFuIGVuIGxhcyBzZWNjaW9uZXMgNChkKSB5IDQoZSkuPC9wPgogIDwvbGk+CiAgPGJyLz4KICA8bGk+CiAgICBSZXN0cmljY2lvbmVzLgogICAgPHA+TGEgbGljZW5jaWEgb3RvcmdhZGEgZW4gbGEgYW50ZXJpb3IgU2VjY2nDs24gMyBlc3TDoSBleHByZXNhbWVudGUgc3VqZXRhIHkgbGltaXRhZGEgcG9yIGxhcyBzaWd1aWVudGVzIHJlc3RyaWNjaW9uZXM6PC9wPgogICAgPG9sIHR5cGU9ImEiPgogICAgICA8bGk+VXN0ZWQgcHVlZGUgZGlzdHJpYnVpciwgZXhoaWJpciBww7pibGljYW1lbnRlLCBlamVjdXRhciBww7pibGljYW1lbnRlLCBvIHBvbmVyIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhIGxhIE9icmEgc8OzbG8gYmFqbyBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYSwgeSBVc3RlZCBkZWJlIGluY2x1aXIgdW5hIGNvcGlhIGRlIGVzdGEgbGljZW5jaWEgbyBkZWwgSWRlbnRpZmljYWRvciBVbml2ZXJzYWwgZGUgUmVjdXJzb3MgZGUgbGEgbWlzbWEgY29uIGNhZGEgY29waWEgZGUgbGEgT2JyYSBxdWUgZGlzdHJpYnV5YSwgZXhoaWJhIHDDumJsaWNhbWVudGUsIGVqZWN1dGUgcMO6YmxpY2FtZW50ZSBvIHBvbmdhIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhLiBObyBlcyBwb3NpYmxlIG9mcmVjZXIgbyBpbXBvbmVyIG5pbmd1bmEgY29uZGljacOzbiBzb2JyZSBsYSBPYnJhIHF1ZSBhbHRlcmUgbyBsaW1pdGUgbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEgbyBlbCBlamVyY2ljaW8gZGUgbG9zIGRlcmVjaG9zIGRlIGxvcyBkZXN0aW5hdGFyaW9zIG90b3JnYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gTm8gZXMgcG9zaWJsZSBzdWJsaWNlbmNpYXIgbGEgT2JyYS4gVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RvcyB0b2RvcyBsb3MgYXZpc29zIHF1ZSBoYWdhbiByZWZlcmVuY2lhIGEgZXN0YSBMaWNlbmNpYSB5IGEgbGEgY2zDoXVzdWxhIGRlIGxpbWl0YWNpw7NuIGRlIGdhcmFudMOtYXMuIFVzdGVkIG5vIHB1ZWRlIGRpc3RyaWJ1aXIsIGV4aGliaXIgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSwgbyBwb25lciBhIGRpc3Bvc2ljacOzbiBww7pibGljYSBsYSBPYnJhIGNvbiBhbGd1bmEgbWVkaWRhIHRlY25vbMOzZ2ljYSBxdWUgY29udHJvbGUgZWwgYWNjZXNvIG8gbGEgdXRpbGl6YWNpw7NuIGRlIGVsbGEgZGUgdW5hIGZvcm1hIHF1ZSBzZWEgaW5jb25zaXN0ZW50ZSBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuIExvIGFudGVyaW9yIHNlIGFwbGljYSBhIGxhIE9icmEgaW5jb3Jwb3JhZGEgYSB1bmEgT2JyYSBDb2xlY3RpdmEsIHBlcm8gZXN0byBubyBleGlnZSBxdWUgbGEgT2JyYSBDb2xlY3RpdmEgYXBhcnRlIGRlIGxhIG9icmEgbWlzbWEgcXVlZGUgc3VqZXRhIGEgbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEuIFNpIFVzdGVkIGNyZWEgdW5hIE9icmEgQ29sZWN0aXZhLCBwcmV2aW8gYXZpc28gZGUgY3VhbHF1aWVyIExpY2VuY2lhbnRlIGRlYmUsIGVuIGxhIG1lZGlkYSBkZSBsbyBwb3NpYmxlLCBlbGltaW5hciBkZSBsYSBPYnJhIENvbGVjdGl2YSBjdWFscXVpZXIgcmVmZXJlbmNpYSBhIGRpY2hvIExpY2VuY2lhbnRlIG8gYWwgQXV0b3IgT3JpZ2luYWwsIHNlZ8O6biBsbyBzb2xpY2l0YWRvIHBvciBlbCBMaWNlbmNpYW50ZSB5IGNvbmZvcm1lIGxvIGV4aWdlIGxhIGNsw6F1c3VsYSA0KGMpLjwvbGk+CiAgICAgIDxsaT5Vc3RlZCBubyBwdWVkZSBlamVyY2VyIG5pbmd1bm8gZGUgbG9zIGRlcmVjaG9zIHF1ZSBsZSBoYW4gc2lkbyBvdG9yZ2Fkb3MgZW4gbGEgU2VjY2nDs24gMyBwcmVjZWRlbnRlIGRlIG1vZG8gcXVlIGVzdMOpbiBwcmluY2lwYWxtZW50ZSBkZXN0aW5hZG9zIG8gZGlyZWN0YW1lbnRlIGRpcmlnaWRvcyBhIGNvbnNlZ3VpciB1biBwcm92ZWNobyBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYS4gRWwgaW50ZXJjYW1iaW8gZGUgbGEgT2JyYSBwb3Igb3RyYXMgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZGVyZWNob3MgZGUgYXV0b3IsIHlhIHNlYSBhIHRyYXbDqXMgZGUgdW4gc2lzdGVtYSBwYXJhIGNvbXBhcnRpciBhcmNoaXZvcyBkaWdpdGFsZXMgKGRpZ2l0YWwgZmlsZS1zaGFyaW5nKSBvIGRlIGN1YWxxdWllciBvdHJhIG1hbmVyYSBubyBzZXLDoSBjb25zaWRlcmFkbyBjb21vIGVzdGFyIGRlc3RpbmFkbyBwcmluY2lwYWxtZW50ZSBvIGRpcmlnaWRvIGRpcmVjdGFtZW50ZSBhIGNvbnNlZ3VpciB1biBwcm92ZWNobyBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYSwgc2llbXByZSBxdWUgbm8gc2UgcmVhbGljZSB1biBwYWdvIG1lZGlhbnRlIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBlbiByZWxhY2nDs24gY29uIGVsIGludGVyY2FtYmlvIGRlIG9icmFzIHByb3RlZ2lkYXMgcG9yIGVsIGRlcmVjaG8gZGUgYXV0b3IuPC9saT4KICAgICAgPGxpPlNpIHVzdGVkIGRpc3RyaWJ1eWUsIGV4aGliZSBww7pibGljYW1lbnRlLCBlamVjdXRhIHDDumJsaWNhbWVudGUgbyBlamVjdXRhIHDDumJsaWNhbWVudGUgZW4gZm9ybWEgZGlnaXRhbCBsYSBPYnJhIG8gY3VhbHF1aWVyIE9icmEgRGVyaXZhZGEgdSBPYnJhIENvbGVjdGl2YSwgVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RhIHRvZGEgbGEgaW5mb3JtYWNpw7NuIGRlIGRlcmVjaG8gZGUgYXV0b3IgZGUgbGEgT2JyYSB5IHByb3BvcmNpb25hciwgZGUgZm9ybWEgcmF6b25hYmxlIHNlZ8O6biBlbCBtZWRpbyBvIG1hbmVyYSBxdWUgVXN0ZWQgZXN0w6kgdXRpbGl6YW5kbzogKGkpIGVsIG5vbWJyZSBkZWwgQXV0b3IgT3JpZ2luYWwgc2kgZXN0w6EgcHJvdmlzdG8gKG8gc2V1ZMOzbmltbywgc2kgZnVlcmUgYXBsaWNhYmxlKSwgeS9vIChpaSkgZWwgbm9tYnJlIGRlIGxhIHBhcnRlIG8gbGFzIHBhcnRlcyBxdWUgZWwgQXV0b3IgT3JpZ2luYWwgeS9vIGVsIExpY2VuY2lhbnRlIGh1YmllcmVuIGRlc2lnbmFkbyBwYXJhIGxhIGF0cmlidWNpw7NuICh2LmcuLCB1biBpbnN0aXR1dG8gcGF0cm9jaW5hZG9yLCBlZGl0b3JpYWwsIHB1YmxpY2FjacOzbikgZW4gbGEgaW5mb3JtYWNpw7NuIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZWwgTGljZW5jaWFudGUsIHTDqXJtaW5vcyBkZSBzZXJ2aWNpb3MgbyBkZSBvdHJhcyBmb3JtYXMgcmF6b25hYmxlczsgZWwgdMOtdHVsbyBkZSBsYSBPYnJhIHNpIGVzdMOhIHByb3Zpc3RvOyBlbiBsYSBtZWRpZGEgZGUgbG8gcmF6b25hYmxlbWVudGUgZmFjdGlibGUgeSwgc2kgZXN0w6EgcHJvdmlzdG8sIGVsIElkZW50aWZpY2Fkb3IgVW5pZm9ybWUgZGUgUmVjdXJzb3MgKFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcikgcXVlIGVsIExpY2VuY2lhbnRlIGVzcGVjaWZpY2EgcGFyYSBzZXIgYXNvY2lhZG8gY29uIGxhIE9icmEsIHNhbHZvIHF1ZSB0YWwgVVJJIG5vIHNlIHJlZmllcmEgYSBsYSBub3RhIHNvYnJlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBvIGEgbGEgaW5mb3JtYWNpw7NuIHNvYnJlIGVsIGxpY2VuY2lhbWllbnRvIGRlIGxhIE9icmE7IHkgZW4gZWwgY2FzbyBkZSB1bmEgT2JyYSBEZXJpdmFkYSwgYXRyaWJ1aXIgZWwgY3LDqWRpdG8gaWRlbnRpZmljYW5kbyBlbCB1c28gZGUgbGEgT2JyYSBlbiBsYSBPYnJhIERlcml2YWRhICh2LmcuLCAiVHJhZHVjY2nDs24gRnJhbmNlc2EgZGUgbGEgT2JyYSBkZWwgQXV0b3IgT3JpZ2luYWwsIiBvICJHdWnDs24gQ2luZW1hdG9ncsOhZmljbyBiYXNhZG8gZW4gbGEgT2JyYSBvcmlnaW5hbCBkZWwgQXV0b3IgT3JpZ2luYWwiKS4gVGFsIGNyw6lkaXRvIHB1ZWRlIHNlciBpbXBsZW1lbnRhZG8gZGUgY3VhbHF1aWVyIGZvcm1hIHJhem9uYWJsZTsgZW4gZWwgY2Fzbywgc2luIGVtYmFyZ28sIGRlIE9icmFzIERlcml2YWRhcyB1IE9icmFzIENvbGVjdGl2YXMsIHRhbCBjcsOpZGl0byBhcGFyZWNlcsOhLCBjb21vIG3DrW5pbW8sIGRvbmRlIGFwYXJlY2UgZWwgY3LDqWRpdG8gZGUgY3VhbHF1aWVyIG90cm8gYXV0b3IgY29tcGFyYWJsZSB5IGRlIHVuYSBtYW5lcmEsIGFsIG1lbm9zLCB0YW4gZGVzdGFjYWRhIGNvbW8gZWwgY3LDqWRpdG8gZGUgb3RybyBhdXRvciBjb21wYXJhYmxlLjwvbGk+CiAgICAgIDxsaT4KICAgICAgICBQYXJhIGV2aXRhciB0b2RhIGNvbmZ1c2nDs24sIGVsIExpY2VuY2lhbnRlIGFjbGFyYSBxdWUsIGN1YW5kbyBsYSBvYnJhIGVzIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbDoKICAgICAgICA8b2wgdHlwZT0iaSI+CiAgICAgICAgICA8bGk+UmVnYWzDrWFzIHBvciBpbnRlcnByZXRhY2nDs24geSBlamVjdWNpw7NuIGJham8gbGljZW5jaWFzIGdlbmVyYWxlcy4gRWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSBhdXRvcml6YXIgbGEgZWplY3VjacOzbiBww7pibGljYSBvIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIHkgZGUgcmVjb2xlY3Rhciwgc2VhIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIFNBWUNPKSwgbGFzIHJlZ2Fsw61hcyBwb3IgbGEgZWplY3VjacOzbiBww7pibGljYSBvIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8gV2ViY2FzdCkgbGljZW5jaWFkYSBiYWpvIGxpY2VuY2lhcyBnZW5lcmFsZXMsIHNpIGxhIGludGVycHJldGFjacOzbiBvIGVqZWN1Y2nDs24gZGUgbGEgb2JyYSBlc3TDoSBwcmltb3JkaWFsbWVudGUgb3JpZW50YWRhIHBvciBvIGRpcmlnaWRhIGEgbGEgb2J0ZW5jacOzbiBkZSB1bmEgdmVudGFqYSBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYS48L2xpPgogICAgICAgICAgPGxpPlJlZ2Fsw61hcyBwb3IgRm9ub2dyYW1hcy4gRWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSByZWNvbGVjdGFyLCBpbmRpdmlkdWFsbWVudGUgbyBhIHRyYXbDqXMgZGUgdW5hIHNvY2llZGFkIGRlIGdlc3Rpw7NuIGNvbGVjdGl2YSBkZSBkZXJlY2hvcyBkZSBhdXRvciB5IGRlcmVjaG9zIGNvbmV4b3MgKHBvciBlamVtcGxvLCBsb3MgY29uc2FncmFkb3MgcG9yIGxhIFNBWUNPKSwgdW5hIGFnZW5jaWEgZGUgZGVyZWNob3MgbXVzaWNhbGVzIG8gYWxnw7puIGFnZW50ZSBkZXNpZ25hZG8sIGxhcyByZWdhbMOtYXMgcG9yIGN1YWxxdWllciBmb25vZ3JhbWEgcXVlIFVzdGVkIGNyZWUgYSBwYXJ0aXIgZGUgbGEgb2JyYSAo4oCcdmVyc2nDs24gY292ZXLigJ0pIHkgZGlzdHJpYnV5YSwgZW4gbG9zIHTDqXJtaW5vcyBkZWwgcsOpZ2ltZW4gZGUgZGVyZWNob3MgZGUgYXV0b3IsIHNpIGxhIGNyZWFjacOzbiBvIGRpc3RyaWJ1Y2nDs24gZGUgZXNhIHZlcnNpw7NuIGNvdmVyIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkZXN0aW5hZGEgbyBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuPC9saT4KICAgICAgICA8L29sPgogICAgICA8L2xpPgogICAgICA8bGk+R2VzdGnDs24gZGUgRGVyZWNob3MgZGUgQXV0b3Igc29icmUgSW50ZXJwcmV0YWNpb25lcyB5IEVqZWN1Y2lvbmVzIERpZ2l0YWxlcyAoV2ViQ2FzdGluZykuIFBhcmEgZXZpdGFyIHRvZGEgY29uZnVzacOzbiwgZWwgTGljZW5jaWFudGUgYWNsYXJhIHF1ZSwgY3VhbmRvIGxhIG9icmEgc2VhIHVuIGZvbm9ncmFtYSwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSBhdXRvcml6YXIgbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgKHBvciBlamVtcGxvLCB3ZWJjYXN0KSB5IGRlIHJlY29sZWN0YXIsIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIEFDSU5QUk8pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpLCBzdWpldGEgYSBsYXMgZGlzcG9zaWNpb25lcyBhcGxpY2FibGVzIGRlbCByw6lnaW1lbiBkZSBEZXJlY2hvIGRlIEF1dG9yLCBzaSBlc3RhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBlc3TDoSBwcmltb3JkaWFsbWVudGUgZGlyaWdpZGEgYSBvYnRlbmVyIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLjwvbGk+CiAgICA8L29sPgogIDwvbGk+CiAgPGJyLz4KICA8bGk+CiAgICBSZXByZXNlbnRhY2lvbmVzLCBHYXJhbnTDrWFzIHkgTGltaXRhY2lvbmVzIGRlIFJlc3BvbnNhYmlsaWRhZC4KICAgIDxwPkEgTUVOT1MgUVVFIExBUyBQQVJURVMgTE8gQUNPUkRBUkFOIERFIE9UUkEgRk9STUEgUE9SIEVTQ1JJVE8sIEVMIExJQ0VOQ0lBTlRFIE9GUkVDRSBMQSBPQlJBIChFTiBFTCBFU1RBRE8gRU4gRUwgUVVFIFNFIEVOQ1VFTlRSQSkg4oCcVEFMIENVQUzigJ0sIFNJTiBCUklOREFSIEdBUkFOVMONQVMgREUgQ0xBU0UgQUxHVU5BIFJFU1BFQ1RPIERFIExBIE9CUkEsIFlBIFNFQSBFWFBSRVNBLCBJTVBMw41DSVRBLCBMRUdBTCBPIENVQUxRVUlFUkEgT1RSQSwgSU5DTFVZRU5ETywgU0lOIExJTUlUQVJTRSBBIEVMTEFTLCBHQVJBTlTDjUFTIERFIFRJVFVMQVJJREFELCBDT01FUkNJQUJJTElEQUQsIEFEQVBUQUJJTElEQUQgTyBBREVDVUFDScOTTiBBIFBST1DDk1NJVE8gREVURVJNSU5BRE8sIEFVU0VOQ0lBIERFIElORlJBQ0NJw5NOLCBERSBBVVNFTkNJQSBERSBERUZFQ1RPUyBMQVRFTlRFUyBPIERFIE9UUk8gVElQTywgTyBMQSBQUkVTRU5DSUEgTyBBVVNFTkNJQSBERSBFUlJPUkVTLCBTRUFOIE8gTk8gREVTQ1VCUklCTEVTIChQVUVEQU4gTyBOTyBTRVIgRVNUT1MgREVTQ1VCSUVSVE9TKS4gQUxHVU5BUyBKVVJJU0RJQ0NJT05FUyBOTyBQRVJNSVRFTiBMQSBFWENMVVNJw5NOIERFIEdBUkFOVMONQVMgSU1QTMONQ0lUQVMsIEVOIENVWU8gQ0FTTyBFU1RBIEVYQ0xVU0nDk04gUFVFREUgTk8gQVBMSUNBUlNFIEEgVVNURUQuPC9wPgogIDwvbGk+CiAgPGJyLz4KICA8bGk+CiAgICBMaW1pdGFjacOzbiBkZSByZXNwb25zYWJpbGlkYWQuCiAgICA8cD5BIE1FTk9TIFFVRSBMTyBFWElKQSBFWFBSRVNBTUVOVEUgTEEgTEVZIEFQTElDQUJMRSwgRUwgTElDRU5DSUFOVEUgTk8gU0VSw4EgUkVTUE9OU0FCTEUgQU5URSBVU1RFRCBQT1IgREHDkU8gQUxHVU5PLCBTRUEgUE9SIFJFU1BPTlNBQklMSURBRCBFWFRSQUNPTlRSQUNUVUFMLCBQUkVDT05UUkFDVFVBTCBPIENPTlRSQUNUVUFMLCBPQkpFVElWQSBPIFNVQkpFVElWQSwgU0UgVFJBVEUgREUgREHDkU9TIE1PUkFMRVMgTyBQQVRSSU1PTklBTEVTLCBESVJFQ1RPUyBPIElORElSRUNUT1MsIFBSRVZJU1RPUyBPIElNUFJFVklTVE9TIFBST0RVQ0lET1MgUE9SIEVMIFVTTyBERSBFU1RBIExJQ0VOQ0lBIE8gREUgTEEgT0JSQSwgQVVOIENVQU5ETyBFTCBMSUNFTkNJQU5URSBIQVlBIFNJRE8gQURWRVJUSURPIERFIExBIFBPU0lCSUxJREFEIERFIERJQ0hPUyBEQcORT1MuIEFMR1VOQVMgTEVZRVMgTk8gUEVSTUlURU4gTEEgRVhDTFVTScOTTiBERSBDSUVSVEEgUkVTUE9OU0FCSUxJREFELCBFTiBDVVlPIENBU08gRVNUQSBFWENMVVNJw5NOIFBVRURFIE5PIEFQTElDQVJTRSBBIFVTVEVELjwvcD4KICA8L2xpPgogIDxici8+CiAgPGxpPgogICAgVMOpcm1pbm8uCiAgICA8b2wgdHlwZT0iYSI+CiAgICAgIDxsaT5Fc3RhIExpY2VuY2lhIHkgbG9zIGRlcmVjaG9zIG90b3JnYWRvcyBlbiB2aXJ0dWQgZGUgZWxsYSB0ZXJtaW5hcsOhbiBhdXRvbcOhdGljYW1lbnRlIHNpIFVzdGVkIGluZnJpbmdlIGFsZ3VuYSBjb25kaWNpw7NuIGVzdGFibGVjaWRhIGVuIGVsbGEuIFNpbiBlbWJhcmdvLCBsb3MgaW5kaXZpZHVvcyBvIGVudGlkYWRlcyBxdWUgaGFuIHJlY2liaWRvIE9icmFzIERlcml2YWRhcyBvIENvbGVjdGl2YXMgZGUgVXN0ZWQgZGUgY29uZm9ybWlkYWQgY29uIGVzdGEgTGljZW5jaWEsIG5vIHZlcsOhbiB0ZXJtaW5hZGFzIHN1cyBsaWNlbmNpYXMsIHNpZW1wcmUgcXVlIGVzdG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgc2lnYW4gY3VtcGxpZW5kbyDDrW50ZWdyYW1lbnRlIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhcyBsaWNlbmNpYXMuIExhcyBTZWNjaW9uZXMgMSwgMiwgNSwgNiwgNywgeSA4IHN1YnNpc3RpcsOhbiBhIGN1YWxxdWllciB0ZXJtaW5hY2nDs24gZGUgZXN0YSBMaWNlbmNpYS48L2xpPgogICAgICA8bGk+U3VqZXRhIGEgbGFzIGNvbmRpY2lvbmVzIHkgdMOpcm1pbm9zIGFudGVyaW9yZXMsIGxhIGxpY2VuY2lhIG90b3JnYWRhIGFxdcOtIGVzIHBlcnBldHVhIChkdXJhbnRlIGVsIHBlcsOtb2RvIGRlIHZpZ2VuY2lhIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZSBsYSBvYnJhKS4gTm8gb2JzdGFudGUgbG8gYW50ZXJpb3IsIGVsIExpY2VuY2lhbnRlIHNlIHJlc2VydmEgZWwgZGVyZWNobyBhIHB1YmxpY2FyIHkvbyBlc3RyZW5hciBsYSBPYnJhIGJham8gY29uZGljaW9uZXMgZGUgbGljZW5jaWEgZGlmZXJlbnRlcyBvIGEgZGVqYXIgZGUgZGlzdHJpYnVpcmxhIGVuIGxvcyB0w6lybWlub3MgZGUgZXN0YSBMaWNlbmNpYSBlbiBjdWFscXVpZXIgbW9tZW50bzsgZW4gZWwgZW50ZW5kaWRvLCBzaW4gZW1iYXJnbywgcXVlIGVzYSBlbGVjY2nDs24gbm8gc2Vydmlyw6EgcGFyYSByZXZvY2FyIGVzdGEgbGljZW5jaWEgbyBxdWUgZGViYSBzZXIgb3RvcmdhZGEgLCBiYWpvIGxvcyB0w6lybWlub3MgZGUgZXN0YSBsaWNlbmNpYSksIHkgZXN0YSBsaWNlbmNpYSBjb250aW51YXLDoSBlbiBwbGVubyB2aWdvciB5IGVmZWN0byBhIG1lbm9zIHF1ZSBzZWEgdGVybWluYWRhIGNvbW8gc2UgZXhwcmVzYSBhdHLDoXMuIExhIExpY2VuY2lhIHJldm9jYWRhIGNvbnRpbnVhcsOhIHNpZW5kbyBwbGVuYW1lbnRlIHZpZ2VudGUgeSBlZmVjdGl2YSBzaSBubyBzZSBsZSBkYSB0w6lybWlubyBlbiBsYXMgY29uZGljaW9uZXMgaW5kaWNhZGFzIGFudGVyaW9ybWVudGUuPC9saT4KICAgIDwvb2w+CiAgPC9saT4KICA8YnIvPgogIDxsaT4KICAgIFZhcmlvcy4KICAgIDxvbCB0eXBlPSJhIj4KICAgICAgPGxpPkNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuPC9saT4KICAgICAgPGxpPlNpIGFsZ3VuYSBkaXNwb3NpY2nDs24gZGUgZXN0YSBMaWNlbmNpYSByZXN1bHRhIGludmFsaWRhZGEgbyBubyBleGlnaWJsZSwgc2Vnw7puIGxhIGxlZ2lzbGFjacOzbiB2aWdlbnRlLCBlc3RvIG5vIGFmZWN0YXLDoSBuaSBsYSB2YWxpZGV6IG5pIGxhIGFwbGljYWJpbGlkYWQgZGVsIHJlc3RvIGRlIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEgeSwgc2luIGFjY2nDs24gYWRpY2lvbmFsIHBvciBwYXJ0ZSBkZSBsb3Mgc3VqZXRvcyBkZSBlc3RlIGFjdWVyZG8sIGFxdcOpbGxhIHNlIGVudGVuZGVyw6EgcmVmb3JtYWRhIGxvIG3DrW5pbW8gbmVjZXNhcmlvIHBhcmEgaGFjZXIgcXVlIGRpY2hhIGRpc3Bvc2ljacOzbiBzZWEgdsOhbGlkYSB5IGV4aWdpYmxlLjwvbGk+CiAgICAgIDxsaT5OaW5nw7puIHTDqXJtaW5vIG8gZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgc2UgZXN0aW1hcsOhIHJlbnVuY2lhZGEgeSBuaW5ndW5hIHZpb2xhY2nDs24gZGUgZWxsYSBzZXLDoSBjb25zZW50aWRhIGEgbWVub3MgcXVlIGVzYSByZW51bmNpYSBvIGNvbnNlbnRpbWllbnRvIHNlYSBvdG9yZ2FkbyBwb3IgZXNjcml0byB5IGZpcm1hZG8gcG9yIGxhIHBhcnRlIHF1ZSByZW51bmNpZSBvIGNvbnNpZW50YS48L2xpPgogICAgICA8bGk+RXN0YSBMaWNlbmNpYSByZWZsZWphIGVsIGFjdWVyZG8gcGxlbm8gZW50cmUgbGFzIHBhcnRlcyByZXNwZWN0byBhIGxhIE9icmEgYXF1w60gbGljZW5jaWFkYS4gTm8gaGF5IGFycmVnbG9zLCBhY3VlcmRvcyBvIGRlY2xhcmFjaW9uZXMgcmVzcGVjdG8gYSBsYSBPYnJhIHF1ZSBubyBlc3TDqW4gZXNwZWNpZmljYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gRWwgTGljZW5jaWFudGUgbm8gc2UgdmVyw6EgbGltaXRhZG8gcG9yIG5pbmd1bmEgZGlzcG9zaWNpw7NuIGFkaWNpb25hbCBxdWUgcHVlZGEgc3VyZ2lyIGVuIGFsZ3VuYSBjb211bmljYWNpw7NuIGVtYW5hZGEgZGUgVXN0ZWQuIEVzdGEgTGljZW5jaWEgbm8gcHVlZGUgc2VyIG1vZGlmaWNhZGEgc2luIGVsIGNvbnNlbnRpbWllbnRvIG11dHVvIHBvciBlc2NyaXRvIGRlbCBMaWNlbmNpYW50ZSB5IFVzdGVkLjwvbGk+CiAgICA8L29sPgogIDwvbGk+CiAgPGJyLz4KPC9vbD4K |
