obtener la base de datos
datos <- read.csv("C:/Users/enrique/OneDrive/Escritorio/Notas Rstudio/estadisticas_vitales_mexico_2018_2021.csv")
plot(cars)

print(datos)
NA
Calculo de la tasa de mortalidad del periodo 2018-2021
tasa_mortalidad <- (datos$defunciones_registradas/datos$poblacion_total) * 1000
datos$tasa_mortalidad <- (datos$defunciones_registradas/datos$poblacion_total) * 1000
datos[, c("anio", "tasa_mortalidad")]
#descripcion del resultado obtenido
cat("tasa de mortidad:", mean(tasa_mortalidad, na.rm = TRUE), "muertes por cada 1,000 habitantes durante el periodo 2018-2021\n")
tasa de mortidad: 7.303069 muertes por cada 1,000 habitantes durante el periodo 2018-2021
Generacion del grafico por ggplot
#grafico
ggplot(datos, aes(x = anio, y = tasa_mortalidad, fill = anio)) + geom_bar(stat = "identity", fill = "red") + labs(title = "Tasa de mortalidad periodo 2018-2021", x = "anio", y = "Tasa de mortalidad (por 1,000 habitantes") + theme_classic()

Calculo de tasa de natalidad
#Datos de tasa de natalidad
nacimientos <- datos$nacimientos_registrados
total_poblacion <- datos$poblacion_total
#Calculos de natalidad
tasa_natalidad <- (nacimientos/total_poblacion) * 1000
#impresion de resultados
cat("natalidad:", mean(tasa_natalidad, na.rm = TRUE), "nacimientos por cada 1,000 durante el periodo 2018-2021\n")
natalidad: 15.49277 nacimientos por cada 1,000 durante el periodo 2018-2021
datos$tasa_natalidad <- (datos$nacimientos_registrados / datos$poblacion_total) * 1000
datos[, c("anio", "tasa_natalidad")]
Visualizacion del grafico
ggplot(datos, aes(x = anio, y = tasa_natalidad, fill = anio)) + geom_bar(stat = "identity", fill = "green") + labs(title = "Tasa de natalidad periodo 2018-2021", x = "anio", y = "Tasa de mortalidad (por 1,000 habitantes") + theme_classic()

Calculo de incremento natural poblacional
incremento_natural <- (tasa_natalidad - tasa_mortalidad)
datos$incremento_natural <- datos$tasa_natalidad - datos$tasa_mortalidad
datos[, c("anio", "incremento_natural")]
NA
visualizacion del resultado
cat("Incremento natural",
mean(incremento_natural, na.rm = TRUE),
"por cada 1,000 habitantes durante el periodo 2018-2021\n")
Incremento natural 8.189702 por cada 1,000 habitantes durante el periodo 2018-2021
str(datos)
'data.frame': 4 obs. of 9 variables:
$ anio : int 2018 2019 2020 2021
$ poblacion_total : int 124738000 125930000 126014024 126705138
$ nacimientos_registrados : int 2162535 2092214 1629211 1912178
$ defunciones_registradas : int 722611 747784 1086743 1122249
$ incremento_natural : num 11.54 10.68 4.3 6.23
$ casos_covid_confirmados : num 0 0 1437185 NA
$ defunciones_covid_confirmadas: num 0 0 126507 NA
$ tasa_mortalidad : num 5.79 5.94 8.62 8.86
$ tasa_natalidad : num 17.3 16.6 12.9 15.1
Uso de ggplot para representacion grafica de los datos
epidemiologicos
ggplot(datos, aes(x = anio, y = incremento_natural)) + geom_line(linewidth = 1) + geom_point(size = 3) + geom_text( aes(label = round(incremento_natural, 2)), vjust = -1.5, size = 4) + scale_y_continuous(expand = expansion(mult = c(0.05, 2.0))) + labs(title = "Incremento natural de la poblacion", x = "Ano", y = "incremento natural (por cada 1,000 habitantes") + theme_classic()

Datos de covid-19
datos$letalidad_covid_19 <- (datos$defunciones_covid_confirmadas / datos$casos_covid_confirmados) * 100
datos[, c("anio", "letalidad_covid_19")]
datos_letalidad <- datos[datos$casos_covid_confirmados > 0, c("anio", "letalidad_covid_19")]
datos_letalidad
Intente realize un grafico para demostar la letalidad que obtuvo
covid-19 en el 2020 pero el codigo no funciono por alguna razonar
letalidad_valida <- datos_letalidad[!is.na(datos_letalidad) & !is.nan(datos_letalidad)]
Error en is.nan(datos_letalidad):
método por defecto no implementado para 'list'
Realiacion de cuadro de flextable
Datos <- data.frame(
año = c(2018, 2019, 2020, 2021),
poblacion_total = c(124738000, 125930000, 126014024, 126705138),
nacimientos_registrados = c(2162535, 2092214, 1629211, 1912178),
defunciones_registradas = c(722611, 747784, 1086743, 1122249),
casos_covid_confirmados = c(0, 0, 1437185, 0),
defunciones_covid_confirmadas = c(0, 0, 126507, 0))
datos$tasa_natalidad <- (datos$nacimientos_registrados /
datos$poblacion_total) * 1000
datos$tasa_mortalidad <- (datos$defunciones_registradas /
datos$poblacion_total) * 1000
datos$incremento_natural <- datos$tasa_natalidad - datos$tasa_mortalidad
datos$tasa_letalidad <- (datos$defunciones_covid_confirmadas / datos$casos_covid_confirmados) * 100
# Redondear solo columnas númericas
datos_redondeados <- datos %>%
mutate_if(is.numeric, round, 2)
# Crear la tabla con flextable
flextable(datos_redondeados) %>%
autofit()
anio | poblacion_total | nacimientos_registrados | defunciones_registradas | incremento_natural | casos_covid_confirmados | defunciones_covid_confirmadas | tasa_mortalidad | tasa_natalidad | letalidad_covid_19 | tasa_letalidad |
|---|
2,018 | 124,738,000 | 2,162,535 | 722,611 | 11.54 | 0 | 0 | 5.79 | 17.34 |
|
|
2,019 | 125,930,000 | 2,092,214 | 747,784 | 10.68 | 0 | 0 | 5.94 | 16.61 |
|
|
2,020 | 126,014,024 | 1,629,211 | 1,086,743 | 4.30 | 1,437,185 | 126,507 | 8.62 | 12.93 | 88.02 | 8.8 |
2,021 | 126,705,138 | 1,912,178 | 1,122,249 | 6.23 |
|
| 8.86 | 15.09 |
|
|
#¿En qué año se observa la mayor tasa de mortalidad y cómo se
relaciona con la pandemia?
Entre los años 2020 y 2021 se pudo observar un incremento en la tasa
de mortalidad debido que en ese periodo se encontraba activa la pandemia
de COVID-19
#¿Cómo cambia la tasa de natalidad entre 2018 y 2021? En los años
2018 y 2019 la tasa de natalidad de encontraba mas alta en compración
con el año 2020 que fue el año con la tasa de natalidad mas baja, esto
puede estar realacionado con la pandemia de COVID-19, mientras que en el
año 2021 hubo un aumento en la tasa de natalidad esto puede estar
relacionado a las inmunizaciones y al culminación de la pandemia.
#¿Qué ocurre con el incremento natural durante ese periodo? Entre el
periodo del 2018 y 2019 el incremento natural se encontraba elevando,
mientras que en el año 2020 decayo este valor debido a la alta tasa de
mortalidad debido a la pandemia, por otro lado en el 2020 se elevo el
valor del incremento natural.
#¿Qué significa la tasa de letalidad por COVID-19 que obtuviste para
2020?
La tasa de letalidad por COVID-19 es el porcentaje de las personas
fallecidas que padecieron la enfermedad.
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2sgNiBFbnJpcXVlVmVyZHVnbyBUYXJlYSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQpvYnRlbmVyIGxhIGJhc2UgZGUgZGF0b3MgDQpgYGB7cn0NCmRhdG9zIDwtIHJlYWQuY3N2KCJDOi9Vc2Vycy9lbnJpcXVlL09uZURyaXZlL0VzY3JpdG9yaW8vTm90YXMgUnN0dWRpby9lc3RhZGlzdGljYXNfdml0YWxlc19tZXhpY29fMjAxOF8yMDIxLmNzdiIpDQpwbG90KGNhcnMpDQpwcmludChkYXRvcykNCg0KYGBgDQoNCkNhbGN1bG8gZGUgbGEgdGFzYSBkZSBtb3J0YWxpZGFkIGRlbCBwZXJpb2RvIDIwMTgtMjAyMQ0KYGBge3J9DQp0YXNhX21vcnRhbGlkYWQgPC0gKGRhdG9zJGRlZnVuY2lvbmVzX3JlZ2lzdHJhZGFzL2RhdG9zJHBvYmxhY2lvbl90b3RhbCkgKiAxMDAwDQpkYXRvcyR0YXNhX21vcnRhbGlkYWQgPC0gKGRhdG9zJGRlZnVuY2lvbmVzX3JlZ2lzdHJhZGFzL2RhdG9zJHBvYmxhY2lvbl90b3RhbCkgKiAxMDAwDQpkYXRvc1ssIGMoImFuaW8iLCAidGFzYV9tb3J0YWxpZGFkIildDQoNCiNkZXNjcmlwY2lvbiBkZWwgcmVzdWx0YWRvIG9idGVuaWRvIA0KY2F0KCJ0YXNhIGRlIG1vcnRpZGFkOiIsIG1lYW4odGFzYV9tb3J0YWxpZGFkLCBuYS5ybSA9IFRSVUUpLCAibXVlcnRlcyBwb3IgY2FkYSAxLDAwMCBoYWJpdGFudGVzIGR1cmFudGUgZWwgcGVyaW9kbyAyMDE4LTIwMjFcbiIpDQpgYGANCkdlbmVyYWNpb24gZGVsIGdyYWZpY28gcG9yIGdncGxvdA0KYGBge3J9DQojZ3JhZmljbyANCmdncGxvdChkYXRvcywgYWVzKHggPSBhbmlvLCB5ID0gdGFzYV9tb3J0YWxpZGFkLCBmaWxsID0gYW5pbykpICsgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIGZpbGwgPSAicmVkIikgKyBsYWJzKHRpdGxlID0gIlRhc2EgZGUgbW9ydGFsaWRhZCBwZXJpb2RvIDIwMTgtMjAyMSIsIHggPSAiYW5pbyIsIHkgPSAiVGFzYSBkZSBtb3J0YWxpZGFkIChwb3IgMSwwMDAgaGFiaXRhbnRlcyIpICsgdGhlbWVfY2xhc3NpYygpDQpgYGANCg0KQ2FsY3VsbyBkZSB0YXNhIGRlIG5hdGFsaWRhZCANCmBgYHtyfQ0KI0RhdG9zIGRlIHRhc2EgZGUgbmF0YWxpZGFkDQpuYWNpbWllbnRvcyA8LSBkYXRvcyRuYWNpbWllbnRvc19yZWdpc3RyYWRvcw0KdG90YWxfcG9ibGFjaW9uIDwtIGRhdG9zJHBvYmxhY2lvbl90b3RhbCANCg0KI0NhbGN1bG9zIGRlIG5hdGFsaWRhZA0KdGFzYV9uYXRhbGlkYWQgPC0gKG5hY2ltaWVudG9zL3RvdGFsX3BvYmxhY2lvbikgKiAxMDAwDQoNCiNpbXByZXNpb24gZGUgcmVzdWx0YWRvcw0KY2F0KCJuYXRhbGlkYWQ6IiwgbWVhbih0YXNhX25hdGFsaWRhZCwgbmEucm0gPSBUUlVFKSwgIm5hY2ltaWVudG9zIHBvciBjYWRhIDEsMDAwIGR1cmFudGUgZWwgcGVyaW9kbyAyMDE4LTIwMjFcbiIpDQpgYGANCmBgYHtyfQ0KZGF0b3MkdGFzYV9uYXRhbGlkYWQgPC0gKGRhdG9zJG5hY2ltaWVudG9zX3JlZ2lzdHJhZG9zIC8gZGF0b3MkcG9ibGFjaW9uX3RvdGFsKSAqIDEwMDANCg0KZGF0b3NbLCBjKCJhbmlvIiwgInRhc2FfbmF0YWxpZGFkIildDQpgYGANCg0KVmlzdWFsaXphY2lvbiBkZWwgZ3JhZmljbyANCmBgYHtyfQ0KZ2dwbG90KGRhdG9zLCBhZXMoeCA9IGFuaW8sIHkgPSB0YXNhX25hdGFsaWRhZCwgZmlsbCA9IGFuaW8pKSArIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCBmaWxsID0gImdyZWVuIikgKyBsYWJzKHRpdGxlID0gIlRhc2EgZGUgbmF0YWxpZGFkIHBlcmlvZG8gMjAxOC0yMDIxIiwgeCA9ICJhbmlvIiwgeSA9ICJUYXNhIGRlIG1vcnRhbGlkYWQgKHBvciAxLDAwMCBoYWJpdGFudGVzIikgKyB0aGVtZV9jbGFzc2ljKCkNCmBgYA0KDQpDYWxjdWxvIGRlIGluY3JlbWVudG8gbmF0dXJhbCBwb2JsYWNpb25hbA0KYGBge3J9DQppbmNyZW1lbnRvX25hdHVyYWwgPC0gKHRhc2FfbmF0YWxpZGFkIC0gdGFzYV9tb3J0YWxpZGFkKQ0KDQpkYXRvcyRpbmNyZW1lbnRvX25hdHVyYWwgPC0gZGF0b3MkdGFzYV9uYXRhbGlkYWQgLSBkYXRvcyR0YXNhX21vcnRhbGlkYWQNCg0KZGF0b3NbLCBjKCJhbmlvIiwgImluY3JlbWVudG9fbmF0dXJhbCIpXQ0KDQpgYGANCnZpc3VhbGl6YWNpb24gZGVsIHJlc3VsdGFkbyANCmBgYHtyfQ0KY2F0KCJJbmNyZW1lbnRvIG5hdHVyYWwiLCBtZWFuKGluY3JlbWVudG9fbmF0dXJhbCwgbmEucm0gPSBUUlVFKSwgDQogICAgInBvciBjYWRhIDEsMDAwIGhhYml0YW50ZXMgZHVyYW50ZSBlbCBwZXJpb2RvIDIwMTgtMjAyMVxuIikNCmBgYA0KYGBge3J9DQpzdHIoZGF0b3MpDQpgYGANClVzbyBkZSBnZ3Bsb3QgcGFyYSByZXByZXNlbnRhY2lvbiBncmFmaWNhIGRlIGxvcyBkYXRvcyBlcGlkZW1pb2xvZ2ljb3MgDQpgYGB7cn0NCmdncGxvdChkYXRvcywgYWVzKHggPSBhbmlvLCB5ID0gaW5jcmVtZW50b19uYXR1cmFsKSkgKyBnZW9tX2xpbmUobGluZXdpZHRoID0gMSkgKyBnZW9tX3BvaW50KHNpemUgPSAzKSArIGdlb21fdGV4dCggYWVzKGxhYmVsID0gcm91bmQoaW5jcmVtZW50b19uYXR1cmFsLCAyKSksIHZqdXN0ID0gLTEuNSwgc2l6ZSA9IDQpICsgc2NhbGVfeV9jb250aW51b3VzKGV4cGFuZCA9IGV4cGFuc2lvbihtdWx0ID0gYygwLjA1LCAyLjApKSkgKyBsYWJzKHRpdGxlID0gIkluY3JlbWVudG8gbmF0dXJhbCBkZSBsYSBwb2JsYWNpb24iLCB4ID0gIkFubyIsIHkgPSAiaW5jcmVtZW50byBuYXR1cmFsIChwb3IgY2FkYSAxLDAwMCBoYWJpdGFudGVzIikgKyB0aGVtZV9jbGFzc2ljKCkNCmBgYA0KDQpEYXRvcyBkZSBjb3ZpZC0xOQ0KYGBge3J9DQpkYXRvcyRsZXRhbGlkYWRfY292aWRfMTkgPC0gKGRhdG9zJGRlZnVuY2lvbmVzX2NvdmlkX2NvbmZpcm1hZGFzIC8gZGF0b3MkY2Fzb3NfY292aWRfY29uZmlybWFkb3MpICogMTAwDQpkYXRvc1ssIGMoImFuaW8iLCAibGV0YWxpZGFkX2NvdmlkXzE5IildDQpgYGANCg0KYGBge3J9DQpkYXRvc19sZXRhbGlkYWQgPC0gZGF0b3NbZGF0b3MkY2Fzb3NfY292aWRfY29uZmlybWFkb3MgPiAwLCBjKCJhbmlvIiwgImxldGFsaWRhZF9jb3ZpZF8xOSIpXQ0KDQpkYXRvc19sZXRhbGlkYWQNCmBgYA0KDQoNCkludGVudGUgcmVhbGl6ZSB1biBncmFmaWNvIHBhcmEgZGVtb3N0YXIgbGEgbGV0YWxpZGFkIHF1ZSBvYnR1dm8gY292aWQtMTkgZW4gZWwgMjAyMCBwZXJvIGVsIGNvZGlnbyBubyBmdW5jaW9ubyBwb3IgYWxndW5hIHJhem9uYXINCg0KYGBge3J9DQpsZXRhbGlkYWRfdmFsaWRhIDwtIGRhdG9zX2xldGFsaWRhZFshaXMubmEoZGF0b3NfbGV0YWxpZGFkKSAmICFpcy5uYW4oZGF0b3NfbGV0YWxpZGFkKV0NCnZhbG9yZXMgPC0gYyhkYXRvc19sZXRhbGlkYWQgPSBsZXRhbGlkYWRfdmFsaWRhLA0KICAiTm8gbGV0YWxpZGFkIiA9IDEgLSBsZXRhbGlkYWRfdmFsaWRhKQ0KcGllKHZhbG9yZXMsIGxhYmVscyA9IHBhc3RlMChuYW1lcyh2YWxvcmVzKSwgIjogIiwgcm91bmQodmFsb3JlcyAqIDEwMCwgMiksICIlIiksDQogIG1haW4gPSAiTGV0YWxpZGFkIHBvciBDb3ZpZC0xOSBlbiBlbCBhw7FvIDIwMjAiLA0KICBjb2wgPSBjKCJmaXJlYnJpY2siLCAiYmx1ZSIpKQ0KYGBgDQoNClJlYWxpYWNpb24gZGUgY3VhZHJvIGRlIGZsZXh0YWJsZQ0KYGBge3J9DQpEYXRvcyA8LSBkYXRhLmZyYW1lKA0KICBhw7FvID0gYygyMDE4LCAyMDE5LCAyMDIwLCAyMDIxKSwNCiAgcG9ibGFjaW9uX3RvdGFsID0gYygxMjQ3MzgwMDAsIDEyNTkzMDAwMCwgMTI2MDE0MDI0LCAxMjY3MDUxMzgpLA0KICBuYWNpbWllbnRvc19yZWdpc3RyYWRvcyA9IGMoMjE2MjUzNSwgMjA5MjIxNCwgMTYyOTIxMSwgMTkxMjE3OCksDQogIGRlZnVuY2lvbmVzX3JlZ2lzdHJhZGFzID0gYyg3MjI2MTEsIDc0Nzc4NCwgMTA4Njc0MywgMTEyMjI0OSksDQogIGNhc29zX2NvdmlkX2NvbmZpcm1hZG9zID0gYygwLCAwLCAxNDM3MTg1LCAwKSwNCiAgZGVmdW5jaW9uZXNfY292aWRfY29uZmlybWFkYXMgPSBjKDAsIDAsIDEyNjUwNywgMCkpDQoNCmRhdG9zJHRhc2FfbmF0YWxpZGFkIDwtIChkYXRvcyRuYWNpbWllbnRvc19yZWdpc3RyYWRvcyAvDQogICAgICAgICAgICAgICAgICAgICAgICAgZGF0b3MkcG9ibGFjaW9uX3RvdGFsKSAqIDEwMDANCg0KZGF0b3MkdGFzYV9tb3J0YWxpZGFkIDwtIChkYXRvcyRkZWZ1bmNpb25lc19yZWdpc3RyYWRhcyAvDQogICAgICAgICAgICAgICAgICAgICAgICAgIGRhdG9zJHBvYmxhY2lvbl90b3RhbCkgKiAxMDAwDQoNCmRhdG9zJGluY3JlbWVudG9fbmF0dXJhbCA8LSBkYXRvcyR0YXNhX25hdGFsaWRhZCAtIGRhdG9zJHRhc2FfbW9ydGFsaWRhZA0KDQpkYXRvcyR0YXNhX2xldGFsaWRhZCA8LSAoZGF0b3MkZGVmdW5jaW9uZXNfY292aWRfY29uZmlybWFkYXMgLyBkYXRvcyRjYXNvc19jb3ZpZF9jb25maXJtYWRvcykgKiAxMDANCg0KIyBSZWRvbmRlYXIgc29sbyBjb2x1bW5hcyBuw7ptZXJpY2FzDQpkYXRvc19yZWRvbmRlYWRvcyA8LSBkYXRvcyAlPiUNCiAgbXV0YXRlX2lmKGlzLm51bWVyaWMsIHJvdW5kLCAyKQ0KDQojIENyZWFyIGxhIHRhYmxhIGNvbiBmbGV4dGFibGUNCmZsZXh0YWJsZShkYXRvc19yZWRvbmRlYWRvcykgJT4lDQogIGF1dG9maXQoKQ0KYGBgDQoNCiPCv0VuIHF1w6kgYcOxbyBzZSBvYnNlcnZhIGxhIG1heW9yIHRhc2EgZGUgbW9ydGFsaWRhZCB5IGPDs21vIHNlIHJlbGFjaW9uYSBjb24gbGEgcGFuZGVtaWE/DQoNCkVudHJlIGxvcyBhw7FvcyAyMDIwIHkgMjAyMSBzZSBwdWRvIG9ic2VydmFyIHVuIGluY3JlbWVudG8gZW4gbGEgdGFzYSBkZSBtb3J0YWxpZGFkIGRlYmlkbyBxdWUgZW4gZXNlIHBlcmlvZG8gc2UgZW5jb250cmFiYSBhY3RpdmEgbGEgcGFuZGVtaWEgZGUgQ09WSUQtMTkgDQoNCiPCv0PDs21vIGNhbWJpYSBsYSB0YXNhIGRlIG5hdGFsaWRhZCBlbnRyZSAyMDE4IHkgMjAyMT8NCkVuIGxvcyBhw7FvcyAyMDE4IHkgMjAxOSBsYSB0YXNhIGRlIG5hdGFsaWRhZCBkZSBlbmNvbnRyYWJhIG1hcyBhbHRhIGVuIGNvbXByYWNpw7NuIGNvbiBlbCBhw7FvIDIwMjAgcXVlIGZ1ZSBlbCBhw7FvIGNvbiBsYSB0YXNhIGRlIG5hdGFsaWRhZCBtYXMgYmFqYSwgZXN0byBwdWVkZSBlc3RhciByZWFsYWNpb25hZG8gY29uIGxhIHBhbmRlbWlhIGRlIENPVklELTE5LCBtaWVudHJhcyBxdWUgZW4gZWwgYcOxbyAyMDIxIGh1Ym8gdW4gYXVtZW50byBlbiBsYSB0YXNhIGRlIG5hdGFsaWRhZCBlc3RvIHB1ZWRlIGVzdGFyIHJlbGFjaW9uYWRvIGEgbGFzIGlubXVuaXphY2lvbmVzIHkgYWwgY3VsbWluYWNpw7NuIGRlIGxhIHBhbmRlbWlhLg0KDQojwr9RdcOpIG9jdXJyZSBjb24gZWwgaW5jcmVtZW50byBuYXR1cmFsIGR1cmFudGUgZXNlIHBlcmlvZG8/DQpFbnRyZSBlbCBwZXJpb2RvIGRlbCAyMDE4IHkgMjAxOSBlbCBpbmNyZW1lbnRvIG5hdHVyYWwgc2UgZW5jb250cmFiYSBlbGV2YW5kbywgbWllbnRyYXMgcXVlIGVuIGVsIGHDsW8gMjAyMCBkZWNheW8gZXN0ZSB2YWxvciBkZWJpZG8gYSBsYSBhbHRhIHRhc2EgZGUgbW9ydGFsaWRhZCBkZWJpZG8gYSBsYSBwYW5kZW1pYSwgcG9yIG90cm8gbGFkbyBlbiBlbCAyMDIwIHNlIGVsZXZvIGVsIHZhbG9yIGRlbCBpbmNyZW1lbnRvIG5hdHVyYWwuDQoNCiPCv1F1w6kgc2lnbmlmaWNhIGxhIHRhc2EgZGUgbGV0YWxpZGFkIHBvciBDT1ZJRC0xOSBxdWUgb2J0dXZpc3RlIHBhcmEgMjAyMD8NCg0KTGEgdGFzYSBkZSBsZXRhbGlkYWQgcG9yIENPVklELTE5IGVzIGVsIHBvcmNlbnRhamUgZGUgbGFzIHBlcnNvbmFzIGZhbGxlY2lkYXMgcXVlIHBhZGVjaWVyb24gbGEgZW5mZXJtZWRhZC4NCg0KDQoNCg==