Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial
1 recurso en línea (61 páginas) : ilustraciones color, tablas, figuras.
- Autores:
-
Sotelo Sepúlveda, Henderson Yhardany
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2018
- Institución:
- Universidad Pedagógica y Tecnológica de Colombia
- Repositorio:
- RiUPTC: Repositorio Institucional UPTC
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.uptc.edu.co:001/2502
- Acceso en línea:
- http://repositorio.uptc.edu.co/handle/001/2502
- Palabra clave:
- Procesamiento de imágenes
Gráficos por computador
Fibra óptica
Comunicación por fibra óptica
Algoritmos computacionales
Software
Procesamiento digital de imágenes
Sistema
Patch cord
- Rights
- openAccess
- License
- Copyright (c) 2018 Universidad Pedagógica y Tecnológica de Colombia
id |
REPOUPTC2_14ba29cce02cc3de7cafba27d62148a8 |
---|---|
oai_identifier_str |
oai:repositorio.uptc.edu.co:001/2502 |
network_acronym_str |
REPOUPTC2 |
network_name_str |
RiUPTC: Repositorio Institucional UPTC |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial |
title |
Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial |
spellingShingle |
Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial Procesamiento de imágenes Gráficos por computador Fibra óptica Comunicación por fibra óptica Algoritmos computacionales Software Procesamiento digital de imágenes Sistema Patch cord |
title_short |
Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial |
title_full |
Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial |
title_fullStr |
Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial |
title_full_unstemmed |
Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial |
title_sort |
Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial |
dc.creator.fl_str_mv |
Sotelo Sepúlveda, Henderson Yhardany |
dc.contributor.advisor.spa.fl_str_mv |
Jiménez López, Fabián Rolando |
dc.contributor.author.none.fl_str_mv |
Sotelo Sepúlveda, Henderson Yhardany |
dc.subject.armarc.none.fl_str_mv |
Procesamiento de imágenes Gráficos por computador Fibra óptica Comunicación por fibra óptica |
topic |
Procesamiento de imágenes Gráficos por computador Fibra óptica Comunicación por fibra óptica Algoritmos computacionales Software Procesamiento digital de imágenes Sistema Patch cord |
dc.subject.armarc.spa.fl_str_mv |
Algoritmos computacionales |
dc.subject.proposal.spa.fl_str_mv |
Software Procesamiento digital de imágenes Sistema Patch cord |
description |
1 recurso en línea (61 páginas) : ilustraciones color, tablas, figuras. |
publishDate |
2018 |
dc.date.issued.none.fl_str_mv |
2018 |
dc.date.accessioned.none.fl_str_mv |
2019-03-28T19:54:37Z |
dc.date.available.none.fl_str_mv |
2019-03-28T19:54:37Z |
dc.type.spa.fl_str_mv |
Trabajo de grado - Pregrado |
dc.type.coar.spa.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.version.spa.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.content.spa.fl_str_mv |
Text |
dc.type.redcol.spa.fl_str_mv |
https://purl.org/redcol/resource_type/TP |
dc.type.coarversion.spa.fl_str_mv |
http://purl.org/coar/version/c_970fb48d4fbd8a85 |
format |
http://purl.org/coar/resource_type/c_7a1f |
status_str |
publishedVersion |
dc.identifier.citation.spa.fl_str_mv |
Sotelo Sepúlveda, H. Y. (2018). Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial. (Trabajo de pregrado). Universidad Pedagógica y Tecnológica de Colombia, Sogamoso. http://repositorio.uptc.edu.co/handle/001/2502 |
dc.identifier.uri.none.fl_str_mv |
http://repositorio.uptc.edu.co/handle/001/2502 |
identifier_str_mv |
Sotelo Sepúlveda, H. Y. (2018). Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial. (Trabajo de pregrado). Universidad Pedagógica y Tecnológica de Colombia, Sogamoso. http://repositorio.uptc.edu.co/handle/001/2502 |
url |
http://repositorio.uptc.edu.co/handle/001/2502 |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.relation.references.spa.fl_str_mv |
Visión Artificial [en línea], 2010 [revisado Abril 29 de 2018]. Disponible en Internet: http://www.etitudela.com/celula/downloads/visionartificial.pdf COGNEX COMPANY, Introducción a la visión artificial una guía para la automatización de procesos y mejoras de calidad [revisado Abril 29 de 2018]. Disponible en Internet: http://www.ikusmen.com/documentos/descargas/3cbb38_Introduction%20to%20Machine%20Vision.pdf GONZALEZ, R.C. y R.E. WOODS. Digital Image Processing. Prentice Hall, 2001. Pág: 37-38 ARTIGAS M JOSÉ, CAPILLA PASCUAL y PUJOL JAUME. Tecnología del color, Els autors, Valencia, 2002. Pág. 32 CUENCA CASTILLO PEDRO ANGEL. Codificación y transmisión robusta de señales de video MEPG-2 de caudal variable sobre redes de transmisión asíncrona ATM, Universidad de Castilla la Mancha, colección tesis doctorales , 1998. Pág. 66. [Revisado Abril 29 de 2018]. Disponible en Internet: https://books.google.com.co/books?id=8CMEBAnjVGgC&pg=PA66&dq=formato+rgb&hl=es&sa=X&ved=0ahUKEwih6v7O3NbaAhVuk-AKHcZdBE8Q6AEIJzAA#v=onepage&q=formato%20rgb&f=false MONZÓN MARCELO, Retoque fotográfico desde cero, Editorial A todo color, Pág. 22-23. [Revisado Abril 29 de 2018]. Disponible en Internet: https://books.google.com.co/books?id=O8tN4J-ErTYC&pg=PA23&dq=formato+CMY&hl=es&sa=X&ved=0ahUKEwj8r4XW8ODaAhUvuVkKHSfgBfYQ6AEIMzAC#v=onepage&q=formato%20CMY&f=false, Pág. 22-23 Historia del proyector de video de lo analógico a lo digital, [Revisado Abril 29 de 2018]. Disponible en Internet: https://eikonos.com/blog/historia-del-proyector-de-video-de-lo-analogico-lo-digital/ Thomas Edison y la patente del primer proyector de cine, [Revisado Abril 29 de 2018]. Disponible en Internet: https://www.telesurtv.net/news/Thomas-Edison-y-la-patente-del-primer-proyector-de-cine-20160821-0020.html GONZALEZ, R.C. y R.E. WOODS. Digital Image Processing. Prentice Hall, 2001. Pág. 46 Conozca más acerca de los cordones de fibra óptica (patchcords), Praxtel Telecomunications. Pág. 1-5 LEE HL BERNARD, Conector de fibra óptica Higiene, Libro Blanco, Senko Advanced components [revisado Abril 29 de 2018]. Disponible en Internet: http://www.senko.com/es/technical/pdf/Fiber%20Optic%20Connector%20Hygiene_Esp.pdf Norma IEC 61300-3-35, [Revisado Abril 29 de 2018]. Disponible en Internet: https://www.c3comunicaciones.es/la-norma-iec-61300-3-35/ Mathworks, Image Processing toolbox, [Revisado Abril 29 de 2018]. Disponible en Internet: https://la.mathworks.com/products/image-processing-toolbox.html?adobe_mc_ref=https%3A%2F%2Fwww.google.com.co%2F LOBOS EDITH, GIBELLI TATIANA, BERTONE RODOLFO, Programación Estructurada en un Curso Introductorio, una Experiencia Explorando Python, [Revisado Abril 29 de 2018]. Disponible en Internet: http://sedici.unlp.edu.ar/bitstream/handle/10915/50639/Documento_completo.pdf-PDFA.pdf?sequence=1 OPEN CV™, [Revisado Abril 29 de 2018]. Disponible en Internet: https://opencv.org/ LICLIPSE™, [Revisado Abril 29 de 2018]. Disponible en Internet: https://www.liclipse.com/ https://www.researchgate.net/figure/Simplified-cross-section-of-the-human-eye-Gonzalez-Wood-74_fig23_322748447 https://hisour.com/es/rgb-color-model-24867/ https://books.google.com.co/books?id=O8tN4J-ErTYC&pg=PA23&dq=formato+CMY&hl=es&sa=X&ved=0ahUKEwj8r4XW8ODaAhUvuVkKHSfgBfYQ6AEIMzAC#v=onepage&q=formato%20CMY&f=false, Pág. 22 https://books.google.com.co/books?id=O8tN4J-ErTYC&pg=PA23&dq=formato+CMY&hl=es&sa=X&ved=0ahUKEwj8r4XW8ODaAhUvuVkKHSfgBfYQ6AEIMzAC#v=onepage&q=formato%20CMY&f=false, Pág. 23 http://blog.kleinproject.org/?p=588 https://stackoverflow.com/questions/11164974/r-plot-filled-longitude-latitude-grid-cells-on-map http://www.glyptodont.com/span/photocs5/glyptodon/clase01/main04.htm GONZALEZ, R.C. y R.E. WOODS. Digital Image Processing. Prentice Hall, 2001. Pág. 46 http://www.monografias.com/trabajos-pdf/cordones-fibra-optica-patchcords/cordones-fibra-optica-patchcords.pdf, pág. 5 http://www.senko.com/es/technical/pdf/Fiber%20Optic%20Connector%20Hygiene_Esp.pdf Pág. 8 https://www.domailleengineering.com/products/microscopes/de2503.php https://www.amazon.com/Microsoft-LifeCam-HD-6000-Notebooks-7PD-00008/dp/B009KG9FUQ https://docs.opencv.org/3.3.0/d7/d4d/tutorial_py_thresholding.html |
dc.rights.spa.fl_str_mv |
Copyright (c) 2018 Universidad Pedagógica y Tecnológica de Colombia |
dc.rights.uri.spa.fl_str_mv |
https://creativecommons.org/licenses/by-nc/4.0/ |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/openAccess |
dc.rights.creativecommons.spa.fl_str_mv |
Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0) |
dc.rights.coar.spa.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
rights_invalid_str_mv |
Copyright (c) 2018 Universidad Pedagógica y Tecnológica de Colombia https://creativecommons.org/licenses/by-nc/4.0/ Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0) http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
dc.publisher.spa.fl_str_mv |
Universidad Pedagógica y Tecnológica de Colombia |
dc.publisher.department.spa.fl_str_mv |
Escuela de Ingeniería Electrónica |
dc.publisher.faculty.spa.fl_str_mv |
Facultad Seccional de Sogamoso |
institution |
Universidad Pedagógica y Tecnológica de Colombia |
bitstream.url.fl_str_mv |
https://repositorio.uptc.edu.co/bitstreams/d1f09fd6-2981-4edc-9760-a11be991be8e/download https://repositorio.uptc.edu.co/bitstreams/c4bc6b50-bd37-4d32-b0e7-d2387cec216b/download https://repositorio.uptc.edu.co/bitstreams/180f58c4-e294-4059-9a8c-2730ec5ccb23/download https://repositorio.uptc.edu.co/bitstreams/a9f37784-8a8d-4c88-85af-0b0738810c45/download https://repositorio.uptc.edu.co/bitstreams/07845179-0a0a-44c6-8b2c-91445c60aed2/download https://repositorio.uptc.edu.co/bitstreams/68d3136c-879b-4847-a048-f1c72ced45e5/download https://repositorio.uptc.edu.co/bitstreams/1c44be6e-c9e5-466c-adfd-03c00ea05136/download |
bitstream.checksum.fl_str_mv |
72cf8963f506c3859f8fc858aa98c274 f0cd14dfeda0062fd4b3b93123c63611 88794144ff048353b359a3174871b0d5 27f2ab9180e1f2de25134e4e85033c3f e1c06d85ae7b8b032bef47e42e4c08f9 0953d782ad9093e118ee08165ea9b42c e06a4a7439d657aa915f326a023548b2 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
UPTC DSpace |
repository.mail.fl_str_mv |
repositorio.uptc@uptc.edu.co |
_version_ |
1814076240941809664 |
spelling |
Jiménez López, Fabián Rolando042f4c2de5e0b8c6180e9d2423fd43c3-1Sotelo Sepúlveda, Henderson Yhardanyc25d671b8e1266c0b58f8b79bbcf5829-12019-03-28T19:54:37Z2019-03-28T19:54:37Z2018Sotelo Sepúlveda, H. Y. (2018). Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificial. (Trabajo de pregrado). Universidad Pedagógica y Tecnológica de Colombia, Sogamoso. http://repositorio.uptc.edu.co/handle/001/2502http://repositorio.uptc.edu.co/handle/001/25021 recurso en línea (61 páginas) : ilustraciones color, tablas, figuras.En este documento se presenta el diseño e implementación de un algoritmo para detectar impurezas en conectores de fibra óptica usando técnicas de visión artificial. El sistema fue implementado y probado en el laboratorio de producción de la empresa Microlink S.A.S como respuesta a una necesidad de automatizar el proceso de inspección de los conectores de los patch cords que se fabrican en la empresa. Durante el proceso de desarrollo se plantearon dos algoritmos diferentes buscando cumplir las especificaciones requeridas, uno basado en la comparación de histogramas de imagen y el otro basado en el uso de la técnica de umbralización adaptativa. El sistema implementado se desarrolló mediante el uso de una cámara que captura la imagen del monitor de un microscopio especializado para fibra óptica, que posteriormente es procesada en el computador mediante el uso del algoritmo planteado e implementado con el lenguaje open source de programación Python™ y la utilización de librería Open CV potencializada para el procesamiento digital de imágenes. Con la implementación de este sistema en el laboratorio se pudo evidenciar una mejora a nivel de calidad en la inspección ya que el proceso realizado por el software es altamente eficiente y brinda un soporte adicional de datos que genera más confianza en los clientes.Bibliografía y webgrafía: páginas 56-57.PregradoIngeniero Electrónicoapplication/pdfspaUniversidad Pedagógica y Tecnológica de ColombiaEscuela de Ingeniería ElectrónicaFacultad Seccional de SogamosoCopyright (c) 2018 Universidad Pedagógica y Tecnológica de Colombiahttps://creativecommons.org/licenses/by-nc/4.0/info:eu-repo/semantics/openAccessAtribución-NoComercial 4.0 Internacional (CC BY-NC 4.0)http://purl.org/coar/access_right/c_abf2Desarrollo de un algoritmo para la detección de impurezas en conectores de fibra óptica por medio de visión artificialTrabajo de grado - Pregradohttp://purl.org/coar/resource_type/c_7a1finfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionTexthttps://purl.org/redcol/resource_type/TPhttp://purl.org/coar/version/c_970fb48d4fbd8a85Visión Artificial [en línea], 2010 [revisado Abril 29 de 2018]. Disponible en Internet: http://www.etitudela.com/celula/downloads/visionartificial.pdfCOGNEX COMPANY, Introducción a la visión artificial una guía para la automatización de procesos y mejoras de calidad [revisado Abril 29 de 2018]. Disponible en Internet: http://www.ikusmen.com/documentos/descargas/3cbb38_Introduction%20to%20Machine%20Vision.pdfGONZALEZ, R.C. y R.E. WOODS. Digital Image Processing. Prentice Hall, 2001. Pág: 37-38ARTIGAS M JOSÉ, CAPILLA PASCUAL y PUJOL JAUME. Tecnología del color, Els autors, Valencia, 2002. Pág. 32CUENCA CASTILLO PEDRO ANGEL. Codificación y transmisión robusta de señales de video MEPG-2 de caudal variable sobre redes de transmisión asíncrona ATM, Universidad de Castilla la Mancha, colección tesis doctorales , 1998. Pág. 66. [Revisado Abril 29 de 2018]. Disponible en Internet: https://books.google.com.co/books?id=8CMEBAnjVGgC&pg=PA66&dq=formato+rgb&hl=es&sa=X&ved=0ahUKEwih6v7O3NbaAhVuk-AKHcZdBE8Q6AEIJzAA#v=onepage&q=formato%20rgb&f=falseMONZÓN MARCELO, Retoque fotográfico desde cero, Editorial A todo color, Pág. 22-23. [Revisado Abril 29 de 2018]. Disponible en Internet: https://books.google.com.co/books?id=O8tN4J-ErTYC&pg=PA23&dq=formato+CMY&hl=es&sa=X&ved=0ahUKEwj8r4XW8ODaAhUvuVkKHSfgBfYQ6AEIMzAC#v=onepage&q=formato%20CMY&f=false, Pág. 22-23Historia del proyector de video de lo analógico a lo digital, [Revisado Abril 29 de 2018]. Disponible en Internet: https://eikonos.com/blog/historia-del-proyector-de-video-de-lo-analogico-lo-digital/Thomas Edison y la patente del primer proyector de cine, [Revisado Abril 29 de 2018]. Disponible en Internet: https://www.telesurtv.net/news/Thomas-Edison-y-la-patente-del-primer-proyector-de-cine-20160821-0020.htmlGONZALEZ, R.C. y R.E. WOODS. Digital Image Processing. Prentice Hall, 2001. Pág. 46Conozca más acerca de los cordones de fibra óptica (patchcords), Praxtel Telecomunications. Pág. 1-5LEE HL BERNARD, Conector de fibra óptica Higiene, Libro Blanco, Senko Advanced components [revisado Abril 29 de 2018]. Disponible en Internet: http://www.senko.com/es/technical/pdf/Fiber%20Optic%20Connector%20Hygiene_Esp.pdfNorma IEC 61300-3-35, [Revisado Abril 29 de 2018]. Disponible en Internet: https://www.c3comunicaciones.es/la-norma-iec-61300-3-35/Mathworks, Image Processing toolbox, [Revisado Abril 29 de 2018]. Disponible en Internet: https://la.mathworks.com/products/image-processing-toolbox.html?adobe_mc_ref=https%3A%2F%2Fwww.google.com.co%2FLOBOS EDITH, GIBELLI TATIANA, BERTONE RODOLFO, Programación Estructurada en un Curso Introductorio, una Experiencia Explorando Python, [Revisado Abril 29 de 2018]. Disponible en Internet: http://sedici.unlp.edu.ar/bitstream/handle/10915/50639/Documento_completo.pdf-PDFA.pdf?sequence=1OPEN CV™, [Revisado Abril 29 de 2018]. Disponible en Internet: https://opencv.org/LICLIPSE™, [Revisado Abril 29 de 2018]. Disponible en Internet: https://www.liclipse.com/https://www.researchgate.net/figure/Simplified-cross-section-of-the-human-eye-Gonzalez-Wood-74_fig23_322748447https://hisour.com/es/rgb-color-model-24867/https://books.google.com.co/books?id=O8tN4J-ErTYC&pg=PA23&dq=formato+CMY&hl=es&sa=X&ved=0ahUKEwj8r4XW8ODaAhUvuVkKHSfgBfYQ6AEIMzAC#v=onepage&q=formato%20CMY&f=false, Pág. 22https://books.google.com.co/books?id=O8tN4J-ErTYC&pg=PA23&dq=formato+CMY&hl=es&sa=X&ved=0ahUKEwj8r4XW8ODaAhUvuVkKHSfgBfYQ6AEIMzAC#v=onepage&q=formato%20CMY&f=false, Pág. 23http://blog.kleinproject.org/?p=588https://stackoverflow.com/questions/11164974/r-plot-filled-longitude-latitude-grid-cells-on-maphttp://www.glyptodont.com/span/photocs5/glyptodon/clase01/main04.htmGONZALEZ, R.C. y R.E. WOODS. Digital Image Processing. Prentice Hall, 2001. Pág. 46http://www.monografias.com/trabajos-pdf/cordones-fibra-optica-patchcords/cordones-fibra-optica-patchcords.pdf, pág. 5http://www.senko.com/es/technical/pdf/Fiber%20Optic%20Connector%20Hygiene_Esp.pdf Pág. 8https://www.domailleengineering.com/products/microscopes/de2503.phphttps://www.amazon.com/Microsoft-LifeCam-HD-6000-Notebooks-7PD-00008/dp/B009KG9FUQhttps://docs.opencv.org/3.3.0/d7/d4d/tutorial_py_thresholding.htmlProcesamiento de imágenesGráficos por computadorFibra ópticaComunicación por fibra ópticaAlgoritmos computacionalesSoftwareProcesamiento digital de imágenesSistemaPatch cordORIGINALTGT-1092.pdfTGT-1092.pdfArchivo principalapplication/pdf1522514https://repositorio.uptc.edu.co/bitstreams/d1f09fd6-2981-4edc-9760-a11be991be8e/download72cf8963f506c3859f8fc858aa98c274MD51A-392.pdfA-392.pdfAutorización publicaciónapplication/pdf3292034https://repositorio.uptc.edu.co/bitstreams/c4bc6b50-bd37-4d32-b0e7-d2387cec216b/downloadf0cd14dfeda0062fd4b3b93123c63611MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-814798https://repositorio.uptc.edu.co/bitstreams/180f58c4-e294-4059-9a8c-2730ec5ccb23/download88794144ff048353b359a3174871b0d5MD53TEXTTGT-1092.pdf.txtTGT-1092.pdf.txtExtracted texttext/plain79861https://repositorio.uptc.edu.co/bitstreams/a9f37784-8a8d-4c88-85af-0b0738810c45/download27f2ab9180e1f2de25134e4e85033c3fMD54A-392.pdf.txtA-392.pdf.txtExtracted texttext/plain2https://repositorio.uptc.edu.co/bitstreams/07845179-0a0a-44c6-8b2c-91445c60aed2/downloade1c06d85ae7b8b032bef47e42e4c08f9MD56THUMBNAILTGT-1092.pdf.jpgTGT-1092.pdf.jpgGenerated Thumbnailimage/jpeg2642https://repositorio.uptc.edu.co/bitstreams/68d3136c-879b-4847-a048-f1c72ced45e5/download0953d782ad9093e118ee08165ea9b42cMD55A-392.pdf.jpgA-392.pdf.jpgGenerated Thumbnailimage/jpeg6150https://repositorio.uptc.edu.co/bitstreams/1c44be6e-c9e5-466c-adfd-03c00ea05136/downloade06a4a7439d657aa915f326a023548b2MD57001/2502oai:repositorio.uptc.edu.co:001/25022023-03-22 15:08:48.148https://creativecommons.org/licenses/by-nc/4.0/Copyright (c) 2018 Universidad Pedagógica y Tecnológica de Colombiaopen.accesshttps://repositorio.uptc.edu.coUPTC DSpacerepositorio.uptc@uptc.edu.coTEEgT0JSQSAoVEFMIFkgQ09NTyBTRSBERUZJTkUgTcOBUyBBREVMQU5URSkgU0UgT1RPUkdBIEJBSk8gTE9TIFRFUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgUMOaQkxJQ0EgREUgQ1JFQVRJVkUgQ09NTU9OUyAo4oCcTFBDQ+KAnSBPIOKAnExJQ0VOQ0lB4oCdKS4gTEEgT0JSQSBFU1TDgSBQUk9URUdJREEgUE9SIERFUkVDSE9TIERFIEFVVE9SIFkvVSBPVFJBUyBMRVlFUyBBUExJQ0FCTEVTLiBRVUVEQSBQUk9ISUJJRE8gQ1VBTFFVSUVSIFVTTyBRVUUgU0UgSEFHQSBERSBMQSBPQlJBIFFVRSBOTyBDVUVOVEUgQ09OIExBIEFVVE9SSVpBQ0nDk04gUEVSVElORU5URSBERSBDT05GT1JNSURBRCBDT04gTE9TIFTDiVJNSU5PUyBERSBFU1RBIExJQ0VOQ0lBIFkgREUgTEEgTEVZIERFIERFUkVDSE8gREUgQVVUT1IuCk1FRElBTlRFIEVMIEVKRVJDSUNJTyBERSBDVUFMUVVJRVJBIERFIExPUyBERVJFQ0hPUyBRVUUgU0UgT1RPUkdBTiBFTiBFU1RBIExJQ0VOQ0lBLCBVU1RFRCBBQ0VQVEEgWSBBQ1VFUkRBIFFVRURBUiBPQkxJR0FETyBFTiBMT1MgVEVSTUlOT1MgUVVFIFNFIFNFw5FBTEFOIEVOIEVMTEEuIEVMIExJQ0VOQ0lBTlRFIENPTkNFREUgQSBVU1RFRCBMT1MgREVSRUNIT1MgQ09OVEVOSURPUyBFTiBFU1RBIExJQ0VOQ0lBIENPTkRJQ0lPTkFET1MgQSBMQSBBQ0VQVEFDScOTTiBERSBTVVMgVEVSTUlOT1MgWSBDT05ESUNJT05FUy4KMS4gRGVmaW5pY2lvbmVzCmEuCU9icmEgQ29sZWN0aXZhIGVzIHVuYSBvYnJhLCB0YWwgY29tbyB1bmEgcHVibGljYWNpw7NuIHBlcmnDs2RpY2EsIHVuYSBhbnRvbG9nw61hLCBvIHVuYSBlbmNpY2xvcGVkaWEsIGVuIGxhIHF1ZSBsYSBvYnJhIGVuIHN1IHRvdGFsaWRhZCwgc2luIG1vZGlmaWNhY2nDs24gYWxndW5hLCBqdW50byBjb24gdW4gZ3J1cG8gZGUgb3RyYXMgY29udHJpYnVjaW9uZXMgcXVlIGNvbnN0aXR1eWVuIG9icmFzIHNlcGFyYWRhcyBlIGluZGVwZW5kaWVudGVzIGVuIHPDrSBtaXNtYXMsIHNlIGludGVncmFuIGVuIHVuIHRvZG8gY29sZWN0aXZvLiBVbmEgT2JyYSBxdWUgY29uc3RpdHV5ZSB1bmEgb2JyYSBjb2xlY3RpdmEgbm8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIChjb21vIHNlIGRlZmluZSBhYmFqbykgcGFyYSBsb3MgcHJvcMOzc2l0b3MgZGUgZXN0YSBsaWNlbmNpYS4gYXF1ZWxsYSBwcm9kdWNpZGEgcG9yIHVuIGdydXBvIGRlIGF1dG9yZXMsIGVuIHF1ZSBsYSBPYnJhIHNlIGVuY3VlbnRyYSBzaW4gbW9kaWZpY2FjaW9uZXMsIGp1bnRvIGNvbiB1bmEgY2llcnRhIGNhbnRpZGFkIGRlIG90cmFzIGNvbnRyaWJ1Y2lvbmVzLCBxdWUgY29uc3RpdHV5ZW4gZW4gc8OtIG1pc21vcyB0cmFiYWpvcyBzZXBhcmFkb3MgZSBpbmRlcGVuZGllbnRlcywgcXVlIHNvbiBpbnRlZ3JhZG9zIGFsIHRvZG8gY29sZWN0aXZvLCB0YWxlcyBjb21vIHB1YmxpY2FjaW9uZXMgcGVyacOzZGljYXMsIGFudG9sb2fDrWFzIG8gZW5jaWNsb3BlZGlhcy4KYi4JT2JyYSBEZXJpdmFkYSBzaWduaWZpY2EgdW5hIG9icmEgYmFzYWRhIGVuIGxhIG9icmEgb2JqZXRvIGRlIGVzdGEgbGljZW5jaWEgbyBlbiDDqXN0YSB5IG90cmFzIG9icmFzIHByZWV4aXN0ZW50ZXMsIHRhbGVzIGNvbW8gdHJhZHVjY2lvbmVzLCBhcnJlZ2xvcyBtdXNpY2FsZXMsIGRyYW1hdGl6YWNpb25lcywg4oCcZmljY2lvbmFsaXphY2lvbmVz4oCdLCB2ZXJzaW9uZXMgcGFyYSBjaW5lLCDigJxncmFiYWNpb25lcyBkZSBzb25pZG/igJ0sIHJlcHJvZHVjY2lvbmVzIGRlIGFydGUsIHJlc8O6bWVuZXMsIGNvbmRlbnNhY2lvbmVzLCBvIGN1YWxxdWllciBvdHJhIGVuIGxhIHF1ZSBsYSBvYnJhIHB1ZWRhIHNlciB0cmFuc2Zvcm1hZGEsIGNhbWJpYWRhIG8gYWRhcHRhZGEsIGV4Y2VwdG8gYXF1ZWxsYXMgcXVlIGNvbnN0aXR1eWFuIHVuYSBvYnJhIGNvbGVjdGl2YSwgbGFzIHF1ZSBubyBzZXLDoW4gY29uc2lkZXJhZGFzIHVuYSBvYnJhIGRlcml2YWRhIHBhcmEgZWZlY3RvcyBkZSBlc3RhIGxpY2VuY2lhLiAoUGFyYSBldml0YXIgZHVkYXMsIGVuIGVsIGNhc28gZGUgcXVlIGxhIE9icmEgc2VhIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbCBvIHVuYSBncmFiYWNpw7NuIHNvbm9yYSwgcGFyYSBsb3MgZWZlY3RvcyBkZSBlc3RhIExpY2VuY2lhIGxhIHNpbmNyb25pemFjacOzbiB0ZW1wb3JhbCBkZSBsYSBPYnJhIGNvbiB1bmEgaW1hZ2VuIGVuIG1vdmltaWVudG8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIHBhcmEgbG9zIGZpbmVzIGRlIGVzdGEgbGljZW5jaWEpLgpjLglMaWNlbmNpYW50ZSwgZXMgZWwgaW5kaXZpZHVvIG8gbGEgZW50aWRhZCB0aXR1bGFyIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBxdWUgb2ZyZWNlIGxhIE9icmEgZW4gY29uZm9ybWlkYWQgY29uIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLgpkLglBdXRvciBvcmlnaW5hbCwgZXMgZWwgaW5kaXZpZHVvIHF1ZSBjcmXDsyBsYSBPYnJhLgplLglPYnJhLCBlcyBhcXVlbGxhIG9icmEgc3VzY2VwdGlibGUgZGUgcHJvdGVjY2nDs24gcG9yIGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IgeSBxdWUgZXMgb2ZyZWNpZGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhCmYuCVVzdGVkLCBlcyBlbCBpbmRpdmlkdW8gbyBsYSBlbnRpZGFkIHF1ZSBlamVyY2l0YSBsb3MgZGVyZWNob3Mgb3RvcmdhZG9zIGFsIGFtcGFybyBkZSBlc3RhIExpY2VuY2lhIHkgcXVlIGNvbiBhbnRlcmlvcmlkYWQgbm8gaGEgdmlvbGFkbyBsYXMgY29uZGljaW9uZXMgZGUgbGEgbWlzbWEgcmVzcGVjdG8gYSBsYSBPYnJhLCBvIHF1ZSBoYXlhIG9idGVuaWRvIGF1dG9yaXphY2nDs24gZXhwcmVzYSBwb3IgcGFydGUgZGVsIExpY2VuY2lhbnRlIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgYWwgYW1wYXJvIGRlIGVzdGEgTGljZW5jaWEgcGVzZSBhIHVuYSB2aW9sYWNpw7NuIGFudGVyaW9yLgoyLiBEZXJlY2hvcyBkZSBVc29zIEhvbnJhZG9zIHkgZXhjZXBjaW9uZXMgTGVnYWxlcy4KTmFkYSBlbiBlc3RhIExpY2VuY2lhIHBvZHLDoSBzZXIgaW50ZXJwcmV0YWRvIGNvbW8gdW5hIGRpc21pbnVjacOzbiwgbGltaXRhY2nDs24gbyByZXN0cmljY2nDs24gZGUgbG9zIGRlcmVjaG9zIGRlcml2YWRvcyBkZWwgdXNvIGhvbnJhZG8geSBvdHJhcyBsaW1pdGFjaW9uZXMgbyBleGNlcGNpb25lcyBhIGxvcyBkZXJlY2hvcyBkZWwgYXV0b3IgYmFqbyBlbCByw6lnaW1lbiBsZWdhbCB2aWdlbnRlIG8gZGVyaXZhZG8gZGUgY3VhbHF1aWVyIG90cmEgbm9ybWEgcXVlIHNlIGxlIGFwbGlxdWUuCjMuIENvbmNlc2nDs24gZGUgbGEgTGljZW5jaWEuCkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246CmEuCVJlcHJvZHVjaXIgbGEgT2JyYSwgaW5jb3Jwb3JhciBsYSBPYnJhIGVuIHVuYSBvIG3DoXMgT2JyYXMgQ29sZWN0aXZhcywgeSByZXByb2R1Y2lyIGxhIE9icmEgaW5jb3Jwb3JhZGEgZW4gbGFzIE9icmFzIENvbGVjdGl2YXM7CmIuCURpc3RyaWJ1aXIgY29waWFzIG8gZm9ub2dyYW1hcyBkZSBsYXMgT2JyYXMsIGV4aGliaXJsYXMgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXJsYXMgcMO6YmxpY2FtZW50ZSB5L28gcG9uZXJsYXMgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EsIGluY2x1ecOpbmRvbGFzIGNvbW8gaW5jb3Jwb3JhZGFzIGVuIE9icmFzIENvbGVjdGl2YXMsIHNlZ8O6biBjb3JyZXNwb25kYTsKYy4JRGlzdHJpYnVpciBjb3BpYXMgZGUgbGFzIE9icmFzIERlcml2YWRhcyBxdWUgc2UgZ2VuZXJlbiwgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4KTG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyBubyBvdG9yZ2Fkb3MgZXhwcmVzYW1lbnRlIHBvciBlbCBMaWNlbmNpYW50ZSBxdWVkYW4gcG9yIGVzdGUgbWVkaW8gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbyBwZXJvIHNpbiBsaW1pdGFyc2UgYSBhcXVlbGxvcyBxdWUgc2UgbWVuY2lvbmFuIGVuIGxhcyBzZWNjaW9uZXMgNChkKSB5IDQoZSkuCjQuIFJlc3RyaWNjaW9uZXMuCkxhIGxpY2VuY2lhIG90b3JnYWRhIGVuIGxhIGFudGVyaW9yIFNlY2Npw7NuIDMgZXN0w6EgZXhwcmVzYW1lbnRlIHN1amV0YSB5IGxpbWl0YWRhIHBvciBsYXMgc2lndWllbnRlcyByZXN0cmljY2lvbmVzOgphLglVc3RlZCBwdWVkZSBkaXN0cmlidWlyLCBleGhpYmlyIHDDumJsaWNhbWVudGUsIGVqZWN1dGFyIHDDumJsaWNhbWVudGUsIG8gcG9uZXIgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBzw7NsbyBiYWpvIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLCB5IFVzdGVkIGRlYmUgaW5jbHVpciB1bmEgY29waWEgZGUgZXN0YSBsaWNlbmNpYSBvIGRlbCBJZGVudGlmaWNhZG9yIFVuaXZlcnNhbCBkZSBSZWN1cnNvcyBkZSBsYSBtaXNtYSBjb24gY2FkYSBjb3BpYSBkZSBsYSBPYnJhIHF1ZSBkaXN0cmlidXlhLCBleGhpYmEgcMO6YmxpY2FtZW50ZSwgZWplY3V0ZSBww7pibGljYW1lbnRlIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EuIE5vIGVzIHBvc2libGUgb2ZyZWNlciBvIGltcG9uZXIgbmluZ3VuYSBjb25kaWNpw7NuIHNvYnJlIGxhIE9icmEgcXVlIGFsdGVyZSBvIGxpbWl0ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYSBvIGVsIGVqZXJjaWNpbyBkZSBsb3MgZGVyZWNob3MgZGUgbG9zIGRlc3RpbmF0YXJpb3Mgb3RvcmdhZG9zIGVuIGVzdGUgZG9jdW1lbnRvLiBObyBlcyBwb3NpYmxlIHN1YmxpY2VuY2lhciBsYSBPYnJhLiBVc3RlZCBkZWJlIG1hbnRlbmVyIGludGFjdG9zIHRvZG9zIGxvcyBhdmlzb3MgcXVlIGhhZ2FuIHJlZmVyZW5jaWEgYSBlc3RhIExpY2VuY2lhIHkgYSBsYSBjbMOhdXN1bGEgZGUgbGltaXRhY2nDs24gZGUgZ2FyYW50w61hcy4gVXN0ZWQgbm8gcHVlZGUgZGlzdHJpYnVpciwgZXhoaWJpciBww7pibGljYW1lbnRlLCBlamVjdXRhciBww7pibGljYW1lbnRlLCBvIHBvbmVyIGEgZGlzcG9zaWNpw7NuIHDDumJsaWNhIGxhIE9icmEgY29uIGFsZ3VuYSBtZWRpZGEgdGVjbm9sw7NnaWNhIHF1ZSBjb250cm9sZSBlbCBhY2Nlc28gbyBsYSB1dGlsaXphY2nDs24gZGUgZWxsYSBkZSB1bmEgZm9ybWEgcXVlIHNlYSBpbmNvbnNpc3RlbnRlIGNvbiBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4gTG8gYW50ZXJpb3Igc2UgYXBsaWNhIGEgbGEgT2JyYSBpbmNvcnBvcmFkYSBhIHVuYSBPYnJhIENvbGVjdGl2YSwgcGVybyBlc3RvIG5vIGV4aWdlIHF1ZSBsYSBPYnJhIENvbGVjdGl2YSBhcGFydGUgZGUgbGEgb2JyYSBtaXNtYSBxdWVkZSBzdWpldGEgYSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4gU2kgVXN0ZWQgY3JlYSB1bmEgT2JyYSBDb2xlY3RpdmEsIHByZXZpbyBhdmlzbyBkZSBjdWFscXVpZXIgTGljZW5jaWFudGUgZGViZSwgZW4gbGEgbWVkaWRhIGRlIGxvIHBvc2libGUsIGVsaW1pbmFyIGRlIGxhIE9icmEgQ29sZWN0aXZhIGN1YWxxdWllciByZWZlcmVuY2lhIGEgZGljaG8gTGljZW5jaWFudGUgbyBhbCBBdXRvciBPcmlnaW5hbCwgc2Vnw7puIGxvIHNvbGljaXRhZG8gcG9yIGVsIExpY2VuY2lhbnRlIHkgY29uZm9ybWUgbG8gZXhpZ2UgbGEgY2zDoXVzdWxhIDQoYykuCmIuCVVzdGVkIG5vIHB1ZWRlIGVqZXJjZXIgbmluZ3VubyBkZSBsb3MgZGVyZWNob3MgcXVlIGxlIGhhbiBzaWRvIG90b3JnYWRvcyBlbiBsYSBTZWNjacOzbiAzIHByZWNlZGVudGUgZGUgbW9kbyBxdWUgZXN0w6luIHByaW5jaXBhbG1lbnRlIGRlc3RpbmFkb3MgbyBkaXJlY3RhbWVudGUgZGlyaWdpZG9zIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiBFbCBpbnRlcmNhbWJpbyBkZSBsYSBPYnJhIHBvciBvdHJhcyBvYnJhcyBwcm90ZWdpZGFzIHBvciBkZXJlY2hvcyBkZSBhdXRvciwgeWEgc2VhIGEgdHJhdsOpcyBkZSB1biBzaXN0ZW1hIHBhcmEgY29tcGFydGlyIGFyY2hpdm9zIGRpZ2l0YWxlcyAoZGlnaXRhbCBmaWxlLXNoYXJpbmcpIG8gZGUgY3VhbHF1aWVyIG90cmEgbWFuZXJhIG5vIHNlcsOhIGNvbnNpZGVyYWRvIGNvbW8gZXN0YXIgZGVzdGluYWRvIHByaW5jaXBhbG1lbnRlIG8gZGlyaWdpZG8gZGlyZWN0YW1lbnRlIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLCBzaWVtcHJlIHF1ZSBubyBzZSByZWFsaWNlIHVuIHBhZ28gbWVkaWFudGUgdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIGVuIHJlbGFjacOzbiBjb24gZWwgaW50ZXJjYW1iaW8gZGUgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZWwgZGVyZWNobyBkZSBhdXRvci4KYy4JU2kgdXN0ZWQgZGlzdHJpYnV5ZSwgZXhoaWJlIHDDumJsaWNhbWVudGUsIGVqZWN1dGEgcMO6YmxpY2FtZW50ZSBvIGVqZWN1dGEgcMO6YmxpY2FtZW50ZSBlbiBmb3JtYSBkaWdpdGFsIGxhIE9icmEgbyBjdWFscXVpZXIgT2JyYSBEZXJpdmFkYSB1IE9icmEgQ29sZWN0aXZhLCBVc3RlZCBkZWJlIG1hbnRlbmVyIGludGFjdGEgdG9kYSBsYSBpbmZvcm1hY2nDs24gZGUgZGVyZWNobyBkZSBhdXRvciBkZSBsYSBPYnJhIHkgcHJvcG9yY2lvbmFyLCBkZSBmb3JtYSByYXpvbmFibGUgc2Vnw7puIGVsIG1lZGlvIG8gbWFuZXJhIHF1ZSBVc3RlZCBlc3TDqSB1dGlsaXphbmRvOiAoaSkgZWwgbm9tYnJlIGRlbCBBdXRvciBPcmlnaW5hbCBzaSBlc3TDoSBwcm92aXN0byAobyBzZXVkw7NuaW1vLCBzaSBmdWVyZSBhcGxpY2FibGUpLCB5L28gKGlpKSBlbCBub21icmUgZGUgbGEgcGFydGUgbyBsYXMgcGFydGVzIHF1ZSBlbCBBdXRvciBPcmlnaW5hbCB5L28gZWwgTGljZW5jaWFudGUgaHViaWVyZW4gZGVzaWduYWRvIHBhcmEgbGEgYXRyaWJ1Y2nDs24gKHYuZy4sIHVuIGluc3RpdHV0byBwYXRyb2NpbmFkb3IsIGVkaXRvcmlhbCwgcHVibGljYWNpw7NuKSBlbiBsYSBpbmZvcm1hY2nDs24gZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGRlbCBMaWNlbmNpYW50ZSwgdMOpcm1pbm9zIGRlIHNlcnZpY2lvcyBvIGRlIG90cmFzIGZvcm1hcyByYXpvbmFibGVzOyBlbCB0w610dWxvIGRlIGxhIE9icmEgc2kgZXN0w6EgcHJvdmlzdG87IGVuIGxhIG1lZGlkYSBkZSBsbyByYXpvbmFibGVtZW50ZSBmYWN0aWJsZSB5LCBzaSBlc3TDoSBwcm92aXN0bywgZWwgSWRlbnRpZmljYWRvciBVbmlmb3JtZSBkZSBSZWN1cnNvcyAoVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyKSBxdWUgZWwgTGljZW5jaWFudGUgZXNwZWNpZmljYSBwYXJhIHNlciBhc29jaWFkbyBjb24gbGEgT2JyYSwgc2Fsdm8gcXVlIHRhbCBVUkkgbm8gc2UgcmVmaWVyYSBhIGxhIG5vdGEgc29icmUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIG8gYSBsYSBpbmZvcm1hY2nDs24gc29icmUgZWwgbGljZW5jaWFtaWVudG8gZGUgbGEgT2JyYTsgeSBlbiBlbCBjYXNvIGRlIHVuYSBPYnJhIERlcml2YWRhLCBhdHJpYnVpciBlbCBjcsOpZGl0byBpZGVudGlmaWNhbmRvIGVsIHVzbyBkZSBsYSBPYnJhIGVuIGxhIE9icmEgRGVyaXZhZGEgKHYuZy4sICJUcmFkdWNjacOzbiBGcmFuY2VzYSBkZSBsYSBPYnJhIGRlbCBBdXRvciBPcmlnaW5hbCwiIG8gIkd1acOzbiBDaW5lbWF0b2dyw6FmaWNvIGJhc2FkbyBlbiBsYSBPYnJhIG9yaWdpbmFsIGRlbCBBdXRvciBPcmlnaW5hbCIpLiBUYWwgY3LDqWRpdG8gcHVlZGUgc2VyIGltcGxlbWVudGFkbyBkZSBjdWFscXVpZXIgZm9ybWEgcmF6b25hYmxlOyBlbiBlbCBjYXNvLCBzaW4gZW1iYXJnbywgZGUgT2JyYXMgRGVyaXZhZGFzIHUgT2JyYXMgQ29sZWN0aXZhcywgdGFsIGNyw6lkaXRvIGFwYXJlY2Vyw6EsIGNvbW8gbcOtbmltbywgZG9uZGUgYXBhcmVjZSBlbCBjcsOpZGl0byBkZSBjdWFscXVpZXIgb3RybyBhdXRvciBjb21wYXJhYmxlIHkgZGUgdW5hIG1hbmVyYSwgYWwgbWVub3MsIHRhbiBkZXN0YWNhZGEgY29tbyBlbCBjcsOpZGl0byBkZSBvdHJvIGF1dG9yIGNvbXBhcmFibGUuCmQuCVBhcmEgZXZpdGFyIHRvZGEgY29uZnVzacOzbiwgZWwgTGljZW5jaWFudGUgYWNsYXJhIHF1ZSwgY3VhbmRvIGxhIG9icmEgZXMgdW5hIGNvbXBvc2ljacOzbiBtdXNpY2FsOgppLglSZWdhbMOtYXMgcG9yIGludGVycHJldGFjacOzbiB5IGVqZWN1Y2nDs24gYmFqbyBsaWNlbmNpYXMgZ2VuZXJhbGVzLiBFbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgeSBkZSByZWNvbGVjdGFyLCBzZWEgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgU0FZQ08pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbyBXZWJjYXN0KSBsaWNlbmNpYWRhIGJham8gbGljZW5jaWFzIGdlbmVyYWxlcywgc2kgbGEgaW50ZXJwcmV0YWNpw7NuIG8gZWplY3VjacOzbiBkZSBsYSBvYnJhIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBvcmllbnRhZGEgcG9yIG8gZGlyaWdpZGEgYSBsYSBvYnRlbmNpw7NuIGRlIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLgppaS4JUmVnYWzDrWFzIHBvciBGb25vZ3JhbWFzLiBFbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIHJlY29sZWN0YXIsIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIGxvcyBjb25zYWdyYWRvcyBwb3IgbGEgU0FZQ08pLCB1bmEgYWdlbmNpYSBkZSBkZXJlY2hvcyBtdXNpY2FsZXMgbyBhbGfDum4gYWdlbnRlIGRlc2lnbmFkbywgbGFzIHJlZ2Fsw61hcyBwb3IgY3VhbHF1aWVyIGZvbm9ncmFtYSBxdWUgVXN0ZWQgY3JlZSBhIHBhcnRpciBkZSBsYSBvYnJhICjigJx2ZXJzacOzbiBjb3ZlcuKAnSkgeSBkaXN0cmlidXlhLCBlbiBsb3MgdMOpcm1pbm9zIGRlbCByw6lnaW1lbiBkZSBkZXJlY2hvcyBkZSBhdXRvciwgc2kgbGEgY3JlYWNpw7NuIG8gZGlzdHJpYnVjacOzbiBkZSBlc2EgdmVyc2nDs24gY292ZXIgZXN0w6EgcHJpbW9yZGlhbG1lbnRlIGRlc3RpbmFkYSBvIGRpcmlnaWRhIGEgb2J0ZW5lciB1bmEgdmVudGFqYSBjb21lcmNpYWwgbyB1bmEgY29tcGVuc2FjacOzbiBtb25ldGFyaWEgcHJpdmFkYS4KZS4JR2VzdGnDs24gZGUgRGVyZWNob3MgZGUgQXV0b3Igc29icmUgSW50ZXJwcmV0YWNpb25lcyB5IEVqZWN1Y2lvbmVzIERpZ2l0YWxlcyAoV2ViQ2FzdGluZykuIFBhcmEgZXZpdGFyIHRvZGEgY29uZnVzacOzbiwgZWwgTGljZW5jaWFudGUgYWNsYXJhIHF1ZSwgY3VhbmRvIGxhIG9icmEgc2VhIHVuIGZvbm9ncmFtYSwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSBhdXRvcml6YXIgbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgKHBvciBlamVtcGxvLCB3ZWJjYXN0KSB5IGRlIHJlY29sZWN0YXIsIGluZGl2aWR1YWxtZW50ZSBvIGEgdHJhdsOpcyBkZSB1bmEgc29jaWVkYWQgZGUgZ2VzdGnDs24gY29sZWN0aXZhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIHkgZGVyZWNob3MgY29uZXhvcyAocG9yIGVqZW1wbG8sIEFDSU5QUk8pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpLCBzdWpldGEgYSBsYXMgZGlzcG9zaWNpb25lcyBhcGxpY2FibGVzIGRlbCByw6lnaW1lbiBkZSBEZXJlY2hvIGRlIEF1dG9yLCBzaSBlc3RhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBlc3TDoSBwcmltb3JkaWFsbWVudGUgZGlyaWdpZGEgYSBvYnRlbmVyIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLgo1LiBSZXByZXNlbnRhY2lvbmVzLCBHYXJhbnTDrWFzIHkgTGltaXRhY2lvbmVzIGRlIFJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTEFTIFBBUlRFUyBMTyBBQ09SREFSQU4gREUgT1RSQSBGT1JNQSBQT1IgRVNDUklUTywgRUwgTElDRU5DSUFOVEUgT0ZSRUNFIExBIE9CUkEgKEVOIEVMIEVTVEFETyBFTiBFTCBRVUUgU0UgRU5DVUVOVFJBKSDigJxUQUwgQ1VBTOKAnSwgU0lOIEJSSU5EQVIgR0FSQU5Uw41BUyBERSBDTEFTRSBBTEdVTkEgUkVTUEVDVE8gREUgTEEgT0JSQSwgWUEgU0VBIEVYUFJFU0EsIElNUEzDjUNJVEEsIExFR0FMIE8gQ1VBTFFVSUVSQSBPVFJBLCBJTkNMVVlFTkRPLCBTSU4gTElNSVRBUlNFIEEgRUxMQVMsIEdBUkFOVMONQVMgREUgVElUVUxBUklEQUQsIENPTUVSQ0lBQklMSURBRCwgQURBUFRBQklMSURBRCBPIEFERUNVQUNJw5NOIEEgUFJPUMOTU0lUTyBERVRFUk1JTkFETywgQVVTRU5DSUEgREUgSU5GUkFDQ0nDk04sIERFIEFVU0VOQ0lBIERFIERFRkVDVE9TIExBVEVOVEVTIE8gREUgT1RSTyBUSVBPLCBPIExBIFBSRVNFTkNJQSBPIEFVU0VOQ0lBIERFIEVSUk9SRVMsIFNFQU4gTyBOTyBERVNDVUJSSUJMRVMgKFBVRURBTiBPIE5PIFNFUiBFU1RPUyBERVNDVUJJRVJUT1MpLiBBTEdVTkFTIEpVUklTRElDQ0lPTkVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgR0FSQU5Uw41BUyBJTVBMw41DSVRBUywgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KNi4gTGltaXRhY2nDs24gZGUgcmVzcG9uc2FiaWxpZGFkLgpBIE1FTk9TIFFVRSBMTyBFWElKQSBFWFBSRVNBTUVOVEUgTEEgTEVZIEFQTElDQUJMRSwgRUwgTElDRU5DSUFOVEUgTk8gU0VSw4EgUkVTUE9OU0FCTEUgQU5URSBVU1RFRCBQT1IgREHDkU8gQUxHVU5PLCBTRUEgUE9SIFJFU1BPTlNBQklMSURBRCBFWFRSQUNPTlRSQUNUVUFMLCBQUkVDT05UUkFDVFVBTCBPIENPTlRSQUNUVUFMLCBPQkpFVElWQSBPIFNVQkpFVElWQSwgU0UgVFJBVEUgREUgREHDkU9TIE1PUkFMRVMgTyBQQVRSSU1PTklBTEVTLCBESVJFQ1RPUyBPIElORElSRUNUT1MsIFBSRVZJU1RPUyBPIElNUFJFVklTVE9TIFBST0RVQ0lET1MgUE9SIEVMIFVTTyBERSBFU1RBIExJQ0VOQ0lBIE8gREUgTEEgT0JSQSwgQVVOIENVQU5ETyBFTCBMSUNFTkNJQU5URSBIQVlBIFNJRE8gQURWRVJUSURPIERFIExBIFBPU0lCSUxJREFEIERFIERJQ0hPUyBEQcORT1MuIEFMR1VOQVMgTEVZRVMgTk8gUEVSTUlURU4gTEEgRVhDTFVTScOTTiBERSBDSUVSVEEgUkVTUE9OU0FCSUxJREFELCBFTiBDVVlPIENBU08gRVNUQSBFWENMVVNJw5NOIFBVRURFIE5PIEFQTElDQVJTRSBBIFVTVEVELgo3LiBUw6lybWluby4KYS4JRXN0YSBMaWNlbmNpYSB5IGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgZW4gdmlydHVkIGRlIGVsbGEgdGVybWluYXLDoW4gYXV0b23DoXRpY2FtZW50ZSBzaSBVc3RlZCBpbmZyaW5nZSBhbGd1bmEgY29uZGljacOzbiBlc3RhYmxlY2lkYSBlbiBlbGxhLiBTaW4gZW1iYXJnbywgbG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgcXVlIGhhbiByZWNpYmlkbyBPYnJhcyBEZXJpdmFkYXMgbyBDb2xlY3RpdmFzIGRlIFVzdGVkIGRlIGNvbmZvcm1pZGFkIGNvbiBlc3RhIExpY2VuY2lhLCBubyB2ZXLDoW4gdGVybWluYWRhcyBzdXMgbGljZW5jaWFzLCBzaWVtcHJlIHF1ZSBlc3RvcyBpbmRpdmlkdW9zIG8gZW50aWRhZGVzIHNpZ2FuIGN1bXBsaWVuZG8gw61udGVncmFtZW50ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YXMgbGljZW5jaWFzLiBMYXMgU2VjY2lvbmVzIDEsIDIsIDUsIDYsIDcsIHkgOCBzdWJzaXN0aXLDoW4gYSBjdWFscXVpZXIgdGVybWluYWNpw7NuIGRlIGVzdGEgTGljZW5jaWEuCmIuCVN1amV0YSBhIGxhcyBjb25kaWNpb25lcyB5IHTDqXJtaW5vcyBhbnRlcmlvcmVzLCBsYSBsaWNlbmNpYSBvdG9yZ2FkYSBhcXXDrSBlcyBwZXJwZXR1YSAoZHVyYW50ZSBlbCBwZXLDrW9kbyBkZSB2aWdlbmNpYSBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgZGUgbGEgb2JyYSkuIE5vIG9ic3RhbnRlIGxvIGFudGVyaW9yLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gYSBwdWJsaWNhciB5L28gZXN0cmVuYXIgbGEgT2JyYSBiYWpvIGNvbmRpY2lvbmVzIGRlIGxpY2VuY2lhIGRpZmVyZW50ZXMgbyBhIGRlamFyIGRlIGRpc3RyaWJ1aXJsYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgTGljZW5jaWEgZW4gY3VhbHF1aWVyIG1vbWVudG87IGVuIGVsIGVudGVuZGlkbywgc2luIGVtYmFyZ28sIHF1ZSBlc2EgZWxlY2Npw7NuIG5vIHNlcnZpcsOhIHBhcmEgcmV2b2NhciBlc3RhIGxpY2VuY2lhIG8gcXVlIGRlYmEgc2VyIG90b3JnYWRhICwgYmFqbyBsb3MgdMOpcm1pbm9zIGRlIGVzdGEgbGljZW5jaWEpLCB5IGVzdGEgbGljZW5jaWEgY29udGludWFyw6EgZW4gcGxlbm8gdmlnb3IgeSBlZmVjdG8gYSBtZW5vcyBxdWUgc2VhIHRlcm1pbmFkYSBjb21vIHNlIGV4cHJlc2EgYXRyw6FzLiBMYSBMaWNlbmNpYSByZXZvY2FkYSBjb250aW51YXLDoSBzaWVuZG8gcGxlbmFtZW50ZSB2aWdlbnRlIHkgZWZlY3RpdmEgc2kgbm8gc2UgbGUgZGEgdMOpcm1pbm8gZW4gbGFzIGNvbmRpY2lvbmVzIGluZGljYWRhcyBhbnRlcmlvcm1lbnRlLgo4LiBWYXJpb3MuCmEuCUNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuCmIuCVNpIGFsZ3VuYSBkaXNwb3NpY2nDs24gZGUgZXN0YSBMaWNlbmNpYSByZXN1bHRhIGludmFsaWRhZGEgbyBubyBleGlnaWJsZSwgc2Vnw7puIGxhIGxlZ2lzbGFjacOzbiB2aWdlbnRlLCBlc3RvIG5vIGFmZWN0YXLDoSBuaSBsYSB2YWxpZGV6IG5pIGxhIGFwbGljYWJpbGlkYWQgZGVsIHJlc3RvIGRlIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEgeSwgc2luIGFjY2nDs24gYWRpY2lvbmFsIHBvciBwYXJ0ZSBkZSBsb3Mgc3VqZXRvcyBkZSBlc3RlIGFjdWVyZG8sIGFxdcOpbGxhIHNlIGVudGVuZGVyw6EgcmVmb3JtYWRhIGxvIG3DrW5pbW8gbmVjZXNhcmlvIHBhcmEgaGFjZXIgcXVlIGRpY2hhIGRpc3Bvc2ljacOzbiBzZWEgdsOhbGlkYSB5IGV4aWdpYmxlLgpjLglOaW5nw7puIHTDqXJtaW5vIG8gZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgc2UgZXN0aW1hcsOhIHJlbnVuY2lhZGEgeSBuaW5ndW5hIHZpb2xhY2nDs24gZGUgZWxsYSBzZXLDoSBjb25zZW50aWRhIGEgbWVub3MgcXVlIGVzYSByZW51bmNpYSBvIGNvbnNlbnRpbWllbnRvIHNlYSBvdG9yZ2FkbyBwb3IgZXNjcml0byB5IGZpcm1hZG8gcG9yIGxhIHBhcnRlIHF1ZSByZW51bmNpZSBvIGNvbnNpZW50YS4KZC4JRXN0YSBMaWNlbmNpYSByZWZsZWphIGVsIGFjdWVyZG8gcGxlbm8gZW50cmUgbGFzIHBhcnRlcyByZXNwZWN0byBhIGxhIE9icmEgYXF1w60gbGljZW5jaWFkYS4gTm8gaGF5IGFycmVnbG9zLCBhY3VlcmRvcyBvIGRlY2xhcmFjaW9uZXMgcmVzcGVjdG8gYSBsYSBPYnJhIHF1ZSBubyBlc3TDqW4gZXNwZWNpZmljYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gRWwgTGljZW5jaWFudGUgbm8gc2UgdmVyw6EgbGltaXRhZG8gcG9yIG5pbmd1bmEgZGlzcG9zaWNpw7NuIGFkaWNpb25hbCBxdWUgcHVlZGEgc3VyZ2lyIGVuIGFsZ3VuYSBjb211bmljYWNpw7NuIGVtYW5hZGEgZGUgVXN0ZWQuIEVzdGEgTGljZW5jaWEgbm8gcHVlZGUgc2VyIG1vZGlmaWNhZGEgc2luIGVsIGNvbnNlbnRpbWllbnRvIG11dHVvIHBvciBlc2NyaXRvIGRlbCBMaWNlbmNpYW50ZSB5IFVzdGVkLgo= |