Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.

gráficos, tablas.

Autores:
Uribe Hurtado, Ana Lorena
Tipo de recurso:
Doctoral thesis
Fecha de publicación:
2022
Institución:
Universidad Nacional de Colombia
Repositorio:
Universidad Nacional de Colombia
Idioma:
spa
OAI Identifier:
oai:repositorio.unal.edu.co:unal/81347
Acceso en línea:
https://repositorio.unal.edu.co/handle/unal/81347
https://repositorio.unal.edu.co/
Palabra clave:
620 - Ingeniería y operaciones afines
Clasificación y agrupamiento basados en disimilitudes
Computación paralela
Múltiples núcleos CPU
Muchos núcleos GPU
Medidas de disimilitud
Prueba leave-one-out para múltiples núcleos
Dissimilarity-based classifiers and clustering Inglés
Parallel computer
Multi-core CPU
Many-core GPU
Dissimilarity measures
Leave-one-out test for multi-core
Rights
openAccess
License
Atribución-NoComercial-SinDerivadas 4.0 Internacional
id UNACIONAL2_18d1894ca9b8a00f6ebeff9e3d31f621
oai_identifier_str oai:repositorio.unal.edu.co:unal/81347
network_acronym_str UNACIONAL2
network_name_str Universidad Nacional de Colombia
repository_id_str
dc.title.spa.fl_str_mv Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
dc.title.translated.eng.fl_str_mv Acceleration of dissimilarity-based classi cation algorithms using multi-core computational architectures.
title Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
spellingShingle Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
620 - Ingeniería y operaciones afines
Clasificación y agrupamiento basados en disimilitudes
Computación paralela
Múltiples núcleos CPU
Muchos núcleos GPU
Medidas de disimilitud
Prueba leave-one-out para múltiples núcleos
Dissimilarity-based classifiers and clustering Inglés
Parallel computer
Multi-core CPU
Many-core GPU
Dissimilarity measures
Leave-one-out test for multi-core
title_short Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
title_full Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
title_fullStr Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
title_full_unstemmed Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
title_sort Aceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.
dc.creator.fl_str_mv Uribe Hurtado, Ana Lorena
dc.contributor.advisor.none.fl_str_mv Orozco-Alzate, Mauricio
dc.contributor.author.none.fl_str_mv Uribe Hurtado, Ana Lorena
dc.contributor.researchgroup.spa.fl_str_mv Grupo de Ambientes Inteligentes Adaptativos - GAIA
dc.subject.ddc.spa.fl_str_mv 620 - Ingeniería y operaciones afines
topic 620 - Ingeniería y operaciones afines
Clasificación y agrupamiento basados en disimilitudes
Computación paralela
Múltiples núcleos CPU
Muchos núcleos GPU
Medidas de disimilitud
Prueba leave-one-out para múltiples núcleos
Dissimilarity-based classifiers and clustering Inglés
Parallel computer
Multi-core CPU
Many-core GPU
Dissimilarity measures
Leave-one-out test for multi-core
dc.subject.proposal.spa.fl_str_mv Clasificación y agrupamiento basados en disimilitudes
Computación paralela
Múltiples núcleos CPU
Muchos núcleos GPU
Medidas de disimilitud
Prueba leave-one-out para múltiples núcleos
dc.subject.proposal.eng.fl_str_mv Dissimilarity-based classifiers and clustering Inglés
Parallel computer
Multi-core CPU
Many-core GPU
Dissimilarity measures
Leave-one-out test for multi-core
description gráficos, tablas.
publishDate 2022
dc.date.accessioned.none.fl_str_mv 2022-03-23T23:09:39Z
dc.date.available.none.fl_str_mv 2022-03-23T23:09:39Z
dc.date.issued.none.fl_str_mv 2022
dc.type.spa.fl_str_mv Trabajo de grado - Doctorado
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/doctoralThesis
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_db06
dc.type.content.spa.fl_str_mv Image
Text
format http://purl.org/coar/resource_type/c_db06
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv https://repositorio.unal.edu.co/handle/unal/81347
dc.identifier.instname.spa.fl_str_mv Universidad Nacional de Colombia
dc.identifier.reponame.spa.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
dc.identifier.repourl.spa.fl_str_mv https://repositorio.unal.edu.co/
url https://repositorio.unal.edu.co/handle/unal/81347
https://repositorio.unal.edu.co/
identifier_str_mv Universidad Nacional de Colombia
Repositorio Institucional Universidad Nacional de Colombia
dc.language.iso.spa.fl_str_mv spa
language spa
dc.relation.references.spa.fl_str_mv Doug Abbott. Chapter 12 - Posix Threads. In Doug Abbott, editor, Linux for Embedded and Real-time Applications (Second Edition), Embedded Technology, pages 197-214. Newnes, Burlington, second edition edition, 2006.
Elfatih M. Abdel-Rahman, Onisimo Mutanga, Elhadi Adam, and Riyad Ismail. Detecting Sirex noctilio grey-attacked and lightning-struck pine trees using airborne hyperspectral data, random forest and support vector machines classi ers. ISPRS Journal of Photogrammetry and Remote Sensing, 88:48-59, 2014.
Karim Abou-Moustafa and Frank P. Ferrie. Local generalized quadratic distance metrics: Application to the k-nearest neighbors classi er. Advances in Data Analysis and Classi cation, 12(2):341-363, 2018.
Samson Abramsky. Computational interpretations of linear logic. Theoretical Computer Science, 111(1-2):3-57, 1993.
A. Ahmadzadeh, R. Mirzaei, H. Madani, M. Shobeiri, M. Sadeghi, M. Gavahi, K. Jafari, M. M. Aznaveh, and S. Gorgin. Cost-e cient implementation of k-NN algorithm on multi-core processors. In Twelfth ACM/IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2014, pages 205-208, oct 2014.
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.license.spa.fl_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional
dc.rights.uri.spa.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
rights_invalid_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional
http://creativecommons.org/licenses/by-nc-nd/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.spa.fl_str_mv xxiii, 201 páginas
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.spa.fl_str_mv Universidad Nacional de Colombia
dc.publisher.program.spa.fl_str_mv Manizales - Ingeniería y Arquitectura - Doctorado en Ingeniería - Industria y Organizaciones
dc.publisher.department.spa.fl_str_mv Departamento de Ingeniería Industrial
dc.publisher.faculty.spa.fl_str_mv Facultad de Ingeniería y Arquitectura
dc.publisher.place.spa.fl_str_mv Manizales, Colombia
dc.publisher.branch.spa.fl_str_mv Universidad Nacional de Colombia - Sede Manizales
institution Universidad Nacional de Colombia
bitstream.url.fl_str_mv https://repositorio.unal.edu.co/bitstream/unal/81347/1/41914787.2022.pdf
https://repositorio.unal.edu.co/bitstream/unal/81347/2/license.txt
https://repositorio.unal.edu.co/bitstream/unal/81347/3/41914787.2022.pdf.jpg
bitstream.checksum.fl_str_mv 750832ca1bccc09c45efc69ee9b53618
8153f7789df02f0a4c9e079953658ab2
675d1926e8075c3f441a839c9d35d98a
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
repository.mail.fl_str_mv repositorio_nal@unal.edu.co
_version_ 1806886220152700928
spelling Atribución-NoComercial-SinDerivadas 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Orozco-Alzate, Mauricio854bb7da044fd757cf5087bb23930d6d600Uribe Hurtado, Ana Lorena5152c63c37fda432c8089fd4e9a35141600Grupo de Ambientes Inteligentes Adaptativos - GAIA2022-03-23T23:09:39Z2022-03-23T23:09:39Z2022https://repositorio.unal.edu.co/handle/unal/81347Universidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/gráficos, tablas.En esta tesis se proponen estrategias y estructuras computacionales, basadas en arquitecturas multi-core y many-core, orientadas a desarrollar implementaciones paralelas de una selección representativa de algoritmos de reconocimiento de patrones basados en disimilitudes. Los algoritmos escogidos, tanto para clasificación supervisada como para agrupamiento, corresponden a algoritmos cuyas versiones secuenciales son costosas computacionalmente y para los que no se encontraron, en la revisión del estado del arte, implementaciones sobre arquitecturas paralelas como las arriba mencionadas. Los algoritmos que se paralelizaron tienen costos computacionales diversos en sus versiones secuenciales. Algunos de ellos son tan costosos que su uso práctico, sin paralelización, resulta inviable cuando se tienen requerimientos como la obtención de respuestas en pseudo-tiempo real, el enriquecimiento de conjuntos de datos pequeños mediante sobre-muestreo combinatorio, la ejecución repetida para estimar medidas de desempeño estadísticamente confiables durante simulaciones exhaustivas o las actualizaciones frecuentes de los resultados en escenarios de grandes flujos de datos. Las versiones paralelas de los algoritmos de clasificación y agrupamiento se presentan como seudocódigos y fueron implementadas principalmente en ANSI C y CUDA para sus ejecuciones sobre arquitecturas multi-core y many-core, respectivamente. Se realizaron experimentos con conjuntos de datos representativos y se reportaron los tiempos de respuesta tanto de las versiones secuenciales como de las versiones paralelas respectivas, así como las aceleraciones logradas con la paralelización. En todos los casos, se garantizó que las etiquetas de clase asignadas por las dos versiones --secuencial y paralela—coincidiera incluso bajo condiciones distintas de precisión de punto flotante, por ejemplo, precisión de CPU vs. precisión de GPU. Los análisis de los algoritmos seleccionados, la novedad de sus implementaciones paralelas, las aceleraciones logradas en las ejecuciones y la representatividad de las aplicaciones ilustradas componen los principales aportes de esta tesis. Entre estas últimas, se pueden destacar las paralelizaciones de algoritmos de clasificación costosos como los de enriquecimiento combinatorio de representación mediante líneas de características y el agrupamiento de datos masivos de georreferenciación. La mayor parte del material original presentado en todos los capítulos ha sido discutido y publicado previamente, bien sea como ponencias en eventos académicos o como artículos en revistas científicas indexadas. Las publicaciones correspondientes se indican al inicio de cada capítulo.This thesis proposes computational strategies and structures, based on multi-core and manycore architectures, aimed at developing parallel implementations of a representative selection of dissimilarity-based pattern recognition algorithms. The algorithms chosen for both supervised classi cation and clustering correspond to algorithms whose sequential versions are computationally expensive and for which, in the review of the state of the art, implementations on parallel architectures such as those mentioned above were not found. The algorithms that were parallelized have di erent computational costs in their sequential versions. Some of them are so expensive that their practical use, without parallelization, is not feasible when there are requirements such as obtaining responses in pseudo-real time, enrichment of small data sets by combinatorial oversampling, repeated execution to estimate statistically reliable performance measures during exhaustive simulations, or frequent updates of the results in scenarios of big data streams. The parallel versions of the classi cation and clustering algorithms are presented as pseudocodes and were implemented mainly in ANSI C and CUDA for their executions on multi-core and many-core architectures, respectively. Experiments were carried out with representative datasets and the response times of both the sequential and the respective parallel versions were reported, as well as the accelerations achieved with parallelization. In all cases, the class labels assigned by the two versions |sequential and parallel| were guaranteed to match even under di erent oating point precision conditions, for example CPU precision vs. GPU precision. The novelty of the parallel implementations of the selected algorithms, the accelerations achieved in the executions and the representativeness of the illustrated applications compose the main contributions of this thesis. Among the latter, we can highlight the parallelizations of expensive classi cation algorithms such as those of combinatorial enrichment of representation through features lines and the clustering of massive geospatial data. Most of the original material presented in all chapters has been previously discussed and published, either as presentations at academic events or as papers in indexed scienti c journals. The corresponding publications are indicated at the beginning of every chapter.DoctoradoDoctor en IngenieríaMétodos y modelos de optimización y estadística en Ingeniería Industrial y AdministrativaIndustrial, Organizaciones Y Logística xxiii, 201 páginasapplication/pdfspaUniversidad Nacional de ColombiaManizales - Ingeniería y Arquitectura - Doctorado en Ingeniería - Industria y OrganizacionesDepartamento de Ingeniería IndustrialFacultad de Ingeniería y ArquitecturaManizales, ColombiaUniversidad Nacional de Colombia - Sede Manizales620 - Ingeniería y operaciones afinesClasificación y agrupamiento basados en disimilitudesComputación paralelaMúltiples núcleos CPUMuchos núcleos GPUMedidas de disimilitudPrueba leave-one-out para múltiples núcleosDissimilarity-based classifiers and clustering InglésParallel computerMulti-core CPUMany-core GPUDissimilarity measuresLeave-one-out test for multi-coreAceleración de algoritmos de clasificación basados en disimilitudes, utilizando arquitecturas computacionales con múltiples núcleos.Acceleration of dissimilarity-based classi cation algorithms using multi-core computational architectures.Trabajo de grado - Doctoradoinfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_db06ImageTextDoug Abbott. Chapter 12 - Posix Threads. In Doug Abbott, editor, Linux for Embedded and Real-time Applications (Second Edition), Embedded Technology, pages 197-214. Newnes, Burlington, second edition edition, 2006.Elfatih M. Abdel-Rahman, Onisimo Mutanga, Elhadi Adam, and Riyad Ismail. Detecting Sirex noctilio grey-attacked and lightning-struck pine trees using airborne hyperspectral data, random forest and support vector machines classi ers. ISPRS Journal of Photogrammetry and Remote Sensing, 88:48-59, 2014.Karim Abou-Moustafa and Frank P. Ferrie. Local generalized quadratic distance metrics: Application to the k-nearest neighbors classi er. Advances in Data Analysis and Classi cation, 12(2):341-363, 2018.Samson Abramsky. Computational interpretations of linear logic. Theoretical Computer Science, 111(1-2):3-57, 1993.A. Ahmadzadeh, R. Mirzaei, H. Madani, M. Shobeiri, M. Sadeghi, M. Gavahi, K. Jafari, M. M. Aznaveh, and S. Gorgin. Cost-e cient implementation of k-NN algorithm on multi-core processors. In Twelfth ACM/IEEE International Conference on Formal Methods and Models for Codesign, MEMOCODE 2014, pages 205-208, oct 2014.BibliotecariosEstudiantesInvestigadoresMaestrosPúblico generalORIGINAL41914787.2022.pdf41914787.2022.pdfTesis de Doctorado en Ingeniería – Industria y Organizacionesapplication/pdf2590234https://repositorio.unal.edu.co/bitstream/unal/81347/1/41914787.2022.pdf750832ca1bccc09c45efc69ee9b53618MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-84074https://repositorio.unal.edu.co/bitstream/unal/81347/2/license.txt8153f7789df02f0a4c9e079953658ab2MD52THUMBNAIL41914787.2022.pdf.jpg41914787.2022.pdf.jpgGenerated Thumbnailimage/jpeg4795https://repositorio.unal.edu.co/bitstream/unal/81347/3/41914787.2022.pdf.jpg675d1926e8075c3f441a839c9d35d98aMD53unal/81347oai:repositorio.unal.edu.co:unal/813472024-08-05 23:10:17.251Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.coUExBTlRJTExBIERFUMOTU0lUTwoKQ29tbyBlZGl0b3IgZGUgZXN0ZSDDrXRlbSwgdXN0ZWQgcHVlZGUgbW92ZXJsbyBhIHJldmlzacOzbiBzaW4gYW50ZXMgcmVzb2x2ZXIgbG9zIHByb2JsZW1hcyBpZGVudGlmaWNhZG9zLCBkZSBsbyBjb250cmFyaW8sIGhhZ2EgY2xpYyBlbiBHdWFyZGFyIHBhcmEgZ3VhcmRhciBlbCDDrXRlbSB5IHNvbHVjaW9uYXIgZXN0b3MgcHJvYmxlbWFzIG1hcyB0YXJkZS4KClBhcmEgdHJhYmFqb3MgZGVwb3NpdGFkb3MgcG9yIHN1IHByb3BpbyBhdXRvcjoKIApBbCBhdXRvYXJjaGl2YXIgZXN0ZSBncnVwbyBkZSBhcmNoaXZvcyBkaWdpdGFsZXMgeSBzdXMgbWV0YWRhdG9zLCB5byBnYXJhbnRpem8gYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBVbmFsIGVsIGRlcmVjaG8gYSBhbG1hY2VuYXJsb3MgeSBtYW50ZW5lcmxvcyBkaXNwb25pYmxlcyBlbiBsw61uZWEgZGUgbWFuZXJhIGdyYXR1aXRhLiBEZWNsYXJvIHF1ZSBsYSBvYnJhIGVzIGRlIG1pIHByb3BpZWRhZCBpbnRlbGVjdHVhbCB5IHF1ZSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIFVuYWwgbm8gYXN1bWUgbmluZ3VuYSByZXNwb25zYWJpbGlkYWQgc2kgaGF5IGFsZ3VuYSB2aW9sYWNpw7NuIGEgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGFsIGRpc3RyaWJ1aXIgZXN0b3MgYXJjaGl2b3MgeSBtZXRhZGF0b3MuIChTZSByZWNvbWllbmRhIGEgdG9kb3MgbG9zIGF1dG9yZXMgYSBpbmRpY2FyIHN1cyBkZXJlY2hvcyBkZSBhdXRvciBlbiBsYSBww6FnaW5hIGRlIHTDrXR1bG8gZGUgc3UgZG9jdW1lbnRvLikgRGUgbGEgbWlzbWEgbWFuZXJhLCBhY2VwdG8gbG9zIHTDqXJtaW5vcyBkZSBsYSBzaWd1aWVudGUgbGljZW5jaWE6IExvcyBhdXRvcmVzIG8gdGl0dWxhcmVzIGRlbCBkZXJlY2hvIGRlIGF1dG9yIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8gY29uZmllcmVuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgdW5hIGxpY2VuY2lhIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSBzZSBpbnRlZ3JhIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwsIHF1ZSBzZSBhanVzdGEgYSBsYXMgc2lndWllbnRlcyBjYXJhY3RlcsOtc3RpY2FzOiBhKSBFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWUgZW4gZWwgcmVwb3NpdG9yaW8sIHF1ZSBzZXLDoW4gcHJvcnJvZ2FibGVzIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gcGF0cmltb25pYWwgZGVsIGF1dG9yLiBFbCBhdXRvciBwb2Ryw6EgZGFyIHBvciB0ZXJtaW5hZGEgbGEgbGljZW5jaWEgc29saWNpdMOhbmRvbG8gYSBsYSBVbml2ZXJzaWRhZC4gYikgTG9zIGF1dG9yZXMgYXV0b3JpemFuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcGFyYSBwdWJsaWNhciBsYSBvYnJhIGVuIGVsIGZvcm1hdG8gcXVlIGVsIHJlcG9zaXRvcmlvIGxvIHJlcXVpZXJhIChpbXByZXNvLCBkaWdpdGFsLCBlbGVjdHLDs25pY28gbyBjdWFscXVpZXIgb3RybyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSB5IGNvbm9jZW4gcXVlIGRhZG8gcXVlIHNlIHB1YmxpY2EgZW4gSW50ZXJuZXQgcG9yIGVzdGUgaGVjaG8gY2lyY3VsYSBjb24gYWxjYW5jZSBtdW5kaWFsLiBjKSBMb3MgYXV0b3JlcyBhY2VwdGFuIHF1ZSBsYSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgYSB0w610dWxvIGdyYXR1aXRvLCBwb3IgbG8gdGFudG8sIHJlbnVuY2lhbiBhIHJlY2liaXIgZW1vbHVtZW50byBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgQ3JlYXRpdmUgQ29tbW9ucyBjb24gcXVlIHNlIHB1YmxpY2EuIGQpIExvcyBhdXRvcmVzIG1hbmlmaWVzdGFuIHF1ZSBzZSB0cmF0YSBkZSB1bmEgb2JyYSBvcmlnaW5hbCBzb2JyZSBsYSBxdWUgdGllbmVuIGxvcyBkZXJlY2hvcyBxdWUgYXV0b3JpemFuIHkgcXVlIHNvbiBlbGxvcyBxdWllbmVzIGFzdW1lbiB0b3RhbCByZXNwb25zYWJpbGlkYWQgcG9yIGVsIGNvbnRlbmlkbyBkZSBzdSBvYnJhIGFudGUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgeSBhbnRlIHRlcmNlcm9zLiBFbiB0b2RvIGNhc28gbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uIGUpIExvcyBhdXRvcmVzIGF1dG9yaXphbiBhIGxhIFVuaXZlcnNpZGFkIHBhcmEgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyBhZ3JlZ2Fkb3JlcywgaW5kaWNlc3MgeSBidXNjYWRvcmVzIHF1ZSBzZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBwcm9tb3ZlciBzdSBkaWZ1c2nDs24uIGYpIExvcyBhdXRvcmVzIGFjZXB0YW4gcXVlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHB1ZWRhIGNvbnZlcnRpciBlbCBkb2N1bWVudG8gYSBjdWFscXVpZXIgbWVkaW8gbyBmb3JtYXRvIHBhcmEgcHJvcMOzc2l0b3MgZGUgcHJlc2VydmFjacOzbiBkaWdpdGFsLiBTSSBFTCBET0NVTUVOVE8gU0UgQkFTQSBFTiBVTiBUUkFCQUpPIFFVRSBIQSBTSURPIFBBVFJPQ0lOQURPIE8gQVBPWUFETyBQT1IgVU5BIEFHRU5DSUEgTyBVTkEgT1JHQU5JWkFDScOTTiwgQ09OIEVYQ0VQQ0nDk04gREUgTEEgVU5JVkVSU0lEQUQgTkFDSU9OQUwgREUgQ09MT01CSUEsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MgREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uIAoKUGFyYSB0cmFiYWpvcyBkZXBvc2l0YWRvcyBwb3Igb3RyYXMgcGVyc29uYXMgZGlzdGludGFzIGEgc3UgYXV0b3I6IAoKRGVjbGFybyBxdWUgZWwgZ3J1cG8gZGUgYXJjaGl2b3MgZGlnaXRhbGVzIHkgbWV0YWRhdG9zIGFzb2NpYWRvcyBxdWUgZXN0b3kgYXJjaGl2YW5kbyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIFVOKSBlcyBkZSBkb21pbmlvIHDDumJsaWNvLiBTaSBubyBmdWVzZSBlbCBjYXNvLCBhY2VwdG8gdG9kYSBsYSByZXNwb25zYWJpbGlkYWQgcG9yIGN1YWxxdWllciBpbmZyYWNjacOzbiBkZSBkZXJlY2hvcyBkZSBhdXRvciBxdWUgY29ubGxldmUgbGEgZGlzdHJpYnVjacOzbiBkZSBlc3RvcyBhcmNoaXZvcyB5IG1ldGFkYXRvcy4KTk9UQTogU0kgTEEgVEVTSVMgQSBQVUJMSUNBUiBBRFFVSVJJw5MgQ09NUFJPTUlTT1MgREUgQ09ORklERU5DSUFMSURBRCBFTiBFTCBERVNBUlJPTExPIE8gUEFSVEVTIERFTCBET0NVTUVOVE8uIFNJR0EgTEEgRElSRUNUUklaIERFIExBIFJFU09MVUNJw5NOIDAyMyBERSAyMDE1LCBQT1IgTEEgQ1VBTCBTRSBFU1RBQkxFQ0UgRUwgUFJPQ0VESU1JRU5UTyBQQVJBIExBIFBVQkxJQ0FDScOTTiBERSBURVNJUyBERSBNQUVTVFLDjUEgWSBET0NUT1JBRE8gREUgTE9TIEVTVFVESUFOVEVTIERFIExBIFVOSVZFUlNJREFEIE5BQ0lPTkFMIERFIENPTE9NQklBIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU4sIEVYUEVESURBIFBPUiBMQSBTRUNSRVRBUsONQSBHRU5FUkFMLiAqTEEgVEVTSVMgQSBQVUJMSUNBUiBERUJFIFNFUiBMQSBWRVJTScOTTiBGSU5BTCBBUFJPQkFEQS4gCgpBbCBoYWNlciBjbGljIGVuIGVsIHNpZ3VpZW50ZSBib3TDs24sIHVzdGVkIGluZGljYSBxdWUgZXN0w6EgZGUgYWN1ZXJkbyBjb24gZXN0b3MgdMOpcm1pbm9zLiBTaSB0aWVuZSBhbGd1bmEgZHVkYSBzb2JyZSBsYSBsaWNlbmNpYSwgcG9yIGZhdm9yLCBjb250YWN0ZSBjb24gZWwgYWRtaW5pc3RyYWRvciBkZWwgc2lzdGVtYS4KClVOSVZFUlNJREFEIE5BQ0lPTkFMIERFIENPTE9NQklBIC0gw5psdGltYSBtb2RpZmljYWNpw7NuIDE5LzEwLzIwMjEK