Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos
El siguiente documento presenta el diseño y desarrollo de una aplicación de uso general para la realización de la planeación de rutas por medio de algoritmos heurísticos y metaheurísticos con condiciones de flota capacitada con carga homogénea y la capacidad de tener ventanas de tiempo tanto para lo...
- Autores:
-
Suarez Pacheco, Juan David
Perez Gomez, Edixon Fabian
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2017
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- spa
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/6353
- Acceso en línea:
- http://hdl.handle.net/11349/6353
- Palabra clave:
- Planeación de rutas
Logística
Algoritmos heurísticos
Algoritmos metaheurísticos
Clusterización
VRP
Ingeniería Industrial - Tesis y disertaciones académicas
Logística en los negocios
Eeparto de mercancías - Innovaciones tecnológicas
Programación heurística
Route planning
Logistics
Heuristic algorithms
Metaheuristic algorithms
Clustering
VRP
- Rights
- License
- Atribución-NoComercial-SinDerivadas 4.0 Internacional
id |
UDISTRITA2_a9026897ea8718746eb85ddab5be748a |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/6353 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos |
dc.title.titleenglish.spa.fl_str_mv |
Design and development of a route planning application with capacitated vehicles and time windows conditions through heuristic and metaheuristic algorithms |
title |
Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos |
spellingShingle |
Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos Planeación de rutas Logística Algoritmos heurísticos Algoritmos metaheurísticos Clusterización VRP Ingeniería Industrial - Tesis y disertaciones académicas Logística en los negocios Eeparto de mercancías - Innovaciones tecnológicas Programación heurística Route planning Logistics Heuristic algorithms Metaheuristic algorithms Clustering VRP |
title_short |
Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos |
title_full |
Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos |
title_fullStr |
Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos |
title_full_unstemmed |
Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos |
title_sort |
Diseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticos |
dc.creator.fl_str_mv |
Suarez Pacheco, Juan David Perez Gomez, Edixon Fabian |
dc.contributor.advisor.spa.fl_str_mv |
López Bello, César Amílcar |
dc.contributor.author.spa.fl_str_mv |
Suarez Pacheco, Juan David Perez Gomez, Edixon Fabian |
dc.subject.spa.fl_str_mv |
Planeación de rutas Logística Algoritmos heurísticos Algoritmos metaheurísticos Clusterización VRP |
topic |
Planeación de rutas Logística Algoritmos heurísticos Algoritmos metaheurísticos Clusterización VRP Ingeniería Industrial - Tesis y disertaciones académicas Logística en los negocios Eeparto de mercancías - Innovaciones tecnológicas Programación heurística Route planning Logistics Heuristic algorithms Metaheuristic algorithms Clustering VRP |
dc.subject.lemb.spa.fl_str_mv |
Ingeniería Industrial - Tesis y disertaciones académicas Logística en los negocios Eeparto de mercancías - Innovaciones tecnológicas Programación heurística |
dc.subject.keyword.spa.fl_str_mv |
Route planning Logistics Heuristic algorithms Metaheuristic algorithms Clustering VRP |
description |
El siguiente documento presenta el diseño y desarrollo de una aplicación de uso general para la realización de la planeación de rutas por medio de algoritmos heurísticos y metaheurísticos con condiciones de flota capacitada con carga homogénea y la capacidad de tener ventanas de tiempo tanto para los clientes como para la empresa además de estar programado en el lenguaje de Visual Basic for Applications en la aplicación de Excel de Microsoft®. Esta aplicación se desarrolló en 5 fases las cual comienza con la fase de entrada de información en la que el usuario puede ingresar la información referente tanto a la flota como a las necesidades (demanda) de los clientes. Una vez ingresada la información anterior, se continúa con la fase de geo-referenciacion, donde a través de Google Maps podemos establecer la ubicación de todos los clientes que se deseen tener en la planeación de rutas extrayendo distancias y tiempos reales. La siguiente etapa buscar relajar la creación de rutas a través de una fase de agrupación de clientes por medio del algoritmo de K-means y pasar a la fase de generación de solución inicial por medio de las heurísticas de construcción de Vecino más Cercano y Algoritmo de Ahorros. Por último, se mejora la solución encontrada con una fase de mejoramiento iterativo con ayuda del algoritmo metaheurístico Búsqueda Tabú y movimientos de vecindades de intercambio e inserción. |
publishDate |
2017 |
dc.date.accessioned.none.fl_str_mv |
2017-08-23T20:45:10Z |
dc.date.available.none.fl_str_mv |
2017-08-23T20:45:10Z |
dc.date.created.spa.fl_str_mv |
2017-06 |
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/6353 |
url |
http://hdl.handle.net/11349/6353 |
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 |
https://repository.udistrital.edu.co/bitstreams/1cde2aa3-f875-480b-b6ad-3fa2c18e2891/download https://repository.udistrital.edu.co/bitstreams/d3b170ca-3fcd-40dd-a2f0-16e7d70e5547/download https://repository.udistrital.edu.co/bitstreams/5432286a-03ca-466d-9418-2f88099ca904/download https://repository.udistrital.edu.co/bitstreams/ac31eee2-06b1-458d-862b-94b485ca1b21/download https://repository.udistrital.edu.co/bitstreams/8daffb35-1b56-4138-bef6-60bbdd7d7867/download https://repository.udistrital.edu.co/bitstreams/e8af60a6-95de-43eb-9220-ea6f2257a653/download https://repository.udistrital.edu.co/bitstreams/c268e37e-65aa-46ed-bdc7-7016c4748b37/download |
bitstream.checksum.fl_str_mv |
90620eab691a107a97ceec054175caa7 d1d6666073bd4ee668cae5cad5ea4e20 468f8e866fa28810f601d1ea44bfa28a 4afdbb8c545fd630ea7db775da747b2f d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e da5c6a3ca62d5dd4853000a60fee7083 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Universidad Distrital |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1837007015291912192 |
spelling |
López Bello, César AmílcarSuarez Pacheco, Juan DavidPerez Gomez, Edixon Fabian2017-08-23T20:45:10Z2017-08-23T20:45:10Z2017-06http://hdl.handle.net/11349/6353El siguiente documento presenta el diseño y desarrollo de una aplicación de uso general para la realización de la planeación de rutas por medio de algoritmos heurísticos y metaheurísticos con condiciones de flota capacitada con carga homogénea y la capacidad de tener ventanas de tiempo tanto para los clientes como para la empresa además de estar programado en el lenguaje de Visual Basic for Applications en la aplicación de Excel de Microsoft®. Esta aplicación se desarrolló en 5 fases las cual comienza con la fase de entrada de información en la que el usuario puede ingresar la información referente tanto a la flota como a las necesidades (demanda) de los clientes. Una vez ingresada la información anterior, se continúa con la fase de geo-referenciacion, donde a través de Google Maps podemos establecer la ubicación de todos los clientes que se deseen tener en la planeación de rutas extrayendo distancias y tiempos reales. La siguiente etapa buscar relajar la creación de rutas a través de una fase de agrupación de clientes por medio del algoritmo de K-means y pasar a la fase de generación de solución inicial por medio de las heurísticas de construcción de Vecino más Cercano y Algoritmo de Ahorros. Por último, se mejora la solución encontrada con una fase de mejoramiento iterativo con ayuda del algoritmo metaheurístico Búsqueda Tabú y movimientos de vecindades de intercambio e inserción.The following document presents the design and development of a general purpose application in the route planning through heuristic and metaheuristic algorithms with conditions of capacitated vehicles with homogeneous load and the capacity to have time windows for customers and the company; in addition, this application was programmed in Visual Basic for Applications language in the Microsoft® Excel application. This application was developed in 5 phases; the first phase is the input information where the user can register the information concerning to the vehicles and the needs (demand) of customers. Once you have entered the previous information, you are in the geo referencing phase, through Google Maps you can set the location of all the clients that you want to have in route planning extracting real distances and times. The next stage seeks to relax the creation of routes through a client’s clustering phase using the K-means algorithm and move to the initial solution generation phase with the Nearest Neighbor's Algorithm and the Savings Algorithm. Finally, it improves the initial solution with an iterative improvement phase with the help of Tabu Search Algorithm and exchange/insertion neighborhoods movements.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_abf2Planeación de rutasLogísticaAlgoritmos heurísticosAlgoritmos metaheurísticosClusterizaciónVRPIngeniería Industrial - Tesis y disertaciones académicasLogística en los negociosEeparto de mercancías - Innovaciones tecnológicasProgramación heurísticaRoute planningLogisticsHeuristic algorithmsMetaheuristic algorithmsClusteringVRPDiseño y desarrollo de una aplicación para la planeación de rutas con condiciones de flota capacitada y ventanas de tiempo por medio de algoritmos heurísticos y metaheurísticosDesign and development of a route planning application with capacitated vehicles and time windows conditions through heuristic and metaheuristic algorithmsinfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fTHUMBNAILSuarezPachecoJuanDavid2017.pdf.jpgSuarezPachecoJuanDavid2017.pdf.jpgIM Thumbnailimage/jpeg4889https://repository.udistrital.edu.co/bitstreams/1cde2aa3-f875-480b-b6ad-3fa2c18e2891/download90620eab691a107a97ceec054175caa7MD57ORIGINALSuarezPachecoJuanDavid2017.pdfSuarezPachecoJuanDavid2017.pdfapplication/pdf7122388https://repository.udistrital.edu.co/bitstreams/d3b170ca-3fcd-40dd-a2f0-16e7d70e5547/downloadd1d6666073bd4ee668cae5cad5ea4e20MD51Anexos.ZIPAnexos.ZIPapplication/octet-stream22367827https://repository.udistrital.edu.co/bitstreams/5432286a-03ca-466d-9418-2f88099ca904/download468f8e866fa28810f601d1ea44bfa28aMD52CC-LICENSElicense_urllicense_urltext/plain; charset=utf-849https://repository.udistrital.edu.co/bitstreams/ac31eee2-06b1-458d-862b-94b485ca1b21/download4afdbb8c545fd630ea7db775da747b2fMD53license_textlicense_texttext/html; charset=utf-80https://repository.udistrital.edu.co/bitstreams/8daffb35-1b56-4138-bef6-60bbdd7d7867/downloadd41d8cd98f00b204e9800998ecf8427eMD54license_rdflicense_rdfapplication/rdf+xml; charset=utf-80https://repository.udistrital.edu.co/bitstreams/e8af60a6-95de-43eb-9220-ea6f2257a653/downloadd41d8cd98f00b204e9800998ecf8427eMD55LICENSElicense.txtlicense.txttext/plain; charset=utf-87163https://repository.udistrital.edu.co/bitstreams/c268e37e-65aa-46ed-bdc7-7016c4748b37/downloadda5c6a3ca62d5dd4853000a60fee7083MD5611349/6353oai:repository.udistrital.edu.co:11349/63532023-06-13 11:50:36.395http://creativecommons.org/licenses/by-nc-nd/4.0/Atribución-NoComercial-SinDerivadas 4.0 Internacionalopen.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMClTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIHVzbyBwYXJhIHB1YmxpY2FjacOzbiBkZSBvYnJhcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChSSVVEKQoKQ29tbyB0aXR1bGFyKGVzKSBkZWwob3MpIGRlcmVjaG8ocykgZGUgYXV0b3IsIGNvbmZpZXJvIChlcmltb3MpIGEgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgKGVuIGFkZWxhbnRlLCBMQSBVTklWRVJTSURBRCkgdW5hIGxpY2VuY2lhIHBhcmEgdXNvIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSBpbnRlZ3JhcsOhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgKGVuIGFkZWxhbnRlLCBSSVVEKSwgZGUgYWN1ZXJkbyBhIGxhcyBzaWd1aWVudGVzIHJlZ2xhcywgbGFzIGN1YWxlcyBkZWNsYXJvIChhbW9zKSBjb25vY2VyIHkgYWNlcHRhcjoKCmEpCUVzdGFyw6EgdmlnZW50ZSBhIHBhcnRpciBkZSBsYSBmZWNoYSBlbiBxdWUgc2UgaW5jbHV5YSBlbiBlbCBSSVVEIHkgaGFzdGEgcG9yIHVuIHBsYXpvIGRlIGRpZXogKDEwKSBBw7FvcywgcHJvcnJvZ2FibGUgaW5kZWZpbmlkYW1lbnRlIHBvciBlbCB0aWVtcG8gcXVlIGR1cmUgZWwgZGVyZWNobyBQYXRyaW1vbmlhbCBkZWwgYXV0b3I7IGxhIGN1YWwgcG9kcsOhIGRhcnNlIHBvciB0ZXJtaW5hZGEgcHJldmlhIHNvbGljaXR1ZCBhIExBIFVOSVZFUlNJREFEIHBvciBlc2NyaXRvIGNvbiB1bmEgYW50ZWxhY2nDs24gZGUgZG9zICgyKSBtZXNlcyBhbnRlcyBkZWwgdmVuY2ltaWVudG8gZGVsIHBsYXpvIGluaWNpYWwgbyBlbCBkZSBzdShzKSBwcsOzcnJvZ2EocykuICAKCmIpCUxBIFVOSVZFUlNJREFEIHBvZHLDoSBwdWJsaWNhciBsYSBvYnJhIGVuIGxhcyBkaXN0aW50YXMgdmVyc2lvbmVzIHJlcXVlcmlkYXMgcG9yIGVsIFJJVUQgKGRpZ2l0YWwsIGltcHJlc28sIGVsZWN0csOzbmljbyB1IG90cm8gbWVkaW8gY29ub2NpZG8gbyBwb3IgY29ub2NlcikgTEEgVU5JVkVSU0lEQUQgbm8gc2Vyw6EgcmVzcG9uc2FibGUgZW4gZWwgZXZlbnRvIHF1ZSBlbCBkb2N1bWVudG8gYXBhcmV6Y2EgcmVmZXJlbmNpYWRvIGVuIG1vdG9yZXMgZGUgYsO6c3F1ZWRhIG8gcmVwb3NpdG9yaW9zIGRpZmVyZW50ZXMgYWwgUklVRCwgdW5hIHZleiBlbChvcykgYXV0b3IoZXMpIHNvbGljaXRlbiBzdSBlbGltaW5hY2nDs24gZGVsIFJJVUQsIGRhZG8gcXVlIGxhIG1pc21hIHNlcsOhIHB1YmxpY2FkYSBlbiBJbnRlcm5ldC4gCgpjKQlMYSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgYSB0w610dWxvIGdyYXR1aXRvLCBwb3IgbG8gdGFudG8sIGxvcyBhdXRvcmVzIHJlbnVuY2lhbiBhIHJlY2liaXIgYmVuZWZpY2lvIGFsZ3VubyBwb3IgbGEgcHVibGljYWNpw7NuLCBkaXN0cmlidWNpw7NuLCBjb211bmljYWNpw7NuIHDDumJsaWNhIHkgY3VhbHF1aWVyIG90cm8gdXNvIHF1ZSBzZSBoYWdhIGVuIGxvcyB0w6lybWlub3MgZGUgbGEgcHJlc2VudGUgbGljZW5jaWEgeSBkZSBsYSBsaWNlbmNpYSBkZSB1c28gY29uIHF1ZSBzZSBwdWJsaWNhIChDcmVhdGl2ZSBDb21tb25zKS4KCmQpCUxvcyBjb250ZW5pZG9zIHB1YmxpY2Fkb3MgZW4gZWwgUklVRCBzb24gb2JyYShzKSBvcmlnaW5hbChlcykgc29icmUgbGEgY3VhbChlcykgZWwob3MpIGF1dG9yKGVzKSBjb21vIHRpdHVsYXJlcyBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IsIGFzdW1lbiB0b3RhbCByZXNwb25zYWJpbGlkYWQgcG9yIGVsIGNvbnRlbmlkbyBkZSBzdSBvYnJhIGFudGUgTEEgVU5JVkVSU0lEQUQgeSBhbnRlIHRlcmNlcm9zLiBFbiB0b2RvIGNhc28gTEEgVU5JVkVSU0lEQUQgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uCgplKQlMQSBVTklWRVJTSURBRCBwb2Ryw6EgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyDDrW5kaWNlcyB5IGJ1c2NhZG9yZXMgcXVlIGVzdGltZW4gbmVjZXNhcmlvcyBwYXJhIG1heGltaXphciBsYSB2aXNpYmlsaWRhZCBlbCB1c28geSBlbCBpbXBhY3RvIGRlIGxhIHByb2R1Y2Npw7NuIGNpZW50w61maWNhLCBhcnTDrXN0aWNhIHkgYWNhZMOpbWljYSBlbiBsYSBjb211bmlkYWQgbG9jYWwsIG5hY2lvbmFsIG8gaW50ZXJuYWNpb25hbC4gCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbyAJCkF1dG9yCUFwZWxsaWRvcwlOb21icmVzCjEJCQoyCQkKMwkJCiAKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8gIAoKaykJQWNlcHRvKGFtb3MpIHF1ZSBMQSBVTklWRVJTSURBRCBubyBzZSByZXNwb25zYWJpbGl6YSBwb3IgbGFzIGluZnJhY2Npb25lcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIERlcmVjaG9zIGRlIEF1dG9yIGNhdXNhZGFzIHBvciBsb3MgdGl0dWxhcmVzIGRlIGxhIHByZXNlbnRlIExpY2VuY2lhIHkgZGVjbGFyYW1vcyBxdWUgbWFudGVuZHLDqSAoZW1vcykgaW5kZW1uZSBhIExBIFVOSVZFUlNJREFEIHBvciBsYXMgcmVjbGFtYWNpb25lcyBsZWdhbGVzIGRlIGN1YWxxdWllciB0aXBvIHF1ZSBsbGVnYXJlbiBhIHByZXNlbnRhcnNlIHBvciB2aW9sYWNpw7NuIGRlIGRlcmVjaG9zIGEgbGEgcHJvcGllZGFkIGludGVsZWN0dWFsIG8gZGUgQXV0b3IgcmVsYWNpb25hZG9zIGNvbiBsb3MgZG9jdW1lbnRvcyByZWdpc3RyYWRvcyBlbiBlbCBSSVVELgoKbCkJRWwgKGxvcykgYXV0b3IoZXMpIG1hbmlmaWVzdGEobW9zKSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCwgZGUgZXhjbHVzaXZhIGF1dG9yw61hLCB5IHNlIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zOyBkZSB0YWwgc3VlcnRlLCBlbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhLCBlbCAobG9zKSBlc3R1ZGlhbnRlKHMpIOKAkyBhdXRvcihlcykgYXN1bWlyw6EobikgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQgeSBzYWxkcsOhKG4pIGVuIGRlZmVuc2EgZGUgbG9zIGRlcmVjaG9zIGFxdcOtIGF1dG9yaXphZG9zLiBQYXJhIHRvZG9zIGxvcyBlZmVjdG9zLCBMQSBVTklWRVJTSURBRCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLiAgIAoKCm0pCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGNvbm96Y28oY2Vtb3MpIGxhIGF1dG9ub23DrWEgeSBsb3MgZGVyZWNob3MsIHF1ZSBwb3NlZShtb3MpIHNvYnJlIGxhIG9icmEgeSwgY29tbyB0YWwsIGVzIChzb21vcykgcmVzcG9uc2FibGUocykgZGVsIGFsY2FuY2UganVyw61kaWNvIHkgbGVnYWwsIGRlIGVzY29nZXIgbGEgb3BjacOzbiBkZSBsYSBwdWJsaWNhY2nDs24gbyBkZSByZXN0cmljY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIGRlbCBkb2N1bWVudG8gcmVnaXN0cmFkbyBlbiBlbCBSSVVELgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MgCkRFUkVDSE9TIFkgT0JMSUdBQ0lPTkVTIFJFUVVFUklET1MgUE9SIEVMIFJFU1BFQ1RJVk8gQ09OVFJBVE8gTyBBQ1VFUkRPLgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpFbiBjb25zdGFuY2lhIGRlIGxvIGFudGVyaW9yLCBmaXJtbyhhbW9zKSBlbCBwcmVzZW50ZSBkb2N1bWVudG8sIGVuIGxhIGNpdWRhZCBkZSBCb2dvdMOhLCBELkMuLCBhIGxvcyAKCgpGSVJNQSBERSBMT1MgVElUVUxBUkVTIERFIERFUkVDSE9TIERFIEFVVE9SCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCUNvcnJlbyBFbGVjdHLDs25pY28gCjEJCjIJCjMJCgpOb21icmUgZGUgRGlyZWN0b3IoZXMpIGRlIEdyYWRvOgoKMQkKMgkKMwkKCk5vbWJyZSBGYWN1bHRhZCB5IFByb3llY3RvIEN1cnJpY3VsYXI6CgpGYWN1bHRhZAlQcm95ZWN0byBDdXJyaWN1bGFyCgkKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEKCgo= |