Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access.
Actualmente, hay un incremento sustancial del uso de las telecomunicaciones, así como un incremento de inversión en tecnología por las organizaciones, también se tiene la necesidad de mejorar y automatizar procesos en distintas industrias u organizaciones, lo que conlleva a tener información sensibl...
- Autores:
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2021
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- spa
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/29053
- Acceso en línea:
- http://hdl.handle.net/11349/29053
- Palabra clave:
- Pentesting
Inyección SQL
Kali Linux
Firewall de aplicaciones web
Ingeniería en Telecomunicaciones - Tesis y disertaciones académicas
Firewalls (Informática)
SQL (Lenguaje de programación de computadores)
Open Access (Programa para computador)
Procesadores de palabras
Pentesting
SQL Injection
Kali Linux
Web application firewall
- Rights
- License
- Atribución-NoComercial-SinDerivadas 4.0 Internacional
id |
UDISTRITA2_6e98c0a654437271b3d617264176eb1e |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/29053 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access. |
dc.title.titleenglish.spa.fl_str_mv |
Design and implementation of a protection system against the SQL injection attack, in a vulnerable server using Open Access tools. |
title |
Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access. |
spellingShingle |
Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access. Pentesting Inyección SQL Kali Linux Firewall de aplicaciones web Ingeniería en Telecomunicaciones - Tesis y disertaciones académicas Firewalls (Informática) SQL (Lenguaje de programación de computadores) Open Access (Programa para computador) Procesadores de palabras Pentesting SQL Injection Kali Linux Web application firewall |
title_short |
Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access. |
title_full |
Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access. |
title_fullStr |
Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access. |
title_full_unstemmed |
Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access. |
title_sort |
Diseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access. |
dc.contributor.advisor.none.fl_str_mv |
Cadena Muñoz, Ernesto |
dc.subject.spa.fl_str_mv |
Pentesting Inyección SQL Kali Linux Firewall de aplicaciones web |
topic |
Pentesting Inyección SQL Kali Linux Firewall de aplicaciones web Ingeniería en Telecomunicaciones - Tesis y disertaciones académicas Firewalls (Informática) SQL (Lenguaje de programación de computadores) Open Access (Programa para computador) Procesadores de palabras Pentesting SQL Injection Kali Linux Web application firewall |
dc.subject.lemb.spa.fl_str_mv |
Ingeniería en Telecomunicaciones - Tesis y disertaciones académicas Firewalls (Informática) SQL (Lenguaje de programación de computadores) Open Access (Programa para computador) Procesadores de palabras |
dc.subject.keyword.spa.fl_str_mv |
Pentesting SQL Injection Kali Linux Web application firewall |
description |
Actualmente, hay un incremento sustancial del uso de las telecomunicaciones, así como un incremento de inversión en tecnología por las organizaciones, también se tiene la necesidad de mejorar y automatizar procesos en distintas industrias u organizaciones, lo que conlleva a tener información sensible en dispositivos y en la red. Debido a esto, se hace indispensable buscar la manera de proteger la información, ya que, actualmente existen cada vez más ciberdelincuentes desarrollando y ejecutando nuevos ataques cibernéticos que vulneran la disponibilidad, integridad o confidencialidad de equipos e información personal o corporativa. Es bien sabido que la información es un activo muy importante y todo el tiempo puede estar en riesgo de ser vulnerado (Najar Pacheco & Suárez Suárez, 2015). Después de realizar una amplia investigación sobre los ataques más comunes y significativos de estos días, se encuentra que la Open Web Application Security Project (OWASP) que es una organización internacional cuyo objetivo principal es determinar y combatir los ataques informáticos, tiene un TOP10 con los riesgos informáticos más importantes en aplicaciones web, el ataque que encabeza este TOP es el de ataque por inyección SQL (Structured Query Language). Dado esto se plantea el diseño e implementación de un proceso que permita la detección y mitigación del ataque de inyección SQL, mediante un conjunto de técnicas y herramientas de seguridad Open Access que orienten a obtener un método eficaz y viable económicamente para poder ser implementado por quien lo requiera (OWASP, 2017). La metodología utilizada para el proyecto fue la siguiente, inicialmente se definieron algunos escenarios de ataque de Inyección SQL los cuales fueron ejecutados en el servidor vulnerable DVWA (Damn Vulnerable Web Application) y mediante estos se obtenía información sensible de la aplicación como los nombres y cantidad de columnas de la base de datos, los usuarios registrados, contraseñas y versión de la misma, se realizaron primero pruebas manuales, es decir, ejecutando el código directamente en el campo ID de la página web de DVWA, se desarrolló un script en Python desde el cual se efectuó una mayor cantidad de ataques al servidor. Después de una investigación sobre las técnicas utilizadas para mitigar la vulnerabilidad de Inyección SQL se encontró que la implementación de un WAF (Firewall de Aplicaciones Web) es una solución muy viable y eficaz para minimizar el riesgo de que sea explotada la vulnerabilidad (ORACLE, 2021); así que se encontraron varias soluciones de WAF Open Source que podrían ser utilizadas entre ellas está Raptor WAF, Octupus WAF y Modsecurity. Teniendo en cuenta lo anterior se llevaron a cabo las pruebas de ataque según los escenarios definidos pero esta vez con cada uno de los WAF activos, se ejecutaron los ataques manuales, desde el script en Python y también utilizando la herramienta SQLMap desde la cual se detecta y se explota la vulnerabilidad ejecutando ataques automáticos y encontrando la información que se puede exponer, la prueba se realiza con cada WAF activo e inactivo para encontrar información de la base de datos de la aplicación. De los tres WAF utilizados para las pruebas de penetración se obtuvieron resultados diferentes, en las pruebas manuales dos de los tres WAF reconocieron todos los ataques como maliciosos y los bloquearon, uno de ellos solo reconoció la mitad de los ataques como maliciosos y fueron bloqueados, cuando se ejecutaron los ataques desde Python se logró evidenciar que uno de los WAF destacó entre los otros ya que soportó un gran número de ataques simultáneos mientras otro de estos se apagó y dejó de funcionar al recibir una cantidad de ataques. |
publishDate |
2021 |
dc.date.created.none.fl_str_mv |
2021-06-24 |
dc.date.accessioned.none.fl_str_mv |
2022-05-19T17:08:01Z |
dc.date.available.none.fl_str_mv |
2022-05-19T17:08:01Z |
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/29053 |
url |
http://hdl.handle.net/11349/29053 |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.rights.*.fl_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional |
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/4.0/ |
dc.rights.acceso.spa.fl_str_mv |
Abierto (Texto Completo) |
rights_invalid_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional http://creativecommons.org/licenses/by-nc-nd/4.0/ 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/29053/5/license.txt http://repository.udistrital.edu.co/bitstream/11349/29053/1/LuqueTovarAngelaLizeth%2cBravoBuilesCristianBernardo2021.pdf http://repository.udistrital.edu.co/bitstream/11349/29053/2/LuqueTovarAngelaLizeth%2cBravoBuilesCristianBernardo2021Anexos.rar http://repository.udistrital.edu.co/bitstream/11349/29053/3/Licencia%20de%20uso%20y%20publicacion%20de%20los%20autores%20para%20publicar_.pdf http://repository.udistrital.edu.co/bitstream/11349/29053/4/license_rdf http://repository.udistrital.edu.co/bitstream/11349/29053/6/LuqueTovarAngelaLizeth%2cBravoBuilesCristianBernardo2021.pdf.jpg http://repository.udistrital.edu.co/bitstream/11349/29053/7/Licencia%20de%20uso%20y%20publicacion%20de%20los%20autores%20para%20publicar_.pdf.jpg |
bitstream.checksum.fl_str_mv |
997daf6c648c962d566d7b082dac908d 688643e52f2b126f3ee7c3b6f7c5e450 6a28a482bfbc22a45fbbcc2934ec603d 338a31b7713acb553a0dc5f9c252a62a 217700a34da79ed616c2feb68d4c5e06 2e3a42aa802d504dc09fb4e127a6d866 9f75ba266978cd8e2630768f31553e06 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 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_ |
1814111215672098816 |
spelling |
Cadena Muñoz, ErnestoLuque Tovar, Angela LizethBravo Builes, Cristian Bernardo2022-05-19T17:08:01Z2022-05-19T17:08:01Z2021-06-24http://hdl.handle.net/11349/29053Actualmente, hay un incremento sustancial del uso de las telecomunicaciones, así como un incremento de inversión en tecnología por las organizaciones, también se tiene la necesidad de mejorar y automatizar procesos en distintas industrias u organizaciones, lo que conlleva a tener información sensible en dispositivos y en la red. Debido a esto, se hace indispensable buscar la manera de proteger la información, ya que, actualmente existen cada vez más ciberdelincuentes desarrollando y ejecutando nuevos ataques cibernéticos que vulneran la disponibilidad, integridad o confidencialidad de equipos e información personal o corporativa. Es bien sabido que la información es un activo muy importante y todo el tiempo puede estar en riesgo de ser vulnerado (Najar Pacheco & Suárez Suárez, 2015). Después de realizar una amplia investigación sobre los ataques más comunes y significativos de estos días, se encuentra que la Open Web Application Security Project (OWASP) que es una organización internacional cuyo objetivo principal es determinar y combatir los ataques informáticos, tiene un TOP10 con los riesgos informáticos más importantes en aplicaciones web, el ataque que encabeza este TOP es el de ataque por inyección SQL (Structured Query Language). Dado esto se plantea el diseño e implementación de un proceso que permita la detección y mitigación del ataque de inyección SQL, mediante un conjunto de técnicas y herramientas de seguridad Open Access que orienten a obtener un método eficaz y viable económicamente para poder ser implementado por quien lo requiera (OWASP, 2017). La metodología utilizada para el proyecto fue la siguiente, inicialmente se definieron algunos escenarios de ataque de Inyección SQL los cuales fueron ejecutados en el servidor vulnerable DVWA (Damn Vulnerable Web Application) y mediante estos se obtenía información sensible de la aplicación como los nombres y cantidad de columnas de la base de datos, los usuarios registrados, contraseñas y versión de la misma, se realizaron primero pruebas manuales, es decir, ejecutando el código directamente en el campo ID de la página web de DVWA, se desarrolló un script en Python desde el cual se efectuó una mayor cantidad de ataques al servidor. Después de una investigación sobre las técnicas utilizadas para mitigar la vulnerabilidad de Inyección SQL se encontró que la implementación de un WAF (Firewall de Aplicaciones Web) es una solución muy viable y eficaz para minimizar el riesgo de que sea explotada la vulnerabilidad (ORACLE, 2021); así que se encontraron varias soluciones de WAF Open Source que podrían ser utilizadas entre ellas está Raptor WAF, Octupus WAF y Modsecurity. Teniendo en cuenta lo anterior se llevaron a cabo las pruebas de ataque según los escenarios definidos pero esta vez con cada uno de los WAF activos, se ejecutaron los ataques manuales, desde el script en Python y también utilizando la herramienta SQLMap desde la cual se detecta y se explota la vulnerabilidad ejecutando ataques automáticos y encontrando la información que se puede exponer, la prueba se realiza con cada WAF activo e inactivo para encontrar información de la base de datos de la aplicación. De los tres WAF utilizados para las pruebas de penetración se obtuvieron resultados diferentes, en las pruebas manuales dos de los tres WAF reconocieron todos los ataques como maliciosos y los bloquearon, uno de ellos solo reconoció la mitad de los ataques como maliciosos y fueron bloqueados, cuando se ejecutaron los ataques desde Python se logró evidenciar que uno de los WAF destacó entre los otros ya que soportó un gran número de ataques simultáneos mientras otro de estos se apagó y dejó de funcionar al recibir una cantidad de ataques.Currently, there is a substantial increase in the use of telecommunications, as well as an increase in investment in technology by organizations, there is also the need to improve and automate processes in different industries or organizations, which leads to having sensitive information on devices and In the net. Due to this, it is essential to find a way to protect information, since there are currently more and more cybercriminals developing and executing new cyber attacks that violate the availability, integrity or confidentiality of computers and personal or corporate information. It is well known that information is a very important asset and can be at risk of being violated all the time (Najar Pacheco & Suárez Suárez, 2015). After conducting extensive research on the most common and significant attacks these days, it is found that the Open Web Application Security Project (OWASP) which is an international organization whose main objective is to determine and combat computer attacks, has a TOP10 with the The most important computer risks in web applications, the attack that leads this TOP is the attack by SQL injection (Structured Query Language). Given this, the design and implementation of a process that allows the detection and mitigation of the SQL injection attack is proposed, through a set of techniques and Open Access security tools that guide to obtain an efficient and economically viable method to be implemented by whoever required (OWASP, 2017). The methodology used for the project was as follows, initially some SQL Injection attack scenarios were defined which were executed on the vulnerable DVWA server (Damn Vulnerable Web Application) and through these, sensitive information about the application such as names and quantity was obtained. of database columns, registered users, passwords and version of the same, manual tests were carried out first, that is, by executing the code directly in the ID field of the DVWA web page, a Python script was developed from which carried out a greater number of attacks to the server. After an investigation on the techniques used to mitigate the SQL Injection vulnerability, it was found that the implementation of a WAF (Web Application Firewall) is a very viable and effective solution to minimize the risk of the vulnerability being exploited (ORACLE, 2021 ); so several Open Source WAF solutions were found that could be used among them is Raptor WAF, Octupus WAF and Modsecurity. Taking into account the above, the attack tests were carried out according to the defined scenarios, but this time with each of the active WAFs, the manual attacks were executed, from the Python script and also using the SQLMap tool from which it is detected. and the vulnerability is exploited by executing automatic attacks and finding the information that can be exposed, the test is carried out with each active and inactive WAF to find information from the application database. Of the three WAFs used for the penetration tests, different results were obtained, in the manual tests two of the three WAFs recognized all the attacks as malicious and blocked them, one of them only recognized half of the attacks as malicious and were blocked, When the attacks were executed from Python, it was possible to show that one of the WAFs stood out among the others since it withstood a large number of simultaneous attacks while another of these was turned off and stopped working after receiving a number of attacks.pdfspaAtribución-NoComercial-SinDerivadas 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2PentestingInyección SQLKali LinuxFirewall de aplicaciones webIngeniería en Telecomunicaciones - Tesis y disertaciones académicasFirewalls (Informática)SQL (Lenguaje de programación de computadores)Open Access (Programa para computador)Procesadores de palabrasPentestingSQL InjectionKali LinuxWeb application firewallDiseño e implementación de un sistema de protección contra el ataque de inyección SQL, en un servidor vulnerable utilizando herramientas Open Access.Design and implementation of a protection system against the SQL injection attack, in a vulnerable server using Open Access tools.Monografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/29053/5/license.txt997daf6c648c962d566d7b082dac908dMD55open accessORIGINALLuqueTovarAngelaLizeth,BravoBuilesCristianBernardo2021.pdfLuqueTovarAngelaLizeth,BravoBuilesCristianBernardo2021.pdfTrabajo de gradoapplication/pdf4876248http://repository.udistrital.edu.co/bitstream/11349/29053/1/LuqueTovarAngelaLizeth%2cBravoBuilesCristianBernardo2021.pdf688643e52f2b126f3ee7c3b6f7c5e450MD51open accessLuqueTovarAngelaLizeth,BravoBuilesCristianBernardo2021Anexos.rarLuqueTovarAngelaLizeth,BravoBuilesCristianBernardo2021Anexos.rarAnexos del trabajo de gradoapplication/octet-stream269301http://repository.udistrital.edu.co/bitstream/11349/29053/2/LuqueTovarAngelaLizeth%2cBravoBuilesCristianBernardo2021Anexos.rar6a28a482bfbc22a45fbbcc2934ec603dMD52open accessLicencia de uso y publicacion de los autores para publicar_.pdfLicencia de uso y publicacion de los autores para publicar_.pdfLicencia y autorización de los autores para publicarapplication/pdf318272http://repository.udistrital.edu.co/bitstream/11349/29053/3/Licencia%20de%20uso%20y%20publicacion%20de%20los%20autores%20para%20publicar_.pdf338a31b7713acb553a0dc5f9c252a62aMD53metadata only accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811http://repository.udistrital.edu.co/bitstream/11349/29053/4/license_rdf217700a34da79ed616c2feb68d4c5e06MD54open accessTHUMBNAILLuqueTovarAngelaLizeth,BravoBuilesCristianBernardo2021.pdf.jpgLuqueTovarAngelaLizeth,BravoBuilesCristianBernardo2021.pdf.jpgIM Thumbnailimage/jpeg6197http://repository.udistrital.edu.co/bitstream/11349/29053/6/LuqueTovarAngelaLizeth%2cBravoBuilesCristianBernardo2021.pdf.jpg2e3a42aa802d504dc09fb4e127a6d866MD56open accessLicencia de uso y publicacion de los autores para publicar_.pdf.jpgLicencia de uso y publicacion de los autores para publicar_.pdf.jpgIM Thumbnailimage/jpeg13148http://repository.udistrital.edu.co/bitstream/11349/29053/7/Licencia%20de%20uso%20y%20publicacion%20de%20los%20autores%20para%20publicar_.pdf.jpg9f75ba266978cd8e2630768f31553e06MD57open access11349/29053oai:repository.udistrital.edu.co:11349/290532023-06-09 16:39:55.632open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK |