This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

Introducción

La Guajira es un departamento el cual presenta un clima muy diferencial con respecto a los demas departamentos de Colombia, es una región semiarida, ademÔs presenta estaciones bien marcadas. Basado en datos obtenidos de El Grupo de Riesgos ClimÔticos de precipitación Infrarroja, se utilizaron en tres metodos de interpolación, generando una serie de mapas, así analizar las zonas con mayor y menor precipitación del departamento. Lo anterior se desarrolló con herramientas de interpolación espacial en R, mostrando que uno de los métodos de interpolación no es muy confiable, por tener un error asociado a sus datos que son obtenidos a partir de úinicos puntos, mientras que los otros métodos, uno por medio de una grÔficas experimental de variogama y el otro que utiliza tratamiento de datos geoestadísticos generan información geogrÔfica que se acerca mucho mas a datos reales y mas confiables.

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.

Datos y metodos

Para trabajar los datos de precipitación se hace primero la descarga de datos de precipitación global de El Grupo de Riesgos ClimÔticos de precipitación Infrarroja (CHIRPS) , luego de esto se hace un preprocesamiento de los datos de precipitación bajados de CHIRPS, esto con el fin de poder realizar las diferentes interpolaciones , el desarrollo de los anteriores procedimientos se pueden visualizar en : https://rpubs.com/elezamam/631979 .

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=