Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices

Este artículo trata sobre el problema de ubicación y dimensionamiento óptimo de generadores fotovoltaicos (FV) en redes de distribución eléctrica considerando los perfiles diarios de carga y generación. Propone la versión discreta-continua del algoritmo de búsqueda por vórtices (DCVSA) para localiza...

Full description

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/28893
Acceso en línea:
http://hdl.handle.net/11349/28893
Palabra clave:
Algoritmo de búsqueda por vórtices discreto-continuo
Energía renovable
Generación fotovoltaica
Flujo de potencia óptimo
Modelo matemático
Minimización de pérdidas
Ingeniería Eléctrica - Tesis y Disertaciones Académicas
Generadores de corriente eléctrica
Sistemas de energía fotovoltaica
Generadores fotovoltaicos
Discrete-continuous vortex search algorithm
Energy renewable
Photovoltaic generation
Optimal power flow
Mathematic model
Minimization losses
Rights
License
Atribución-NoComercial-SinDerivadas 4.0 Internacional
id UDISTRITA2_95e4f1893de86ff41717222dac5a79db
oai_identifier_str oai:repository.udistrital.edu.co:11349/28893
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices
dc.title.titleenglish.spa.fl_str_mv Optimal integration of photovoltaic sources in distribution networks for daily energy losses minimization using the vortex search Algorithm
title Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices
spellingShingle Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices
Algoritmo de búsqueda por vórtices discreto-continuo
Energía renovable
Generación fotovoltaica
Flujo de potencia óptimo
Modelo matemático
Minimización de pérdidas
Ingeniería Eléctrica - Tesis y Disertaciones Académicas
Generadores de corriente eléctrica
Sistemas de energía fotovoltaica
Generadores fotovoltaicos
Discrete-continuous vortex search algorithm
Energy renewable
Photovoltaic generation
Optimal power flow
Mathematic model
Minimization losses
title_short Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices
title_full Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices
title_fullStr Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices
title_full_unstemmed Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices
title_sort Integración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por Vórtices
dc.contributor.advisor.spa.fl_str_mv Montoya Giraldo, Oscar Danilo
dc.subject.spa.fl_str_mv Algoritmo de búsqueda por vórtices discreto-continuo
Energía renovable
Generación fotovoltaica
Flujo de potencia óptimo
Modelo matemático
Minimización de pérdidas
topic Algoritmo de búsqueda por vórtices discreto-continuo
Energía renovable
Generación fotovoltaica
Flujo de potencia óptimo
Modelo matemático
Minimización de pérdidas
Ingeniería Eléctrica - Tesis y Disertaciones Académicas
Generadores de corriente eléctrica
Sistemas de energía fotovoltaica
Generadores fotovoltaicos
Discrete-continuous vortex search algorithm
Energy renewable
Photovoltaic generation
Optimal power flow
Mathematic model
Minimization losses
dc.subject.lemb.spa.fl_str_mv Ingeniería Eléctrica - Tesis y Disertaciones Académicas
Generadores de corriente eléctrica
Sistemas de energía fotovoltaica
Generadores fotovoltaicos
dc.subject.keyword.spa.fl_str_mv Discrete-continuous vortex search algorithm
Energy renewable
Photovoltaic generation
Optimal power flow
Mathematic model
Minimization losses
description Este artículo trata sobre el problema de ubicación y dimensionamiento óptimo de generadores fotovoltaicos (FV) en redes de distribución eléctrica considerando los perfiles diarios de carga y generación. Propone la versión discreta-continua del algoritmo de búsqueda por vórtices (DCVSA) para localizar y dimensionar las fuentes FV donde la parte discreta de la codificación define los nodos. En estos nodos se instalan generadores renovables y la sección continua determina sus tamaños óptimos. Además, mediante el método de flujo de potencia de aproximaciones sucesivas, se obtiene la función objetivo del modelo de optimización. Esta función objetivo está relacionada con la minimización de las pérdidas energéticas diarias. Este método permite determinar las pérdidas de energía en cada período para cada entrada de generación renovable proporcionada por el DCVSA (es decir, la ubicación y el tamaño de las fuentes fotovoltaicas). Las validaciones numéricas en los sistemas IEEE 33 e IEEE 69 nodos demuestran que: (i) el DCVSA propuesto encuentra la solución global óptima para ambos alimentadores de prueba cuando se exploran la ubicación y el tamaño de los generadores fotovoltaicos, considerando el escenario de carga máxima. (ii) En el caso del escenario diario operativo, la reducción total de pérdidas de energía para ambos alimentadores de prueba es de 23,3643% y 24,3863%, respectivamente; y (iii) el DCVSA presenta un mejor desempeño numérico con respecto al valor de la función objetivo cuando se compara con el solucionador BONMIN en el software GAMS, lo que demuestra la efectividad y robustez del algoritmo de optimización maestro-esclavo propuesto.
publishDate 2021
dc.date.created.spa.fl_str_mv 2021-05-26
dc.date.accessioned.none.fl_str_mv 2022-04-22T16:56:56Z
dc.date.available.none.fl_str_mv 2022-04-22T16:56:56Z
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/28893
url http://hdl.handle.net/11349/28893
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/28893/1/PazAlejandra-CastroJuanFelipe2021.pdf
http://repository.udistrital.edu.co/bitstream/11349/28893/3/Licencia%20de%20uso%20y%20publicacion%20editable.pdf
http://repository.udistrital.edu.co/bitstream/11349/28893/6/license.txt
http://repository.udistrital.edu.co/bitstream/11349/28893/7/PazAlejandra-CastroJuanFelipe2021.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/28893/8/Licencia%20de%20uso%20y%20publicacion%20editable.pdf.jpg
bitstream.checksum.fl_str_mv 2ef96b871dbef37ba0675b1819a7b548
5434cc80861974cc546f51b453decc39
997daf6c648c962d566d7b082dac908d
37abb9571fd8411a7201f80b9160d523
fa38b36017696495c323d3b4b7b9e21d
bitstream.checksumAlgorithm.fl_str_mv 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_ 1803712631403446272
spelling Montoya Giraldo, Oscar DaniloPaz Rodríguez, AlejandraCastro Ordoñez, Juan Felipe2022-04-22T16:56:56Z2022-04-22T16:56:56Z2021-05-26http://hdl.handle.net/11349/28893Este artículo trata sobre el problema de ubicación y dimensionamiento óptimo de generadores fotovoltaicos (FV) en redes de distribución eléctrica considerando los perfiles diarios de carga y generación. Propone la versión discreta-continua del algoritmo de búsqueda por vórtices (DCVSA) para localizar y dimensionar las fuentes FV donde la parte discreta de la codificación define los nodos. En estos nodos se instalan generadores renovables y la sección continua determina sus tamaños óptimos. Además, mediante el método de flujo de potencia de aproximaciones sucesivas, se obtiene la función objetivo del modelo de optimización. Esta función objetivo está relacionada con la minimización de las pérdidas energéticas diarias. Este método permite determinar las pérdidas de energía en cada período para cada entrada de generación renovable proporcionada por el DCVSA (es decir, la ubicación y el tamaño de las fuentes fotovoltaicas). Las validaciones numéricas en los sistemas IEEE 33 e IEEE 69 nodos demuestran que: (i) el DCVSA propuesto encuentra la solución global óptima para ambos alimentadores de prueba cuando se exploran la ubicación y el tamaño de los generadores fotovoltaicos, considerando el escenario de carga máxima. (ii) En el caso del escenario diario operativo, la reducción total de pérdidas de energía para ambos alimentadores de prueba es de 23,3643% y 24,3863%, respectivamente; y (iii) el DCVSA presenta un mejor desempeño numérico con respecto al valor de la función objetivo cuando se compara con el solucionador BONMIN en el software GAMS, lo que demuestra la efectividad y robustez del algoritmo de optimización maestro-esclavo propuesto.This paper deals with the optimal siting and sizing problem of photovoltaic (PV) generators in electrical distribution networks considering daily load and generation profiles. It proposes the discrete-continuous version of the vortex search algorithm (DCVSA) to locate and size the PV sources where the discrete part of the codification defines the nodes. Renewable generators are installed in these nodes, and the continuous section determines their optimal sizes. In addition, through the successive approximation power flow method, the objective function of the optimization model is obtained. This objective function is related to the minimization of the daily energy losses. This method allows determining the power losses in each period for each renewable generation input provided by the DCVSA (i.e., location and sizing of the PV sources). Numerical validations in the IEEE 33- and IEEE 69-bus systems demonstrate that: (i) the proposed DCVSA finds the optimal global solution for both test feeders when the location and size of the PV generators are explored, considering the peak load scenario. (ii) In the case of the daily operative scenario, the total reduction of energy losses for both test feeders are 23.3643% and 24.3863%, respectively; and (iii) the DCVSA presents a better numerical performance regarding the objective function value when compared with the BONMIN solver in the GAMS software, which demonstrates the effectiveness and robustness of the proposed master-slave optimization algorithm.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_abf2Algoritmo de búsqueda por vórtices discreto-continuoEnergía renovableGeneración fotovoltaicaFlujo de potencia óptimoModelo matemáticoMinimización de pérdidasIngeniería Eléctrica - Tesis y Disertaciones AcadémicasGeneradores de corriente eléctricaSistemas de energía fotovoltaicaGeneradores fotovoltaicosDiscrete-continuous vortex search algorithmEnergy renewablePhotovoltaic generationOptimal power flowMathematic modelMinimization lossesIntegración optima de fuentes fotovoltaicas en sistemas de distribución para disminuir las pérdidas diarias de energía empleando el Algoritmo de Optimización de Búsqueda por VórticesOptimal integration of photovoltaic sources in distribution networks for daily energy losses minimization using the vortex search AlgorithmProducción Académicainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fORIGINALPazAlejandra-CastroJuanFelipe2021.pdfPazAlejandra-CastroJuanFelipe2021.pdfapplication/pdf588673http://repository.udistrital.edu.co/bitstream/11349/28893/1/PazAlejandra-CastroJuanFelipe2021.pdf2ef96b871dbef37ba0675b1819a7b548MD51open accessLicencia de uso y publicacion editable.pdfLicencia de uso y publicacion editable.pdfLicencia de uso y publicacionapplication/pdf359363http://repository.udistrital.edu.co/bitstream/11349/28893/3/Licencia%20de%20uso%20y%20publicacion%20editable.pdf5434cc80861974cc546f51b453decc39MD53metadata only accessLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/28893/6/license.txt997daf6c648c962d566d7b082dac908dMD56open accessTHUMBNAILPazAlejandra-CastroJuanFelipe2021.pdf.jpgPazAlejandra-CastroJuanFelipe2021.pdf.jpgIM Thumbnailimage/jpeg19571http://repository.udistrital.edu.co/bitstream/11349/28893/7/PazAlejandra-CastroJuanFelipe2021.pdf.jpg37abb9571fd8411a7201f80b9160d523MD57open accessLicencia de uso y publicacion editable.pdf.jpgLicencia de uso y publicacion editable.pdf.jpgIM Thumbnailimage/jpeg13227http://repository.udistrital.edu.co/bitstream/11349/28893/8/Licencia%20de%20uso%20y%20publicacion%20editable.pdf.jpgfa38b36017696495c323d3b4b7b9e21dMD58open access11349/28893oai:repository.udistrital.edu.co:11349/288932023-06-13 14:56:56.828open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK