Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT

El problema del flujo óptimo de potencia reactiva en los sistemas de transmisión se aborda en esta investigación desde el punto de vista de la optimización combinatoria. Se propone una versión discreta-continua del algoritmo genético de Chu & Beasley (CBGA) para modelar variables continuas como...

Full description

Autores:
Bernal Romero, David Lionel
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/37638
Acceso en línea:
http://hdl.handle.net/11349/37638
Palabra clave:
Flujo de potencia reactiva óptimo
Lenguaje de programación DigSILENT
Optimización combinatorio
Minimización de pérdidas de energía
Codificación discreta - continua
Ingeniería Eléctrica -- Tesis y disertaciones académicas
Flujo óptimo de potencia reactiva en sistemas de transmisión
Algoritmo genético de Chu & Beasley (CBGA) discreto-continuo
Optimización combinatoria para flujo de potencia reactiva
Implementación del CBGA en DigSILENT
Optimal reactive power flow
DigSILENT programming language
Combinatorial optimization
Power losses minimization
Discrete-continuous codification
Rights
License
Attribution-NoDerivatives 4.0 Internacional
id UDISTRITA2_6a97f63957c91abaa055d156e348713e
oai_identifier_str oai:repository.udistrital.edu.co:11349/37638
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT
dc.title.titleenglish.spa.fl_str_mv Solution of the optimal reactive power flow problem using a discrete-continuous CBGA implemented in the DigSILENT programming language
title Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT
spellingShingle Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT
Flujo de potencia reactiva óptimo
Lenguaje de programación DigSILENT
Optimización combinatorio
Minimización de pérdidas de energía
Codificación discreta - continua
Ingeniería Eléctrica -- Tesis y disertaciones académicas
Flujo óptimo de potencia reactiva en sistemas de transmisión
Algoritmo genético de Chu & Beasley (CBGA) discreto-continuo
Optimización combinatoria para flujo de potencia reactiva
Implementación del CBGA en DigSILENT
Optimal reactive power flow
DigSILENT programming language
Combinatorial optimization
Power losses minimization
Discrete-continuous codification
title_short Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT
title_full Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT
title_fullStr Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT
title_full_unstemmed Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT
title_sort Solución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENT
dc.creator.fl_str_mv Bernal Romero, David Lionel
dc.contributor.advisor.none.fl_str_mv Montoya Giraldo, Oscar Danilo
dc.contributor.author.none.fl_str_mv Bernal Romero, David Lionel
dc.contributor.orcid.spa.fl_str_mv Montoya Giraldo, Oscar Danilo [0000-0001-6051-4925]
dc.subject.spa.fl_str_mv Flujo de potencia reactiva óptimo
Lenguaje de programación DigSILENT
Optimización combinatorio
Minimización de pérdidas de energía
Codificación discreta - continua
topic Flujo de potencia reactiva óptimo
Lenguaje de programación DigSILENT
Optimización combinatorio
Minimización de pérdidas de energía
Codificación discreta - continua
Ingeniería Eléctrica -- Tesis y disertaciones académicas
Flujo óptimo de potencia reactiva en sistemas de transmisión
Algoritmo genético de Chu & Beasley (CBGA) discreto-continuo
Optimización combinatoria para flujo de potencia reactiva
Implementación del CBGA en DigSILENT
Optimal reactive power flow
DigSILENT programming language
Combinatorial optimization
Power losses minimization
Discrete-continuous codification
dc.subject.lemb.spa.fl_str_mv Ingeniería Eléctrica -- Tesis y disertaciones académicas
Flujo óptimo de potencia reactiva en sistemas de transmisión
Algoritmo genético de Chu & Beasley (CBGA) discreto-continuo
Optimización combinatoria para flujo de potencia reactiva
Implementación del CBGA en DigSILENT
dc.subject.keyword.spa.fl_str_mv Optimal reactive power flow
DigSILENT programming language
Combinatorial optimization
Power losses minimization
Discrete-continuous codification
description El problema del flujo óptimo de potencia reactiva en los sistemas de transmisión se aborda en esta investigación desde el punto de vista de la optimización combinatoria. Se propone una versión discreta-continua del algoritmo genético de Chu & Beasley (CBGA) para modelar variables continuas como salidas de voltaje en generadores e inyección de potencia reactiva en bancos de condensadores, así como variables binarias como posiciones de toma en transformadores. La minimización de las pérdidas totales de energía se considera como el indicador de desempeño objetivo. El principal aporte de esta investigación corresponde a la implementación del CBGA en el Lenguaje de Programación DigSILENT (DPL), el cual aprovecha las ventajas de la herramienta de flujo de potencia con un bajo esfuerzo computacional. La solución del problema del flujo óptimo de potencia reactiva en los sistemas de potencia es una tarea clave ya que la eficiencia y operación segura de todo el sistema eléctrico depende de la adecuada distribución de la potencia reactiva en generadores, transformadores, compensadores shunt y líneas de transmisión. Para proporcionar una herramienta de optimización eficiente para académicos y operadores de sistemas de energía, este documento selecciona el software DigSILENT, ya que es ampliamente utilizado para sistemas de energía para industrias e investigadores. Los resultados numéricos en tres alimentadores de prueba IEEE compuestos por 6, 14 y 39 buses demuestran la eficiencia del CBGA propuesto en el entorno DPL de DigSILENT para reducir las pérdidas totales de energía de la red (entre 21,17 % y 37,62 % del caso de referencia) considerando cuatro escenarios de simulación con respecto a los límites de regulación de voltaje y las salidas de voltaje flojo. Además, los tiempos de procesamiento totales para los sistemas IEEE de 6, 14 y 39 buses fueron de 32,33 s, 49,45 s y 138,88 s, lo que confirma el bajo esfuerzo computacional de los métodos de optimización implementados directamente en el entorno DPL.
publishDate 2022
dc.date.created.none.fl_str_mv 2022-07-27
dc.date.accessioned.none.fl_str_mv 2024-07-08T19:51:35Z
dc.date.available.none.fl_str_mv 2024-07-08T19:51:35Z
dc.type.spa.fl_str_mv bachelorThesis
dc.type.degree.spa.fl_str_mv Producción Académica
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/37638
url http://hdl.handle.net/11349/37638
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv Attribution-NoDerivatives 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-nd/4.0/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Attribution-NoDerivatives 4.0 Internacional
http://creativecommons.org/licenses/by-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 https://repository.udistrital.edu.co/bitstreams/b1afbd92-221a-4dee-8a3b-4f76c5689982/download
https://repository.udistrital.edu.co/bitstreams/badc4f0d-fe77-4d4b-8476-998d2add0e3a/download
https://repository.udistrital.edu.co/bitstreams/7d406675-eb63-415b-a68b-c70c94bc8ac5/download
https://repository.udistrital.edu.co/bitstreams/d53e7646-3c3f-4039-820b-cd61e8a2cea1/download
https://repository.udistrital.edu.co/bitstreams/d8a5bcf5-b6ec-49c5-b02f-72a1b6309acd/download
https://repository.udistrital.edu.co/bitstreams/42d4a73f-91d8-427b-8c7d-ac04eaf9dc3a/download
https://repository.udistrital.edu.co/bitstreams/369d7828-b0c5-4bfd-aea7-4a70d942f36a/download
bitstream.checksum.fl_str_mv 997daf6c648c962d566d7b082dac908d
21b1b6e46c953327c4c7fd45b7252c86
da0d3ab2d058ebffa54f7c58093b18b5
f7d494f61e544413a13e6ba1da2089cd
4e83ff268d4826905cf7d6fe8826369f
0db8ef953557d23ebbb581dc75143437
5fd80935ff4077473cf39a37600e29ac
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Distrital
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1837006976786104320
spelling Montoya Giraldo, Oscar Danilowill be generated::orcid::0000-0001-6051-4925600Bernal Romero, David LionelMontoya Giraldo, Oscar Danilo [0000-0001-6051-4925]2024-07-08T19:51:35Z2024-07-08T19:51:35Z2022-07-27http://hdl.handle.net/11349/37638El problema del flujo óptimo de potencia reactiva en los sistemas de transmisión se aborda en esta investigación desde el punto de vista de la optimización combinatoria. Se propone una versión discreta-continua del algoritmo genético de Chu & Beasley (CBGA) para modelar variables continuas como salidas de voltaje en generadores e inyección de potencia reactiva en bancos de condensadores, así como variables binarias como posiciones de toma en transformadores. La minimización de las pérdidas totales de energía se considera como el indicador de desempeño objetivo. El principal aporte de esta investigación corresponde a la implementación del CBGA en el Lenguaje de Programación DigSILENT (DPL), el cual aprovecha las ventajas de la herramienta de flujo de potencia con un bajo esfuerzo computacional. La solución del problema del flujo óptimo de potencia reactiva en los sistemas de potencia es una tarea clave ya que la eficiencia y operación segura de todo el sistema eléctrico depende de la adecuada distribución de la potencia reactiva en generadores, transformadores, compensadores shunt y líneas de transmisión. Para proporcionar una herramienta de optimización eficiente para académicos y operadores de sistemas de energía, este documento selecciona el software DigSILENT, ya que es ampliamente utilizado para sistemas de energía para industrias e investigadores. Los resultados numéricos en tres alimentadores de prueba IEEE compuestos por 6, 14 y 39 buses demuestran la eficiencia del CBGA propuesto en el entorno DPL de DigSILENT para reducir las pérdidas totales de energía de la red (entre 21,17 % y 37,62 % del caso de referencia) considerando cuatro escenarios de simulación con respecto a los límites de regulación de voltaje y las salidas de voltaje flojo. Además, los tiempos de procesamiento totales para los sistemas IEEE de 6, 14 y 39 buses fueron de 32,33 s, 49,45 s y 138,88 s, lo que confirma el bajo esfuerzo computacional de los métodos de optimización implementados directamente en el entorno DPL.The problem of the optimal reactive power flow in transmission systems is addressed in this research from the point of view of combinatorial optimization. A discrete-continuous version of the Chu & Beasley genetic algorithm (CBGA) is proposed to model continuous variables such as voltage outputs in generators and reactive power injection in capacitor banks, as well as binary variables such as tap positions in transformers. The minimization of the total power losses is considered as the objective performance indicator. The main contribution in this research corresponds to the implementation of the CBGA in the DigSILENT Programming Language (DPL), which exploits the advantages of the power flow tool at a low computational effort. The solution of the optimal reactive power flow problem in power systems is a key task since the efficiency and secure operation of the whole electrical system depend on the adequate distribution of the reactive power in generators, transformers, shunt compensators, and transmission lines. To provide an efficient optimization tool for academics and power system operators, this paper selects the DigSILENT software, since this is widely used for power systems for industries and researchers. Numerical results in three IEEE test feeders composed of 6, 14, and 39 buses demonstrate the efficiency of the proposed CBGA in the DPL environment from DigSILENT to reduce the total grid power losses (between 21.17 % to 37.62 % of the benchmark case) considering four simulation scenarios regarding voltage regulation bounds and slack voltage outputs. In addition, the total processing times for the IEEE 6-, 14-, and 39-bus systems were 32.33 s, 49.45 s, and 138.88 s, which confirms the low computational effort of the optimization methods directly implemented in the DPL environment.pdfspaAttribution-NoDerivatives 4.0 Internacionalhttp://creativecommons.org/licenses/by-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Flujo de potencia reactiva óptimoLenguaje de programación DigSILENTOptimización combinatorioMinimización de pérdidas de energíaCodificación discreta - continuaIngeniería Eléctrica -- Tesis y disertaciones académicasFlujo óptimo de potencia reactiva en sistemas de transmisiónAlgoritmo genético de Chu & Beasley (CBGA) discreto-continuoOptimización combinatoria para flujo de potencia reactivaImplementación del CBGA en DigSILENTOptimal reactive power flowDigSILENT programming languageCombinatorial optimizationPower losses minimizationDiscrete-continuous codificationSolución del problema de flujo óptimo de potencia reactiva utilizando un CBGA discreto-continuo implementado en el lenguaje de programación DigSILENTSolution of the optimal reactive power flow problem using a discrete-continuous CBGA implemented in the DigSILENT programming languagebachelorThesisProducción Académicainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fLICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/b1afbd92-221a-4dee-8a3b-4f76c5689982/download997daf6c648c962d566d7b082dac908dMD56ORIGINALBernalRomeroDavidLionel2022.pdfBernalRomeroDavidLionel2022.pdfTrabajo de gradoapplication/pdf1342009https://repository.udistrital.edu.co/bitstreams/badc4f0d-fe77-4d4b-8476-998d2add0e3a/download21b1b6e46c953327c4c7fd45b7252c86MD55Licencia y autorización de los autores para publicar.pdfLicencia y autorización de los autores para publicar.pdfLicencia de uso y publicaciónapplication/pdf263359https://repository.udistrital.edu.co/bitstreams/7d406675-eb63-415b-a68b-c70c94bc8ac5/downloadda0d3ab2d058ebffa54f7c58093b18b5MD52CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8799https://repository.udistrital.edu.co/bitstreams/d53e7646-3c3f-4039-820b-cd61e8a2cea1/downloadf7d494f61e544413a13e6ba1da2089cdMD53THUMBNAILBernalRomeroDavidLionel2022.pdf.jpgBernalRomeroDavidLionel2022.pdf.jpgIM Thumbnailimage/jpeg19470https://repository.udistrital.edu.co/bitstreams/d8a5bcf5-b6ec-49c5-b02f-72a1b6309acd/download4e83ff268d4826905cf7d6fe8826369fMD57Licencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg13207https://repository.udistrital.edu.co/bitstreams/42d4a73f-91d8-427b-8c7d-ac04eaf9dc3a/download0db8ef953557d23ebbb581dc75143437MD58Licencia y autorización de los autores para publicar.pdf.jpgLicencia y autorización de los autores para publicar.pdf.jpgIM Thumbnailimage/jpeg9762https://repository.udistrital.edu.co/bitstreams/369d7828-b0c5-4bfd-aea7-4a70d942f36a/download5fd80935ff4077473cf39a37600e29acMD5911349/37638oai:repository.udistrital.edu.co:11349/376382025-02-02 01:11:46.751http://creativecommons.org/licenses/by-nd/4.0/Attribution-NoDerivatives 4.0 Internacionalopen.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK