Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT

Objetivo: El objetivo general de este trabajo es establecer el impacto de la implementación de generación distribuida (GD) en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT. Los objetivos específicos corresponden al análisis de los métodos propuestos en el est...

Full description

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/31332
Acceso en línea:
http://hdl.handle.net/11349/31332
Palabra clave:
DIgSILENT
DPL
Generación distribuida
Localización de fallas
Métodos basados en baja impedancia
Python
Ingeniería Eléctrica por Ciclos Propedéuticos - Tesis y disertaciones académicas
Electricidad
Conductores eléctricos
Transformadores eléctricos
DIgSILENT
DPL
Distributed generation
Fault location
Low impedance based methods
Python
Rights
License
CC0 1.0 Universal
id UDISTRITA2_74d01483a7b48770091f3b0bbe24c5d1
oai_identifier_str oai:repository.udistrital.edu.co:11349/31332
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
dc.title.titleenglish.spa.fl_str_mv Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
title Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
spellingShingle Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
DIgSILENT
DPL
Generación distribuida
Localización de fallas
Métodos basados en baja impedancia
Python
Ingeniería Eléctrica por Ciclos Propedéuticos - Tesis y disertaciones académicas
Electricidad
Conductores eléctricos
Transformadores eléctricos
DIgSILENT
DPL
Distributed generation
Fault location
Low impedance based methods
Python
title_short Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
title_full Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
title_fullStr Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
title_full_unstemmed Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
title_sort Impacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT
dc.contributor.advisor.none.fl_str_mv Giral Ramírez, Diego Armando
dc.subject.spa.fl_str_mv DIgSILENT
DPL
Generación distribuida
Localización de fallas
Métodos basados en baja impedancia
Python
topic DIgSILENT
DPL
Generación distribuida
Localización de fallas
Métodos basados en baja impedancia
Python
Ingeniería Eléctrica por Ciclos Propedéuticos - Tesis y disertaciones académicas
Electricidad
Conductores eléctricos
Transformadores eléctricos
DIgSILENT
DPL
Distributed generation
Fault location
Low impedance based methods
Python
dc.subject.lemb.spa.fl_str_mv Ingeniería Eléctrica por Ciclos Propedéuticos - Tesis y disertaciones académicas
Electricidad
Conductores eléctricos
Transformadores eléctricos
dc.subject.keyword.spa.fl_str_mv DIgSILENT
DPL
Distributed generation
Fault location
Low impedance based methods
Python
description Objetivo: El objetivo general de este trabajo es establecer el impacto de la implementación de generación distribuida (GD) en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT. Los objetivos específicos corresponden al análisis de los métodos propuestos en el estándar IEEE C37.114-2014, la implementación de un caso de estudio que permita evaluar la eficiencia de dos métodos para la localización de fallas y la construcción de material audiovisual que muestre la programación de la interfaz entre Python y DIgSILENT. Metodología: Con el uso de nuevas tecnologías para la generación de energía eléctrica se ha desarrollado la GD, esto ha planteado diferentes retos para la localización de fallas en las líneas de distribución, ya que la GD puede llegar a afectar la exactitud de los métodos tradicionales. Para validar la efectivad y exactitud de los métodos de localización al presentarse GD y resistencia de falla, se realiza la selección de dos métodos que cumplan las características para ser estudiados. La metodología implementada en este trabajo se enmarca en cuatro etapas, en la primera etapa se realiza la consulta bibliográfica sobre los métodos propuestos en el estándar IEEE C37.114-2014 y la implementación de un sistema de pruebas, en la segunda la selección de los métodos de Takagi modificado y medición sincronizada en dos nodos para implementación en DIgSILENT Programming Language (DPL), en la tercera el estudio de cortocircuito implementando los métodos en el sistema de pruebas realizando variaciones en los niveles de penetración de GD mediante la interfaz desarrollada en Python, en la cuarta el desarrollo del documento final en conjunto con las ayudas audiovisuales. Resultados: Para el método de Takagi al implementar GD se evidencia que el error aumenta a medida que incrementa el nivel de penetración de GD. El mayor error se obtiene para el nivel de penetración más alto de GD con un 48.39 %, para el sistema sin GD los errores del método no superan el 1.38 %. Para el método de medición sincronizada en dos nodos al implementar GD se evidencia que el error aumenta a medida que incrementa el nivel de penetración de GD. El menor error se obtiene para el nivel de penetración más bajo con un 8.67 %, para el sistema sin GD los errores son del 0 %. Conclusiones: Se implementaron dos métodos de localización de fallas de baja de impedancia utilizando el software DIgSILENT y la herramienta de programación DPL. La integración de GD presenta un impacto negativo en la eficiencia de los métodos seleccionados, entre mayor es el nivel de penetración que se presenta en el sistema, mayor es el error en la localización de la falla.
publishDate 2022
dc.date.created.none.fl_str_mv 2022-10-11
dc.date.accessioned.none.fl_str_mv 2023-05-12T18:44:20Z
dc.date.available.none.fl_str_mv 2023-05-12T18:44:20Z
dc.type.spa.fl_str_mv bachelorThesis
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/31332
url http://hdl.handle.net/11349/31332
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv CC0 1.0 Universal
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.*.fl_str_mv http://creativecommons.org/publicdomain/zero/1.0/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv CC0 1.0 Universal
http://creativecommons.org/publicdomain/zero/1.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/31332/1/PerillaCabraHelman2022.pdf
http://repository.udistrital.edu.co/bitstream/11349/31332/8/PerillaCabraHelman2022Anexo2.zip
http://repository.udistrital.edu.co/bitstream/11349/31332/5/Licencia%20de%20uso%20y%20publicacion.pdf
http://repository.udistrital.edu.co/bitstream/11349/31332/6/license_rdf
http://repository.udistrital.edu.co/bitstream/11349/31332/7/license.txt
http://repository.udistrital.edu.co/bitstream/11349/31332/9/PerillaCabraHelman2022.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/31332/10/Licencia%20de%20uso%20y%20publicacion.pdf.jpg
bitstream.checksum.fl_str_mv fa90868431099de9aaf34145031fc379
322c8e84618a03e946f6c3c4f50a29a6
4bdd67b02d6053e478b162dc7c8b83c6
42fd4ad1e89814f5e4a476b409eb708c
997daf6c648c962d566d7b082dac908d
6f769fa8ae1f5e2ee82ca65380e7daf1
fa22a2cad7ef50ea502980e9086c2507
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_ 1814111122468372480
spelling Giral Ramírez, Diego ArmandoPerilla Cabra, Helman LeonardoOsuna Contreras, Brayan Steven2023-05-12T18:44:20Z2023-05-12T18:44:20Z2022-10-11http://hdl.handle.net/11349/31332Objetivo: El objetivo general de este trabajo es establecer el impacto de la implementación de generación distribuida (GD) en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENT. Los objetivos específicos corresponden al análisis de los métodos propuestos en el estándar IEEE C37.114-2014, la implementación de un caso de estudio que permita evaluar la eficiencia de dos métodos para la localización de fallas y la construcción de material audiovisual que muestre la programación de la interfaz entre Python y DIgSILENT. Metodología: Con el uso de nuevas tecnologías para la generación de energía eléctrica se ha desarrollado la GD, esto ha planteado diferentes retos para la localización de fallas en las líneas de distribución, ya que la GD puede llegar a afectar la exactitud de los métodos tradicionales. Para validar la efectivad y exactitud de los métodos de localización al presentarse GD y resistencia de falla, se realiza la selección de dos métodos que cumplan las características para ser estudiados. La metodología implementada en este trabajo se enmarca en cuatro etapas, en la primera etapa se realiza la consulta bibliográfica sobre los métodos propuestos en el estándar IEEE C37.114-2014 y la implementación de un sistema de pruebas, en la segunda la selección de los métodos de Takagi modificado y medición sincronizada en dos nodos para implementación en DIgSILENT Programming Language (DPL), en la tercera el estudio de cortocircuito implementando los métodos en el sistema de pruebas realizando variaciones en los niveles de penetración de GD mediante la interfaz desarrollada en Python, en la cuarta el desarrollo del documento final en conjunto con las ayudas audiovisuales. Resultados: Para el método de Takagi al implementar GD se evidencia que el error aumenta a medida que incrementa el nivel de penetración de GD. El mayor error se obtiene para el nivel de penetración más alto de GD con un 48.39 %, para el sistema sin GD los errores del método no superan el 1.38 %. Para el método de medición sincronizada en dos nodos al implementar GD se evidencia que el error aumenta a medida que incrementa el nivel de penetración de GD. El menor error se obtiene para el nivel de penetración más bajo con un 8.67 %, para el sistema sin GD los errores son del 0 %. Conclusiones: Se implementaron dos métodos de localización de fallas de baja de impedancia utilizando el software DIgSILENT y la herramienta de programación DPL. La integración de GD presenta un impacto negativo en la eficiencia de los métodos seleccionados, entre mayor es el nivel de penetración que se presenta en el sistema, mayor es el error en la localización de la falla.Objective: The general objective of this work is to establish the impact of the distributed generation (DG) implementation in low impedance fault location methods using Python and DIgSILENT. The specific objectives proposed correspond to the analysis of the methods in the IEEE C37.114-2014 standard, the implementation of a case study that allows evaluating the efficiency of two methods for locating faults and the construction of audiovisual material that shows the programming of the interface between Python and DIgSILENT. Methodology: With the use of new technologies for the generation of electrical energy, DG has been developed, this has posed different challenges for locating faults in distribution lines, since DG can affect the accuracy of traditional methods. To validate the effectiveness and accuracy of the location methods when presenting GD and fault resistance, the selection of two methods that meet the characteristics to be studied is made. The methodology implemented in this work is framed in four stages, in the first stage the bibliographic consultation is carried out on the methods proposed in the IEEE C37.114-2014 standard and the implementation of a test system, in the second the selection of the modified Takagi methods and synchronized measurement in two nodes for implementation in DIgSILENT Programming Language (DPL), in the third the short-circuit study implementing the methods in the test system making variations in the GD penetration levels through the interface developed in Python , in the fourth the development of the final document in conjunction with the audiovisual aids. Results: For the Takagi method when implementing GD, it is evident that the error increases as the level of GD penetration increases. The highest error is obtained for the highest penetration level of DG with 48.39%, for the system without DG the errors of the method do not exceed 1.38%. For the synchronized measurement method in two nodes when implementing GD, it is evident that the error increases as the level of GD penetration increases. The lowest error is obtained for the lowest level of penetration with 8.67%, for the system without DG the errors are 0%. Conclusions: Two low impedance fault location methods were implemented using the DIgSILENT software and the DPL programming tool. The integration of DG presents a negative impact on the efficiency of the selected methods, the higher the level of penetration that occurs in the system, the greater the error in locating the fault.NApdfspaCC0 1.0 Universalhttp://creativecommons.org/publicdomain/zero/1.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2DIgSILENTDPLGeneración distribuidaLocalización de fallasMétodos basados en baja impedanciaPythonIngeniería Eléctrica por Ciclos Propedéuticos - Tesis y disertaciones académicasElectricidadConductores eléctricosTransformadores eléctricosDIgSILENTDPLDistributed generationFault locationLow impedance based methodsPythonImpacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENTImpacto de la implementación de generación distribuida en los métodos de localización de fallas de baja impedancia utilizando Python y DIgSILENTbachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fORIGINALPerillaCabraHelman2022.pdfPerillaCabraHelman2022.pdfTrabajo de gradoapplication/pdf1979711http://repository.udistrital.edu.co/bitstream/11349/31332/1/PerillaCabraHelman2022.pdffa90868431099de9aaf34145031fc379MD51open accessPerillaCabraHelman2022Anexo2.zipPerillaCabraHelman2022Anexo2.zipAnexosapplication/zip352960http://repository.udistrital.edu.co/bitstream/11349/31332/8/PerillaCabraHelman2022Anexo2.zip322c8e84618a03e946f6c3c4f50a29a6MD58open accessLicencia de uso y publicacion.pdfLicencia de uso y publicacion.pdfLicencia de uso y publicaciónapplication/pdf223157http://repository.udistrital.edu.co/bitstream/11349/31332/5/Licencia%20de%20uso%20y%20publicacion.pdf4bdd67b02d6053e478b162dc7c8b83c6MD55metadata only accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8701http://repository.udistrital.edu.co/bitstream/11349/31332/6/license_rdf42fd4ad1e89814f5e4a476b409eb708cMD56open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/31332/7/license.txt997daf6c648c962d566d7b082dac908dMD57open accessTHUMBNAILPerillaCabraHelman2022.pdf.jpgPerillaCabraHelman2022.pdf.jpgIM Thumbnailimage/jpeg7514http://repository.udistrital.edu.co/bitstream/11349/31332/9/PerillaCabraHelman2022.pdf.jpg6f769fa8ae1f5e2ee82ca65380e7daf1MD59open accessLicencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg13051http://repository.udistrital.edu.co/bitstream/11349/31332/10/Licencia%20de%20uso%20y%20publicacion.pdf.jpgfa22a2cad7ef50ea502980e9086c2507MD510open access11349/31332oai:repository.udistrital.edu.co:11349/313322023-06-13 14:55:53.844open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK