Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree.
Los Sistemas de Detección de Intrusos (IDS) tienen importancia en el campo de seguridad para sistemas computacionales modernos que se conecten a través de redes de información, así como en la mitigación de posibles daños en caso de tener ataques de algún tipo. Los IDS observan los eventos en una red...
- Autores:
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2022
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- spa
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/30117
- Acceso en línea:
- http://hdl.handle.net/11349/30117
- Palabra clave:
- Algoritmos de clasificación
Ciberataque
DDoS (Distributed Denial of Service)
Sistemas de detección de intrusos
Dataset CICIDS-2017
Ingeniería en Telecomunicaciones - Tesis y disertaciones académicas
Cliente/Servidores (Computadores)
Algoritmos (Computadores)
Sistemas de seguridad
Internet - Medidas de seguridad
Seguridad en computadores
Classification algorithms
Cyber attack
CICIDS-2017 dataset
DDoS (Distributed Denial of Service)
Intrusion detection systems
- Rights
- License
- Atribución-NoComercial-SinDerivadas 2.5 Colombia
id |
UDISTRITA2_b65f30753bc48561dc64cc9c1cf554e0 |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/30117 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree. |
dc.title.titleenglish.spa.fl_str_mv |
DDoS (distributed denial of services) attack detection model (distributed denial of services) attack detection model, based on the decision tree classifier |
title |
Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree. |
spellingShingle |
Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree. Algoritmos de clasificación Ciberataque DDoS (Distributed Denial of Service) Sistemas de detección de intrusos Dataset CICIDS-2017 Ingeniería en Telecomunicaciones - Tesis y disertaciones académicas Cliente/Servidores (Computadores) Algoritmos (Computadores) Sistemas de seguridad Internet - Medidas de seguridad Seguridad en computadores Classification algorithms Cyber attack CICIDS-2017 dataset DDoS (Distributed Denial of Service) Intrusion detection systems |
title_short |
Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree. |
title_full |
Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree. |
title_fullStr |
Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree. |
title_full_unstemmed |
Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree. |
title_sort |
Modelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree. |
dc.contributor.advisor.none.fl_str_mv |
Cadena Muñoz, Ernesto |
dc.subject.spa.fl_str_mv |
Algoritmos de clasificación Ciberataque DDoS (Distributed Denial of Service) Sistemas de detección de intrusos Dataset CICIDS-2017 |
topic |
Algoritmos de clasificación Ciberataque DDoS (Distributed Denial of Service) Sistemas de detección de intrusos Dataset CICIDS-2017 Ingeniería en Telecomunicaciones - Tesis y disertaciones académicas Cliente/Servidores (Computadores) Algoritmos (Computadores) Sistemas de seguridad Internet - Medidas de seguridad Seguridad en computadores Classification algorithms Cyber attack CICIDS-2017 dataset DDoS (Distributed Denial of Service) Intrusion detection systems |
dc.subject.lemb.spa.fl_str_mv |
Ingeniería en Telecomunicaciones - Tesis y disertaciones académicas Cliente/Servidores (Computadores) Algoritmos (Computadores) Sistemas de seguridad Internet - Medidas de seguridad Seguridad en computadores |
dc.subject.keyword.spa.fl_str_mv |
Classification algorithms Cyber attack CICIDS-2017 dataset DDoS (Distributed Denial of Service) Intrusion detection systems |
description |
Los Sistemas de Detección de Intrusos (IDS) tienen importancia en el campo de seguridad para sistemas computacionales modernos que se conecten a través de redes de información, así como en la mitigación de posibles daños en caso de tener ataques de algún tipo. Los IDS observan los eventos en una red para la posterior toma de decisiones. Debido a la popularidad de Internet y las redes locales, están aumentando los incidentes de intrusión en los sistemas informáticos, la rápida expansión de las redes informáticas crea consigo la necesidad de desarrollo de sistemas que puedan detectar las amenazas a la red, de manera fiable con una tasa de detección alta y una tasa de falsos positivos baja en condiciones de uso de recursos computacionales normales. Para satisfacer la necesidad identificada, con el presente proyecto de grado bajo la modalidad de monografía se planteó desarrollar un modelo de detección de intrusos para ataques DDoS, que se implementó mediante la técnica de clasificación de Machine Learning Decision Tree; el modelo fue desarrollado teniendo como base un conjunto de datos llamado CIC-IDS 2017 desarrollado por la Universidad de New Brunswick, Canadá que contiene información actualizada de ataques comunes en un entorno real, y del cual se seleccionaron sus principales características con el fin de optimizar el aprendizaje del sistema. El sistema desarrollado es un script del lenguaje Python que se compone de diferentes etapas: Recolección de datos, Pre-Procesamiento de Datos, Análisis Exploratorio de Datos, Reducción del conjunto de datos, Selección del algoritmo, Entrenamiento del sistema, Evaluación del sistema. El resultado (sistema entrenado) tiene la capacidad de procesar un set de datos nuevo con la misma estructura del dataset de entrenamiento y hacer clasificaciones para categorizar una captura de tráfico como conexión normal o como ataque Posterior al análisis de las métricas resultantes del sistema entrenado con el conjunto de datos completo, y la comparación de resultados con otros algoritmos usados en Machine Learning para clasificación, se puede concluir que el algoritmo Decision Tree no presentó el mejor rendimiento en comparación a otras técnicas, en este sentido el mejor desempeño lo obtuvo el algoritmo K- Nearest Neighbor (K – Vecinos más próximos) presentando una exactitud en su clasificación 53% mayor al algoritmo Decision Tree. Sin embargo, se realizó un entrenamiento posterior con la técnica Decision Tree variando sus híper-parámetros, consiguiendo así un aumento del 49% en la exactitud de sus clasificaciones y poniéndolo a la par de otros algoritmos. Referente a los resultados del sistema entrenado con el conjunto de datos reducido por el software WEKA bajo el criterio de correlación, se pudo observar que Decision Tree mejoró su métrica de exactitud en un 36% comparado al entrenamiento del conjunto de datos completo, estando dentro de los algoritmos de mejor desempeño junto a Random Forest. |
publishDate |
2022 |
dc.date.accessioned.none.fl_str_mv |
2022-08-18T16:36:55Z |
dc.date.available.none.fl_str_mv |
2022-08-18T16:36:55Z |
dc.date.created.none.fl_str_mv |
2022-03-07 |
dc.type.degree.spa.fl_str_mv |
Monografía |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.coar.spa.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
format |
http://purl.org/coar/resource_type/c_7a1f |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/11349/30117 |
url |
http://hdl.handle.net/11349/30117 |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.rights.*.fl_str_mv |
Atribución-NoComercial-SinDerivadas 2.5 Colombia Atribución-NoComercial-SinDerivadas 2.5 Colombia |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/2.5/co/ |
dc.rights.acceso.spa.fl_str_mv |
Abierto (Texto Completo) |
rights_invalid_str_mv |
Atribución-NoComercial-SinDerivadas 2.5 Colombia http://creativecommons.org/licenses/by-nc-nd/2.5/co/ Abierto (Texto Completo) http://purl.org/coar/access_right/c_abf2 |
dc.format.mimetype.spa.fl_str_mv |
pdf |
institution |
Universidad Distrital Francisco José de Caldas |
bitstream.url.fl_str_mv |
http://repository.udistrital.edu.co/bitstream/11349/30117/1/CarvajalHoyosCamiloAndres2022.pdf http://repository.udistrital.edu.co/bitstream/11349/30117/2/Licencia%20de%20uso%20y%20publicacion%20editable.pdf http://repository.udistrital.edu.co/bitstream/11349/30117/3/license_rdf http://repository.udistrital.edu.co/bitstream/11349/30117/4/license.txt http://repository.udistrital.edu.co/bitstream/11349/30117/5/CarvajalHoyosCamiloAndres2022.pdf.jpg http://repository.udistrital.edu.co/bitstream/11349/30117/6/Licencia%20de%20uso%20y%20publicacion%20editable.pdf.jpg |
bitstream.checksum.fl_str_mv |
fb5e666dd030eeb2c759e0e80e13ff77 429015e2f0a7dd2ec9a2a032749ce811 217700a34da79ed616c2feb68d4c5e06 997daf6c648c962d566d7b082dac908d fef9378317b127b4beac2dc3c01bbcdf ecba7fd0adbbbbd2078dee1175503f83 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad Distrital - RIUD |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1814110988553682944 |
spelling |
Cadena Muñoz, ErnestoCarvajal Hoyos, Camilo AndrésSusa Velandia, Juan Sebastián2022-08-18T16:36:55Z2022-08-18T16:36:55Z2022-03-07http://hdl.handle.net/11349/30117Los Sistemas de Detección de Intrusos (IDS) tienen importancia en el campo de seguridad para sistemas computacionales modernos que se conecten a través de redes de información, así como en la mitigación de posibles daños en caso de tener ataques de algún tipo. Los IDS observan los eventos en una red para la posterior toma de decisiones. Debido a la popularidad de Internet y las redes locales, están aumentando los incidentes de intrusión en los sistemas informáticos, la rápida expansión de las redes informáticas crea consigo la necesidad de desarrollo de sistemas que puedan detectar las amenazas a la red, de manera fiable con una tasa de detección alta y una tasa de falsos positivos baja en condiciones de uso de recursos computacionales normales. Para satisfacer la necesidad identificada, con el presente proyecto de grado bajo la modalidad de monografía se planteó desarrollar un modelo de detección de intrusos para ataques DDoS, que se implementó mediante la técnica de clasificación de Machine Learning Decision Tree; el modelo fue desarrollado teniendo como base un conjunto de datos llamado CIC-IDS 2017 desarrollado por la Universidad de New Brunswick, Canadá que contiene información actualizada de ataques comunes en un entorno real, y del cual se seleccionaron sus principales características con el fin de optimizar el aprendizaje del sistema. El sistema desarrollado es un script del lenguaje Python que se compone de diferentes etapas: Recolección de datos, Pre-Procesamiento de Datos, Análisis Exploratorio de Datos, Reducción del conjunto de datos, Selección del algoritmo, Entrenamiento del sistema, Evaluación del sistema. El resultado (sistema entrenado) tiene la capacidad de procesar un set de datos nuevo con la misma estructura del dataset de entrenamiento y hacer clasificaciones para categorizar una captura de tráfico como conexión normal o como ataque Posterior al análisis de las métricas resultantes del sistema entrenado con el conjunto de datos completo, y la comparación de resultados con otros algoritmos usados en Machine Learning para clasificación, se puede concluir que el algoritmo Decision Tree no presentó el mejor rendimiento en comparación a otras técnicas, en este sentido el mejor desempeño lo obtuvo el algoritmo K- Nearest Neighbor (K – Vecinos más próximos) presentando una exactitud en su clasificación 53% mayor al algoritmo Decision Tree. Sin embargo, se realizó un entrenamiento posterior con la técnica Decision Tree variando sus híper-parámetros, consiguiendo así un aumento del 49% en la exactitud de sus clasificaciones y poniéndolo a la par de otros algoritmos. Referente a los resultados del sistema entrenado con el conjunto de datos reducido por el software WEKA bajo el criterio de correlación, se pudo observar que Decision Tree mejoró su métrica de exactitud en un 36% comparado al entrenamiento del conjunto de datos completo, estando dentro de los algoritmos de mejor desempeño junto a Random Forest.Intrusion Detection Systems (IDS) are important in the field of security for modern computer systems that are connected through information networks, as well as in the mitigation of possible damage in case of attacks of any kind. IDSs observe events in a network for subsequent decision making. Due to the popularity of the Internet and local networks, incidents of intrusion into computer systems are increasing, the rapid expansion of computer networks creates a need for the development of systems that can reliably detect network threats with a high detection rate and a low false positive rate under normal computational resource usage conditions. To meet the identified need, with the present degree project under the monograph modality, it was proposed to develop an intrusion detection model for DDoS attacks, which was implemented using the Machine Learning Decision Tree classification technique; the model was developed based on a dataset called CIC-IDS 2017 developed by the University of New Brunswick, Canada that contains updated information of common attacks in a real environment, and from which its main characteristics were selected in order to optimize the learning of the system. The developed system is a Python language script composed of different stages: Data Collection, Data Pre-Processing, Exploratory Data Analysis, Data Set Reduction, Algorithm Selection, System Training, System Evaluation. The result (trained system) has the ability to process a new dataset with the same structure as the training dataset and make classifications to categorize a traffic capture as a normal connection or as an attack. After analyzing the resulting metrics of the trained system with the full dataset, and comparing the results with other Machine Learning algorithms, it can be concluded that the Decision Tree algorithm did not present the best performance compared to other techniques, in this sense the best performance was obtained by the K- Nearest Neighbor algorithm (K - Nearest Neighbors) presenting an accuracy in its classification 53% higher than the Decision Tree algorithm. However, a subsequent training was performed with the Decision Tree technique by varying its hyper-parameters, thus achieving a 49% increase in the accuracy of its classifications and putting it on a par with other algorithms. Regarding the results of the system trained with the data set reduced by the WEKA software under the correlation criterion, it was observed that Decision Tree improved its accuracy metric by 36% compared to the training of the complete data set, being among the best performing algorithms together with Random Forest.pdfspaAtribución-NoComercial-SinDerivadas 2.5 ColombiaAtribución-NoComercial-SinDerivadas 2.5 Colombiahttp://creativecommons.org/licenses/by-nc-nd/2.5/co/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Algoritmos de clasificaciónCiberataqueDDoS (Distributed Denial of Service)Sistemas de detección de intrusosDataset CICIDS-2017Ingeniería en Telecomunicaciones - Tesis y disertaciones académicasCliente/Servidores (Computadores)Algoritmos (Computadores)Sistemas de seguridadInternet - Medidas de seguridadSeguridad en computadoresClassification algorithmsCyber attackCICIDS-2017 datasetDDoS (Distributed Denial of Service)Intrusion detection systemsModelo de detección de ataques DDoS (distributed denial of services), con base en el clasificador decisión tree.DDoS (distributed denial of services) attack detection model (distributed denial of services) attack detection model, based on the decision tree classifierMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fORIGINALCarvajalHoyosCamiloAndres2022.pdfCarvajalHoyosCamiloAndres2022.pdfapplication/pdf3917332http://repository.udistrital.edu.co/bitstream/11349/30117/1/CarvajalHoyosCamiloAndres2022.pdffb5e666dd030eeb2c759e0e80e13ff77MD51open accessLicencia de uso y publicacion editable.pdfLicencia de uso y publicacion editable.pdfLicencia de uso y publicaciónapplication/pdf252580http://repository.udistrital.edu.co/bitstream/11349/30117/2/Licencia%20de%20uso%20y%20publicacion%20editable.pdf429015e2f0a7dd2ec9a2a032749ce811MD52metadata only accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811http://repository.udistrital.edu.co/bitstream/11349/30117/3/license_rdf217700a34da79ed616c2feb68d4c5e06MD53open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/30117/4/license.txt997daf6c648c962d566d7b082dac908dMD54open accessTHUMBNAILCarvajalHoyosCamiloAndres2022.pdf.jpgCarvajalHoyosCamiloAndres2022.pdf.jpgIM Thumbnailimage/jpeg6838http://repository.udistrital.edu.co/bitstream/11349/30117/5/CarvajalHoyosCamiloAndres2022.pdf.jpgfef9378317b127b4beac2dc3c01bbcdfMD55open accessLicencia de uso y publicacion editable.pdf.jpgLicencia de uso y publicacion editable.pdf.jpgIM Thumbnailimage/jpeg13224http://repository.udistrital.edu.co/bitstream/11349/30117/6/Licencia%20de%20uso%20y%20publicacion%20editable.pdf.jpgecba7fd0adbbbbd2078dee1175503f83MD56open access11349/30117oai:repository.udistrital.edu.co:11349/301172023-06-13 14:59:56.509open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK |