Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales

Introducción Por tratarse de una tarea altamente compleja y de importancia clínica, el diagnóstico del síndrome coronario agudo se presta para su exploración por medio de modelado mediante sistemas inteligentes. Objetivo desarrollar un sistema multiagente que ensamble las decisiones de varias redes...

Full description

Autores:
Sprockel Díaz, John Jaime
Diaztagle Fernández, Juan José
González Guerrero, Enrique
Tipo de recurso:
Article of journal
Fecha de publicación:
2017
Institución:
Fundación Universitaria de Ciencias de la Salud - FUCS
Repositorio:
Repositorio Digital Institucional ReDi
Idioma:
spa
OAI Identifier:
oai:repositorio.fucsalud.edu.co:001/1371
Acceso en línea:
https://repositorio.fucsalud.edu.co/handle/001/1371
Palabra clave:
Diagnóstico
Síndrome coronario agudo
Infarto agudo de miocardio
Angina inestable
Dolor torácico
Técnicas de diagnóstico cardiovascular
Infarto del miocardio
Dolor en el Pecho
Rights
openAccess
License
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
id FUCS2_1bad1e1607511021205166fbcf54a59a
oai_identifier_str oai:repositorio.fucsalud.edu.co:001/1371
network_acronym_str FUCS2
network_name_str Repositorio Digital Institucional ReDi
repository_id_str
dc.title.spa.fl_str_mv Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales
dc.title.eng.fl_str_mv Automatic diagnosis of acute coronary syndrome using a multi-agent system based in neural networks
title Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales
spellingShingle Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales
Diagnóstico
Síndrome coronario agudo
Infarto agudo de miocardio
Angina inestable
Dolor torácico
Técnicas de diagnóstico cardiovascular
Infarto del miocardio
Dolor en el Pecho
title_short Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales
title_full Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales
title_fullStr Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales
title_full_unstemmed Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales
title_sort Diagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronales
dc.creator.fl_str_mv Sprockel Díaz, John Jaime
Diaztagle Fernández, Juan José
González Guerrero, Enrique
dc.contributor.author.none.fl_str_mv Sprockel Díaz, John Jaime
Diaztagle Fernández, Juan José
González Guerrero, Enrique
dc.subject.proposal.spa.fl_str_mv Diagnóstico
Síndrome coronario agudo
Infarto agudo de miocardio
Angina inestable
Dolor torácico
topic Diagnóstico
Síndrome coronario agudo
Infarto agudo de miocardio
Angina inestable
Dolor torácico
Técnicas de diagnóstico cardiovascular
Infarto del miocardio
Dolor en el Pecho
dc.subject.decs.none.fl_str_mv Técnicas de diagnóstico cardiovascular
Infarto del miocardio
Dolor en el Pecho
description Introducción Por tratarse de una tarea altamente compleja y de importancia clínica, el diagnóstico del síndrome coronario agudo se presta para su exploración por medio de modelado mediante sistemas inteligentes. Objetivo desarrollar un sistema multiagente que ensamble las decisiones de varias redes neuronales para el diagnóstico del dolor torácico enfocado a los síndromes coronarios agudos. Metodología estudio de pruebas diagnósticas en el que se entrenan un conjunto de redes neuronales con una precisión cercana al 70%, que luego son ensambladas mediante tres sistemas de votación para luego adicionar el resultado de redes especiales en poblaciones particulares y seleccionar la mejor configuración que hará parte de un sistema multiagente para el diagnóstico del dolor torácico. Resultados Se generaron 84 redes con precisión promedio del 72% en pruebas; al ensamblarse aumentan dicha precisión hasta llegar a un máximo del 84% que tras la adición de los grupos especiales alcanza el 89%. Se escoge una conformación que brinda una sensibilidad del 96% con una especificidad del 77%, con valores predictivos positivo y negativo de 87 y 93% respectivamente para el diagnóstico de síndrome coronario agudo. Conclusiones Es posible desarrollar una herramienta para el diagnóstico automático del síndrome coronario agudo a partir de un sistema multiagente que ensamble la disposición tomada por un conjunto de redes neuronales artificiales, cuyo rendimiento permite su consideración para su implementación dentro de un sistema de soporte a las decisiones clínicas.
publishDate 2017
dc.date.issued.none.fl_str_mv 2017
dc.date.accessioned.none.fl_str_mv 2021-03-24T21:13:16Z
dc.date.available.none.fl_str_mv 2021-03-24T21:13:16Z
dc.type.spa.fl_str_mv Artículo de revista
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_2df8fbb1
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_6501
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/article
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 http://purl.org/redcol/resource_type/ART
dc.type.coarversion.spa.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
format http://purl.org/coar/resource_type/c_6501
status_str publishedVersion
dc.identifier.doi.none.fl_str_mv 10.1016/j.rccar.2016.11.010
dc.identifier.uri.none.fl_str_mv https://repositorio.fucsalud.edu.co/handle/001/1371
identifier_str_mv 10.1016/j.rccar.2016.11.010
url https://repositorio.fucsalud.edu.co/handle/001/1371
dc.language.iso.spa.fl_str_mv spa
language spa
dc.relation.ispartof.none.fl_str_mv Revista Colombiana de Cardiología. ISSN 2357-3260 Vol. 24, No. 3 (2017)
dc.relation.citationendpage.spa.fl_str_mv 260
dc.relation.citationissue.spa.fl_str_mv 3
dc.relation.citationstartpage.spa.fl_str_mv 255
dc.relation.citationvolume.spa.fl_str_mv 24
dc.relation.ispartofjournal.spa.fl_str_mv Revista Colombiana de Cardiología
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.creativecommons.spa.fl_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
dc.rights.uri.spa.fl_str_mv https://creativecommons.org/licenses/by/4.0/
dc.rights.coar.spa.fl_str_mv http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
rights_invalid_str_mv Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
https://creativecommons.org/licenses/by/4.0/
http://purl.org/coar/access_right/c_abf2
dc.format.extent.spa.fl_str_mv 5 p.
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.spa.fl_str_mv Sociedad Colombiana de Cardiología y Cirugía Cardiovascular
dc.publisher.place.spa.fl_str_mv Bogotá
dc.source.spa.fl_str_mv https://www.elsevier.es/es-revista-revista-colombiana-cardiologia-203-articulo-diagnostico-automatico-del-sindrome-coronario-S0120563316302881
institution Fundación Universitaria de Ciencias de la Salud - FUCS
bitstream.url.fl_str_mv https://repositorio.fucsalud.edu.co/bitstreams/d47a432d-e4bd-44a9-95cb-33f952b38851/download
https://repositorio.fucsalud.edu.co/bitstreams/e18ac6e9-c9f9-43ce-ae78-af18928b38a4/download
https://repositorio.fucsalud.edu.co/bitstreams/85ce4ce8-e9fa-4a0e-9c99-3acaecad4008/download
https://repositorio.fucsalud.edu.co/bitstreams/b5529954-f45f-4239-981a-5c5c74018a4c/download
bitstream.checksum.fl_str_mv e2dd42ad98634e33d16d24ec1a78aeb8
f6cfdd0a0be8a7a8b575d6cd88a94402
16524671d5063016da70d2dc20383515
d8f2587fc3bf376b83d099c07c9a8b74
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Digital de la Fundación Universitaria de Ciencias de la Salud
repository.mail.fl_str_mv redi@fucsalud.edu.co
_version_ 1814355563495030784
spelling Sprockel Díaz, John Jaime00c96ba8a13b25e96ae9572726f69badDiaztagle Fernández, Juan José9b6bcf74590947ac4e7d862ba28343d3González Guerrero, Enrique1ef46526f289ed327976fe6b7e0d8ec92021-03-24T21:13:16Z20172021-03-24T21:13:16ZSociedad Colombiana de Cardiología y Cirugía CardiovascularBogotáIntroducción Por tratarse de una tarea altamente compleja y de importancia clínica, el diagnóstico del síndrome coronario agudo se presta para su exploración por medio de modelado mediante sistemas inteligentes. Objetivo desarrollar un sistema multiagente que ensamble las decisiones de varias redes neuronales para el diagnóstico del dolor torácico enfocado a los síndromes coronarios agudos. Metodología estudio de pruebas diagnósticas en el que se entrenan un conjunto de redes neuronales con una precisión cercana al 70%, que luego son ensambladas mediante tres sistemas de votación para luego adicionar el resultado de redes especiales en poblaciones particulares y seleccionar la mejor configuración que hará parte de un sistema multiagente para el diagnóstico del dolor torácico. Resultados Se generaron 84 redes con precisión promedio del 72% en pruebas; al ensamblarse aumentan dicha precisión hasta llegar a un máximo del 84% que tras la adición de los grupos especiales alcanza el 89%. Se escoge una conformación que brinda una sensibilidad del 96% con una especificidad del 77%, con valores predictivos positivo y negativo de 87 y 93% respectivamente para el diagnóstico de síndrome coronario agudo. Conclusiones Es posible desarrollar una herramienta para el diagnóstico automático del síndrome coronario agudo a partir de un sistema multiagente que ensamble la disposición tomada por un conjunto de redes neuronales artificiales, cuyo rendimiento permite su consideración para su implementación dentro de un sistema de soporte a las decisiones clínicas.Introduction Because it is a highly complex task of a great clinical importance, the diagnosis of acute coronary syndromes allows for their analysis by means of intelligent system models. Motivation To develop a multi-agent system that assembles the decisions of several neural networks for the diagnosis of chest pain with a focus on acute coronary syndromes. Methods A study of diagnostic tests where a series of neural networks are trained with a precision close to 70%, and are later on assembled with three voting systems. Then the results of special networks on specific populations are added to select the best configuration that will make part of a multi-agent system for diagnosing chest pain. Results A total of 84 networks were generated, with an average precision of 72% during testing; once assembled this precision rises up to a maximum of 84%, which then reaches 89% when the special groups are included. A configuration that offers a sensitivity of 96% with a specificity of 77% and positive and negative predictive values of 87 and 93% respectively is chosen for the diagnosis of acute coronary syndrome. Conclusions It is possible to develop a tool for the automatic diagnosis of acute coronary syndrome using a multi-agent system that assembles the dispositions taken by a set of artificial neural networks. Its performance allows taking it into consideration for implementing it within a clinical decision-making support system.https://www.elsevier.es/es-revista-revista-colombiana-cardiologia-203-articulo-diagnostico-automatico-del-sindrome-coronario-S01205633163028815 p.application/pdfDiagnóstico automático del síndrome coronario agudo utilizando un sistema multiagente basado en redes neuronalesAutomatic diagnosis of acute coronary syndrome using a multi-agent system based in neural networksArtículo de revistahttp://purl.org/coar/resource_type/c_6501http://purl.org/coar/resource_type/c_2df8fbb1info:eu-repo/semantics/articleinfo:eu-repo/semantics/publishedVersionTexthttp://purl.org/redcol/resource_type/ARThttp://purl.org/coar/version/c_970fb48d4fbd8a8510.1016/j.rccar.2016.11.010https://repositorio.fucsalud.edu.co/handle/001/1371spaRevista Colombiana de Cardiología. ISSN 2357-3260 Vol. 24, No. 3 (2017)260325524Revista Colombiana de Cardiologíainfo:eu-repo/semantics/openAccessAtribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)https://creativecommons.org/licenses/by/4.0/http://purl.org/coar/access_right/c_abf2DiagnósticoSíndrome coronario agudoInfarto agudo de miocardioAngina inestableDolor torácicoTécnicas de diagnóstico cardiovascularInfarto del miocardioDolor en el PechoPublicationORIGINAL24. Automatic diagnosis of acute coronary (1).pdf24. Automatic diagnosis of acute coronary (1).pdfapplication/pdf116392https://repositorio.fucsalud.edu.co/bitstreams/d47a432d-e4bd-44a9-95cb-33f952b38851/downloade2dd42ad98634e33d16d24ec1a78aeb8MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-815424https://repositorio.fucsalud.edu.co/bitstreams/e18ac6e9-c9f9-43ce-ae78-af18928b38a4/downloadf6cfdd0a0be8a7a8b575d6cd88a94402MD52TEXT24. Automatic diagnosis of acute coronary (1).pdf.txt24. Automatic diagnosis of acute coronary (1).pdf.txtExtracted texttext/plain8542https://repositorio.fucsalud.edu.co/bitstreams/85ce4ce8-e9fa-4a0e-9c99-3acaecad4008/download16524671d5063016da70d2dc20383515MD53THUMBNAIL24. Automatic diagnosis of acute coronary (1).pdf.jpg24. Automatic diagnosis of acute coronary (1).pdf.jpgGenerated Thumbnailimage/jpeg13950https://repositorio.fucsalud.edu.co/bitstreams/b5529954-f45f-4239-981a-5c5c74018a4c/downloadd8f2587fc3bf376b83d099c07c9a8b74MD54001/1371oai:repositorio.fucsalud.edu.co:001/13712024-02-02 13:10:43.968https://creativecommons.org/licenses/by/4.0/open.accesshttps://repositorio.fucsalud.edu.coRepositorio Digital de la Fundación Universitaria de Ciencias de la Saludredi@fucsalud.edu.coQ09ORElDSU9ORVMgTEVHQUxFUyBERSBVU08gREVMIFBPUlRBTCBXRUIKd3d3LmZ1Y3NhbHVkLmVkdS5jbwogCkVsIFBvcnRhbCBXZWIgd3d3LmZ1Y3NhbHVkLmVkdS5jbyBoYSBzaWRvIGRpc2XDsWFkbyBwYXJhIGZhY2lsaXRhciBhbCB2aXNpdGFudGUsIGludGVyZXNhZG8sIGVzdHVkaWFudGUsIGRvY2VudGUsIGFkbWluaXN0cmF0aXZvIHkvbyB1c3VhcmlvIGVuIGdlbmVyYWwsIGVsIGFjY2VzbyBhIGxhIGluZm9ybWFjacOzbiBkZSBsYSBJbnN0aXR1Y2nDs24geSBhIHN1cyBzZXJ2aWNpb3MgZW4gbMOtbmVhLCBwb3IgbG8gY3VhbCBlc3RlIHNpdGlvIHdlYiB0aWVuZSBjb21vIGZ1bmNpw7NuIHByaW5jaXBhbCBwcm92ZWVyIGluZm9ybWFjacOzbiB5IHNlcnZpY2lvcywgYXPDrSBjb21vIGRpdnVsZ2FyIHkgcHJvbW92ZXIgbGFzIGFjdGl2aWRhZGVzIGFjYWTDqW1pY2FzLCBjaWVudMOtZmljYXMsIGN1bHR1cmFsZXMgeSBjb21lcmNpYWxlcyBkZSBsYSBGVUNTLCBwb3IgdGFudG8gbGEgYWNlcHRhY2nDs24gZGUgZXN0YXMgY29uZGljaW9uZXMgZGUgdXNvLCBzb24gb2JsaWdhdG9yaWFzIGUgaW5kaXNwZW5zYWJsZXMgcGFyYSBxdWUgZWwgdXN1YXJpbyB1dGlsaWNlIGVsIHNpdGlvLgogCkxhcyBwcmVzZW50ZXMgY29uZGljaW9uZXMgZGUgdXNvLCByZWd1bGFuIGxhIHV0aWxpemFjacOzbiBkZSBsYSBww6FnaW5hIHdlYiB3d3cuZnVjc2FsdWQuZWR1LmNvLgogClNlw7FvciB1c3VhcmlvLCBwb3IgZmF2b3IgbGVhIGRldGFsbGFkYSB5IGN1aWRhZG9zYW1lbnRlIGVzdGUgZG9jdW1lbnRvIGp1bnRvIGNvbiBsYXMgcG9sw610aWNhcyBkZSBwcml2YWNpZGFkIHkgcHJvdGVjY2nDs24gZGUgZGF0b3MsIGFudGVzIGRlIGluaWNpYXIgc3UgbmF2ZWdhY2nDs24uClNpIFVzdGVkIG5vIHNlIGVuY3VlbnRyYSBjb25mb3JtZSBjb24gbG9zIHTDqXJtaW5vcyBkZSB1c28gZGUgbGEgcMOhZ2luYSB3ZWIgbyBjdWFscXVpZXIgb3RyYSBkaXNwb3NpY2nDs24sIHBvciBmYXZvciBhYnN0ZW5nYXNlIGRlIGluZ3Jlc2FyIHkvbyB1dGlsaXphciBlc3RlIHNpdGlvIGRlIGN1YWxxdWllciBmb3JtYS4KIApBbCBhY2NlZGVyIGEgZXN0ZSBwb3J0YWwsIHN1cyBzaXRpb3MgeSB0b2RhcyBsYXMgcMOhZ2luYXMgcXVlIGxvIGNvbmZvcm1hbiwgc2UgZW50aWVuZGUgcXVlIFVzdGVkIGhhIGxlw61kbywgZW50ZW5kaWRvIHkgYWNlcHRhZG8gdG9kb3MgbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGV4cHVlc3RvcyBlbiBlc3RlIGRvY3VtZW50bywgZGUgbGEgbWlzbWEgbWFuZXJhIGNvbW8gc2kgaHViaWVyYSBmaXJtYWRvIHVuIGFjdWVyZG8gZXNjcml0bywgZW50ZW5kaWVuZG8gZW4gdG9kbyBjYXNvIHF1ZSBzdSBwb3NpY2nDs24gZW4gZWwgYWN1ZXJkbyBzZXLDoSBpZGVudGlmaWNhZGEgZW4gdG9kbyBlc3RlIGRvY3VtZW50byBjb21vIOKAnGVsIFVzdWFyaW/igJ0uCiAKTGEgRlVDUyBwb2Ryw6EgbW9kaWZpY2FyIGxvcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBkZSBlc3RlIGRvY3VtZW50byBlbiBjdWFscXVpZXIgbW9tZW50bywgeSBlc3RhcyBtb2RpZmljYWNpb25lcyB0ZW5kcsOhbiB2YWxpZGV6IGRlc2RlIGVsIG1vbWVudG8gZW4gcXVlIHNlYW4gcHVibGljYWRhcyBlbiBlbCBzaXRpbyB3ZWIuCiAKMS4gQXNwZWN0b3MgZ2VuZXJhbGVzOgogCmEuIExhIGluZm9ybWFjacOzbiBjb250ZW5pZGEgZW4gZXN0ZSBwb3J0YWwgd2ViIChlbiBhZGVsYW50ZSBjb250ZW5pZG9zKSBkZWJlcsOhIHNlciB1dGlsaXphZGEgw7puaWNhbWVudGUgY29uIGZpbmVzIHBlcnNvbmFsZXMsIHBvciBsbyB0YW50byBlbCBVc3VhcmlvIG5vIHBvZHLDoSBkaXN0cmlidWlyLCBtb2RpZmljYXIsIHRyYW5zbWl0aXIsIGNvcGlhciwgYWxtYWNlbmFyLCBjb2RpZmljYXIsIGVudmlhciBvIHVzYXIgZXN0b3MgY29udGVuaWRvcyBwYXJhIHByb3DDs3NpdG9zIGNvbWVyY2lhbGVzIHUgb3Ryb3MgcXVlIGltcGxpcXVlbiBleHBsb3RhY2nDs24gZWNvbsOzbWljYSwgc2Fsdm8gcHJldmlhIGF1dG9yaXphY2nDs24gZXNjcml0YWxhIEZVQ1MuCiAKYi4gU2UgZW50ZW5kZXLDoSBxdWUgZWwgVXN1YXJpbyBoYSBsZcOtZG8sIGVudGVuZGlkbyB5IGFjZXB0YWRvIHRvZG9zIGxvcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBleHB1ZXN0b3MgZW4gZXN0ZSBkb2N1bWVudG8gZW4gbG9zIHNpZ3VpZW50ZXMgY2Fzb3M6CiAKQ29uc3VsdGEgZGUgY3VhbHF1aWVyIGNvbnRlbmlkbyBpbmNvcnBvcmFkbyBlbiBlbCBzaXRpbyB3ZWIuCkVudmnDsyBkZSBkYXRvcyBlbiBsb3MgZm9ybXVsYXJpb3MgZGUgcmVnaXN0cm8gZGVsIHNpdGlvIHdlYi4KTGEgdXRpbGl6YWNpw7NuIGRlIGN1YWxxdWllcmEgZGUgbG9zIHNlcnZpY2lvcyBkaXNwb25pYmxlcyBlbiBlbCBzaXRpbyB3ZWIuCkxhIGRlc2NhcmdhIGRlIGNvbnRlbmlkb3MgaW5jb3Jwb3JhZG9zIGVuIGVsIHNpdGlvIHdlYi4KTGEgbmF2ZWdhY2nDs24gZW4gZWwgc2l0aW8gd2ViIGRlIGN1YWxxdWllciBtYW5lcmEgY29ub2NpZGEgbyBwb3IgY29ub2Nlci4KIApjLiBFbCBVc3VhcmlvIHBvZHLDoSBuYXZlZ2FyIGxpYnJlIHkgZ3JhdHVpdGFtZW50ZSBhIHRyYXbDqXMgZGUgZXN0ZSBzaXRpby4KIApkLiBFbCBVc3VhcmlvIHNvbG8gcG9kcsOhIGRlc2NhcmdhciBjb250ZW5pZG9zIGRlbCBtaXNtbywgY3VhbmRvIGVsIHNpdGlvIGV4cHJlc2FtZW50ZSBsbyBhdXRvcmljZS4KIAplLiBQb2Ryw6FuIGV4aXN0aXIgYWxndW5vcyBjYXNvcyBlbiBsb3MgY3VhbGVzIHNlIGNvbmRpY2lvbmUgZWwgc2VydmljaW8gZW4gbMOtbmVhLCBhbCBwcmV2aW8gY3VtcGxpbWllbnRvIGRlbCBkaWxpZ2VuY2lhbWllbnRvIGRlIGZvcm11bGFyaW9zIHkvbyBwYWdvIHBvciBsYSBwcmVzdGFjacOzbiBkZWwgc2VydmljaW8uCiAKZi4gRWwgdXN1YXJpbyBhY2VwdGEgY29ub2NlciB5IGN1bXBsaXIgdG9kYXMgbGFzIGxleWVzIHkgbm9ybWFzIG5hY2lvbmFsZXMsIGNvbXVuaXRhcmlhcyBlIGludGVybmFjaW9uYWxlcyByZWxhY2lvbmFkYXMgY29uIHN1cyBvYmxpZ2FjaW9uZXMgeSBkZWJlcmVzIGJham8gZWwgcHJlc2VudGUgZG9jdW1lbnRvIGRlIGNvbmRpY2lvbmVzIGxlZ2FsZXMgZGUgdXNvLgogCjIuIEluZm9ybWFjacOzbiBkZSByZWdpc3RybzoKIApMb3Mgc2lndWllbnRlcyBzb24gbG9zIGxpbmVhbWllbnRvcyBkZSBudWVzdHJhcyBjb25kaWNpb25lcyBkZSB1c28gZW4gY3VhbnRvIGFsIHJlY2F1ZG8sIGFjY2VzbyB5IHVzbyBkZSBsYSBpbmZvcm1hY2nDs24gZGUgcmVnaXN0cm8gcXVlIHN1bWluaXN0cmEgZWwgdXN1YXJpbyBhIHRyYXbDqXMgZGVsIHNpdGlvIHdlYi4KIApMYSBGVUNTIHByb3RlZ2Vyw6EgbG9zIGRhdG9zIG8gY3VhbHF1aWVyIGluZm9ybWFjacOzbiBwZXJzb25hbCBxdWUgZWwgdXN1YXJpbyBwcm9wb3JjaW9uZSBhbCBtb21lbnRvIGVuIHF1ZSBoYWNlIHVzbyBkZSBlc3RlIHNpdGlvd2VieSwgZXN0b3Mgc2UgdXRpbGl6YXLDoW4gZXhjbHVzaXZhbWVudGUgcGFyYSBjdW1wbGlyIGNvbiBsb3MgcHJvcMOzc2l0b3MgZGUgc3Ugc2l0aW8gd2ViIHkgc3UgdXNvIGVzIGVsIGVzdGFibGVjaWRvIGVuIGVsIHByZXNlbnRlIGRvY3VtZW50by4KRWwgdXN1YXJpbyBxdWUgcHJvcG9yY2lvbmUgc3VzIGRhdG9zIGVuIGVzdGUgc2l0aW8gd2ViIG8gYSB0cmF2w6lzIGRlIMOpbCwgZXhwcmVzYW1lbnRlIGF1dG9yaXphIGEgbGEgRlVDUyBwYXJhIHJlYWxpemFyIHN1IHRyYXRhbWllbnRvIHNlYSBvIG5vIGF1dG9tYXRpemFkbyB5IHBhcmEgdXNhcmxvcyBjb25mb3JtZSBhIGxvIGV4cHJlc2FkbyBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8sIGRlIGFjdWVyZG8gY29uIGxhIHBvbMOtdGljYSBpbnRlcm5hIGRlIHByb3RlY2Npw7NuIGRlIGRhdG9zLgpFbCBVc3VhcmlvIGVudGllbmRlIHkgYWNlcHRhIHF1ZSBsYSBGVUNTIHBvZHLDoSBlZmVjdHVhciBlbCB0cmF0YW1pZW50byBkZSBsb3MgZGF0b3MgZGVsIHVzdWFyaW8sIGRlIG1hbmVyYSBkaXJlY3RhIG8gYSB0cmF2w6lzIGRlIHRlcmNlcm9zIGV4cHJlc2FtZW50ZSBkZXNpZ25hZG9zIHBvciBlbGxhLCBxdWllbmVzIGFjdHVhcsOhbiBjb21vIGVuY2FyZ2Fkb3MgZGVsIHRyYXRhbWllbnRvIGRlIHN1IGluZm9ybWFjacOzbiBwZXJzb25hbCwgY29uIGxhcyBvYmxpZ2FjaW9uZXMgcXVlIGxhIGxleSBjb250ZW1wbGUuCkxhIGluZm9ybWFjacOzbiBkZSByZWdpc3RybyBxdWUgc2UgbGUgc29saWNpdGEgYWwgdXN1YXJpbyBlcyBsYSBtw61uaW1hIHBhcmEgZGFyIGN1bXBsaW1pZW50byBhIGxhIHBvbMOtdGljYSBkZSB0cmF0YW1pZW50byB5IHByb3RlY2Npw7NuIGRlIGRhdG9zIHBlcnNvbmFsZXMgZGUgbGEgRlVDUyB5IGFsYXMgbm9ybWFzIGxlZ2FsZXMgdmlnZW50ZXMgZW4gQ29sb21iaWEuCkVuIGVsIHByb2Nlc28gZGUgcmVnaXN0cm8sIHNlIGxlIGFkdmVydGlyw6EgYWwgdXN1YXJpbyBjb24gdW4gYXN0ZXJpc2NvICgqKSBxdcOpIGluZm9ybWFjacOzbiBkZWJlIHNlciBzdW1pbmlzdHJhZGEgb2JsaWdhdG9yaWFtZW50ZSB5IGN1w6FsIGVzIG9wY2lvbmFsLgpFbCB1c3VhcmlvIGRlIGVzdGUgc2l0aW8gd2ViIGVudGllbmRlIHkgYWNlcHRhIHF1ZSBzdXMgZGF0b3MgcGVyc29uYWxlcyBzZSByZWNvcGlsYW4gY29uIGVsIGZpbiBkZSBwcm9jdXJhcmxlIHVuIHNlcnZpY2lvIGVmaWNpZW50ZSB5IHBlcnNvbmFsaXphZG8sIHkgcXVlIHBvZHLDoW4gc2VyIHVzYWRvcyBjb24gZmluZXMgYWNhZMOpbWljb3MsIGludmVzdGlnYXRpdm9zIHkgY29tZXJjaWFsZXMsIHBvciBsbyBjdWFsIGF1dG9yaXphIGV4cHJlc2FtZW50ZSBxdWUgc2VhbiB1c2Fkb3MgcGFyYSByZW1pdGlyIGluZm9ybWFjacOzbiBkZSBzdXMgcHJvZ3JhbWFzIGFjYWTDqW1pY29zIGZvcm1hbGVzIGUgaW5mb3JtYWxlcywgcGFyYSBkYXIgY3VtcGxpbWllbnRvIGEgc3VzIG9ibGlnYWNpb25lcyBjb250cmFjdHVhbGVzIG8gbGVnYWxlcywgcGFyYSBldmFsdWFyIGxhIGNhbGlkYWQgZGVsIHNlcnZpY2lvLCBhc8OtIGNvbW8gcGFyYSByZW1pdGlyIGluZm9ybWFjacOzbiBkZSBzdXMgcHJveWVjdG9zLCBwbGFuZXMgeSBkZW3DoXMgaW5mb3JtYWNpw7NuIGluc3RpdHVjaW9uYWwgZGUgbGEgRlVDUy4gRW4gdG9kbyBjYXNvLCBlc3RhIGluZm9ybWFjacOzbiBzZXLDoSB1dGlsaXphZGEgZW4gZGVzYXJyb2xsbyBkZSBsYXMgZnVuY2lvbmVzIHByb3BpYXMgZGUgbGEgRlVDUy4KMy4gRGl2dWxnYWNpw7NuIGRlIGxhIGluZm9ybWFjacOzbiBkZSByZWdpc3RybzoKIApMYSBpbmZvcm1hY2nDs24gZGUgcmVnaXN0cm8gZGUgY2FkYSB1c3VhcmlvIGVzIGNvbmZpZGVuY2lhbCwgeSBubyBzZSBjb21wYXJ0aXLDoSBjb24gb3RyYXMgcGVyc29uYXMgbyBlbnRpZGFkZXMsIHNhbHZvIGN1YW5kbyBsYSBGVUNTIGNvbnNpZGVyZSBxdWUgc2UgcHJlc2VudGVuIGxvcyBzaWd1aWVudGVzIGNhc29zOgogCkN1YW5kbyBsYSBhdXRvcml6YWNpw7NuIGRlbCB0aXR1bGFyIG5vIHNlYSBvYmxpZ2F0b3JpYSAoTnVtZXJhbCA4LiDigJxBdXRvcml6YWNpw7NuIGRlbCBUaXR1bGFy4oCdIOKAkyBQb2zDrXRpY2EgZGUgVHJhdGFtaWVudG8geSBQcm90ZWNjacOzbiBkZSBEYXRvcyBQZXJzb25hbGVzIGRlIGxhIEZVQ1MpClBvciBsYSBleGlzdGVuY2lhIGRlIHVuIG1hbmRhdG8gbGVnYWwsIGRlYmVyIGVzdGF0dXRhcmlvIG8ganVkaWNpYWwgcXVlIG9ibGlndWUgYSBzdW1pbmlzdHJhcmxhLgpDdWFscXVpZXIgb3RyYSBleGNlcGNpw7NuIGRlZmluaWRhIGVuIGxhcyBsZXllcyBhcGxpY2FibGVzCkVuIHRvZG8gY2FzbywgZWwgVXN1YXJpbyBlbnRpZW5kZSB5IGFjZXB0YSBxdWUgc3VzIGRhdG9zIHBlcnNvbmFsZXMgZXZlbnR1YWxtZW50ZSBzZSBjb21wYXJ0aXLDoW4gY29uIG90cmFzIGVudGlkYWRlcyB1IG9yZ2FuaXphY2lvbmVzIHByaXZhZGFzIG8gZXN0YXRhbGVzLCBjb24gZWwgZmluIGRlIGN1bXBsaXIgY29uIGxvcyBkZWJlcmVzIHkgb2JsaWdhY2lvbmVzIHF1ZSBsZWdhbG1lbnRlIHRpZW5lIGNvbW8gSW5zdGl0dWNpw7NuIGRlIEVkdWNhY2nDs24gU3VwZXJpb3IuCiAKNC4gT2JsaWdhY2lvbmVzIHkgZGViZXJlcyBkZWwgdXN1YXJpbzoKIApFbCB1c3VhcmlvIGVzdMOhIGRlIGFjdWVyZG8gZW4gcHJvcG9yY2lvbmFyIGEgbGEgRlVDUywgaW5mb3JtYWNpw7NuIHZlcmRhZGVyYSwgcHJlY2lzYSwgYWN0dWFsaXphZGEgeSBjb21wbGV0YSwgc2Vnw7puIHNlIGluZGlxdWUgZW4gZWwgZm9ybXVsYXJpbyBkZSByZWdpc3Ryby4gSWd1YWxtZW50ZSwgZWwgdXN1YXJpbyBlc3TDoSBkZSBhY3VlcmRvIGVuIGNvbGFib3JhciBjb24gbGEgRlVDUywgcGFyYSBtYW50ZW5lciBlc3RhIGluZm9ybWFjacOzbiBhY3R1YWxpemFkYSB5IGNvbXBsZXRhLgogCkVsIHVzdWFyaW8gc2Ugb2JsaWdhIGEgbm8gcmVwcm9kdWNpciwgZHVwbGljYXIsIGNvcGlhciwgdmVuZGVyLCByZXZlbmRlciBvIGV4cGxvdGFyIHBhcmEgZmluZXMgY29tZXJjaWFsZXMsIGN1YWxxdWllciBzZWNjacOzbiBkZWwgc2VydmljaW8sIHVzbyBvIGFjY2VzbyBhbCBtaXNtby4gVGFudG8gZWwgc2VydmljaW8gY29tbyB0ZXJjZXJvcyBwb2Ryw6FuIHByb3BvcmNpb25hciB2w61uY3Vsb3MgYSBvdHJvcyBzaXRpb3MgbyByZWN1cnNvcyBkZSBsYSByZWQgbXVuZGlhbC4gRGViaWRvIGEgcXVlIGxhIEZVQ1Mgbm8gdGllbmUgY29udHJvbCBhbGd1bm8gc29icmUgZGljaG9zIHNpdGlvcyBvIHJlY3Vyc29zLCBlbCB1c3VhcmlvIHJlY29ub2NlIHkgYWNlcHRhIHF1ZSBsYSBGVUNTIG5vIHNlcsOhIHJlc3BvbnNhYmxlIHBvciBsYSBkaXNwb25pYmlsaWRhZCBkZSBsb3Mgc2l0aW9zIG8gcmVjdXJzb3MgZXh0ZXJub3MgbmkgcG9yIGN1YWxxdWllciBjb250ZW5pZG8sIHB1YmxpY2lkYWQsIHByb2R1Y3Rvcywgc2VydmljaW9zIHUgb3RybyB0aXBvIGRlIG1hdGVyaWFsIGNvbnRlbmlkbyDDsyBhIGRpc3Bvc2ljacOzbiBlbiB0YWxlcyBzaXRpb3MgbyByZWN1cnNvcy4KIApFbCB1c3VhcmlvIHJlY29ub2NlIHkgYWNlcHRhIHF1ZSBsYSBGVUNTIG5vIHNlcsOhIHJlc3BvbnNhYmxlLCBkaXJlY3RhIG8gaW5kaXJlY3RhbWVudGUsIHBvciBjdWFscXVpZXIgZGHDsW8gbyBwZXJqdWljaW8gY2F1c2FkbyBvIHF1ZSBzZSBwcmVzdW1hIHF1ZSBzZWEgY2F1c2FkbyBwb3IgdGFsZXMgY29udGVuaWRvcywgcHJvZHVjdG9zIG8gc2VydmljaW9zIGRpc3BvbmlibGVzIGVuIGRpY2hvcyBzaXRpb3MgbyByZWN1cnNvcyBleHRlcm5vcywgbyBwb3IgbGEgdXRpbGl6YWNpw7NuIG8gY29uZmlhbnphIGRlcG9zaXRhZGEgcG9yIGVsIHVzdWFyaW8gZW4gdGFsZXMgY29udGVuaWRvcywgcHJvZHVjdG9zIG8gc2VydmljaW9zLgogCkVsIHVzdWFyaW8gc2Ugb2JsaWdhIGEgTk8gdXRpbGl6YXIgZWwgcG9ydGFsIHdlYiBuaSBlc3RlIFNlcnZpY2lvIGNvbiBlbCBmaW4gZGU6CiAKUG9uZXIgYSBkaXNwb3NpY2nDs24gZGUgbG9zIGRlbcOhcywgZW52aWFyIHBvciBlLW1haWwgbywgZGUgY3VhbHF1aWVyIG1vZG8sIHRyYW5zbWl0aXIgY29udGVuaWRvcyBpbGVnYWxlcywgZGHDsWlub3MsIG1vbGVzdG9zLCBhbWVuYXphZG9yZXMsIGFidXNpdm9zLCB0b3J0dW9zb3MsIGRpZmFtYXRvcmlvcywgdnVsZ2FyZXMsIG9ic2Nlbm9zLCBpbnZhc29yZXMgZGUgbGEgaW50aW1pZGFkIGRlIHRlcmNlcm9zLCBvZGlvc29zLCB4ZW7Ds2ZvYm9zLCByYWNpc3RhcywgaWxlZ2FsZXMgbywgZGUgYWxnw7puIG1vZG8sIGluYWNlcHRhYmxlczsKSGFjZXJzZSBwYXNhciBvIGZpbmdpciBzZXIgY3VhbHF1aWVyIG90cmEgcGVyc29uYSBvIGVudGlkYWQsIGluY2x1eWVuZG8sIHNpbiBsaW1pdGFjacOzbiwgdW4gcmVwcmVzZW50YW50ZSBkZSBsYSBGVUNTLCBmdW5kYWRvciwgZ3XDrWEgbyBhbmZpdHJpw7NuIGRlIGZvcnVtcywgbyBkZSBjdWFscXVpZXIgb3RybyBtb2RvIG1lbnRpciBvIGZpbmdpciBzb2JyZSBzdSByZWxhY2nDs24gY29uIGN1YWxxdWllciBvdHJhIHBlcnNvbmEgbyBhZmlsaWFjacOzbiBhIGN1YWxxdWllciBlbnRpZGFkOwpQb25lciBhIGRpc3Bvc2ljacOzbiBkZSBsb3MgZGVtw6FzIHVzdWFyaW9zLCBlbnZpYXIgcG9yIGUtbWFpbCBvLCBkZSBhbGfDum4gbW9kbyB0cmFuc21pdGlyLCBjdWFscXVpZXIgY29udGVuaWRvIHF1ZSwgZGUgYWN1ZXJkbyBjb24gbGFzIGxleWVzIGFwbGljYWJsZXMgbyByZWxhY2lvbmVzIGNvbnRyYWN0dWFsZXMgZXhpc3RlbnRlcywgZWwgdXN1YXJpbyBubyBlc3TDoSBhdXRvcml6YWRvIGEgdHJhbnNtaXRpciAodGFsZXMgY29tbyBpbmZvcm1hY2nDs24gcHJpdmlsZWdpYWRhLCBpbmZvcm1hY2nDs24gcHJvdGVnaWRhIHBvciBkZXJlY2hvcyBkZSBwcm9waWVkYWQgaW5kdXN0cmlhbCBvIGludGVsZWN0dWFsIG8gaW5mb3JtYWNpw7NuIHNvYnJlIGxhIGN1YWwgdGllbmUgdW4gZGViZXIgZGUgY29uZmlkZW5jaWFsaWRhZCkuClBvbmVyIGEgZGlzcG9zaWNpw7NuIGRlIGxvcyBkZW3DoXMgdXN1YXJpb3MsIGVudmlhciBwb3IgZS1tYWlsIG8sIGRlIGFsZ8O6biBtb2RvLCB0cmFuc21pdGlyIGNvbnRlbmlkbyBhbGd1bm8gc3VzY2VwdGlibGUgZGUgaW5mcmluZ2lyIHBhdGVudGVzLCBtYXJjYXMsIHNlY3JldG9zIGNvbWVyY2lhbGVzLCBkZXJlY2hvcyBkZSBhdXRvciB1IG90cm9zIGRlcmVjaG9zIGRlIHRlcmNlcm9zICgiRGVyZWNob3MiKTsKUG9uZXIgYSBkaXNwb3NpY2nDs24gZGUgbG9zIGRlbcOhcyB1c3VhcmlvcywgZW52aWFyIHBvciBlLW1haWwgbywgZGUgYWxnw7puIG1vZG8sIHRyYW5zbWl0aXIgcHVibGljaWRhZCBubyBzb2xpY2l0YWRhIG8gYXV0b3JpemFkYSwgbWF0ZXJpYWwgcHVibGljaXRhcmlvLCAiY29ycmVvIGJhc3VyYSIsICJjYXJ0YXMgZW4gY2FkZW5hIiwgImVzdHJ1Y3R1cmFzIHBpcmFtaWRhbGVzIiwgbyBjdWFscXVpZXIgb3RyYSBmb3JtYSBkZSBzb2xpY2l0dWQ7ClBvbmVyIGEgZGlzcG9zaWNpw7NuIGRlIGxvcyBkZW3DoXMgdXN1YXJpb3MsIGVudmlhciBwb3IgZS1tYWlsIG8sIGRlIGFsZ8O6biBtb2RvLCB0cmFuc21pdGlyIG1hdGVyaWFsIGFsZ3VubyBxdWUgc2VhIHBvcnRhZG9yIGRlIHZpcnVzIG8gY3VhbHF1aWVyIG90cm8gY8OzZGlnbyBpbmZvcm3DoXRpY28sIGFyY2hpdm9zIG8gcHJvZ3JhbWFzIGRpc2XDsWFkb3MgcGFyYSBpbnRlcnJ1bXBpciwgZGVzdHJ1aXIgbyBsaW1pdGFyIGVsIGZ1bmNpb25hbWllbnRvIGRlIGN1YWxxdWllciBzb2Z0d2FyZSwgaGFyZHdhcmUgbyBlcXVpcG8gZGUgdGVsZWNvbXVuaWNhY2lvbmVzOwpQb25lciBhIGRpc3Bvc2ljacOzbiBkZSBsb3MgZGVtw6FzIHVzdWFyaW9zLCBlbnZpYXIgcG9yIGUtbWFpbCBvLCBkZSBhbGfDum4gbW9kbyB0cmFuc21pdGlyLCBjdWFscXVpZXIgY29udGVuaWRvIHF1ZSwgZGUgYWN1ZXJkbyBjb24gbGFzIGxleWVzIGFwbGljYWJsZXMsIHNlYSBkZSBjYXLDoWN0ZXIgaWxlZ2FsIG8gaW1wbGlxdWUsIGF5dWRlIG8gY29hZHl1dmUgbGEgY29taXNpw7NuIGRlIGNvbmR1Y3RhcyBkZWxpY3R1YWxlcyBvIGlsZWdhbGVzIGRlIGN1YWxxdWllciBtYW5lcmEuCkludGVycnVtcGlyIGVsIGN1cnNvIG5vcm1hbCBkZSBsYXMgY29udmVyc2FjaW9uZXMsIHByb3ZvY2FyIHF1ZSBsYSBwYW50YWxsYSBkZWwgb3JkZW5hZG9yIGFkcXVpZXJhIG1heW9yIHZlbG9jaWRhZCBkZSBsYSBub3JtYWwgY29uIGxhIHF1ZSBsb3MgdXN1YXJpb3MgcHVlZGVuIHBhcnRpY2lwYXIgZW4gZWwgU2VydmljaW8sIG8gZGUgYWxnw7puIG1vZG8gYWN0dWFyIGRlIG1hbmVyYSBxdWUgYWZlY3RlIGRlIGZvcm1hIG5lZ2F0aXZhIGEgbGEgcG9zaWJpbGlkYWQgZGUgY29tdW5pY2Fyc2UgZW4gdGllbXBvIHJlYWw7CkludGVyZmVyaXIgbyBpbnRlcnJ1bXBpciBlbCBTZXJ2aWNpbywgc2Vydmlkb3JlcyBvIHJlZGVzIGNvbmVjdGFkb3MgYWwgU2VydmljaW8sIG8gaW5jdW1wbGlyIGxvcyByZXF1aXNpdG9zLCBwcm9jZWRpbWllbnRvcyB5IHJlZ3VsYWNpb25lcyBkZSBsYSBwb2zDrXRpY2EgZGUgcmVkZXMgY29uZWN0YWRhcyBhbCBzZXJ2aWNpby4KNS4gTGltaXRhY2lvbmVzIGRlIGxhIFJlc3BvbnNhYmlsaWRhZDoKIApDb24gdG9kYSBsYSBleHRlbnNpw7NuIHBlcm1pdGlkYSBwb3IgbGFzIGxleWVzIG5hY2lvbmFsZXMgYXBsaWNhYmxlcywgbGEgRlVDUyBubyBhc3VtZSByZXNwb25zYWJpbGlkYWQgY29udHJhY3R1YWwgbyBleHRyYWNvbnRyYWN0dWFsIGFsZ3VuYSBkZSBsb3MgZGHDsW9zIHkgcGVyanVpY2lvcyBkaXJlY3RvcywgaW5kaXJlY3RvcywgaW5jaWRlbnRhbGVzLCBlc3BlY2lhbGVzIG8gZW1lcmdlbnRlcyAoaW5jbHVzbyBzaSBsYSBGdW5kYWNpw7NuIFVuaXZlcnNpdGFyaWEgZGUgQ2llbmNpYXMgZGUgbGEgU2FsdWQgaHViaWVyYSBzaWRvIGFkdmVydGlkbyBkZSBsYSBwb3NpYmlsaWRhZCBkZSBsb3MgbWlzbW9zKSBxdWUgdHJhaWdhbiBjYXVzYSBkZWw6IGVsIHVzbyBvIGRlIGxhIGltcG9zaWJpbGlkYWQgZGUgdXNhciBlbCBzZXJ2aWNpbzsgZWwgZGVsIGFjY2VzbyBubyBhdXRvcml6YWRvIMOzIGFsdGVyYWNpw7NuIGRlIHN1cyB0cmFuc21pc2lvbmVzIGRlIGRhdG9zOyBlbCBkZWNsYXJhY2lvbmVzIGRlIGNvbmR1Y3RhIGRlIHRlcmNlcm9zIGEgdHJhdsOpcyBkZWwgc2VydmljaW8uCiAKRWwgdXN1YXJpbyBhY3VlcmRhIGFkZW3DoXMgcXVlIGxhIEZ1bmRhY2nDs24gVW5pdmVyc2l0YXJpYSBkZSBDaWVuY2lhcyBkZSBsYSBTYWx1ZCBubyBzZXLDoSByZXNwb25zYWJsZSBkZSBuaW5nw7puIGRhw7FvIG8gcGVyanVpY2lvIGRlcml2YWRvIGRlIGxhIGludGVycnVwY2nDs24sIHN1c3BlbnNpw7NuIG8gdGVybWluYWNpw7NuIGRlbCBzZXJ2aWNpbywgaW5jbHV5ZW5kbywgcGVybyBubyBsaW1pdMOhbmRvc2UsIGEgZGHDsW9zLCBsdWNybyBjZXNhbnRlLCB1c28sIGRhdG9zIHUgb3Ryb3MgYmllbmVzIGludGFuZ2libGVzLCBvIHBlcmp1aWNpb3MgZGlyZWN0b3MsIGluZGlyZWN0b3MsIGluY2lkZW50YWxlcywgZXNwZWNpYWxlcywgY29uc2VjdWVudGVzLCBvIGVqZW1wbGFyZXMsIHlhIHNlYSBxdWUgdGFsIGludGVycnVwY2nDs24sIHN1c3BlbnNpw7NuIG8gdGVybWluYWNpw7NuIHNlYSBqdXN0aWZpY2FkYSBvIG5vLCBuZWdsaWdlbnRlIMOzIGludGVuY2lvbmFsLCBhZHZlcnRpZGEgw7MgaW5hZHZlcnRpZGEuCiAKTGEgRlVDUywgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGEgcmV0aXJhciBzaW4gcHJldmlhIG5vdGlmaWNhY2nDs24gYSBjdWFscXVpZXIgdXN1YXJpbyBxdWUgc2UgY29uc2lkZXJlIG9mZW5zaXZvIGVuIGxhcyBjb252ZXJzYWNpb25lcyBvIGRpw6Fsb2dvcyBkZSBsb3MgdXN1YXJpb3MgbyB2aXNpdGFudGVzIGRlbCBzaXRpbyB3ZWIgZW4gZm9yb3MgbyBjaGF0cy4KIApMYSBGVUNTIG5vIGVzIHJlc3BvbnNhYmxlIGNvbiByZXNwZWN0byBhIGxhIHByaXZhY2lkYWQgZGUgbGEgaW5mb3JtYWNpw7NuIHBlcnNvbmFsIHF1ZSBlbCB1c3VhcmlvIGRpdnVsZ3VlIG8gcmVtaXRhIGVuIGZvcm9zLCBzZXNpb25lcyBkZSBjaGF0IGRlbCBzaXRpbyB3ZWIsIGVuIGNvcnJlb3MgZWxlY3Ryw7NuaWNvcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpdGlvIHdlYi4gRWwgdXN1YXJpbyBlcyBleGNsdXNpdm8gcmVzcG9uc2FibGUgZGUgbGEgcHJpdmFjaWRhZCB5IGN1c3RvZGlhIGRlIGN1YWxxdWllciBkYXRvIHBlcnNvbmFsIHF1ZSBlbnRyZWd1ZSBhIHVuYSBwZXJzb25hIG8gZW1wcmVzYSBkaWZlcmVudGUgRlVDUy4KIAo2LiBEZXJlY2hvcyBkZSBQcm9waWVkYWQgSW50ZWxlY3R1YWw6CiAKRWwgVXN1YXJpbyByZWNvbm9jZSB5IGFjZXB0YSBxdWUgZWwgc2VydmljaW8geSBjdWFscXVpZXIgc29mdHdhcmUgdXNhZG8gZW4gcmVsYWNpw7NuIGNvbiBlbCBzZXJ2aWNpbyBxdWUgY29udGllbmUgaW5mb3JtYWNpw7NuIGNvbmZpZGVuY2lhbCB5IGRlIHByb3BpZWRhZCBhamVuYSBwcm90ZWdpZGEgcG9yIGxhIGxlZ2lzbGFjacOzbiBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgeSBvdHJhcyBkaXNwb3NpY2lvbmVzIGxlZ2FsZXMuIEFkZW3DoXMgZWwgdXN1YXJpbyByZWNvbm9jZSB5IGFjZXB0YSBxdWUgZWwgY29udGVuaWRvIGluY2x1eWVuZG8sIHBlcm8gbm8gbGltaXTDoW5kb3NlLCB0ZXh0b3MsIHByb2dyYW1hcyAoYXBwbGV0cyksIGZvdG9ncmFmw61hcywgZ3LDoWZpY29zLCB2aWRlb3MgdSBvdHJvIG1hdGVyaWFsIGNvbnRlbmlkbyBlbiBlbCBzZXJ2aWNpbywgYXPDrSBjb21vIHRhbWJpw6luIGluZm9ybWFjaW9uZXMgZGl2dWxnYWRhcyBhbCB1c3VhcmlvIGEgdHJhdsOpcyBkZWwgc2VydmljaW8sIGVzdMOhIHByb3RlZ2lkbyBwb3IgZGVyZWNob3MgZGUgYXV0b3IsIG1hcmNhcyBjb21lcmNpYWxlcywgcGF0ZW50ZXMgeSBvdHJvcyBkZXJlY2hvcyBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwsIGRlIGFjdWVyZG8gY29uIGxhIGxlZ2lzbGFjacOzbiBjb2xvbWJpYW5hLCBjb211bml0YXJpYSBlIGludGVybmFjaW9uYWwgYXBsaWNhYmxlLgogCkVsIFVzdWFyaW8gcmVjb25vY2UgeSBhY3VlcmRhIHF1ZSBzb2xhbWVudGUgcG9kcsOhIHV0aWxpemFyIHRhbGVzIG1hdGVyaWFsZXMgZSBpbmZvcm1hY2lvbmVzIHNlZ8O6biBsbyBleHByZXNhbWVudGUgYXV0b3JpemFkbyBwb3IgbGEgRlVDUywgeSBubyBwb2Ryw6EgY29waWFyLCByZXByb2R1Y2lyLCB0cmFuc21pdGlyLCBkaXN0cmlidWlyIG8gY3JlYXIgb2JyYXMgZGVyaXZhZGFzIGEgcGFydGlyIGRlIHRhbGVzIG1hdGVyaWFsZXMgbyBpbmZvcm1hY2lvbmVzIHNpbiBsYSBleHByZXNhIGF1dG9yaXphY2nDs24gZGVsIHJlc3BlY3Rpdm8gcHJvcGlldGFyaW8uCiAKRWwgVXN1YXJpbyBzZSBvYmxpZ2EgYSBubyBtb2RpZmljYXIgZWwgc29mdHdhcmUgaW52b2x1Y3JhZG8gZW4gZWwgcG9ydGFsIHdlYiBkZSBuaW5ndW5hIG1hbmVyYSwgbyB1dGlsaXphciB2ZXJzaW9uZXMgZGUgc29mdHdhcmUgbW9kaWZpY2FkYXMgY29uIGVsIGZpbiwgZW50cmUgb3Ryb3MsIGRlIG9idGVuZXIgYWNjZXNvIG5vIGF1dG9yaXphZG8gYWwgU2VydmljaW8uIEVsIFVzdWFyaW8gc2Ugb2JsaWdhIGEgbm8gYWNjZWRlciBhbCBTZXJ2aWNpbyBwb3Igb3Ryb3MgbWVkaW9zIHF1ZSBubyBzZWFuIGEgdHJhdsOpcyBkZSBsYSBpbnRlcmZheiBxdWUgbGEgRlVDUyBwcm9wb3JjaW9uYSBwYXJhIGFjY2VkZXIgYWwgU2VydmljaW8uCiAKNy4gR2FyYW50w61hIExpbWl0YWRhOgogCkVsIHVzbyBkZWwgc2VydmljaW8gc2Vyw6EgYmFqbyBleGNsdXNpdm8gcmllc2dvIHkgcmVzcG9uc2FiaWxpZGFkIGRlbCB1c3VhcmlvLiBFbCBzZXJ2aWNpbyBlcyBzdW1pbmlzdHJhZG8gZ3JhdHVpdGFtZW50ZSB5IGRlcGVuZGUgZGUgbGEgZnVuY2lvbmFsaWRhZCBkZSB2YXJpb3MgZmFjdG9yZXMsIGNvbW8gbGEgaW50ZXJhY2Npw7NuIGRlIHNlcnZpZG9yZXMgeSBzZXJ2aWNpb3MgZGUgdGVsZWNvbXVuaWNhY2lvbmVzIGRlIHRlcmNlcm9zLCBsYSBhZGVjdWFjacOzbiBkZSBsb3MgZXF1aXBvcyBkZSB1c3VhcmlvIHkgZGVzdGluYXRhcmlvIGRlbCBtZW5zYWplLiBDb25zaWRlcmFuZG8gdGFsZXMgZmFjdG9yZXMsIGxhIEZVQ1MgZW1wbGVhcsOhIHN1cyBtZWpvcmVzIGVzZnVlcnpvcyBwYXJhIHF1ZSBsb3MgbWVuc2FqZXMgZGUgZS1tYWlsIGVudmlhZG9zIGEgdHJhdsOpcyBkZWwgc2VydmljaW8sIHNlYW4gcmVjaWJpZG9zIHBvciBlbCBkZXN0aW5hdGFyaW8gZW4gZm9ybWEgY29ycmVjdGEgeSBzaW4gaW50ZXJmZXJlbmNpYXMuIFNpbiBlbWJhcmdvLCBwb3IgZXN0YXMgbWlzbWFzIHJhem9uZXMsIGxhIEZVQ1Mgbm8gcHVlZGUgZ2FyYW50aXphciBxdWUgbG9zIG1lbnNhamVzIHNlcsOhbiBlbnRyZWdhZG9zIGFsIGRlc3RpbmF0YXJpbyBjb3JyZWN0bywgZW4gdW4gcGxhem8gYWRlY3VhZG8sIG8gbm8gc3Vmcmlyw6FuIGV4dHJhdsOtbywgZGl2dWxnYWNpw7NuIG8gdmlvbGFjacOzbiBwb3IgcGFydGVzIGRlIHRlcmNlcm9zIG5vIGF1dG9yaXphZG9zLCBjb21vIHBvciBlamVtcGxvcyAiaGFja2VycyIuCiAKU2UgYWNvbnNlamEgYWwgdXN1YXJpbyBubyBjb25maWFyIGV4Y2x1c2l2YW1lbnRlIGVuIGVsIHNlcnZpY2lvIHBhcmEgZW52aWFyIGluZm9ybWFjaW9uZXMgaW1wb3J0YW50ZXMgbyBjb25maWRlbmNpYWxlcyB5IGxhIEZ1bmRhY2nDs24gVW5pdmVyc2l0YXJpYSBkZSBDaWVuY2lhcyBkZSBsYSBTYWx1ZCBubyBzZSByZXNwb25zYWJpbGl6YXLDoSBwb3IgbmluZ3VuYSBmYWxsYSByZXN1bHRhbnRlIGRlbCBlbnbDrW8gZGUgbWVuc2FqZXMgcG9yIHBhcnRlIGRlbCB1c3VhcmlvLgogCkxhIEZVQ1Mgbm8gZ2FyYW50aXphIHF1ZSBlbCBzZXJ2aWNpbyBzZSBwcmVzdGFyw6EgZGUgbWFuZXJhIGluaW50ZXJydW1waWRhLCBzZWd1cmEgbyBsaWJyZSBkZSBlcnJvci4gTGEgRlVDUyB0YW1wb2NvIG90b3JnYSBuaW5ndW5hIGdhcmFudMOtYSBlbiBjdWFudG8gYSBsb3MgcmVzdWx0YWRvcyBxdWUgc2UgcHVlZGFuIG9idGVuZXIgZGVsIHVzbyBkZWwgc2VydmljaW8sIG5pIHF1ZSBsb3MgZGVmZWN0b3MgZW4gbG9zIHByb2dyYW1hcyBzZXLDoW4gY29ycmVnaWRvcy4KIApFbCB1c3VhcmlvIHJlY29ub2NlIHkgYWN1ZXJkYSBxdWUgY3VhbHF1aWVyIG1hdGVyaWFsIHkvbyBpbmZvcm1hY2nDs24gb2J0ZW5pZGEgYSB0cmF2w6lzIGRlbCBzZXJ2aWNpbyBvIGRlIHN1IHV0aWxpemFjacOzbiwgZXN0YXLDoSBzdWpldGEgYSBzdSBlbnRlcm8gY3JpdGVyaW8geSByaWVzZ287IHkgcXVlIHNlcsOhIGVsIMO6bmljbyByZXNwb25zYWJsZSBkZSBjdWFscXVpZXIgZGHDsW8gb2N1cnJpZG8gZW4gc3UgY29tcHV0YWRvcmEgbyBww6lyZGlkYSBkZSBkYXRvcyBxdWUgcHVlZGEgcmVzdWx0YXIgZGUgcmVjaWJpciB0YWwgbWF0ZXJpYWwuCiAKTm90YTogc2kgcmVjaWJlIHVuIG1lbnNhamUgZGUgY29ycmVvIGVsZWN0csOzbmljbyBubyBzb2xpY2l0YWRvLCBvIGN1YWxxdWllciBtZW5zYWplIGFtZW5hemFkb3IgdSBvZmVuc2l2bywgbyBjb25zaWRlcmEgcXVlIG90cm8gdXN1YXJpbyBvIGN1YWxxdWllciBwZXJzb25hIGxlIGVzdMOhIHZ1bG5lcmFuZG8gdW4gZGVyZWNobyBjb25mb3JtZSBhIGVzdGUgZG9jdW1lbnRvLCByZW3DrXRhbm9zIHVuYSBjb3BpYSBjb21wbGV0YSB5IHNpbiBtb2RpZmljYXIgZGVsIG1lbnNhamUgZGUgY29ycmVvIGVsZWN0csOzbmljbyBjb24gbG9zIGVuY2FiZXphZG9zIGNvbXBsZXRvcyBhIGxhIHNpZ3VpZW50ZSBkaXJlY2Npw7NuIGVsZWN0csOzbmljYTogeWx0b3JvQGZ1Y3NhbHVkLmVkdS5jbwoKTGFzIHByZWd1bnRhcyBxdWUgZWwgdXN1YXJpbyBvIGN1YWxxdWllciBwZXJzb25hIGRlc2VlIHJlYWxpemFyIHNvYnJlIGxvIGV4cHJlc2FkbyBlbiBlc3RlIGRvY3VtZW50bywgbGFzIHB1ZWRlIGZvcm11bGFyIGEgbGEgc2lndWllbnRlIGRpcmVjY2nDs24gZWxlY3Ryw7NuaWNhOiB5bHRvcm9AZnVjc2FsdWQuZWR1LmNvCg==