Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory

En la actualidad observamos día a día el crecimiento exponencial de la red eléctrica y los diferentes subsistemas que ello involucra, por lo tanto, es necesario modelar o simular dichos sistemas tratando de emular su comportamiento real con precisión. Algunos de estos sistemas requieren modelamiento...

Full description

Autores:
Castro Bejarano, Nestor Javier
Martínez Santa, Fernando
Tipo de recurso:
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/41923
Acceso en línea:
http://hdl.handle.net/11349/41923
Palabra clave:
DIgSILENT PowerFactory
MATLAB – Simulink
Regulador Automático de Voltaje (AVR)
Sistema de Excitación
Control De Excitación
Controlador PID
Estabilidad de voltaje
DSL (lenguaje de simulación DIgSILENT)
Co-Simulación
Ingeniería eléctrica por ciclos propedéuticos  -- Tesis y disertaciones académicas
Controlador PID
Sistema de excitación AVR
Co-simulación MATLAB-PowerFactory
Estabilidad de sistemas de potencia
DIgSILENT PowerFactory
MATLAB - Simulink
Automatic Voltage Regulator (AVR)
Excitation System
Excitation Control
PID controller
Co-simulation
DSL (DIgSILENT Simulation language)
Voltage Stability
Rights
License
CC0 1.0 Universal
id UDISTRITA2_46dd7e21151b5a891c37ec4505859ad9
oai_identifier_str oai:repository.udistrital.edu.co:11349/41923
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
dc.title.titleenglish.spa.fl_str_mv Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
title Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
spellingShingle Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
DIgSILENT PowerFactory
MATLAB – Simulink
Regulador Automático de Voltaje (AVR)
Sistema de Excitación
Control De Excitación
Controlador PID
Estabilidad de voltaje
DSL (lenguaje de simulación DIgSILENT)
Co-Simulación
Ingeniería eléctrica por ciclos propedéuticos  -- Tesis y disertaciones académicas
Controlador PID
Sistema de excitación AVR
Co-simulación MATLAB-PowerFactory
Estabilidad de sistemas de potencia
DIgSILENT PowerFactory
MATLAB - Simulink
Automatic Voltage Regulator (AVR)
Excitation System
Excitation Control
PID controller
Co-simulation
DSL (DIgSILENT Simulation language)
Voltage Stability
title_short Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
title_full Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
title_fullStr Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
title_full_unstemmed Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
title_sort Approach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactory
dc.creator.fl_str_mv Castro Bejarano, Nestor Javier
Martínez Santa, Fernando
dc.contributor.author.none.fl_str_mv Castro Bejarano, Nestor Javier
Martínez Santa, Fernando
dc.subject.spa.fl_str_mv DIgSILENT PowerFactory
MATLAB – Simulink
Regulador Automático de Voltaje (AVR)
Sistema de Excitación
Control De Excitación
Controlador PID
Estabilidad de voltaje
DSL (lenguaje de simulación DIgSILENT)
Co-Simulación
topic DIgSILENT PowerFactory
MATLAB – Simulink
Regulador Automático de Voltaje (AVR)
Sistema de Excitación
Control De Excitación
Controlador PID
Estabilidad de voltaje
DSL (lenguaje de simulación DIgSILENT)
Co-Simulación
Ingeniería eléctrica por ciclos propedéuticos  -- Tesis y disertaciones académicas
Controlador PID
Sistema de excitación AVR
Co-simulación MATLAB-PowerFactory
Estabilidad de sistemas de potencia
DIgSILENT PowerFactory
MATLAB - Simulink
Automatic Voltage Regulator (AVR)
Excitation System
Excitation Control
PID controller
Co-simulation
DSL (DIgSILENT Simulation language)
Voltage Stability
dc.subject.lemb.none.fl_str_mv Ingeniería eléctrica por ciclos propedéuticos  -- Tesis y disertaciones académicas
Controlador PID
Sistema de excitación AVR
Co-simulación MATLAB-PowerFactory
Estabilidad de sistemas de potencia
dc.subject.keyword.spa.fl_str_mv DIgSILENT PowerFactory
MATLAB - Simulink
Automatic Voltage Regulator (AVR)
Excitation System
Excitation Control
PID controller
Co-simulation
DSL (DIgSILENT Simulation language)
Voltage Stability
description En la actualidad observamos día a día el crecimiento exponencial de la red eléctrica y los diferentes subsistemas que ello involucra, por lo tanto, es necesario modelar o simular dichos sistemas tratando de emular su comportamiento real con precisión. Algunos de estos sistemas requieren modelamiento físico, mecánico, o de variables eléctricas al mismo tiempo; considerando esto, se hace necesario un análisis multidominio. Existe software especializado de acuerdo a esos dominios o la tarea específica requerida como MATLAB / Simulink, la cual es una gran herramienta para analizar sistemas de control, así como DIgSILENT PowerFactory para modelar sistemas eléctricos de potencia. Es por ello que se pretende obtener lo mejor de ambos softwares de aplicación en una co-simulación para lograr los objetivos de este estudio. Este documento presenta el diseño y ajuste de un controlador PID para el sistema de excitación AVR utilizando el “Control System Designer” toolbox de MATLAB. Este sistema posteriormente se prueba en operación bajo carga con la máquina síncrona funcionando en línea con el sistema eléctrico de potencia, esto se hace a través de una co-simulación, interconectando MATLAB y DIgSILENT PowerFactory. Luego, analizamos el comportamiento del sistema cuando está sujeto a perturbaciones de pequeña señal para evaluar el desempeño del controlador y el comportamiento de estabilidad de voltaje del sistema de potencia. Finalmente, el estudio de Co-Simulación alcanzado demuestra ser una metodología útil y poderosa para estudiar la dinámica del sistema de potencia en este caso, y se presenta como una posible solución para la simulación de futuros sistemas de energía que integren múltiples dominios. Para ver el articulo completo remítase a https://www.ripublication.com/adsa22/v17n2p02.pdf
publishDate 2022
dc.date.created.none.fl_str_mv 2022-06-29
dc.date.accessioned.none.fl_str_mv 2024-10-22T22:27:07Z
dc.date.available.none.fl_str_mv 2024-10-22T22:27:07Z
dc.type.none.fl_str_mv article
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_6501
http://purl.org/coar/resource_type/c_7a1f
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/41923
url http://hdl.handle.net/11349/41923
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_16ec
dc.rights.uri.*.fl_str_mv http://creativecommons.org/publicdomain/zero/1.0/
dc.rights.acceso.none.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_16ec
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/d183f796-cc25-421f-b084-3771c7318a5a/download
https://repository.udistrital.edu.co/bitstreams/deb75efb-e637-4fcd-9831-760de4dfabc4/download
https://repository.udistrital.edu.co/bitstreams/612837a8-03f9-49eb-ae18-56f34daded4b/download
https://repository.udistrital.edu.co/bitstreams/e0a52103-2964-4874-9614-639454ff3306/download
https://repository.udistrital.edu.co/bitstreams/a8ceaf1f-4775-4434-b5c4-59bf44515779/download
https://repository.udistrital.edu.co/bitstreams/7cc72bb8-2dd7-4823-8b92-a83668bf7481/download
https://repository.udistrital.edu.co/bitstreams/ec4d5798-7394-42f4-bfe6-6a6737b1e10d/download
bitstream.checksum.fl_str_mv 258c434ec96718fa5099b1e6bb457c22
abbc56defe869dd8043364d584e8dd76
42fd4ad1e89814f5e4a476b409eb708c
997daf6c648c962d566d7b082dac908d
2e5e9088f9247319d58185894f738c61
810f2795621ec093bed10c52265df3dc
2e5e9088f9247319d58185894f738c61
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_ 1828165210523828224
spelling Castro Bejarano, Nestor Javierwill be generated::orcid::0000-0002-8667-1862600Martínez Santa, Fernandowill be generated::orcid::0000-0003-2895-30846002024-10-22T22:27:07Z2024-10-22T22:27:07Z2022-06-29http://hdl.handle.net/11349/41923En la actualidad observamos día a día el crecimiento exponencial de la red eléctrica y los diferentes subsistemas que ello involucra, por lo tanto, es necesario modelar o simular dichos sistemas tratando de emular su comportamiento real con precisión. Algunos de estos sistemas requieren modelamiento físico, mecánico, o de variables eléctricas al mismo tiempo; considerando esto, se hace necesario un análisis multidominio. Existe software especializado de acuerdo a esos dominios o la tarea específica requerida como MATLAB / Simulink, la cual es una gran herramienta para analizar sistemas de control, así como DIgSILENT PowerFactory para modelar sistemas eléctricos de potencia. Es por ello que se pretende obtener lo mejor de ambos softwares de aplicación en una co-simulación para lograr los objetivos de este estudio. Este documento presenta el diseño y ajuste de un controlador PID para el sistema de excitación AVR utilizando el “Control System Designer” toolbox de MATLAB. Este sistema posteriormente se prueba en operación bajo carga con la máquina síncrona funcionando en línea con el sistema eléctrico de potencia, esto se hace a través de una co-simulación, interconectando MATLAB y DIgSILENT PowerFactory. Luego, analizamos el comportamiento del sistema cuando está sujeto a perturbaciones de pequeña señal para evaluar el desempeño del controlador y el comportamiento de estabilidad de voltaje del sistema de potencia. Finalmente, el estudio de Co-Simulación alcanzado demuestra ser una metodología útil y poderosa para estudiar la dinámica del sistema de potencia en este caso, y se presenta como una posible solución para la simulación de futuros sistemas de energía que integren múltiples dominios. Para ver el articulo completo remítase a https://www.ripublication.com/adsa22/v17n2p02.pdfNowadays we are observing day by day the exponential growth of the power network and the different subsystems that this involves, therefore, it is necessary to model or simulate those systems trying to emulate their actual behavior accurately, some of these systems require modeling physical, mechanical, or electrical variables at the same time; considering this, a multidomain analysis is necessary. There is specialized software according to those domains or the specific task required like MATLAB / Simulink, which is a great tool for analyzing control systems, as well as DIgSILENT PowerFactory for modeling electrical power systems. That is why it is intended to get the best from both application software in a co-simulation to accomplish the objectives of this study. This document presents the design and tuning of a PID controller for the excitation system AVR using the Control System Designer toolbox from MATLAB; this system is subsequently tested under load with the synchronous machine running online with the power system, this is done through a co-simulation, interfacing MATLAB and DIgSILENT PowerFactory. Then we analyze the behavior of the system when is subjected to small signal disturbances to evaluate the performance of the controller and the voltage stability behavior of the power system. Finally,the reached Co-Simulation study proves to be a useful and powerful methodology to study the dynamics of the power system in this case, and it is presented as a possible solution for the simulation of future energy systems that integrate multiple domains. For the full-length paper go to https://www.ripublication.com/adsa22/v17n2p02.pdfpdfspaCC0 1.0 Universalhttp://creativecommons.org/publicdomain/zero/1.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_16ecDIgSILENT PowerFactoryMATLAB – SimulinkRegulador Automático de Voltaje (AVR)Sistema de ExcitaciónControl De ExcitaciónControlador PIDEstabilidad de voltajeDSL (lenguaje de simulación DIgSILENT)Co-SimulaciónIngeniería eléctrica por ciclos propedéuticos  -- Tesis y disertaciones académicasControlador PIDSistema de excitación AVRCo-simulación MATLAB-PowerFactoryEstabilidad de sistemas de potenciaDIgSILENT PowerFactoryMATLAB - SimulinkAutomatic Voltage Regulator (AVR)Excitation SystemExcitation ControlPID controllerCo-simulationDSL (DIgSILENT Simulation language)Voltage StabilityApproach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactoryApproach to design of a PID controller for an AVR system and stability analysis through co-simulation using MATLAB and DIgSILENT PowerFactoryarticleinfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_6501http://purl.org/coar/resource_type/c_7a1fORIGINALMartínezSantaFernando2022.pdfMartínezSantaFernando2022.pdfTrabajo de Gradoapplication/pdf2648414https://repository.udistrital.edu.co/bitstreams/d183f796-cc25-421f-b084-3771c7318a5a/download258c434ec96718fa5099b1e6bb457c22MD51Licencia de uso y publicacion editable.pdfLicencia de uso y publicacion editable.pdfLicencia de usoapplication/pdf283063https://repository.udistrital.edu.co/bitstreams/deb75efb-e637-4fcd-9831-760de4dfabc4/downloadabbc56defe869dd8043364d584e8dd76MD52CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8701https://repository.udistrital.edu.co/bitstreams/612837a8-03f9-49eb-ae18-56f34daded4b/download42fd4ad1e89814f5e4a476b409eb708cMD53LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/e0a52103-2964-4874-9614-639454ff3306/download997daf6c648c962d566d7b082dac908dMD54THUMBNAILCastroNestor_MartinezFernando_2022.pdf.jpgCastroNestor_MartinezFernando_2022.pdf.jpgIM Thumbnailimage/jpeg6713https://repository.udistrital.edu.co/bitstreams/a8ceaf1f-4775-4434-b5c4-59bf44515779/download2e5e9088f9247319d58185894f738c61MD55Licencia de uso y publicacion editable.pdf.jpgLicencia de uso y publicacion editable.pdf.jpgIM Thumbnailimage/jpeg12403https://repository.udistrital.edu.co/bitstreams/7cc72bb8-2dd7-4823-8b92-a83668bf7481/download810f2795621ec093bed10c52265df3dcMD56MartínezSantaFernando2022.pdf.jpgMartínezSantaFernando2022.pdf.jpgIM Thumbnailimage/jpeg6713https://repository.udistrital.edu.co/bitstreams/ec4d5798-7394-42f4-bfe6-6a6737b1e10d/download2e5e9088f9247319d58185894f738c61MD5711349/41923oai:repository.udistrital.edu.co:11349/419232024-12-06 01:03:56.338http://creativecommons.org/publicdomain/zero/1.0/CC0 1.0 Universalopen.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK