Zona de estudio
La Guajira se ubica al extremo norte de Colombia, departamentop que limita Por el norte con el Mar Caribe, por el oriente con el Mar Caribe y Venezuela; por el sur oriente con el departamento del Cesar y por el sur occidente con el departamento del Magdalena y el Mar Caribe.

Tomado de : https://rpubs.com/elezamam/632058
Municipios
El departamento estÔ dividido en 15 municipios: Riohacha, ciudad capital, Albania, Barrancas, Dibulla, Distracción, El Molino, Fonseca, Hato Nuevo, La Jagua del Pilar, Maicao, Manaure, San Juan del Cesar, Uribia, Urumita y Villanueva.

tomado de: https://rpubs.com/elezamam/617254
Superficie: 20.848 Km2 , Población: 985.498, Año de creación: 1964, Gentilicio: Guajiro, Capital: Riohacha. Su temperatura oscila entre los 22°C y 40°C.
Se encuentra en CIOH, que apesar de encontrarse sobre la zona ecuatorial, debido a la posición astronómica que posee, el clima es de sabana xerófila al sur y occidente del departamento y de estepa Ć”rida o semiĆ”rida al norte y oriente, contrastadas con la brisa marina y los vientos provenientes del noreste. Presenta lluvias escasas en los meses de septiembre y noviembre. De todas las serranĆas de la Guajira, la zona de Macuira es la mĆ”s hĆŗmeda, el clima de La Guajira ha generado una vegetación muy tĆpica, con arbustos espinosos y cactus.
La Guajira es la zona mĆ”s seca de Colombia, su clima es cĆ”lido, seco e inhóspito. Las lluvias son escasas y mal distribuidas, con una precipitación anual que oscila entre 354 y 1170mm (IDEAM, 2005),generando constantes vientos, alta evaporación y estaciones bastante marcadas. Este sistema, se manifiesta por una estación lluviosa de cuatro meses, septiembre a diciembre. Posteriormente, desde diciembre o enero hasta abril, soplan los vientos alisios con fuerte intensidad predominando del noreste, lo cual corresponde a una estación de sequĆa y frĆo nocturno. Esta estación termina por lo general en abril o mayo a causa de un debilitamiento del viento y por la caĆda de algunas lluvias y corresponde a la segunda estación hĆŗmeda, las cuales estimulan un nuevo crecimiento de vegetación. Seguido a este periodo, continĆŗa un largo perĆodo seco, de mayo a septiembre, caracterizado por un continuo viento que viene del nordeste cada vez con mĆ”s fuerza y muy caliente; Ć©ste lleva las nubes y las lluvias lejos del territorio guajiro. Por esta razón, lo mĆ”s comĆŗn es que llueva muy poco o casi nada en abril o mayo; esta segunda estación seca se prolonga sin transición a la primera.
Metodos de interpolación
1. INTERPOLACIĆN THIESSEN
Es uno de los mas simples , ya que se basa en la distancia eucladina, que se deduce a partir del teorema de pitagoras, se dice que es muy apropiado para datos cualitativos, y esto se basa en delimitar Ɣreas de importancia , unidades discretas a partir de un conjunto de puntos, como lo vemos en el siguiente grafico

Tomado de : https://rpubs.com/elezamam/631825
El anterior grafico se muestra los datos de presipitación muestreada durante 5 dias en el mes de Junio , con estos datos se puede seguir a hacer la interpolación. las Ôreas se crean al unir dichos puntos entre sà trazando mediatrices de los segmentos de unión. Como se puede observar en la siguiente grÔfica

Tomado de: https://rpubs.com/elezamam/631979
2. INTERPOLACIĆN PONDERADA DE DISTANCIA INVERSA IDW
Este metodo predetermina que la variable que presenta una ubicación mas distante cartogrÔficamente , esta tendra menos influencia por su ubicación de muestreo y asà una que este muy cercana tendra mayor influencia.
La base principal de este método en aplicar la inversa de la distancia elevada a una potencia matemÔtica , este parametro le da mayor significacncia a puntos mas conocidos por su distancia desde el punto de salida, es asà como como un valor de potencia mas alto es de mayor influencia en puntos cercanos lo que significa que esta superficie tendra mas detalle, y el caso contrario puntos mas lejanos la zona serÔ con menos detalle.
Con esta predeterminación podremos hacer inferir predicciones de ventos de lluvia como se muestra en la siguiente grafica.

Tomado de: https://rpubs.com/elezamam/631979
Por lo anterior se observa en la grafica, cuando se encuentra la mayorĆa de puntos con un mismo valor aumento el tamaƱo del Ć”rea , mientras que cuando hay menos cantidad de un mismo valor este se aleja mas y su influencia es menor lo que resulta en una menor Ć”rea.
ya que tiene mayor exactitud se puede hacer esta interpolación sobre la superficie como se nota en la siguiente figura.

Tomado de: https://rpubs.com/elezamam/631979
Generando este tipos de graficos podremos estimar un predicción con mayor certeza , las zonas de un lugar geogrĆ”fico , donde se presentaran mayores afluencias de lluvias y en cuales zonas se mantendra la sequĆa , haciendo un grafico con los datos interpolados.

Tomado de: https://rpubs.com/elezamam/631979
Al observar la grÔfica anterior , se puede notar que la mayor agrupación de puntos estan arededor de los 50 a 75 de predicción
3.INTERPOLACIĆN KRIGING A diferencia del IDW este mĆ©todo consta tratamiento de datos geoestadĆsticos, incluyendo la autocorrelación, lo que significa relaciones estadĆsticas en puntos mĆ©dios, dando la caracteristica de ser mas preciso en sus predicciones.
Es necesario como primer paso hacer un variogra, este es calculado sobre datos tendencia, para luego definir un modelo que se acerque lo mas posible a la autocorrelación espacial de los datos, siguiendo con la interpolación de la región o superficie usando el variograma experimental y para tener un resultado final se agrega la superficie interpolada kriged a la región interpolada de tendencia.
Se presenta en el siguiente grƔfico el variograma

Tomado de: https://rpubs.com/elezamam/631979
Modelo experimental de correlación principal, asà se genera la superficie Kriged

Tomado de: https://rpubs.com/elezamam/631979
Permite incluir el modelo de tendencia , esto corrige los residuos para luego combinar los raster.
Superficie interpolada con Krigin sobre una superficie mejorada

Tomado de: https://rpubs.com/elezamam/631979
interpolación kriging para generar mapa de varianza

Tomado de: https://rpubs.com/elezamam/631979
Mapa de varianza con un intervalo de confianza del 95% de lluvia estimada

Tomado de: https://rpubs.com/elezamam/631979
Resultados
El metodo de interpolación THIESSEN, el tamaƱo y configuración de los poligonos, depende de los puntos originales y tiene un falencia y es que no se puede estimar un error asociado , puesto que el valor para cada poligono se obtine a partir de un solo punto. Por lo anterior es que se visualizan zonas del departamento que se pueden traslapar con zonas que no tienen las mismas caracteristicas de precipitación , a lo cual lleva un mayor error al analizar regiones que no cumplen con las caracterĆsticas aptas para cultivos y pasarian como si fuerna aptas para estos.
Los dos sigueintes metodos arrojan resultados mas cercanos a la realidad , pues el uno maneja el efecto de las distancias , pues entre mayor distancai entre puntos sugiere menos influencia entre punto, mientras que puntos mas cercanos mayor influencia, hora con respecto a el otro, el cual maneja un variograma experimental, hace que logre una mayor aproximación matematica al comportamiento de las precipitaciones en el departamento.
Es asĆ como se puede observar que hay una mayor cantidad de presipitaciones en la zona sur del departamento , caracterizando una región con mayor posibilidad de tener una producción agricola, mientras que en la zona central y el norte del departamento, hay muy pocas precipitaciones, lo que disminuye la posibilidad de implementar cultivos a menos de que logre instalar sistemas de riego para suplir las necesidades y requerimientos de agua , si es que se desea implementar producciones agrĆcolas en la zona centro de La Guajira
Conclusiones
Se observo que el primer metodo tiene las caracterĆsticas para ser utilizado con datos cualitativos , mientras que los metodos IDW y Kriging que maneja modelos matematicos son precisos para datos cuantitativos.
Se ve la importancia de reconocer estos metodos de interpolación, puesto que es importante el conocimiento de las caracterĆticas de cada mĆ©todo, y asĆ generar informacion geografica pertinete para la toma de desiciones.
Con la realización de las diferenes interpolaciones , deja claro que la parte sur del departamento, tiene caracateristicas positivas de recursos hĆdricos para la agroindustria, aclarando que estan condicionadas a temporadas de lluvia y sequia , estaciones muy marcadas en el departamento.
El manejo de la plataforma de R , resalta la versatilidad y facilidad para el manejo de la información geograficas, siendo consientes que esto depende de los diferentes paquetes que esten disponibles para su aplicación, la gran ventaja es que es un sofware libre y que a medida del tiempo surgen mejoras y mas aplicacionas para facilitar el desarrollo de los sitemas de información geogrÔfica.

Tomado de: https://rpubs.com/elezamam/631979
Referencias
Lizarazo I., 2020, Interpolation of precipitation data, Rpubs, https://rpubs.com/ials2un/rain_interpolation , Consultaado Junio de 2020
https://desktop.arcgis.com/es/arcmap/10.3/tools/spatial-analyst-toolbox/understanding-interpolation-analysis.htm#:~:text=La%20interpolaci%C3%B3n%20predice%20valores%20para,qu%C3%ADmicas%20y%20niveles%20de%20ruido. , Consultaado Junio de 2020
http://www2.igac.gov.co/ninos/contenidos/detalle_mapas_escolares.jsp?idMenu=3&idDocumento=105&idDepto=23 , Consultaado Junio de 2020
https://mgimond.github.io/Spatial/spatial-interpolation.html , Consultaado Junio de 2020
https://www.cioh.org.co/meteorologia/Climatologia/ResumenRiohacha2.php ,Consultaado Junio de 2020
Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).
The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.
LS0tDQp0aXRsZTogIkludGVycG9sYWNpw7NuICAtIExhIEd1YWppcmEgLSINCmF1dGhvcjogIkVkdWFyZG8gTGV6YW1hIE1lbmVzZXMiDQpkYXRlOiAiMjQuMDYuMjAyMCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNClRoaXMgaXMgYW4gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBXaGVuIHlvdSBleGVjdXRlIGNvZGUgd2l0aGluIHRoZSBub3RlYm9vaywgdGhlIHJlc3VsdHMgYXBwZWFyIGJlbmVhdGggdGhlIGNvZGUuIA0KDQpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ3RybCtTaGlmdCtFbnRlciouIA0KDQojIyMgKipJbnRyb2R1Y2Npw7NuKiogDQpMYSBHdWFqaXJhIGVzIHVuIGRlcGFydGFtZW50byBlbCBjdWFsIHByZXNlbnRhIHVuIGNsaW1hIG11eSBkaWZlcmVuY2lhbCBjb24gcmVzcGVjdG8gYSBsb3MgZGVtYXMgZGVwYXJ0YW1lbnRvcyBkZSBDb2xvbWJpYSwgZXMgdW5hIHJlZ2nDs24gc2VtaWFyaWRhLCBhZGVtw6FzIHByZXNlbnRhIGVzdGFjaW9uZXMgYmllbiBtYXJjYWRhcy4gQmFzYWRvIGVuIGRhdG9zIG9idGVuaWRvcyBkZSBFbCBHcnVwbyBkZSBSaWVzZ29zIENsaW3DoXRpY29zIGRlIHByZWNpcGl0YWNpw7NuIEluZnJhcnJvamEsIHNlIHV0aWxpemFyb24gZW4gdHJlcyBtZXRvZG9zIGRlIGludGVycG9sYWNpw7NuLCBnZW5lcmFuZG8gdW5hIHNlcmllIGRlIG1hcGFzLCBhc8OtIGFuYWxpemFyIGxhcyB6b25hcyBjb24gbWF5b3IgeSBtZW5vciBwcmVjaXBpdGFjacOzbiBkZWwgZGVwYXJ0YW1lbnRvLiBMbyBhbnRlcmlvciBzZSBkZXNhcnJvbGzDsyBjb24gaGVycmFtaWVudGFzIGRlIGludGVycG9sYWNpw7NuIGVzcGFjaWFsIGVuIFIsIG1vc3RyYW5kbyAgcXVlIHVubyBkZSBsb3MgbcOpdG9kb3MgZGUgaW50ZXJwb2xhY2nDs24gbm8gZXMgbXV5IGNvbmZpYWJsZSwgcG9yIHRlbmVyIHVuIGVycm9yIGFzb2NpYWRvIGEgc3VzIGRhdG9zIHF1ZSBzb24gb2J0ZW5pZG9zIGEgcGFydGlyIGRlIMO6aW5pY29zIHB1bnRvcywgbWllbnRyYXMgcXVlIGxvcyBvdHJvcyBtw6l0b2RvcywgdW5vICBwb3IgbWVkaW8gZGUgdW5hIGdyw6FmaWNhcyBleHBlcmltZW50YWwgZGUgdmFyaW9nYW1hICB5IGVsIG90cm8gcXVlIHV0aWxpemEgdHJhdGFtaWVudG8gZGUgZGF0b3MgZ2VvZXN0YWTDrXN0aWNvcyBnZW5lcmFuIGluZm9ybWFjacOzbiBnZW9ncsOhZmljYSBxdWUgc2UgYWNlcmNhIG11Y2hvIG1hcyBhIGRhdG9zIHJlYWxlcyB5IG1hcyBjb25maWFibGVzLiAgICANCg0KYGBge3IgZWNobz0gRkFMU0V9DQpsaWJyYXJ5KGtuaXRyKQ0KYGBgDQojIyMgKipab25hIGRlIGVzdHVkaW8qKiANCg0KTGEgR3VhamlyYSBzZSB1YmljYSBhbCBleHRyZW1vIG5vcnRlIGRlIENvbG9tYmlhLCBkZXBhcnRhbWVudG9wIHF1ZSBsaW1pdGEgUG9yIGVsIG5vcnRlIGNvbiBlbCBNYXIgQ2FyaWJlLCBwb3IgZWwgb3JpZW50ZSBjb24gZWwgTWFyIENhcmliZSB5IFZlbmV6dWVsYTsgcG9yIGVsIHN1ciBvcmllbnRlIGNvbiBlbCBkZXBhcnRhbWVudG8gZGVsIENlc2FyIHkgcG9yIGVsIHN1ciBvY2NpZGVudGUgY29uIGVsIGRlcGFydGFtZW50byBkZWwgTWFnZGFsZW5hIHkgZWwgTWFyIENhcmliZS4NCg0KDQoNCmBgYHtyIGVjaG89IEZBTFNFfQ0KaW5jbHVkZV9ncmFwaGljcygiQzovVXNlcnMvZmFtaWxpYXIvRG9jdW1lbnRzL0dlbyBSIGZpbmFsL3ViaWNhY2nDs24gZGUgTGEgR3VhamlyYS5wbmciKQ0KYGBgDQpUb21hZG8gZGUgOiBodHRwczovL3JwdWJzLmNvbS9lbGV6YW1hbS82MzIwNTgNCg0KTXVuaWNpcGlvcwkNCkVsIGRlcGFydGFtZW50byBlc3TDoSBkaXZpZGlkbyBlbiAxNSBtdW5pY2lwaW9zOiBSaW9oYWNoYSwgY2l1ZGFkIGNhcGl0YWwsIEFsYmFuaWEsIEJhcnJhbmNhcywgRGlidWxsYSwgRGlzdHJhY2Npw7NuLCBFbCBNb2xpbm8sIEZvbnNlY2EsIEhhdG8gTnVldm8sIExhIEphZ3VhIGRlbCBQaWxhciwgTWFpY2FvLCBNYW5hdXJlLCBTYW4gSnVhbiBkZWwgQ2VzYXIsIFVyaWJpYSwgVXJ1bWl0YSB5IFZpbGxhbnVldmEuDQoNCmBgYHtyIGVjaG89IEZBTFNFfQ0KaW5jbHVkZV9ncmFwaGljcygiQzovVXNlcnMvZmFtaWxpYXIvRG9jdW1lbnRzL0dlbyBSIGZpbmFsL211bmljaXBpb3MucG5nIikNCmBgYA0KdG9tYWRvIGRlOiBodHRwczovL3JwdWJzLmNvbS9lbGV6YW1hbS82MTcyNTQgDQoNClN1cGVyZmljaWU6IDIwLjg0OCBLbTIgLCBQb2JsYWNpw7NuOiA5ODUuNDk4LCBBw7FvIGRlIGNyZWFjacOzbjogMTk2NCwgR2VudGlsaWNpbzogR3VhamlybywgQ2FwaXRhbDogUmlvaGFjaGEuDQpTdSB0ZW1wZXJhdHVyYSBvc2NpbGEgZW50cmUgbG9zIDIywrBDIHkgNDDCsEMuDQoNClNlIGVuY3VlbnRyYSBlbiBDSU9ILCBxdWUgYXBlc2FyIGRlIGVuY29udHJhcnNlIHNvYnJlIGxhIHpvbmEgZWN1YXRvcmlhbCwgZGViaWRvIGEgbGEgcG9zaWNpw7NuIGFzdHJvbsOzbWljYSBxdWUgcG9zZWUsIGVsIGNsaW1hIGVzIGRlIHNhYmFuYSB4ZXLDs2ZpbGEgYWwgc3VyIHkgb2NjaWRlbnRlIGRlbCBkZXBhcnRhbWVudG8geSBkZSBlc3RlcGEgw6FyaWRhIG8gc2VtacOhcmlkYSBhbCBub3J0ZSB5IG9yaWVudGUsIGNvbnRyYXN0YWRhcyBjb24gbGEgYnJpc2EgbWFyaW5hIHkgbG9zIHZpZW50b3MgcHJvdmVuaWVudGVzIGRlbCBub3Jlc3RlLiBQcmVzZW50YSBsbHV2aWFzIGVzY2FzYXMgZW4gbG9zIG1lc2VzIGRlIHNlcHRpZW1icmUgeSBub3ZpZW1icmUuIERlIHRvZGFzIGxhcyBzZXJyYW7DrWFzIGRlIGxhIEd1YWppcmEsIGxhIHpvbmEgZGUgTWFjdWlyYSBlcyBsYSBtw6FzIGjDum1lZGEsIGVsIGNsaW1hIGRlIExhIEd1YWppcmEgaGEgZ2VuZXJhZG8gdW5hIHZlZ2V0YWNpw7NuIG11eSB0w61waWNhLCBjb24gYXJidXN0b3MgZXNwaW5vc29zIHkgY2FjdHVzLg0KDQpMYSBHdWFqaXJhIGVzIGxhIHpvbmEgbcOhcyBzZWNhIGRlIENvbG9tYmlhLCBzdSBjbGltYSBlcyBjw6FsaWRvLCBzZWNvIGUgaW5ow7NzcGl0by4gTGFzIGxsdXZpYXMgc29uIGVzY2FzYXMgeSBtYWwgZGlzdHJpYnVpZGFzLCBjb24gdW5hIHByZWNpcGl0YWNpw7NuIGFudWFsIHF1ZSBvc2NpbGEgZW50cmUgMzU0IHkgMTE3MG1tIChJREVBTSwgMjAwNSksZ2VuZXJhbmRvIGNvbnN0YW50ZXMgdmllbnRvcywgYWx0YSBldmFwb3JhY2nDs24geSBlc3RhY2lvbmVzIGJhc3RhbnRlIG1hcmNhZGFzLiBFc3RlIHNpc3RlbWEsIHNlIG1hbmlmaWVzdGEgcG9yIHVuYSBlc3RhY2nDs24gbGx1dmlvc2EgZGUgY3VhdHJvIG1lc2VzLCBzZXB0aWVtYnJlIGEgZGljaWVtYnJlLiBQb3N0ZXJpb3JtZW50ZSwgZGVzZGUgZGljaWVtYnJlIG8gZW5lcm8gaGFzdGEgYWJyaWwsIHNvcGxhbiBsb3MgdmllbnRvcyBhbGlzaW9zIGNvbiBmdWVydGUgaW50ZW5zaWRhZCBwcmVkb21pbmFuZG8gZGVsIG5vcmVzdGUsIGxvIGN1YWwgY29ycmVzcG9uZGUgYSB1bmEgZXN0YWNpw7NuIGRlIHNlcXXDrWEgeSBmcsOtbyBub2N0dXJuby4gRXN0YSBlc3RhY2nDs24gdGVybWluYSBwb3IgbG8gZ2VuZXJhbCBlbiBhYnJpbCBvIG1heW8gYSBjYXVzYSBkZSB1biBkZWJpbGl0YW1pZW50byBkZWwgdmllbnRvIHkgcG9yIGxhIGNhw61kYSBkZSBhbGd1bmFzIGxsdXZpYXMgeSBjb3JyZXNwb25kZSBhIGxhIHNlZ3VuZGEgZXN0YWNpw7NuIGjDum1lZGEsIGxhcyBjdWFsZXMgZXN0aW11bGFuIHVuIG51ZXZvIGNyZWNpbWllbnRvIGRlIHZlZ2V0YWNpw7NuLiBTZWd1aWRvIGEgZXN0ZSBwZXJpb2RvLCBjb250aW7DumEgdW4gbGFyZ28gcGVyw61vZG8gc2VjbywgZGUgbWF5byBhIHNlcHRpZW1icmUsIGNhcmFjdGVyaXphZG8gcG9yIHVuIGNvbnRpbnVvIHZpZW50byBxdWUgdmllbmUgZGVsIG5vcmRlc3RlIGNhZGEgdmV6IGNvbiBtw6FzIGZ1ZXJ6YSB5IG11eSBjYWxpZW50ZTsgw6lzdGUgbGxldmEgbGFzIG51YmVzIHkgbGFzIGxsdXZpYXMgbGVqb3MgZGVsIHRlcnJpdG9yaW8gZ3Vhamlyby4gUG9yIGVzdGEgcmF6w7NuLCBsbyBtw6FzIGNvbcO6biBlcyBxdWUgbGx1ZXZhIG11eSBwb2NvIG8gY2FzaSBuYWRhIGVuIGFicmlsIG8gbWF5bzsgZXN0YSBzZWd1bmRhIGVzdGFjacOzbiBzZWNhIHNlIHByb2xvbmdhIHNpbiB0cmFuc2ljacOzbiBhIGxhIHByaW1lcmEuDQoNCg0KIyMjICoqRGF0b3MgeSBtZXRvZG9zKioNCg0KUGFyYSB0cmFiYWphciBsb3MgZGF0b3MgZGUgcHJlY2lwaXRhY2nDs24gc2UgaGFjZSBwcmltZXJvIGxhIGRlc2NhcmdhIGRlIGRhdG9zIGRlIHByZWNpcGl0YWNpw7NuIGdsb2JhbCBkZSBFbCBHcnVwbyBkZSBSaWVzZ29zIENsaW3DoXRpY29zIGRlIHByZWNpcGl0YWNpw7NuIEluZnJhcnJvamEgKENISVJQUykgLCBsdWVnbyBkZSBlc3RvIHNlIGhhY2UgdW4gcHJlcHJvY2VzYW1pZW50byBkZSBsb3MgZGF0b3MgZGUgcHJlY2lwaXRhY2nDs24gYmFqYWRvcyBkZSBDSElSUFMsIGVzdG8gY29uIGVsIGZpbiBkZSBwb2RlciByZWFsaXphciBsYXMgZGlmZXJlbnRlcyBpbnRlcnBvbGFjaW9uZXMgLCBlbCBkZXNhcnJvbGxvIGRlIGxvcyBhbnRlcmlvcmVzIHByb2NlZGltaWVudG9zIHNlIHB1ZWRlbiB2aXN1YWxpemFyIGVuIDogaHR0cHM6Ly9ycHVicy5jb20vZWxlemFtYW0vNjMxOTc5IC4NCg0KIyMgTWV0b2RvcyBkZSBpbnRlcnBvbGFjacOzbg0KDQoqKjEuIElOVEVSUE9MQUNJw5NOIFRISUVTU0VOKioNCg0KRXMgdW5vIGRlIGxvcyBtYXMgc2ltcGxlcyAsIHlhIHF1ZSBzZSBiYXNhIGVuIGxhIGRpc3RhbmNpYSBldWNsYWRpbmEsIHF1ZSBzZSBkZWR1Y2UgYSBwYXJ0aXIgZGVsIHRlb3JlbWEgZGUgcGl0YWdvcmFzLCBzZSBkaWNlIHF1ZSBlcyBtdXkgYXByb3BpYWRvIHBhcmEgZGF0b3MgY3VhbGl0YXRpdm9zLCB5IGVzdG8gc2UgYmFzYSBlbiBkZWxpbWl0YXIgw6FyZWFzIGRlIGltcG9ydGFuY2lhICwgdW5pZGFkZXMgZGlzY3JldGFzIGEgcGFydGlyIGRlIHVuIGNvbmp1bnRvIGRlIHB1bnRvcywgY29tbyBsbyB2ZW1vcyBlbiBlbCBzaWd1aWVudGUgZ3JhZmljbw0KDQpgYGB7ciBlY2hvPSBGQUxTRX0NCmluY2x1ZGVfZ3JhcGhpY3MoIkM6L1VzZXJzL2ZhbWlsaWFyL0RvY3VtZW50cy9HZW8gUiBmaW5hbC9wcmVjaXBpdGFjaW9uZXMgbXVlc3RyZWFkYXMucG5nIikNCg0KYGBgDQpUb21hZG8gZGUgOiBodHRwczovL3JwdWJzLmNvbS9lbGV6YW1hbS82MzE4MjUNCg0KDQoNCkVsIGFudGVyaW9yIGdyYWZpY28gc2UgbXVlc3RyYSBsb3MgZGF0b3MgZGUgcHJlc2lwaXRhY2nDs24gbXVlc3RyZWFkYSBkdXJhbnRlIDUgZGlhcyBlbiBlbCBtZXMgZGUgSnVuaW8gLCBjb24gZXN0b3MgZGF0b3Mgc2UgcHVlZGUgc2VndWlyIGEgaGFjZXIgbGEgaW50ZXJwb2xhY2nDs24uIGxhcyDDoXJlYXMgc2UgY3JlYW4gYWwgdW5pciBkaWNob3MgcHVudG9zIGVudHJlIHPDrSB0cmF6YW5kbyBtZWRpYXRyaWNlcyBkZSBsb3Mgc2VnbWVudG9zIGRlIHVuacOzbi4gQ29tbyBzZSBwdWVkZSBvYnNlcnZhciBlbiBsYSBzaWd1aWVudGUgZ3LDoWZpY2EgDQoNCmBgYHtyIGVjaG89IEZBTFNFfQ0KaW5jbHVkZV9ncmFwaGljcygiQzovVXNlcnMvZmFtaWxpYXIvRG9jdW1lbnRzL0dlbyBSIGZpbmFsL3RoaWVzc2VuIHBvbHlnb25vcy5wbmciKQ0KDQpgYGANClRvbWFkbyBkZTogaHR0cHM6Ly9ycHVicy5jb20vZWxlemFtYW0vNjMxOTc5IA0KDQoNCg0KDQoqKjIuIElOVEVSUE9MQUNJw5NOIFBPTkRFUkFEQSBERSBESVNUQU5DSUEgSU5WRVJTQSAgSURXKioNCg0KRXN0ZSBtZXRvZG8gcHJlZGV0ZXJtaW5hIHF1ZSBsYSB2YXJpYWJsZSBxdWUgcHJlc2VudGEgdW5hIHViaWNhY2nDs24gbWFzIGRpc3RhbnRlIGNhcnRvZ3LDoWZpY2FtZW50ZSAsIGVzdGEgdGVuZHJhIG1lbm9zIGluZmx1ZW5jaWEgcG9yIHN1IHViaWNhY2nDs24gZGUgbXVlc3RyZW8geSBhc8OtIHVuYSBxdWUgZXN0ZSBtdXkgY2VyY2FuYSB0ZW5kcmEgbWF5b3IgaW5mbHVlbmNpYS4NCg0KTGEgYmFzZSBwcmluY2lwYWwgZGUgZXN0ZSBtw6l0b2RvIGVuIGFwbGljYXIgbGEgaW52ZXJzYSAgZGUgbGEgZGlzdGFuY2lhIGVsZXZhZGEgYSB1bmEgcG90ZW5jaWEgbWF0ZW3DoXRpY2EgLCBlc3RlIHBhcmFtZXRybyBsZSBkYSBtYXlvciBzaWduaWZpY2FjbmNpYSBhIHB1bnRvcyBtYXMgY29ub2NpZG9zIHBvciBzdSBkaXN0YW5jaWEgZGVzZGUgZWwgcHVudG8gZGUgc2FsaWRhLCBlcyBhc8OtIGNvbW8gY29tbyB1biB2YWxvciBkZSBwb3RlbmNpYSBtYXMgYWx0byBlcyBkZSBtYXlvciBpbmZsdWVuY2lhIGVuIHB1bnRvcyBjZXJjYW5vcyBsbyBxdWUgc2lnbmlmaWNhIHF1ZSBlc3RhIHN1cGVyZmljaWUgdGVuZHJhIG1hcyBkZXRhbGxlLCB5IGVsIGNhc28gY29udHJhcmlvIHB1bnRvcyBtYXMgbGVqYW5vcyBsYSB6b25hIHNlcsOhIGNvbiBtZW5vcyBkZXRhbGxlLg0KDQpDb24gZXN0YSBwcmVkZXRlcm1pbmFjacOzbiBwb2RyZW1vcyBoYWNlciBpbmZlcmlyIHByZWRpY2Npb25lcyBkZSB2ZW50b3MgZGUgbGx1dmlhIGNvbW8gc2UgbXVlc3RyYSBlbiBsYSBzaWd1aWVudGUgZ3JhZmljYS4NCg0KYGBge3IgZWNobz0gRkFMU0V9DQppbmNsdWRlX2dyYXBoaWNzKCJDOi9Vc2Vycy9mYW1pbGlhci9Eb2N1bWVudHMvR2VvIFIgZmluYWwvZGlzdGFuY2lhIGludmVyc2EgcG9uZGVyYWRhLnBuZyIpDQoNCg0KYGBgDQpUb21hZG8gZGU6IGh0dHBzOi8vcnB1YnMuY29tL2VsZXphbWFtLzYzMTk3OQ0KDQoNCg0KUG9yIGxvIGFudGVyaW9yIHNlIG9ic2VydmEgZW4gbGEgZ3JhZmljYSwgIGN1YW5kbyBzZSBlbmN1ZW50cmEgbGEgbWF5b3LDrWEgZGUgcHVudG9zIGNvbiB1biBtaXNtbyB2YWxvciBhdW1lbnRvIGVsIHRhbWHDsW8gZGVsIMOhcmVhICwgbWllbnRyYXMgcXVlIGN1YW5kbyBoYXkgbWVub3MgY2FudGlkYWQgZGUgdW4gbWlzbW8gdmFsb3IgZXN0ZSBzZSBhbGVqYSBtYXMgeSBzdSBpbmZsdWVuY2lhIGVzIG1lbm9yIGxvIHF1ZSByZXN1bHRhIGVuIHVuYSBtZW5vciDDoXJlYS4NCg0KeWEgcXVlIHRpZW5lIG1heW9yIGV4YWN0aXR1ZCBzZSBwdWVkZSBoYWNlciBlc3RhIGludGVycG9sYWNpw7NuIHNvYnJlIGxhIHN1cGVyZmljaWUgY29tbyBzZSBub3RhIGVuIGxhIHNpZ3VpZW50ZSBmaWd1cmEuDQoNCmBgYHtyIGVjaG89IEZBTFNFfQ0KaW5jbHVkZV9ncmFwaGljcygiQzovVXNlcnMvZmFtaWxpYXIvRG9jdW1lbnRzL0dlbyBSIGZpbmFsL2xsdXZpYXMgaW50ZXJwb2xhZGFzLnBuZyIpDQoNCmBgYA0KVG9tYWRvIGRlOiBodHRwczovL3JwdWJzLmNvbS9lbGV6YW1hbS82MzE5NzkNCg0KDQoNCkdlbmVyYW5kbyBlc3RlIHRpcG9zIGRlIGdyYWZpY29zIHBvZHJlbW9zIGVzdGltYXIgdW4gcHJlZGljY2nDs24gY29uIG1heW9yIGNlcnRlemEgLCBsYXMgem9uYXMgZGUgdW4gbHVnYXIgZ2VvZ3LDoWZpY28gLCBkb25kZSBzZSBwcmVzZW50YXJhbiBtYXlvcmVzIGFmbHVlbmNpYXMgZGUgbGx1dmlhcyB5IGVuIGN1YWxlcyB6b25hcyBzZSBtYW50ZW5kcmEgbGEgc2VxdcOtYSAsIGhhY2llbmRvIHVuIGdyYWZpY28gY29uIGxvcyBkYXRvcyBpbnRlcnBvbGFkb3MuDQoNCmBgYHtyIGVjaG89IEZBTFNFfQ0KaW5jbHVkZV9ncmFwaGljcygiQzovVXNlcnMvZmFtaWxpYXIvRG9jdW1lbnRzL0dlbyBSIGZpbmFsL2dyw6FmaWNvLnBuZyIpDQoNCmBgYA0KVG9tYWRvIGRlOiBodHRwczovL3JwdWJzLmNvbS9lbGV6YW1hbS82MzE5NzkNCg0KQWwgb2JzZXJ2YXIgbGEgZ3LDoWZpY2EgYW50ZXJpb3IgLCBzZSBwdWVkZSBub3RhciBxdWUgbGEgbWF5b3IgYWdydXBhY2nDs24gZGUgcHVudG9zIGVzdGFuIGFyZWRlZG9yIGRlIGxvcyA1MCBhIDc1IGRlIHByZWRpY2Npw7NuIA0KDQoNCioqMy5JTlRFUlBPTEFDScOTTiBLUklHSU5HKioNCkEgZGlmZXJlbmNpYSBkZWwgSURXIGVzdGUgbcOpdG9kbyBjb25zdGEgdHJhdGFtaWVudG8gZGUgZGF0b3MgZ2VvZXN0YWTDrXN0aWNvcywgaW5jbHV5ZW5kbyBsYSBhdXRvY29ycmVsYWNpw7NuLCBsbyBxdWUgc2lnbmlmaWNhIHJlbGFjaW9uZXMgZXN0YWTDrXN0aWNhcyBlbiBwdW50b3MgbcOpZGlvcywgZGFuZG8gbGEgY2FyYWN0ZXJpc3RpY2EgZGUgc2VyIG1hcyBwcmVjaXNvIGVuIHN1cyBwcmVkaWNjaW9uZXMuDQoNCkVzIG5lY2VzYXJpbyBjb21vIHByaW1lciBwYXNvIGhhY2VyIHVuIHZhcmlvZ3JhLCBlc3RlIGVzIGNhbGN1bGFkbyBzb2JyZSBkYXRvcyB0ZW5kZW5jaWEsIHBhcmEgbHVlZ28gZGVmaW5pciB1biBtb2RlbG8gcXVlIHNlIGFjZXJxdWUgbG8gbWFzIHBvc2libGUgYSBsYSBhdXRvY29ycmVsYWNpw7NuIGVzcGFjaWFsIGRlIGxvcyBkYXRvcywgc2lndWllbmRvIGNvbiBsYSBpbnRlcnBvbGFjacOzbiBkZSBsYSByZWdpw7NuIG8gc3VwZXJmaWNpZSB1c2FuZG8gZWwgdmFyaW9ncmFtYSBleHBlcmltZW50YWwgeSBwYXJhIHRlbmVyIHVuIHJlc3VsdGFkbyBmaW5hbCBzZSBhZ3JlZ2EgbGEgc3VwZXJmaWNpZSBpbnRlcnBvbGFkYSBrcmlnZWQgYSBsYSByZWdpw7NuIGludGVycG9sYWRhIGRlIHRlbmRlbmNpYS4NCg0KU2UgcHJlc2VudGEgZW4gZWwgc2lndWllbnRlIGdyw6FmaWNvIGVsIHZhcmlvZ3JhbWENCg0KYGBge3IgZWNobz0gRkFMU0V9DQppbmNsdWRlX2dyYXBoaWNzKCJDOi9Vc2Vycy9mYW1pbGlhci9Eb2N1bWVudHMvR2VvIFIgZmluYWwvc2VtaXZhcmlhbnphLnBuZyIpDQoNCmBgYA0KVG9tYWRvIGRlOiBodHRwczovL3JwdWJzLmNvbS9lbGV6YW1hbS82MzE5NzkNCg0KDQoNCk1vZGVsbyBleHBlcmltZW50YWwgZGUgY29ycmVsYWNpw7NuIHByaW5jaXBhbCwgYXPDrSBzZSBnZW5lcmEgbGEgc3VwZXJmaWNpZSBLcmlnZWQNCg0KYGBge3IgZWNobz0gRkFMU0V9DQppbmNsdWRlX2dyYXBoaWNzKCJDOi9Vc2Vycy9mYW1pbGlhci9Eb2N1bWVudHMvR2VvIFIgZmluYWwva3JpZ2luIHVuaXZlcnNhbC5wbmciKQ0KDQpgYGANClRvbWFkbyBkZTogaHR0cHM6Ly9ycHVicy5jb20vZWxlemFtYW0vNjMxOTc5DQoNClBlcm1pdGUgaW5jbHVpciBlbCBtb2RlbG8gZGUgdGVuZGVuY2lhICwgZXN0byBjb3JyaWdlIGxvcyByZXNpZHVvcyBwYXJhIGx1ZWdvIGNvbWJpbmFyIGxvcyByYXN0ZXIuDQoNCg0KU3VwZXJmaWNpZSBpbnRlcnBvbGFkYSBjb24gS3JpZ2luIHNvYnJlIHVuYSBzdXBlcmZpY2llIG1lam9yYWRhDQoNCmBgYHtyIGVjaG89IEZBTFNFfQ0KaW5jbHVkZV9ncmFwaGljcygiQzovVXNlcnMvZmFtaWxpYXIvRG9jdW1lbnRzL0dlbyBSIGZpbmFsL2tyaWdpbiBpbnRlcnBvbGFjacOzbi5wbmciKQ0KDQpgYGANClRvbWFkbyBkZTogaHR0cHM6Ly9ycHVicy5jb20vZWxlemFtYW0vNjMxOTc5DQoNCg0KDQppbnRlcnBvbGFjacOzbiBrcmlnaW5nIHBhcmEgZ2VuZXJhciBtYXBhIGRlIHZhcmlhbnphDQpgYGB7ciBlY2hvPSBGQUxTRX0NCmluY2x1ZGVfZ3JhcGhpY3MoIkM6L1VzZXJzL2ZhbWlsaWFyL0RvY3VtZW50cy9HZW8gUiBmaW5hbC9rcmlnaW4gaW50ZXJwb2xhY2nDs24gdmFyaWFuemEucG5nIikNCg0KYGBgDQpUb21hZG8gZGU6IGh0dHBzOi8vcnB1YnMuY29tL2VsZXphbWFtLzYzMTk3OQ0KDQoNCg0KTWFwYSBkZSB2YXJpYW56YSBjb24gIHVuIGludGVydmFsbyBkZSBjb25maWFuemEgZGVsIDk1JSBkZSBsbHV2aWEgZXN0aW1hZGENCg0KYGBge3IgZWNobz0gRkFMU0V9DQppbmNsdWRlX2dyYXBoaWNzKCJDOi9Vc2Vycy9mYW1pbGlhci9Eb2N1bWVudHMvR2VvIFIgZmluYWwva3JpZ2luIGludGVycG9sYWNpw7NuIDk1IENJLnBuZyIpDQoNCmBgYA0KVG9tYWRvIGRlOiBodHRwczovL3JwdWJzLmNvbS9lbGV6YW1hbS82MzE5NzkNCg0KDQoNCg0KIyMjICoqUmVzdWx0YWRvcyoqIA0KDQpFbCBtZXRvZG8gZGUgaW50ZXJwb2xhY2nDs24gVEhJRVNTRU4sIGVsIHRhbWHDsW8geSBjb25maWd1cmFjacOzbiBkZSBsb3MgcG9saWdvbm9zLCBkZXBlbmRlIGRlIGxvcyBwdW50b3Mgb3JpZ2luYWxlcyB5ICB0aWVuZSB1biBmYWxlbmNpYSB5IGVzIHF1ZSBubyBzZSBwdWVkZSBlc3RpbWFyIHVuIGVycm9yIGFzb2NpYWRvICwgcHVlc3RvIHF1ZSBlbCB2YWxvciBwYXJhIGNhZGEgcG9saWdvbm8gc2Ugb2J0aW5lIGEgcGFydGlyIGRlIHVuIHNvbG8gcHVudG8uDQpQb3IgbG8gYW50ZXJpb3IgZXMgcXVlIHNlIHZpc3VhbGl6YW4gem9uYXMgZGVsIGRlcGFydGFtZW50byBxdWUgc2UgcHVlZGVuIHRyYXNsYXBhciBjb24gem9uYXMgcXVlIG5vIHRpZW5lbiBsYXMgbWlzbWFzIGNhcmFjdGVyaXN0aWNhcyBkZSBwcmVjaXBpdGFjacOzbiAsIGEgbG8gY3VhbCBsbGV2YSB1biBtYXlvciBlcnJvciBhbCBhbmFsaXphciByZWdpb25lcyBxdWUgbm8gY3VtcGxlbiBjb24gbGFzIGNhcmFjdGVyw61zdGljYXMgYXB0YXMgcGFyYSBjdWx0aXZvcyB5IHBhc2FyaWFuIGNvbW8gc2kgZnVlcm5hIGFwdGFzIHBhcmEgZXN0b3MuDQoNCkxvcyBkb3Mgc2lndWVpbnRlcyBtZXRvZG9zIGFycm9qYW4gcmVzdWx0YWRvcyBtYXMgY2VyY2Fub3MgYSBsYSByZWFsaWRhZCAsIHB1ZXMgZWwgdW5vIG1hbmVqYSBlbCBlZmVjdG8gZGUgbGFzIGRpc3RhbmNpYXMgLCBwdWVzIGVudHJlIG1heW9yIGRpc3RhbmNhaSBlbnRyZSBwdW50b3Mgc3VnaWVyZSAgbWVub3MgaW5mbHVlbmNpYSBlbnRyZSBwdW50bywgIG1pZW50cmFzIHF1ZSBwdW50b3MgbWFzIGNlcmNhbm9zIG1heW9yIGluZmx1ZW5jaWEsIGhvcmEgY29uIHJlc3BlY3RvIGEgZWwgb3RybywgZWwgY3VhbCAgbWFuZWphIHVuIHZhcmlvZ3JhbWEgZXhwZXJpbWVudGFsLCBoYWNlIHF1ZSBsb2dyZSB1bmEgbWF5b3IgYXByb3hpbWFjacOzbiBtYXRlbWF0aWNhIGFsIGNvbXBvcnRhbWllbnRvIGRlIGxhcyBwcmVjaXBpdGFjaW9uZXMgZW4gZWwgZGVwYXJ0YW1lbnRvLg0KDQpFcyBhc8OtIGNvbW8gc2UgcHVlZGUgb2JzZXJ2YXIgcXVlIGhheSB1bmEgbWF5b3IgY2FudGlkYWQgZGUgcHJlc2lwaXRhY2lvbmVzIGVuIGxhIHpvbmEgc3VyIGRlbCBkZXBhcnRhbWVudG8gLCBjYXJhY3Rlcml6YW5kbyB1bmEgcmVnacOzbiBjb24gbWF5b3IgcG9zaWJpbGlkYWQgZGUgdGVuZXIgdW5hIHByb2R1Y2Npw7NuIGFncmljb2xhLCBtaWVudHJhcyBxdWUgZW4gbGEgem9uYSBjZW50cmFsIHkgZWwgbm9ydGUgZGVsIGRlcGFydGFtZW50bywgaGF5IG11eSBwb2NhcyBwcmVjaXBpdGFjaW9uZXMsIGxvIHF1ZSBkaXNtaW51eWUgbGEgcG9zaWJpbGlkYWQgZGUgaW1wbGVtZW50YXIgY3VsdGl2b3MgYSBtZW5vcyBkZSBxdWUgbG9ncmUgaW5zdGFsYXIgc2lzdGVtYXMgZGUgcmllZ28gcGFyYSBzdXBsaXIgbGFzIG5lY2VzaWRhZGVzIHkgcmVxdWVyaW1pZW50b3MgZGUgYWd1YSAsIHNpIGVzIHF1ZSBzZSBkZXNlYSBpbXBsZW1lbnRhciBwcm9kdWNjaW9uZXMgYWdyw61jb2xhcyBlbiBsYSB6b25hIGNlbnRybyBkZSBMYSBHdWFqaXJhDQoNCmBgYHtyfQ0KDQpgYGANCg0KIyMjICoqQ29uY2x1c2lvbmVzKioNCg0KU2Ugb2JzZXJ2byBxdWUgZWwgcHJpbWVyIG1ldG9kbyB0aWVuZSBsYXMgY2FyYWN0ZXLDrXN0aWNhcyBwYXJhIHNlciB1dGlsaXphZG8gY29uIGRhdG9zIGN1YWxpdGF0aXZvcyAsIG1pZW50cmFzIHF1ZSBsb3MgbWV0b2RvcyBJRFcgeSBLcmlnaW5nIHF1ZSBtYW5lamEgbW9kZWxvcyBtYXRlbWF0aWNvcyBzb24gcHJlY2lzb3MgcGFyYSBkYXRvcyBjdWFudGl0YXRpdm9zLg0KDQpTZSB2ZSBsYSBpbXBvcnRhbmNpYSBkZSByZWNvbm9jZXIgZXN0b3MgbWV0b2RvcyBkZSBpbnRlcnBvbGFjacOzbiwgcHVlc3RvIHF1ZSBlcyBpbXBvcnRhbnRlIGVsIGNvbm9jaW1pZW50byBkZSBsYXMgY2FyYWN0ZXLDrXRpY2FzIGRlIGNhZGEgbcOpdG9kbywgeSBhc8OtIGdlbmVyYXIgaW5mb3JtYWNpb24gZ2VvZ3JhZmljYSBwZXJ0aW5ldGUgcGFyYSBsYSB0b21hIGRlIGRlc2ljaW9uZXMuDQoNCkNvbiBsYSByZWFsaXphY2nDs24gZGUgbGFzIGRpZmVyZW5lcyBpbnRlcnBvbGFjaW9uZXMgLCBkZWphIGNsYXJvIHF1ZSBsYSBwYXJ0ZSBzdXIgZGVsIGRlcGFydGFtZW50bywgdGllbmUgY2FyYWNhdGVyaXN0aWNhcyBwb3NpdGl2YXMgZGUgcmVjdXJzb3MgaMOtZHJpY29zIHBhcmEgbGEgYWdyb2luZHVzdHJpYSwgYWNsYXJhbmRvIHF1ZSBlc3RhbiBjb25kaWNpb25hZGFzIGEgIHRlbXBvcmFkYXMgZGUgbGx1dmlhIHkgc2VxdWlhICwgZXN0YWNpb25lcyBtdXkgbWFyY2FkYXMgZW4gZWwgZGVwYXJ0YW1lbnRvLg0KDQpFbCBtYW5lam8gZGUgbGEgcGxhdGFmb3JtYSBkZSBSICwgcmVzYWx0YSBsYSB2ZXJzYXRpbGlkYWQgeSBmYWNpbGlkYWQgcGFyYSBlbCBtYW5lam8gZGUgbGEgaW5mb3JtYWNpw7NuIGdlb2dyYWZpY2FzLCBzaWVuZG8gY29uc2llbnRlcyBxdWUgZXN0byBkZXBlbmRlIGRlIGxvcyBkaWZlcmVudGVzIHBhcXVldGVzIHF1ZSBlc3RlbiBkaXNwb25pYmxlcyBwYXJhIHN1IGFwbGljYWNpw7NuLCBsYSBncmFuIHZlbnRhamEgZXMgcXVlIGVzIHVuIHNvZndhcmUgbGlicmUgeSBxdWUgYSBtZWRpZGEgZGVsIHRpZW1wbyBzdXJnZW4gbWVqb3JhcyB5IG1hcyBhcGxpY2FjaW9uYXMgcGFyYSBmYWNpbGl0YXIgZWwgZGVzYXJyb2xsbyBkZSBsb3Mgc2l0ZW1hcyBkZSBpbmZvcm1hY2nDs24gZ2VvZ3LDoWZpY2EuDQoNCg0KDQpgYGB7ciBlY2hvPSBGQUxTRX0NCmluY2x1ZGVfZ3JhcGhpY3MoIkM6L1VzZXJzL2ZhbWlsaWFyL0RvY3VtZW50cy9HZW8gUiBmaW5hbC9jaGlycHMgbGx1dmlhcy5wbmciKQ0KDQpgYGANClRvbWFkbyBkZTogaHR0cHM6Ly9ycHVicy5jb20vZWxlemFtYW0vNjMxOTc5DQoNCg0KIyMjICoqUmVmZXJlbmNpYXMqKg0KDQpMaXphcmF6byBJLiwgMjAyMCwgSW50ZXJwb2xhdGlvbiBvZiBwcmVjaXBpdGF0aW9uIGRhdGEsIFJwdWJzLCBodHRwczovL3JwdWJzLmNvbS9pYWxzMnVuL3JhaW5faW50ZXJwb2xhdGlvbiAsIENvbnN1bHRhYWRvIEp1bmlvIGRlIDIwMjANCg0KaHR0cHM6Ly9kZXNrdG9wLmFyY2dpcy5jb20vZXMvYXJjbWFwLzEwLjMvdG9vbHMvc3BhdGlhbC1hbmFseXN0LXRvb2xib3gvdW5kZXJzdGFuZGluZy1pbnRlcnBvbGF0aW9uLWFuYWx5c2lzLmh0bSM6fjp0ZXh0PUxhJTIwaW50ZXJwb2xhY2klQzMlQjNuJTIwcHJlZGljZSUyMHZhbG9yZXMlMjBwYXJhLHF1JUMzJUFEbWljYXMlMjB5JTIwbml2ZWxlcyUyMGRlJTIwcnVpZG8uICwgQ29uc3VsdGFhZG8gSnVuaW8gZGUgMjAyMA0KDQpodHRwOi8vd3d3Mi5pZ2FjLmdvdi5jby9uaW5vcy9jb250ZW5pZG9zL2RldGFsbGVfbWFwYXNfZXNjb2xhcmVzLmpzcD9pZE1lbnU9MyZpZERvY3VtZW50bz0xMDUmaWREZXB0bz0yMyAgLCBDb25zdWx0YWFkbyBKdW5pbyBkZSAyMDIwDQoNCmh0dHBzOi8vbWdpbW9uZC5naXRodWIuaW8vU3BhdGlhbC9zcGF0aWFsLWludGVycG9sYXRpb24uaHRtbCAgLCBDb25zdWx0YWFkbyBKdW5pbyBkZSAyMDIwDQoNCg0KaHR0cHM6Ly93d3cuY2lvaC5vcmcuY28vbWV0ZW9yb2xvZ2lhL0NsaW1hdG9sb2dpYS9SZXN1bWVuUmlvaGFjaGEyLnBocCAgLENvbnN1bHRhYWRvIEp1bmlvIGRlIDIwMjANCg0KDQoNCmBgYHtyfQ0KDQpgYGANCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ3RybCtBbHQrSSouDQoNCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ3RybCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLg0KDQpUaGUgcHJldmlldyBzaG93cyB5b3UgYSByZW5kZXJlZCBIVE1MIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBlZGl0b3IuIENvbnNlcXVlbnRseSwgdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuDQo=