Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina
Para el desarrollo del presente proyecto se tuvieron en cuenta cuatro etapas, en la primera se realizó la adquisición y procesamiento de datos relacionados con aceleraciones lineales y velocidades angulares de una MPU 9250 a través del microcontrolador STM32F401. En segundo lugar, se implementó dife...
- Autores:
-
Beltrán Cicery, Henry Esteban
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2021
- Institución:
- Universidad ECCI
- Repositorio:
- Repositorio Institucional ECCI
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.ecci.edu.co:001/4018
- Acceso en línea:
- https://repositorio.ecci.edu.co/handle/001/4018
- Palabra clave:
- Control
Datos
Espacio
Inalámbrico
Robot Manipulador
Control
Data
Space
Wireless
Robot Manipulator
- Rights
- openAccess
- License
- Derechos Reservados - Universidad ECCI, 2021
id |
ECCI2_887c14d427a4f536e5b4d421f5c71a81 |
---|---|
oai_identifier_str |
oai:repositorio.ecci.edu.co:001/4018 |
network_acronym_str |
ECCI2 |
network_name_str |
Repositorio Institucional ECCI |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina |
title |
Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina |
spellingShingle |
Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina Control Datos Espacio Inalámbrico Robot Manipulador Control Data Space Wireless Robot Manipulator |
title_short |
Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina |
title_full |
Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina |
title_fullStr |
Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina |
title_full_unstemmed |
Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina |
title_sort |
Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina |
dc.creator.fl_str_mv |
Beltrán Cicery, Henry Esteban |
dc.contributor.advisor.none.fl_str_mv |
Barrera, Fabian |
dc.contributor.author.none.fl_str_mv |
Beltrán Cicery, Henry Esteban |
dc.subject.proposal.spa.fl_str_mv |
Control Datos Espacio Inalámbrico Robot Manipulador |
topic |
Control Datos Espacio Inalámbrico Robot Manipulador Control Data Space Wireless Robot Manipulator |
dc.subject.proposal.eng.fl_str_mv |
Control Data Space Wireless Robot Manipulator |
description |
Para el desarrollo del presente proyecto se tuvieron en cuenta cuatro etapas, en la primera se realizó la adquisición y procesamiento de datos relacionados con aceleraciones lineales y velocidades angulares de una MPU 9250 a través del microcontrolador STM32F401. En segundo lugar, se implementó diferentes filtros para señales variantes e invariantes en el tiempo, como lo son filtros digitales, filtros complementarios o filtros de Kalman, con el fin de eliminar el ruido presente del sensor MPU9250. En la tercera etapa se utiliza Python como lenguaje base para comunicar el entorno virtual de Coppelia SIM y manipular el modelo tridimensional de un Robot UR10, donde se utilizan los datos provenientes de la unidad de medida inercial. Por último, la ubicación del TCP (Tool Center Point) en el entorno virtual se complementa con algoritmos de visión de máquina y procesamiento de imagen de la librería OpenCV. |
publishDate |
2021 |
dc.date.issued.none.fl_str_mv |
2021 |
dc.date.accessioned.none.fl_str_mv |
2024-05-04T16:29:26Z |
dc.date.available.none.fl_str_mv |
2024-05-04T16:29:26Z |
dc.type.spa.fl_str_mv |
Trabajo de grado - Pregrado |
dc.type.coarversion.fl_str_mv |
http://purl.org/coar/version/c_dc82b40f9837b551 |
dc.type.coar.spa.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.content.spa.fl_str_mv |
Text |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.coarversion.spa.fl_str_mv |
http://purl.org/coar/version/c_970fb48d4fbd8a85 |
format |
http://purl.org/coar/resource_type/c_7a1f |
dc.identifier.uri.none.fl_str_mv |
https://repositorio.ecci.edu.co/handle/001/4018 |
url |
https://repositorio.ecci.edu.co/handle/001/4018 |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.relation.references.spa.fl_str_mv |
C. J. J., in Introdution to Robotics: Mechanics and Control 2nd, Boston, Ma, USA, AddisonWesley Longman Publisiing Co, Inc, 1989. V. R. Gonzales, "Control y Robotica," 03 2003. [Online]. Available: http://platea.pntic.mec.es/vgonzale/cyr_0708/archivos/_15/Tema_5.4.htm. [Accessed 01 02 2021]. A. Barrientos, Fundamentos de Robotica 2nd, McGraw-Hill, 2007. Omega Company, "Introduccion a las pinzas (Grippers)," 07 2015. [Online]. Available: https://mx.omega.com/prodinfo/pinzas-grippers.html. [Accessed 01 02 2021]. H. Rodriguez, "Guia completa de imagen digital 4a edicion," Coleccion Bit & Pixel, Cataluña, 2016. N. Aguirre, "Implementacion de un sistema de deteccion de señales de trafico mediante vision artificial basado en FPGA," Departamento de ingenieria electronica, Sevilla, España, 2013. J. Marquez, "Procesamiento y Análisis Digital de Imágenes," 2013. [Online]. Available: http://www.academicos.ccadet.unam.mx/jorge.marquez/cursos/Instrumentacion/Introd_ImageProc_ Selecc.pdf. [Accessed 10 Junio 2021]. B. A. P. D. G. A. JA Martín Jiménez, "Procesamiento avanzado de imágenes digitales," 2011. [Online]. Available: http://hdl.handle.net/10366/83443. [Accessed 6 Junio 2021]. J. Rojas, "Procesamiento digital de imagenes con Matlab y Simulink," S&T, vol. 10, no. 21, pp. 77- 78, 2012. ] I. J. G. B. Andrade., "Compresión de imágenes en movimiento para," Universidad técnica de ambato, Ambato-Ecuador, 2010. L. C. Estrebou, "Algoritmos de identificación de piel humana y su relación con los sistemas de color. su aplicación a la segmentación de piel basada en píxeles," Facultad de Informática - Universidad Nacional de La Plata, Plata, 2020. X-Rite, "Guia para entender la comunicacion del color," Grandville, Michigan, 2006. A. R. Montalvo, "Sistema automatizado para la calibración de acelerómetros segun norma ISO 16063-21:2023," Catalunya, 2010. "Application note 243," in The Fundamentals of Signal Analysis, p. 67 "Sensing (sensores de medida)," DynaLabs, [Online]. Available: https://sensores-demedida.es/catalogo/acelerometro-uniaxial-capacitivo-dynalabs-1000/. [Accessed 17 Febrero 2021]. Micromega-Dinamics , "Direct industry," [Online]. Available: https://www.directindustry.es/prod/micromega-dynamics-recovib/product-200805-2044727.html. [Accessed 17 febrero 2021]. Dytran Instruments, "Direct Industry," [Online]. Available: https://www.directindustry.es/prod/dytran-instruments/product-37504-1993274.html. [Accessed 17 Febrero 2021]. Universidad de Sevilla, "Tipos de acelerometros," in Diseño Integrado, Sevilla, pp. 41-45. Lifelong Learning, "Electrónica para Sistemas Industriales (EIS)," UNED, Madrid, 2011. C. Aszkler, "The Principles of Acceleration, Shock, and Vibration Sensors," Fierce Electronics, 1 Mayo 2005. [Online]. Available: https://www.fierceelectronics.com/components/principlesacceleration-shock-and-vibration-sensors?page_id=4. [Accessed 9 Marzo 2021]. Sensing, Sensores de medida, "Servoinclinómetro biaxial SENSOREX SX41400," [Online]. Available: https://sensores-de-medida.es/catalogo/servoinclinometro-biaxial-sensorex-sx41400/. [Accessed 12 Marzo 2021]. C. Gimenez, "Acelerometro," Universidad Católica “Nuestra Señora de Asunción”, 2009. V. M. N. Passaro, Gyroscope Technology and Applications: A Review in the Industrial Perspective, Bari, Italia: MDPI, 2017. D. Halliday, R. Resnick and J. Walker, "Fundamentals of Physics, 9th ed.," Hoboken, USA, 2010, pp. 294-295. EcuRed, "Giroscopio," 5 Junio 2019. [Online]. Available: https://www.ecured.cu/index.php?title=Giroscopio&action=history. [Accessed 23 Marzo 2021]. U. d. P. Vasco, "El giróscopo interferencial de fibra óptica," Real sociedad española de fisica. J. L. a. A. S. edelstein, "Magnetic sensor and their aplications," IEEE SENSORS JOURNAL, vol. 6, 2006. O. S. E. Polskich, "Modern magnetic field sensors," PRZEGLĄD ELEKTROTECHNICZNY, 2019. A. S. E. a. G. A. Fischer, "Minimizing 1/f noise in magneticsensors using a microelectromechanical system flux concentrator," Appl. Phys., vol. 91, pp. 7795-7997, 2002. R. S. Popovic, Hall Effect Devices, Bristol, U.K.: Inst. Physics, 2004. S. Tumanski, Thin Film Magnetoresistive Sensors, Bristol, U.K.: Inst. Physics, 2001. T. R. McGuire, "Anisotropic magnetoresistance in ferromagnetic 3d alloys," IEEE Trans. Magn., vol. 11, pp. 1018-1038, 1975. ST Electronics, "MCU Arm Cortex STM32 de 32 bits," [Online]. Available: https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html. [Accessed 29 Marzo 2021]. Ja-Bots.com, "Blue Pill STM32F103C8T6," 23 Noviembre 2019. [Online]. Available: https://jabots.com/producto/stm32f103c8t6/. [Accessed 29 Marzo 2021]. ST electronics, "Arm® Cortex®-M4 32-bit MCU+FPU, 105 DMIPS, 256KB Flash / 64KB RAM, 11 TIMs, 1 ADC, 11 comm. interfaces," 21 April 2019. [Online]. Available: https://www.st.com/resource/en/datasheet/stm32f401cb.pdf. [Accessed 29 Marzo 2021] H. Beltran, Tesis profesional de grado, Bogota: Zenodo. DOI: 10.5281/zenodo.5539289, 2021. C. Britton, Digital Filter Designer's Handbook, McGraw-Hill, 1997. D. Llorens, "Descripción de interferencias magnéticas y procedimiento de calibración para magnetómetro HMC5883l," Instituto Universitario Aeronautico, Cordoba, Argentina, 2016. F. Prieto, "um estudo sobre arquiteturas de hardware para técnicas de fusão sensorial através do ekf e da estimação de estados baseada em filtros híbridos otimizados," Universidade de Brasília, Brasilia/DF, 2018. R. S. Andersen, "Kinematics of a UR5," Aalborg University, Aalborg, Dinamarca, 2018. "Introduccion a la Fotografia Digital," Marzo 2008. [Online]. Available: https://www.uv.mx/personal/lenunez/files/2013/06/INICIACION-A-LA-FOTOGRAFIADIGITAL-DeCamaras.pdf. [Accessed 16 Abril 2021]. Olympus, "Human Vision and Color Perception," [Online]. Available: https://www.olympuslifescience.com/es/microscope-resource/primer/lightandcolor/humanvisionintro/. [Accessed 15 Marzo 2021]. A. Rosebrock, "OpenCV Smoothing and Blurring," pyimagesearch, 28 April 2021. [Online]. Available: https://www.pyimagesearch.com/2021/04/28/opencv-smoothing-and-blurring/. [Accessed 23 September 2021]. P. K. J. T. Sylvain Paris, "Bilateral Filtering: Theory and Applications," now, Paris, 2008. M. Zhang, "Bilateral filter in image processing," Louisiana State University, Louisiana, 2009. W. T. F. R. S. a. S. K. C. Liu, "Noise Estimation from a Single Image," Conference: 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 2006), 17-22 June 2006, New York, NY, USA, 2006. D. V. Perepelitsa, "Johnson Noise and Shot Noise," MIT Department of Physics, 2006. J. Igual, "EL RUIDO EN FOTOGRAFÍA DIGITAL," foto igual, 15 March 2017. [Online]. Available: http://fotoigual.com/tutoriales/el-ruido-en-fotografia-digital/. [Accessed 23 September 2021]. M.-K. Hu, "Visual Pattern Recognition by Moment Invariants," in ire transactions on information theory, 1962, pp. 179-187. F. Beer and R. Johnston, Mecanica vectorial para ingenieros, McGraw-Hill, 2007. R. Szeliski, Computer Vision: Algorithms and Applications, Springer, 2010. S. Mallick, "Geometry of Image Formation," LearnOpenCV, 20 febrero 2020. [Online]. Available: https://learnopencv.com/geometry-of-image-formation/. [Accessed 25 Octubre 2021]. Open Source Computer Vision, "Camera Calibration," 5 Julio 2021. [Online]. Available: https://docs.opencv.org/4.5.3/d9/db7/tutorial_py_table_of_contents_calib3d.html. [Accessed 25 Octubre 2021]. Z. Zhang, "A Flexible New Technique for Camera Calibration," Microsoft Corporation, Redmond,, 1998. D. Tan, "Inverse Projection Transformation," Towards Data Science, 15 December 2019. [Online]. Available: https://towardsdatascience.com/inverse-projection-transformation-c866ccedef1c. [Accessed 30 October 2021]. A. Rosebrock, "Find distance from camera to object/marker using Python and OpenCV," pyimagesearch, 19 January 2015. [Online]. Available: https://www.pyimagesearch.com/2015/01/19/find-distance-camera-objectmarker-using-pythonopencv/. [Accessed 30 October 2021]. P. Kim, "complementary filter," in Kalman Filter for Beginners with Matlab Examples, republica de korea, A-JIN company, 2010, pp. 207-221. A. Becker, "The alpha - beta filter," KalmanFilter.net, [Online]. Available: https://www.kalmanfilter.net/support.html. [Accessed 5 November 2021]. M. Pedley, "Tilt Sensing Using a Three-Axis Accelerometer," NXP, 2013. T. OZYAGCILAR, "Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer Sensors," Freescale Semiconductor Application Note, rev, v. 3, 2015. M. Munuera, "filtro de Kalman y sus aplicaciones," Universidad de Barcelona, Baarcelona, 2018. P. Kim, "attitude determination with gyros," in Kalman filter for beginner with matlab examples, Republic of Korea, A-JIN Company, 2011, pp. 120-125. F. S. H. &. M. S. Triantafyllou, "Rate of Change of Euler Angles," in System design for uncertainty, Massachusetts, Massachusetts institute of technology, 2021. Coastal Inlets Research Program , "Statistics," 5 June 2014. [Online]. Available: https://cirpwiki.info/wiki/Statistics#Normalization. [Accessed 31 December 2021]. B. Henry, "Control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina," Youtube, 17 Enero 2022. [Online]. Available: https://youtu.be/dH5DrvStsY8. [Accessed 17 Enero 2022]. |
dc.rights.spa.fl_str_mv |
Derechos Reservados - Universidad ECCI, 2021 |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/openAccess |
dc.rights.coar.spa.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
rights_invalid_str_mv |
Derechos Reservados - Universidad ECCI, 2021 http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.spa.fl_str_mv |
112 p. |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
dc.publisher.spa.fl_str_mv |
Universidad ECCI |
dc.publisher.place.spa.fl_str_mv |
Colombia |
dc.publisher.faculty.spa.fl_str_mv |
Facultad de Ingenierías |
institution |
Universidad ECCI |
bitstream.url.fl_str_mv |
https://repositorio.ecci.edu.co/bitstream/001/4018/1/Trabajo%20de%20grado.pdf https://repositorio.ecci.edu.co/bitstream/001/4018/2/FR-IN-052.pdf https://repositorio.ecci.edu.co/bitstream/001/4018/3/license.txt https://repositorio.ecci.edu.co/bitstream/001/4018/4/Trabajo%20de%20grado.pdf.txt https://repositorio.ecci.edu.co/bitstream/001/4018/6/FR-IN-052.pdf.txt https://repositorio.ecci.edu.co/bitstream/001/4018/5/Trabajo%20de%20grado.pdf.jpg https://repositorio.ecci.edu.co/bitstream/001/4018/7/FR-IN-052.pdf.jpg |
bitstream.checksum.fl_str_mv |
b7242ae9a55a271e0b25dfbbc9e3a4ab 949c04cba63b0121a88bbb467d7067ea 88794144ff048353b359a3174871b0d5 feed01df2eb02e008d0dd433945e4855 68b329da9893e34099c7d8ad5cb9c940 6e37315873f772b060a72309b4598185 c6cc6b9953a4111dd803449bd4a6618e |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Digital Universidad ECCI |
repository.mail.fl_str_mv |
repositorio.institucional@ecci.edu.co |
_version_ |
1818098994247630848 |
spelling |
Barrera, Fabian22cef205c47e88f2ca8abe841b524bc4Beltrán Cicery, Henry Esteban7d255e8e0fdbbed2caa697507e4c09592024-05-04T16:29:26Z2024-05-04T16:29:26Z2021https://repositorio.ecci.edu.co/handle/001/4018Para el desarrollo del presente proyecto se tuvieron en cuenta cuatro etapas, en la primera se realizó la adquisición y procesamiento de datos relacionados con aceleraciones lineales y velocidades angulares de una MPU 9250 a través del microcontrolador STM32F401. En segundo lugar, se implementó diferentes filtros para señales variantes e invariantes en el tiempo, como lo son filtros digitales, filtros complementarios o filtros de Kalman, con el fin de eliminar el ruido presente del sensor MPU9250. En la tercera etapa se utiliza Python como lenguaje base para comunicar el entorno virtual de Coppelia SIM y manipular el modelo tridimensional de un Robot UR10, donde se utilizan los datos provenientes de la unidad de medida inercial. Por último, la ubicación del TCP (Tool Center Point) en el entorno virtual se complementa con algoritmos de visión de máquina y procesamiento de imagen de la librería OpenCV.PregradoIngeniero en MecatrónicaIngeniería Mecatrónica112 p.application/pdfspaUniversidad ECCIColombiaFacultad de IngenieríasDerechos Reservados - Universidad ECCI, 2021info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Diseño y construcción de un control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquinaTrabajo de grado - Pregradohttp://purl.org/coar/resource_type/c_7a1fTextinfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/version/c_970fb48d4fbd8a85http://purl.org/coar/version/c_dc82b40f9837b551C. J. J., in Introdution to Robotics: Mechanics and Control 2nd, Boston, Ma, USA, AddisonWesley Longman Publisiing Co, Inc, 1989.V. R. Gonzales, "Control y Robotica," 03 2003. [Online]. Available: http://platea.pntic.mec.es/vgonzale/cyr_0708/archivos/_15/Tema_5.4.htm. [Accessed 01 02 2021].A. Barrientos, Fundamentos de Robotica 2nd, McGraw-Hill, 2007.Omega Company, "Introduccion a las pinzas (Grippers)," 07 2015. [Online]. Available: https://mx.omega.com/prodinfo/pinzas-grippers.html. [Accessed 01 02 2021].H. Rodriguez, "Guia completa de imagen digital 4a edicion," Coleccion Bit & Pixel, Cataluña, 2016.N. Aguirre, "Implementacion de un sistema de deteccion de señales de trafico mediante vision artificial basado en FPGA," Departamento de ingenieria electronica, Sevilla, España, 2013.J. Marquez, "Procesamiento y Análisis Digital de Imágenes," 2013. [Online]. Available: http://www.academicos.ccadet.unam.mx/jorge.marquez/cursos/Instrumentacion/Introd_ImageProc_ Selecc.pdf. [Accessed 10 Junio 2021].B. A. P. D. G. A. JA Martín Jiménez, "Procesamiento avanzado de imágenes digitales," 2011. [Online]. Available: http://hdl.handle.net/10366/83443. [Accessed 6 Junio 2021].J. Rojas, "Procesamiento digital de imagenes con Matlab y Simulink," S&T, vol. 10, no. 21, pp. 77- 78, 2012.] I. J. G. B. Andrade., "Compresión de imágenes en movimiento para," Universidad técnica de ambato, Ambato-Ecuador, 2010.L. C. Estrebou, "Algoritmos de identificación de piel humana y su relación con los sistemas de color. su aplicación a la segmentación de piel basada en píxeles," Facultad de Informática - Universidad Nacional de La Plata, Plata, 2020.X-Rite, "Guia para entender la comunicacion del color," Grandville, Michigan, 2006.A. R. Montalvo, "Sistema automatizado para la calibración de acelerómetros segun norma ISO 16063-21:2023," Catalunya, 2010."Application note 243," in The Fundamentals of Signal Analysis, p. 67"Sensing (sensores de medida)," DynaLabs, [Online]. Available: https://sensores-demedida.es/catalogo/acelerometro-uniaxial-capacitivo-dynalabs-1000/. [Accessed 17 Febrero 2021].Micromega-Dinamics , "Direct industry," [Online]. Available: https://www.directindustry.es/prod/micromega-dynamics-recovib/product-200805-2044727.html. [Accessed 17 febrero 2021].Dytran Instruments, "Direct Industry," [Online]. Available: https://www.directindustry.es/prod/dytran-instruments/product-37504-1993274.html. [Accessed 17 Febrero 2021].Universidad de Sevilla, "Tipos de acelerometros," in Diseño Integrado, Sevilla, pp. 41-45.Lifelong Learning, "Electrónica para Sistemas Industriales (EIS)," UNED, Madrid, 2011.C. Aszkler, "The Principles of Acceleration, Shock, and Vibration Sensors," Fierce Electronics, 1 Mayo 2005. [Online]. Available: https://www.fierceelectronics.com/components/principlesacceleration-shock-and-vibration-sensors?page_id=4. [Accessed 9 Marzo 2021].Sensing, Sensores de medida, "Servoinclinómetro biaxial SENSOREX SX41400," [Online]. Available: https://sensores-de-medida.es/catalogo/servoinclinometro-biaxial-sensorex-sx41400/. [Accessed 12 Marzo 2021].C. Gimenez, "Acelerometro," Universidad Católica “Nuestra Señora de Asunción”, 2009.V. M. N. Passaro, Gyroscope Technology and Applications: A Review in the Industrial Perspective, Bari, Italia: MDPI, 2017.D. Halliday, R. Resnick and J. Walker, "Fundamentals of Physics, 9th ed.," Hoboken, USA, 2010, pp. 294-295.EcuRed, "Giroscopio," 5 Junio 2019. [Online]. Available: https://www.ecured.cu/index.php?title=Giroscopio&action=history. [Accessed 23 Marzo 2021].U. d. P. Vasco, "El giróscopo interferencial de fibra óptica," Real sociedad española de fisica.J. L. a. A. S. edelstein, "Magnetic sensor and their aplications," IEEE SENSORS JOURNAL, vol. 6, 2006.O. S. E. Polskich, "Modern magnetic field sensors," PRZEGLĄD ELEKTROTECHNICZNY, 2019.A. S. E. a. G. A. Fischer, "Minimizing 1/f noise in magneticsensors using a microelectromechanical system flux concentrator," Appl. Phys., vol. 91, pp. 7795-7997, 2002.R. S. Popovic, Hall Effect Devices, Bristol, U.K.: Inst. Physics, 2004.S. Tumanski, Thin Film Magnetoresistive Sensors, Bristol, U.K.: Inst. Physics, 2001.T. R. McGuire, "Anisotropic magnetoresistance in ferromagnetic 3d alloys," IEEE Trans. Magn., vol. 11, pp. 1018-1038, 1975.ST Electronics, "MCU Arm Cortex STM32 de 32 bits," [Online]. Available: https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html. [Accessed 29 Marzo 2021].Ja-Bots.com, "Blue Pill STM32F103C8T6," 23 Noviembre 2019. [Online]. Available: https://jabots.com/producto/stm32f103c8t6/. [Accessed 29 Marzo 2021].ST electronics, "Arm® Cortex®-M4 32-bit MCU+FPU, 105 DMIPS, 256KB Flash / 64KB RAM, 11 TIMs, 1 ADC, 11 comm. interfaces," 21 April 2019. [Online]. Available: https://www.st.com/resource/en/datasheet/stm32f401cb.pdf. [Accessed 29 Marzo 2021]H. Beltran, Tesis profesional de grado, Bogota: Zenodo. DOI: 10.5281/zenodo.5539289, 2021.C. Britton, Digital Filter Designer's Handbook, McGraw-Hill, 1997.D. Llorens, "Descripción de interferencias magnéticas y procedimiento de calibración para magnetómetro HMC5883l," Instituto Universitario Aeronautico, Cordoba, Argentina, 2016.F. Prieto, "um estudo sobre arquiteturas de hardware para técnicas de fusão sensorial através do ekf e da estimação de estados baseada em filtros híbridos otimizados," Universidade de Brasília, Brasilia/DF, 2018.R. S. Andersen, "Kinematics of a UR5," Aalborg University, Aalborg, Dinamarca, 2018."Introduccion a la Fotografia Digital," Marzo 2008. [Online]. Available: https://www.uv.mx/personal/lenunez/files/2013/06/INICIACION-A-LA-FOTOGRAFIADIGITAL-DeCamaras.pdf. [Accessed 16 Abril 2021].Olympus, "Human Vision and Color Perception," [Online]. Available: https://www.olympuslifescience.com/es/microscope-resource/primer/lightandcolor/humanvisionintro/. [Accessed 15 Marzo 2021].A. Rosebrock, "OpenCV Smoothing and Blurring," pyimagesearch, 28 April 2021. [Online]. Available: https://www.pyimagesearch.com/2021/04/28/opencv-smoothing-and-blurring/. [Accessed 23 September 2021].P. K. J. T. Sylvain Paris, "Bilateral Filtering: Theory and Applications," now, Paris, 2008.M. Zhang, "Bilateral filter in image processing," Louisiana State University, Louisiana, 2009.W. T. F. R. S. a. S. K. C. Liu, "Noise Estimation from a Single Image," Conference: 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 2006), 17-22 June 2006, New York, NY, USA, 2006.D. V. Perepelitsa, "Johnson Noise and Shot Noise," MIT Department of Physics, 2006.J. Igual, "EL RUIDO EN FOTOGRAFÍA DIGITAL," foto igual, 15 March 2017. [Online]. Available: http://fotoigual.com/tutoriales/el-ruido-en-fotografia-digital/. [Accessed 23 September 2021].M.-K. Hu, "Visual Pattern Recognition by Moment Invariants," in ire transactions on information theory, 1962, pp. 179-187.F. Beer and R. Johnston, Mecanica vectorial para ingenieros, McGraw-Hill, 2007.R. Szeliski, Computer Vision: Algorithms and Applications, Springer, 2010.S. Mallick, "Geometry of Image Formation," LearnOpenCV, 20 febrero 2020. [Online]. Available: https://learnopencv.com/geometry-of-image-formation/. [Accessed 25 Octubre 2021].Open Source Computer Vision, "Camera Calibration," 5 Julio 2021. [Online]. Available: https://docs.opencv.org/4.5.3/d9/db7/tutorial_py_table_of_contents_calib3d.html. [Accessed 25 Octubre 2021].Z. Zhang, "A Flexible New Technique for Camera Calibration," Microsoft Corporation, Redmond,, 1998.D. Tan, "Inverse Projection Transformation," Towards Data Science, 15 December 2019. [Online]. Available: https://towardsdatascience.com/inverse-projection-transformation-c866ccedef1c. [Accessed 30 October 2021].A. Rosebrock, "Find distance from camera to object/marker using Python and OpenCV," pyimagesearch, 19 January 2015. [Online]. Available: https://www.pyimagesearch.com/2015/01/19/find-distance-camera-objectmarker-using-pythonopencv/. [Accessed 30 October 2021].P. Kim, "complementary filter," in Kalman Filter for Beginners with Matlab Examples, republica de korea, A-JIN company, 2010, pp. 207-221.A. Becker, "The alpha - beta filter," KalmanFilter.net, [Online]. Available: https://www.kalmanfilter.net/support.html. [Accessed 5 November 2021].M. Pedley, "Tilt Sensing Using a Three-Axis Accelerometer," NXP, 2013.T. OZYAGCILAR, "Implementing a Tilt-Compensated eCompass using Accelerometer and Magnetometer Sensors," Freescale Semiconductor Application Note, rev, v. 3, 2015.M. Munuera, "filtro de Kalman y sus aplicaciones," Universidad de Barcelona, Baarcelona, 2018.P. Kim, "attitude determination with gyros," in Kalman filter for beginner with matlab examples, Republic of Korea, A-JIN Company, 2011, pp. 120-125.F. S. H. &. M. S. Triantafyllou, "Rate of Change of Euler Angles," in System design for uncertainty, Massachusetts, Massachusetts institute of technology, 2021.Coastal Inlets Research Program , "Statistics," 5 June 2014. [Online]. Available: https://cirpwiki.info/wiki/Statistics#Normalization. [Accessed 31 December 2021].B. Henry, "Control inalámbrico para el robot UR10 a través de una IMU de 9DOF y visión de máquina," Youtube, 17 Enero 2022. [Online]. Available: https://youtu.be/dH5DrvStsY8. [Accessed 17 Enero 2022].ControlDatosEspacioInalámbricoRobot ManipuladorControlDataSpaceWirelessRobot ManipulatorORIGINALTrabajo de grado.pdfTrabajo de grado.pdfTrabajo de gradoapplication/pdf5967084https://repositorio.ecci.edu.co/bitstream/001/4018/1/Trabajo%20de%20grado.pdfb7242ae9a55a271e0b25dfbbc9e3a4abMD51FR-IN-052.pdfFR-IN-052.pdfCesión de derechosapplication/pdf326722https://repositorio.ecci.edu.co/bitstream/001/4018/2/FR-IN-052.pdf949c04cba63b0121a88bbb467d7067eaMD52LICENSElicense.txtlicense.txttext/plain; charset=utf-814798https://repositorio.ecci.edu.co/bitstream/001/4018/3/license.txt88794144ff048353b359a3174871b0d5MD53TEXTTrabajo de grado.pdf.txtTrabajo de grado.pdf.txtExtracted texttext/plain176375https://repositorio.ecci.edu.co/bitstream/001/4018/4/Trabajo%20de%20grado.pdf.txtfeed01df2eb02e008d0dd433945e4855MD54FR-IN-052.pdf.txtFR-IN-052.pdf.txtExtracted texttext/plain1https://repositorio.ecci.edu.co/bitstream/001/4018/6/FR-IN-052.pdf.txt68b329da9893e34099c7d8ad5cb9c940MD56TEXTTHUMBNAILTrabajo de grado.pdf.jpgTrabajo de grado.pdf.jpgGenerated Thumbnailimage/jpeg9891https://repositorio.ecci.edu.co/bitstream/001/4018/5/Trabajo%20de%20grado.pdf.jpg6e37315873f772b060a72309b4598185MD55FR-IN-052.pdf.jpgFR-IN-052.pdf.jpgGenerated Thumbnailimage/jpeg16346https://repositorio.ecci.edu.co/bitstream/001/4018/7/FR-IN-052.pdf.jpgc6cc6b9953a4111dd803449bd4a6618eMD57THUMBNAIL001/4018oai:repositorio.ecci.edu.co:001/40182024-07-24 16:14:47.464Repositorio Digital Universidad ECCIrepositorio.institucional@ecci.edu.coTEEgT0JSQSAoVEFMIFkgQ09NTyBTRSBERUZJTkUgTcOBUyBBREVMQU5URSkgU0UgT1RPUkdBIEJBSk8gTE9TIFRFUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgUMOaQkxJQ0EgREUgQ1JFQVRJVkUgQ09NTU9OUyAo4oCcTFBDQ+KAnSBPIOKAnExJQ0VOQ0lB4oCdKS4gTEEgT0JSQSBFU1TDgSBQUk9URUdJREEgUE9SIERFUkVDSE9TIERFIEFVVE9SIFkvVSBPVFJBUyBMRVlFUyBBUExJQ0FCTEVTLiBRVUVEQSBQUk9ISUJJRE8gQ1VBTFFVSUVSIFVTTyBRVUUgU0UgSEFHQSBERSBMQSBPQlJBIFFVRSBOTyBDVUVOVEUgQ09OIExBIEFVVE9SSVpBQ0nDk04gUEVSVElORU5URSBERSBDT05GT1JNSURBRCBDT04gTE9TIFTDiVJNSU5PUyBERSBFU1RBIExJQ0VOQ0lBIFkgREUgTEEgTEVZIERFIERFUkVDSE8gREUgQVVUT1IuCk1FRElBTlRFIEVMIEVKRVJDSUNJTyBERSBDVUFMUVVJRVJBIERFIExPUyBERVJFQ0hPUyBRVUUgU0UgT1RPUkdBTiBFTiBFU1RBIExJQ0VOQ0lBLCBVU1RFRCBBQ0VQVEEgWSBBQ1VFUkRBIFFVRURBUiBPQkxJR0FETyBFTiBMT1MgVEVSTUlOT1MgUVVFIFNFIFNFw5FBTEFOIEVOIEVMTEEuIEVMIExJQ0VOQ0lBTlRFIENPTkNFREUgQSBVU1RFRCBMT1MgREVSRUNIT1MgQ09OVEVOSURPUyBFTiBFU1RBIExJQ0VOQ0lBIENPTkRJQ0lPTkFET1MgQSBMQSBBQ0VQVEFDScOTTiBERSBTVVMgVEVSTUlOT1MgWSBDT05ESUNJT05FUy4KMS4gRGVmaW5pY2lvbmVzCmEuCU9icmEgQ29sZWN0aXZhIGVzIHVuYSBvYnJhLCB0YWwgY29tbyB1bmEgcHVibGljYWNpw7NuIHBlcmnDs2RpY2EsIHVuYSBhbnRvbG9nw61hLCBvIHVuYSBlbmNpY2xvcGVkaWEsIGVuIGxhIHF1ZSBsYSBvYnJhIGVuIHN1IHRvdGFsaWRhZCwgc2luIG1vZGlmaWNhY2nDs24gYWxndW5hLCBqdW50byBjb24gdW4gZ3J1cG8gZGUgb3RyYXMgY29udHJpYnVjaW9uZXMgcXVlIGNvbnN0aXR1eWVuIG9icmFzIHNlcGFyYWRhcyBlIGluZGVwZW5kaWVudGVzIGVuIHPDrSBtaXNtYXMsIHNlIGludGVncmFuIGVuIHVuIHRvZG8gY29sZWN0aXZvLiBVbmEgT2JyYSBxdWUgY29uc3RpdHV5ZSB1bmEgb2JyYSBjb2xlY3RpdmEgbm8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIChjb21vIHNlIGRlZmluZSBhYmFqbykgcGFyYSBsb3MgcHJvcMOzc2l0b3MgZGUgZXN0YSBsaWNlbmNpYS4gYXF1ZWxsYSBwcm9kdWNpZGEgcG9yIHVuIGdydXBvIGRlIGF1dG9yZXMsIGVuIHF1ZSBsYSBPYnJhIHNlIGVuY3VlbnRyYSBzaW4gbW9kaWZpY2FjaW9uZXMsIGp1bnRvIGNvbiB1bmEgY2llcnRhIGNhbnRpZGFkIGRlIG90cmFzIGNvbnRyaWJ1Y2lvbmVzLCBxdWUgY29uc3RpdHV5ZW4gZW4gc8OtIG1pc21vcyB0cmFiYWpvcyBzZXBhcmFkb3MgZSBpbmRlcGVuZGllbnRlcywgcXVlIHNvbiBpbnRlZ3JhZG9zIGFsIHRvZG8gY29sZWN0aXZvLCB0YWxlcyBjb21vIHB1YmxpY2FjaW9uZXMgcGVyacOzZGljYXMsIGFudG9sb2fDrWFzIG8gZW5jaWNsb3BlZGlhcy4KYi4JT2JyYSBEZXJpdmFkYSBzaWduaWZpY2EgdW5hIG9icmEgYmFzYWRhIGVuIGxhIG9icmEgb2JqZXRvIGRlIGVzdGEgbGljZW5jaWEgbyBlbiDDqXN0YSB5IG90cmFzIG9icmFzIHByZWV4aXN0ZW50ZXMsIHRhbGVzIGNvbW8gdHJhZHVjY2lvbmVzLCBhcnJlZ2xvcyBtdXNpY2FsZXMsIGRyYW1hdGl6YWNpb25lcywg4oCcZmljY2lvbmFsaXphY2lvbmVz4oCdLCB2ZXJzaW9uZXMgcGFyYSBjaW5lLCDigJxncmFiYWNpb25lcyBkZSBzb25pZG/igJ0sIHJlcHJvZHVjY2lvbmVzIGRlIGFydGUsIHJlc8O6bWVuZXMsIGNvbmRlbnNhY2lvbmVzLCBvIGN1YWxxdWllciBvdHJhIGVuIGxhIHF1ZSBsYSBvYnJhIHB1ZWRhIHNlciB0cmFuc2Zvcm1hZGEsIGNhbWJpYWRhIG8gYWRhcHRhZGEsIGV4Y2VwdG8gYXF1ZWxsYXMgcXVlIGNvbnN0aXR1eWFuIHVuYSBvYnJhIGNvbGVjdGl2YSwgbGFzIHF1ZSBubyBzZXLDoW4gY29uc2lkZXJhZGFzIHVuYSBvYnJhIGRlcml2YWRhIHBhcmEgZWZlY3RvcyBkZSBlc3RhIGxpY2VuY2lhLiAoUGFyYSBldml0YXIgZHVkYXMsIGVuIGVsIGNhc28gZGUgcXVlIGxhIE9icmEgc2VhIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbCBvIHVuYSBncmFiYWNpw7NuIHNvbm9yYSwgcGFyYSBsb3MgZWZlY3RvcyBkZSBlc3RhIExpY2VuY2lhIGxhIHNpbmNyb25pemFjacOzbiB0ZW1wb3JhbCBkZSBsYSBPYnJhIGNvbiB1bmEgaW1hZ2VuIGVuIG1vdmltaWVudG8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIHBhcmEgbG9zIGZpbmVzIGRlIGVzdGEgbGljZW5jaWEpLgpjLglMaWNlbmNpYW50ZSwgZXMgZWwgaW5kaXZpZHVvIG8gbGEgZW50aWRhZCB0aXR1bGFyIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBxdWUgb2ZyZWNlIGxhIE9icmEgZW4gY29uZm9ybWlkYWQgY29uIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLgpkLglBdXRvciBvcmlnaW5hbCwgZXMgZWwgaW5kaXZpZHVvIHF1ZSBjcmXDsyBsYSBPYnJhLgplLglPYnJhLCBlcyBhcXVlbGxhIG9icmEgc3VzY2VwdGlibGUgZGUgcHJvdGVjY2nDs24gcG9yIGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IgeSBxdWUgZXMgb2ZyZWNpZGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhCmYuCVVzdGVkLCBlcyBlbCBpbmRpdmlkdW8gbyBsYSBlbnRpZGFkIHF1ZSBlamVyY2l0YSBsb3MgZGVyZWNob3Mgb3RvcmdhZG9zIGFsIGFtcGFybyBkZSBlc3RhIExpY2VuY2lhIHkgcXVlIGNvbiBhbnRlcmlvcmlkYWQgbm8gaGEgdmlvbGFkbyBsYXMgY29uZGljaW9uZXMgZGUgbGEgbWlzbWEgcmVzcGVjdG8gYSBsYSBPYnJhLCBvIHF1ZSBoYXlhIG9idGVuaWRvIGF1dG9yaXphY2nDs24gZXhwcmVzYSBwb3IgcGFydGUgZGVsIExpY2VuY2lhbnRlIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgYWwgYW1wYXJvIGRlIGVzdGEgTGljZW5jaWEgcGVzZSBhIHVuYSB2aW9sYWNpw7NuIGFudGVyaW9yLgoyLiBEZXJlY2hvcyBkZSBVc29zIEhvbnJhZG9zIHkgZXhjZXBjaW9uZXMgTGVnYWxlcy4KTmFkYSBlbiBlc3RhIExpY2VuY2lhIHBvZHLDoSBzZXIgaW50ZXJwcmV0YWRvIGNvbW8gdW5hIGRpc21pbnVjacOzbiwgbGltaXRhY2nDs24gbyByZXN0cmljY2nDs24gZGUgbG9zIGRlcmVjaG9zIGRlcml2YWRvcyBkZWwgdXNvIGhvbnJhZG8geSBvdHJhcyBsaW1pdGFjaW9uZXMgbyBleGNlcGNpb25lcyBhIGxvcyBkZXJlY2hvcyBkZWwgYXV0b3IgYmFqbyBlbCByw6lnaW1lbiBsZWdhbCB2aWdlbnRlIG8gZGVyaXZhZG8gZGUgY3VhbHF1aWVyIG90cmEgbm9ybWEgcXVlIHNlIGxlIGFwbGlxdWUuCjMuIENvbmNlc2nDs24gZGUgbGEgTGljZW5jaWEuCkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246CmEuCVJlcHJvZHVjaXIgbGEgT2JyYSwgaW5jb3Jwb3JhciBsYSBPYnJhIGVuIHVuYSBvIG3DoXMgT2JyYXMgQ29sZWN0aXZhcywgeSByZXByb2R1Y2lyIGxhIE9icmEgaW5jb3Jwb3JhZGEgZW4gbGFzIE9icmFzIENvbGVjdGl2YXM7CmIuCURpc3RyaWJ1aXIgY29waWFzIG8gZm9ub2dyYW1hcyBkZSBsYXMgT2JyYXMsIGV4aGliaXJsYXMgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXJsYXMgcMO6YmxpY2FtZW50ZSB5L28gcG9uZXJsYXMgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EsIGluY2x1ecOpbmRvbGFzIGNvbW8gaW5jb3Jwb3JhZGFzIGVuIE9icmFzIENvbGVjdGl2YXMsIHNlZ8O6biBjb3JyZXNwb25kYTsKYy4JRGlzdHJpYnVpciBjb3BpYXMgZGUgbGFzIE9icmFzIERlcml2YWRhcyBxdWUgc2UgZ2VuZXJlbiwgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4KTG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyBubyBvdG9yZ2Fkb3MgZXhwcmVzYW1lbnRlIHBvciBlbCBMaWNlbmNpYW50ZSBxdWVkYW4gcG9yIGVzdGUgbWVkaW8gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbyBwZXJvIHNpbiBsaW1pdGFyc2UgYSBhcXVlbGxvcyBxdWUgc2UgbWVuY2lvbmFuIGVuIGxhcyBzZWNjaW9uZXMgNChkKSB5IDQoZSkuCjQuIFJlc3RyaWNjaW9uZXMuCkxhIGxpY2VuY2lhIG90b3JnYWRhIGVuIGxhIGFudGVyaW9yIFNlY2Npw7NuIDMgZXN0w6EgZXhwcmVzYW1lbnRlIHN1amV0YSB5IGxpbWl0YWRhIHBvciBsYXMgc2lndWllbnRlcyByZXN0cmljY2lvbmVzOgphLglVc3RlZCBwdWVkZSBkaXN0cmlidWlyLCBleGhpYmlyIHDDumJsaWNhbWVudGUsIGVqZWN1dGFyIHDDumJsaWNhbWVudGUsIG8gcG9uZXIgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBzw7NsbyBiYWpvIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLCB5IFVzdGVkIGRlYmUgaW5jbHVpciB1bmEgY29waWEgZGUgZXN0YSBsaWNlbmNpYSBvIGRlbCBJZGVudGlmaWNhZG9yIFVuaXZlcnNhbCBkZSBSZWN1cnNvcyBkZSBsYSBtaXNtYSBjb24gY2FkYSBjb3BpYSBkZSBsYSBPYnJhIHF1ZSBkaXN0cmlidXlhLCBleGhpYmEgcMO6YmxpY2FtZW50ZSwgZWplY3V0ZSBww7pibGljYW1lbnRlIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EuIE5vIGVzIHBvc2libGUgb2ZyZWNlciBvIGltcG9uZXIgbmluZ3VuYSBjb25kaWNpw7NuIHNvYnJlIGxhIE9icmEgcXVlIGFsdGVyZSBvIGxpbWl0ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYSBvIGVsIGVqZXJjaWNpbyBkZSBsb3MgZGVyZWNob3MgZGUgbG9zIGRlc3RpbmF0YXJpb3Mgb3RvcmdhZG9zIGVuIGVzdGUgZG9jdW1lbnRvLiBObyBlcyBwb3NpYmxlIHN1YmxpY2VuY2lhciBsYSBPYnJhLiBVc3RlZCBkZWJlIG1hbnRlbmVyIGludGFjdG9zIHRvZG9zIGxvcyBhdmlzb3MgcXVlIGhhZ2FuIHJlZmVyZW5jaWEgYSBlc3RhIExpY2VuY2lhIHkgYSBsYSBjbMOhdXN1bGEgZGUgbGltaXRhY2nDs24gZGUgZ2FyYW50w61hcy4gVXN0ZWQgbm8gcHVlZGUgZGlzdHJpYnVpciwgZXhoaWJpciBww7pibGljYW1lbnRlLCBlamVjdXRhciBww7pibGljYW1lbnRlLCBvIHBvbmVyIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhIGxhIE9icmEgY29uIGFsZ3VuYSBtZWRpZGEgdGVjbm9sw7NnaWNhIHF1ZSBjb250cm9sZSBlbCBhY2Nlc28gbyBsYSB1dGlsaXphY2nDs24gZGUgZWxsYSBkZSB1bmEgZm9ybWEgcXVlIHNlYSBpbmNvbnNpc3RlbnRlIGNvbiBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4gTG8gYW50ZXJpb3Igc2UgYXBsaWNhIGEgbGEgT2JyYSBpbmNvcnBvcmFkYSBhIHVuYSBPYnJhIENvbGVjdGl2YSwgcGVybyBlc3RvIG5vIGV4aWdlIHF1ZSBsYSBPYnJhIENvbGVjdGl2YSBhcGFydGUgZGUgbGEgb2JyYSBtaXNtYSBxdWVkZSBzdWpldGEgYSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4gU2kgVXN0ZWQgY3JlYSB1bmEgT2JyYSBDb2xlY3RpdmEsIHByZXZpbyBhdmlzbyBkZSBjdWFscXVpZXIgTGljZW5jaWFudGUgZGViZSwgZW4gbGEgbWVkaWRhIGRlIGxvIHBvc2libGUsIGVsaW1pbmFyIGRlIGxhIE9icmEgQ29sZWN0aXZhIGN1YWxxdWllciByZWZlcmVuY2lhIGEgZGljaG8gTGljZW5jaWFudGUgbyBhbCBBdXRvciBPcmlnaW5hbCwgc2Vnw7puIGxvIHNvbGljaXRhZG8gcG9yIGVsIExpY2VuY2lhbnRlIHkgY29uZm9ybWUgbG8gZXhpZ2UgbGEgY2zDoXVzdWxhIDQoYykuCmIuCVVzdGVkIG5vIHB1ZWRlIGVqZXJjZXIgbmluZ3VubyBkZSBsb3MgZGVyZWNob3MgcXVlIGxlIGhhbiBzaWRvIG90b3JnYWRvcyBlbiBsYSBTZWNjacOzbiAzIHByZWNlZGVudGUgZGUgbW9kbyBxdWUgZXN0w6luIHByaW5jaXBhbG1lbnRlIGRlc3RpbmFkb3MgbyBkaXJlY3RhbWVudGUgZGlyaWdpZG9zIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiBFbCBpbnRlcmNhbWJpbyBkZSBsYSBPYnJhIHBvciBvdHJhcyBvYnJhcyBwcm90ZWdpZGFzIHBvciBkZXJlY2hvcyBkZSBhdXRvciwgeWEgc2VhIGEgdHJhdsOpcyBkZSB1biBzaXN0ZW1hIHBhcmEgY29tcGFydGlyIGFyY2hpdm9zIGRpZ2l0YWxlcyAoZGlnaXRhbCBmaWxlLXNoYXJpbmcpIG8gZGUgY3VhbHF1aWVyIG90cmEgbWFuZXJhIG5vIHNlcsOhIGNvbnNpZGVyYWRvIGNvbW8gZXN0YXIgZGVzdGluYWRvIHByaW5jaXBhbG1lbnRlIG8gZGlyaWdpZG8gZGlyZWN0YW1lbnRlIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLCBzaWVtcHJlIHF1ZSBubyBzZSByZWFsaWNlIHVuIHBhZ28gbWVkaWFudGUgdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIGVuIHJlbGFjacOzbiBjb24gZWwgaW50ZXJjYW1iaW8gZGUgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZWwgZGVyZWNobyBkZSBhdXRvci4KYy4JU2kgdXN0ZWQgZGlzdHJpYnV5ZSwgZXhoaWJlIHDDumJsaWNhbWVudGUsIGVqZWN1dGEgcMO6YmxpY2FtZW50ZSBvIGVqZWN1dGEgcMO6YmxpY2FtZW50ZSBlbiBmb3JtYSBkaWdpdGFsIGxhIE9icmEgbyBjdWFscXVpZXIgT2JyYSBEZXJpdmFkYSB1IE9icmEgQ29sZWN0aXZhLCBVc3RlZCBkZWJlIG1hbnRlbmVyIGludGFjdGEgdG9kYSBsYSBpbmZvcm1hY2nDs24gZGUgZGVyZWNobyBkZSBhdXRvciBkZSBsYSBPYnJhIHkgcHJvcG9yY2lvbmFyLCBkZSBmb3JtYSByYXpvbmFibGUgc2Vnw7puIGVsIG1lZGlvIG8gbWFuZXJhIHF1ZSBVc3RlZCBlc3TDqSB1dGlsaXphbmRvOiAoaSkgZWwgbm9tYnJlIGRlbCBBdXRvciBPcmlnaW5hbCBzaSBlc3TDoSBwcm92aXN0byAobyBzZXVkw7NuaW1vLCBzaSBmdWVyZSBhcGxpY2FibGUpLCB5L28gKGlpKSBlbCBub21icmUgZGUgbGEgcGFydGUgbyBsYXMgcGFydGVzIHF1ZSBlbCBBdXRvciBPcmlnaW5hbCB5L28gZWwgTGljZW5jaWFudGUgaHViaWVyZW4gZGVzaWduYWRvIHBhcmEgbGEgYXRyaWJ1Y2nDs24gKHYuZy4sIHVuIGluc3RpdHV0byBwYXRyb2NpbmFkb3IsIGVkaXRvcmlhbCwgcHVibGljYWNpw7NuKSBlbiBsYSBpbmZvcm1hY2nDs24gZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGRlbCBMaWNlbmNpYW50ZSwgdMOpcm1pbm9zIGRlIHNlcnZpY2lvcyBvIGRlIG90cmFzIGZvcm1hcyByYXpvbmFibGVzOyBlbCB0w610dWxvIGRlIGxhIE9icmEgc2kgZXN0w6EgcHJvdmlzdG87IGVuIGxhIG1lZGlkYSBkZSBsbyByYXpvbmFibGVtZW50ZSBmYWN0aWJsZSB5LCBzaSBlc3TDoSBwcm92aXN0bywgZWwgSWRlbnRpZmljYWRvciBVbmlmb3JtZSBkZSBSZWN1cnNvcyAoVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyKSBxdWUgZWwgTGljZW5jaWFudGUgZXNwZWNpZmljYSBwYXJhIHNlciBhc29jaWFkbyBjb24gbGEgT2JyYSwgc2Fsdm8gcXVlIHRhbCBVUkkgbm8gc2UgcmVmaWVyYSBhIGxhIG5vdGEgc29icmUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIG8gYSBsYSBpbmZvcm1hY2nDs24gc29icmUgZWwgbGljZW5jaWFtaWVudG8gZGUgbGEgT2JyYTsgeSBlbiBlbCBjYXNvIGRlIHVuYSBPYnJhIERlcml2YWRhLCBhdHJpYnVpciBlbCBjcsOpZGl0byBpZGVudGlmaWNhbmRvIGVsIHVzbyBkZSBsYSBPYnJhIGVuIGxhIE9icmEgRGVyaXZhZGEgKHYuZy4sICJUcmFkdWNjacOzbiBGcmFuY2VzYSBkZSBsYSBPYnJhIGRlbCBBdXRvciBPcmlnaW5hbCwiIG8gIkd1acOzbiBDaW5lbWF0b2dyw6FmaWNvIGJhc2FkbyBlbiBsYSBPYnJhIG9yaWdpbmFsIGRlbCBBdXRvciBPcmlnaW5hbCIpLiBUYWwgY3LDqWRpdG8gcHVlZGUgc2VyIGltcGxlbWVudGFkbyBkZSBjdWFscXVpZXIgZm9ybWEgcmF6b25hYmxlOyBlbiBlbCBjYXNvLCBzaW4gZW1iYXJnbywgZGUgT2JyYXMgRGVyaXZhZGFzIHUgT2JyYXMgQ29sZWN0aXZhcywgdGFsIGNyw6lkaXRvIGFwYXJlY2Vyw6EsIGNvbW8gbcOtbmltbywgZG9uZGUgYXBhcmVjZSBlbCBjcsOpZGl0byBkZSBjdWFscXVpZXIgb3RybyBhdXRvciBjb21wYXJhYmxlIHkgZGUgdW5hIG1hbmVyYSwgYWwgbWVub3MsIHRhbiBkZXN0YWNhZGEgY29tbyBlbCBjcsOpZGl0byBkZSBvdHJvIGF1dG9yIGNvbXBhcmFibGUuCmQuCVBhcmEgZXZpdGFyIHRvZGEgY29uZnVzacOzbiwgZWwgTGljZW5jaWFudGUgYWNsYXJhIHF1ZSwgY3VhbmRvIGxhIG9icmEgZXMgdW5hIGNvbXBvc2ljacOzbiBtdXNpY2FsOgppLglSZWdhbMOtYXMgcG9yIGludGVycHJldGFjacOzbiB5IGVqZWN1Y2nDs24gYmFqbyBsaWNlbmNpYXMgZ2VuZXJhbGVzLiBFbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgeSBkZSByZWNvbGVjdGFyLCBzZWEgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgU0FZQ08pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbyBXZWJjYXN0KSBsaWNlbmNpYWRhIGJham8gbGljZW5jaWFzIGdlbmVyYWxlcywgc2kgbGEgaW50ZXJwcmV0YWNpw7NuIG8gZWplY3VjacOzbiBkZSBsYSBvYnJhIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBvcmllbnRhZGEgcG9yIG8gZGlyaWdpZGEgYSBsYSBvYnRlbmNpw7NuIGRlIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLgppaS4JUmVnYWzDrWFzIHBvciBGb25vZ3JhbWFzLiBFbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIHJlY29sZWN0YXIsIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIGxvcyBjb25zYWdyYWRvcyBwb3IgbGEgU0FZQ08pLCB1bmEgYWdlbmNpYSBkZSBkZXJlY2hvcyBtdXNpY2FsZXMgbyBhbGfDum4gYWdlbnRlIGRlc2lnbmFkbywgbGFzIHJlZ2Fsw61hcyBwb3IgY3VhbHF1aWVyIGZvbm9ncmFtYSBxdWUgVXN0ZWQgY3JlZSBhIHBhcnRpciBkZSBsYSBvYnJhICjigJx2ZXJzacOzbiBjb3ZlcuKAnSkgeSBkaXN0cmlidXlhLCBlbiBsb3MgdMOpcm1pbm9zIGRlbCByw6lnaW1lbiBkZSBkZXJlY2hvcyBkZSBhdXRvciwgc2kgbGEgY3JlYWNpw7NuIG8gZGlzdHJpYnVjacOzbiBkZSBlc2EgdmVyc2nDs24gY292ZXIgZXN0w6EgcHJpbW9yZGlhbG1lbnRlIGRlc3RpbmFkYSBvIGRpcmlnaWRhIGEgb2J0ZW5lciB1bmEgdmVudGFqYSBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYS4KZS4JR2VzdGnDs24gZGUgRGVyZWNob3MgZGUgQXV0b3Igc29icmUgSW50ZXJwcmV0YWNpb25lcyB5IEVqZWN1Y2lvbmVzIERpZ2l0YWxlcyAoV2ViQ2FzdGluZykuIFBhcmEgZXZpdGFyIHRvZGEgY29uZnVzacOzbiwgZWwgTGljZW5jaWFudGUgYWNsYXJhIHF1ZSwgY3VhbmRvIGxhIG9icmEgc2VhIHVuIGZvbm9ncmFtYSwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSBhdXRvcml6YXIgbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgKHBvciBlamVtcGxvLCB3ZWJjYXN0KSB5IGRlIHJlY29sZWN0YXIsIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIEFDSU5QUk8pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpLCBzdWpldGEgYSBsYXMgZGlzcG9zaWNpb25lcyBhcGxpY2FibGVzIGRlbCByw6lnaW1lbiBkZSBEZXJlY2hvIGRlIEF1dG9yLCBzaSBlc3RhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBlc3TDoSBwcmltb3JkaWFsbWVudGUgZGlyaWdpZGEgYSBvYnRlbmVyIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLgo1LiBSZXByZXNlbnRhY2lvbmVzLCBHYXJhbnTDrWFzIHkgTGltaXRhY2lvbmVzIGRlIFJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTEFTIFBBUlRFUyBMTyBBQ09SREFSQU4gREUgT1RSQSBGT1JNQSBQT1IgRVNDUklUTywgRUwgTElDRU5DSUFOVEUgT0ZSRUNFIExBIE9CUkEgKEVOIEVMIEVTVEFETyBFTiBFTCBRVUUgU0UgRU5DVUVOVFJBKSDigJxUQUwgQ1VBTOKAnSwgU0lOIEJSSU5EQVIgR0FSQU5Uw41BUyBERSBDTEFTRSBBTEdVTkEgUkVTUEVDVE8gREUgTEEgT0JSQSwgWUEgU0VBIEVYUFJFU0EsIElNUEzDjUNJVEEsIExFR0FMIE8gQ1VBTFFVSUVSQSBPVFJBLCBJTkNMVVlFTkRPLCBTSU4gTElNSVRBUlNFIEEgRUxMQVMsIEdBUkFOVMONQVMgREUgVElUVUxBUklEQUQsIENPTUVSQ0lBQklMSURBRCwgQURBUFRBQklMSURBRCBPIEFERUNVQUNJw5NOIEEgUFJPUMOTU0lUTyBERVRFUk1JTkFETywgQVVTRU5DSUEgREUgSU5GUkFDQ0nDk04sIERFIEFVU0VOQ0lBIERFIERFRkVDVE9TIExBVEVOVEVTIE8gREUgT1RSTyBUSVBPLCBPIExBIFBSRVNFTkNJQSBPIEFVU0VOQ0lBIERFIEVSUk9SRVMsIFNFQU4gTyBOTyBERVNDVUJSSUJMRVMgKFBVRURBTiBPIE5PIFNFUiBFU1RPUyBERVNDVUJJRVJUT1MpLiBBTEdVTkFTIEpVUklTRElDQ0lPTkVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgR0FSQU5Uw41BUyBJTVBMw41DSVRBUywgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KNi4gTGltaXRhY2nDs24gZGUgcmVzcG9uc2FiaWxpZGFkLgpBIE1FTk9TIFFVRSBMTyBFWElKQSBFWFBSRVNBTUVOVEUgTEEgTEVZIEFQTElDQUJMRSwgRUwgTElDRU5DSUFOVEUgTk8gU0VSw4EgUkVTUE9OU0FCTEUgQU5URSBVU1RFRCBQT1IgREHDkU8gQUxHVU5PLCBTRUEgUE9SIFJFU1BPTlNBQklMSURBRCBFWFRSQUNPTlRSQUNUVUFMLCBQUkVDT05UUkFDVFVBTCBPIENPTlRSQUNUVUFMLCBPQkpFVElWQSBPIFNVQkpFVElWQSwgU0UgVFJBVEUgREUgREHDkU9TIE1PUkFMRVMgTyBQQVRSSU1PTklBTEVTLCBESVJFQ1RPUyBPIElORElSRUNUT1MsIFBSRVZJU1RPUyBPIElNUFJFVklTVE9TIFBST0RVQ0lET1MgUE9SIEVMIFVTTyBERSBFU1RBIExJQ0VOQ0lBIE8gREUgTEEgT0JSQSwgQVVOIENVQU5ETyBFTCBMSUNFTkNJQU5URSBIQVlBIFNJRE8gQURWRVJUSURPIERFIExBIFBPU0lCSUxJREFEIERFIERJQ0hPUyBEQcORT1MuIEFMR1VOQVMgTEVZRVMgTk8gUEVSTUlURU4gTEEgRVhDTFVTScOTTiBERSBDSUVSVEEgUkVTUE9OU0FCSUxJREFELCBFTiBDVVlPIENBU08gRVNUQSBFWENMVVNJw5NOIFBVRURFIE5PIEFQTElDQVJTRSBBIFVTVEVELgo3LiBUw6lybWluby4KYS4JRXN0YSBMaWNlbmNpYSB5IGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgZW4gdmlydHVkIGRlIGVsbGEgdGVybWluYXLDoW4gYXV0b23DoXRpY2FtZW50ZSBzaSBVc3RlZCBpbmZyaW5nZSBhbGd1bmEgY29uZGljacOzbiBlc3RhYmxlY2lkYSBlbiBlbGxhLiBTaW4gZW1iYXJnbywgbG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgcXVlIGhhbiByZWNpYmlkbyBPYnJhcyBEZXJpdmFkYXMgbyBDb2xlY3RpdmFzIGRlIFVzdGVkIGRlIGNvbmZvcm1pZGFkIGNvbiBlc3RhIExpY2VuY2lhLCBubyB2ZXLDoW4gdGVybWluYWRhcyBzdXMgbGljZW5jaWFzLCBzaWVtcHJlIHF1ZSBlc3RvcyBpbmRpdmlkdW9zIG8gZW50aWRhZGVzIHNpZ2FuIGN1bXBsaWVuZG8gw61udGVncmFtZW50ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YXMgbGljZW5jaWFzLiBMYXMgU2VjY2lvbmVzIDEsIDIsIDUsIDYsIDcsIHkgOCBzdWJzaXN0aXLDoW4gYSBjdWFscXVpZXIgdGVybWluYWNpw7NuIGRlIGVzdGEgTGljZW5jaWEuCmIuCVN1amV0YSBhIGxhcyBjb25kaWNpb25lcyB5IHTDqXJtaW5vcyBhbnRlcmlvcmVzLCBsYSBsaWNlbmNpYSBvdG9yZ2FkYSBhcXXDrSBlcyBwZXJwZXR1YSAoZHVyYW50ZSBlbCBwZXLDrW9kbyBkZSB2aWdlbmNpYSBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgZGUgbGEgb2JyYSkuIE5vIG9ic3RhbnRlIGxvIGFudGVyaW9yLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gYSBwdWJsaWNhciB5L28gZXN0cmVuYXIgbGEgT2JyYSBiYWpvIGNvbmRpY2lvbmVzIGRlIGxpY2VuY2lhIGRpZmVyZW50ZXMgbyBhIGRlamFyIGRlIGRpc3RyaWJ1aXJsYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgTGljZW5jaWEgZW4gY3VhbHF1aWVyIG1vbWVudG87IGVuIGVsIGVudGVuZGlkbywgc2luIGVtYmFyZ28sIHF1ZSBlc2EgZWxlY2Npw7NuIG5vIHNlcnZpcsOhIHBhcmEgcmV2b2NhciBlc3RhIGxpY2VuY2lhIG8gcXVlIGRlYmEgc2VyIG90b3JnYWRhICwgYmFqbyBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgbGljZW5jaWEpLCB5IGVzdGEgbGljZW5jaWEgY29udGludWFyw6EgZW4gcGxlbm8gdmlnb3IgeSBlZmVjdG8gYSBtZW5vcyBxdWUgc2VhIHRlcm1pbmFkYSBjb21vIHNlIGV4cHJlc2EgYXRyw6FzLiBMYSBMaWNlbmNpYSByZXZvY2FkYSBjb250aW51YXLDoSBzaWVuZG8gcGxlbmFtZW50ZSB2aWdlbnRlIHkgZWZlY3RpdmEgc2kgbm8gc2UgbGUgZGEgdMOpcm1pbm8gZW4gbGFzIGNvbmRpY2lvbmVzIGluZGljYWRhcyBhbnRlcmlvcm1lbnRlLgo4LiBWYXJpb3MuCmEuCUNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuCmIuCVNpIGFsZ3VuYSBkaXNwb3NpY2nDs24gZGUgZXN0YSBMaWNlbmNpYSByZXN1bHRhIGludmFsaWRhZGEgbyBubyBleGlnaWJsZSwgc2Vnw7puIGxhIGxlZ2lzbGFjacOzbiB2aWdlbnRlLCBlc3RvIG5vIGFmZWN0YXLDoSBuaSBsYSB2YWxpZGV6IG5pIGxhIGFwbGljYWJpbGlkYWQgZGVsIHJlc3RvIGRlIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEgeSwgc2luIGFjY2nDs24gYWRpY2lvbmFsIHBvciBwYXJ0ZSBkZSBsb3Mgc3VqZXRvcyBkZSBlc3RlIGFjdWVyZG8sIGFxdcOpbGxhIHNlIGVudGVuZGVyw6EgcmVmb3JtYWRhIGxvIG3DrW5pbW8gbmVjZXNhcmlvIHBhcmEgaGFjZXIgcXVlIGRpY2hhIGRpc3Bvc2ljacOzbiBzZWEgdsOhbGlkYSB5IGV4aWdpYmxlLgpjLglOaW5nw7puIHTDqXJtaW5vIG8gZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgc2UgZXN0aW1hcsOhIHJlbnVuY2lhZGEgeSBuaW5ndW5hIHZpb2xhY2nDs24gZGUgZWxsYSBzZXLDoSBjb25zZW50aWRhIGEgbWVub3MgcXVlIGVzYSByZW51bmNpYSBvIGNvbnNlbnRpbWllbnRvIHNlYSBvdG9yZ2FkbyBwb3IgZXNjcml0byB5IGZpcm1hZG8gcG9yIGxhIHBhcnRlIHF1ZSByZW51bmNpZSBvIGNvbnNpZW50YS4KZC4JRXN0YSBMaWNlbmNpYSByZWZsZWphIGVsIGFjdWVyZG8gcGxlbm8gZW50cmUgbGFzIHBhcnRlcyByZXNwZWN0byBhIGxhIE9icmEgYXF1w60gbGljZW5jaWFkYS4gTm8gaGF5IGFycmVnbG9zLCBhY3VlcmRvcyBvIGRlY2xhcmFjaW9uZXMgcmVzcGVjdG8gYSBsYSBPYnJhIHF1ZSBubyBlc3TDqW4gZXNwZWNpZmljYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gRWwgTGljZW5jaWFudGUgbm8gc2UgdmVyw6EgbGltaXRhZG8gcG9yIG5pbmd1bmEgZGlzcG9zaWNpw7NuIGFkaWNpb25hbCBxdWUgcHVlZGEgc3VyZ2lyIGVuIGFsZ3VuYSBjb211bmljYWNpw7NuIGVtYW5hZGEgZGUgVXN0ZWQuIEVzdGEgTGljZW5jaWEgbm8gcHVlZGUgc2VyIG1vZGlmaWNhZGEgc2luIGVsIGNvbnNlbnRpbWllbnRvIG11dHVvIHBvciBlc2NyaXRvIGRlbCBMaWNlbmNpYW50ZSB5IFVzdGVkLgo= |