Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin
Este artículo explora cómo Xamarin simplifica el desarrollo de aplicaciones móviles multiplataforma y destaca la importancia de los patrones de diseño para abordar los desafíos modernos del software. A medida que crece la demanda de aplicaciones adaptables y de alto rendimiento, Xamarin permite a lo...
- Autores:
-
Gómez Bello, Edwin Norbey
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2025
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- spa
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/93387
- Acceso en línea:
- http://hdl.handle.net/11349/93387
- Palabra clave:
- Comando
Patrón de diseño
Inyección de dependencias (DI)
DVP
Alta cohesión
Inversión de Control (IoC)
Ingeniería Telemática -- Tesis y Disertaciones Académicas
Sistemas de transmisión de datos
Telemática -- Tesis y disertaciones académicas.
Redes de información
Command
Design Pattern
Dependency injection (DI)
DVP
High Cohesion
Inversion of Control (IoC)
- Rights
- License
- Abierto (Texto Completo)
id |
UDISTRITA2_1ad0329abb6fa91318c42935e197f88c |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/93387 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.none.fl_str_mv |
Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin |
dc.title.titleenglish.none.fl_str_mv |
Analysis of design patterns available for the implementation of applicationsin Xamarin |
title |
Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin |
spellingShingle |
Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin Comando Patrón de diseño Inyección de dependencias (DI) DVP Alta cohesión Inversión de Control (IoC) Ingeniería Telemática -- Tesis y Disertaciones Académicas Sistemas de transmisión de datos Telemática -- Tesis y disertaciones académicas. Redes de información Command Design Pattern Dependency injection (DI) DVP High Cohesion Inversion of Control (IoC) |
title_short |
Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin |
title_full |
Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin |
title_fullStr |
Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin |
title_full_unstemmed |
Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin |
title_sort |
Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en Xamarin |
dc.creator.fl_str_mv |
Gómez Bello, Edwin Norbey |
dc.contributor.advisor.none.fl_str_mv |
Leguizamón Páez , Miguel Ángel |
dc.contributor.author.none.fl_str_mv |
Gómez Bello, Edwin Norbey |
dc.contributor.orcid.none.fl_str_mv |
Miguel Angel, Leguizamón Páez [0000-0003-0457-0126] |
dc.subject.none.fl_str_mv |
Comando Patrón de diseño Inyección de dependencias (DI) DVP Alta cohesión Inversión de Control (IoC) |
topic |
Comando Patrón de diseño Inyección de dependencias (DI) DVP Alta cohesión Inversión de Control (IoC) Ingeniería Telemática -- Tesis y Disertaciones Académicas Sistemas de transmisión de datos Telemática -- Tesis y disertaciones académicas. Redes de información Command Design Pattern Dependency injection (DI) DVP High Cohesion Inversion of Control (IoC) |
dc.subject.lemb.none.fl_str_mv |
Ingeniería Telemática -- Tesis y Disertaciones Académicas Sistemas de transmisión de datos Telemática -- Tesis y disertaciones académicas. Redes de información |
dc.subject.keyword.none.fl_str_mv |
Command Design Pattern Dependency injection (DI) DVP High Cohesion Inversion of Control (IoC) |
description |
Este artículo explora cómo Xamarin simplifica el desarrollo de aplicaciones móviles multiplataforma y destaca la importancia de los patrones de diseño para abordar los desafíos modernos del software. A medida que crece la demanda de aplicaciones adaptables y de alto rendimiento, Xamarin permite a los desarrolladores crear soluciones fluidas para iOS, Android y Windows utilizando C#. El texto presenta patrones de diseño clave como MVVM, Singleton e Inyección de Dependencias, mostrando cómo estos reducen la complejidad, mejoran la reutilización del código y facilitan el mantenimiento. También aborda la transición a .NET MAUI, el marco de próxima generación basado en Xamarin, que ofrece un mayor rendimiento y flexibilidad. Un ejemplo práctico demuestra la aplicación del patrón MVVM en una aplicación de lista de tareas, ilustrando cómo los patrones de diseño resuelven problemas del mundo real. Al centrarse en la gestión eficiente de recursos y el diseño escalable, este artículo proporciona ideas prácticas para superar los desafíos del desarrollo multiplataforma, garantizando aplicaciones sólidas y mantenibles. |
publishDate |
2025 |
dc.date.accessioned.none.fl_str_mv |
2025-03-07T15:28:32Z |
dc.date.available.none.fl_str_mv |
2025-03-07T15:28:32Z |
dc.date.created.none.fl_str_mv |
2025-02-17 |
dc.type.none.fl_str_mv |
bachelorThesis |
dc.type.degree.none.fl_str_mv |
Monografía |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.coar.none.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/93387 |
url |
http://hdl.handle.net/11349/93387 |
dc.language.iso.none.fl_str_mv |
spa |
language |
spa |
dc.relation.references.none.fl_str_mv |
Davidbritch. (n.d.-b). .NET Multi-platform App UI Documentation - .NET MAUI. Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/maui/?view=net-maui-9.0 García Peñarlvo, F. J. (s.f.). Patrones De Alexander a la Tecnología de Objetos. *Grial Repository*, (p. 4). Retrieved from https://www.researchgate.net/publication/236950316_Patrones_De_Alexander_a_la_Tecnologia_de_Objetos Martínez Canelo, M. (2020, junio). ¿Qué son los patrones de diseño de software? *Profile*. Retrieved from https://profile.es/blog/patrones-de-diseno-de-software/ Hermes, D. (2015). *Xamarin Mobile Application Development*. Apress. Retrieved from https://link.springer.com/book/10.1007/978-1-4842-0980-6 Delía, L. N., Galdámez, N., Corbalán, L. C., Thomas, P. J., & Pesado, P. M. (2015). Un análisis comparativo de rendimiento en aplicaciones móviles multiplataforma. *XXI Congreso Argentino de Ciencias de la Computación*, junio 2015. Retrieved from http://sedici.unlp.edu.ar/handle/10915/50413 Voge, P. (2018, agosto). The 5 Essential Patterns in Xamarin Applications. *Visual Studio Magazine*. Retrieved from https://visualstudiomagazine.com/articles/2018/08/02/xamarin-design-patterns.aspx Delía, L. N., Galdámez, N., Corbalán, L. C., Thomas, P. J., & Pesado, P. M. (2014, octubre). Análisis experimental de desarrollo de aplicaciones móviles multiplataforma. *XX Congreso Argentino de Ciencias de la Computación*. Retrieved from http://sedici.unlp.edu.ar/handle/10915/42355 Hermes, D. (2015). Xamarin Mobile Application Mobile: Cross-platform C# and Xamarin Forms Fundamentals. New York: Apress Media LLC. Retrieved from https://books.google.es/books?hl=es&id=QocnCgAAQBAJ Microsoft. (s.f.). What is Xamarin.Forms? Retrieved May 4, 2023, from https://docs.microsoft.com/enus/xamarin/get-started/what-is-xamarin-forms Campo, G. (2009). Patrones de Diseño, Refactorización y Antipatrones. Ventajas y Desventajas de su Utilización en el Software Orientado a Objetos. *Publicaciones Científicas UCASAL – Cuadernos de la Facultad*, No. 4, 103–115. Retrieved from http://revistas.ucasal.edu.ar/index.php/CI/article/view/178/155 Arcos Medina, G., Menéndez, J., & Vallejo, J. (2018, enero). Comparative Study of Performance and Productivity of MVC and MVVM design patterns. *KnE Engineering*, Vol. 3, No. 1. Retrieved from https://www.knepublishing.com/index.php/KnE-Engineering/article/view/1498 Mathews, E. (2015, marzo). Design of a Flow Visualisation Framework. *Computers*, Vol. 4, No. 1. Retrieved from https://www.mdpi.com/2073-431X/4/1/24 Murliace. (s.f.). A Basic Introduction On Service Locator Pattern. *CodeProject*. Retrieved from https://www.codeproject.com/Articles/18464/A-Basic-Introduction-On-Service-Locator-Pattern Johnson, P. (2018). Using MVVM Light with your Xamarin Apps. Merseyside, United Kingdom. Retrieved from https://books.google.com.co/books?id=fFxCDwAAQBAJ Debrawer, L. (2012). *Patrones de diseño para C#: Los 23 modelos de diseño*. Barcelona: Ediciones ENI. Retrieved from https://books.google.es/books?hl=es&id=B82QLbKSsHYC Fernandez, A. (2017, noviembre). Patrón MVP En IOS. *Apiumhub*. Retrieved from https://apiumhub.com/es/tech-blog-barcelona/patron-mvp-ios/ Megali, T. (2016, abril). How to Adopt Model View Presenter on Android. *Envato Tuts+*. Retrieved from https://code.tutsplus.com/tutorials/how-to-adopt-model-view-presenter-on-android--cms-26206 |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.acceso.none.fl_str_mv |
Abierto (Texto Completo) |
rights_invalid_str_mv |
Abierto (Texto Completo) http://purl.org/coar/access_right/c_abf2 |
dc.format.mimetype.none.fl_str_mv |
pdf |
dc.publisher.none.fl_str_mv |
Universidad Distrital Francisco José de Caldas |
publisher.none.fl_str_mv |
Universidad Distrital Francisco José de Caldas |
institution |
Universidad Distrital Francisco José de Caldas |
bitstream.url.fl_str_mv |
https://repository.udistrital.edu.co/bitstreams/74af0348-0525-40b6-a76d-2020da69adec/download https://repository.udistrital.edu.co/bitstreams/58cc70e0-005a-4554-bf62-d820b963dada/download https://repository.udistrital.edu.co/bitstreams/4967cfc3-2a35-48a7-a105-ac3a14f4906d/download https://repository.udistrital.edu.co/bitstreams/42929b0b-8012-4661-92c5-0c7c8051550f/download https://repository.udistrital.edu.co/bitstreams/8e002636-5e64-4fcd-972d-f1331c416e75/download |
bitstream.checksum.fl_str_mv |
997daf6c648c962d566d7b082dac908d 402a75b6cf0a706bcb36fc2ea49583a0 c7589b83471c8df23b8094d49803efca 0a8ab71b1db82de5d199858a33ffec97 a204a32b686f5f7a945d83505a401343 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Universidad Distrital |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1828164863450415104 |
spelling |
Leguizamón Páez , Miguel ÁngelGómez Bello, Edwin NorbeyMiguel Angel, Leguizamón Páez [0000-0003-0457-0126]2025-03-07T15:28:32Z2025-03-07T15:28:32Z2025-02-17http://hdl.handle.net/11349/93387Este artículo explora cómo Xamarin simplifica el desarrollo de aplicaciones móviles multiplataforma y destaca la importancia de los patrones de diseño para abordar los desafíos modernos del software. A medida que crece la demanda de aplicaciones adaptables y de alto rendimiento, Xamarin permite a los desarrolladores crear soluciones fluidas para iOS, Android y Windows utilizando C#. El texto presenta patrones de diseño clave como MVVM, Singleton e Inyección de Dependencias, mostrando cómo estos reducen la complejidad, mejoran la reutilización del código y facilitan el mantenimiento. También aborda la transición a .NET MAUI, el marco de próxima generación basado en Xamarin, que ofrece un mayor rendimiento y flexibilidad. Un ejemplo práctico demuestra la aplicación del patrón MVVM en una aplicación de lista de tareas, ilustrando cómo los patrones de diseño resuelven problemas del mundo real. Al centrarse en la gestión eficiente de recursos y el diseño escalable, este artículo proporciona ideas prácticas para superar los desafíos del desarrollo multiplataforma, garantizando aplicaciones sólidas y mantenibles.This article explores how Xamarin simplifies cross-platform mobile app development and highlights the importance of design patterns in tackling modern software challenges. As demand grows for adaptable, high-performing apps, Xamarin empowers developers to create seamless solutions for iOS, Android, and Windows using C#. The text introduces key design patterns like MVVM, Singleton, and Dependency Injection, showing how they reduce complexity, boost code reuse, and improve maintainability. It also discusses the transition to .NET MAUI, the next-generation framework built on Xamarin’s foundation, offering enhanced performance and flexibility. A practical example demonstrates the MVVM pattern in a task list app, illustrating how design patterns solve real-world problems. By focusing on efficient resource management and scalable design, this article provides actionable insights to overcome challenges in cross-platform development, ensuring robust and maintainable applications.pdfspaUniversidad Distrital Francisco José de CaldasComandoPatrón de diseñoInyección de dependencias (DI)DVPAlta cohesiónInversión de Control (IoC)Ingeniería Telemática -- Tesis y Disertaciones AcadémicasSistemas de transmisión de datosTelemática -- Tesis y disertaciones académicas.Redes de informaciónCommandDesign PatternDependency injection (DI)DVPHigh CohesionInversion of Control (IoC)Análisis de los patrones de diseño disponibles para la implementación de aplicaciones en XamarinAnalysis of design patterns available for the implementation of applicationsin XamarinbachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Davidbritch. (n.d.-b). .NET Multi-platform App UI Documentation - .NET MAUI. Microsoft Learn. https://learn.microsoft.com/en-us/dotnet/maui/?view=net-maui-9.0García Peñarlvo, F. J. (s.f.). Patrones De Alexander a la Tecnología de Objetos. *Grial Repository*, (p. 4). Retrieved from https://www.researchgate.net/publication/236950316_Patrones_De_Alexander_a_la_Tecnologia_de_ObjetosMartínez Canelo, M. (2020, junio). ¿Qué son los patrones de diseño de software? *Profile*. Retrieved from https://profile.es/blog/patrones-de-diseno-de-software/Hermes, D. (2015). *Xamarin Mobile Application Development*. Apress. Retrieved from https://link.springer.com/book/10.1007/978-1-4842-0980-6Delía, L. N., Galdámez, N., Corbalán, L. C., Thomas, P. J., & Pesado, P. M. (2015). Un análisis comparativo de rendimiento en aplicaciones móviles multiplataforma. *XXI Congreso Argentino de Ciencias de la Computación*, junio 2015. Retrieved from http://sedici.unlp.edu.ar/handle/10915/50413Voge, P. (2018, agosto). The 5 Essential Patterns in Xamarin Applications. *Visual Studio Magazine*. Retrieved from https://visualstudiomagazine.com/articles/2018/08/02/xamarin-design-patterns.aspxDelía, L. N., Galdámez, N., Corbalán, L. C., Thomas, P. J., & Pesado, P. M. (2014, octubre). Análisis experimental de desarrollo de aplicaciones móviles multiplataforma. *XX Congreso Argentino de Ciencias de la Computación*. Retrieved from http://sedici.unlp.edu.ar/handle/10915/42355Hermes, D. (2015). Xamarin Mobile Application Mobile: Cross-platform C# and Xamarin Forms Fundamentals. New York: Apress Media LLC. Retrieved from https://books.google.es/books?hl=es&id=QocnCgAAQBAJMicrosoft. (s.f.). What is Xamarin.Forms? Retrieved May 4, 2023, from https://docs.microsoft.com/enus/xamarin/get-started/what-is-xamarin-formsCampo, G. (2009). Patrones de Diseño, Refactorización y Antipatrones. Ventajas y Desventajas de su Utilización en el Software Orientado a Objetos. *Publicaciones Científicas UCASAL – Cuadernos de la Facultad*, No. 4, 103–115. Retrieved from http://revistas.ucasal.edu.ar/index.php/CI/article/view/178/155Arcos Medina, G., Menéndez, J., & Vallejo, J. (2018, enero). Comparative Study of Performance and Productivity of MVC and MVVM design patterns. *KnE Engineering*, Vol. 3, No. 1. Retrieved from https://www.knepublishing.com/index.php/KnE-Engineering/article/view/1498Mathews, E. (2015, marzo). Design of a Flow Visualisation Framework. *Computers*, Vol. 4, No. 1. Retrieved from https://www.mdpi.com/2073-431X/4/1/24Murliace. (s.f.). A Basic Introduction On Service Locator Pattern. *CodeProject*. Retrieved from https://www.codeproject.com/Articles/18464/A-Basic-Introduction-On-Service-Locator-PatternJohnson, P. (2018). Using MVVM Light with your Xamarin Apps. Merseyside, United Kingdom. Retrieved from https://books.google.com.co/books?id=fFxCDwAAQBAJDebrawer, L. (2012). *Patrones de diseño para C#: Los 23 modelos de diseño*. Barcelona: Ediciones ENI. Retrieved from https://books.google.es/books?hl=es&id=B82QLbKSsHYCFernandez, A. (2017, noviembre). Patrón MVP En IOS. *Apiumhub*. Retrieved from https://apiumhub.com/es/tech-blog-barcelona/patron-mvp-ios/Megali, T. (2016, abril). How to Adopt Model View Presenter on Android. *Envato Tuts+*. Retrieved from https://code.tutsplus.com/tutorials/how-to-adopt-model-view-presenter-on-android--cms-26206LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/74af0348-0525-40b6-a76d-2020da69adec/download997daf6c648c962d566d7b082dac908dMD51ORIGINALGómezBelloEdwinNorbey2025GómezBelloEdwinNorbey2025Trabajo de gradoapplication/pdf1049151https://repository.udistrital.edu.co/bitstreams/58cc70e0-005a-4554-bf62-d820b963dada/download402a75b6cf0a706bcb36fc2ea49583a0MD51Licencia de uso y publicacion.pdfLicencia de uso y publicacion.pdfLicencia de uso y publicaciónapplication/pdf228433https://repository.udistrital.edu.co/bitstreams/4967cfc3-2a35-48a7-a105-ac3a14f4906d/downloadc7589b83471c8df23b8094d49803efcaMD52THUMBNAILGómezBelloEdwinNorbey2025.jpgGómezBelloEdwinNorbey2025.jpgIM Thumbnailimage/jpeg7995https://repository.udistrital.edu.co/bitstreams/42929b0b-8012-4661-92c5-0c7c8051550f/download0a8ab71b1db82de5d199858a33ffec97MD53Licencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg9513https://repository.udistrital.edu.co/bitstreams/8e002636-5e64-4fcd-972d-f1331c416e75/downloada204a32b686f5f7a945d83505a401343MD5411349/93387oai:repository.udistrital.edu.co:11349/933872025-03-13 10:25:39.805open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK |