Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste

Este trabajo describe una metodología a partir de la cual se construye un vehículo aéreo no tripulado de bajo coste desde cero. Con la metodología propuesta en el documento, se pueden observar las distintas partes que compone un Vehículo aéreo no tripulado tipo cuadricóptero, las consideraciones y e...

Full description

Autores:
Guarín Ramos, Miguel Felipe
Gantiva Sanchez, Lorena
Tipo de recurso:
Fecha de publicación:
2025
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/94355
Acceso en línea:
http://hdl.handle.net/11349/94355
Palabra clave:
UAV Cuadricoptero
Bajo coste
Servidor local
Diseño prototipo
Controlador PID
Filtro Kalman
Ingeniería Electrónica -- Tesis y disertaciones académicas
UAV Quadcopter
Low cost
Local server
PID Controller
Kalman filter
Prototype design
Rights
License
Abierto (Texto Completo)
id UDISTRITA2_0bd196f07a19d29e9b2db0a9268ec5dc
oai_identifier_str oai:repository.udistrital.edu.co:11349/94355
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.none.fl_str_mv Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste
dc.title.titleenglish.none.fl_str_mv Design and Implementation of a low-cost Unmanned Aerial Vehicle (UAV)
title Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste
spellingShingle Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste
UAV Cuadricoptero
Bajo coste
Servidor local
Diseño prototipo
Controlador PID
Filtro Kalman
Ingeniería Electrónica -- Tesis y disertaciones académicas
UAV Quadcopter
Low cost
Local server
PID Controller
Kalman filter
Prototype design
title_short Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste
title_full Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste
title_fullStr Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste
title_full_unstemmed Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste
title_sort Diseño e implementación de un vehículo aéreo no tripulado UAV de bajo coste
dc.creator.fl_str_mv Guarín Ramos, Miguel Felipe
Gantiva Sanchez, Lorena
dc.contributor.advisor.none.fl_str_mv Alzate Monroy, Marco Aurelio
dc.contributor.author.none.fl_str_mv Guarín Ramos, Miguel Felipe
Gantiva Sanchez, Lorena
dc.subject.none.fl_str_mv UAV Cuadricoptero
Bajo coste
Servidor local
Diseño prototipo
Controlador PID
Filtro Kalman
topic UAV Cuadricoptero
Bajo coste
Servidor local
Diseño prototipo
Controlador PID
Filtro Kalman
Ingeniería Electrónica -- Tesis y disertaciones académicas
UAV Quadcopter
Low cost
Local server
PID Controller
Kalman filter
Prototype design
dc.subject.lemb.none.fl_str_mv Ingeniería Electrónica -- Tesis y disertaciones académicas
dc.subject.keyword.none.fl_str_mv UAV Quadcopter
Low cost
Local server
PID Controller
Kalman filter
Prototype design
description Este trabajo describe una metodología a partir de la cual se construye un vehículo aéreo no tripulado de bajo coste desde cero. Con la metodología propuesta en el documento, se pueden observar las distintas partes que compone un Vehículo aéreo no tripulado tipo cuadricóptero, las consideraciones y el método de diseño de cada elemento. Se muestra un diseño de un sistema de potencia para gestionar motores coreless y reducir la distorsión en las etapas de energía del UAV. También se explora un diseño de una PCB y chasis que permiten conectar los elementos del UAV. Observamos el uso de sensores básicos para conseguir medidas de orientación en 3 grados de libertad y la altitud relativa, a partir tanto de la información de dichos sensores fusionadas por medio de Filtro de Kalman y otras técnicas adicionales. Se explora la cinemática y la dinámica completa de un cuadricóptero y se realiza un modelo aproximado y linealizado para controlar la orientación y altitud del UAV cuadricóptero por medio del empuje de los pares motor-hélice, por medio de un controlador PID. Finalmente, se explora la implementación de un servidor web local por medio de la ESP32 por la cual habrá conexión directa entre un dispositivo (celular o computadora) y el UAV. Este trabajo brinda los elementos básicos con los cuales se puede iniciar la construcción de un UAV y explora distintas disciplinas desde sus fundamentos para comprender la base de diseño e implementación de vehículos aéreos no tripulados.
publishDate 2025
dc.date.accessioned.none.fl_str_mv 2025-03-29T11:21:49Z
dc.date.available.none.fl_str_mv 2025-03-29T11:21:49Z
dc.date.created.none.fl_str_mv 2025-02-12
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.type.driver.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/94355
url http://hdl.handle.net/11349/94355
dc.language.iso.none.fl_str_mv spa
language spa
dc.relation.references.none.fl_str_mv S. Chapman, Máquinas eléctricas. Mc Graw Hill, 2012.
F. Fries, S. K. H. Win, E. Tang, J. E. Low, L. S. T. Win, P. V. y Alvarado, and S. Foong, “Design and implementation of a compact rotational speed and air flow sensor for unmanned aerial vehicles,” IEEE Sensors Journal, vol. 19, no. 22, pp. 10 298–10 307, 2019.
F. Yu, Y. Liu, L. Fan, L. Li, Y. Han, and G. Chen, “Design and implementa- tion of atmospheric multi-parameter sensor for uav-based aerosol distribution detection,” Sensor Review, vol. 37, no. 2, pp. 196–210, 2017.
H. Xiang and L. Tian, “Development of a low-cost agricultural remote sensing system based on an autonomous unmanned aerial vehicle (uav),” Biosystems engineering, vol. 108, no. 2, pp. 174–190, 2011.
E. D’Amato, V. A. Nardi, I. Notaro, and V. Scordamaglia, “A particle filte- ring approach for fault detection and isolation of uav imu sensors: Design, implementation and sensitivity analysis,” Sensors, vol. 21, no. 9, p. 3066, 2021.
B. Kada and Y. Ghazzawi, “Robust pid controller design for an uav flight control system,” in Proceedings of the World congress on Engineering and Computer Science, vol. 2, no. 1-6, 2011, pp. 1–6.
J.-H. Kim, S. Sukkarieh, and S. Wishart, “Real-time navigation, guidance, and control of a uav using low-cost sensors,” in Field and Service Robotics: Recent Advances in Reserch and Applications. Springer, 2006, pp. 299–309.
H. X. Pham, H. M. La, D. Feil-Seifer, and L. V. Nguyen, “Autonomous uav navigation using reinforcement learning,” arXiv preprint arXiv:1801.05086, 2018.
F. Jiang, F. Pourpanah, and Q. Hao, “Design, implementation, and evaluation of a neural-network-based quadcopter uav system,” IEEE Transactions on Industrial Electronics, vol. 67, no. 3, pp. 2076–2085, 2019.
Y.-C. Lai and W. O. Ting, “Design and implementation of an optimal energy control system for fixed-wing unmanned aerial vehicles,” Applied Sciences, vol. 6, no. 11, p. 369, 2016.
H. B. Torabi, M. Sadi, and A. Y. Varjani, “Solar power system for experi- mental unmanned aerial vehicle (uav); design and fabrication,” in 2011 2nd Power Electronics, Drive Systems and Technologies Conference. IEEE, 2011, pp. 129–134.
S. Zhang, Y. Zeng, and R. Zhang, “Cellular-enabled uav communica- tion: A connectivity-constrained trajectory optimization perspective,” IEEE Transactions on Communications, vol. 67, no. 3, pp. 2580–2604, 2018.
R. Amorim, H. Nguyen, P. Mogensen, I. Z. Kovács, J. Wigard, and T. B. Sørensen, “Radio channel modeling for uav communication over cellular net- works,” IEEE Wireless Communications Letters, vol. 6, no. 4, pp. 514–517, 2017.
B. Li, Z. Fei, and Y. Zhang, “Uav communications for 5g and beyond: Recent advances and future trends,” IEEE Internet of Things Journal, vol. 6, no. 2, pp. 2241–2263, 2018.
O. Tatale, N. Anekar, S. Phatak, and S. Sarkale, “Quadcopter: design, cons- truction and testing,” International Journal for Research in Engineering Ap- plication & Management, vol. 4, pp. 1–7, 2018.
M. Wierema, “Design, implementation and flight test of indoor navigation and control system for a quadrotor uav,” Master of Science in Aerospace Engineering at Delft University of Technology, 2008.
Q. Quan, Introduction to multicopter design and control. Springer, 2017.
H. Abyarjoo and R. al, “Implementing a sensor fusion algorithm for 3d orientation detection with inertial-magnetic sensors,” Re- searchGate, 2014. [Online]. Available: https://www.researchgate.net/ publication/264707640_Implementing_a_Sensor_Fusion_Algorithm_for_ 3D_Orientation_Detection_with_InertialMagnetic_Sensors
C. Aeronautics, “Repositorio de carbon aeronautics en github,” 2024, consultado el 30 de enero de 2025. [Online]. Available: https://github.com/ CarbonAeronautics
Adafruit, “Bmp180 barometer sensor datasheet,” 2024. [Online]. Available: https://cdn-shop.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf
C. A. Marín, Y. E. Gutiérrez et al., “Control and tridimensional simulation of the quanser qball 2 using ros and matlab,” in 2023 IEEE 6th Colombian Conference on Automatic Control (CCAC). IEEE, 2023, pp. 1–6.
K. Ogata, Ingeniería de control moderna. Pearson educación, 2003.
K. Ogata, Sistemas de control en tiempo discreto. Pearson educación, 1996.
A. S. Tanenbaum, Redes de computadoras. Pearson educación, 2003.
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
dc.publisher.none.fl_str_mv Universidad Distrital Francisco José de Caldas
publisher.none.fl_str_mv Universidad Distrital Francisco José de Caldas
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv https://repository.udistrital.edu.co/bitstreams/284bc8ee-a585-4e0e-8b86-dbb955fce88c/download
https://repository.udistrital.edu.co/bitstreams/8124d630-6ff3-47a9-a9a0-7c0c722c3b05/download
https://repository.udistrital.edu.co/bitstreams/80cec8b2-4a44-4c6e-9aff-b43068d96d0f/download
https://repository.udistrital.edu.co/bitstreams/1eb4c299-ab10-4271-a74d-4f1a3571120b/download
https://repository.udistrital.edu.co/bitstreams/a56cabec-f0a5-4b3d-b682-64f500e23621/download
bitstream.checksum.fl_str_mv fb57d3827fb70fbc005a3e6320b9447c
2bf465c57da261325383884d12659c03
997daf6c648c962d566d7b082dac908d
21a851f95a06f2f38ae00ba2a4843377
7d4f6a8a4dbb762bf7cf0cd8faa2cfea
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_ 1828164899275014144
spelling Alzate Monroy, Marco AurelioGuarín Ramos, Miguel FelipeGantiva Sanchez, Lorena2025-03-29T11:21:49Z2025-03-29T11:21:49Z2025-02-12http://hdl.handle.net/11349/94355Este trabajo describe una metodología a partir de la cual se construye un vehículo aéreo no tripulado de bajo coste desde cero. Con la metodología propuesta en el documento, se pueden observar las distintas partes que compone un Vehículo aéreo no tripulado tipo cuadricóptero, las consideraciones y el método de diseño de cada elemento. Se muestra un diseño de un sistema de potencia para gestionar motores coreless y reducir la distorsión en las etapas de energía del UAV. También se explora un diseño de una PCB y chasis que permiten conectar los elementos del UAV. Observamos el uso de sensores básicos para conseguir medidas de orientación en 3 grados de libertad y la altitud relativa, a partir tanto de la información de dichos sensores fusionadas por medio de Filtro de Kalman y otras técnicas adicionales. Se explora la cinemática y la dinámica completa de un cuadricóptero y se realiza un modelo aproximado y linealizado para controlar la orientación y altitud del UAV cuadricóptero por medio del empuje de los pares motor-hélice, por medio de un controlador PID. Finalmente, se explora la implementación de un servidor web local por medio de la ESP32 por la cual habrá conexión directa entre un dispositivo (celular o computadora) y el UAV. Este trabajo brinda los elementos básicos con los cuales se puede iniciar la construcción de un UAV y explora distintas disciplinas desde sus fundamentos para comprender la base de diseño e implementación de vehículos aéreos no tripulados.This document describes a methodology to construct a low-cost unmanned aerial vehicle from scratch. With the methodology proposed in this document, we can identify the different parts that a quadcopter unmanned aerial vehicle is composed of, its considerations, and the design method of each element. We show a coreless motor power management circuit and how it helps to reduce the distortion in the power supply stage of the UAV. Additionally, we explore the design of a PCB and chassis that allows connecting every element of the UAV. We observe the use of basic sensors to obtain 3 degrees of freedom of orientation and relative altitude, with the information from these sensors fused using a Kalman Filter and other techniques. We explore the complete kinematics and dynamics of a quadcopter and create a rough linearized model to control the orientation and altitude of the quadcopter UAV through the thrust of the motor-propeller system with a PID controller. Finally, we explore the implementation of a local web server using the ESP32, which enables a direct connection between a device (such as a smartphone or computer) and the UAV. This document provides the basic elements to get started in constructing a UAV and explores the different disciplines, from the fundamentals to understanding the basics of design and implementation of unmanned aerial vehicles.pdfspaUniversidad Distrital Francisco José de CaldasUAV CuadricopteroBajo costeServidor localDiseño prototipoControlador PIDFiltro KalmanIngeniería Electrónica -- Tesis y disertaciones académicasUAV QuadcopterLow costLocal serverPID ControllerKalman filterPrototype designDiseño e implementación de un vehículo aéreo no tripulado UAV de bajo costeDesign and Implementation of a low-cost Unmanned Aerial Vehicle (UAV)bachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2S. Chapman, Máquinas eléctricas. Mc Graw Hill, 2012.F. Fries, S. K. H. Win, E. Tang, J. E. Low, L. S. T. Win, P. V. y Alvarado, and S. Foong, “Design and implementation of a compact rotational speed and air flow sensor for unmanned aerial vehicles,” IEEE Sensors Journal, vol. 19, no. 22, pp. 10 298–10 307, 2019.F. Yu, Y. Liu, L. Fan, L. Li, Y. Han, and G. Chen, “Design and implementa- tion of atmospheric multi-parameter sensor for uav-based aerosol distribution detection,” Sensor Review, vol. 37, no. 2, pp. 196–210, 2017.H. Xiang and L. Tian, “Development of a low-cost agricultural remote sensing system based on an autonomous unmanned aerial vehicle (uav),” Biosystems engineering, vol. 108, no. 2, pp. 174–190, 2011.E. D’Amato, V. A. Nardi, I. Notaro, and V. Scordamaglia, “A particle filte- ring approach for fault detection and isolation of uav imu sensors: Design, implementation and sensitivity analysis,” Sensors, vol. 21, no. 9, p. 3066, 2021.B. Kada and Y. Ghazzawi, “Robust pid controller design for an uav flight control system,” in Proceedings of the World congress on Engineering and Computer Science, vol. 2, no. 1-6, 2011, pp. 1–6.J.-H. Kim, S. Sukkarieh, and S. Wishart, “Real-time navigation, guidance, and control of a uav using low-cost sensors,” in Field and Service Robotics: Recent Advances in Reserch and Applications. Springer, 2006, pp. 299–309.H. X. Pham, H. M. La, D. Feil-Seifer, and L. V. Nguyen, “Autonomous uav navigation using reinforcement learning,” arXiv preprint arXiv:1801.05086, 2018.F. Jiang, F. Pourpanah, and Q. Hao, “Design, implementation, and evaluation of a neural-network-based quadcopter uav system,” IEEE Transactions on Industrial Electronics, vol. 67, no. 3, pp. 2076–2085, 2019.Y.-C. Lai and W. O. Ting, “Design and implementation of an optimal energy control system for fixed-wing unmanned aerial vehicles,” Applied Sciences, vol. 6, no. 11, p. 369, 2016.H. B. Torabi, M. Sadi, and A. Y. Varjani, “Solar power system for experi- mental unmanned aerial vehicle (uav); design and fabrication,” in 2011 2nd Power Electronics, Drive Systems and Technologies Conference. IEEE, 2011, pp. 129–134.S. Zhang, Y. Zeng, and R. Zhang, “Cellular-enabled uav communica- tion: A connectivity-constrained trajectory optimization perspective,” IEEE Transactions on Communications, vol. 67, no. 3, pp. 2580–2604, 2018.R. Amorim, H. Nguyen, P. Mogensen, I. Z. Kovács, J. Wigard, and T. B. Sørensen, “Radio channel modeling for uav communication over cellular net- works,” IEEE Wireless Communications Letters, vol. 6, no. 4, pp. 514–517, 2017.B. Li, Z. Fei, and Y. Zhang, “Uav communications for 5g and beyond: Recent advances and future trends,” IEEE Internet of Things Journal, vol. 6, no. 2, pp. 2241–2263, 2018.O. Tatale, N. Anekar, S. Phatak, and S. Sarkale, “Quadcopter: design, cons- truction and testing,” International Journal for Research in Engineering Ap- plication & Management, vol. 4, pp. 1–7, 2018.M. Wierema, “Design, implementation and flight test of indoor navigation and control system for a quadrotor uav,” Master of Science in Aerospace Engineering at Delft University of Technology, 2008.Q. Quan, Introduction to multicopter design and control. Springer, 2017.H. Abyarjoo and R. al, “Implementing a sensor fusion algorithm for 3d orientation detection with inertial-magnetic sensors,” Re- searchGate, 2014. [Online]. Available: https://www.researchgate.net/ publication/264707640_Implementing_a_Sensor_Fusion_Algorithm_for_ 3D_Orientation_Detection_with_InertialMagnetic_SensorsC. Aeronautics, “Repositorio de carbon aeronautics en github,” 2024, consultado el 30 de enero de 2025. [Online]. Available: https://github.com/ CarbonAeronauticsAdafruit, “Bmp180 barometer sensor datasheet,” 2024. [Online]. Available: https://cdn-shop.adafruit.com/datasheets/BST-BMP180-DS000-09.pdfC. A. Marín, Y. E. Gutiérrez et al., “Control and tridimensional simulation of the quanser qball 2 using ros and matlab,” in 2023 IEEE 6th Colombian Conference on Automatic Control (CCAC). IEEE, 2023, pp. 1–6.K. Ogata, Ingeniería de control moderna. Pearson educación, 2003.K. Ogata, Sistemas de control en tiempo discreto. Pearson educación, 1996.A. S. Tanenbaum, Redes de computadoras. Pearson educación, 2003.ORIGINALDisImpVehAerNoTripUAVBajCost.pdfDisImpVehAerNoTripUAVBajCost.pdfapplication/pdf45029377https://repository.udistrital.edu.co/bitstreams/284bc8ee-a585-4e0e-8b86-dbb955fce88c/downloadfb57d3827fb70fbc005a3e6320b9447cMD51Licencia.pdfLicencia.pdfapplication/pdf347180https://repository.udistrital.edu.co/bitstreams/8124d630-6ff3-47a9-a9a0-7c0c722c3b05/download2bf465c57da261325383884d12659c03MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/80cec8b2-4a44-4c6e-9aff-b43068d96d0f/download997daf6c648c962d566d7b082dac908dMD52THUMBNAILDisImpVehAerNoTripUAVBajCost.pdf.jpgDisImpVehAerNoTripUAVBajCost.pdf.jpgIM Thumbnailimage/jpeg2633https://repository.udistrital.edu.co/bitstreams/1eb4c299-ab10-4271-a74d-4f1a3571120b/download21a851f95a06f2f38ae00ba2a4843377MD54Licencia.pdf.jpgLicencia.pdf.jpgIM Thumbnailimage/jpeg9515https://repository.udistrital.edu.co/bitstreams/a56cabec-f0a5-4b3d-b682-64f500e23621/download7d4f6a8a4dbb762bf7cf0cd8faa2cfeaMD5511349/94355oai:repository.udistrital.edu.co:11349/943552025-03-30 01:04:03.455open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK