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...
- 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 |