Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos
Este trabajo de grado dentro de su marco teórico desarrolla la propuesta investigativa listando los algoritmos protocolos, recomendaciones técnicas, contiene descripción de los lenguajes de programación, imágenes ilustrativas del proceso de implementación (ver anexos); contiene glosario.
- Autores:
-
Saavedra Lozano, Miguel Angel
Valderrama Ruiz, Andrés Felipe
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2021
- Institución:
- Universidad Tecnológica de Pereira
- Repositorio:
- Repositorio Institucional UTP
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.utp.edu.co:11059/13903
- Acceso en línea:
- https://hdl.handle.net/11059/13903
https://repositorio.utp.edu.co/home
- Palabra clave:
- 530 - Física
000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación
Processing modes-Computer science-Operating systems
Data processing-Office services
Comprensión de datos (computadores)
Entorno web
CRUD
Interfaz de usuario (UI)
- Rights
- openAccess
- License
- Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)
id |
UTP2_1fd6102e38157e05471785717a6ef99f |
---|---|
oai_identifier_str |
oai:repositorio.utp.edu.co:11059/13903 |
network_acronym_str |
UTP2 |
network_name_str |
Repositorio Institucional UTP |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos |
title |
Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos |
spellingShingle |
Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos 530 - Física 000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación Processing modes-Computer science-Operating systems Data processing-Office services Comprensión de datos (computadores) Entorno web CRUD Interfaz de usuario (UI) |
title_short |
Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos |
title_full |
Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos |
title_fullStr |
Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos |
title_full_unstemmed |
Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos |
title_sort |
Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datos |
dc.creator.fl_str_mv |
Saavedra Lozano, Miguel Angel Valderrama Ruiz, Andrés Felipe |
dc.contributor.advisor.none.fl_str_mv |
Medina Barreto, Milton Humberto |
dc.contributor.author.none.fl_str_mv |
Saavedra Lozano, Miguel Angel Valderrama Ruiz, Andrés Felipe |
dc.contributor.jury.none.fl_str_mv |
Medina Barreto, Milton Humberto |
dc.subject.ddc.none.fl_str_mv |
530 - Física 000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación |
topic |
530 - Física 000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación Processing modes-Computer science-Operating systems Data processing-Office services Comprensión de datos (computadores) Entorno web CRUD Interfaz de usuario (UI) |
dc.subject.lemb.none.fl_str_mv |
Processing modes-Computer science-Operating systems Data processing-Office services Comprensión de datos (computadores) |
dc.subject.proposal.spa.fl_str_mv |
Entorno web CRUD Interfaz de usuario (UI) |
description |
Este trabajo de grado dentro de su marco teórico desarrolla la propuesta investigativa listando los algoritmos protocolos, recomendaciones técnicas, contiene descripción de los lenguajes de programación, imágenes ilustrativas del proceso de implementación (ver anexos); contiene glosario. |
publishDate |
2021 |
dc.date.available.none.fl_str_mv |
2021 2022-02-17T20:21:04Z |
dc.date.issued.none.fl_str_mv |
2021 |
dc.date.accessioned.none.fl_str_mv |
2022-02-17T20:21:04Z |
dc.type.none.fl_str_mv |
Trabajo de grado - Pregrado |
dc.type.version.none.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.content.none.fl_str_mv |
Text |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
http://purl.org/coar/resource_type/c_7a1f |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
https://hdl.handle.net/11059/13903 |
dc.identifier.instname.none.fl_str_mv |
Universidad Tecnológica de Pereira |
dc.identifier.reponame.none.fl_str_mv |
Repositorio UTP |
dc.identifier.repourl.none.fl_str_mv |
https://repositorio.utp.edu.co/home |
url |
https://hdl.handle.net/11059/13903 https://repositorio.utp.edu.co/home |
identifier_str_mv |
Universidad Tecnológica de Pereira Repositorio UTP |
dc.language.iso.none.fl_str_mv |
spa |
language |
spa |
dc.relation.references.none.fl_str_mv |
N. G. Z. Y. A. P. Sergio Arevalo Bayona, «Diseño, Implementación y actualización de la página web, para efectos de información y comunicación de la sub-línea de investigación educación física en ámbitos dis-formales.» Proyecto de Grado, p. 87, 2013 A. S. P. Lady Didiana Velásquez, «Aspectos Básicos de la Industria 4.0,» Mintic, p. 43, 2019. J. M. D. M. B. S. Kamil Durski, «Warehouse management system in Ruby on Rails framework on cloud computing architecture.,» Polyana-Svalyava, nº 366, p. 4, 2011. J. X. Y. W. Nan Feng, «Comparison of Ruby on Rails Development Tools,» World Congress on Software Engineering, vol. 229, p. 5, 2009. R. Lapiedra Alcamí, C. Devece Carañana y H. Guirral Herrando, «Concepto de sistema de información» de Introducción a la gestión de un sistema de información en la empresa, 1 ed; Universitat Jaume, 2011, pp. 13-15. N. S. Estevan Gomez, Lógica de Algoritmos- Un enfoque Práctico Programación en Lenguaje C, Quito, Ecuador, 2015 B. A. Forouzan, «27. WWW and HTTP,» de Data Communications and Networking, Fourth Edition, Pennsylvania, The McGraw-Hill Companies, 2007, p. 5. B. A. Forouzan, «27.3 HTTP,» de Data Communications and Networking, Fourth Edition, Pennsylvania, The McGraw-Hill Companies, 2007, p. 3. GoDaddy, «¿Qué es un certificado SSL?,» GoDaddy, [En línea]. Available: https://co.godaddy.com/help/que-es-un-certificado-ssl-542. [Último acceso: 29 04 2021] D. Norris, «6. Debian Linux and Python Basics,» de Programming the Intel Edison: Getting Started with Processing and Python, San Francisco, McGraw-Hill Education, 2016, p. 5. A. Combo, P. Gomez, D. Perez y R. Rocha, «PHP y MySQL. Tecnologías para el desarrollo de aplicaciones web» de Diaz de santo, 2005, pp. 1-3. J. E. Pérez, CSS avanzado: Capítulo 1. Técnicas imprescindibles, Uniwebsida, 2009, p. 5. D. S. Monk, «Chapter 9: Web Interfaces,» de Programming the BeagleBone Black: Getting Started with JavaScript and BoneScript, Preston, UK, McGraw-Hill Education, 2014, p. 2 J. D. Gauchat, «Capítulo 1: Documentos HTML5» de El gran libro de HTML5, CSS3 y Javascript, 1 ed, Marcombo, S.A., 2012, pp. 1-31 J. Eguíluz Pérez, Introducción a CSS, Uniwebside, 2008, p. 5 Y. “. Matsumoto, «Ruby,» Ruby, 29 11 2001. [En línea]. Available: https://www.ruby-lang.org/es/about/. [Último acceso: 27 04 2021] RoR, «Ruby on Rails: Guides: Getting Started with Rails, What is Rails? » [En línea]. Available: https://guides.rubyonrails.org/getting_started.html. [Último acceso: 25 04 2021]. F. J. Poveda Soto, «Origen y evolución de los lenguajes de marcado: a propósito de XHTML y HTML5,» Universidad de Murcia, 2018. C. R. Jaimez González, Programación de web dinámico, México: UAM, Unidad Cuajimalpa, 2015, p. 10. D. S. Monk, «Chapter 3: Programming» de Programming the BeagleBone Black: Getting Started with JavaScript and BoneScript, Preston, UK, McGraw-Hill Education, 2014, p. 1 J. M. D. M. B. S. Kamil Durski, «Warehouse management system in Ruby on Rails framework on cloud computing architecture.,» Department of Microelectronics and Computer Science, nº 366, p. 4, 2011. T. K. GU Ming-xia, «Comparative analysis of WebForms MVC and MVP architecture,» 2010 2nd Conference on Environmental Science and Information Application Technology, vol. 5, nº 10, p. 4, 2010. R. Camps Paré, L. . A. Casillas Santillán, D. Costal Costa, M. Gilbert Ginestà, C. Martín Escofet y O. Pérez Mora, «Introducción a las bases de datos,» de Software libre Bases de datos, 1 ed; Barcelona: Eureca Medina, SL, Fundació per a la Universitat Oberta de Catalunya, 2005, pp. 7-21. R. Camps Paré, L. . A. Casillas Santillán, D. Costal Costa, M. Gilbert Ginestà, C. Martín Escofet y O. Pérez Mora, «Bases de datos en PostgreSQL» de Software libre Bases de datos, 1 ed; Barcelona: Eureca Medina, SL, Fundació per a la Universitat Oberta de Catalunya, 2005, pp. 5-8. T. P. G. D. Group, «PostgreSQL: About: What is PostgreSQL?,» [En línea]. Available: https://www.postgresql.org/about/. [Último acceso: 25 04 2021]. Hostinger, «Que es un vps» [En línea]. Available: https://www.hostinger.es/tutoriales/que-es-un-vps. [Último acceso: 01 05 2021]. R. G. F. P. A. A. A. M. F. M. Cristina Liviana Caldiroli, «How Web Design influences User Experience: a Multi-modal Method for Real-Time Assessment during Web Browsing,» Annual Consumer Communications & Networking Conference, nº 1063, p. 4, 2017 H. M. A.-z. L. F. A. V. P. Aryo Pinandito, «Analysis of Web Content Delivery Effectiveness and Efficiency in Responsive Web Design Using Material Design Guidelines and User Centered Design,» International Conference on Sustainable Information Engineering and Technology, nº 435, p. 7, 2017 S. L. H. K. Chen Cheng, «Analysis on the Status of Big Data Processing Framework,» International Computers, Signals and Systems Conference, nº 794, p. 6, 2018 C. J. a. A. S. Patrick Wagstrom, «A Network of Rails: A Graph Dataset of Ruby on Rails and Associated Projects,» nº 229, p. 4, 2013. C. I. Jamie Cleare, «GemChecker: Reporting on the Status of Gems in Ruby on Rails Projects,» International Conference on Software Maintenance and Evolution», nº 700, p. 5, 2018 Chongjun Wang, Peng Wei, «A novel web page text information extraction method» 3rd Information Technology,Networking,Electronic and Automation Control Conference», n° 2213, p. 6, 2019 R. Camps Paré, L. . A. Casillas Santillán, D. Costal Costa, M. Gilbert Ginestà, C. Martín Escofet y O. Pérez Mora, «Bases de datos en PostgreSQL» de Software libre Bases de datos, 1 ed; Barcelona: Eureca Medina, SL, Fundació per a la Universitat Oberta de Catalunya, 2005, p. 5. V. Viswanathan, Rapid Web Application: A Ruby on Rails Tutorial, New Jersey: the IEEE Computer Society, 2008. RoR, «Ruby on Rails: Guides: Migrations,» [En línea]. Available: https://guides.rubyonrails.org/v3.2/migrations.html. [Último acceso: 25 04 2021]. RoR, «Ruby on Rails: Guides: Active Record Basics,» [En línea]. Available: https://guides.rubyonrails.org/active_record_basics.html. [Último acceso: 25 04 2021]. RoR, «Ruby on Rails: Guides: Active Record, Naming Conventions,,» [En línea]. Available: https://guides.rubyonrails.org/active_record_basics.html. [Último acceso: 25 04 2021]. RoR, «Ruby on Rails: Guides, Active Model Basics,» [En línea]. Available: https://guides.rubyonrails.org/active_model_basics.html. [Último acceso: 25 04 2021]. Ruby, «Ruby Lang: Bibliotecas, Bibliotecas,» [En línea]. Available: https://www.ruby-lang.org/es/libraries/. [Último acceso: 01 05 2021]. Bundler, «Bundler: What is bundler?» [En línea]. Available: https://bundler.io/v2.2/#getting-started. [Último acceso: 01 05 2021]. R. Tourangeau, M. P. Couper y F. Conrad, «The Impact of the Visible: Images, Spacing, and Other Visual Cues in Web Surveys,» Survey Research Center, University of Michigan, 2003. Yu-Fai Leung, «Using the Internet for Natural Resource Research: Results from an Online User Survey,» J. Nat. Resour, vol. 27, 1998. GoRails, «Install Ruby» [En línea]. Available: https://gorails.com/deploy/ubuntu/20.04#vps. [Último acceso: 01 05 2021]. GoRails, «Install Nginx & Passenger» [En línea]. Available: https://gorails.com/deploy/ubuntu/20.04#vps. [Último acceso: 01 05 2021] GoRails, «Create a DataBase» [En línea]. Available: https://gorails.com/deploy/ubuntu/20.04#vps. [Último acceso: 01 05 2021]. GoRails, «Deploy with Capistrano» [En línea]. Available: https://gorails.com/deploy/ubuntu/20.04#vps. [Último acceso: 01 05 2021]. L. Encrypt, «Let's Encrypt: Empezando,» [En línea]. Available: https://letsencrypt.org/getting-started/. [Último acceso: 12 05 2021]. |
dc.rights.license.none.fl_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0) |
dc.rights.uri.none.fl_str_mv |
https://creativecommons.org/licenses/by-nc-nd/4.0/ |
dc.rights.coar.none.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.accessrights.none.fl_str_mv |
info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0) https://creativecommons.org/licenses/by-nc-nd/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.none.fl_str_mv |
83 pag. |
dc.format.mimetype.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidad Tecnológica de Pereira |
dc.publisher.program.none.fl_str_mv |
Ingeniería Física |
dc.publisher.faculty.none.fl_str_mv |
Facultad de Ingenierías |
dc.publisher.place.none.fl_str_mv |
Pereira |
publisher.none.fl_str_mv |
Universidad Tecnológica de Pereira |
institution |
Universidad Tecnológica de Pereira |
bitstream.url.fl_str_mv |
https://dspace7-utp.metabuscador.org/bitstreams/c4769c1b-3cfa-409d-939e-ccd8e3b909ec/download https://dspace7-utp.metabuscador.org/bitstreams/16358592-8c28-45a3-b1b8-401d2bf12492/download https://dspace7-utp.metabuscador.org/bitstreams/1c5f41e0-2779-4677-a752-f31a8376d7e5/download https://dspace7-utp.metabuscador.org/bitstreams/48725413-6153-4c60-aba1-e903caf69665/download |
bitstream.checksum.fl_str_mv |
c32d30bf5c17e31e5e6c15673a46149e 2f9959eaf5b71fae44bbf9ec84150c7a 568337df854f81117a981769192a6f0d 9a73865fef3eadd4a3dce5594c065912 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio de la Universidad Tecnológica de Pereira |
repository.mail.fl_str_mv |
bdigital@metabiblioteca.com |
_version_ |
1828202105696944128 |
spelling |
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)Manifiesto (Manifestamos) en este documento la voluntad de autorizar a la Biblioteca Jorge Roa Martínez de la Universidad Tecnológica de Pereira la publicación en el Repositorio institucional (http://biblioteca.utp.edu.co), la versión electrónica de la OBRA titulada: ________________________________________________________________________________________________ ________________________________________________________________________________________________ ________________________________________________________________________________________________ La Universidad Tecnológica de Pereira, entidad académica sin ánimo de lucro, queda por lo tanto facultada para ejercer plenamente la autorización anteriormente descrita en su actividad ordinaria de investigación, docencia y publicación. La autorización otorgada se ajusta a lo que establece la Ley 23 de 1982. Con todo, en mi (nuestra) condición de autor (es) me (nos) reservo (reservamos) los derechos morales de la OBRA antes citada con arreglo al artículo 30 dehttps://creativecommons.org/licenses/by-nc-nd/4.0/http://purl.org/coar/access_right/c_abf2info:eu-repo/semantics/openAccessMedina Barreto, Milton HumbertoSaavedra Lozano, Miguel AngelValderrama Ruiz, Andrés FelipeMedina Barreto, Milton Humberto2022-02-17T20:21:04Z20212022-02-17T20:21:04Z2021https://hdl.handle.net/11059/13903Universidad Tecnológica de PereiraRepositorio UTPhttps://repositorio.utp.edu.co/homeEste trabajo de grado dentro de su marco teórico desarrolla la propuesta investigativa listando los algoritmos protocolos, recomendaciones técnicas, contiene descripción de los lenguajes de programación, imágenes ilustrativas del proceso de implementación (ver anexos); contiene glosario.El presente trabajo presenta una iniciativa en el aspecto de divulgación de información de los grupos de investigación en Propiedades Magnéticas y Magneto Ópticas de Nuevos Materiales (GIMM) y el Grupo de Electrofisiología (GEF), que hacen parte de la Universidad Tecnológica de Pereira (UTP) y el entorno para la realización de la primera conferencia iberoamericana de termografía infrarroja y sus amplias aplicaciones, desarrollado por el grupo GEF. Lo cual, propone como fin, un entorno manejable por parte de los directivos y el desarrollo de una interfaz de fácil manejo para los usuarios, aplicando una comunicación con las bases de datos creadas y que permitan realizar acciones CRUD (Create, Read, Update and Delete) cuando sea necesario. Se parte desde la creación de tres micrositios base correspondientes a los grupos de investigación y el I IbercTherm, destinando las secciones o ramificaciones adecuadas para las asignaciones de las bases de datos y manejo de información por parte de los administrativos.This paper presents an initiative in the aspect of information disclosure of the research groups on Magnetic and Magneto-Optic Properties of New Materials (GIMM) and the Electrophysiology Group (GEF), which are part of the Technological University of Pereira (UTP) and the environment for carrying out the first Ibero-American conference on infrared thermography and its extensive applications, developed by the GEF group. Which, proposes as an end, an environment manageable by managers and the development of an easy-to-use interface for users, applying a communication with the databases created and that perform CRUD actions (Create, Read, Update and Delete) when necessary necessary. It starts from the creation of three base microsites corresponding to the research groups and the I IbercTherm, allocating the sections or branches suitable for database assignments and information management by part of the administrative.CONTENIDO ÍNDICE DE FIGURAS 5 ÍNDICE DE TABLAS 8 GLOSARIO DE TÉRMINOS 9 CAPÍTULO 1. 12 INTRODUCCIÓN 12 1.1. Planteamiento y justificación de la pregunta de investigación ............................13 1.2. Objetivos ......................................................................................................................14 1.2.1. Objetivo General...................................................................................................14 1.2.2. Objetivos específicos ..........................................................................................14 CAPÍTULO 2. 15 MARCO TEÓRICO 15 2.1. Sistemas informáticos................................................................................................15 2.2. Algoritmos ...................................................................................................................15 2.3. Consideraciones técnicas .........................................................................................15 2.3.1. Protocolo WWW y HTTP......................................................................................16 2.3.2. Certificado SSL.....................................................................................................16 2.3.3. Protocolo SSH ......................................................................................................16 2.4. Lenguajes de programación......................................................................................18 2.4.1. HTML......................................................................................................................18 2.4.2. CSS ........................................................................................................................21 2.4.3. Ruby.......................................................................................................................22 2.4.4. Ruby on Rails........................................................................................................22 2.4.5. JavaScript .............................................................................................................22 2.5. Framework ...................................................................................................................23 2.5.1. Arquitectura ..........................................................................................................23 2.6. Base de datos..............................................................................................................25 2.6.1. PostgreSQL...........................................................................................................25 2.7. Hosting.........................................................................................................................25 2.8. Estado del arte ............................................................................................................26 CAPÍTULO 3. 28 MÉTODOS Y PREPARACIONES 28 3.1. Análisis.........................................................................................................................28 3.1.1. Consideraciones de diseño ................................................................................28 3.1.2. Requerimientos funcionales...............................................................................33 3.2. Configuración del servidor........................................................................................35 3.2.1. Instalación de Ruby.................................................................................................35 3.3. Configuración del servidor web................................................................................36 3.4. Creación de la base de datos en PostgreSQL.........................................................38 3.5. Desplegar código........................................................................................................39 3.6. Últimas configuraciones ............................................................................................41 3.7. Certificación.................................................................................................................42 CAPÍTULO 4. 44 RESULTADOS 44 4.1. Estructura ....................................................................................................................44 4.2. Diseño...........................................................................................................................46 4.2.1. Diseño control de bases de datos......................................................................47 4.3. Repositorio ..................................................................................................................48 4.4. Servidor y dominio......................................................................................................49 4.5. Certificación y pruebas ..............................................................................................50 4.6. Evidencia del diseño final..........................................................................................52 CAPÍTULO 5 64 CONCLUSIONES Y RECOMENDACIONES 64 5.1. Conclusiones...............................................................................................................64 5.2. Recomendaciones ......................................................................................................65 REFERENCIAS 67 ANEXOS 72 ● Anexo 1. Repositorio Github.....................................................................................72 ● Anexo 2. Configuración DNS y otros comandos del servidor. .............................80PregradoIngeniero(a) Físico(a)83 pag.application/pdfspaUniversidad Tecnológica de PereiraIngeniería FísicaFacultad de IngenieríasPereira530 - Física000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computaciónProcessing modes-Computer science-Operating systemsData processing-Office servicesComprensión de datos (computadores)Entorno webCRUDInterfaz de usuario (UI)Diseño y desarrollo de aplicativo web para manejo y control de información en bases de datosTrabajo de grado - Pregradoinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTextinfo:eu-repo/semantics/bachelorThesisN. G. Z. Y. A. P. Sergio Arevalo Bayona, «Diseño, Implementación y actualización de la página web, para efectos de información y comunicación de la sub-línea de investigación educación física en ámbitos dis-formales.» Proyecto de Grado, p. 87, 2013A. S. P. Lady Didiana Velásquez, «Aspectos Básicos de la Industria 4.0,» Mintic, p. 43, 2019.J. M. D. M. B. S. Kamil Durski, «Warehouse management system in Ruby on Rails framework on cloud computing architecture.,» Polyana-Svalyava, nº 366, p. 4, 2011.J. X. Y. W. Nan Feng, «Comparison of Ruby on Rails Development Tools,» World Congress on Software Engineering, vol. 229, p. 5, 2009.R. Lapiedra Alcamí, C. Devece Carañana y H. Guirral Herrando, «Concepto de sistema de información» de Introducción a la gestión de un sistema de información en la empresa, 1 ed; Universitat Jaume, 2011, pp. 13-15.N. S. Estevan Gomez, Lógica de Algoritmos- Un enfoque Práctico Programación en Lenguaje C, Quito, Ecuador, 2015B. A. Forouzan, «27. WWW and HTTP,» de Data Communications and Networking, Fourth Edition, Pennsylvania, The McGraw-Hill Companies, 2007, p. 5.B. A. Forouzan, «27.3 HTTP,» de Data Communications and Networking, Fourth Edition, Pennsylvania, The McGraw-Hill Companies, 2007, p. 3.GoDaddy, «¿Qué es un certificado SSL?,» GoDaddy, [En línea]. Available: https://co.godaddy.com/help/que-es-un-certificado-ssl-542. [Último acceso: 29 04 2021]D. Norris, «6. Debian Linux and Python Basics,» de Programming the Intel Edison: Getting Started with Processing and Python, San Francisco, McGraw-Hill Education, 2016, p. 5.A. Combo, P. Gomez, D. Perez y R. Rocha, «PHP y MySQL. Tecnologías para el desarrollo de aplicaciones web» de Diaz de santo, 2005, pp. 1-3.J. E. Pérez, CSS avanzado: Capítulo 1. Técnicas imprescindibles, Uniwebsida, 2009, p. 5.D. S. Monk, «Chapter 9: Web Interfaces,» de Programming the BeagleBone Black: Getting Started with JavaScript and BoneScript, Preston, UK, McGraw-Hill Education, 2014, p. 2J. D. Gauchat, «Capítulo 1: Documentos HTML5» de El gran libro de HTML5, CSS3 y Javascript, 1 ed, Marcombo, S.A., 2012, pp. 1-31J. Eguíluz Pérez, Introducción a CSS, Uniwebside, 2008, p. 5Y. “. Matsumoto, «Ruby,» Ruby, 29 11 2001. [En línea]. Available: https://www.ruby-lang.org/es/about/. [Último acceso: 27 04 2021]RoR, «Ruby on Rails: Guides: Getting Started with Rails, What is Rails? » [En línea]. Available: https://guides.rubyonrails.org/getting_started.html. [Último acceso: 25 04 2021].F. J. Poveda Soto, «Origen y evolución de los lenguajes de marcado: a propósito de XHTML y HTML5,» Universidad de Murcia, 2018.C. R. Jaimez González, Programación de web dinámico, México: UAM, Unidad Cuajimalpa, 2015, p. 10.D. S. Monk, «Chapter 3: Programming» de Programming the BeagleBone Black: Getting Started with JavaScript and BoneScript, Preston, UK, McGraw-Hill Education, 2014, p. 1J. M. D. M. B. S. Kamil Durski, «Warehouse management system in Ruby on Rails framework on cloud computing architecture.,» Department of Microelectronics and Computer Science, nº 366, p. 4, 2011.T. K. GU Ming-xia, «Comparative analysis of WebForms MVC and MVP architecture,» 2010 2nd Conference on Environmental Science and Information Application Technology, vol. 5, nº 10, p. 4, 2010.R. Camps Paré, L. . A. Casillas Santillán, D. Costal Costa, M. Gilbert Ginestà, C. Martín Escofet y O. Pérez Mora, «Introducción a las bases de datos,» de Software libre Bases de datos, 1 ed; Barcelona: Eureca Medina, SL, Fundació per a la Universitat Oberta de Catalunya, 2005, pp. 7-21.R. Camps Paré, L. . A. Casillas Santillán, D. Costal Costa, M. Gilbert Ginestà, C. Martín Escofet y O. Pérez Mora, «Bases de datos en PostgreSQL» de Software libre Bases de datos, 1 ed; Barcelona: Eureca Medina, SL, Fundació per a la Universitat Oberta de Catalunya, 2005, pp. 5-8.T. P. G. D. Group, «PostgreSQL: About: What is PostgreSQL?,» [En línea]. Available: https://www.postgresql.org/about/. [Último acceso: 25 04 2021].Hostinger, «Que es un vps» [En línea]. Available: https://www.hostinger.es/tutoriales/que-es-un-vps. [Último acceso: 01 05 2021].R. G. F. P. A. A. A. M. F. M. Cristina Liviana Caldiroli, «How Web Design influences User Experience: a Multi-modal Method for Real-Time Assessment during Web Browsing,» Annual Consumer Communications & Networking Conference, nº 1063, p. 4, 2017H. M. A.-z. L. F. A. V. P. Aryo Pinandito, «Analysis of Web Content Delivery Effectiveness and Efficiency in Responsive Web Design Using Material Design Guidelines and User Centered Design,» International Conference on Sustainable Information Engineering and Technology, nº 435, p. 7, 2017S. L. H. K. Chen Cheng, «Analysis on the Status of Big Data Processing Framework,» International Computers, Signals and Systems Conference, nº 794, p. 6, 2018C. J. a. A. S. Patrick Wagstrom, «A Network of Rails: A Graph Dataset of Ruby on Rails and Associated Projects,» nº 229, p. 4, 2013.C. I. Jamie Cleare, «GemChecker: Reporting on the Status of Gems in Ruby on Rails Projects,» International Conference on Software Maintenance and Evolution», nº 700, p. 5, 2018Chongjun Wang, Peng Wei, «A novel web page text information extraction method» 3rd Information Technology,Networking,Electronic and Automation Control Conference», n° 2213, p. 6, 2019R. Camps Paré, L. . A. Casillas Santillán, D. Costal Costa, M. Gilbert Ginestà, C. Martín Escofet y O. Pérez Mora, «Bases de datos en PostgreSQL» de Software libre Bases de datos, 1 ed; Barcelona: Eureca Medina, SL, Fundació per a la Universitat Oberta de Catalunya, 2005, p. 5.V. Viswanathan, Rapid Web Application: A Ruby on Rails Tutorial, New Jersey: the IEEE Computer Society, 2008.RoR, «Ruby on Rails: Guides: Migrations,» [En línea]. Available: https://guides.rubyonrails.org/v3.2/migrations.html. [Último acceso: 25 04 2021].RoR, «Ruby on Rails: Guides: Active Record Basics,» [En línea]. Available: https://guides.rubyonrails.org/active_record_basics.html. [Último acceso: 25 04 2021].RoR, «Ruby on Rails: Guides: Active Record, Naming Conventions,,» [En línea]. Available: https://guides.rubyonrails.org/active_record_basics.html. [Último acceso: 25 04 2021].RoR, «Ruby on Rails: Guides, Active Model Basics,» [En línea]. Available: https://guides.rubyonrails.org/active_model_basics.html. [Último acceso: 25 04 2021].Ruby, «Ruby Lang: Bibliotecas, Bibliotecas,» [En línea]. Available: https://www.ruby-lang.org/es/libraries/. [Último acceso: 01 05 2021].Bundler, «Bundler: What is bundler?» [En línea]. Available: https://bundler.io/v2.2/#getting-started. [Último acceso: 01 05 2021].R. Tourangeau, M. P. Couper y F. Conrad, «The Impact of the Visible: Images, Spacing, and Other Visual Cues in Web Surveys,» Survey Research Center, University of Michigan, 2003.Yu-Fai Leung, «Using the Internet for Natural Resource Research: Results from an Online User Survey,» J. Nat. Resour, vol. 27, 1998.GoRails, «Install Ruby» [En línea]. Available: https://gorails.com/deploy/ubuntu/20.04#vps. [Último acceso: 01 05 2021].GoRails, «Install Nginx & Passenger» [En línea]. Available: https://gorails.com/deploy/ubuntu/20.04#vps. [Último acceso: 01 05 2021]GoRails, «Create a DataBase» [En línea]. Available: https://gorails.com/deploy/ubuntu/20.04#vps. [Último acceso: 01 05 2021].GoRails, «Deploy with Capistrano» [En línea]. Available: https://gorails.com/deploy/ubuntu/20.04#vps. [Último acceso: 01 05 2021].L. Encrypt, «Let's Encrypt: Empezando,» [En línea]. Available: https://letsencrypt.org/getting-started/. [Último acceso: 12 05 2021].PublicationORIGINALTRABAJO DE GRADO.pdfTRABAJO DE GRADO.pdfapplication/pdf2984653https://dspace7-utp.metabuscador.org/bitstreams/c4769c1b-3cfa-409d-939e-ccd8e3b909ec/downloadc32d30bf5c17e31e5e6c15673a46149eMD51LICENSElicense.txtlicense.txttext/plain; charset=utf-814828https://dspace7-utp.metabuscador.org/bitstreams/16358592-8c28-45a3-b1b8-401d2bf12492/download2f9959eaf5b71fae44bbf9ec84150c7aMD52TEXTTRABAJO DE GRADO.pdf.txtTRABAJO DE GRADO.pdf.txtExtracted texttext/plain114521https://dspace7-utp.metabuscador.org/bitstreams/1c5f41e0-2779-4677-a752-f31a8376d7e5/download568337df854f81117a981769192a6f0dMD53THUMBNAILTRABAJO DE GRADO.pdf.jpgTRABAJO DE GRADO.pdf.jpgGenerated Thumbnailimage/jpeg5647https://dspace7-utp.metabuscador.org/bitstreams/48725413-6153-4c60-aba1-e903caf69665/download9a73865fef3eadd4a3dce5594c065912MD5411059/13903oai:dspace7-utp.metabuscador.org:11059/139032024-09-05 17:26:09.979https://creativecommons.org/licenses/by-nc-nd/4.0/Manifiesto (Manifestamos) en este documento la voluntad de autorizar a la Biblioteca Jorge Roa Martínez de la Universidad Tecnológica de Pereira la publicación en el Repositorio institucional (http://biblioteca.utp.edu.co), la versión electrónica de la OBRA titulada: ________________________________________________________________________________________________ ________________________________________________________________________________________________ ________________________________________________________________________________________________ La Universidad Tecnológica de Pereira, entidad académica sin ánimo de lucro, queda por lo tanto facultada para ejercer plenamente la autorización anteriormente descrita en su actividad ordinaria de investigación, docencia y publicación. La autorización otorgada se ajusta a lo que establece la Ley 23 de 1982. Con todo, en mi (nuestra) condición de autor (es) me (nos) reservo (reservamos) los derechos morales de la OBRA antes citada con arreglo al artículo 30 deopen.accesshttps://dspace7-utp.metabuscador.orgRepositorio de la Universidad Tecnológica de Pereirabdigital@metabiblioteca.comTEEgT0JSQSAoVEFMIFkgQ09NTyBTRSBERUZJTkUgTcOBUyBBREVMQU5URSkgU0UgT1RPUkdBIEJBSk8gTE9TIFRFUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgUMOaQkxJQ0EgREUgQ1JFQVRJVkUgQ09NTU9OUyAo4oCcTFBDQ+KAnSBPIOKAnExJQ0VOQ0lB4oCdKS4gTEEgT0JSQSBFU1TDgSBQUk9URUdJREEgUE9SIERFUkVDSE9TIERFIEFVVE9SIFkvVSBPVFJBUyBMRVlFUyBBUExJQ0FCTEVTLiBRVUVEQSBQUk9ISUJJRE8gQ1VBTFFVSUVSIFVTTyBRVUUgU0UgSEFHQSBERSBMQSBPQlJBIFFVRSBOTyBDVUVOVEUgQ09OIExBIEFVVE9SSVpBQ0nDk04gUEVSVElORU5URSBERSBDT05GT1JNSURBRCBDT04gTE9TIFTDiVJNSU5PUyBERSBFU1RBIExJQ0VOQ0lBIFkgREUgTEEgTEVZIERFIERFUkVDSE8gREUgQVVUT1IuCgpNRURJQU5URSBFTCBFSkVSQ0lDSU8gREUgQ1VBTFFVSUVSQSBERSBMT1MgREVSRUNIT1MgUVVFIFNFIE9UT1JHQU4gRU4gRVNUQSBMSUNFTkNJQSwgVVNURUQgQUNFUFRBIFkgQUNVRVJEQSBRVUVEQVIgT0JMSUdBRE8gRU4gTE9TIFRFUk1JTk9TIFFVRSBTRSBTRcORQUxBTiBFTiBFTExBLiBFTCBMSUNFTkNJQU5URSBDT05DRURFIEEgVVNURUQgTE9TIERFUkVDSE9TIENPTlRFTklET1MgRU4gRVNUQSBMSUNFTkNJQSBDT05ESUNJT05BRE9TIEEgTEEgQUNFUFRBQ0nDk04gREUgU1VTIFRFUk1JTk9TIFkgQ09ORElDSU9ORVMuCjEuIERlZmluaWNpb25lcwoKYS4JT2JyYSBDb2xlY3RpdmEgZXMgdW5hIG9icmEsIHRhbCBjb21vIHVuYSBwdWJsaWNhY2nDs24gcGVyacOzZGljYSwgdW5hIGFudG9sb2fDrWEsIG8gdW5hIGVuY2ljbG9wZWRpYSwgZW4gbGEgcXVlIGxhIG9icmEgZW4gc3UgdG90YWxpZGFkLCBzaW4gbW9kaWZpY2FjacOzbiBhbGd1bmEsIGp1bnRvIGNvbiB1biBncnVwbyBkZSBvdHJhcyBjb250cmlidWNpb25lcyBxdWUgY29uc3RpdHV5ZW4gb2JyYXMgc2VwYXJhZGFzIGUgaW5kZXBlbmRpZW50ZXMgZW4gc8OtIG1pc21hcywgc2UgaW50ZWdyYW4gZW4gdW4gdG9kbyBjb2xlY3Rpdm8uIFVuYSBPYnJhIHF1ZSBjb25zdGl0dXllIHVuYSBvYnJhIGNvbGVjdGl2YSBubyBzZSBjb25zaWRlcmFyw6EgdW5hIE9icmEgRGVyaXZhZGEgKGNvbW8gc2UgZGVmaW5lIGFiYWpvKSBwYXJhIGxvcyBwcm9ww7NzaXRvcyBkZSBlc3RhIGxpY2VuY2lhLiBhcXVlbGxhIHByb2R1Y2lkYSBwb3IgdW4gZ3J1cG8gZGUgYXV0b3JlcywgZW4gcXVlIGxhIE9icmEgc2UgZW5jdWVudHJhIHNpbiBtb2RpZmljYWNpb25lcywganVudG8gY29uIHVuYSBjaWVydGEgY2FudGlkYWQgZGUgb3RyYXMgY29udHJpYnVjaW9uZXMsIHF1ZSBjb25zdGl0dXllbiBlbiBzw60gbWlzbW9zIHRyYWJham9zIHNlcGFyYWRvcyBlIGluZGVwZW5kaWVudGVzLCBxdWUgc29uIGludGVncmFkb3MgYWwgdG9kbyBjb2xlY3Rpdm8sIHRhbGVzIGNvbW8gcHVibGljYWNpb25lcyBwZXJpw7NkaWNhcywgYW50b2xvZ8OtYXMgbyBlbmNpY2xvcGVkaWFzLgoKYi4JT2JyYSBEZXJpdmFkYSBzaWduaWZpY2EgdW5hIG9icmEgYmFzYWRhIGVuIGxhIG9icmEgb2JqZXRvIGRlIGVzdGEgbGljZW5jaWEgbyBlbiDDqXN0YSB5IG90cmFzIG9icmFzIHByZWV4aXN0ZW50ZXMsIHRhbGVzIGNvbW8gdHJhZHVjY2lvbmVzLCBhcnJlZ2xvcyBtdXNpY2FsZXMsIGRyYW1hdGl6YWNpb25lcywg4oCcZmljY2lvbmFsaXphY2lvbmVz4oCdLCB2ZXJzaW9uZXMgcGFyYSBjaW5lLCDigJxncmFiYWNpb25lcyBkZSBzb25pZG/igJ0sIHJlcHJvZHVjY2lvbmVzIGRlIGFydGUsIHJlc8O6bWVuZXMsIGNvbmRlbnNhY2lvbmVzLCBvIGN1YWxxdWllciBvdHJhIGVuIGxhIHF1ZSBsYSBvYnJhIHB1ZWRhIHNlciB0cmFuc2Zvcm1hZGEsIGNhbWJpYWRhIG8gYWRhcHRhZGEsIGV4Y2VwdG8gYXF1ZWxsYXMgcXVlIGNvbnN0aXR1eWFuIHVuYSBvYnJhIGNvbGVjdGl2YSwgbGFzIHF1ZSBubyBzZXLDoW4gY29uc2lkZXJhZGFzIHVuYSBvYnJhIGRlcml2YWRhIHBhcmEgZWZlY3RvcyBkZSBlc3RhIGxpY2VuY2lhLiAoUGFyYSBldml0YXIgZHVkYXMsIGVuIGVsIGNhc28gZGUgcXVlIGxhIE9icmEgc2VhIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbCBvIHVuYSBncmFiYWNpw7NuIHNvbm9yYSwgcGFyYSBsb3MgZWZlY3RvcyBkZSBlc3RhIExpY2VuY2lhIGxhIHNpbmNyb25pemFjacOzbiB0ZW1wb3JhbCBkZSBsYSBPYnJhIGNvbiB1bmEgaW1hZ2VuIGVuIG1vdmltaWVudG8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIHBhcmEgbG9zIGZpbmVzIGRlIGVzdGEgbGljZW5jaWEpLgoKYy4JTGljZW5jaWFudGUsIGVzIGVsIGluZGl2aWR1byBvIGxhIGVudGlkYWQgdGl0dWxhciBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgcXVlIG9mcmVjZSBsYSBPYnJhIGVuIGNvbmZvcm1pZGFkIGNvbiBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4KCmQuCUF1dG9yIG9yaWdpbmFsLCBlcyBlbCBpbmRpdmlkdW8gcXVlIGNyZcOzIGxhIE9icmEuCgplLglPYnJhLCBlcyBhcXVlbGxhIG9icmEgc3VzY2VwdGlibGUgZGUgcHJvdGVjY2nDs24gcG9yIGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IgeSBxdWUgZXMgb2ZyZWNpZGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhCgpmLglVc3RlZCwgZXMgZWwgaW5kaXZpZHVvIG8gbGEgZW50aWRhZCBxdWUgZWplcmNpdGEgbG9zIGRlcmVjaG9zIG90b3JnYWRvcyBhbCBhbXBhcm8gZGUgZXN0YSBMaWNlbmNpYSB5IHF1ZSBjb24gYW50ZXJpb3JpZGFkIG5vIGhhIHZpb2xhZG8gbGFzIGNvbmRpY2lvbmVzIGRlIGxhIG1pc21hIHJlc3BlY3RvIGEgbGEgT2JyYSwgbyBxdWUgaGF5YSBvYnRlbmlkbyBhdXRvcml6YWNpw7NuIGV4cHJlc2EgcG9yIHBhcnRlIGRlbCBMaWNlbmNpYW50ZSBwYXJhIGVqZXJjZXIgbG9zIGRlcmVjaG9zIGFsIGFtcGFybyBkZSBlc3RhIExpY2VuY2lhIHBlc2UgYSB1bmEgdmlvbGFjacOzbiBhbnRlcmlvci4KCjIuIERlcmVjaG9zIGRlIFVzb3MgSG9ucmFkb3MgeSBleGNlcGNpb25lcyBMZWdhbGVzLgpOYWRhIGVuIGVzdGEgTGljZW5jaWEgcG9kcsOhIHNlciBpbnRlcnByZXRhZG8gY29tbyB1bmEgZGlzbWludWNpw7NuLCBsaW1pdGFjacOzbiBvIHJlc3RyaWNjacOzbiBkZSBsb3MgZGVyZWNob3MgZGVyaXZhZG9zIGRlbCB1c28gaG9ucmFkbyB5IG90cmFzIGxpbWl0YWNpb25lcyBvIGV4Y2VwY2lvbmVzIGEgbG9zIGRlcmVjaG9zIGRlbCBhdXRvciBiYWpvIGVsIHLDqWdpbWVuIGxlZ2FsIHZpZ2VudGUgbyBkZXJpdmFkbyBkZSBjdWFscXVpZXIgb3RyYSBub3JtYSBxdWUgc2UgbGUgYXBsaXF1ZS4KCjMuIENvbmNlc2nDs24gZGUgbGEgTGljZW5jaWEuCkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246CgphLglSZXByb2R1Y2lyIGxhIE9icmEsIGluY29ycG9yYXIgbGEgT2JyYSBlbiB1bmEgbyBtw6FzIE9icmFzIENvbGVjdGl2YXMsIHkgcmVwcm9kdWNpciBsYSBPYnJhIGluY29ycG9yYWRhIGVuIGxhcyBPYnJhcyBDb2xlY3RpdmFzLgoKYi4JRGlzdHJpYnVpciBjb3BpYXMgbyBmb25vZ3JhbWFzIGRlIGxhcyBPYnJhcywgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYSwgaW5jbHV5w6luZG9sYXMgY29tbyBpbmNvcnBvcmFkYXMgZW4gT2JyYXMgQ29sZWN0aXZhcywgc2Vnw7puIGNvcnJlc3BvbmRhLgoKYy4JRGlzdHJpYnVpciBjb3BpYXMgZGUgbGFzIE9icmFzIERlcml2YWRhcyBxdWUgc2UgZ2VuZXJlbiwgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4KTG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyBubyBvdG9yZ2Fkb3MgZXhwcmVzYW1lbnRlIHBvciBlbCBMaWNlbmNpYW50ZSBxdWVkYW4gcG9yIGVzdGUgbWVkaW8gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbyBwZXJvIHNpbiBsaW1pdGFyc2UgYSBhcXVlbGxvcyBxdWUgc2UgbWVuY2lvbmFuIGVuIGxhcyBzZWNjaW9uZXMgNChkKSB5IDQoZSkuCgo0LiBSZXN0cmljY2lvbmVzLgpMYSBsaWNlbmNpYSBvdG9yZ2FkYSBlbiBsYSBhbnRlcmlvciBTZWNjacOzbiAzIGVzdMOhIGV4cHJlc2FtZW50ZSBzdWpldGEgeSBsaW1pdGFkYSBwb3IgbGFzIHNpZ3VpZW50ZXMgcmVzdHJpY2Npb25lczoKCmEuCVVzdGVkIHB1ZWRlIGRpc3RyaWJ1aXIsIGV4aGliaXIgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSwgbyBwb25lciBhIGRpc3Bvc2ljacOzbiBww7pibGljYSBsYSBPYnJhIHPDs2xvIGJham8gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIHkgVXN0ZWQgZGViZSBpbmNsdWlyIHVuYSBjb3BpYSBkZSBlc3RhIGxpY2VuY2lhIG8gZGVsIElkZW50aWZpY2Fkb3IgVW5pdmVyc2FsIGRlIFJlY3Vyc29zIGRlIGxhIG1pc21hIGNvbiBjYWRhIGNvcGlhIGRlIGxhIE9icmEgcXVlIGRpc3RyaWJ1eWEsIGV4aGliYSBww7pibGljYW1lbnRlLCBlamVjdXRlIHDDumJsaWNhbWVudGUgbyBwb25nYSBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4gTm8gZXMgcG9zaWJsZSBvZnJlY2VyIG8gaW1wb25lciBuaW5ndW5hIGNvbmRpY2nDs24gc29icmUgbGEgT2JyYSBxdWUgYWx0ZXJlIG8gbGltaXRlIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIG8gZWwgZWplcmNpY2lvIGRlIGxvcyBkZXJlY2hvcyBkZSBsb3MgZGVzdGluYXRhcmlvcyBvdG9yZ2Fkb3MgZW4gZXN0ZSBkb2N1bWVudG8uIE5vIGVzIHBvc2libGUgc3VibGljZW5jaWFyIGxhIE9icmEuIFVzdGVkIGRlYmUgbWFudGVuZXIgaW50YWN0b3MgdG9kb3MgbG9zIGF2aXNvcyBxdWUgaGFnYW4gcmVmZXJlbmNpYSBhIGVzdGEgTGljZW5jaWEgeSBhIGxhIGNsw6F1c3VsYSBkZSBsaW1pdGFjacOzbiBkZSBnYXJhbnTDrWFzLiBVc3RlZCBubyBwdWVkZSBkaXN0cmlidWlyLCBleGhpYmlyIHDDumJsaWNhbWVudGUsIGVqZWN1dGFyIHDDumJsaWNhbWVudGUsIG8gcG9uZXIgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBjb24gYWxndW5hIG1lZGlkYSB0ZWNub2zDs2dpY2EgcXVlIGNvbnRyb2xlIGVsIGFjY2VzbyBvIGxhIHV0aWxpemFjacOzbiBkZSBlbGxhIGRlIHVuYSBmb3JtYSBxdWUgc2VhIGluY29uc2lzdGVudGUgY29uIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBMbyBhbnRlcmlvciBzZSBhcGxpY2EgYSBsYSBPYnJhIGluY29ycG9yYWRhIGEgdW5hIE9icmEgQ29sZWN0aXZhLCBwZXJvIGVzdG8gbm8gZXhpZ2UgcXVlIGxhIE9icmEgQ29sZWN0aXZhIGFwYXJ0ZSBkZSBsYSBvYnJhIG1pc21hIHF1ZWRlIHN1amV0YSBhIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBTaSBVc3RlZCBjcmVhIHVuYSBPYnJhIENvbGVjdGl2YSwgcHJldmlvIGF2aXNvIGRlIGN1YWxxdWllciBMaWNlbmNpYW50ZSBkZWJlLCBlbiBsYSBtZWRpZGEgZGUgbG8gcG9zaWJsZSwgZWxpbWluYXIgZGUgbGEgT2JyYSBDb2xlY3RpdmEgY3VhbHF1aWVyIHJlZmVyZW5jaWEgYSBkaWNobyBMaWNlbmNpYW50ZSBvIGFsIEF1dG9yIE9yaWdpbmFsLCBzZWfDum4gbG8gc29saWNpdGFkbyBwb3IgZWwgTGljZW5jaWFudGUgeSBjb25mb3JtZSBsbyBleGlnZSBsYSBjbMOhdXN1bGEgNChjKS4KCmIuCVVzdGVkIG5vIHB1ZWRlIGVqZXJjZXIgbmluZ3VubyBkZSBsb3MgZGVyZWNob3MgcXVlIGxlIGhhbiBzaWRvIG90b3JnYWRvcyBlbiBsYSBTZWNjacOzbiAzIHByZWNlZGVudGUgZGUgbW9kbyBxdWUgZXN0w6luIHByaW5jaXBhbG1lbnRlIGRlc3RpbmFkb3MgbyBkaXJlY3RhbWVudGUgZGlyaWdpZG9zIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiBFbCBpbnRlcmNhbWJpbyBkZSBsYSBPYnJhIHBvciBvdHJhcyBvYnJhcyBwcm90ZWdpZGFzIHBvciBkZXJlY2hvcyBkZSBhdXRvciwgeWEgc2VhIGEgdHJhdsOpcyBkZSB1biBzaXN0ZW1hIHBhcmEgY29tcGFydGlyIGFyY2hpdm9zIGRpZ2l0YWxlcyAoZGlnaXRhbCBmaWxlLXNoYXJpbmcpIG8gZGUgY3VhbHF1aWVyIG90cmEgbWFuZXJhIG5vIHNlcsOhIGNvbnNpZGVyYWRvIGNvbW8gZXN0YXIgZGVzdGluYWRvIHByaW5jaXBhbG1lbnRlIG8gZGlyaWdpZG8gZGlyZWN0YW1lbnRlIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLCBzaWVtcHJlIHF1ZSBubyBzZSByZWFsaWNlIHVuIHBhZ28gbWVkaWFudGUgdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIGVuIHJlbGFjacOzbiBjb24gZWwgaW50ZXJjYW1iaW8gZGUgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZWwgZGVyZWNobyBkZSBhdXRvci4KCmMuCVNpIHVzdGVkIGRpc3RyaWJ1eWUsIGV4aGliZSBww7pibGljYW1lbnRlLCBlamVjdXRhIHDDumJsaWNhbWVudGUgbyBlamVjdXRhIHDDumJsaWNhbWVudGUgZW4gZm9ybWEgZGlnaXRhbCBsYSBPYnJhIG8gY3VhbHF1aWVyIE9icmEgRGVyaXZhZGEgdSBPYnJhIENvbGVjdGl2YSwgVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RhIHRvZGEgbGEgaW5mb3JtYWNpw7NuIGRlIGRlcmVjaG8gZGUgYXV0b3IgZGUgbGEgT2JyYSB5IHByb3BvcmNpb25hciwgZGUgZm9ybWEgcmF6b25hYmxlIHNlZ8O6biBlbCBtZWRpbyBvIG1hbmVyYSBxdWUgVXN0ZWQgZXN0w6kgdXRpbGl6YW5kbzogKGkpIGVsIG5vbWJyZSBkZWwgQXV0b3IgT3JpZ2luYWwgc2kgZXN0w6EgcHJvdmlzdG8gKG8gc2V1ZMOzbmltbywgc2kgZnVlcmUgYXBsaWNhYmxlKSwgeS9vIChpaSkgZWwgbm9tYnJlIGRlIGxhIHBhcnRlIG8gbGFzIHBhcnRlcyBxdWUgZWwgQXV0b3IgT3JpZ2luYWwgeS9vIGVsIExpY2VuY2lhbnRlIGh1YmllcmVuIGRlc2lnbmFkbyBwYXJhIGxhIGF0cmlidWNpw7NuICh2LmcuLCB1biBpbnN0aXR1dG8gcGF0cm9jaW5hZG9yLCBlZGl0b3JpYWwsIHB1YmxpY2FjacOzbikgZW4gbGEgaW5mb3JtYWNpw7NuIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZWwgTGljZW5jaWFudGUsIHTDqXJtaW5vcyBkZSBzZXJ2aWNpb3MgbyBkZSBvdHJhcyBmb3JtYXMgcmF6b25hYmxlczsgZWwgdMOtdHVsbyBkZSBsYSBPYnJhIHNpIGVzdMOhIHByb3Zpc3RvOyBlbiBsYSBtZWRpZGEgZGUgbG8gcmF6b25hYmxlbWVudGUgZmFjdGlibGUgeSwgc2kgZXN0w6EgcHJvdmlzdG8sIGVsIElkZW50aWZpY2Fkb3IgVW5pZm9ybWUgZGUgUmVjdXJzb3MgKFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcikgcXVlIGVsIExpY2VuY2lhbnRlIGVzcGVjaWZpY2EgcGFyYSBzZXIgYXNvY2lhZG8gY29uIGxhIE9icmEsIHNhbHZvIHF1ZSB0YWwgVVJJIG5vIHNlIHJlZmllcmEgYSBsYSBub3RhIHNvYnJlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBvIGEgbGEgaW5mb3JtYWNpw7NuIHNvYnJlIGVsIGxpY2VuY2lhbWllbnRvIGRlIGxhIE9icmE7IHkgZW4gZWwgY2FzbyBkZSB1bmEgT2JyYSBEZXJpdmFkYSwgYXRyaWJ1aXIgZWwgY3LDqWRpdG8gaWRlbnRpZmljYW5kbyBlbCB1c28gZGUgbGEgT2JyYSBlbiBsYSBPYnJhIERlcml2YWRhICh2LmcuLCAiVHJhZHVjY2nDs24gRnJhbmNlc2EgZGUgbGEgT2JyYSBkZWwgQXV0b3IgT3JpZ2luYWwsIiBvICJHdWnDs24gQ2luZW1hdG9ncsOhZmljbyBiYXNhZG8gZW4gbGEgT2JyYSBvcmlnaW5hbCBkZWwgQXV0b3IgT3JpZ2luYWwiKS4gVGFsIGNyw6lkaXRvIHB1ZWRlIHNlciBpbXBsZW1lbnRhZG8gZGUgY3VhbHF1aWVyIGZvcm1hIHJhem9uYWJsZTsgZW4gZWwgY2Fzbywgc2luIGVtYmFyZ28sIGRlIE9icmFzIERlcml2YWRhcyB1IE9icmFzIENvbGVjdGl2YXMsIHRhbCBjcsOpZGl0byBhcGFyZWNlcsOhLCBjb21vIG3DrW5pbW8sIGRvbmRlIGFwYXJlY2UgZWwgY3LDqWRpdG8gZGUgY3VhbHF1aWVyIG90cm8gYXV0b3IgY29tcGFyYWJsZSB5IGRlIHVuYSBtYW5lcmEsIGFsIG1lbm9zLCB0YW4gZGVzdGFjYWRhIGNvbW8gZWwgY3LDqWRpdG8gZGUgb3RybyBhdXRvciBjb21wYXJhYmxlLgoKZC4JUGFyYSBldml0YXIgdG9kYSBjb25mdXNpw7NuLCBlbCBMaWNlbmNpYW50ZSBhY2xhcmEgcXVlLCBjdWFuZG8gbGEgb2JyYSBlcyB1bmEgY29tcG9zaWNpw7NuIG11c2ljYWw6CgppLglSZWdhbMOtYXMgcG9yIGludGVycHJldGFjacOzbiB5IGVqZWN1Y2nDs24gYmFqbyBsaWNlbmNpYXMgZ2VuZXJhbGVzLiBFbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgeSBkZSByZWNvbGVjdGFyLCBzZWEgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgU0FZQ08pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbyBXZWJjYXN0KSBsaWNlbmNpYWRhIGJham8gbGljZW5jaWFzIGdlbmVyYWxlcywgc2kgbGEgaW50ZXJwcmV0YWNpw7NuIG8gZWplY3VjacOzbiBkZSBsYSBvYnJhIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBvcmllbnRhZGEgcG9yIG8gZGlyaWdpZGEgYSBsYSBvYnRlbmNpw7NuIGRlIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLgoKaWkuCVJlZ2Fsw61hcyBwb3IgRm9ub2dyYW1hcy4gRWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSByZWNvbGVjdGFyLCBpbmRpdmlkdWFsbWVudGUgbyBhIHRyYXbDqXMgZGUgdW5hIHNvY2llZGFkIGRlIGdlc3Rpw7NuIGNvbGVjdGl2YSBkZSBkZXJlY2hvcyBkZSBhdXRvciB5IGRlcmVjaG9zIGNvbmV4b3MgKHBvciBlamVtcGxvLCBsb3MgY29uc2FncmFkb3MgcG9yIGxhIFNBWUNPKSwgdW5hIGFnZW5jaWEgZGUgZGVyZWNob3MgbXVzaWNhbGVzIG8gYWxnw7puIGFnZW50ZSBkZXNpZ25hZG8sIGxhcyByZWdhbMOtYXMgcG9yIGN1YWxxdWllciBmb25vZ3JhbWEgcXVlIFVzdGVkIGNyZWUgYSBwYXJ0aXIgZGUgbGEgb2JyYSAo4oCcdmVyc2nDs24gY292ZXLigJ0pIHkgZGlzdHJpYnV5YSwgZW4gbG9zIHTDqXJtaW5vcyBkZWwgcsOpZ2ltZW4gZGUgZGVyZWNob3MgZGUgYXV0b3IsIHNpIGxhIGNyZWFjacOzbiBvIGRpc3RyaWJ1Y2nDs24gZGUgZXNhIHZlcnNpw7NuIGNvdmVyIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkZXN0aW5hZGEgbyBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuCgplLglHZXN0acOzbiBkZSBEZXJlY2hvcyBkZSBBdXRvciBzb2JyZSBJbnRlcnByZXRhY2lvbmVzIHkgRWplY3VjaW9uZXMgRGlnaXRhbGVzIChXZWJDYXN0aW5nKS4gUGFyYSBldml0YXIgdG9kYSBjb25mdXNpw7NuLCBlbCBMaWNlbmNpYW50ZSBhY2xhcmEgcXVlLCBjdWFuZG8gbGEgb2JyYSBzZWEgdW4gZm9ub2dyYW1hLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpIHkgZGUgcmVjb2xlY3RhciwgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgQUNJTlBSTyksIGxhcyByZWdhbMOtYXMgcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbywgd2ViY2FzdCksIHN1amV0YSBhIGxhcyBkaXNwb3NpY2lvbmVzIGFwbGljYWJsZXMgZGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IsIHNpIGVzdGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuCgo1LiBSZXByZXNlbnRhY2lvbmVzLCBHYXJhbnTDrWFzIHkgTGltaXRhY2lvbmVzIGRlIFJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTEFTIFBBUlRFUyBMTyBBQ09SREFSQU4gREUgT1RSQSBGT1JNQSBQT1IgRVNDUklUTywgRUwgTElDRU5DSUFOVEUgT0ZSRUNFIExBIE9CUkEgKEVOIEVMIEVTVEFETyBFTiBFTCBRVUUgU0UgRU5DVUVOVFJBKSDigJxUQUwgQ1VBTOKAnSwgU0lOIEJSSU5EQVIgR0FSQU5Uw41BUyBERSBDTEFTRSBBTEdVTkEgUkVTUEVDVE8gREUgTEEgT0JSQSwgWUEgU0VBIEVYUFJFU0EsIElNUEzDjUNJVEEsIExFR0FMIE8gQ1VBTFFVSUVSQSBPVFJBLCBJTkNMVVlFTkRPLCBTSU4gTElNSVRBUlNFIEEgRUxMQVMsIEdBUkFOVMONQVMgREUgVElUVUxBUklEQUQsIENPTUVSQ0lBQklMSURBRCwgQURBUFRBQklMSURBRCBPIEFERUNVQUNJw5NOIEEgUFJPUMOTU0lUTyBERVRFUk1JTkFETywgQVVTRU5DSUEgREUgSU5GUkFDQ0nDk04sIERFIEFVU0VOQ0lBIERFIERFRkVDVE9TIExBVEVOVEVTIE8gREUgT1RSTyBUSVBPLCBPIExBIFBSRVNFTkNJQSBPIEFVU0VOQ0lBIERFIEVSUk9SRVMsIFNFQU4gTyBOTyBERVNDVUJSSUJMRVMgKFBVRURBTiBPIE5PIFNFUiBFU1RPUyBERVNDVUJJRVJUT1MpLiBBTEdVTkFTIEpVUklTRElDQ0lPTkVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgR0FSQU5Uw41BUyBJTVBMw41DSVRBUywgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KCjYuIExpbWl0YWNpw7NuIGRlIHJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTE8gRVhJSkEgRVhQUkVTQU1FTlRFIExBIExFWSBBUExJQ0FCTEUsIEVMIExJQ0VOQ0lBTlRFIE5PIFNFUsOBIFJFU1BPTlNBQkxFIEFOVEUgVVNURUQgUE9SIERBw5FPIEFMR1VOTywgU0VBIFBPUiBSRVNQT05TQUJJTElEQUQgRVhUUkFDT05UUkFDVFVBTCwgUFJFQ09OVFJBQ1RVQUwgTyBDT05UUkFDVFVBTCwgT0JKRVRJVkEgTyBTVUJKRVRJVkEsIFNFIFRSQVRFIERFIERBw5FPUyBNT1JBTEVTIE8gUEFUUklNT05JQUxFUywgRElSRUNUT1MgTyBJTkRJUkVDVE9TLCBQUkVWSVNUT1MgTyBJTVBSRVZJU1RPUyBQUk9EVUNJRE9TIFBPUiBFTCBVU08gREUgRVNUQSBMSUNFTkNJQSBPIERFIExBIE9CUkEsIEFVTiBDVUFORE8gRUwgTElDRU5DSUFOVEUgSEFZQSBTSURPIEFEVkVSVElETyBERSBMQSBQT1NJQklMSURBRCBERSBESUNIT1MgREHDkU9TLiBBTEdVTkFTIExFWUVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgQ0lFUlRBIFJFU1BPTlNBQklMSURBRCwgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KCjcuIFTDqXJtaW5vLgoKYS4JRXN0YSBMaWNlbmNpYSB5IGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgZW4gdmlydHVkIGRlIGVsbGEgdGVybWluYXLDoW4gYXV0b23DoXRpY2FtZW50ZSBzaSBVc3RlZCBpbmZyaW5nZSBhbGd1bmEgY29uZGljacOzbiBlc3RhYmxlY2lkYSBlbiBlbGxhLiBTaW4gZW1iYXJnbywgbG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgcXVlIGhhbiByZWNpYmlkbyBPYnJhcyBEZXJpdmFkYXMgbyBDb2xlY3RpdmFzIGRlIFVzdGVkIGRlIGNvbmZvcm1pZGFkIGNvbiBlc3RhIExpY2VuY2lhLCBubyB2ZXLDoW4gdGVybWluYWRhcyBzdXMgbGljZW5jaWFzLCBzaWVtcHJlIHF1ZSBlc3RvcyBpbmRpdmlkdW9zIG8gZW50aWRhZGVzIHNpZ2FuIGN1bXBsaWVuZG8gw61udGVncmFtZW50ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YXMgbGljZW5jaWFzLiBMYXMgU2VjY2lvbmVzIDEsIDIsIDUsIDYsIDcsIHkgOCBzdWJzaXN0aXLDoW4gYSBjdWFscXVpZXIgdGVybWluYWNpw7NuIGRlIGVzdGEgTGljZW5jaWEuCgpiLglTdWpldGEgYSBsYXMgY29uZGljaW9uZXMgeSB0w6lybWlub3MgYW50ZXJpb3JlcywgbGEgbGljZW5jaWEgb3RvcmdhZGEgYXF1w60gZXMgcGVycGV0dWEgKGR1cmFudGUgZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGRlIGxhIG9icmEpLiBObyBvYnN0YW50ZSBsbyBhbnRlcmlvciwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGEgcHVibGljYXIgeS9vIGVzdHJlbmFyIGxhIE9icmEgYmFqbyBjb25kaWNpb25lcyBkZSBsaWNlbmNpYSBkaWZlcmVudGVzIG8gYSBkZWphciBkZSBkaXN0cmlidWlybGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIExpY2VuY2lhIGVuIGN1YWxxdWllciBtb21lbnRvOyBlbiBlbCBlbnRlbmRpZG8sIHNpbiBlbWJhcmdvLCBxdWUgZXNhIGVsZWNjacOzbiBubyBzZXJ2aXLDoSBwYXJhIHJldm9jYXIgZXN0YSBsaWNlbmNpYSBvIHF1ZSBkZWJhIHNlciBvdG9yZ2FkYSAsIGJham8gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhKSwgeSBlc3RhIGxpY2VuY2lhIGNvbnRpbnVhcsOhIGVuIHBsZW5vIHZpZ29yIHkgZWZlY3RvIGEgbWVub3MgcXVlIHNlYSB0ZXJtaW5hZGEgY29tbyBzZSBleHByZXNhIGF0csOhcy4gTGEgTGljZW5jaWEgcmV2b2NhZGEgY29udGludWFyw6Egc2llbmRvIHBsZW5hbWVudGUgdmlnZW50ZSB5IGVmZWN0aXZhIHNpIG5vIHNlIGxlIGRhIHTDqXJtaW5vIGVuIGxhcyBjb25kaWNpb25lcyBpbmRpY2FkYXMgYW50ZXJpb3JtZW50ZS4KCjguIFZhcmlvcy4KCmEuCUNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuCgpiLglTaSBhbGd1bmEgZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgcmVzdWx0YSBpbnZhbGlkYWRhIG8gbm8gZXhpZ2libGUsIHNlZ8O6biBsYSBsZWdpc2xhY2nDs24gdmlnZW50ZSwgZXN0byBubyBhZmVjdGFyw6EgbmkgbGEgdmFsaWRleiBuaSBsYSBhcGxpY2FiaWxpZGFkIGRlbCByZXN0byBkZSBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIHksIHNpbiBhY2Npw7NuIGFkaWNpb25hbCBwb3IgcGFydGUgZGUgbG9zIHN1amV0b3MgZGUgZXN0ZSBhY3VlcmRvLCBhcXXDqWxsYSBzZSBlbnRlbmRlcsOhIHJlZm9ybWFkYSBsbyBtw61uaW1vIG5lY2VzYXJpbyBwYXJhIGhhY2VyIHF1ZSBkaWNoYSBkaXNwb3NpY2nDs24gc2VhIHbDoWxpZGEgeSBleGlnaWJsZS4KCmMuCU5pbmfDum4gdMOpcm1pbm8gbyBkaXNwb3NpY2nDs24gZGUgZXN0YSBMaWNlbmNpYSBzZSBlc3RpbWFyw6EgcmVudW5jaWFkYSB5IG5pbmd1bmEgdmlvbGFjacOzbiBkZSBlbGxhIHNlcsOhIGNvbnNlbnRpZGEgYSBtZW5vcyBxdWUgZXNhIHJlbnVuY2lhIG8gY29uc2VudGltaWVudG8gc2VhIG90b3JnYWRvIHBvciBlc2NyaXRvIHkgZmlybWFkbyBwb3IgbGEgcGFydGUgcXVlIHJlbnVuY2llIG8gY29uc2llbnRhLgoKZC4JRXN0YSBMaWNlbmNpYSByZWZsZWphIGVsIGFjdWVyZG8gcGxlbm8gZW50cmUgbGFzIHBhcnRlcyByZXNwZWN0byBhIGxhIE9icmEgYXF1w60gbGljZW5jaWFkYS4gTm8gaGF5IGFycmVnbG9zLCBhY3VlcmRvcyBvIGRlY2xhcmFjaW9uZXMgcmVzcGVjdG8gYSBsYSBPYnJhIHF1ZSBubyBlc3TDqW4gZXNwZWNpZmljYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gRWwgTGljZW5jaWFudGUgbm8gc2UgdmVyw6EgbGltaXRhZG8gcG9yIG5pbmd1bmEgZGlzcG9zaWNpw7NuIGFkaWNpb25hbCBxdWUgcHVlZGEgc3VyZ2lyIGVuIGFsZ3VuYSBjb211bmljYWNpw7NuIGVtYW5hZGEgZGUgVXN0ZWQuIEVzdGEgTGljZW5jaWEgbm8gcHVlZGUgc2VyIG1vZGlmaWNhZGEgc2luIGVsIGNvbnNlbnRpbWllbnRvIG11dHVvIHBvciBlc2NyaXRvIGRlbCBMaWNlbmNpYW50ZSB5IFVzdGVkLgo= |