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

Full description

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_ 1808493153370505216
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=